Skip to content

Instantly share code, notes, and snippets.

@alanklement
Created June 3, 2014 20:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alanklement/9c7751da11615a184d69 to your computer and use it in GitHub Desktop.
Save alanklement/9c7751da11615a184d69 to your computer and use it in GitHub Desktop.
0 info it worked if it ends with ok
1 verbose cli [ 'node', '/usr/local/bin/npm', 'install', 'jitsu', '-g' ]
2 info using npm@1.2.15
3 info using node@v0.10.1
4 verbose read json /usr/local/lib/package.json
5 verbose read json /usr/local/lib/package.json
6 verbose cache add [ 'jitsu', null ]
7 verbose cache add name=undefined spec="jitsu" args=["jitsu",null]
8 verbose parsed url { protocol: null,
8 verbose parsed url slashes: null,
8 verbose parsed url auth: null,
8 verbose parsed url host: null,
8 verbose parsed url port: null,
8 verbose parsed url hostname: null,
8 verbose parsed url hash: null,
8 verbose parsed url search: null,
8 verbose parsed url query: null,
8 verbose parsed url pathname: 'jitsu',
8 verbose parsed url path: 'jitsu',
8 verbose parsed url href: 'jitsu' }
9 silly lockFile 9d81e68b-jitsu jitsu
10 verbose lock jitsu /Users/osx/.npm/9d81e68b-jitsu.lock
11 silly lockFile 9d81e68b-jitsu jitsu
12 silly lockFile 9d81e68b-jitsu jitsu
13 verbose addNamed [ 'jitsu', '' ]
14 verbose addNamed [ null, '' ]
15 silly lockFile e680b62f-jitsu jitsu@
16 verbose lock jitsu@ /Users/osx/.npm/e680b62f-jitsu.lock
17 silly addNameRange { name: 'jitsu', range: '', hasData: false }
18 verbose url raw jitsu
19 verbose url resolving [ 'https://registry.npmjs.org/', './jitsu' ]
20 verbose url resolved https://registry.npmjs.org/jitsu
21 info trying registry request attempt 1 at 16:15:54
22 verbose etag "84KTKPQRQKAMZUB1X2F6KM91M"
23 http GET https://registry.npmjs.org/jitsu
24 http 304 https://registry.npmjs.org/jitsu
25 silly registry.get cb [ 304,
25 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:56 GMT',
25 silly registry.get server: 'Apache',
25 silly registry.get via: '1.1 varnish',
25 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:56 GMT',
25 silly registry.get 'cache-control': 'max-age=1',
25 silly registry.get etag: '"84KTKPQRQKAMZUB1X2F6KM91M"',
25 silly registry.get 'x-served-by': 'cache-jfk1035-JFK',
25 silly registry.get 'x-cache': 'MISS',
25 silly registry.get 'x-cache-hits': '0',
25 silly registry.get 'x-timer': 'S1401826556.066571,VS0,VE34',
25 silly registry.get vary: 'Accept',
25 silly registry.get 'content-length': '0',
25 silly registry.get 'keep-alive': 'timeout=10, max=50',
25 silly registry.get connection: 'Keep-Alive' } ]
26 verbose etag jitsu from cache
27 silly addNameRange number 2 { name: 'jitsu', range: '', hasData: true }
28 silly addNameRange versions [ 'jitsu',
28 silly addNameRange [ '0.4.14',
28 silly addNameRange '0.4.15',
28 silly addNameRange '0.4.16',
28 silly addNameRange '0.5.0',
28 silly addNameRange '0.5.0-1',
28 silly addNameRange '0.6.0',
28 silly addNameRange '0.6.1',
28 silly addNameRange '0.6.1-1',
28 silly addNameRange '0.6.2',
28 silly addNameRange '0.6.3',
28 silly addNameRange '0.7.0',
28 silly addNameRange '0.7.0-1',
28 silly addNameRange '0.7.0-2',
28 silly addNameRange '0.7.1',
28 silly addNameRange '0.7.2',
28 silly addNameRange '0.7.2-1',
28 silly addNameRange '0.7.3',
28 silly addNameRange '0.7.4',
28 silly addNameRange '0.7.4-1',
28 silly addNameRange '0.7.5',
28 silly addNameRange '0.7.6',
28 silly addNameRange '0.7.6-1',
28 silly addNameRange '0.7.7',
28 silly addNameRange '0.7.7-1',
28 silly addNameRange '0.7.7-2',
28 silly addNameRange '0.7.100',
28 silly addNameRange '0.8.0',
28 silly addNameRange '0.8.1',
28 silly addNameRange '0.8.2',
28 silly addNameRange '0.8.2-1',
28 silly addNameRange '0.8.3',
28 silly addNameRange '0.8.4',
28 silly addNameRange '0.8.4-1',
28 silly addNameRange '0.8.5',
28 silly addNameRange '0.8.5-1',
28 silly addNameRange '0.8.6',
28 silly addNameRange '0.8.7',
28 silly addNameRange '0.8.8',
28 silly addNameRange '0.8.9',
28 silly addNameRange '0.9.0',
28 silly addNameRange '0.9.1',
28 silly addNameRange '0.9.2',
28 silly addNameRange '0.9.3',
28 silly addNameRange '0.9.4',
28 silly addNameRange '0.9.5',
28 silly addNameRange '0.9.6',
28 silly addNameRange '0.9.7',
28 silly addNameRange '0.9.8',
28 silly addNameRange '0.10.0',
28 silly addNameRange '0.10.1',
28 silly addNameRange '0.10.2',
28 silly addNameRange '0.10.3',
28 silly addNameRange '0.10.3-1',
28 silly addNameRange '0.10.3-2',
28 silly addNameRange '0.10.4',
28 silly addNameRange '0.10.5',
28 silly addNameRange '0.11.0',
28 silly addNameRange '0.11.1',
28 silly addNameRange '0.11.2',
28 silly addNameRange '0.11.3',
28 silly addNameRange '0.11.4',
28 silly addNameRange '0.11.5',
28 silly addNameRange '0.11.6',
28 silly addNameRange '0.11.7',
28 silly addNameRange '0.12.0',
28 silly addNameRange '0.12.1',
28 silly addNameRange '0.12.2',
28 silly addNameRange '0.12.3',
28 silly addNameRange '0.12.4',
28 silly addNameRange '0.12.5',
28 silly addNameRange '0.12.6',
28 silly addNameRange '0.12.6-1',
28 silly addNameRange '0.12.7',
28 silly addNameRange '0.12.8',
28 silly addNameRange '0.12.9',
28 silly addNameRange '0.12.10',
28 silly addNameRange '0.12.10-1',
28 silly addNameRange '0.12.10-2',
28 silly addNameRange '0.12.11',
28 silly addNameRange '0.12.12',
28 silly addNameRange '0.12.13',
28 silly addNameRange '0.12.14',
28 silly addNameRange '0.12.15',
28 silly addNameRange '0.13.0',
28 silly addNameRange '0.13.1',
28 silly addNameRange '0.13.2',
28 silly addNameRange '0.13.3',
28 silly addNameRange '0.13.4',
28 silly addNameRange '0.13.5',
28 silly addNameRange '0.13.6',
28 silly addNameRange '0.13.7',
28 silly addNameRange '0.13.8',
28 silly addNameRange '0.13.9',
28 silly addNameRange '0.13.10',
28 silly addNameRange '0.13.11',
28 silly addNameRange '0.13.12',
28 silly addNameRange '0.13.13',
28 silly addNameRange '0.13.14',
28 silly addNameRange '0.13.15',
28 silly addNameRange '0.13.16' ] ]
29 verbose addNamed [ 'jitsu', '0.13.16' ]
30 verbose addNamed [ '0.13.16', '0.13.16' ]
31 silly lockFile ed350493-jitsu-0-13-16 jitsu@0.13.16
32 verbose lock jitsu@0.13.16 /Users/osx/.npm/ed350493-jitsu-0-13-16.lock
33 verbose read json /Users/osx/.npm/jitsu/0.13.16/package/package.json
34 silly lockFile ed350493-jitsu-0-13-16 jitsu@0.13.16
35 silly lockFile ed350493-jitsu-0-13-16 jitsu@0.13.16
36 silly lockFile e680b62f-jitsu jitsu@
37 silly lockFile e680b62f-jitsu jitsu@
38 silly resolved [ { name: 'jitsu',
38 silly resolved description: 'Flawless command line deployment of Node.js apps to the cloud',
38 silly resolved keywords:
38 silly resolved [ 'cli',
38 silly resolved 'nodejitsu',
38 silly resolved 'cloud hosting',
38 silly resolved 'platform-as-a-service',
38 silly resolved 'deployment' ],
38 silly resolved version: '0.13.16',
38 silly resolved author: { name: 'Nodejitsu Inc.', email: 'info@nodejitsu.com' },
38 silly resolved maintainers: [ [Object], [Object] ],
38 silly resolved repository: { type: 'git', url: 'http://github.com/nodejitsu/jitsu.git' },
38 silly resolved preferGlobal: true,
38 silly resolved dependencies:
38 silly resolved { canihaz: '1.0.1',
38 silly resolved colors: '0.6.2',
38 silly resolved complete: '0.3.1',
38 silly resolved dateformat: '1.0.2-1.2.3',
38 silly resolved flatiron: '0.3.8',
38 silly resolved 'flatiron-cli-config': '0.1.4',
38 silly resolved 'flatiron-cli-users': '0.1.8',
38 silly resolved fstream: '0.1.25',
38 silly resolved 'fstream-npm': '0.1.6',
38 silly resolved ladder: '0.0.1',
38 silly resolved 'nodejitsu-api': '0.6.3',
38 silly resolved opener: '1.3.x',
38 silly resolved pkginfo: '0.3.0',
38 silly resolved progress: '0.1.0',
38 silly resolved request: '2.28.0',
38 silly resolved 'require-analyzer': '0.5.0',
38 silly resolved 'spawn-command': '0.0.2',
38 silly resolved semver: '1.0.14',
38 silly resolved tar: '0.1.18',
38 silly resolved wizard: '0.0.1' },
38 silly resolved canihaz: { npm: '1.3.15' },
38 silly resolved devDependencies: { nock: '0.25.x', vows: '0.7.x' },
38 silly resolved bin: { jitsu: './bin/jitsu' },
38 silly resolved main: './lib/jitsu',
38 silly resolved scripts: { test: 'vows test/commands/*-test.js test/lib/*-test.js --spec -i' },
38 silly resolved engines: { node: '>= 0.6.0' },
38 silly resolved license: 'MIT',
38 silly resolved readme: '# jitsu [![Build Status](https://secure.travis-ci.org/nodejitsu/jitsu.png?branch=master)](http://travis-ci.org/nodejitsu/jitsu)\n*Flawless command line deployment of Node.js apps to the cloud*\n\n<img src="https://github.com/nodejitsu/jitsu/raw/master/assets/jitsu.png"/>\n\n## Overview\n\n[Jitsu](https://github.com/nodejitsu/jitsu) is a [Command Line Tool (CLI)](http://en.wikipedia.org/wiki/Command-line_interface) for managing and deploying Node.js applications. It\'s open-source and easy to use. [We\'ve](https://github.com/nodejitsu) designed `jitsu` to be suitable for command line beginners, but still be powerful and extensible enough for production usage.\n\n`jitsu` requires `npm`, the [node package manager](http://npmjs.org).\n\n## One-line jitsu install\n\n [sudo] npm install jitsu -g\n\n## Features\n\n`jitsu` is built on some amazing technologies which we\'ve been actively building with the community since 2009. `jitsu` is fully extendable and extremely modular ( see [Libraries](#Libraries) section ).\n\n - Allows for seamless deployment of your Node.js applications to the cloud\n - Ships with use-full boilerplates and sample applications through [Node Apps](https://github.com/nodeapps) project integration\n - Fully supports `npm` dependency resolution on deployment to [Nodejitsu](http://nodejitsu.com)\n - Full support of [Nodejitsu\'s API](https://github.com/nodejitsu/nodejitsu-api) ( a plethora of node.js goodies )\n - Integrated multi-level multi-transport logging support via [Winston](https://github.com/flatiron/winston)\n - Too many to list... seek [further knowledge ](https://github.com/nodejitsu/handbook) or just try it out!\n\n\n# One-Line Node App Installation\n\n**If you don\'t have an application yet, you can use one of ours!**\n\n jitsu install\n\n# One-Line Node App Deployment\n\n jitsu deploy\n\n*( inside the path of your Node.js application )*\n\n\nThis will create a new application, package.json, and deploy your path to [Nodejitsu](http://nodejitsu.com). If it\'s your first deployment, you\'ll be prompted for some information such as *subdomain* and *start script* but it\'s really easy and we promise it will only take a few seconds.\n\nIf you have any issues deploying your node.js application please feel free to open up an issue on the [Github Issues](https://github.com/nodejitsu/jitsu/issues) section of this page, we\'ll have someone get back to you in a flash!\n\n## Usage\n\n`jitsu` is mostly self documenting. After installation, run the `jitsu` command from your command line.\n\nIf it\'s your first time using `jitsu`, you will be prompted to login with an existing account or create a new account.\n\n<img src="https://github.com/nodejitsu/jitsu/raw/master/assets/login.png"/>\n\n## After you\'ve logged in, you can start deploying apps immediately!\n\n\n\n## Command Line Usage\n\n`jitsu` is mostly self-documenting. Try any of these commands to get started.\n\n\n **Usage:**\n \n jitsu <resource> <action> <param1> <param2> ...\n \n **Common Commands:**\n\n *To sign up for [Nodejitsu](http://nodejitsu.com)*\n\n jitsu signup\n\n *To log into [Nodejitsu](http://nodejitsu.com)*\n\n jitsu login\n\n *To install a pre-built application*\n\n jitsu install\n\n *Deploys application in the current path to [Nodejitsu](http://nodejitsu.com)*\n \n jitsu deploy\n \n *Lists all applications for the current user*\n \n jitsu list\n \n *Additional Commands*\n \n jitsu apps\n jitsu snapshots\n jitsu users\n jitsu logs\n jitsu databases\n jitsu conf\n jitsu logout\n\n\n\n### Help\n\n`jitsu` is mostly self documenting. We suggest just trying it out. All commands will yield friendly messages if you specify incorrect parameters. If you find anything difficult to use, please open up a [Github issue](https://github.com/nodejitsu/jitsu/issues) or pull request! \n\n jitsu help\n jitsu help apps\n jitsu help snapshots\n jitsu help users\n jitsu help logs\n jitsu help databases\n jitsu help config\n\n## .jitsuconf file\n\nAll configuration data for your local `jitsu` install is located in the *.jitsuconf* file in your home directory. Directly modifying this file is not really advised. You should be able to make all configuration changes via:\n\n jitsu config\n\nIf you need to have multiple configuration files, use --localconf or --jitsuconf options.\n\nSome Examples:\n\n jitsu config set colors false # disable colors\n jitsu config set timeout 480000 # set request timeouts to 8 minutes\n jitsu config set noanalyze true # disable package analyzer\n jitsu config set protocol https # Always use HTTP Secure\n\n##jitsu options\n\n jitsu [commands] [options]\n \n --version print jitsu version and exit\n --localconf search for .jitsuconf file in ./ and then parent directories\n --jitsuconf [file] specify file to load configuration from\n --noanalyze skip require-analyzer: do not attempt to dynamicially detect dependencies\n\n##jitsu behind proxy\n\nIf you are behind a proxy and you haven\'t configured jitsu to use it, `jitsu` will throw an error, `Jitsu requires you to connect to Nodejitsu\'s stack (api.nodejitsu.com)`.\nIn order to solve this issue, you can configure jitsu to use a proxy by executing the following command.\n\n jitsu config set proxy http://proxy.domain.com:3128/\n\nIf you need to authenticate yourselves to the proxy, you can try this command.\n\n jitsu config set proxy http://user:pass@proxy.domain.com:3128/\n\n<a name="Libraries"></a>\n\n##jitsu hooks\n\nYou can add pre-deploy and post-deploy hooks to jitsu for running build scripts, tagging releases or anything else you want to do. These are hooks that are executed before or after deploying your application on the local machine. They are stored in your package.json:\n\n {\n "name": "test-app",\n "subdomain": "test-app",\n "scripts": {\n "predeploy": "echo This will be run before deploying the app",\n "postdeploy": "echo This will be run after deploying the app",\n "start": "app.js"\n },\n "engines": {\n "node": "0.6.x"\n },\n "version": "0.0.0"\n }\n\nWhich results in the following output when deploying:\n\n $ jitsu deploy\n info: Welcome to Nodejitsu nodejitsu\n info: It worked if it ends with Nodejitsu ok\n info: Executing command deploy\n info: Analyzing your application dependencies in app.js\n info: Checking app availability test-app\n info: Creating app test-app\n This will be run before deploying the app\n info: Creating snapshot 0.0.0\n info: Updating app test-app\n info: Activating snapshot 0.0.0 for test-app\n info: Starting app test-app\n info: App test-app is now started\n info: http://test-app.jit.su on Port 80\n This will be run after deploying the app\n info: Nodejitsu ok\n\n## Libraries\n`jitsu` is built on a few well developed, well maintained Node.js libraries. The [Nodejitsu](http://nodejitsu.com) team and friends have been building and using these projects actively for the past two years. They are the most used Node libraries (see: [http://search.npmjs.org/](http://search.npmjs.org/)) and are actively maintained by Nodejitsu and other core members of the Node.js community. Each library serves a specific function and we highly suggest you check each one out individually if you wish to increase your knowledge of Node.js\n\n- [npm](http://npmjs.org) - Node Package Manager\n- [colors](https://github.com/marak/colors.js) - Terminal Colors module\n- [optimist](https://github.com/substack/node-optimist) - CLI Options Parsing\n- [request](https://github.com/mikeal/request) - http request module\n- [async](https://github.com/caolan/async) - Asynchronous Iteration\n- [vows](http://vowsjs.org) - Asynchronous BDD testing library\n- [winston](https://github.com/flatiron/winston) - Multi-transport logging library\n\n### Need more?\nThe documentation for `jitsu` and the [Nodejitsu](http://nodejitsu.com) APIs is open-source and a work in-progress. For more information checkout the [Nodejitsu Handbook](https://github.com/nodejitsu/handbook)\n\n#### (C) Copyright 2010 - 2013, [Nodejitsu](http://nodejitsu.com) Inc.\n',
38 silly resolved readmeFilename: 'README.md',
38 silly resolved _id: 'jitsu@0.13.16',
38 silly resolved _from: 'jitsu@' } ]
39 info install jitsu@0.13.16 into /usr/local/lib
40 info installOne jitsu@0.13.16
41 verbose from cache /Users/osx/.npm/jitsu/0.13.16/package/package.json
42 info /usr/local/lib/node_modules/jitsu unbuild
43 verbose read json /usr/local/lib/node_modules/jitsu/package.json
44 verbose tar unpack /Users/osx/.npm/jitsu/0.13.16/package.tgz
45 silly lockFile e08531dc-usr-local-lib-node-modules-jitsu /usr/local/lib/node_modules/jitsu
46 verbose lock /usr/local/lib/node_modules/jitsu /Users/osx/.npm/e08531dc-usr-local-lib-node-modules-jitsu.lock
47 silly lockFile af0d3e9b-sx-npm-jitsu-0-13-16-package-tgz /Users/osx/.npm/jitsu/0.13.16/package.tgz
48 verbose lock /Users/osx/.npm/jitsu/0.13.16/package.tgz /Users/osx/.npm/af0d3e9b-sx-npm-jitsu-0-13-16-package-tgz.lock
49 silly gunzTarPerm modes [ '755', '644' ]
50 silly gunzTarPerm extractEntry package.json
51 silly gunzTarPerm extractEntry .npmignore
52 silly gunzTarPerm extractEntry README.md
53 silly gunzTarPerm extractEntry LICENSE
54 silly gunzTarPerm extractEntry .travis.yml
55 silly gunzTarPerm extractEntry assets/jitsu.png
56 silly gunzTarPerm extractEntry assets/login.png
57 silly gunzTarPerm extractEntry bin/jitsu
58 silly gunzTarPerm extractEntry lib/jitsu.js
59 silly gunzTarPerm extractEntry lib/jitsu/alias.js
60 silly gunzTarPerm extractEntry lib/jitsu/commands.js
61 silly gunzTarPerm extractEntry lib/jitsu/completion.js
62 silly gunzTarPerm extractEntry lib/jitsu/config.js
63 silly gunzTarPerm extractEntry lib/jitsu/package.js
64 silly gunzTarPerm extractEntry lib/jitsu/properties.js
65 silly gunzTarPerm extractEntry lib/jitsu/usage.js
66 silly gunzTarPerm extractEntry lib/jitsu/commands/apps.js
67 silly gunzTarPerm extractEntry lib/jitsu/commands/databases.js
68 silly gunzTarPerm extractEntry lib/jitsu/commands/env.js
69 silly gunzTarPerm extractEntry lib/jitsu/commands/install.js
70 silly gunzTarPerm extractEntry lib/jitsu/commands/logs.js
71 silly gunzTarPerm extractEntry lib/jitsu/commands/package.js
72 silly gunzTarPerm extractEntry lib/jitsu/commands/snapshots.js
73 silly gunzTarPerm extractEntry lib/jitsu/commands/tokens.js
74 silly gunzTarPerm extractEntry lib/jitsu/commands/ui.js
75 silly gunzTarPerm extractEntry lib/jitsu/commands/users.js
76 silly gunzTarPerm extractEntry lib/jitsu/common/index.js
77 silly gunzTarPerm extractEntry lib/jitsu/common/logfile.js
78 silly gunzTarPerm extractEntry test/commands/apps-test.js
79 silly gunzTarPerm extractEntry test/commands/bad-test.js
80 silly gunzTarPerm extractEntry test/commands/databases-test.js
81 silly gunzTarPerm extractEntry test/commands/env-test.js
82 silly gunzTarPerm extractEntry test/commands/logs-test.js
83 silly gunzTarPerm extractEntry test/commands/no-colors-test.js
84 silly gunzTarPerm extractEntry test/commands/package-test.js
85 silly gunzTarPerm extractEntry test/commands/snapshots-test.js
86 silly gunzTarPerm extractEntry test/commands/tokens-test.js
87 silly gunzTarPerm extractEntry test/commands/users-test.js
88 silly gunzTarPerm extractEntry test/fixtures/dot-jitsuconf
89 silly gunzTarPerm extractEntry test/fixtures/example-app/package.json
90 silly gunzTarPerm extractEntry test/fixtures/example-app/server.js
91 silly gunzTarPerm extractEntry test/fixtures/logged-out-jitsuconf
92 silly gunzTarPerm extractEntry test/helpers/macros.js
93 silly gunzTarPerm extractEntry test/lib/package-test.js
94 verbose read json /usr/local/lib/node_modules/jitsu/package.json
95 silly lockFile e08531dc-usr-local-lib-node-modules-jitsu /usr/local/lib/node_modules/jitsu
96 silly lockFile e08531dc-usr-local-lib-node-modules-jitsu /usr/local/lib/node_modules/jitsu
97 silly lockFile af0d3e9b-sx-npm-jitsu-0-13-16-package-tgz /Users/osx/.npm/jitsu/0.13.16/package.tgz
98 silly lockFile af0d3e9b-sx-npm-jitsu-0-13-16-package-tgz /Users/osx/.npm/jitsu/0.13.16/package.tgz
99 info preinstall jitsu@0.13.16
100 verbose from cache /usr/local/lib/node_modules/jitsu/package.json
101 verbose readDependencies using package.json deps
102 verbose from cache /usr/local/lib/node_modules/jitsu/package.json
103 verbose readDependencies using package.json deps
104 verbose cache add [ 'canihaz@1.0.1', null ]
105 verbose cache add name=undefined spec="canihaz@1.0.1" args=["canihaz@1.0.1",null]
106 verbose parsed url { protocol: null,
106 verbose parsed url slashes: null,
106 verbose parsed url auth: null,
106 verbose parsed url host: null,
106 verbose parsed url port: null,
106 verbose parsed url hostname: null,
106 verbose parsed url hash: null,
106 verbose parsed url search: null,
106 verbose parsed url query: null,
106 verbose parsed url pathname: 'canihaz@1.0.1',
106 verbose parsed url path: 'canihaz@1.0.1',
106 verbose parsed url href: 'canihaz@1.0.1' }
107 verbose cache add name="canihaz" spec="1.0.1" args=["canihaz","1.0.1"]
108 verbose parsed url { protocol: null,
108 verbose parsed url slashes: null,
108 verbose parsed url auth: null,
108 verbose parsed url host: null,
108 verbose parsed url port: null,
108 verbose parsed url hostname: null,
108 verbose parsed url hash: null,
108 verbose parsed url search: null,
108 verbose parsed url query: null,
108 verbose parsed url pathname: '1.0.1',
108 verbose parsed url path: '1.0.1',
108 verbose parsed url href: '1.0.1' }
109 verbose addNamed [ 'canihaz', '1.0.1' ]
110 verbose addNamed [ '1.0.1', '1.0.1' ]
111 silly lockFile 79790dc5-canihaz-1-0-1 canihaz@1.0.1
112 verbose lock canihaz@1.0.1 /Users/osx/.npm/79790dc5-canihaz-1-0-1.lock
113 verbose cache add [ 'colors@0.6.2', null ]
114 verbose cache add name=undefined spec="colors@0.6.2" args=["colors@0.6.2",null]
115 verbose parsed url { protocol: null,
115 verbose parsed url slashes: null,
115 verbose parsed url auth: null,
115 verbose parsed url host: null,
115 verbose parsed url port: null,
115 verbose parsed url hostname: null,
115 verbose parsed url hash: null,
115 verbose parsed url search: null,
115 verbose parsed url query: null,
115 verbose parsed url pathname: 'colors@0.6.2',
115 verbose parsed url path: 'colors@0.6.2',
115 verbose parsed url href: 'colors@0.6.2' }
116 verbose cache add name="colors" spec="0.6.2" args=["colors","0.6.2"]
117 verbose parsed url { protocol: null,
117 verbose parsed url slashes: null,
117 verbose parsed url auth: null,
117 verbose parsed url host: null,
117 verbose parsed url port: null,
117 verbose parsed url hostname: null,
117 verbose parsed url hash: null,
117 verbose parsed url search: null,
117 verbose parsed url query: null,
117 verbose parsed url pathname: '0.6.2',
117 verbose parsed url path: '0.6.2',
117 verbose parsed url href: '0.6.2' }
118 verbose addNamed [ 'colors', '0.6.2' ]
119 verbose addNamed [ '0.6.2', '0.6.2' ]
120 silly lockFile 1ce149d5-colors-0-6-2 colors@0.6.2
121 verbose lock colors@0.6.2 /Users/osx/.npm/1ce149d5-colors-0-6-2.lock
122 verbose cache add [ 'complete@0.3.1', null ]
123 verbose cache add name=undefined spec="complete@0.3.1" args=["complete@0.3.1",null]
124 verbose parsed url { protocol: null,
124 verbose parsed url slashes: null,
124 verbose parsed url auth: null,
124 verbose parsed url host: null,
124 verbose parsed url port: null,
124 verbose parsed url hostname: null,
124 verbose parsed url hash: null,
124 verbose parsed url search: null,
124 verbose parsed url query: null,
124 verbose parsed url pathname: 'complete@0.3.1',
124 verbose parsed url path: 'complete@0.3.1',
124 verbose parsed url href: 'complete@0.3.1' }
125 verbose cache add name="complete" spec="0.3.1" args=["complete","0.3.1"]
126 verbose parsed url { protocol: null,
126 verbose parsed url slashes: null,
126 verbose parsed url auth: null,
126 verbose parsed url host: null,
126 verbose parsed url port: null,
126 verbose parsed url hostname: null,
126 verbose parsed url hash: null,
126 verbose parsed url search: null,
126 verbose parsed url query: null,
126 verbose parsed url pathname: '0.3.1',
126 verbose parsed url path: '0.3.1',
126 verbose parsed url href: '0.3.1' }
127 verbose addNamed [ 'complete', '0.3.1' ]
128 verbose addNamed [ '0.3.1', '0.3.1' ]
129 silly lockFile bb32598c-complete-0-3-1 complete@0.3.1
130 verbose lock complete@0.3.1 /Users/osx/.npm/bb32598c-complete-0-3-1.lock
131 verbose cache add [ 'dateformat@1.0.2-1.2.3', null ]
132 verbose cache add name=undefined spec="dateformat@1.0.2-1.2.3" args=["dateformat@1.0.2-1.2.3",null]
133 verbose parsed url { protocol: null,
133 verbose parsed url slashes: null,
133 verbose parsed url auth: null,
133 verbose parsed url host: null,
133 verbose parsed url port: null,
133 verbose parsed url hostname: null,
133 verbose parsed url hash: null,
133 verbose parsed url search: null,
133 verbose parsed url query: null,
133 verbose parsed url pathname: 'dateformat@1.0.2-1.2.3',
133 verbose parsed url path: 'dateformat@1.0.2-1.2.3',
133 verbose parsed url href: 'dateformat@1.0.2-1.2.3' }
134 verbose cache add name="dateformat" spec="1.0.2-1.2.3" args=["dateformat","1.0.2-1.2.3"]
135 verbose parsed url { protocol: null,
135 verbose parsed url slashes: null,
135 verbose parsed url auth: null,
135 verbose parsed url host: null,
135 verbose parsed url port: null,
135 verbose parsed url hostname: null,
135 verbose parsed url hash: null,
135 verbose parsed url search: null,
135 verbose parsed url query: null,
135 verbose parsed url pathname: '1.0.2-1.2.3',
135 verbose parsed url path: '1.0.2-1.2.3',
135 verbose parsed url href: '1.0.2-1.2.3' }
136 verbose addNamed [ 'dateformat', '1.0.2-1.2.3' ]
137 verbose addNamed [ '1.0.2-1.2.3', '1.0.2-1.2.3' ]
138 silly lockFile 644d6e27-dateformat-1-0-2-1-2-3 dateformat@1.0.2-1.2.3
139 verbose lock dateformat@1.0.2-1.2.3 /Users/osx/.npm/644d6e27-dateformat-1-0-2-1-2-3.lock
140 verbose cache add [ 'flatiron@0.3.8', null ]
141 verbose cache add name=undefined spec="flatiron@0.3.8" args=["flatiron@0.3.8",null]
142 verbose parsed url { protocol: null,
142 verbose parsed url slashes: null,
142 verbose parsed url auth: null,
142 verbose parsed url host: null,
142 verbose parsed url port: null,
142 verbose parsed url hostname: null,
142 verbose parsed url hash: null,
142 verbose parsed url search: null,
142 verbose parsed url query: null,
142 verbose parsed url pathname: 'flatiron@0.3.8',
142 verbose parsed url path: 'flatiron@0.3.8',
142 verbose parsed url href: 'flatiron@0.3.8' }
143 verbose cache add name="flatiron" spec="0.3.8" args=["flatiron","0.3.8"]
144 verbose parsed url { protocol: null,
144 verbose parsed url slashes: null,
144 verbose parsed url auth: null,
144 verbose parsed url host: null,
144 verbose parsed url port: null,
144 verbose parsed url hostname: null,
144 verbose parsed url hash: null,
144 verbose parsed url search: null,
144 verbose parsed url query: null,
144 verbose parsed url pathname: '0.3.8',
144 verbose parsed url path: '0.3.8',
144 verbose parsed url href: '0.3.8' }
145 verbose addNamed [ 'flatiron', '0.3.8' ]
146 verbose addNamed [ '0.3.8', '0.3.8' ]
147 silly lockFile 227a7b3a-flatiron-0-3-8 flatiron@0.3.8
148 verbose lock flatiron@0.3.8 /Users/osx/.npm/227a7b3a-flatiron-0-3-8.lock
149 verbose cache add [ 'flatiron-cli-config@0.1.4', null ]
150 verbose cache add name=undefined spec="flatiron-cli-config@0.1.4" args=["flatiron-cli-config@0.1.4",null]
151 verbose parsed url { protocol: null,
151 verbose parsed url slashes: null,
151 verbose parsed url auth: null,
151 verbose parsed url host: null,
151 verbose parsed url port: null,
151 verbose parsed url hostname: null,
151 verbose parsed url hash: null,
151 verbose parsed url search: null,
151 verbose parsed url query: null,
151 verbose parsed url pathname: 'flatiron-cli-config@0.1.4',
151 verbose parsed url path: 'flatiron-cli-config@0.1.4',
151 verbose parsed url href: 'flatiron-cli-config@0.1.4' }
152 verbose cache add name="flatiron-cli-config" spec="0.1.4" args=["flatiron-cli-config","0.1.4"]
153 verbose parsed url { protocol: null,
153 verbose parsed url slashes: null,
153 verbose parsed url auth: null,
153 verbose parsed url host: null,
153 verbose parsed url port: null,
153 verbose parsed url hostname: null,
153 verbose parsed url hash: null,
153 verbose parsed url search: null,
153 verbose parsed url query: null,
153 verbose parsed url pathname: '0.1.4',
153 verbose parsed url path: '0.1.4',
153 verbose parsed url href: '0.1.4' }
154 verbose addNamed [ 'flatiron-cli-config', '0.1.4' ]
155 verbose addNamed [ '0.1.4', '0.1.4' ]
156 silly lockFile 883c3e2d-flatiron-cli-config-0-1-4 flatiron-cli-config@0.1.4
157 verbose lock flatiron-cli-config@0.1.4 /Users/osx/.npm/883c3e2d-flatiron-cli-config-0-1-4.lock
158 verbose cache add [ 'flatiron-cli-users@0.1.8', null ]
159 verbose cache add name=undefined spec="flatiron-cli-users@0.1.8" args=["flatiron-cli-users@0.1.8",null]
160 verbose parsed url { protocol: null,
160 verbose parsed url slashes: null,
160 verbose parsed url auth: null,
160 verbose parsed url host: null,
160 verbose parsed url port: null,
160 verbose parsed url hostname: null,
160 verbose parsed url hash: null,
160 verbose parsed url search: null,
160 verbose parsed url query: null,
160 verbose parsed url pathname: 'flatiron-cli-users@0.1.8',
160 verbose parsed url path: 'flatiron-cli-users@0.1.8',
160 verbose parsed url href: 'flatiron-cli-users@0.1.8' }
161 verbose cache add name="flatiron-cli-users" spec="0.1.8" args=["flatiron-cli-users","0.1.8"]
162 verbose parsed url { protocol: null,
162 verbose parsed url slashes: null,
162 verbose parsed url auth: null,
162 verbose parsed url host: null,
162 verbose parsed url port: null,
162 verbose parsed url hostname: null,
162 verbose parsed url hash: null,
162 verbose parsed url search: null,
162 verbose parsed url query: null,
162 verbose parsed url pathname: '0.1.8',
162 verbose parsed url path: '0.1.8',
162 verbose parsed url href: '0.1.8' }
163 verbose addNamed [ 'flatiron-cli-users', '0.1.8' ]
164 verbose addNamed [ '0.1.8', '0.1.8' ]
165 silly lockFile 0284cd67-flatiron-cli-users-0-1-8 flatiron-cli-users@0.1.8
166 verbose lock flatiron-cli-users@0.1.8 /Users/osx/.npm/0284cd67-flatiron-cli-users-0-1-8.lock
167 verbose url raw canihaz/1.0.1
168 verbose url resolving [ 'https://registry.npmjs.org/', './canihaz/1.0.1' ]
169 verbose url resolved https://registry.npmjs.org/canihaz/1.0.1
170 info trying registry request attempt 1 at 16:15:55
171 verbose etag "1163YXLCSR630YV93Y5BGGMIJ"
172 http GET https://registry.npmjs.org/canihaz/1.0.1
173 verbose cache add [ 'fstream@0.1.25', null ]
174 verbose cache add name=undefined spec="fstream@0.1.25" args=["fstream@0.1.25",null]
175 verbose parsed url { protocol: null,
175 verbose parsed url slashes: null,
175 verbose parsed url auth: null,
175 verbose parsed url host: null,
175 verbose parsed url port: null,
175 verbose parsed url hostname: null,
175 verbose parsed url hash: null,
175 verbose parsed url search: null,
175 verbose parsed url query: null,
175 verbose parsed url pathname: 'fstream@0.1.25',
175 verbose parsed url path: 'fstream@0.1.25',
175 verbose parsed url href: 'fstream@0.1.25' }
176 verbose cache add name="fstream" spec="0.1.25" args=["fstream","0.1.25"]
177 verbose parsed url { protocol: null,
177 verbose parsed url slashes: null,
177 verbose parsed url auth: null,
177 verbose parsed url host: null,
177 verbose parsed url port: null,
177 verbose parsed url hostname: null,
177 verbose parsed url hash: null,
177 verbose parsed url search: null,
177 verbose parsed url query: null,
177 verbose parsed url pathname: '0.1.25',
177 verbose parsed url path: '0.1.25',
177 verbose parsed url href: '0.1.25' }
178 verbose addNamed [ 'fstream', '0.1.25' ]
179 verbose addNamed [ '0.1.25', '0.1.25' ]
180 silly lockFile 11eef8ec-fstream-0-1-25 fstream@0.1.25
181 verbose lock fstream@0.1.25 /Users/osx/.npm/11eef8ec-fstream-0-1-25.lock
182 verbose cache add [ 'fstream-npm@0.1.6', null ]
183 verbose cache add name=undefined spec="fstream-npm@0.1.6" args=["fstream-npm@0.1.6",null]
184 verbose parsed url { protocol: null,
184 verbose parsed url slashes: null,
184 verbose parsed url auth: null,
184 verbose parsed url host: null,
184 verbose parsed url port: null,
184 verbose parsed url hostname: null,
184 verbose parsed url hash: null,
184 verbose parsed url search: null,
184 verbose parsed url query: null,
184 verbose parsed url pathname: 'fstream-npm@0.1.6',
184 verbose parsed url path: 'fstream-npm@0.1.6',
184 verbose parsed url href: 'fstream-npm@0.1.6' }
185 verbose cache add name="fstream-npm" spec="0.1.6" args=["fstream-npm","0.1.6"]
186 verbose parsed url { protocol: null,
186 verbose parsed url slashes: null,
186 verbose parsed url auth: null,
186 verbose parsed url host: null,
186 verbose parsed url port: null,
186 verbose parsed url hostname: null,
186 verbose parsed url hash: null,
186 verbose parsed url search: null,
186 verbose parsed url query: null,
186 verbose parsed url pathname: '0.1.6',
186 verbose parsed url path: '0.1.6',
186 verbose parsed url href: '0.1.6' }
187 verbose addNamed [ 'fstream-npm', '0.1.6' ]
188 verbose addNamed [ '0.1.6', '0.1.6' ]
189 silly lockFile fcc83340-fstream-npm-0-1-6 fstream-npm@0.1.6
190 verbose lock fstream-npm@0.1.6 /Users/osx/.npm/fcc83340-fstream-npm-0-1-6.lock
191 verbose cache add [ 'ladder@0.0.1', null ]
192 verbose cache add name=undefined spec="ladder@0.0.1" args=["ladder@0.0.1",null]
193 verbose parsed url { protocol: null,
193 verbose parsed url slashes: null,
193 verbose parsed url auth: null,
193 verbose parsed url host: null,
193 verbose parsed url port: null,
193 verbose parsed url hostname: null,
193 verbose parsed url hash: null,
193 verbose parsed url search: null,
193 verbose parsed url query: null,
193 verbose parsed url pathname: 'ladder@0.0.1',
193 verbose parsed url path: 'ladder@0.0.1',
193 verbose parsed url href: 'ladder@0.0.1' }
194 verbose cache add name="ladder" spec="0.0.1" args=["ladder","0.0.1"]
195 verbose parsed url { protocol: null,
195 verbose parsed url slashes: null,
195 verbose parsed url auth: null,
195 verbose parsed url host: null,
195 verbose parsed url port: null,
195 verbose parsed url hostname: null,
195 verbose parsed url hash: null,
195 verbose parsed url search: null,
195 verbose parsed url query: null,
195 verbose parsed url pathname: '0.0.1',
195 verbose parsed url path: '0.0.1',
195 verbose parsed url href: '0.0.1' }
196 verbose addNamed [ 'ladder', '0.0.1' ]
197 verbose addNamed [ '0.0.1', '0.0.1' ]
198 silly lockFile 5b650e45-ladder-0-0-1 ladder@0.0.1
199 verbose lock ladder@0.0.1 /Users/osx/.npm/5b650e45-ladder-0-0-1.lock
200 verbose cache add [ 'nodejitsu-api@0.6.3', null ]
201 verbose cache add name=undefined spec="nodejitsu-api@0.6.3" args=["nodejitsu-api@0.6.3",null]
202 verbose parsed url { protocol: null,
202 verbose parsed url slashes: null,
202 verbose parsed url auth: null,
202 verbose parsed url host: null,
202 verbose parsed url port: null,
202 verbose parsed url hostname: null,
202 verbose parsed url hash: null,
202 verbose parsed url search: null,
202 verbose parsed url query: null,
202 verbose parsed url pathname: 'nodejitsu-api@0.6.3',
202 verbose parsed url path: 'nodejitsu-api@0.6.3',
202 verbose parsed url href: 'nodejitsu-api@0.6.3' }
203 verbose cache add name="nodejitsu-api" spec="0.6.3" args=["nodejitsu-api","0.6.3"]
204 verbose parsed url { protocol: null,
204 verbose parsed url slashes: null,
204 verbose parsed url auth: null,
204 verbose parsed url host: null,
204 verbose parsed url port: null,
204 verbose parsed url hostname: null,
204 verbose parsed url hash: null,
204 verbose parsed url search: null,
204 verbose parsed url query: null,
204 verbose parsed url pathname: '0.6.3',
204 verbose parsed url path: '0.6.3',
204 verbose parsed url href: '0.6.3' }
205 verbose addNamed [ 'nodejitsu-api', '0.6.3' ]
206 verbose addNamed [ '0.6.3', '0.6.3' ]
207 silly lockFile a6466065-nodejitsu-api-0-6-3 nodejitsu-api@0.6.3
208 verbose lock nodejitsu-api@0.6.3 /Users/osx/.npm/a6466065-nodejitsu-api-0-6-3.lock
209 verbose cache add [ 'opener@1.3.x', null ]
210 verbose cache add name=undefined spec="opener@1.3.x" args=["opener@1.3.x",null]
211 verbose parsed url { protocol: null,
211 verbose parsed url slashes: null,
211 verbose parsed url auth: null,
211 verbose parsed url host: null,
211 verbose parsed url port: null,
211 verbose parsed url hostname: null,
211 verbose parsed url hash: null,
211 verbose parsed url search: null,
211 verbose parsed url query: null,
211 verbose parsed url pathname: 'opener@1.3.x',
211 verbose parsed url path: 'opener@1.3.x',
211 verbose parsed url href: 'opener@1.3.x' }
212 verbose cache add name="opener" spec="1.3.x" args=["opener","1.3.x"]
213 verbose parsed url { protocol: null,
213 verbose parsed url slashes: null,
213 verbose parsed url auth: null,
213 verbose parsed url host: null,
213 verbose parsed url port: null,
213 verbose parsed url hostname: null,
213 verbose parsed url hash: null,
213 verbose parsed url search: null,
213 verbose parsed url query: null,
213 verbose parsed url pathname: '1.3.x',
213 verbose parsed url path: '1.3.x',
213 verbose parsed url href: '1.3.x' }
214 verbose addNamed [ 'opener', '1.3.x' ]
215 verbose addNamed [ null, '>=1.3.0- <1.4.0-' ]
216 silly lockFile 55f0eb63-opener-1-3-x opener@1.3.x
217 verbose lock opener@1.3.x /Users/osx/.npm/55f0eb63-opener-1-3-x.lock
218 verbose url raw colors/0.6.2
219 verbose url resolving [ 'https://registry.npmjs.org/', './colors/0.6.2' ]
220 verbose url resolved https://registry.npmjs.org/colors/0.6.2
221 info trying registry request attempt 1 at 16:15:55
222 verbose etag "E8LE0MPX5BZVXWCB1O63IRTWB"
223 http GET https://registry.npmjs.org/colors/0.6.2
224 verbose url raw complete/0.3.1
225 verbose url resolving [ 'https://registry.npmjs.org/', './complete/0.3.1' ]
226 verbose url resolved https://registry.npmjs.org/complete/0.3.1
227 info trying registry request attempt 1 at 16:15:55
228 verbose etag "8B6CQKTH5ZR4WFCFQKOSCOQAU"
229 http GET https://registry.npmjs.org/complete/0.3.1
230 verbose cache add [ 'pkginfo@0.3.0', null ]
231 verbose cache add name=undefined spec="pkginfo@0.3.0" args=["pkginfo@0.3.0",null]
232 verbose parsed url { protocol: null,
232 verbose parsed url slashes: null,
232 verbose parsed url auth: null,
232 verbose parsed url host: null,
232 verbose parsed url port: null,
232 verbose parsed url hostname: null,
232 verbose parsed url hash: null,
232 verbose parsed url search: null,
232 verbose parsed url query: null,
232 verbose parsed url pathname: 'pkginfo@0.3.0',
232 verbose parsed url path: 'pkginfo@0.3.0',
232 verbose parsed url href: 'pkginfo@0.3.0' }
233 verbose cache add name="pkginfo" spec="0.3.0" args=["pkginfo","0.3.0"]
234 verbose parsed url { protocol: null,
234 verbose parsed url slashes: null,
234 verbose parsed url auth: null,
234 verbose parsed url host: null,
234 verbose parsed url port: null,
234 verbose parsed url hostname: null,
234 verbose parsed url hash: null,
234 verbose parsed url search: null,
234 verbose parsed url query: null,
234 verbose parsed url pathname: '0.3.0',
234 verbose parsed url path: '0.3.0',
234 verbose parsed url href: '0.3.0' }
235 verbose addNamed [ 'pkginfo', '0.3.0' ]
236 verbose addNamed [ '0.3.0', '0.3.0' ]
237 silly lockFile c6150d55-pkginfo-0-3-0 pkginfo@0.3.0
238 verbose lock pkginfo@0.3.0 /Users/osx/.npm/c6150d55-pkginfo-0-3-0.lock
239 verbose cache add [ 'progress@0.1.0', null ]
240 verbose cache add name=undefined spec="progress@0.1.0" args=["progress@0.1.0",null]
241 verbose parsed url { protocol: null,
241 verbose parsed url slashes: null,
241 verbose parsed url auth: null,
241 verbose parsed url host: null,
241 verbose parsed url port: null,
241 verbose parsed url hostname: null,
241 verbose parsed url hash: null,
241 verbose parsed url search: null,
241 verbose parsed url query: null,
241 verbose parsed url pathname: 'progress@0.1.0',
241 verbose parsed url path: 'progress@0.1.0',
241 verbose parsed url href: 'progress@0.1.0' }
242 verbose cache add name="progress" spec="0.1.0" args=["progress","0.1.0"]
243 verbose parsed url { protocol: null,
243 verbose parsed url slashes: null,
243 verbose parsed url auth: null,
243 verbose parsed url host: null,
243 verbose parsed url port: null,
243 verbose parsed url hostname: null,
243 verbose parsed url hash: null,
243 verbose parsed url search: null,
243 verbose parsed url query: null,
243 verbose parsed url pathname: '0.1.0',
243 verbose parsed url path: '0.1.0',
243 verbose parsed url href: '0.1.0' }
244 verbose addNamed [ 'progress', '0.1.0' ]
245 verbose addNamed [ '0.1.0', '0.1.0' ]
246 silly lockFile cfd1b5fa-progress-0-1-0 progress@0.1.0
247 verbose lock progress@0.1.0 /Users/osx/.npm/cfd1b5fa-progress-0-1-0.lock
248 verbose cache add [ 'request@2.28.0', null ]
249 verbose cache add name=undefined spec="request@2.28.0" args=["request@2.28.0",null]
250 verbose parsed url { protocol: null,
250 verbose parsed url slashes: null,
250 verbose parsed url auth: null,
250 verbose parsed url host: null,
250 verbose parsed url port: null,
250 verbose parsed url hostname: null,
250 verbose parsed url hash: null,
250 verbose parsed url search: null,
250 verbose parsed url query: null,
250 verbose parsed url pathname: 'request@2.28.0',
250 verbose parsed url path: 'request@2.28.0',
250 verbose parsed url href: 'request@2.28.0' }
251 verbose cache add name="request" spec="2.28.0" args=["request","2.28.0"]
252 verbose parsed url { protocol: null,
252 verbose parsed url slashes: null,
252 verbose parsed url auth: null,
252 verbose parsed url host: null,
252 verbose parsed url port: null,
252 verbose parsed url hostname: null,
252 verbose parsed url hash: null,
252 verbose parsed url search: null,
252 verbose parsed url query: null,
252 verbose parsed url pathname: '2.28.0',
252 verbose parsed url path: '2.28.0',
252 verbose parsed url href: '2.28.0' }
253 verbose addNamed [ 'request', '2.28.0' ]
254 verbose addNamed [ '2.28.0', '2.28.0' ]
255 silly lockFile 4af95dbc-request-2-28-0 request@2.28.0
256 verbose lock request@2.28.0 /Users/osx/.npm/4af95dbc-request-2-28-0.lock
257 verbose cache add [ 'require-analyzer@0.5.0', null ]
258 verbose cache add name=undefined spec="require-analyzer@0.5.0" args=["require-analyzer@0.5.0",null]
259 verbose parsed url { protocol: null,
259 verbose parsed url slashes: null,
259 verbose parsed url auth: null,
259 verbose parsed url host: null,
259 verbose parsed url port: null,
259 verbose parsed url hostname: null,
259 verbose parsed url hash: null,
259 verbose parsed url search: null,
259 verbose parsed url query: null,
259 verbose parsed url pathname: 'require-analyzer@0.5.0',
259 verbose parsed url path: 'require-analyzer@0.5.0',
259 verbose parsed url href: 'require-analyzer@0.5.0' }
260 verbose cache add name="require-analyzer" spec="0.5.0" args=["require-analyzer","0.5.0"]
261 verbose parsed url { protocol: null,
261 verbose parsed url slashes: null,
261 verbose parsed url auth: null,
261 verbose parsed url host: null,
261 verbose parsed url port: null,
261 verbose parsed url hostname: null,
261 verbose parsed url hash: null,
261 verbose parsed url search: null,
261 verbose parsed url query: null,
261 verbose parsed url pathname: '0.5.0',
261 verbose parsed url path: '0.5.0',
261 verbose parsed url href: '0.5.0' }
262 verbose addNamed [ 'require-analyzer', '0.5.0' ]
263 verbose addNamed [ '0.5.0', '0.5.0' ]
264 silly lockFile cb1e7665-require-analyzer-0-5-0 require-analyzer@0.5.0
265 verbose lock require-analyzer@0.5.0 /Users/osx/.npm/cb1e7665-require-analyzer-0-5-0.lock
266 verbose cache add [ 'spawn-command@0.0.2', null ]
267 verbose cache add name=undefined spec="spawn-command@0.0.2" args=["spawn-command@0.0.2",null]
268 verbose parsed url { protocol: null,
268 verbose parsed url slashes: null,
268 verbose parsed url auth: null,
268 verbose parsed url host: null,
268 verbose parsed url port: null,
268 verbose parsed url hostname: null,
268 verbose parsed url hash: null,
268 verbose parsed url search: null,
268 verbose parsed url query: null,
268 verbose parsed url pathname: 'spawn-command@0.0.2',
268 verbose parsed url path: 'spawn-command@0.0.2',
268 verbose parsed url href: 'spawn-command@0.0.2' }
269 verbose cache add name="spawn-command" spec="0.0.2" args=["spawn-command","0.0.2"]
270 verbose parsed url { protocol: null,
270 verbose parsed url slashes: null,
270 verbose parsed url auth: null,
270 verbose parsed url host: null,
270 verbose parsed url port: null,
270 verbose parsed url hostname: null,
270 verbose parsed url hash: null,
270 verbose parsed url search: null,
270 verbose parsed url query: null,
270 verbose parsed url pathname: '0.0.2',
270 verbose parsed url path: '0.0.2',
270 verbose parsed url href: '0.0.2' }
271 verbose addNamed [ 'spawn-command', '0.0.2' ]
272 verbose addNamed [ '0.0.2', '0.0.2' ]
273 silly lockFile e5fc6c9b-spawn-command-0-0-2 spawn-command@0.0.2
274 verbose lock spawn-command@0.0.2 /Users/osx/.npm/e5fc6c9b-spawn-command-0-0-2.lock
275 verbose cache add [ 'semver@1.0.14', null ]
276 verbose cache add name=undefined spec="semver@1.0.14" args=["semver@1.0.14",null]
277 verbose parsed url { protocol: null,
277 verbose parsed url slashes: null,
277 verbose parsed url auth: null,
277 verbose parsed url host: null,
277 verbose parsed url port: null,
277 verbose parsed url hostname: null,
277 verbose parsed url hash: null,
277 verbose parsed url search: null,
277 verbose parsed url query: null,
277 verbose parsed url pathname: 'semver@1.0.14',
277 verbose parsed url path: 'semver@1.0.14',
277 verbose parsed url href: 'semver@1.0.14' }
278 verbose cache add name="semver" spec="1.0.14" args=["semver","1.0.14"]
279 verbose parsed url { protocol: null,
279 verbose parsed url slashes: null,
279 verbose parsed url auth: null,
279 verbose parsed url host: null,
279 verbose parsed url port: null,
279 verbose parsed url hostname: null,
279 verbose parsed url hash: null,
279 verbose parsed url search: null,
279 verbose parsed url query: null,
279 verbose parsed url pathname: '1.0.14',
279 verbose parsed url path: '1.0.14',
279 verbose parsed url href: '1.0.14' }
280 verbose addNamed [ 'semver', '1.0.14' ]
281 verbose addNamed [ '1.0.14', '1.0.14' ]
282 silly lockFile 01678457-semver-1-0-14 semver@1.0.14
283 verbose lock semver@1.0.14 /Users/osx/.npm/01678457-semver-1-0-14.lock
284 verbose cache add [ 'tar@0.1.18', null ]
285 verbose cache add name=undefined spec="tar@0.1.18" args=["tar@0.1.18",null]
286 verbose parsed url { protocol: null,
286 verbose parsed url slashes: null,
286 verbose parsed url auth: null,
286 verbose parsed url host: null,
286 verbose parsed url port: null,
286 verbose parsed url hostname: null,
286 verbose parsed url hash: null,
286 verbose parsed url search: null,
286 verbose parsed url query: null,
286 verbose parsed url pathname: 'tar@0.1.18',
286 verbose parsed url path: 'tar@0.1.18',
286 verbose parsed url href: 'tar@0.1.18' }
287 verbose cache add name="tar" spec="0.1.18" args=["tar","0.1.18"]
288 verbose parsed url { protocol: null,
288 verbose parsed url slashes: null,
288 verbose parsed url auth: null,
288 verbose parsed url host: null,
288 verbose parsed url port: null,
288 verbose parsed url hostname: null,
288 verbose parsed url hash: null,
288 verbose parsed url search: null,
288 verbose parsed url query: null,
288 verbose parsed url pathname: '0.1.18',
288 verbose parsed url path: '0.1.18',
288 verbose parsed url href: '0.1.18' }
289 verbose addNamed [ 'tar', '0.1.18' ]
290 verbose addNamed [ '0.1.18', '0.1.18' ]
291 silly lockFile 5ab94043-tar-0-1-18 tar@0.1.18
292 verbose lock tar@0.1.18 /Users/osx/.npm/5ab94043-tar-0-1-18.lock
293 verbose cache add [ 'wizard@0.0.1', null ]
294 verbose cache add name=undefined spec="wizard@0.0.1" args=["wizard@0.0.1",null]
295 verbose parsed url { protocol: null,
295 verbose parsed url slashes: null,
295 verbose parsed url auth: null,
295 verbose parsed url host: null,
295 verbose parsed url port: null,
295 verbose parsed url hostname: null,
295 verbose parsed url hash: null,
295 verbose parsed url search: null,
295 verbose parsed url query: null,
295 verbose parsed url pathname: 'wizard@0.0.1',
295 verbose parsed url path: 'wizard@0.0.1',
295 verbose parsed url href: 'wizard@0.0.1' }
296 verbose cache add name="wizard" spec="0.0.1" args=["wizard","0.0.1"]
297 verbose parsed url { protocol: null,
297 verbose parsed url slashes: null,
297 verbose parsed url auth: null,
297 verbose parsed url host: null,
297 verbose parsed url port: null,
297 verbose parsed url hostname: null,
297 verbose parsed url hash: null,
297 verbose parsed url search: null,
297 verbose parsed url query: null,
297 verbose parsed url pathname: '0.0.1',
297 verbose parsed url path: '0.0.1',
297 verbose parsed url href: '0.0.1' }
298 verbose addNamed [ 'wizard', '0.0.1' ]
299 verbose addNamed [ '0.0.1', '0.0.1' ]
300 silly lockFile 51ff7584-wizard-0-0-1 wizard@0.0.1
301 verbose lock wizard@0.0.1 /Users/osx/.npm/51ff7584-wizard-0-0-1.lock
302 silly addNameRange { name: 'opener', range: '>=1.3.0- <1.4.0-', hasData: false }
303 verbose url raw dateformat/1.0.2-1.2.3
304 verbose url resolving [ 'https://registry.npmjs.org/', './dateformat/1.0.2-1.2.3' ]
305 verbose url resolved https://registry.npmjs.org/dateformat/1.0.2-1.2.3
306 info trying registry request attempt 1 at 16:15:55
307 verbose etag "DGZBZ3IBCNY2XPE6XDYPRWPA5"
308 http GET https://registry.npmjs.org/dateformat/1.0.2-1.2.3
309 verbose url raw flatiron/0.3.8
310 verbose url resolving [ 'https://registry.npmjs.org/', './flatiron/0.3.8' ]
311 verbose url resolved https://registry.npmjs.org/flatiron/0.3.8
312 info trying registry request attempt 1 at 16:15:55
313 verbose etag "LX5OE9UCUMR8KUY9TGI1MA3P"
314 http GET https://registry.npmjs.org/flatiron/0.3.8
315 verbose url raw flatiron-cli-config/0.1.4
316 verbose url resolving [ 'https://registry.npmjs.org/', './flatiron-cli-config/0.1.4' ]
317 verbose url resolved https://registry.npmjs.org/flatiron-cli-config/0.1.4
318 info trying registry request attempt 1 at 16:15:55
319 verbose etag "7J2X70CGYLGOTQH6M9N5YM9VS"
320 http GET https://registry.npmjs.org/flatiron-cli-config/0.1.4
321 verbose url raw flatiron-cli-users/0.1.8
322 verbose url resolving [ 'https://registry.npmjs.org/', './flatiron-cli-users/0.1.8' ]
323 verbose url resolved https://registry.npmjs.org/flatiron-cli-users/0.1.8
324 info trying registry request attempt 1 at 16:15:55
325 verbose etag "EYOVII58FHIKXC3IHC5I4IHKQ"
326 http GET https://registry.npmjs.org/flatiron-cli-users/0.1.8
327 verbose url raw fstream/0.1.25
328 verbose url resolving [ 'https://registry.npmjs.org/', './fstream/0.1.25' ]
329 verbose url resolved https://registry.npmjs.org/fstream/0.1.25
330 info trying registry request attempt 1 at 16:15:55
331 verbose etag "9EO49ZEGR7G36RBAEI7YLWQBW"
332 http GET https://registry.npmjs.org/fstream/0.1.25
333 verbose url raw fstream-npm/0.1.6
334 verbose url resolving [ 'https://registry.npmjs.org/', './fstream-npm/0.1.6' ]
335 verbose url resolved https://registry.npmjs.org/fstream-npm/0.1.6
336 info trying registry request attempt 1 at 16:15:55
337 verbose etag "8URM0L516X0USGZZD1VU1M292"
338 http GET https://registry.npmjs.org/fstream-npm/0.1.6
339 verbose url raw ladder/0.0.1
340 verbose url resolving [ 'https://registry.npmjs.org/', './ladder/0.0.1' ]
341 verbose url resolved https://registry.npmjs.org/ladder/0.0.1
342 info trying registry request attempt 1 at 16:15:55
343 verbose etag "371S68TEDR2OEL143277B5U66"
344 http GET https://registry.npmjs.org/ladder/0.0.1
345 verbose url raw nodejitsu-api/0.6.3
346 verbose url resolving [ 'https://registry.npmjs.org/', './nodejitsu-api/0.6.3' ]
347 verbose url resolved https://registry.npmjs.org/nodejitsu-api/0.6.3
348 info trying registry request attempt 1 at 16:15:55
349 verbose etag "6KK6JBPR7JD6ORYBMNP7H40R0"
350 http GET https://registry.npmjs.org/nodejitsu-api/0.6.3
351 verbose url raw opener
352 verbose url resolving [ 'https://registry.npmjs.org/', './opener' ]
353 verbose url resolved https://registry.npmjs.org/opener
354 info trying registry request attempt 1 at 16:15:55
355 verbose etag "B1SQ1Z05KPWD9SADME7Z0KKKR"
356 http GET https://registry.npmjs.org/opener
357 verbose url raw pkginfo/0.3.0
358 verbose url resolving [ 'https://registry.npmjs.org/', './pkginfo/0.3.0' ]
359 verbose url resolved https://registry.npmjs.org/pkginfo/0.3.0
360 info trying registry request attempt 1 at 16:15:55
361 verbose etag "99TSPNDAFG6GL7DH94HUT70D"
362 http GET https://registry.npmjs.org/pkginfo/0.3.0
363 verbose url raw progress/0.1.0
364 verbose url resolving [ 'https://registry.npmjs.org/', './progress/0.1.0' ]
365 verbose url resolved https://registry.npmjs.org/progress/0.1.0
366 info trying registry request attempt 1 at 16:15:55
367 verbose etag "6J6XR9TX777TFXZUVFCXBFZXU"
368 http GET https://registry.npmjs.org/progress/0.1.0
369 verbose url raw request/2.28.0
370 verbose url resolving [ 'https://registry.npmjs.org/', './request/2.28.0' ]
371 verbose url resolved https://registry.npmjs.org/request/2.28.0
372 info trying registry request attempt 1 at 16:15:55
373 verbose etag "4DH0OSB4P0PUZXHA6YUPMLYTV"
374 http GET https://registry.npmjs.org/request/2.28.0
375 verbose url raw require-analyzer/0.5.0
376 verbose url resolving [ 'https://registry.npmjs.org/', './require-analyzer/0.5.0' ]
377 verbose url resolved https://registry.npmjs.org/require-analyzer/0.5.0
378 info trying registry request attempt 1 at 16:15:55
379 verbose etag "A2GID6JZUGZRR7US3ISIW7ZHD"
380 http GET https://registry.npmjs.org/require-analyzer/0.5.0
381 verbose url raw spawn-command/0.0.2
382 verbose url resolving [ 'https://registry.npmjs.org/', './spawn-command/0.0.2' ]
383 verbose url resolved https://registry.npmjs.org/spawn-command/0.0.2
384 info trying registry request attempt 1 at 16:15:55
385 verbose etag "CXW47TBCWZWADUJRUYIQ275X"
386 http GET https://registry.npmjs.org/spawn-command/0.0.2
387 verbose url raw semver/1.0.14
388 verbose url resolving [ 'https://registry.npmjs.org/', './semver/1.0.14' ]
389 verbose url resolved https://registry.npmjs.org/semver/1.0.14
390 info trying registry request attempt 1 at 16:15:55
391 verbose etag "5T6MUUO9XMCIT4W783K8VECVS"
392 http GET https://registry.npmjs.org/semver/1.0.14
393 verbose url raw tar/0.1.18
394 verbose url resolving [ 'https://registry.npmjs.org/', './tar/0.1.18' ]
395 verbose url resolved https://registry.npmjs.org/tar/0.1.18
396 info trying registry request attempt 1 at 16:15:55
397 verbose etag "BDF74SXF2S741NDFKFUG0P0VD"
398 http GET https://registry.npmjs.org/tar/0.1.18
399 verbose url raw wizard/0.0.1
400 verbose url resolving [ 'https://registry.npmjs.org/', './wizard/0.0.1' ]
401 verbose url resolved https://registry.npmjs.org/wizard/0.0.1
402 info trying registry request attempt 1 at 16:15:55
403 verbose etag "8P1RJ9XPBCDGYNF99LA7TT2S2"
404 http GET https://registry.npmjs.org/wizard/0.0.1
405 http 304 https://registry.npmjs.org/dateformat/1.0.2-1.2.3
406 silly registry.get cb [ 304,
406 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:56 GMT',
406 silly registry.get server: 'Apache',
406 silly registry.get via: '1.1 varnish',
406 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:56 GMT',
406 silly registry.get 'cache-control': 'max-age=1',
406 silly registry.get etag: '"DGZBZ3IBCNY2XPE6XDYPRWPA5"',
406 silly registry.get 'x-served-by': 'cache-jfk1023-JFK',
406 silly registry.get 'x-cache': 'HIT',
406 silly registry.get 'x-cache-hits': '1',
406 silly registry.get 'x-timer': 'S1401826556.316486,VS0,VE6',
406 silly registry.get vary: 'Accept',
406 silly registry.get 'content-length': '0',
406 silly registry.get 'keep-alive': 'timeout=10, max=50',
406 silly registry.get connection: 'Keep-Alive' } ]
407 verbose etag dateformat/1.0.2-1.2.3 from cache
408 verbose read json /Users/osx/.npm/dateformat/1.0.2-1.2.3/package/package.json
409 silly lockFile 644d6e27-dateformat-1-0-2-1-2-3 dateformat@1.0.2-1.2.3
410 silly lockFile 644d6e27-dateformat-1-0-2-1-2-3 dateformat@1.0.2-1.2.3
411 http 304 https://registry.npmjs.org/colors/0.6.2
412 silly registry.get cb [ 304,
412 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:56 GMT',
412 silly registry.get server: 'Apache',
412 silly registry.get via: '1.1 varnish',
412 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:56 GMT',
412 silly registry.get 'cache-control': 'max-age=1',
412 silly registry.get etag: '"E8LE0MPX5BZVXWCB1O63IRTWB"',
412 silly registry.get 'x-served-by': 'cache-jfk1035-JFK',
412 silly registry.get 'x-cache': 'HIT',
412 silly registry.get 'x-cache-hits': '1',
412 silly registry.get 'x-timer': 'S1401826556.324691,VS0,VE12',
412 silly registry.get vary: 'Accept',
412 silly registry.get 'content-length': '0',
412 silly registry.get 'keep-alive': 'timeout=10, max=50',
412 silly registry.get connection: 'Keep-Alive' } ]
413 verbose etag colors/0.6.2 from cache
414 verbose read json /Users/osx/.npm/colors/0.6.2/package/package.json
415 silly lockFile 1ce149d5-colors-0-6-2 colors@0.6.2
416 silly lockFile 1ce149d5-colors-0-6-2 colors@0.6.2
417 http 304 https://registry.npmjs.org/flatiron/0.3.8
418 silly registry.get cb [ 304,
418 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:56 GMT',
418 silly registry.get server: 'Apache',
418 silly registry.get via: '1.1 varnish',
418 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:56 GMT',
418 silly registry.get 'cache-control': 'max-age=1',
418 silly registry.get etag: '"LX5OE9UCUMR8KUY9TGI1MA3P"',
418 silly registry.get 'x-served-by': 'cache-jfk1022-JFK',
418 silly registry.get 'x-cache': 'MISS',
418 silly registry.get 'x-cache-hits': '0',
418 silly registry.get 'x-timer': 'S1401826556.312440,VS0,VE96',
418 silly registry.get vary: 'Accept',
418 silly registry.get 'content-length': '0',
418 silly registry.get 'keep-alive': 'timeout=10, max=50',
418 silly registry.get connection: 'Keep-Alive' } ]
419 verbose etag flatiron/0.3.8 from cache
420 verbose read json /Users/osx/.npm/flatiron/0.3.8/package/package.json
421 http 304 https://registry.npmjs.org/canihaz/1.0.1
422 silly registry.get cb [ 304,
422 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:56 GMT',
422 silly registry.get server: 'Apache',
422 silly registry.get via: '1.1 varnish',
422 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:56 GMT',
422 silly registry.get 'cache-control': 'max-age=1',
422 silly registry.get etag: '"1163YXLCSR630YV93Y5BGGMIJ"',
422 silly registry.get 'x-served-by': 'cache-jfk1028-JFK',
422 silly registry.get 'x-cache': 'MISS',
422 silly registry.get 'x-cache-hits': '0',
422 silly registry.get 'x-timer': 'S1401826556.298819,VS0,VE116',
422 silly registry.get vary: 'Accept',
422 silly registry.get 'content-length': '0',
422 silly registry.get 'keep-alive': 'timeout=10, max=50',
422 silly registry.get connection: 'Keep-Alive' } ]
423 verbose etag canihaz/1.0.1 from cache
424 http 304 https://registry.npmjs.org/complete/0.3.1
425 silly registry.get cb [ 304,
425 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:56 GMT',
425 silly registry.get server: 'Apache',
425 silly registry.get via: '1.1 varnish',
425 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:56 GMT',
425 silly registry.get 'cache-control': 'max-age=1',
425 silly registry.get etag: '"8B6CQKTH5ZR4WFCFQKOSCOQAU"',
425 silly registry.get 'x-served-by': 'cache-jfk1029-JFK',
425 silly registry.get 'x-cache': 'MISS',
425 silly registry.get 'x-cache-hits': '0',
425 silly registry.get 'x-timer': 'S1401826556.319786,VS0,VE100',
425 silly registry.get vary: 'Accept',
425 silly registry.get 'content-length': '0',
425 silly registry.get 'keep-alive': 'timeout=10, max=50',
425 silly registry.get connection: 'Keep-Alive' } ]
426 verbose etag complete/0.3.1 from cache
427 verbose read json /Users/osx/.npm/canihaz/1.0.1/package/package.json
428 silly lockFile 227a7b3a-flatiron-0-3-8 flatiron@0.3.8
429 silly lockFile 227a7b3a-flatiron-0-3-8 flatiron@0.3.8
430 verbose read json /Users/osx/.npm/complete/0.3.1/package/package.json
431 silly lockFile 79790dc5-canihaz-1-0-1 canihaz@1.0.1
432 silly lockFile 79790dc5-canihaz-1-0-1 canihaz@1.0.1
433 silly lockFile bb32598c-complete-0-3-1 complete@0.3.1
434 silly lockFile bb32598c-complete-0-3-1 complete@0.3.1
435 http 304 https://registry.npmjs.org/flatiron-cli-config/0.1.4
436 silly registry.get cb [ 304,
436 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:56 GMT',
436 silly registry.get server: 'Apache',
436 silly registry.get via: '1.1 varnish',
436 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:56 GMT',
436 silly registry.get 'cache-control': 'max-age=1',
436 silly registry.get etag: '"7J2X70CGYLGOTQH6M9N5YM9VS"',
436 silly registry.get 'x-served-by': 'cache-jfk1023-JFK',
436 silly registry.get 'x-cache': 'MISS',
436 silly registry.get 'x-cache-hits': '0',
436 silly registry.get 'x-timer': 'S1401826556.340253,VS0,VE99',
436 silly registry.get vary: 'Accept',
436 silly registry.get 'content-length': '0',
436 silly registry.get 'keep-alive': 'timeout=10, max=49',
436 silly registry.get connection: 'Keep-Alive' } ]
437 verbose etag flatiron-cli-config/0.1.4 from cache
438 verbose read json /Users/osx/.npm/flatiron-cli-config/0.1.4/package/package.json
439 silly lockFile 883c3e2d-flatiron-cli-config-0-1-4 flatiron-cli-config@0.1.4
440 silly lockFile 883c3e2d-flatiron-cli-config-0-1-4 flatiron-cli-config@0.1.4
441 http 304 https://registry.npmjs.org/fstream-npm/0.1.6
442 silly registry.get cb [ 304,
442 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:56 GMT',
442 silly registry.get server: 'Apache',
442 silly registry.get via: '1.1 varnish',
442 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:56 GMT',
442 silly registry.get 'cache-control': 'max-age=1',
442 silly registry.get etag: '"8URM0L516X0USGZZD1VU1M292"',
442 silly registry.get 'x-served-by': 'cache-jfk1028-JFK',
442 silly registry.get 'x-cache': 'MISS',
442 silly registry.get 'x-cache-hits': '0',
442 silly registry.get 'x-timer': 'S1401826556.429889,VS0,VE12',
442 silly registry.get vary: 'Accept',
442 silly registry.get 'content-length': '0',
442 silly registry.get 'keep-alive': 'timeout=10, max=49',
442 silly registry.get connection: 'Keep-Alive' } ]
443 verbose etag fstream-npm/0.1.6 from cache
444 verbose read json /Users/osx/.npm/fstream-npm/0.1.6/package/package.json
445 silly lockFile fcc83340-fstream-npm-0-1-6 fstream-npm@0.1.6
446 silly lockFile fcc83340-fstream-npm-0-1-6 fstream-npm@0.1.6
447 http 304 https://registry.npmjs.org/fstream/0.1.25
448 silly registry.get cb [ 304,
448 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:56 GMT',
448 silly registry.get server: 'Apache',
448 silly registry.get via: '1.1 varnish',
448 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:56 GMT',
448 silly registry.get 'cache-control': 'max-age=1',
448 silly registry.get etag: '"9EO49ZEGR7G36RBAEI7YLWQBW"',
448 silly registry.get 'x-served-by': 'cache-jfk1022-JFK',
448 silly registry.get 'x-cache': 'HIT',
448 silly registry.get 'x-cache-hits': '1',
448 silly registry.get 'x-timer': 'S1401826556.424529,VS0,VE23',
448 silly registry.get vary: 'Accept',
448 silly registry.get 'content-length': '0',
448 silly registry.get 'keep-alive': 'timeout=10, max=49',
448 silly registry.get connection: 'Keep-Alive' } ]
449 verbose etag fstream/0.1.25 from cache
450 http 304 https://registry.npmjs.org/flatiron-cli-users/0.1.8
451 silly registry.get cb [ 304,
451 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:56 GMT',
451 silly registry.get server: 'Apache',
451 silly registry.get via: '1.1 varnish',
451 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:56 GMT',
451 silly registry.get 'cache-control': 'max-age=1',
451 silly registry.get etag: '"EYOVII58FHIKXC3IHC5I4IHKQ"',
451 silly registry.get 'x-served-by': 'cache-jfk1035-JFK',
451 silly registry.get 'x-cache': 'MISS',
451 silly registry.get 'x-cache-hits': '0',
451 silly registry.get 'x-timer': 'S1401826556.350796,VS0,VE103',
451 silly registry.get vary: 'Accept',
451 silly registry.get 'content-length': '0',
451 silly registry.get 'keep-alive': 'timeout=10, max=49',
451 silly registry.get connection: 'Keep-Alive' } ]
452 verbose etag flatiron-cli-users/0.1.8 from cache
453 verbose read json /Users/osx/.npm/fstream/0.1.25/package/package.json
454 verbose read json /Users/osx/.npm/flatiron-cli-users/0.1.8/package/package.json
455 silly lockFile 11eef8ec-fstream-0-1-25 fstream@0.1.25
456 silly lockFile 11eef8ec-fstream-0-1-25 fstream@0.1.25
457 silly lockFile 0284cd67-flatiron-cli-users-0-1-8 flatiron-cli-users@0.1.8
458 silly lockFile 0284cd67-flatiron-cli-users-0-1-8 flatiron-cli-users@0.1.8
459 http 304 https://registry.npmjs.org/opener
460 silly registry.get cb [ 304,
460 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:56 GMT',
460 silly registry.get server: 'Apache',
460 silly registry.get via: '1.1 varnish',
460 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:56 GMT',
460 silly registry.get 'cache-control': 'max-age=1',
460 silly registry.get etag: '"B1SQ1Z05KPWD9SADME7Z0KKKR"',
460 silly registry.get 'x-served-by': 'cache-jfk1028-JFK',
460 silly registry.get 'x-cache': 'HIT',
460 silly registry.get 'x-cache-hits': '1',
460 silly registry.get 'x-timer': 'S1401826556.454256,VS0,VE13',
460 silly registry.get vary: 'Accept',
460 silly registry.get 'content-length': '0',
460 silly registry.get 'keep-alive': 'timeout=10, max=48',
460 silly registry.get connection: 'Keep-Alive' } ]
461 verbose etag opener from cache
462 http 304 https://registry.npmjs.org/pkginfo/0.3.0
463 silly registry.get cb [ 304,
463 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:56 GMT',
463 silly registry.get server: 'Apache',
463 silly registry.get via: '1.1 varnish',
463 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:56 GMT',
463 silly registry.get 'cache-control': 'max-age=1',
463 silly registry.get etag: '"99TSPNDAFG6GL7DH94HUT70D"',
463 silly registry.get 'x-served-by': 'cache-jfk1022-JFK',
463 silly registry.get 'x-cache': 'HIT',
463 silly registry.get 'x-cache-hits': '1',
463 silly registry.get 'x-timer': 'S1401826556.462386,VS0,VE6',
463 silly registry.get vary: 'Accept',
463 silly registry.get 'content-length': '0',
463 silly registry.get 'keep-alive': 'timeout=10, max=48',
463 silly registry.get connection: 'Keep-Alive' } ]
464 verbose etag pkginfo/0.3.0 from cache
465 silly addNameRange number 2 { name: 'opener', range: '>=1.3.0- <1.4.0-', hasData: true }
466 silly addNameRange versions [ 'opener', [ '1.0.0', '1.0.1', '1.1.0', '1.2.0', '1.3.0' ] ]
467 verbose addNamed [ 'opener', '1.3.0' ]
468 verbose addNamed [ '1.3.0', '1.3.0' ]
469 silly lockFile 58123698-opener-1-3-0 opener@1.3.0
470 verbose lock opener@1.3.0 /Users/osx/.npm/58123698-opener-1-3-0.lock
471 verbose read json /Users/osx/.npm/opener/1.3.0/package/package.json
472 verbose read json /Users/osx/.npm/pkginfo/0.3.0/package/package.json
473 silly lockFile 58123698-opener-1-3-0 opener@1.3.0
474 silly lockFile 58123698-opener-1-3-0 opener@1.3.0
475 silly lockFile 55f0eb63-opener-1-3-x opener@1.3.x
476 silly lockFile 55f0eb63-opener-1-3-x opener@1.3.x
477 silly lockFile c6150d55-pkginfo-0-3-0 pkginfo@0.3.0
478 silly lockFile c6150d55-pkginfo-0-3-0 pkginfo@0.3.0
479 http 304 https://registry.npmjs.org/require-analyzer/0.5.0
480 silly registry.get cb [ 304,
480 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:56 GMT',
480 silly registry.get server: 'Apache',
480 silly registry.get via: '1.1 varnish',
480 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:56 GMT',
480 silly registry.get 'cache-control': 'max-age=1',
480 silly registry.get etag: '"A2GID6JZUGZRR7US3ISIW7ZHD"',
480 silly registry.get 'x-served-by': 'cache-jfk1022-JFK',
480 silly registry.get 'x-cache': 'MISS',
480 silly registry.get 'x-cache-hits': '0',
480 silly registry.get 'x-timer': 'S1401826556.480398,VS0,VE13',
480 silly registry.get vary: 'Accept',
480 silly registry.get 'content-length': '0',
480 silly registry.get 'keep-alive': 'timeout=10, max=47',
480 silly registry.get connection: 'Keep-Alive' } ]
481 verbose etag require-analyzer/0.5.0 from cache
482 verbose read json /Users/osx/.npm/require-analyzer/0.5.0/package/package.json
483 silly lockFile cb1e7665-require-analyzer-0-5-0 require-analyzer@0.5.0
484 silly lockFile cb1e7665-require-analyzer-0-5-0 require-analyzer@0.5.0
485 http 304 https://registry.npmjs.org/ladder/0.0.1
486 silly registry.get cb [ 304,
486 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:56 GMT',
486 silly registry.get server: 'Apache',
486 silly registry.get via: '1.1 varnish',
486 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:56 GMT',
486 silly registry.get 'cache-control': 'max-age=1',
486 silly registry.get etag: '"371S68TEDR2OEL143277B5U66"',
486 silly registry.get 'x-served-by': 'cache-jfk1029-JFK',
486 silly registry.get 'x-cache': 'MISS',
486 silly registry.get 'x-cache-hits': '0',
486 silly registry.get 'x-timer': 'S1401826556.431964,VS0,VE114',
486 silly registry.get vary: 'Accept',
486 silly registry.get 'content-length': '0',
486 silly registry.get 'keep-alive': 'timeout=10, max=49',
486 silly registry.get connection: 'Keep-Alive' } ]
487 verbose etag ladder/0.0.1 from cache
488 http 304 https://registry.npmjs.org/progress/0.1.0
489 silly registry.get cb [ 304,
489 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:56 GMT',
489 silly registry.get server: 'Apache',
489 silly registry.get via: '1.1 varnish',
489 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:56 GMT',
489 silly registry.get 'cache-control': 'max-age=1',
489 silly registry.get etag: '"6J6XR9TX777TFXZUVFCXBFZXU"',
489 silly registry.get 'x-served-by': 'cache-jfk1035-JFK',
489 silly registry.get 'x-cache': 'MISS',
489 silly registry.get 'x-cache-hits': '0',
489 silly registry.get 'x-timer': 'S1401826556.466871,VS0,VE82',
489 silly registry.get vary: 'Accept',
489 silly registry.get 'content-length': '0',
489 silly registry.get 'keep-alive': 'timeout=10, max=48',
489 silly registry.get connection: 'Keep-Alive' } ]
490 verbose etag progress/0.1.0 from cache
491 verbose read json /Users/osx/.npm/ladder/0.0.1/package/package.json
492 http 304 https://registry.npmjs.org/nodejitsu-api/0.6.3
493 silly registry.get cb [ 304,
493 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:56 GMT',
493 silly registry.get server: 'Apache',
493 silly registry.get via: '1.1 varnish',
493 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:56 GMT',
493 silly registry.get 'cache-control': 'max-age=1',
493 silly registry.get etag: '"6KK6JBPR7JD6ORYBMNP7H40R0"',
493 silly registry.get 'x-served-by': 'cache-jfk1023-JFK',
493 silly registry.get 'x-cache': 'MISS',
493 silly registry.get 'x-cache-hits': '0',
493 silly registry.get 'x-timer': 'S1401826556.456990,VS0,VE94',
493 silly registry.get vary: 'Accept',
493 silly registry.get 'content-length': '0',
493 silly registry.get 'keep-alive': 'timeout=10, max=48',
493 silly registry.get connection: 'Keep-Alive' } ]
494 verbose etag nodejitsu-api/0.6.3 from cache
495 verbose read json /Users/osx/.npm/progress/0.1.0/package/package.json
496 silly lockFile 5b650e45-ladder-0-0-1 ladder@0.0.1
497 silly lockFile 5b650e45-ladder-0-0-1 ladder@0.0.1
498 verbose read json /Users/osx/.npm/nodejitsu-api/0.6.3/package/package.json
499 silly lockFile cfd1b5fa-progress-0-1-0 progress@0.1.0
500 silly lockFile cfd1b5fa-progress-0-1-0 progress@0.1.0
501 silly lockFile a6466065-nodejitsu-api-0-6-3 nodejitsu-api@0.6.3
502 silly lockFile a6466065-nodejitsu-api-0-6-3 nodejitsu-api@0.6.3
503 http 304 https://registry.npmjs.org/request/2.28.0
504 silly registry.get cb [ 304,
504 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:56 GMT',
504 silly registry.get server: 'Apache',
504 silly registry.get via: '1.1 varnish',
504 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:56 GMT',
504 silly registry.get 'cache-control': 'max-age=1',
504 silly registry.get etag: '"4DH0OSB4P0PUZXHA6YUPMLYTV"',
504 silly registry.get 'x-served-by': 'cache-jfk1028-JFK',
504 silly registry.get 'x-cache': 'MISS',
504 silly registry.get 'x-cache-hits': '0',
504 silly registry.get 'x-timer': 'S1401826556.482009,VS0,VE105',
504 silly registry.get vary: 'Accept',
504 silly registry.get 'content-length': '0',
504 silly registry.get 'keep-alive': 'timeout=10, max=47',
504 silly registry.get connection: 'Keep-Alive' } ]
505 verbose etag request/2.28.0 from cache
506 verbose read json /Users/osx/.npm/request/2.28.0/package/package.json
507 silly lockFile 4af95dbc-request-2-28-0 request@2.28.0
508 silly lockFile 4af95dbc-request-2-28-0 request@2.28.0
509 http 304 https://registry.npmjs.org/spawn-command/0.0.2
510 silly registry.get cb [ 304,
510 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:56 GMT',
510 silly registry.get server: 'Apache',
510 silly registry.get via: '1.1 varnish',
510 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:56 GMT',
510 silly registry.get 'cache-control': 'max-age=1',
510 silly registry.get etag: '"CXW47TBCWZWADUJRUYIQ275X"',
510 silly registry.get 'x-served-by': 'cache-jfk1022-JFK',
510 silly registry.get 'x-cache': 'MISS',
510 silly registry.get 'x-cache-hits': '0',
510 silly registry.get 'x-timer': 'S1401826556.510283,VS0,VE101',
510 silly registry.get vary: 'Accept',
510 silly registry.get 'content-length': '0',
510 silly registry.get 'keep-alive': 'timeout=10, max=46',
510 silly registry.get connection: 'Keep-Alive' } ]
511 verbose etag spawn-command/0.0.2 from cache
512 verbose read json /Users/osx/.npm/spawn-command/0.0.2/package/package.json
513 silly lockFile e5fc6c9b-spawn-command-0-0-2 spawn-command@0.0.2
514 silly lockFile e5fc6c9b-spawn-command-0-0-2 spawn-command@0.0.2
515 http 304 https://registry.npmjs.org/semver/1.0.14
516 silly registry.get cb [ 304,
516 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:56 GMT',
516 silly registry.get server: 'Apache',
516 silly registry.get via: '1.1 varnish',
516 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:56 GMT',
516 silly registry.get 'cache-control': 'max-age=1',
516 silly registry.get etag: '"5T6MUUO9XMCIT4W783K8VECVS"',
516 silly registry.get 'x-served-by': 'cache-jfk1029-JFK',
516 silly registry.get 'x-cache': 'MISS',
516 silly registry.get 'x-cache-hits': '0',
516 silly registry.get 'x-timer': 'S1401826556.559723,VS0,VE73',
516 silly registry.get vary: 'Accept',
516 silly registry.get 'content-length': '0',
516 silly registry.get 'keep-alive': 'timeout=10, max=48',
516 silly registry.get connection: 'Keep-Alive' } ]
517 verbose etag semver/1.0.14 from cache
518 verbose read json /Users/osx/.npm/semver/1.0.14/package/package.json
519 silly lockFile 01678457-semver-1-0-14 semver@1.0.14
520 silly lockFile 01678457-semver-1-0-14 semver@1.0.14
521 http 304 https://registry.npmjs.org/tar/0.1.18
522 silly registry.get cb [ 304,
522 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:56 GMT',
522 silly registry.get server: 'Apache',
522 silly registry.get via: '1.1 varnish',
522 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:56 GMT',
522 silly registry.get 'cache-control': 'max-age=1',
522 silly registry.get etag: '"BDF74SXF2S741NDFKFUG0P0VD"',
522 silly registry.get 'x-served-by': 'cache-jfk1035-JFK',
522 silly registry.get 'x-cache': 'MISS',
522 silly registry.get 'x-cache-hits': '0',
522 silly registry.get 'x-timer': 'S1401826556.564777,VS0,VE89',
522 silly registry.get vary: 'Accept',
522 silly registry.get 'content-length': '0',
522 silly registry.get 'keep-alive': 'timeout=10, max=47',
522 silly registry.get connection: 'Keep-Alive' } ]
523 verbose etag tar/0.1.18 from cache
524 verbose read json /Users/osx/.npm/tar/0.1.18/package/package.json
525 silly lockFile 5ab94043-tar-0-1-18 tar@0.1.18
526 silly lockFile 5ab94043-tar-0-1-18 tar@0.1.18
527 http 304 https://registry.npmjs.org/wizard/0.0.1
528 silly registry.get cb [ 304,
528 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:56 GMT',
528 silly registry.get server: 'Apache',
528 silly registry.get via: '1.1 varnish',
528 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:56 GMT',
528 silly registry.get 'cache-control': 'max-age=1',
528 silly registry.get etag: '"8P1RJ9XPBCDGYNF99LA7TT2S2"',
528 silly registry.get 'x-served-by': 'cache-jfk1023-JFK',
528 silly registry.get 'x-cache': 'MISS',
528 silly registry.get 'x-cache-hits': '0',
528 silly registry.get 'x-timer': 'S1401826556.564381,VS0,VE150',
528 silly registry.get vary: 'Accept',
528 silly registry.get 'content-length': '0',
528 silly registry.get 'keep-alive': 'timeout=10, max=47',
528 silly registry.get connection: 'Keep-Alive' } ]
529 verbose etag wizard/0.0.1 from cache
530 verbose read json /Users/osx/.npm/wizard/0.0.1/package/package.json
531 silly lockFile 51ff7584-wizard-0-0-1 wizard@0.0.1
532 silly lockFile 51ff7584-wizard-0-0-1 wizard@0.0.1
533 silly resolved [ { name: 'dateformat',
533 silly resolved description: 'A node.js package for Steven Levithan\'s excellent dateFormat() function.',
533 silly resolved maintainers: 'Felix Geisendörfer <felix@debuggable.com>',
533 silly resolved homepage: 'https://github.com/felixge/node-dateformat',
533 silly resolved author: { name: 'Steven Levithan' },
533 silly resolved version: '1.0.2-1.2.3',
533 silly resolved main: './lib/dateformat',
533 silly resolved dependencies: {},
533 silly resolved devDependencies: {},
533 silly resolved engines: { node: '*' },
533 silly resolved readme: '# node-dateformat\n\nA node.js package for Steven Levithan\'s excellent [dateFormat()][dateformat] function.\n\n## Modifications\n\n* Removed the `Date.prototype.format` method. Sorry folks, but extending native prototypes is for suckers.\n* Added a `module.exports = dateFormat;` statement at the bottom\n\n## Usage\n\nAs taken from Steven\'s post, modified to match the Modifications listed above:\n\n var dateFormat = require(\'dateformat\');\n var now = new Date();\n\n // Basic usage\n dateFormat(now, "dddd, mmmm dS, yyyy, h:MM:ss TT");\n // Saturday, June 9th, 2007, 5:46:21 PM\n\n // You can use one of several named masks\n dateFormat(now, "isoDateTime");\n // 2007-06-09T17:46:21\n\n // ...Or add your own\n dateFormat.masks.hammerTime = \'HH:MM! "Can\\\'t touch this!"\';\n dateFormat(now, "hammerTime");\n // 17:46! Can\'t touch this!\n\n // When using the standalone dateFormat function,\n // you can also provide the date as a string\n dateFormat("Jun 9 2007", "fullDate");\n // Saturday, June 9, 2007\n\n // Note that if you don\'t include the mask argument,\n // dateFormat.masks.default is used\n dateFormat(now);\n // Sat Jun 09 2007 17:46:21\n\n // And if you don\'t include the date argument,\n // the current date and time is used\n dateFormat();\n // Sat Jun 09 2007 17:46:22\n\n // You can also skip the date argument (as long as your mask doesn\'t\n // contain any numbers), in which case the current date/time is used\n dateFormat("longTime");\n // 5:46:22 PM EST\n\n // And finally, you can convert local time to UTC time. Simply pass in\n // true as an additional argument (no argument skipping allowed in this case):\n dateFormat(now, "longTime", true);\n // 10:46:21 PM UTC\n\n // ...Or add the prefix "UTC:" to your mask.\n dateFormat(now, "UTC:h:MM:ss TT Z");\n // 10:46:21 PM UTC\n\n // You can also get the ISO 8601 week of the year:\n dateFormat(now, "W");\n // 42\n## License\n\n(c) 2007-2009 Steven Levithan [stevenlevithan.com][stevenlevithan], MIT license.\n\n[dateformat]: http://blog.stevenlevithan.com/archives/date-time-format\n[stevenlevithan]: http://stevenlevithan.com/\n',
533 silly resolved readmeFilename: 'Readme.md',
533 silly resolved _id: 'dateformat@1.0.2-1.2.3',
533 silly resolved _from: 'dateformat@1.0.2-1.2.3' },
533 silly resolved { name: 'colors',
533 silly resolved description: 'get colors in your node.js console like what',
533 silly resolved version: '0.6.2',
533 silly resolved author: { name: 'Marak Squires' },
533 silly resolved homepage: 'https://github.com/Marak/colors.js',
533 silly resolved bugs: 'https://github.com/Marak/colors.js/issues',
533 silly resolved keywords: [ 'ansi', 'terminal', 'colors' ],
533 silly resolved repository: { type: 'git', url: 'http://github.com/Marak/colors.js.git' },
533 silly resolved engines: { node: '>=0.1.90' },
533 silly resolved main: 'colors',
533 silly resolved readme: '# colors.js - get color and style in your node.js console ( and browser ) like what\n\n<img src="http://i.imgur.com/goJdO.png" border = "0"/>\n\n\n## Installation\n\n npm install colors\n\n## colors and styles!\n\n- bold\n- italic\n- underline\n- inverse\n- yellow\n- cyan\n- white\n- magenta\n- green\n- red\n- grey\n- blue\n- rainbow\n- zebra\n- random\n\n## Usage\n\n``` js\nvar colors = require(\'./colors\');\n\nconsole.log(\'hello\'.green); // outputs green text\nconsole.log(\'i like cake and pies\'.underline.red) // outputs red underlined text\nconsole.log(\'inverse the color\'.inverse); // inverses the color\nconsole.log(\'OMG Rainbows!\'.rainbow); // rainbow (ignores spaces)\n```\n\n# Creating Custom themes\n\n```js\n\nvar colors = require(\'colors\');\n\ncolors.setTheme({\n silly: \'rainbow\',\n input: \'grey\',\n verbose: \'cyan\',\n prompt: \'grey\',\n info: \'green\',\n data: \'grey\',\n help: \'cyan\',\n warn: \'yellow\',\n debug: \'blue\',\n error: \'red\'\n});\n\n// outputs red text\nconsole.log("this is an error".error);\n\n// outputs yellow text\nconsole.log("this is a warning".warn);\n```\n\n\n### Contributors \n\nMarak (Marak Squires)\nAlexis Sellier (cloudhead)\nmmalecki (Maciej Małecki)\nnicoreed (Nico Reed)\nmorganrallen (Morgan Allen)\nJustinCampbell (Justin Campbell)\nded (Dustin Diaz)\n\n\n#### , Marak Squires , Justin Campbell, Dustin Diaz (@ded)\n',
533 silly resolved readmeFilename: 'ReadMe.md',
533 silly resolved _id: 'colors@0.6.2',
533 silly resolved _from: 'colors@0.6.2' },
533 silly resolved { name: 'flatiron',
533 silly resolved description: 'An elegant blend of convention and configuration for building apps in Node.js and the browser',
533 silly resolved version: '0.3.8',
533 silly resolved author: { name: 'Nodejitsu Inc.', email: 'info@nodejitsu.com' },
533 silly resolved maintainers: [ [Object], [Object], [Object] ],
533 silly resolved repository: { type: 'git', url: 'http://github.com/flatiron/flatiron.git' },
533 silly resolved dependencies:
533 silly resolved { broadway: '0.2.7',
533 silly resolved optimist: '0.3.5',
533 silly resolved prompt: '0.2.11',
533 silly resolved director: '1.1.10',
533 silly resolved pkginfo: '0.3.0' },
533 silly resolved devDependencies:
533 silly resolved { st: '0.1.x',
533 silly resolved request: '2.x.x',
533 silly resolved resourceful: '0.3.x',
533 silly resolved union: '0.3.x',
533 silly resolved vows: '0.7.x' },
533 silly resolved main: './lib/flatiron',
533 silly resolved bin: { flatiron: './bin/flatiron' },
533 silly resolved scripts: { test: 'vows --spec' },
533 silly resolved engines: { node: '>= 0.4.0' },
533 silly resolved readme: '# [flatiron](http://flatironjs.org) [![Build Status](https://secure.travis-ci.org/flatiron/flatiron.png)](http://travis-ci.org/flatiron/flatiron)\n\n*Framework components for node.js and the browser*\n\n![](http://flatironjs.org/img/flatiron.png)\n\n# Example HTTP Server:\n\n```js\nvar flatiron = require(\'flatiron\'),\n app = flatiron.app;\n\napp.use(flatiron.plugins.http);\n\napp.router.get(\'/\', function () {\n this.res.writeHead(200, { \'Content-Type\': \'text/plain\' });\n this.res.end(\'Hello world!\\n\');\n});\n\napp.start(8080);\n```\n\n# Example HTTPS Server:\n\n```js\nvar flatiron = require(\'flatiron\'),\n app = flatiron.app;\n\napp.use(flatiron.plugins.http, {\n https: {\n cert: \'path/to/cert.pem\',\n key: \'path/to/key.pem\',\n ca: \'path/to/ca.pem\'\n }\n});\n\napp.router.get(\'/\', function () {\n this.res.writeHead(200, { \'Content-Type\': \'text/plain\' });\n this.res.end(\'Hello world!\\n\');\n});\n\napp.start(8080);\n```\n\n# Example CLI Application:\n\n```js\n// example.js\n\nvar flatiron = require(\'flatiron\'),\n app = flatiron.app;\n\napp.use(flatiron.plugins.cli, {\n dir: __dirname,\n usage: [\n \'This is a basic flatiron cli application example!\',\n \'\',\n \'hello - say hello to somebody.\'\n ]\n});\n\napp.cmd(\'hello\', function () {\n app.prompt.get(\'name\', function (err, result) {\n app.log.info(\'hello \'+result.name+\'!\');\n })\n})\n\napp.start();\n```\n\n## Run It:\n\n```\n% node example.js hello\nprompt: name: world\ninfo: hello world!\n```\n\n## Installation\n\n### Installing NPM (Node Package Manager)\n```\n curl http://npmjs.org/install.sh | sh\n```\n\n### Installing Flatiron\n```\n [sudo] npm install flatiron\n```\n\n### Installing Union (Required for `flatiron.plugins.http`)\n```\n npm install union\n```\n\n# Usage:\n\n## Start With `flatiron.app`:\n\n`flatiron.app` is a [broadway injection container](https://github.com/flatiron/broadway). To be brief, what it does is allow plugins to modify the `app` object directly:\n\n```js\nvar flatiron = require(\'flatiron\'),\n app = flatiron.app;\n\nvar hello = {\n attach: function (options) {\n this.hello = options.message || \'Why hello!\';\n }\n};\n\napp.use(hello, {\n message: "Hi! How are you?"\n});\n\n// Will print, "Hi! How are you?"\nconsole.log(app.hello);\n```\n\nVirtually all additional functionality in flatiron comes from broadway plugins, such as `flatiron.plugins.http` and `flatiron.plugins.cli`.\n\n### `app.config`\n\n`flatiron.app` comes with a [`config`](https://github.com/flatiron/broadway/blob/master/lib/broadway/plugins/config.js) plugin pre-loaded, which adds configuration management courtesy [nconf](https://github.com/flatiron/nconf). `app.config` has the same api as the `nconf` object.\n\nThe `literal` store is configured by default. If you want to use different stores you can easily attach them to the `app.config` instance.\n\n```js\n// add the `env` store to the config\napp.config.use(\'env\');\n\n// add the `file` store the the config\napp.config.use(\'file\', { file: \'path/to/config.json\' });\n\n// or using an alternate syntax\napp.config.env().file({ file: \'path/to/config.json\' });\n\n// and removing stores\napp.config.remove(\'literal\');\n```\n\n### `app.log`\n\n`flatiron.app` will also load a [`log`](https://github.com/flatiron/broadway/blob/master/lib/broadway/plugins/log.js) plugin during the init phase, which attaches a [winston container](https://github.com/flatiron/winston) to `app.log`. This logger is configured by combining the `app.options.log` property with the configuration retrieved from `app.config.get(\'log\')`.\n\n## Create An HTTP Server with `flatiron.plugins.http(options)`:\n\nThis plugin adds http serving functionality to your flatiron app by attaching the following properties and methods:\n\n### Define Routes with `app.router`:\n\nThis is a [director](https://github.com/flatiron/director) router configured to route http requests after the middlewares in `app.http.before` are applied. Example routes include:\n\n```js\n\n// GET /\napp.router.get(\'/\', function () {\n this.res.writeHead(200, { \'Content-Type\': \'text/plain\' });\n this.res.end(\'Hello world!\\n\');\n});\n\n// POST to /\napp.router.post(\'/\', function () {\n this.res.writeHead(200, { \'Content-Type\': \'text/plain\' });\n this.res.write(\'Hey, you posted some cool data!\\n\');\n this.res.end(util.inspect(this.req.body, true, 2, true) + \'\\n\');\n});\n\n// Parameterized routes\napp.router.get(\'/sandwich/:type\', function (type) {\n if (~[\'bacon\', \'burger\'].indexOf(type)) {\n this.res.writeHead(200, { \'Content-Type\': \'text/plain\' });\n this.res.end(\'Serving \' + type + \' sandwich!\\n\');\n }\n else {\n this.res.writeHead(404, { \'Content-Type\': \'text/plain\' });\n this.res.end(\'No such sandwich, sorry!\\n\');\n }\n});\n```\n\n`app.router` can also route against regular expressions and more! To learn more about director\'s advanced functionality, visit director\'s [project page](https://github.com/flatiron/director#readme).\n\n\n### Access The Server with `app.server`:\n\nThis is a [union](https://github.com/flatiron/union) middleware kernel.\n\n### Modify the Server Options with `app.http`:\n\nThis object contains options that are passed to the union server, including `app.http.before`, `app.http.after` and `app.http.headers`.\n\nThese properties may be set by passing them through as options:\n\n```js\napp.use(flatiron.plugins.http, {\n before: [],\n after: []\n});\n```\n\nYou can read more about these options on the [union project page](https://github.com/flatiron/union#readme).\n\n### Start The Server with `app.start(port, <host>, <callback(err)>)`\n\nThis method will both call `app.init` (which will call any asynchronous initialization steps on loaded plugins) and start the http server with the given arguments. For example, the following will start your flatiron http server on port 8080:\n\n```js\napp.start(8080);\n```\n\n## Create a CLI Application with `flatiron.plugins.cli(options)`\n\nThis plugin turns your app into a cli application framework. For example, [jitsu]\n(https://github.com/nodejitsu/jitsu) uses flatiron and the cli plugin.\n\nValid options include:\n\n```js\n{\n "argvOptions": {}, // A configuration hash passed to the cli argv parser.\n "usage": [ "foo", "bar" ], // A message to show for cli usage. Joins arrays with `\\n`.\n "dir": require(\'path\').join(__dirname, \'lib\', \'commands\'), // A directory with commands to lazy-load\n "notFoundUsage": false // Disable help messages when command not found\n}\n```\n\n### Add lazy-loaded CLI commands with `options.dir` and `app.commands`:\n\n Flatiron CLI will automatically lazy-load modules defining commands in the directory specified by `options.dir`. For example:\n\n```js\n// example2.js\nvar path = require(\'path\'),\n flatiron = require(\'./lib/flatiron\'),\n app = flatiron.app;\n\napp.use(flatiron.plugins.cli, {\n dir: path.join(__dirname, \'cmds\')\n});\n\napp.start();\n```\n\n```js\n// cmd/highfive.js\nvar highfive = module.exports = function highfive (person, cb) {\n this.log.info(\'High five to \' + person + \'!\');\n cb(null);\n};\n```\n\nIn the command, you expose a function of arguments and a callback. `this` is set to `app`, and the routing is taken care of automatically.\n\nHere it is in action:\n\n```\n% node example2.js highfive Flatiron \ninfo: High five to Flatiron!\n```\n\nYou can also define these commands by adding them directly to `app.commands` yourself:\n\n```\n// example2b.js\nvar flatiron = require(\'./lib/flatiron\'),\n app = flatiron.app;\n\nvar path = require(\'path\'),\n flatiron = require(\'./lib/flatiron\'),\n app = flatiron.app;\n\napp.use(flatiron.plugins.cli);\n\napp.commands.highfive = function (person, cb) {\n this.log.info(\'High five to \' + person + \'!\');\n cb(null);\n};\n\napp.start();\n```\n\n```\n% node example2b.js highfive Flatiron \ninfo: High five to Flatiron!\n```\n\nCallback will always be the last argument provided to a function assigned to command\n\n```js\napp.commands.highfive = function (person, cb) {\n this.log.info(\'High five to \' + person + \'!\');\n console.log(arguments);\n}\n```\n\n```\n% node example2b.js highfive Flatiron lol haha\ninfo: High five to Flatiron!\n{\n \'0\': \'Flatiron\',\n \'1\': \'lol\',\n \'2\': \'haha\',\n \'3\': [Function]\n}\n```\n\n### Define Ad-Hoc Commands With `app.cmd(path, handler)`:\n\nThis adds the cli routing path `path` to the app\'s CLI router, using the [director](https://github.com/flatiron/director) route handler `handler`, aliasing `app.router.on`. `cmd` routes are defined the same way as http routes, except that it uses ` ` (a space) for a delimiter instead of `/`.\n\nFor example:\n\n```js\n// example.js\nvar flatiron = require(\'./lib/flatiron\'),\n app = flatiron.app;\n\napp.use(flatiron.plugins.cli, {\n usage: [\n \'usage: node test.js hello <person>\',\n \'\',\n \' This will print "hello <person>"\'\n ]\n});\n\napp.cmd(\'hello :person\', function (person) {\n app.log.info(\'hello \' + person + \'!\');\n});\n\napp.start()\n```\n\nWhen you run this program correctly, it will say hello:\n\n```\n% node example.js hello person\ninfo: hello person!\n```\n\nIf not, you get a friendly usage message:\n\n```\n% node test.js hello\nhelp: usage: node test.js hello <person>\nhelp:\nhelp: This will print "hello <person>"\n```\n\n### Check CLI Arguments with `app.argv`:\n\nOnce your app is started, `app.argv` will contain the [optimist](http://github.com/substack/node-optimist)-parsed argv options hash, ready to go!\n\nHere\'s an example:\n\n```js\n// example3.js\nvar flatiron = require(\'./lib/flatiron\'),\n app = flatiron.app;\n\napp.use(flatiron.plugins.cli);\n\napp.start();\n\napp.log.info(JSON.stringify(app.argv));\n```\n\nThis prints:\n\n```\n% node example3.js\ninfo: {"_":[], "$0": "node ./example3.js"}\n```\n\nAwesome!\n\n### Add a Default Help Command with `options.usage`:\n\nWhen attaching the CLI plugin, just specify options.usage to get a friendly default message for when there aren\'t any matching routes:\n\n```js\n// example4.js\nvar flatiron = require(\'./lib/flatiron\'),\n app = flatiron.app;\n\napp.use(flatiron.plugins.cli, {\n usage: [\n \'Welcome to my app!\',\n \'Your command didn\\\'t do anything.\',\n \'This is expected.\'\n ]\n});\n\napp.start();\n```\n\n```\n% node example4.js \nhelp: Welcome to my app!\nhelp: Your command didn\'t do anything.\nhelp: This is expected.\n```\n\n### Start The Application with `app.start(callback)`:\n\nAs seen in these examples, starting your app is as easy as `app.start`! this method takes a callback, which is called when an `app.command` completes. Here\'s a complete example demonstrating this behavior and how it integrates with `options.usage`:\n\n```js\n// example5.js\nvar path = require(\'path\'),\n flatiron = require(\'./lib/flatiron\'),\n app = flatiron.app;\n\napp.use(flatiron.plugins.cli, {\n usage: [\n \'`node example5.js error`: Throws an error.\',\n \'`node example5.js friendly`: Does not throw an error.\'\n ]\n});\n\napp.commands.error = function (cb) {\n cb(new Error(\'I\\\'m an error!\'));\n};\n\napp.commands.friendly = function (cb) {\n cb(null);\n}\n\napp.start(function (err) {\n if (err) {\n app.log.error(err.message || \'You didn\\\'t call any commands!\');\n app.log.warn(\'NOT OK.\');\n return process.exit(1);\n }\n app.log.info(\'OK.\');\n});\n```\n\nHere\'s how our app behaves:\n\n```\n% node example5.js friendly\ninfo: OK.\n\n% node example5.js error\nerror: I\'m an error!\nwarn: NOT OK.\n\n% node example5.js\nhelp: `node example2b.js error`: Throws an error.\nhelp: `node example2b.js friendly`: Does not throw an error.\nerror: You didn\'t call any commands!\nwarn: NOT OK.\n```\n\n# Read More About Flatiron!\n\n## Articles\n\n* [Scaling Isomorphic Javascript Code](http://blog.nodejitsu.com/scaling-isomorphic-javascript-code)\n* [Introducing Flatiron](http://blog.nodejitsu.com/introducing-flatiron)\n* [Writing CLI Apps with Flatiron](http://blog.jit.su/writing-cli-apps-with-flatiron)\n\n## Sub-Projects\n\n* [Broadway](https://github.com/flatiron/broadway)\n* [Union](https://github.com/flatiron/union)\n* [Director](https://github.com/flatiron/director)\n* [Plates](https://github.com/flatiron/plates)\n* [Resourceful](https://github.com/flatiron/resourceful)\n* [And More](https://github.com/flatiron)!\n\n# Tests\n\nTests are written in vows:\n\n``` bash\n $ npm test\n```\n\n#### Author: [Nodejitsu Inc.](http://nodejitsu.com)\n#### License: MIT\n',
533 silly resolved readmeFilename: 'README.md',
533 silly resolved _id: 'flatiron@0.3.8',
533 silly resolved _from: 'flatiron@0.3.8' },
533 silly resolved { author:
533 silly resolved { name: 'Arnout Kazemier',
533 silly resolved email: 'info@3rd-Eden.com',
533 silly resolved url: '3rd-Eden.com' },
533 silly resolved name: 'canihaz',
533 silly resolved description: 'canihaz allows you to lazy install npm modules because not every dependency is needed.',
533 silly resolved keywords:
533 silly resolved [ 'npm',
533 silly resolved 'install',
533 silly resolved 'module',
533 silly resolved 'lazy',
533 silly resolved 'require',
533 silly resolved 'dependencies',
533 silly resolved 'optionalDepdencies' ],
533 silly resolved version: '1.0.1',
533 silly resolved scripts: { test: 'make test' },
533 silly resolved homepage: 'https://github.com/3rd-Eden/canihaz',
533 silly resolved repository: { type: 'git', url: 'git://github.com/3rd-Eden/canihaz.git' },
533 silly resolved main: 'index.js',
533 silly resolved dependencies: { which: '1.0.x', semver: '1.1.x', mkdirp: '0.3.x' },
533 silly resolved devDependencies: { mocha: '1.7.x', chai: '1.4.x', rimraf: '2.1.x' },
533 silly resolved canihaz:
533 silly resolved { request: '2.12.x',
533 silly resolved routable: 'git://github.com/3rd-Eden/routable.git#master',
533 silly resolved useragent: '*' },
533 silly resolved fooBar: { request: '*' },
533 silly resolved existingDependencies: { semver: '1.1.x' },
533 silly resolved readme: '# canihaz - supercharged dependency loading and installation\n[![build status](https://secure.travis-ci.org/3rd-Eden/canihaz.png)](http://travis-ci.org/3rd-Eden/canihaz)\n\nCanihaz is a module that allows you to lazily install and require NPM modules\nthat might not be required for the core functionality of your library. This\nincludes, but is not limited to:\n\n- Optional dependencies\n- Dependencies that are only used for your optional CLI interface\n- Dependencies that are sparsely used in the application\n\nMy use case for this library is a front-end build system that I have been\ndeveloping. It\'s called [square][square] and uses a plugin based system to\nprocess your front-end code such as CSS, JavaScript and all possible\npre-processors. If I wanted to support every CSS pre-processor I would have had\nto specify: sass, less and stylus in the dependencies, but nobody is ever going\nto use all of them, so 90% of these modules would have been pointless bloat. And\nI, personally hate code bloat. It\'s a disease that spreads exponentially with\nevery module that is released and dependent upon. So to combat this bloat\nI wanted to have a way to lazy load and (silently) install the modules when they\nare needed.\n\n[square]: /observing/square\n\n---\n\n## Table of Contents\n\n- [Installation][0]\n- [How does it work][1]\n- [API][2]\n - [package.json example][2.1]\n - [Configuration][2.2]\n - [Configured dependencies][2.3]\n - [Un-configured dependencies][2.4]\n - [Multiple dependencies][2.5]\n- [Changelog][3]\n- [License][4]\n\n[0]: #installation "Install all the things"\n[1]: #how-does-it-work "it\'s like magic, unicorns and narwals combined in to awesomness"\n[2]: #api "The bits that you can use and configure"\n[2.1]: #packagejson-example\n[2.2]: #configuration\n[2.3]: #installingrequiring-a-configured-dependency\n[2.4]: #installingrequiring-a-un-configured-dependency\n[2.5]: #installingrequiring-multiple-dependencies\n[3]: #changelog "Changelog"\n[4]: #license-mit "Stuff"\n\n---\n\n## Installation\n\nThis module should be installed using NPM:\n\n```bash\nnpm install canihaz --save\n```\n\nThe `--save` parameter tells NPM that it should add it to your package.json, so\nless editing for you.\n\nIf you do not install it using NPM, make sure that install it in\na `node_modules` folder and do not symlink it.. Unless you don\'t want to use the\nautomatic dependency resolution.\n\n---\n\n## How does it work\n\nI always tell people that you should understand how a module works before you\nuse it, checkout out the source or at least read the damned documentation.\n\nWhen you initialize the module after you required it it will go up 2 directories\nto go out of the `node_modules` folder and attempt to read out the\n`package.json` file of the module that depends on canihaz. It requires the\npackage.json and search for the dependencies, it searches for `canihaz` key by\ndefault but it can be configured. When it found the dependencies, it attaches\nthe names to the returned object and creates a really simple usable interface\nfor it:\n\n```js\nvar canihaz = require(\'canihaz\')(.. config ..);\n\ncanihaz.dep(function requireallthethings(err, dep) {\n .. dep is installed if it\'s not installed before or just required\n});\n```\n\nIt automatically knows which version it should install for you as you specified\nthat in the object. Installing a dependency that isn\'t pre-defined in your\n`package.json` you could do something similar:\n\n```js\nvar canihaz = require(\'canihaz\')();\n\ncanihaz(dep, version, function lazyloading(err, dep) {\n .. dep is installed with the specified version\n});\n```\n\nBut before it tries to install the module it checks it it\'s perhaps globally\ninstalled (with the correct version) or if it\'s already installed before in the\nspecified location. When all these checks fail, we continue with the\ninstallation. In older version of canihaz we called the NPM api programatically\nbut there were a couple of issues with this, like install race conditions and it\ndidn\'t use the users set configurations. That\'s why we are currently spawning an\nNPM child process. So you need to have NPM installed globally and set in your\npath. The added benefit of this is that the installation becomes completely\nsilent as NPM is usually really chatty and last but not least, it already works\nas this module is installed through NPM.\n\nOnce it\'s finally installed it attempts to require it again, if it succeeds it\nwill call your callback without any error arguments and provide the library in\nthe callback. If the installation failed or it failed to require you\'re\nbasically fucked.\n\n## API\n\n#### package.json example\n\nIn the example below, we install canihaz as dependency, and have all our\noptional dependencies in the property `canihaz` which will be read out by\nmodule.\n\n```js\n{\n "name": "example"\n , "description": "example description"\n , "version": "0.0.0"\n , "dependencies": {\n "canihaz": "0.0.x"\n }\n , "canihaz": {\n "coffee-script": "1.3.3"\n , "csslint": "0.9.8"\n , "jshint": "0.7.1"\n , "socket.io": "0.9.6"\n , "stylus": "0.27.2"\n , "watch": "0.5.1"\n }\n}\n```\n\n#### configuration\n\n- dot: Should we create a special dot folder for storage? This is saved in\n the home directory of the user. Should be a string.\n- home: The location of the home folders, as this is operating system\n specific or you might want to override this if you want to store the dot\n folder in a different location. Should be string.\n- location: The location of the package.json that we need to parse and read out\n the possible dependencies for lazy installation.\n- key: Which property should we scan for the optional dependencies? This\n allows you to also lazy install optionalDependencies for example.\n- installation: The installation location, this is where the dependencies will\n be installed. It defaults to the `package.json` folder.\n\nExample:\n\n```js\nvar canihaz = require(\'canihaz\')({\n key: \'cliDependencies\' // read out `cliDependencies` instead of `canihaz`\n});\n```\n\n#### installing/requiring a configured dependency\n\nThe dependencies that you specify in the `package.json` are automatically\nintroduced to the returned export. It assumes that it\'s loaded by the package\nthat we specified above.\n\n```js\nvar canihaz = require(\'canihaz\')();\n\ncanihaz.jshint(function loading(err, jshint) {\n // jshint is now loaded, unless we got an error\n});\n```\n\n#### installing/requiring a un-configured dependency\n\nInstalling or requiring a dependency that isn\'t in the `package.json` require\ndirect usage of the API:\n\n```js\nvar canihaz = require(\'canihaz\')();\n\ncanihaz(\'jshint\', \'0.7.x\', function lazyloading(err, jsint) {\n // jsint is installed with the specified version\n});\n```\n\n#### installing/requiring multiple dependencies\n\nSometimes you just need a load of modules. There are 2 different ways this is\ndone, if the modules are defined in the `package.json` it will automatically use\ntheir specified function and doesn\'t require you to specify the version numbers:\n\n```js\nvar canihaz = require(\'canihaz\')();\n\ncanihaz(\n \'jshint\', \'stylus\', \'express\'\n , function lazyloading(err, jsint, stylus, express) {\n // the modules are loaded or installed in the same order as the arguments\n }\n);\n```\n\nIf you need to a bunch of modules that are not specified in the package. \n\n```js\ncanihaz(\n { name: \'jshint\', version: \'0.7.x\' }\n , { name: \'stylus\', version: \'\' }\n , { name: \'express\', version: \'3.0.x\' }\n , function lazyloading(err, jsint, stylus, express) {\n // the modules are loaded or installed in the same order as the arguments\n }\n);\n```\n\n---\n\n## Changelog\n\n__1.0.0__ Rewritten to use the `npm` binary for all installations because the\nprogramatically API causes to much issues and edge cases. 1.0.0 also features a\nfull test suite and a reworked more powerful API.\n\n_all other version were crap anyways_\n\n---\n\n## License (MIT)\n\nCopyright (c) 2013 Arnout Kazemier, 3rd-Eden.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',
533 silly resolved readmeFilename: 'README.md',
533 silly resolved _id: 'canihaz@1.0.1',
533 silly resolved _from: 'canihaz@1.0.1' },
533 silly resolved { name: 'complete',
533 silly resolved version: '0.3.1',
533 silly resolved description: 'tab completion for your nodejs CLI program',
533 silly resolved main: './lib/complete.js',
533 silly resolved directories: { lib: './lib', example: './example' },
533 silly resolved repository: { type: 'git', url: 'http://github.com/hij1nx/complete.git' },
533 silly resolved keywords:
533 silly resolved [ 'terminal',
533 silly resolved 'tabs',
533 silly resolved 'unix',
533 silly resolved 'posix',
533 silly resolved 'console',
533 silly resolved 'complete',
533 silly resolved 'completion' ],
533 silly resolved author:
533 silly resolved { name: 'hij1nx',
533 silly resolved email: 'hij1nx@me.com',
533 silly resolved url: 'http://www.nodejitsu.com' },
533 silly resolved maintainers: [ [Object] ],
533 silly resolved license: 'MIT',
533 silly resolved engine: { node: '>=0.4' },
533 silly resolved readme: '# Synopsis\nCustom command line tab completion for node.js applications.\n\n# Example\n\n```javascript\n#!/usr/bin/env node\n\nvar complete = require(\'complete\'); // get the `complete` module.\n\n//\n// list of items to complete on.\n//\ncomplete.list = [\'apple\', \'orange\', \'pear\', \'lemon\', \'mango\'];\n\ncomplete.callback = function(lastSelection, userInput, reducedList) {\n\n if (lastSelection === \'apple\') {\n\tcomplete.add(\'sauce\');\n }\n};\n\ncomplete.init();\n\n//\n// continue with the application...\n//\nconsole.log(\'program started with the following arguments:\', process.argv[2] || \'none provided\');\n```\n\n# Distribution and Installation\n\nYour installment procedure should place your CLI program in a location made accessible by the `PATH` variable. If users install your program with the NPM `-g` option, your program will be in the path.\n\n``` bash\n/usr/local/bin/myprogram -> /usr/local/lib/node_modules/myprogram/bin/myprogram\n```\n\n# API\n\n## list\nCreate a list of commands that you want to autocomplete with.\n\n```javascript\ncomplete.list = [\'apple\', \'orange\', \'pear\', \'lemon\', \'mango\'];\n```\n\n## callback\nOptionally you can define a callback that will get called when the match when the completion happens.\n\n```javascript\ncomplete.callback = function(lastSelection, userInput, reducedList) {\n\n //\n // do something if this is an `orange`. Note that anything that\n // you `process.stdout.write()` will be added to the auto complete\n // list.\n //\n};\n```\n\n## init()\nInitialize the auto completion behavior.\n\n```javascript\ncomplete.init();\n```\n\n\n## Higher Level Example\n\n``` js\nvar complete = require(\'complete\');\n\ncomplete({\n program: \'my-program\',\n // Commands\n commands: {\n \'hello\': function(words, prev, cur) {\n complete.output(cur, [\'abc\', \'def\']);\n },\n \'world\': {\n \'hi\': function(words, prev, cur) {\n complete.echo(\'next\');\n }\n }\n },\n // Position-independent options.\n // These will attempted to be\n // matched if `commands` fails\n // to match.\n options: {\n \'--help\': {},\n \'-h\': {},\n \'--version\': {},\n \'-v\': {}\n }\n});\n```\n\n## The above results in\n\n``` bash\n$ my-program he<TAB>\n$ my-program hello\n$ my-program hello a<TAB>\n$ my-program hello abc\n```\n\n# License\n\n(The MIT License)\n\nCopyright (c) 2010 hij1nx <http://www.twitter.com/hij1nx>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \'Software\'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \'AS IS\', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n',
533 silly resolved readmeFilename: 'README.md',
533 silly resolved _id: 'complete@0.3.1',
533 silly resolved _from: 'complete@0.3.1' },
533 silly resolved { name: 'flatiron-cli-config',
533 silly resolved version: '0.1.4',
533 silly resolved description: 'Encapsulated commands for managing configuration in flatiron CLI apps',
533 silly resolved author: { name: 'Nodejitsu Inc.', email: 'info@nodejitsu.com' },
533 silly resolved maintainers: [ [Object] ],
533 silly resolved repository:
533 silly resolved { type: 'git',
533 silly resolved url: 'https://github.com/flatiron/cli-config.git' },
533 silly resolved peerDependencies: { flatiron: '0.3.x' },
533 silly resolved devDependencies: { flatiron: '0.3.x', 'cli-easy': '0.1.x', vows: '0.6.x' },
533 silly resolved main: './lib/flatiron-cli-config',
533 silly resolved scripts: { test: 'vows --spec --isolate' },
533 silly resolved engines: { node: '>= 0.6.0' },
533 silly resolved readme: '# flatiron-cli-config\n\nEncapsulated commands for managing configuration in flatiron CLI apps\n\n## Example\nAt its core `flatiron-cli-config` is a broadway-compatible plugin which can be used by any `flatiron` application:\n\n``` js\n var flatiron = require(\'flatiron\'),\n app = flatiron.app;\n\n //\n // Configure the Application to be a CLI app with\n // a JSON configuration file `test-config.json`\n //\n app.name = \'app.js\';\n app.config.file({ file: \'test-config.json\' });\n app.use(flatiron.plugins.cli, {\n usage: \'A simple CLI app using flatiron-cli-config\'\n });\n\n //\n // Expose CLI commands using `flatiron-cli-config`\n //\n app.use(require(\'flatiron-cli-config\'));\n\n if (!module.parent) {\n //\n // Start the application\n //\n app.start();\n }\n```\n\nIf you run the above script:\n\n``` bash\n $ node app.js config set foo bar\n $ node app.js config get foo\n```\n\nThe output will be:\n\n```\n data: foo bar\n```\n\nAnd the contents of `test-config.json` will be:\n\n```\n { "foo": "bar" }\n```\n\n## API Documentation\n\n### Commands exposed\n\n``` bash\n $ node examples/app.js help config\n help: `app.js config *` commands allow you to edit your\n help: local app.js configuration file. Valid commands are:\n help:\n help: app.js config list\n help: app.js config set <key> <value>\n help: app.js config get <key>\n help: app.js config delete <key>\n```\n\n### Options\n\n``` js\n {\n //\n // Name of the store in `app.config` to use for `config list`. [Default: all config]\n //\n store: \'file\'\n\n //\n // Set of properties which cannot be deleted using `config delete <key>`\n //\n restricted: [\'foo\', \'bar\'],\n\n //\n // Set of functions which will execute before named commands: get, set, list, delete\n //\n before: { list: function () { ... } }\n }\n```\n\n## Installation\n\n### Installing npm (node package manager)\n```\n curl http://npmjs.org/install.sh | sh\n```\n\n### Installing flatiron-cli-config\n```\n [sudo] npm install flatiron-cli-config\n```\n\n## Run Tests\nTests are written in vows and give complete coverage of all APIs and storage engines.\n\n``` bash\n $ npm test\n```\n\n#### Author: [Charlie Robbins](http://nodejitsu.com)\n#### License: MIT',
533 silly resolved readmeFilename: 'README.md',
533 silly resolved _id: 'flatiron-cli-config@0.1.4',
533 silly resolved _from: 'flatiron-cli-config@0.1.4' },
533 silly resolved { author:
533 silly resolved { name: 'Isaac Z. Schlueter',
533 silly resolved email: 'i@izs.me',
533 silly resolved url: 'http://blog.izs.me/' },
533 silly resolved name: 'fstream-npm',
533 silly resolved description: 'fstream class for creating npm packages',
533 silly resolved version: '0.1.6',
533 silly resolved repository: { type: 'git', url: 'git://github.com/isaacs/fstream-npm.git' },
533 silly resolved main: './fstream-npm.js',
533 silly resolved dependencies: { 'fstream-ignore': '~0.0.5', inherits: '2' },
533 silly resolved license: 'BSD',
533 silly resolved readme: '# fstream-npm\n\nThis is an fstream DirReader class that will read a directory and filter\nthings according to the semantics of what goes in an npm package.\n\nFor example:\n\n```javascript\n// This will print out all the files that would be included\n// by \'npm publish\' or \'npm install\' of this directory.\n\nvar FN = require("fstream-npm")\nFN({ path: "./" })\n .on("child", function (e) {\n console.error(e.path.substr(e.root.path.length + 1))\n })\n```\n\n',
533 silly resolved readmeFilename: 'README.md',
533 silly resolved _id: 'fstream-npm@0.1.6',
533 silly resolved _from: 'fstream-npm@0.1.6' },
533 silly resolved { author:
533 silly resolved { name: 'Isaac Z. Schlueter',
533 silly resolved email: 'i@izs.me',
533 silly resolved url: 'http://blog.izs.me/' },
533 silly resolved name: 'fstream',
533 silly resolved description: 'Advanced file system stream things',
533 silly resolved version: '0.1.25',
533 silly resolved repository: { type: 'git', url: 'git://github.com/isaacs/fstream.git' },
533 silly resolved main: 'fstream.js',
533 silly resolved engines: { node: '>=0.6' },
533 silly resolved dependencies:
533 silly resolved { rimraf: '2',
533 silly resolved mkdirp: '0.3',
533 silly resolved 'graceful-fs': '~2.0.0',
533 silly resolved inherits: '~2.0.0' },
533 silly resolved devDependencies: { tap: '' },
533 silly resolved scripts: { test: 'tap examples/*.js' },
533 silly resolved license: 'BSD',
533 silly resolved readme: 'Like FS streams, but with stat on them, and supporting directories and\nsymbolic links, as well as normal files. Also, you can use this to set\nthe stats on a file, even if you don\'t change its contents, or to create\na symlink, etc.\n\nSo, for example, you can "write" a directory, and it\'ll call `mkdir`. You\ncan specify a uid and gid, and it\'ll call `chown`. You can specify a\n`mtime` and `atime`, and it\'ll call `utimes`. You can call it a symlink\nand provide a `linkpath` and it\'ll call `symlink`.\n\nNote that it won\'t automatically resolve symbolic links. So, if you\ncall `fstream.Reader(\'/some/symlink\')` then you\'ll get an object\nthat stats and then ends immediately (since it has no data). To follow\nsymbolic links, do this: `fstream.Reader({path:\'/some/symlink\', follow:\ntrue })`.\n\nThere are various checks to make sure that the bytes emitted are the\nsame as the intended size, if the size is set.\n\n## Examples\n\n```javascript\nfstream\n .Writer({ path: "path/to/file"\n , mode: 0755\n , size: 6\n })\n .write("hello\\n")\n .end()\n```\n\nThis will create the directories if they\'re missing, and then write\n`hello\\n` into the file, chmod it to 0755, and assert that 6 bytes have\nbeen written when it\'s done.\n\n```javascript\nfstream\n .Writer({ path: "path/to/file"\n , mode: 0755\n , size: 6\n , flags: "a"\n })\n .write("hello\\n")\n .end()\n```\n\nYou can pass flags in, if you want to append to a file.\n\n```javascript\nfstream\n .Writer({ path: "path/to/symlink"\n , linkpath: "./file"\n , SymbolicLink: true\n , mode: "0755" // octal strings supported\n })\n .end()\n```\n\nIf isSymbolicLink is a function, it\'ll be called, and if it returns\ntrue, then it\'ll treat it as a symlink. If it\'s not a function, then\nany truish value will make a symlink, or you can set `type:\n\'SymbolicLink\'`, which does the same thing.\n\nNote that the linkpath is relative to the symbolic link location, not\nthe parent dir or cwd.\n\n```javascript\nfstream\n .Reader("path/to/dir")\n .pipe(fstream.Writer("path/to/other/dir"))\n```\n\nThis will do like `cp -Rp path/to/dir path/to/other/dir`. If the other\ndir exists and isn\'t a directory, then it\'ll emit an error. It\'ll also\nset the uid, gid, mode, etc. to be identical. In this way, it\'s more\nlike `rsync -a` than simply a copy.\n',
533 silly resolved readmeFilename: 'README.md',
533 silly resolved _id: 'fstream@0.1.25',
533 silly resolved _from: 'fstream@0.1.25' },
533 silly resolved { name: 'flatiron-cli-users',
533 silly resolved version: '0.1.8',
533 silly resolved description: 'Encapsulated commands for managing users in flatiron CLI apps',
533 silly resolved author: { name: 'Nodejitsu Inc.', email: 'info@nodejitsu.com' },
533 silly resolved maintainers: [ [Object] ],
533 silly resolved repository:
533 silly resolved { type: 'git',
533 silly resolved url: 'http://github.com/flatiron/flatiron-cli-users.git' },
533 silly resolved peerDependencies: { flatiron: '~0.3.0' },
533 silly resolved devDependencies:
533 silly resolved { flatiron: '~0.3.0',
533 silly resolved 'nodejitsu-api': '0.2.x',
533 silly resolved nock: '0.16.x',
533 silly resolved vows: '0.7.x' },
533 silly resolved main: './lib/flatiron-cli-users',
533 silly resolved scripts: { test: 'vows --spec' },
533 silly resolved engines: { node: '>= 0.6.0' },
533 silly resolved readme: '# flatiron-cli-users\n\nEncapsulated commands for managing users in [flatiron][0] CLI apps\n\n## Example\nAt its core [flatiron-cli-users][1] is a broadway-compatible plugin which can be used by any [flatiron][0] application:\n\n``` js\n var flatiron = require(\'flatiron\'),\n app = flatiron.app;\n\n //\n // Configure the Application to be a CLI app with\n // a JSON configuration file `test-config.json`\n //\n app.name = \'app.js\';\n app.config.file({ file: \'test-config.json\' });\n app.use(flatiron.plugins.cli, {\n usage: \'A simple CLI app using flatiron-cli-users\'\n });\n\n //\n // Expose CLI commands using `flatiron-cli-users`\n //\n app.use(require(\'flatiron-cli-users\'));\n \n if (!module.parent) {\n //\n // Start the application\n //\n app.start();\n }\n```\n\nIf you run the above script:\n\n``` bash\n $ node app.js users create\n```\n\nThe output will be:\n\n``` bash\n help: To signup, first you will need to provide a username\n prompt: username: foobar\n help: Next, we will require your email address\n prompt: email: email@test.com\n help: Finally, we will need a password for this account\n prompt: password: \n prompt: confirm password: \n info: You account is now being created\n info: Account creation successful!\n```\n\nAnd the contents of `test-config.json` will have the specified user information. \n\n## API Documentation\n\n### Expected API endpoints\n\nThis `flatiron` plugin expects an API endpoint to be present on the application through `app.users`. You may implement this API endpoint however you wish. We would suggest using [resourceful][2] and [director][3], but you are free to use [express][4] or other node.js frameworks.\n\n**app.users.auth(function (err, result))**\n\nResponds with a valid indicating if the current user is authenticated.\n\n**app.users.availabile(username, function (err, result))**\n\nResponds with a valid indicating if the desired username is available.\n\n**app.users.create(user, function (err, result))**\n\nCreates a user with the specified properties.\n\n**app.users.update(username, props, function (err, result))**\n\nUpdates the user with `username` with specified `props`.\n\n**app.users.forgot(username, props, function (err, result))**\n\nAttempts to reset the password for the `username` with the specified `props`\n\n### Commands exposed\n\n``` bash\n $ node examples/app.js help users\n help: `app.js users *` commands allow you to work with new\n help: or existing user accounts.\n help: \n help: app.js users available <username>\n help: app.js users changepassword\n help: app.js users confirm <username> <inviteCode>\n help: app.js users create\n help: app.js users forgot <username> <shake>\n help: app.js users login\n help: app.js users logout\n help: app.js users whoami\n help: \n help: You will be prompted for additional user information\n help: as required.\n```\n\n### Options\n\n``` js\n {\n //\n // Set of functions which will execute after named commands: create, login, logout, etc.\n //\n after: { login: function () { ... } },\n\n //\n // Set of functions which will execute before named commands: create, login, logout, etc.\n //\n before: { login: function () { ... } }\n }\n```\n\n## Installation\n\n### Installing npm (node package manager)\n\n``` bash\n $ curl http://npmjs.org/install.sh | sh\n```\n\n### Installing flatiron-cli-users\n\n``` bash\n $ [sudo] npm install flatiron-cli-users\n```\n\n## Run Tests\nTests are written in vows and give complete coverage of all APIs and storage engines.\n\n``` bash\n $ npm test\n```\n\n#### Author: [Charlie Robbins](http://nodejitsu.com)\n#### License: MIT\n\n[0]: http://flatironjs.org\n[1]: http://github.com/flatiron/flatiron-cli-users\n[2]: http://github.com/flatiron/resourceful\n[3]: http://github.com/flatiron/director\n[4]: http://expressjs.org',
533 silly resolved readmeFilename: 'README.md',
533 silly resolved _id: 'flatiron-cli-users@0.1.8',
533 silly resolved _from: 'flatiron-cli-users@0.1.8' },
533 silly resolved { name: 'opener',
533 silly resolved description: 'Opens stuff, like webpages and files and executables, cross-platform',
533 silly resolved version: '1.3.0',
533 silly resolved author:
533 silly resolved { name: 'Domenic Denicola',
533 silly resolved email: 'domenic@domenicdenicola.com',
533 silly resolved url: 'http://domenicdenicola.com' },
533 silly resolved license: 'WTFPL',
533 silly resolved repository: { type: 'git', url: 'git://github.com/domenic/opener.git' },
533 silly resolved bugs: { url: 'http://github.com/domenic/opener/issues' },
533 silly resolved main: 'opener.js',
533 silly resolved bin: { opener: 'opener.js' },
533 silly resolved scripts: { lint: 'jshint opener.js' },
533 silly resolved devDependencies: { jshint: '>= 0.9.0' },
533 silly resolved readme: '# It Opens Stuff\r\n\r\nThat is, in your desktop environment. This will make *actual windows pop up*, with stuff in them:\r\n\r\n```bash\r\nnpm install opener -g\r\n\r\nopener http://google.com\r\nopener ./my-file.txt\r\nopener firefox\r\nopener npm run lint\r\n```\r\n\r\nAlso if you want to use it programmatically you can do that too:\r\n\r\n```js\r\nvar opener = require("opener");\r\n\r\nopener("http://google.com");\r\nopener("./my-file.txt");\r\nopener("firefox");\r\nopener("npm run lint");\r\n```\r\n\r\n## Use It for Good\r\n\r\nLike opening the user\'s browser with a test harness in your package\'s test script:\r\n\r\n```json\r\n{\r\n "scripts": {\r\n "test": "opener ./test/runner.html"\r\n },\r\n "devDependencies": {\r\n "opener": "*"\r\n }\r\n}\r\n```\r\n\r\n## Why\r\n\r\nBecause Windows has `start`, Macs have `open`, and *nix has `xdg-open`. At least\r\n[according to some guy on StackOverflow](http://stackoverflow.com/q/1480971/3191). And I like things that work on all\r\nthree. Like Node.js. And Opener.\r\n',
533 silly resolved readmeFilename: 'README.md',
533 silly resolved _id: 'opener@1.3.0',
533 silly resolved _from: 'opener@1.3.x' },
533 silly resolved { name: 'pkginfo',
533 silly resolved version: '0.3.0',
533 silly resolved description: 'An easy way to expose properties on a module from a package.json',
533 silly resolved author: { name: 'Charlie Robbins', email: 'charlie.robbins@gmail.com' },
533 silly resolved repository:
533 silly resolved { type: 'git',
533 silly resolved url: 'http://github.com/indexzero/node-pkginfo.git' },
533 silly resolved keywords: [ 'info', 'tools', 'package.json' ],
533 silly resolved devDependencies: { vows: '0.7.x' },
533 silly resolved main: './lib/pkginfo',
533 silly resolved scripts: { test: 'vows test/*-test.js --spec' },
533 silly resolved engines: { node: '>= 0.4.0' },
533 silly resolved readme: '# node-pkginfo\n\nAn easy way to expose properties on a module from a package.json\n\n## Installation\n\n### Installing npm (node package manager)\n```\n curl http://npmjs.org/install.sh | sh\n```\n\n### Installing pkginfo\n```\n [sudo] npm install pkginfo\n```\n\n## Motivation\nHow often when writing node.js modules have you written the following line(s) of code? \n\n* Hard code your version string into your code\n\n``` js\n exports.version = \'0.1.0\';\n```\n\n* Programmatically expose the version from the package.json\n\n``` js\n exports.version = JSON.parse(fs.readFileSync(\'/path/to/package.json\', \'utf8\')).version;\n```\n\nIn other words, how often have you wanted to expose basic information from your package.json onto your module programmatically? **WELL NOW YOU CAN!**\n\n## Usage\n\nUsing `pkginfo` is idiot-proof, just require and invoke it. \n\n``` js\n var pkginfo = require(\'pkginfo\')(module);\n \n console.dir(module.exports);\n```\n\nBy invoking the `pkginfo` module all of the properties in your `package.json` file will be automatically exposed on the callee module (i.e. the parent module of `pkginfo`). \n\nHere\'s a sample of the output:\n\n```\n { name: \'simple-app\',\n description: \'A test fixture for pkginfo\',\n version: \'0.1.0\',\n author: \'Charlie Robbins <charlie.robbins@gmail.com>\',\n keywords: [ \'test\', \'fixture\' ],\n main: \'./index.js\',\n scripts: { test: \'vows test/*-test.js --spec\' },\n engines: { node: \'>= 0.4.0\' } }\n```\n\n### Expose specific properties\nIf you don\'t want to expose **all** properties on from your `package.json` on your module then simple pass those properties to the `pkginfo` function:\n\n``` js\n var pkginfo = require(\'pkginfo\')(module, \'version\', \'author\');\n \n console.dir(module.exports);\n```\n\n```\n { version: \'0.1.0\',\n author: \'Charlie Robbins <charlie.robbins@gmail.com>\' }\n```\n\nIf you\'re looking for further usage see the [examples][0] included in this repository. \n\n## Run Tests\nTests are written in [vows][1] and give complete coverage of all APIs.\n\n```\n vows test/*-test.js --spec\n```\n\n[0]: https://github.com/indexzero/node-pkginfo/tree/master/examples\n[1]: http://vowsjs.org\n\n#### Author: [Charlie Robbins](http://nodejitsu.com)\n#### License: MIT',
533 silly resolved readmeFilename: 'README.md',
533 silly resolved _id: 'pkginfo@0.3.0',
533 silly resolved _from: 'pkginfo@0.3.0' },
533 silly resolved { name: 'require-analyzer',
533 silly resolved description: 'Determine dependencies for a given node.js file, directory tree, or module in code or on the command line',
533 silly resolved version: '0.5.0',
533 silly resolved author: { name: 'Nodejitsu Inc.', email: 'info@nodejitsu.com' },
533 silly resolved maintainers: [ [Object], [Object] ],
533 silly resolved repository:
533 silly resolved { type: 'git',
533 silly resolved url: 'http://github.com/nodejitsu/require-analyzer.git' },
533 silly resolved dependencies:
533 silly resolved { colors: '0.x.x',
533 silly resolved optimist: '0.3.x',
533 silly resolved semver: '1.0.x',
533 silly resolved winston: '0.6.x',
533 silly resolved detective: '0.0.x',
533 silly resolved resolve: '0.2.x',
533 silly resolved eyes: '0.1.x',
533 silly resolved 'read-installed': '0.0.x' },
533 silly resolved devDependencies: { vows: '0.6.x' },
533 silly resolved main: './lib/require-analyzer',
533 silly resolved bin: { 'require-analyzer': './bin/require-analyzer' },
533 silly resolved engines: { node: '>= 0.4.0' },
533 silly resolved scripts: { test: 'vows test/*-test.js --spec' },
533 silly resolved readme: '# require-analyzer\n\nDetermine dependencies for a given node.js file, directory tree, or module in code or on the command line\n\n# Status\n[![Build Status](https://secure.travis-ci.org/nodejitsu/require-analyzer.png)](http://travis-ci.org/nodejitsu/require-analyzer)\n\n## Installation\n\n### Installing npm (node package manager)\n<pre>\n curl http://npmjs.org/install.sh | sh\n</pre>\n\n### Installing require-analyzer\n<pre>\n [sudo] npm install require-analyzer\n</pre>\nNOTE: If you\'re using `npm >= 1.0` then you need to add the `-g` parameter to install `require-analyzer` globally.\n\n## Usage\nThere are two distinct ways to use the `require-analyzer` library: from the command line or through code. The command line tool is designed to work with `package.json` files so make sure that you have created one for your project first. Checkout [jitsu][0] for a quick and easy way to create a package.json.\n\nFor more information read our blog post at [blog.nodejitsu.com][1].\n\n### Command-line usage\nUsing require-analyzer from the command line is easy. The binary will attempt to read the `package.json` file in the current directory, then analyze the dependencies and cross reference the result. \n<pre>\n $ require-analyzer --help\n usage: require-analyzer [options] [directory]\n\n Analyzes the node.js requirements for the target directory. If no directory\n is supplied then the current directory is used\n\n options:\n --update Update versions for existing dependencies\n -h, --help You\'re staring at it\n</pre>\n\nHere\'s a sample of `require-analyzer` analyzing it\'s own dependencies:\n<pre>\n $ require-analyzer\n info: require-analyzer starting in /Users/Charlie/Nodejitsu/require-analyzer\n warn: No dependencies found\n info: Analyzing dependencies...\n info: Done analyzing raw dependencies\n info: Retrieved packages from npm\n info: Additional dependencies found\n data: {\n data: findit: \'>= 0.0.3\',\n data: npm: \'>= 0.3.18\'\n data: }\n info: Updating /Users/Charlie/Nodejitsu/require-analyzer/package.json\n info: require-analyzer updated package.json dependencies\n</pre>\n\n### Programmatic usage\nThe easiest way to use `require-analyzer` programmatically is through the `.analyze()` method. This method will use `fs.stat()` on the path supplied and attempt one of three options:\n\n1. If it is a directory that has a package.json, analyze `require` statements from `package.main`\n2. If it is a directory with no package.json analyze every `.js` or `.coffee` file in the directory tree \n3. If it is a file, then analyze `require` statements from that individual file.\n\nLets dive into a quick sample usage:\n\n```javascript\n var analyzer = require(\'require-analyzer\');\n \n var options = {\n target: \'path/to/your/dependency\' // e.g /Users/some-user/your-package\n reduce: true\n };\n \n var deps = analyzer.analyze(options, function (err, pkgs) {\n //\n // Log all packages that were discovered\n //\n console.dir(pkgs);\n });\n \n //\n // The call the `.analyze()` returns an `EventEmitter` which outputs\n // data at various stages of the analysis operation.\n //\n deps.on(\'dependencies\', function (raw) {\n //\n // Log the raw list of dependencies (no versions)\n //\n console.dir(raw);\n });\n \n deps.on(\'search\', function (pkgs) {\n //\n // Log the results from the npm search operation with the current\n // active version for each dependency\n //\n console.dir(pkgs);\n });\n \n deps.on(\'reduce\', function (reduced) {\n //\n // Logs the dependencies after they have been cross-referenced with \n // sibling dependencies. (i.e. if \'foo\' requires \'bar\', \'bar\' will be removed).\n //\n console.dir(reduced);\n });\n```\n\n### Further analyzing dependencies\nSometimes when dealing with dependencies it is necessary to further analyze the dependencies that are returned. `require-analyzer` has a convenience method for doing just this:\n\n```javascript\n var analyzer = require(\'require-analyzer\');\n \n var current = {\n \'foo\': \'>= 0.1.0\'\n };\n \n var updated = {\n \'foo\': \'>= 0.2.0\',\n \'bar\': \'>= 0.1.0\'\n };\n \n var updates = analyzer.updates(current, updated);\n \n //\n // This will return an object literal with the differential\n // updates between the two sets of dependencies:\n //\n // {\n // added: { \'bar\': \'>= 0.1.0\' },\n // updated: { \'foo\': \'>= 0.2.0\' }\n // }\n //\n```\n\n## Tests\n<pre>\n npm test\n</pre>\n\n#### Author: [Charlie Robbins][2]\n\n[0]: http://github.com/nodejitsu/jitsu\n[1]: http://blog.nodejitsu.com/analyze-nodejs-dependencies-like-magic\n[2]: http://nodejitsu.com',
533 silly resolved readmeFilename: 'README.md',
533 silly resolved _id: 'require-analyzer@0.5.0',
533 silly resolved _from: 'require-analyzer@0.5.0' },
533 silly resolved { name: 'ladder',
533 silly resolved author: { name: 'yawnt', email: 'yawn.localhost@gmail.com' },
533 silly resolved version: '0.0.1',
533 silly resolved scripts: { test: 'mocha -R spec test/*-test.js' },
533 silly resolved repository: { type: 'git', url: 'https://github.com/yawnt/ladder.git' },
533 silly resolved devDependencies: { 'expect.js': '>= 0.0.0' },
533 silly resolved readme: 'ladder\r\n=====\r\n\r\nA library to detect JSON indentation\r\n\r\n## Install\r\n\r\n```\r\n$ npm install ladder\r\n```\r\n\r\n## Tests\r\n\r\n```\r\n$ npm test\r\n```\r\n\r\n## Methods\r\n\r\n####ladder(jsonString)\r\n\r\njsonString is a valid json string.\r\nIt returns either the number of spaces or \'\\t\' if tabs are used\r\n\r\n## Examples\r\n\r\ntest.json\r\n```\r\n{\r\n "test": "hellow"\r\n}\r\n```\r\nexample.js\r\n```javascript\r\nvar ladder = require(\'ladder\'),\r\n fs = require(\'fs\'),\r\n path = require(\'path\');\r\n\r\nfs.readFile(path.resolve(\'./test.json\'), function(e, data) {\r\n console.log(ladder(data.toString())); // => 2\r\n});\r\n```\r\n\r\n## License\r\n\r\nMIT\r\n',
533 silly resolved readmeFilename: 'README.md',
533 silly resolved _id: 'ladder@0.0.1',
533 silly resolved description: 'ladder\r =====',
533 silly resolved _from: 'ladder@0.0.1' },
533 silly resolved { name: 'progress',
533 silly resolved version: '0.1.0',
533 silly resolved description: 'Flexible ascii progress bar',
533 silly resolved keywords: [ 'cli', 'progress' ],
533 silly resolved author: { name: 'TJ Holowaychuk', email: 'tj@vision-media.ca' },
533 silly resolved dependencies: {},
533 silly resolved main: 'index',
533 silly resolved engines: { node: '>=0.4.0' },
533 silly resolved readme: '# node-progress\n\n Flexible ascii progress bar\n\n## Installation\n\n npm install progress\n\n## Usage\n\n First we create a `ProgressBar`, giving it a format string\n as well as the `total`, telling the progress bar when it will\n be considered complete. After that all we need to do is `tick()` appropriately. \n\n```javascript\nvar ProgressBar = require(\'progress\');\n\nvar bar = new ProgressBar(\':bar\', { total: 10 });\nvar timer = setInterval(function(){\nbar.tick();\n if (bar.complete) {\n console.log(\'\\ncomplete\\n\');\n clearInterval(timer);\n }\n}, 100);\n```\n\n## Options:\n\n - `total` total number of ticks to complete\n - `stream` the output stream defaulting to stdout\n - `complete` completion character defaulting to "="\n - `incomplete` incomplete character defaulting to "-"\n\n## Tokens:\n\n - `:bar` the progress bar itself\n - `:current` current tick number\n - `:total` total ticks\n - `:elapsed` time elapsed in seconds\n - `:percent` completion percentage\n - `:eta` estimated completion time in seconds\n\n## Examples\n\n### Download\n\n In our download example each tick has a variable influence, so we pass the chunk length which adjusts the progress bar appropriately relative to the total length. \n\n```javascript\nvar ProgressBar = require(\'../\')\n , https = require(\'https\');\n\nvar req = https.request({\n host: \'download.github.com\'\n , port: 443\n , path: \'/visionmedia-node-jscoverage-0d4608a.zip\'\n});\n\nreq.on(\'response\', function(res){\n var len = parseInt(res.headers[\'content-length\'], 10);\n\n console.log();\n var bar = new ProgressBar(\' downloading [:bar] :percent :etas\', {\n complete: \'=\'\n , incomplete: \' \'\n , width: 20\n , total: len\n });\n\n res.on(\'data\', function(chunk){\n bar.tick(chunk.length);\n });\n\n res.on(\'end\', function(){\n console.log(\'\\n\');\n });\n});\n\nreq.end();\n```\n\n The code above will generate a progress bar that looks like this:\n\n```\ndownloading [===== ] 29% 3.7s\n```\n\n\n## License \n\n(The MIT License)\n\nCopyright (c) 2011 TJ Holowaychuk `&lt;tj@vision-media.ca&gt;`\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\'Software\'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \'AS IS\', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.',
533 silly resolved readmeFilename: 'Readme.md',
533 silly resolved _id: 'progress@0.1.0',
533 silly resolved _from: 'progress@0.1.0' },
533 silly resolved { name: 'nodejitsu-api',
533 silly resolved version: '0.6.3',
533 silly resolved description: 'nodejitsu API client wrapper',
533 silly resolved keywords: [ 'nodejitsu', 'nodejitsu-api' ],
533 silly resolved homepage: 'http://github.com/nodejitsu/nodejitsu-api',
533 silly resolved repository:
533 silly resolved { type: 'git',
533 silly resolved url: 'https://github.com/nodejitsu/nodejitsu-api.git' },
533 silly resolved main: './lib/client.js',
533 silly resolved scripts: { test: 'vows --spec ./test/commands/*-test.js' },
533 silly resolved dependencies: { request: '2.25.0', 'preacher-api': '0.1.x' },
533 silly resolved devDependencies: { vows: '0.7.x', nock: '0.14.x' },
533 silly resolved author: { name: 'Nodejitsu Inc.', email: 'info@nodejitsu.com' },
533 silly resolved maintainers: [ [Object], [Object] ],
533 silly resolved readme: '# nodejitsu-api\n\nThe `nodejitsu-api` is a module that allows you to communicate with the our\n[RESTful API][REST]\n\n## Installation:\n\nThis module is published in NPM:\n\n```\n npm install nodejitsu-api --save\n```\n\nThe `--save` tells NPM to automatically add it to your `package.json` file\n\n## API documentation\n\nBefore you can use the API you need to create a new API client. In this example\nwe are going to assume that `foo` is your username and `bar` is the password of\nNodejitsu account you want to control.\n\n### api.createClient(options)\n\nThe `createClient` method generates a new API client. It accepts an options\nargument which is used to configure the client.\n\n##### options:\n\n- `username` **string** The username of your Nodejitsu account\n- `password` **string** The password or auth token of your account\n- `remoteUri` **string** The Nodejitsu API resource\n- `debug` **boolean** Output debugging information to the console\n- `proxy` **string** HTTP proxy to connect over\n- `timeout` **number** How long can a single API requests before we time it out\n- `ignorePoweredBy` **boolean** Ignore the check for the `x-powered-by` header\n\nThis options argument can either be an object with the properties specified\nabove or a [nconf][nconf] object.\n\nThe `remoteUri` argument is a required argument. Most API calls also require the\n`username` and `password` to be specified. There a couple of API call where this\nis not required, this is documented by the relevant API calls.\n\n```js\nvar api = require(\'nodejitsu-api\');\n\n// Construct a new client.\nvar client = api.createClient({\n username: \'foo\',\n password: \'bar\',\n remoteUri: \'https://api.nodejitsu.com\'\n});\n```\n\n### client\n\nThe API calls are generally constructed as `resource` and `action`:\n\n``` js\nclient.resource.action(\'data\', function (err, result) {\n if (err) {\n throw err;\n }\n\n // Use the result\n});\n```\n\nThe following API resources are exposes in the module:\n\n- [apps][apps] Manage your application instances.\n - [apps.available][apps.available]\n - [apps.list][apps.list]\n - [apps.create][apps.create]\n - [apps.view][apps.view]\n - [apps.update][apps.update]\n - [apps.start][apps.start]\n - [apps.stop][apps.stop]\n - [apps.restart][apps.restart]\n - [apps.setDrones][apps.setdrones]\n - [apps.datacenter][apps.datacenter]\n - [apps.destroy][apps.destroy]\n - [apps.endpoints][apps.endpoints]\n- [databases][databases] Manage your databases.\n - [databases.create][databases.create]\n - [databases.get][databases.get]\n - [databases.list][databases.list]\n - [databases.destroy][databases.destroy]\n- [logs][logs] Manage your application logs.\n - [logs.byApp][logs.byapp]\n - [logs.byUser][logs.byuser]\n- [snapshots][snapshots] Manage your application snapshots.\n - [snapshots.list][snapshots.list]\n - [snapshots.create][snapshots.create]\n - [snapshots.fetch][snapshots.fetch]\n - [snapshots.destroy][snapshots.destroy]\n - [snapshots.activate][snapshots.activate]\n- [users][users] Manage your Nodejitsu account.\n- [users.auth][users.auth]\n- [users.create][users.create]\n- [users.available][users.available]\n- [users.view][users.view]\n- [users.confirm][users.confirm]\n- [users.forgot][users.forgot]\n- [users.update][users.update]\n- [users.destroy][users.destroy]\n\n[apps]: #clientapps\n[apps.available]: #clientappsavailable\n[apps.list]: #clientappslist\n[apps.create]: #clientappscreate\n[apps.view]: #clientappsview\n[apps.update]: #clientappsupdate\n[apps.start]: #clientappsstart\n[apps.stop]: #clientappsstop\n[apps.restart]: #clientappsrestart\n[apps.setdrones]: #clientappssetDrones\n[apps.datacenter]: #clientappsdatacenter\n[apps.destroy]: #clientappsdestroy\n[apps.endpoints]: #clientappsendpoints\n\n[databases]: #clientdatabases\n[databases.create]: #clientdatabasescreate\n[databases.get]: #clientdatabasesget\n[databases.list]: #clientdatabaseslist\n[databases.destroy]: #clientdatabasesdestroy\n\n[logs]: #clientlogs\n[logs.byapp]: #clientlogsbyapp\n[logs.byUser]: #clientlogsbyuser\n\n[snapshots]: #clientsnapshots\n[snapshots.list]: #clientsnapshots.list\n[snapshots.create]: #clientsnapshots.create\n[snapshots.fetch]: #clientsnapshots.fetch\n[snapshots.destroy]: #clientsnapshots.destroy\n[snapshots.activate]: #clientsnapshots.activate\n\n[users]: #clientusers\n[users.auth]: #clientusersauth\n[users.create]: #clientuserscreate\n[users.available]: #clientusersavailable\n[users.view]: #clientusersview\n[users.confirm]: #clientusersconfirm\n[users.forgot]: #clientusersforgot\n[users.update]: #clientusersupdate\n[users.destroy]: #clientusersdestroy\n\n### client.app\n#### client.apps.available\n\nChecks if the available of the applications name and sub domain is currently\ntaken in Nodejitsu.\n\n##### Arguments\n\n- `app` **string** The application name\n- `callback` **function** \n\n```js\nclient.app.available(\'my-application\', function (err, data) {\n console.log(data);\n});\n```\n\n#### client.apps.list\n\nList all the applications for the authenticated user.\n\n##### Arguments\n\n- `username` **string** The username, which is optional and will default to the\n configured username\n- `callback` **function** The callback receives an array of your applications\n\n```js\nclient.app.list(\'my-application\', function (err, data) {\n console.log(data);\n});\n```\n\n#### client.apps.create\n\nCreate an application from the specified `package.json` object.\n\n##### Arguments\n\n- `app` **object** The package.json\n- `callback` **function**\n\n```js\nvar app = require(\'./package.json\'); // requires your package.json as example\nclient.apps.create(app, function (err, data) {\n console.log(data);\n});\n```\n\n#### client.apps.view\n\nViews the application details for one specific application.\n\n##### Arguments\n\n- `app` **string** Name of the application\n- `callback` **function** The callback receives your application details\n\n```js\nclient.apps.view(\'my-application-name\', function (err, data) {\n console.log(data);\n});\n```\n\n#### client.apps.update\n\nUpdates the the application details.\n\n##### Arguments\n\n- `app` **string** Name of the application\n- `changes` **Object** Properties that need to be updated for this application\n- `callback` **function**\n\n```js\nclient.apps.update(\'my-application-name\', { name: \'foo\' }, function (err, data) {\n console.log(data);\n});\n```\n\n#### client.apps.start\n\nStart the application.\n\n##### Arguments\n\n- `app` **string** Name of the application\n- `callback` **function**\n\n```js\nclient.apps.start(\'my-application-name\', function (err, data) {\n console.log(data);\n});\n```\n\n#### client.apps.stop\n\nStop the application.\n\n##### Arguments\n\n- `app` **string** Name of the application\n- `callback` **function**\n\n```js\nclient.apps.stop(\'my-application-name\', function (err, data) {\n console.log(data);\n});\n```\n\n#### client.apps.restart\n\nRestarts the application without changing a drone. Where stopping and starting\nan application could result in deployment on a different drone.\n\n##### Arguments\n\n- `app` **string** Name of the application\n- `callback` **function**\n\n```js\nclient.apps.stop(\'my-application-name\', function (err, data) {\n console.log(data);\n});\n```\n\n#### client.apps.setDrones\n\nRun the application on `x` amount of drones on the Nodejitsu servers.\n\n##### Arguments\n\n- `app` **string** Name of the application\n- `drones` **number** The amount of drones the application needs to run on\n- `callback` **function**\n\n```js\nclient.apps.setDrones(\'my-application-name\', 10, function (err, data) {\n console.log(data);\n});\n```\n\n#### client.apps.datacenter\n\nMove the application to a new datacenter.\n\n##### Arguments\n\n- `app` **string** Name of the application\n- `cloud` **object** The datacenter configuration\n - `provider` **string** Name of the cloud provider\n - `datacenter` **string** Data center identifier\n - `drones` **number** The amount of drones you want to start on this datacenter\n- `callback` **function**\n\n```js\nvar cloud = {\n provider: \'joyent\',\n datacenter: \'eu-ams-1\',\n drones: 6\n}\nclient.apps.datacenter(\'my-application-name\', cloud, function (err, data) {\n console.log(data);\n});\n```\n\n#### client.apps.destroy\n\nDestroys the application.\n\n##### Arguments\n\n- `app` **string** Name of the application\n- `callback` **function**\n\n```js\nclient.apps.destroy(\'my-application-name\', function (err, data) {\n console.log(data);\n});\n```\n\n#### client.apps.endpoints\n\nGet a list of all datacenter providers and datacenter identifiers.\n**Please note: this method doesn\'t require any authentication.**\n\n##### Arguments\n\n- `callback` **function**\n\n```js\nclient.apps.destroy(\'my-application-name\', function (err, data) {\n console.log(data);\n});\n```\n\n### client.databases\n#### client.databases.create\n\nCreate a new database. These databases are created by third party providers you\ncan find more information about each database provider in\n[webops/databases][webops/databases]\n\n##### Arguments\n\n- `type` **string** Database type (mongo, monghq, redis, redistogo, couch)\n- `name` **string** Name of the database\n- `callback` **function** \n\n```js\nclient.databases.create(\'redis\', \'my-iriscouch-redis-db\', function (err, data) {\n console.log(data);\n});\n```\n\n#### client.databases.get\n\nGet the database information which contains the connection details\n\n##### Arguments\n\n- `name` **string** Name of the database\n- `callback` **function** \n\n```js\nclient.databases.get(\'my-iriscouch-redis-db\', function (err, data) {\n console.log(data);\n});\n```\n\n#### client.databases.list\n\nGet the all databases and their information.\n\n##### Arguments\n\n- `username` **string** The username, which is optional and will default to the\n configured username\n- `callback` **function**\n\n```js\nclient.databases.list(\'username\', function (err, data) {\n console.log(data);\n});\n```\n\n#### client.databases.destroy\n\nDestroy the specified database.\n\n##### Arguments\n\n- `name` **string** Name of the database you want to destroy\n- `callback` **function**\n\n```js\nclient.databases.list(\'username\', function (err, data) {\n console.log(data);\n});\n```\n\n### client.logs\n#### client.logs.byApp\n\nFetches the logs for the given application.\n\n##### Arguments\n\n- `name` **string** Name of the application\n- `amount` **number** The amount logs to retrieve\n- `callback` **function** \n\n```js\nclient.logs.byApp(\'my-application\', 50, function (err, data) {\n console.log(data);\n});\n```\n\n#### client.logs.byUser\n\nFetches the logs for every application for the specified user.\n\n##### Arguments\n\n- `username` **string** The username, which is optional and will default to the\n configured username\n- `amount` **number** The amount logs to retrieve\n- `callback` **function** \n\n```js\nclient.logs.byUser(\'foo\', 50, function (err, data) {\n console.log(data);\n});\n```\n\n### client.snapshots\n#### client.snapshots.list\n\nLists all snapshots for the given application\n\n##### Arguments\n\n- `name` **string** Name of the application\n- `callback` **function** \n\n```js\nclient.snapshots.list(\'my-application\', function (err, data) {\n console.log(data);\n});\n```\n\n#### client.snapshots.create\n\nUploads a new snapshot for the application. This method assumes that you have a\nproperly packed `.tgz` application on your system. The `.tgz` should have the\nsame internal structure as the result of an `npm pack`.\n\n##### Arguments\n\n- `name` **string** Name of the application that receives the snapshot\n- `snapshotname`: **string** Name of the snapshot\n- `location`: **string** absolute path to the `.tgz` snapshot\n- `callback` **function** \n\n```js\nclient.snapshots.create(\'my-application\', \'0.1.0\', \'/app.tgz\', function (err, data) {\n console.log(data);\n});\n```\n\nPlease note that this method returns an event emitter which you can use to track\nthe progress of the upload. This event emitter emits and `data` event with the\namount of data uploaded and emits the `end` event once the upload been\ncompleted.\n\n#### client.snapshots.fetch\n\nFetches the snapshot from your application. Please note that these snapshots are\nthe actual state of the application that is ran on the drones, so these will\ncontain the `node_modules` folder.\n\n##### Arguments\n\n- `name` **string** Name of the application\n- `snapshotname` **string** Name of the snapshot that you want to download\n- `callback` **function** \n\n```js\nclient.snapshots.fetch(\'my-application\', \'0.1.0\', function (err, data) {\n console.log(data);\n});\n```\n\nThis function returns the Stream that fetches the snapshot. You can use\nthis Stream to `Stream.pipe` it to a file on your system. The callback would\nonly indicate a successful fetch.\n\n#### client.snapshots.destroy\n\nDestroy the snapshot.\n\n##### Arguments\n\n- `name` **string** Name of the application\n- `snapshotname` **string** Name of the snapshot that you want to download\n- `callback` **function** \n\n```js\nclient.snapshots.destroy(\'my-application\', \'0.1.0\', function (err, data) {\n console.log(data);\n});\n```\n\n#### client.snapshots.activate\n\nActivates a snapshot. This allows you to roll back to a old version when\nsomething goes wrong in your application.\n\n##### Arguments\n\n- `name` **string** Name of the application\n- `snapshotname` **string** Name of the snapshot that you want to download\n- `callback` **function** \n\n```js\nclient.snapshots.activate(\'my-application\', \'0.0.45\', function (err, data) {\n console.log(data);\n});\n```\n### client.users\n#### client.users.auth\n\nTests if the users login details are valid.\n\n##### Arguments\n\n- `callback` **function** \n\n```js\nclient.users.auth(function (err, authenticated) {\n console.log(authenticated);\n});\n```\n\n#### client.users.create\n\nRegister a new Nodejitsu account.\n**Please note: this method doesn\'t require any authentication.**\n\n##### Arguments\n\n- `account` **object** account details\n - `username` **string** username\n - `passowrd` **string** password\n - `email` **string** e-mail address that receives the verification code\n- `callback` **function** \n\n```js\nvar account = {\n username: \'foo\',\n password: \'bar\',\n email: \'foo@example.com\'\n};\n\nclient.users.create(account, function (err, data) {\n console.log(data);\n});\n```\n\n#### client.users.available\n\nTest if the username is available.\n**Please note: this method doesn\'t require any authentication.**\n\n##### Arguments\n\n- `username` **string** username\n- `callback` **function** \n\n```js\nclient.users.available(\'foo\', function (err, data) {\n console.log(data);\n});\n```\n\n#### client.users.view\n\nRetrieves the user details.\n\n##### Arguments\n\n- `username` **string** username\n- `callback` **function** \n\n```js\nclient.users.view(\'foo\', function (err, data) {\n console.log(data);\n});\n```\n\n#### client.users.confirm\n\nConfirm the e-mail address of the user.\n**Please note: this method doesn\'t require any authentication.**\n\n##### Arguments\n\n- `user` **object** confirmation details\n - `username` **string** the username that we are confirming\n - `inviteCode` **string** the inviteCode that was send to the users e-mail\n- `callback` **function** \n\n```js\nvar user = {\n username: \'foo\',\n inviteCode: \'foo-bar-bnanan-trololol\'\n};\n\nclient.users.confirm(user, function (err, data) {\n console.log(data);\n});\n```\n#### client.users.forgot\n\nRequest a password reset e-mail\n\n##### Arguments\n\n- `username` **string** username\n- `callback` **function** \n\n```js\nclient.users.forgot(\'foo\', function (err, data) {\n console.log(data);\n});\n```\n\n#### client.users.update\n\nUpdates the account information.\n\n##### Arguments\n\n- `username` **string** username\n- `changes` **Object** Properties that need to be updated for this user.\n- `callback` **function** \n\n```js\nclient.users.update(\'foo\', changes, function (err, data) {\n console.log(data);\n});\n```\n\n#### client.users.destroy\n\nRemoves your account from the Nodejitsu platform. Use with extreme caution. This\nwill also destroy all the applications that you are running and databases that\nyou have created. **Once you call this method, there is no way back and no\noption to undo this**.\n\n##### Arguments\n\n- `username` **string** username\n- `callback` **function** \n\n```js\nclient.users.destroy(\'foo\', function (err, data) {\n console.log(data);\n});\n```\n\n## Tests\n\nAll tests are written with [vows](http://vowsjs.org) and should be run with\n[npm](http://npmjs.org):\n\n```bash\n$ npm test\n```\n\n## License\n\nMIT.\n\n[REST]: https://github.com/nodejitsu/handbook/tree/master/API.md\n[nconf]: https://github.com/flatiron/nconf\n[webops/databases]: https://webops.nodejitsu.com/databases\n',
533 silly resolved readmeFilename: 'README.md',
533 silly resolved _id: 'nodejitsu-api@0.6.3',
533 silly resolved _from: 'nodejitsu-api@0.6.3' },
533 silly resolved { name: 'request',
533 silly resolved description: 'Simplified HTTP request client.',
533 silly resolved tags: [ 'http', 'simple', 'util', 'utility' ],
533 silly resolved version: '2.28.0',
533 silly resolved author: { name: 'Mikeal Rogers', email: 'mikeal.rogers@gmail.com' },
533 silly resolved repository: { type: 'git', url: 'http://github.com/mikeal/request.git' },
533 silly resolved bugs: { url: 'http://github.com/mikeal/request/issues' },
533 silly resolved engines: [ 'node >= 0.8.0' ],
533 silly resolved main: 'index.js',
533 silly resolved dependencies:
533 silly resolved { qs: '~0.6.0',
533 silly resolved 'json-stringify-safe': '~5.0.0',
533 silly resolved 'forever-agent': '~0.5.0',
533 silly resolved 'node-uuid': '~1.4.0',
533 silly resolved mime: '~1.2.9',
533 silly resolved 'tough-cookie': '~0.9.15',
533 silly resolved 'form-data': '~0.1.0',
533 silly resolved 'tunnel-agent': '~0.3.0',
533 silly resolved 'http-signature': '~0.10.0',
533 silly resolved 'oauth-sign': '~0.3.0',
533 silly resolved hawk: '~1.0.0',
533 silly resolved 'aws-sign2': '~0.5.0' },
533 silly resolved optionalDependencies:
533 silly resolved { 'tough-cookie': '~0.9.15',
533 silly resolved 'form-data': '~0.1.0',
533 silly resolved 'tunnel-agent': '~0.3.0',
533 silly resolved 'http-signature': '~0.10.0',
533 silly resolved 'oauth-sign': '~0.3.0',
533 silly resolved hawk: '~1.0.0',
533 silly resolved 'aws-sign2': '~0.5.0' },
533 silly resolved scripts: { test: 'node tests/run.js' },
533 silly resolved readme: '# Request -- Simplified HTTP client\n\n[![NPM](https://nodei.co/npm/request.png)](https://nodei.co/npm/request/)\n\n## Super simple to use\n\nRequest is designed to be the simplest way possible to make http calls. It supports HTTPS and follows redirects by default.\n\n```javascript\nvar request = require(\'request\');\nrequest(\'http://www.google.com\', function (error, response, body) {\n if (!error && response.statusCode == 200) {\n console.log(body) // Print the google web page.\n }\n})\n```\n\n## Streaming\n\nYou can stream any response to a file stream.\n\n```javascript\nrequest(\'http://google.com/doodle.png\').pipe(fs.createWriteStream(\'doodle.png\'))\n```\n\nYou can also stream a file to a PUT or POST request. This method will also check the file extension against a mapping of file extensions to content-types (in this case `application/json`) and use the proper `content-type` in the PUT request (if the headers don’t already provide one).\n\n```javascript\nfs.createReadStream(\'file.json\').pipe(request.put(\'http://mysite.com/obj.json\'))\n```\n\nRequest can also `pipe` to itself. When doing so, `content-type` and `content-length` are preserved in the PUT headers.\n\n```javascript\nrequest.get(\'http://google.com/img.png\').pipe(request.put(\'http://mysite.com/img.png\'))\n```\n\nNow let’s get fancy.\n\n```javascript\nhttp.createServer(function (req, resp) {\n if (req.url === \'/doodle.png\') {\n if (req.method === \'PUT\') {\n req.pipe(request.put(\'http://mysite.com/doodle.png\'))\n } else if (req.method === \'GET\' || req.method === \'HEAD\') {\n request.get(\'http://mysite.com/doodle.png\').pipe(resp)\n }\n }\n})\n```\n\nYou can also `pipe()` from `http.ServerRequest` instances, as well as to `http.ServerResponse` instances. The HTTP method, headers, and entity-body data will be sent. Which means that, if you don\'t really care about security, you can do:\n\n```javascript\nhttp.createServer(function (req, resp) {\n if (req.url === \'/doodle.png\') {\n var x = request(\'http://mysite.com/doodle.png\')\n req.pipe(x)\n x.pipe(resp)\n }\n})\n```\n\nAnd since `pipe()` returns the destination stream in ≥ Node 0.5.x you can do one line proxying. :)\n\n```javascript\nreq.pipe(request(\'http://mysite.com/doodle.png\')).pipe(resp)\n```\n\nAlso, none of this new functionality conflicts with requests previous features, it just expands them.\n\n```javascript\nvar r = request.defaults({\'proxy\':\'http://localproxy.com\'})\n\nhttp.createServer(function (req, resp) {\n if (req.url === \'/doodle.png\') {\n r.get(\'http://google.com/doodle.png\').pipe(resp)\n }\n})\n```\n\nYou can still use intermediate proxies, the requests will still follow HTTP forwards, etc.\n\n## Forms\n\n`request` supports `application/x-www-form-urlencoded` and `multipart/form-data` form uploads. For `multipart/related` refer to the `multipart` API.\n\nURL-encoded forms are simple.\n\n```javascript\nrequest.post(\'http://service.com/upload\', {form:{key:\'value\'}})\n// or\nrequest.post(\'http://service.com/upload\').form({key:\'value\'})\n```\n\nFor `multipart/form-data` we use the [form-data](https://github.com/felixge/node-form-data) library by [@felixge](https://github.com/felixge). You don’t need to worry about piping the form object or setting the headers, `request` will handle that for you.\n\n```javascript\nvar r = request.post(\'http://service.com/upload\')\nvar form = r.form()\nform.append(\'my_field\', \'my_value\')\nform.append(\'my_buffer\', new Buffer([1, 2, 3]))\nform.append(\'my_file\', fs.createReadStream(path.join(__dirname, \'doodle.png\'))\nform.append(\'remote_file\', request(\'http://google.com/doodle.png\'))\n```\n\n## HTTP Authentication\n\n```javascript\nrequest.get(\'http://some.server.com/\').auth(\'username\', \'password\', false);\n// or\nrequest.get(\'http://some.server.com/\', {\n \'auth\': {\n \'user\': \'username\',\n \'pass\': \'password\',\n \'sendImmediately\': false\n }\n});\n```\n\nIf passed as an option, `auth` should be a hash containing values `user` || `username`, `password` || `pass`, and `sendImmediately` (optional). The method form takes parameters `auth(username, password, sendImmediately)`.\n\n`sendImmediately` defaults to `true`, which causes a basic authentication header to be sent. If `sendImmediately` is `false`, then `request` will retry with a proper authentication header after receiving a `401` response from the server (which must contain a `WWW-Authenticate` header indicating the required authentication method).\n\nDigest authentication is supported, but it only works with `sendImmediately` set to `false`; otherwise `request` will send basic authentication on the initial request, which will probably cause the request to fail.\n\n## OAuth Signing\n\n```javascript\n// Twitter OAuth\nvar qs = require(\'querystring\')\n , oauth =\n { callback: \'http://mysite.com/callback/\'\n , consumer_key: CONSUMER_KEY\n , consumer_secret: CONSUMER_SECRET\n }\n , url = \'https://api.twitter.com/oauth/request_token\'\n ;\nrequest.post({url:url, oauth:oauth}, function (e, r, body) {\n // Ideally, you would take the body in the response\n // and construct a URL that a user clicks on (like a sign in button).\n // The verifier is only available in the response after a user has\n // verified with twitter that they are authorizing your app.\n var access_token = qs.parse(body)\n , oauth =\n { consumer_key: CONSUMER_KEY\n , consumer_secret: CONSUMER_SECRET\n , token: access_token.oauth_token\n , verifier: access_token.oauth_verifier\n }\n , url = \'https://api.twitter.com/oauth/access_token\'\n ;\n request.post({url:url, oauth:oauth}, function (e, r, body) {\n var perm_token = qs.parse(body)\n , oauth =\n { consumer_key: CONSUMER_KEY\n , consumer_secret: CONSUMER_SECRET\n , token: perm_token.oauth_token\n , token_secret: perm_token.oauth_token_secret\n }\n , url = \'https://api.twitter.com/1/users/show.json?\'\n , params =\n { screen_name: perm_token.screen_name\n , user_id: perm_token.user_id\n }\n ;\n url += qs.stringify(params)\n request.get({url:url, oauth:oauth, json:true}, function (e, r, user) {\n console.log(user)\n })\n })\n})\n```\n\n### Custom HTTP Headers\n\nHTTP Headers, such as `User-Agent`, can be set in the `options` object.\nIn the example below, we call the github API to find out the number\nof stars and forks for the request repository. This requires a\ncustom `User-Agent` header as well as https.\n\n```\nvar request = require(\'request\');\n\nvar options = {\n\turl: \'https://api.github.com/repos/mikeal/request\',\n\theaders: {\n\t\t\'User-Agent\': \'request\'\n\t}\n};\n\nfunction callback(error, response, body) {\n\tif (!error && response.statusCode == 200) {\n\t\tvar info = JSON.parse(body);\n\t\tconsole.log(info.stargazers_count + " Stars");\n\t\tconsole.log(info.forks_count + " Forks");\n\t}\n}\n\nrequest(options, callback);\n```\n\n### request(options, callback)\n\nThe first argument can be either a `url` or an `options` object. The only required option is `uri`; all others are optional.\n\n* `uri` || `url` - fully qualified uri or a parsed url object from `url.parse()`\n* `qs` - object containing querystring values to be appended to the `uri`\n* `method` - http method (default: `"GET"`)\n* `headers` - http headers (default: `{}`)\n* `body` - entity body for PATCH, POST and PUT requests. Must be a `Buffer` or `String`.\n* `form` - when passed an object, this sets `body` to a querystring representation of value, and adds `Content-type: application/x-www-form-urlencoded; charset=utf-8` header. When passed no options, a `FormData` instance is returned (and is piped to request).\n* `auth` - A hash containing values `user` || `username`, `password` || `pass`, and `sendImmediately` (optional). See documentation above.\n* `json` - sets `body` but to JSON representation of value and adds `Content-type: application/json` header. Additionally, parses the response body as JSON.\n* `multipart` - (experimental) array of objects which contains their own headers and `body` attribute. Sends `multipart/related` request. See example below.\n* `followRedirect` - follow HTTP 3xx responses as redirects (default: `true`)\n* `followAllRedirects` - follow non-GET HTTP 3xx responses as redirects (default: `false`)\n* `maxRedirects` - the maximum number of redirects to follow (default: `10`)\n* `encoding` - Encoding to be used on `setEncoding` of response data. If `null`, the `body` is returned as a `Buffer`.\n* `pool` - A hash object containing the agents for these requests. If omitted, the request will use the global pool (which is set to node\'s default `maxSockets`)\n* `pool.maxSockets` - Integer containing the maximum amount of sockets in the pool.\n* `timeout` - Integer containing the number of milliseconds to wait for a request to respond before aborting the request\n* `proxy` - An HTTP proxy to be used. Supports proxy Auth with Basic Auth, identical to support for the `url` parameter (by embedding the auth info in the `uri`)\n* `oauth` - Options for OAuth HMAC-SHA1 signing. See documentation above.\n* `hawk` - Options for [Hawk signing](https://github.com/hueniverse/hawk). The `credentials` key must contain the necessary signing info, [see hawk docs for details](https://github.com/hueniverse/hawk#usage-example).\n* `strictSSL` - If `true`, requires SSL certificates be valid. **Note:** to use your own certificate authority, you need to specify an agent that was created with that CA as an option.\n* `jar` - If `true`, remember cookies for future use (or define your custom cookie jar; see examples section)\n* `aws` - `object` containing AWS signing information. Should have the properties `key`, `secret`. Also requires the property `bucket`, unless you’re specifying your `bucket` as part of the path, or the request doesn’t use a bucket (i.e. GET Services)\n* `httpSignature` - Options for the [HTTP Signature Scheme](https://github.com/joyent/node-http-signature/blob/master/http_signing.md) using [Joyent\'s library](https://github.com/joyent/node-http-signature). The `keyId` and `key` properties must be specified. See the docs for other options.\n* `localAddress` - Local interface to bind for network connections.\n\n\nThe callback argument gets 3 arguments: \n\n1. An `error` when applicable (usually from the `http.Client` option, not the `http.ClientRequest` object)\n2. An `http.ClientResponse` object\n3. The third is the `response` body (`String` or `Buffer`)\n\n## Convenience methods\n\nThere are also shorthand methods for different HTTP METHODs and some other conveniences.\n\n### request.defaults(options)\n\nThis method returns a wrapper around the normal request API that defaults to whatever options you pass in to it.\n\n### request.put\n\nSame as `request()`, but defaults to `method: "PUT"`.\n\n```javascript\nrequest.put(url)\n```\n\n### request.patch\n\nSame as `request()`, but defaults to `method: "PATCH"`.\n\n```javascript\nrequest.patch(url)\n```\n\n### request.post\n\nSame as `request()`, but defaults to `method: "POST"`.\n\n```javascript\nrequest.post(url)\n```\n\n### request.head\n\nSame as request() but defaults to `method: "HEAD"`.\n\n```javascript\nrequest.head(url)\n```\n\n### request.del\n\nSame as `request()`, but defaults to `method: "DELETE"`.\n\n```javascript\nrequest.del(url)\n```\n\n### request.get\n\nSame as `request()` (for uniformity).\n\n```javascript\nrequest.get(url)\n```\n### request.cookie\n\nFunction that creates a new cookie.\n\n```javascript\nrequest.cookie(\'cookie_string_here\')\n```\n### request.jar\n\nFunction that creates a new cookie jar.\n\n```javascript\nrequest.jar()\n```\n\n\n## Examples:\n\n```javascript\n var request = require(\'request\')\n , rand = Math.floor(Math.random()*100000000).toString()\n ;\n request(\n { method: \'PUT\'\n , uri: \'http://mikeal.iriscouch.com/testjs/\' + rand\n , multipart:\n [ { \'content-type\': \'application/json\'\n , body: JSON.stringify({foo: \'bar\', _attachments: {\'message.txt\': {follows: true, length: 18, \'content_type\': \'text/plain\' }}})\n }\n , { body: \'I am an attachment\' }\n ]\n }\n , function (error, response, body) {\n if(response.statusCode == 201){\n console.log(\'document saved as: http://mikeal.iriscouch.com/testjs/\'+ rand)\n } else {\n console.log(\'error: \'+ response.statusCode)\n console.log(body)\n }\n }\n )\n```\n\nCookies are disabled by default (else, they would be used in subsequent requests). To enable cookies, set `jar` to `true` (either in `defaults` or `options`).\n\n```javascript\nvar request = request.defaults({jar: true})\nrequest(\'http://www.google.com\', function () {\n request(\'http://images.google.com\')\n})\n```\n\nTo use a custom cookie jar (instead `request`’s global cookie jar), set `jar` to an instance of `request.jar()` (either in `defaults` or `options`)\n\n```javascript\nvar j = request.jar()\nvar request = request.defaults({jar:j})\nrequest(\'http://www.google.com\', function () {\n request(\'http://images.google.com\')\n})\n```\nOR\n\n```javascript\nvar j = request.jar()\nvar cookie = request.cookie(\'your_cookie_here\')\nj.add(cookie)\nrequest({url: \'http://www.google.com\', jar: j}, function () {\n request(\'http://images.google.com\')\n})\n```\n',
533 silly resolved readmeFilename: 'README.md',
533 silly resolved _id: 'request@2.28.0',
533 silly resolved _from: 'request@2.28.0' },
533 silly resolved { name: 'spawn-command',
533 silly resolved author: { name: 'Maciej Małecki', email: 'me@mmalecki.com' },
533 silly resolved description: 'Spawn commands like `child_process.exec` does but return a `ChildProcess`',
533 silly resolved version: '0.0.2',
533 silly resolved main: './lib/spawn-command',
533 silly resolved scripts: { test: 'node test/spawn-command-test.js' },
533 silly resolved devDependencies: { 'assert-called': '0.1.x' },
533 silly resolved readme: '# spawn-command [![Build Status](https://secure.travis-ci.org/mmalecki/spawn-command.png)](http://travis-ci.org/mmalecki/spawn-command)\nSpawn commands like `child_process.exec` does but return a `ChildProcess`.\n\n## Installation\n\n npm install spawn-command\n\n## Usage\n```js\nvar spawnCommand = require(\'spawn-command\'),\n child = spawnCommand(\'echo "Hello spawn" | base64\');\n\nchild.stdout.on(\'data\', function (data) {\n console.log(\'data\', data);\n});\n\nchild.on(\'exit\', function (exitCode) {\n console.log(\'exit\', exitCode);\n});\n```\n',
533 silly resolved readmeFilename: 'README.md',
533 silly resolved _id: 'spawn-command@0.0.2',
533 silly resolved _from: 'spawn-command@0.0.2' },
533 silly resolved { name: 'semver',
533 silly resolved version: '1.0.14',
533 silly resolved description: 'The semantic version parser used by npm.',
533 silly resolved main: 'semver.js',
533 silly resolved scripts: { test: 'tap test.js' },
533 silly resolved devDependencies: { tap: '0.x >=0.0.4' },
533 silly resolved license:
533 silly resolved { type: 'MIT',
533 silly resolved url: 'https://github.com/isaacs/semver/raw/master/LICENSE' },
533 silly resolved repository: { type: 'git', url: 'git://github.com/isaacs/node-semver.git' },
533 silly resolved bin: { semver: './bin/semver' },
533 silly resolved readme: 'semver(1) -- The semantic versioner for npm\n===========================================\n\n## Usage\n\n $ npm install semver\n\n semver.valid(\'1.2.3\') // true\n semver.valid(\'a.b.c\') // false\n semver.clean(\' =v1.2.3 \') // \'1.2.3\'\n semver.satisfies(\'1.2.3\', \'1.x || >=2.5.0 || 5.0.0 - 7.2.3\') // true\n semver.gt(\'1.2.3\', \'9.8.7\') // false\n semver.lt(\'1.2.3\', \'9.8.7\') // true\n\nAs a command-line utility:\n\n $ semver -h\n\n Usage: semver -v <version> [-r <range>]\n Test if version(s) satisfy the supplied range(s),\n and sort them.\n\n Multiple versions or ranges may be supplied.\n\n Program exits successfully if any valid version satisfies\n all supplied ranges, and prints all satisfying versions.\n\n If no versions are valid, or ranges are not satisfied,\n then exits failure.\n\n Versions are printed in ascending order, so supplying\n multiple versions to the utility will just sort them.\n\n## Versions\n\nA version is the following things, in this order:\n\n* a number (Major)\n* a period\n* a number (minor)\n* a period\n* a number (patch)\n* OPTIONAL: a hyphen, followed by a number (build)\n* OPTIONAL: a collection of pretty much any non-whitespace characters\n (tag)\n\nA leading `"="` or `"v"` character is stripped off and ignored.\n\n## Comparisons\n\nThe ordering of versions is done using the following algorithm, given\ntwo versions and asked to find the greater of the two:\n\n* If the majors are numerically different, then take the one\n with a bigger major number. `2.3.4 > 1.3.4`\n* If the minors are numerically different, then take the one\n with the bigger minor number. `2.3.4 > 2.2.4`\n* If the patches are numerically different, then take the one with the\n bigger patch number. `2.3.4 > 2.3.3`\n* If only one of them has a build number, then take the one with the\n build number. `2.3.4-0 > 2.3.4`\n* If they both have build numbers, and the build numbers are numerically\n different, then take the one with the bigger build number.\n `2.3.4-10 > 2.3.4-9`\n* If only one of them has a tag, then take the one without the tag.\n `2.3.4 > 2.3.4-beta`\n* If they both have tags, then take the one with the lexicographically\n larger tag. `2.3.4-beta > 2.3.4-alpha`\n* At this point, they\'re equal.\n\n## Ranges\n\nThe following range styles are supported:\n\n* `>1.2.3` Greater than a specific version.\n* `<1.2.3` Less than\n* `1.2.3 - 2.3.4` := `>=1.2.3 <=2.3.4`\n* `~1.2.3` := `>=1.2.3 <1.3.0`\n* `~1.2` := `>=1.2.0 <2.0.0`\n* `~1` := `>=1.0.0 <2.0.0`\n* `1.2.x` := `>=1.2.0 <1.3.0`\n* `1.x` := `>=1.0.0 <2.0.0`\n\nRanges can be joined with either a space (which implies "and") or a\n`||` (which implies "or").\n\n## Functions\n\n* valid(v): Return the parsed version, or null if it\'s not valid.\n* inc(v, release): Return the version incremented by the release type\n (major, minor, patch, or build), or null if it\'s not valid.\n\n### Comparison\n\n* gt(v1, v2): `v1 > v2`\n* gte(v1, v2): `v1 >= v2`\n* lt(v1, v2): `v1 < v2`\n* lte(v1, v2): `v1 <= v2`\n* eq(v1, v2): `v1 == v2` This is true if they\'re logically equivalent,\n even if they\'re not the exact same string. You already know how to\n compare strings.\n* neq(v1, v2): `v1 != v2` The opposite of eq.\n* cmp(v1, comparator, v2): Pass in a comparison string, and it\'ll call\n the corresponding function above. `"==="` and `"!=="` do simple\n string comparison, but are included for completeness. Throws if an\n invalid comparison string is provided.\n* compare(v1, v2): Return 0 if v1 == v2, or 1 if v1 is greater, or -1 if\n v2 is greater. Sorts in ascending order if passed to Array.sort().\n* rcompare(v1, v2): The reverse of compare. Sorts an array of versions\n in descending order when passed to Array.sort().\n\n\n### Ranges\n\n* validRange(range): Return the valid range or null if it\'s not valid\n* satisfies(version, range): Return true if the version satisfies the\n range.\n* maxSatisfying(versions, range): Return the highest version in the list\n that satisfies the range, or null if none of them do.\n',
533 silly resolved readmeFilename: 'README.md',
533 silly resolved _id: 'semver@1.0.14',
533 silly resolved _from: 'semver@1.0.14' },
533 silly resolved { author:
533 silly resolved { name: 'Isaac Z. Schlueter',
533 silly resolved email: 'i@izs.me',
533 silly resolved url: 'http://blog.izs.me/' },
533 silly resolved name: 'tar',
533 silly resolved description: 'tar for node',
533 silly resolved version: '0.1.18',
533 silly resolved repository: { type: 'git', url: 'git://github.com/isaacs/node-tar.git' },
533 silly resolved main: 'tar.js',
533 silly resolved scripts: { test: 'tap test/*.js' },
533 silly resolved dependencies: { inherits: '2', 'block-stream': '*', fstream: '~0.1.8' },
533 silly resolved devDependencies: { tap: '0.x', rimraf: '1.x' },
533 silly resolved license: 'BSD',
533 silly resolved readme: '# node-tar\n\nTar for Node.js.\n\n## Goals of this project\n\n1. Be able to parse and reasonably extract the contents of any tar file\n created by any program that creates tar files, period.\n\n At least, this includes every version of:\n\n * bsdtar\n * gnutar\n * solaris posix tar\n * Joerg Schilling\'s star ("Schilly tar")\n\n2. Create tar files that can be extracted by any of the following tar programs:\n\n * bsdtar/libarchive version 2.6.2\n * gnutar 1.15 and above\n * SunOS Posix tar\n * Joerg Schilling\'s star ("Schilly tar")\n\n3. 100% test coverage. Speed is important. Correctness is slightly more important.\n\n4. Create the kind of tar interface that Node users would want to use.\n\n5. Satisfy npm\'s needs for a portable tar implementation with a JavaScript interface.\n\n6. No excuses. No complaining. No tolerance for failure.\n\n## But isn\'t there already a tar.js?\n\nYes, there are a few. This one is going to be better, and it will be\nfanatically maintained, because npm will depend on it.\n\nThat\'s why I need to write it from scratch. Creating and extracting\ntarballs is such a large part of what npm does, I simply can\'t have it\nbe a black box any longer.\n\n## Didn\'t you have something already? Where\'d it go?\n\nIt\'s in the "old" folder. It\'s not functional. Don\'t use it.\n\nIt was a useful exploration to learn the issues involved, but like most\nsoftware of any reasonable complexity, node-tar won\'t be useful until\nit\'s been written at least 3 times.\n',
533 silly resolved readmeFilename: 'README.md',
533 silly resolved _id: 'tar@0.1.18',
533 silly resolved _from: 'tar@0.1.18' },
533 silly resolved { author: { name: 'marak', email: 'marak.squires@gmail.com' },
533 silly resolved name: 'wizard',
533 silly resolved version: '0.0.1',
533 silly resolved main: './lib/wizard',
533 silly resolved dependencies: { prompt: '*' },
533 silly resolved devDependencies: {},
533 silly resolved optionalDependencies: {},
533 silly resolved engines: { node: '*' },
533 silly resolved readme: '# wizard\n\na configuration tool for node.js apps.\n\n# usage\n\nFirst, run cli app configuration install wizard:\n\n node examples/helloworld/cli-installer.js\n \nSecond, start your app\n\n node examples/helloworld/server.js\n',
533 silly resolved readmeFilename: 'README.md',
533 silly resolved _id: 'wizard@0.0.1',
533 silly resolved description: 'a configuration tool for node.js apps.',
533 silly resolved _from: 'wizard@0.0.1' } ]
534 info install dateformat@1.0.2-1.2.3 into /usr/local/lib/node_modules/jitsu
535 info install colors@0.6.2 into /usr/local/lib/node_modules/jitsu
536 info install flatiron@0.3.8 into /usr/local/lib/node_modules/jitsu
537 info install canihaz@1.0.1 into /usr/local/lib/node_modules/jitsu
538 info install complete@0.3.1 into /usr/local/lib/node_modules/jitsu
539 info install flatiron-cli-config@0.1.4 into /usr/local/lib/node_modules/jitsu
540 info install fstream-npm@0.1.6 into /usr/local/lib/node_modules/jitsu
541 info install fstream@0.1.25 into /usr/local/lib/node_modules/jitsu
542 info install flatiron-cli-users@0.1.8 into /usr/local/lib/node_modules/jitsu
543 info install opener@1.3.0 into /usr/local/lib/node_modules/jitsu
544 info install pkginfo@0.3.0 into /usr/local/lib/node_modules/jitsu
545 info install require-analyzer@0.5.0 into /usr/local/lib/node_modules/jitsu
546 info install ladder@0.0.1 into /usr/local/lib/node_modules/jitsu
547 info install progress@0.1.0 into /usr/local/lib/node_modules/jitsu
548 info install nodejitsu-api@0.6.3 into /usr/local/lib/node_modules/jitsu
549 info install request@2.28.0 into /usr/local/lib/node_modules/jitsu
550 info install spawn-command@0.0.2 into /usr/local/lib/node_modules/jitsu
551 info install semver@1.0.14 into /usr/local/lib/node_modules/jitsu
552 info install tar@0.1.18 into /usr/local/lib/node_modules/jitsu
553 info install wizard@0.0.1 into /usr/local/lib/node_modules/jitsu
554 info installOne dateformat@1.0.2-1.2.3
555 info installOne colors@0.6.2
556 info installOne flatiron@0.3.8
557 info installOne canihaz@1.0.1
558 info installOne complete@0.3.1
559 info installOne flatiron-cli-config@0.1.4
560 info installOne fstream-npm@0.1.6
561 info installOne fstream@0.1.25
562 info installOne flatiron-cli-users@0.1.8
563 info installOne opener@1.3.0
564 info installOne pkginfo@0.3.0
565 info installOne require-analyzer@0.5.0
566 info installOne ladder@0.0.1
567 info installOne progress@0.1.0
568 info installOne nodejitsu-api@0.6.3
569 info installOne request@2.28.0
570 info installOne spawn-command@0.0.2
571 info installOne semver@1.0.14
572 info installOne tar@0.1.18
573 info installOne wizard@0.0.1
574 verbose from cache /Users/osx/.npm/dateformat/1.0.2-1.2.3/package/package.json
575 info /usr/local/lib/node_modules/jitsu/node_modules/dateformat unbuild
576 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/dateformat/package.json
577 verbose from cache /Users/osx/.npm/colors/0.6.2/package/package.json
578 info /usr/local/lib/node_modules/jitsu/node_modules/colors unbuild
579 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/colors/package.json
580 verbose from cache /Users/osx/.npm/flatiron/0.3.8/package/package.json
581 info /usr/local/lib/node_modules/jitsu/node_modules/flatiron unbuild
582 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/flatiron/package.json
583 verbose from cache /Users/osx/.npm/canihaz/1.0.1/package/package.json
584 info /usr/local/lib/node_modules/jitsu/node_modules/canihaz unbuild
585 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/canihaz/package.json
586 verbose from cache /Users/osx/.npm/complete/0.3.1/package/package.json
587 info /usr/local/lib/node_modules/jitsu/node_modules/complete unbuild
588 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/complete/package.json
589 verbose from cache /Users/osx/.npm/flatiron-cli-config/0.1.4/package/package.json
590 info /usr/local/lib/node_modules/jitsu/node_modules/flatiron-cli-config unbuild
591 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/flatiron-cli-config/package.json
592 verbose from cache /Users/osx/.npm/fstream-npm/0.1.6/package/package.json
593 info /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm unbuild
594 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm/package.json
595 verbose from cache /Users/osx/.npm/fstream/0.1.25/package/package.json
596 info /usr/local/lib/node_modules/jitsu/node_modules/fstream unbuild
597 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/fstream/package.json
598 verbose from cache /Users/osx/.npm/flatiron-cli-users/0.1.8/package/package.json
599 info /usr/local/lib/node_modules/jitsu/node_modules/flatiron-cli-users unbuild
600 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/flatiron-cli-users/package.json
601 verbose from cache /Users/osx/.npm/opener/1.3.0/package/package.json
602 info /usr/local/lib/node_modules/jitsu/node_modules/opener unbuild
603 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/opener/package.json
604 verbose from cache /Users/osx/.npm/pkginfo/0.3.0/package/package.json
605 info /usr/local/lib/node_modules/jitsu/node_modules/pkginfo unbuild
606 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/pkginfo/package.json
607 verbose from cache /Users/osx/.npm/require-analyzer/0.5.0/package/package.json
608 info /usr/local/lib/node_modules/jitsu/node_modules/require-analyzer unbuild
609 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/require-analyzer/package.json
610 verbose from cache /Users/osx/.npm/ladder/0.0.1/package/package.json
611 info /usr/local/lib/node_modules/jitsu/node_modules/ladder unbuild
612 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/ladder/package.json
613 verbose from cache /Users/osx/.npm/progress/0.1.0/package/package.json
614 info /usr/local/lib/node_modules/jitsu/node_modules/progress unbuild
615 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/progress/package.json
616 verbose from cache /Users/osx/.npm/nodejitsu-api/0.6.3/package/package.json
617 info /usr/local/lib/node_modules/jitsu/node_modules/nodejitsu-api unbuild
618 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/nodejitsu-api/package.json
619 verbose from cache /Users/osx/.npm/request/2.28.0/package/package.json
620 info /usr/local/lib/node_modules/jitsu/node_modules/request unbuild
621 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/request/package.json
622 verbose from cache /Users/osx/.npm/spawn-command/0.0.2/package/package.json
623 info /usr/local/lib/node_modules/jitsu/node_modules/spawn-command unbuild
624 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/spawn-command/package.json
625 verbose from cache /Users/osx/.npm/semver/1.0.14/package/package.json
626 info /usr/local/lib/node_modules/jitsu/node_modules/semver unbuild
627 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/semver/package.json
628 verbose from cache /Users/osx/.npm/tar/0.1.18/package/package.json
629 info /usr/local/lib/node_modules/jitsu/node_modules/tar unbuild
630 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/tar/package.json
631 verbose from cache /Users/osx/.npm/wizard/0.0.1/package/package.json
632 info /usr/local/lib/node_modules/jitsu/node_modules/wizard unbuild
633 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/wizard/package.json
634 verbose tar unpack /Users/osx/.npm/dateformat/1.0.2-1.2.3/package.tgz
635 silly lockFile 6717e4fc-es-jitsu-node-modules-dateformat /usr/local/lib/node_modules/jitsu/node_modules/dateformat
636 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/dateformat /Users/osx/.npm/6717e4fc-es-jitsu-node-modules-dateformat.lock
637 silly lockFile 209fc0ca-teformat-1-0-2-1-2-3-package-tgz /Users/osx/.npm/dateformat/1.0.2-1.2.3/package.tgz
638 verbose lock /Users/osx/.npm/dateformat/1.0.2-1.2.3/package.tgz /Users/osx/.npm/209fc0ca-teformat-1-0-2-1-2-3-package-tgz.lock
639 verbose tar unpack /Users/osx/.npm/colors/0.6.2/package.tgz
640 silly lockFile cbcb549f-odules-jitsu-node-modules-colors /usr/local/lib/node_modules/jitsu/node_modules/colors
641 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/colors /Users/osx/.npm/cbcb549f-odules-jitsu-node-modules-colors.lock
642 silly lockFile 73234ce7-osx-npm-colors-0-6-2-package-tgz /Users/osx/.npm/colors/0.6.2/package.tgz
643 verbose lock /Users/osx/.npm/colors/0.6.2/package.tgz /Users/osx/.npm/73234ce7-osx-npm-colors-0-6-2-package-tgz.lock
644 verbose tar unpack /Users/osx/.npm/flatiron/0.3.8/package.tgz
645 silly lockFile 80d06330-ules-jitsu-node-modules-flatiron /usr/local/lib/node_modules/jitsu/node_modules/flatiron
646 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/flatiron /Users/osx/.npm/80d06330-ules-jitsu-node-modules-flatiron.lock
647 silly lockFile ee62c45c-x-npm-flatiron-0-3-8-package-tgz /Users/osx/.npm/flatiron/0.3.8/package.tgz
648 verbose lock /Users/osx/.npm/flatiron/0.3.8/package.tgz /Users/osx/.npm/ee62c45c-x-npm-flatiron-0-3-8-package-tgz.lock
649 verbose tar unpack /Users/osx/.npm/canihaz/1.0.1/package.tgz
650 silly lockFile ec09e666-dules-jitsu-node-modules-canihaz /usr/local/lib/node_modules/jitsu/node_modules/canihaz
651 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/canihaz /Users/osx/.npm/ec09e666-dules-jitsu-node-modules-canihaz.lock
652 silly lockFile ac97bdbc-sx-npm-canihaz-1-0-1-package-tgz /Users/osx/.npm/canihaz/1.0.1/package.tgz
653 verbose lock /Users/osx/.npm/canihaz/1.0.1/package.tgz /Users/osx/.npm/ac97bdbc-sx-npm-canihaz-1-0-1-package-tgz.lock
654 verbose tar unpack /Users/osx/.npm/complete/0.3.1/package.tgz
655 silly lockFile 09d57698-ules-jitsu-node-modules-complete /usr/local/lib/node_modules/jitsu/node_modules/complete
656 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/complete /Users/osx/.npm/09d57698-ules-jitsu-node-modules-complete.lock
657 silly lockFile d5e92510-x-npm-complete-0-3-1-package-tgz /Users/osx/.npm/complete/0.3.1/package.tgz
658 verbose lock /Users/osx/.npm/complete/0.3.1/package.tgz /Users/osx/.npm/d5e92510-x-npm-complete-0-3-1-package-tgz.lock
659 verbose tar unpack /Users/osx/.npm/flatiron-cli-config/0.1.4/package.tgz
660 silly lockFile e6c7271d-node-modules-flatiron-cli-config /usr/local/lib/node_modules/jitsu/node_modules/flatiron-cli-config
661 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/flatiron-cli-config /Users/osx/.npm/e6c7271d-node-modules-flatiron-cli-config.lock
662 silly lockFile e181d7a4-ron-cli-config-0-1-4-package-tgz /Users/osx/.npm/flatiron-cli-config/0.1.4/package.tgz
663 verbose lock /Users/osx/.npm/flatiron-cli-config/0.1.4/package.tgz /Users/osx/.npm/e181d7a4-ron-cli-config-0-1-4-package-tgz.lock
664 verbose tar unpack /Users/osx/.npm/fstream-npm/0.1.6/package.tgz
665 silly lockFile 3950b6cd-s-jitsu-node-modules-fstream-npm /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm
666 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm /Users/osx/.npm/3950b6cd-s-jitsu-node-modules-fstream-npm.lock
667 silly lockFile 671f77b2-pm-fstream-npm-0-1-6-package-tgz /Users/osx/.npm/fstream-npm/0.1.6/package.tgz
668 verbose lock /Users/osx/.npm/fstream-npm/0.1.6/package.tgz /Users/osx/.npm/671f77b2-pm-fstream-npm-0-1-6-package-tgz.lock
669 verbose tar unpack /Users/osx/.npm/fstream/0.1.25/package.tgz
670 silly lockFile 6ac2ae43-dules-jitsu-node-modules-fstream /usr/local/lib/node_modules/jitsu/node_modules/fstream
671 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/fstream /Users/osx/.npm/6ac2ae43-dules-jitsu-node-modules-fstream.lock
672 silly lockFile e9e7b202-x-npm-fstream-0-1-25-package-tgz /Users/osx/.npm/fstream/0.1.25/package.tgz
673 verbose lock /Users/osx/.npm/fstream/0.1.25/package.tgz /Users/osx/.npm/e9e7b202-x-npm-fstream-0-1-25-package-tgz.lock
674 verbose tar unpack /Users/osx/.npm/flatiron-cli-users/0.1.8/package.tgz
675 silly lockFile 55c1ca53--node-modules-flatiron-cli-users /usr/local/lib/node_modules/jitsu/node_modules/flatiron-cli-users
676 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/flatiron-cli-users /Users/osx/.npm/55c1ca53--node-modules-flatiron-cli-users.lock
677 silly lockFile ef7ba815-iron-cli-users-0-1-8-package-tgz /Users/osx/.npm/flatiron-cli-users/0.1.8/package.tgz
678 verbose lock /Users/osx/.npm/flatiron-cli-users/0.1.8/package.tgz /Users/osx/.npm/ef7ba815-iron-cli-users-0-1-8-package-tgz.lock
679 verbose tar unpack /Users/osx/.npm/opener/1.3.0/package.tgz
680 silly lockFile cdb4a506-odules-jitsu-node-modules-opener /usr/local/lib/node_modules/jitsu/node_modules/opener
681 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/opener /Users/osx/.npm/cdb4a506-odules-jitsu-node-modules-opener.lock
682 silly lockFile d58083cc-osx-npm-opener-1-3-0-package-tgz /Users/osx/.npm/opener/1.3.0/package.tgz
683 verbose lock /Users/osx/.npm/opener/1.3.0/package.tgz /Users/osx/.npm/d58083cc-osx-npm-opener-1-3-0-package-tgz.lock
684 verbose tar unpack /Users/osx/.npm/pkginfo/0.3.0/package.tgz
685 silly lockFile de1f237a-dules-jitsu-node-modules-pkginfo /usr/local/lib/node_modules/jitsu/node_modules/pkginfo
686 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/pkginfo /Users/osx/.npm/de1f237a-dules-jitsu-node-modules-pkginfo.lock
687 silly lockFile 6428a150-sx-npm-pkginfo-0-3-0-package-tgz /Users/osx/.npm/pkginfo/0.3.0/package.tgz
688 verbose lock /Users/osx/.npm/pkginfo/0.3.0/package.tgz /Users/osx/.npm/6428a150-sx-npm-pkginfo-0-3-0-package-tgz.lock
689 verbose tar unpack /Users/osx/.npm/require-analyzer/0.5.0/package.tgz
690 silly lockFile 52526e62-su-node-modules-require-analyzer /usr/local/lib/node_modules/jitsu/node_modules/require-analyzer
691 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/require-analyzer /Users/osx/.npm/52526e62-su-node-modules-require-analyzer.lock
692 silly lockFile 32a3200a-quire-analyzer-0-5-0-package-tgz /Users/osx/.npm/require-analyzer/0.5.0/package.tgz
693 verbose lock /Users/osx/.npm/require-analyzer/0.5.0/package.tgz /Users/osx/.npm/32a3200a-quire-analyzer-0-5-0-package-tgz.lock
694 verbose tar unpack /Users/osx/.npm/ladder/0.0.1/package.tgz
695 silly lockFile 86f68e56-odules-jitsu-node-modules-ladder /usr/local/lib/node_modules/jitsu/node_modules/ladder
696 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/ladder /Users/osx/.npm/86f68e56-odules-jitsu-node-modules-ladder.lock
697 silly lockFile add6a43e-osx-npm-ladder-0-0-1-package-tgz /Users/osx/.npm/ladder/0.0.1/package.tgz
698 verbose lock /Users/osx/.npm/ladder/0.0.1/package.tgz /Users/osx/.npm/add6a43e-osx-npm-ladder-0-0-1-package-tgz.lock
699 verbose tar unpack /Users/osx/.npm/progress/0.1.0/package.tgz
700 silly lockFile 8324135b-ules-jitsu-node-modules-progress /usr/local/lib/node_modules/jitsu/node_modules/progress
701 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/progress /Users/osx/.npm/8324135b-ules-jitsu-node-modules-progress.lock
702 silly lockFile 58d7759f-x-npm-progress-0-1-0-package-tgz /Users/osx/.npm/progress/0.1.0/package.tgz
703 verbose lock /Users/osx/.npm/progress/0.1.0/package.tgz /Users/osx/.npm/58d7759f-x-npm-progress-0-1-0-package-tgz.lock
704 verbose tar unpack /Users/osx/.npm/nodejitsu-api/0.6.3/package.tgz
705 silly lockFile ed76441e-jitsu-node-modules-nodejitsu-api /usr/local/lib/node_modules/jitsu/node_modules/nodejitsu-api
706 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/nodejitsu-api /Users/osx/.npm/ed76441e-jitsu-node-modules-nodejitsu-api.lock
707 silly lockFile f7dd9685--nodejitsu-api-0-6-3-package-tgz /Users/osx/.npm/nodejitsu-api/0.6.3/package.tgz
708 verbose lock /Users/osx/.npm/nodejitsu-api/0.6.3/package.tgz /Users/osx/.npm/f7dd9685--nodejitsu-api-0-6-3-package-tgz.lock
709 verbose tar unpack /Users/osx/.npm/request/2.28.0/package.tgz
710 silly lockFile cbca3c65-dules-jitsu-node-modules-request /usr/local/lib/node_modules/jitsu/node_modules/request
711 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/request /Users/osx/.npm/cbca3c65-dules-jitsu-node-modules-request.lock
712 silly lockFile d833161b-x-npm-request-2-28-0-package-tgz /Users/osx/.npm/request/2.28.0/package.tgz
713 verbose lock /Users/osx/.npm/request/2.28.0/package.tgz /Users/osx/.npm/d833161b-x-npm-request-2-28-0-package-tgz.lock
714 verbose tar unpack /Users/osx/.npm/spawn-command/0.0.2/package.tgz
715 silly lockFile eda7a622-jitsu-node-modules-spawn-command /usr/local/lib/node_modules/jitsu/node_modules/spawn-command
716 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/spawn-command /Users/osx/.npm/eda7a622-jitsu-node-modules-spawn-command.lock
717 silly lockFile 23240f26--spawn-command-0-0-2-package-tgz /Users/osx/.npm/spawn-command/0.0.2/package.tgz
718 verbose lock /Users/osx/.npm/spawn-command/0.0.2/package.tgz /Users/osx/.npm/23240f26--spawn-command-0-0-2-package-tgz.lock
719 verbose tar unpack /Users/osx/.npm/semver/1.0.14/package.tgz
720 silly lockFile 6b8d5790-odules-jitsu-node-modules-semver /usr/local/lib/node_modules/jitsu/node_modules/semver
721 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/semver /Users/osx/.npm/6b8d5790-odules-jitsu-node-modules-semver.lock
722 silly lockFile fc4a01ba-sx-npm-semver-1-0-14-package-tgz /Users/osx/.npm/semver/1.0.14/package.tgz
723 verbose lock /Users/osx/.npm/semver/1.0.14/package.tgz /Users/osx/.npm/fc4a01ba-sx-npm-semver-1-0-14-package-tgz.lock
724 verbose tar unpack /Users/osx/.npm/tar/0.1.18/package.tgz
725 silly lockFile dce214c6-e-modules-jitsu-node-modules-tar /usr/local/lib/node_modules/jitsu/node_modules/tar
726 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/tar /Users/osx/.npm/dce214c6-e-modules-jitsu-node-modules-tar.lock
727 silly lockFile 2ff736aa-s-osx-npm-tar-0-1-18-package-tgz /Users/osx/.npm/tar/0.1.18/package.tgz
728 verbose lock /Users/osx/.npm/tar/0.1.18/package.tgz /Users/osx/.npm/2ff736aa-s-osx-npm-tar-0-1-18-package-tgz.lock
729 verbose tar unpack /Users/osx/.npm/wizard/0.0.1/package.tgz
730 silly lockFile 2016b8c8-odules-jitsu-node-modules-wizard /usr/local/lib/node_modules/jitsu/node_modules/wizard
731 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/wizard /Users/osx/.npm/2016b8c8-odules-jitsu-node-modules-wizard.lock
732 silly lockFile 4f8ca096-osx-npm-wizard-0-0-1-package-tgz /Users/osx/.npm/wizard/0.0.1/package.tgz
733 verbose lock /Users/osx/.npm/wizard/0.0.1/package.tgz /Users/osx/.npm/4f8ca096-osx-npm-wizard-0-0-1-package-tgz.lock
734 silly gunzTarPerm modes [ '755', '644' ]
735 silly gunzTarPerm modes [ '755', '644' ]
736 silly gunzTarPerm modes [ '755', '644' ]
737 silly gunzTarPerm modes [ '755', '644' ]
738 silly gunzTarPerm modes [ '755', '644' ]
739 silly gunzTarPerm modes [ '755', '644' ]
740 silly gunzTarPerm modes [ '755', '644' ]
741 silly gunzTarPerm modes [ '755', '644' ]
742 silly gunzTarPerm modes [ '755', '644' ]
743 silly gunzTarPerm modes [ '755', '644' ]
744 silly gunzTarPerm modes [ '755', '644' ]
745 silly gunzTarPerm modes [ '755', '644' ]
746 silly gunzTarPerm modes [ '755', '644' ]
747 silly gunzTarPerm modes [ '755', '644' ]
748 silly gunzTarPerm modes [ '755', '644' ]
749 silly gunzTarPerm modes [ '755', '644' ]
750 silly gunzTarPerm modes [ '755', '644' ]
751 silly gunzTarPerm extractEntry package.json
752 silly gunzTarPerm extractEntry package.json
753 silly gunzTarPerm extractEntry package.json
754 silly gunzTarPerm extractEntry package.json
755 silly gunzTarPerm extractEntry package.json
756 silly gunzTarPerm extractEntry package.json
757 silly gunzTarPerm extractEntry package.json
758 silly gunzTarPerm extractEntry package.json
759 silly gunzTarPerm extractEntry package.json
760 silly gunzTarPerm extractEntry package.json
761 silly gunzTarPerm extractEntry package.json
762 silly gunzTarPerm extractEntry package.json
763 silly gunzTarPerm extractEntry package.json
764 silly gunzTarPerm extractEntry package.json
765 silly gunzTarPerm extractEntry package.json
766 silly gunzTarPerm extractEntry package.json
767 silly gunzTarPerm extractEntry package.json
768 silly gunzTarPerm extractEntry Readme.md
769 silly gunzTarPerm extractEntry lib/dateformat.js
770 silly gunzTarPerm extractEntry colors.js
771 silly gunzTarPerm extractEntry example.js
772 silly gunzTarPerm extractEntry .npmignore
773 silly gunzTarPerm extractEntry README.md
774 silly gunzTarPerm extractEntry .npmignore
775 silly gunzTarPerm extractEntry README.md
776 silly gunzTarPerm extractEntry .npmignore
777 silly gunzTarPerm extractEntry README.md
778 silly gunzTarPerm extractEntry .npmignore
779 silly gunzTarPerm extractEntry README.md
780 silly gunzTarPerm extractEntry .npmignore
781 silly gunzTarPerm extractEntry README.md
782 silly gunzTarPerm extractEntry .npmignore
783 silly gunzTarPerm extractEntry README.md
784 silly gunzTarPerm extractEntry README.md
785 silly gunzTarPerm extractEntry opener.js
786 silly gunzTarPerm extractEntry .npmignore
787 silly gunzTarPerm extractEntry README.md
788 silly gunzTarPerm extractEntry .npmignore
789 silly gunzTarPerm extractEntry README.md
790 silly gunzTarPerm extractEntry .npmignore
791 silly gunzTarPerm extractEntry index.js
792 silly gunzTarPerm extractEntry .npmignore
793 silly gunzTarPerm extractEntry README.md
794 silly gunzTarPerm extractEntry .npmignore
795 silly gunzTarPerm extractEntry README.md
796 silly gunzTarPerm extractEntry .npmignore
797 silly gunzTarPerm extractEntry README.md
798 silly gunzTarPerm extractEntry README.md
799 silly gunzTarPerm extractEntry LICENSE
800 silly gunzTarPerm extractEntry README.md
801 silly gunzTarPerm extractEntry config.json
802 silly gunzTarPerm extractEntry test/test_weekofyear.js
803 silly gunzTarPerm extractEntry test/test_weekofyear.sh
804 silly gunzTarPerm extractEntry test.js
805 silly gunzTarPerm extractEntry MIT-LICENSE.txt
806 silly gunzTarPerm extractEntry ReadMe.md
807 silly gunzTarPerm extractEntry example.html
808 silly gunzTarPerm extractEntry themes/winston-dark.js
809 silly gunzTarPerm extractEntry themes/winston-light.js
810 silly gunzTarPerm extractEntry LICENCE
811 silly gunzTarPerm extractEntry fstream-npm.js
812 silly gunzTarPerm extractEntry LICENSE
813 silly gunzTarPerm extractEntry docs/docco.css
814 silly gunzTarPerm extractEntry index.js
815 silly gunzTarPerm extractEntry lib/ladder.js
816 silly gunzTarPerm extractEntry History.md
817 silly gunzTarPerm extractEntry Makefile
818 silly gunzTarPerm extractEntry LICENSE
819 silly gunzTarPerm extractEntry .travis.yml
820 silly gunzTarPerm extractEntry semver.js
821 silly gunzTarPerm extractEntry test.js
822 silly gunzTarPerm extractEntry bin/semver
823 silly gunzTarPerm extractEntry examples/config.json
824 silly gunzTarPerm extractEntry examples/helloworld/cli-installer.js
825 silly gunzTarPerm extractEntry index.js
826 silly gunzTarPerm extractEntry .travis.yml
827 silly gunzTarPerm extractEntry Makefile
828 silly gunzTarPerm extractEntry test/package.json
829 silly gunzTarPerm extractEntry test/canihaz.test.js
830 silly gunzTarPerm extractEntry test/mocha.opts
831 silly gunzTarPerm extractEntry LICENSE
832 silly gunzTarPerm extractEntry examples/app.js
833 silly gunzTarPerm extractEntry example/package.json
834 silly gunzTarPerm extractEntry example/bin/exampleapp
835 silly gunzTarPerm extractEntry LICENSE
836 silly gunzTarPerm extractEntry fstream.js
837 silly gunzTarPerm extractEntry LICENSE.txt
838 silly gunzTarPerm extractEntry examples/app.js
839 silly gunzTarPerm extractEntry lib/commands.js
840 silly gunzTarPerm extractEntry examples/check-auth.js
841 silly gunzTarPerm extractEntry LICENSE
842 silly gunzTarPerm extractEntry example/bundle.js
843 silly gunzTarPerm extractEntry example/dir-tar.js
844 silly gunzTarPerm extractEntry example/dir.js
845 silly gunzTarPerm extractEntry example/example.js
846 silly gunzTarPerm extractEntry example/ig-tar.js
847 silly gunzTarPerm extractEntry example/tar.js
848 silly gunzTarPerm extractEntry docs/pkginfo.html
849 silly gunzTarPerm extractEntry examples/package.json
850 silly gunzTarPerm extractEntry examples/all-properties.js
851 silly gunzTarPerm extractEntry examples/array-argument.js
852 silly gunzTarPerm extractEntry examples/multiple-properties.js
853 silly gunzTarPerm extractEntry examples/object-argument.js
854 silly gunzTarPerm extractEntry examples/single-property.js
855 silly gunzTarPerm extractEntry examples/target-dir.js
856 silly gunzTarPerm extractEntry examples/subdir/package.json
857 silly gunzTarPerm extractEntry lib/pkginfo.js
858 silly gunzTarPerm extractEntry test/pkginfo-test.js
859 silly gunzTarPerm extractEntry test/ladder-test.js
860 silly gunzTarPerm extractEntry test/first.json
861 silly gunzTarPerm extractEntry Readme.md
862 silly gunzTarPerm extractEntry lib/node-progress.js
863 silly gunzTarPerm extractEntry examples/simple.js
864 silly gunzTarPerm extractEntry lib/spawn-command.js
865 silly gunzTarPerm extractEntry examples/helloworld/server.js
866 silly gunzTarPerm extractEntry examples/helloworld/config/development.json
867 silly gunzTarPerm extractEntry lib/commands.js
868 silly gunzTarPerm extractEntry lib/flatiron-cli-config.js
869 silly gunzTarPerm extractEntry .travis.yml
870 silly gunzTarPerm extractEntry examples/filter-pipe.js
871 silly gunzTarPerm extractEntry example/bin/examplecomp
872 silly gunzTarPerm extractEntry lib/complete.js
873 silly gunzTarPerm extractEntry lib/flatiron-cli-users.js
874 silly gunzTarPerm extractEntry examples/destroy-key.js
875 silly gunzTarPerm extractEntry examples/get-application.js
876 silly gunzTarPerm extractEntry index.js
877 silly gunzTarPerm extractEntry request.js
878 silly gunzTarPerm extractEntry examples/helloworld/config/production.json
879 silly gunzTarPerm extractEntry examples/helloworld/config/schema.json
880 silly gunzTarPerm extractEntry test/second.json
881 silly gunzTarPerm extractEntry test/third.json
882 silly gunzTarPerm extractEntry test/spawn-command-test.js
883 silly gunzTarPerm extractEntry test/fixtures/commit
884 silly gunzTarPerm extractEntry examples/pipe.js
885 silly gunzTarPerm extractEntry examples/reader.js
886 silly gunzTarPerm extractEntry examples/symlink-write.js
887 silly gunzTarPerm extractEntry lib/abstract.js
888 silly gunzTarPerm extractEntry lib/dir-writer.js
889 silly gunzTarPerm extractEntry lib/file-reader.js
890 silly gunzTarPerm extractEntry lib/file-writer.js
891 silly gunzTarPerm extractEntry lib/get-type.js
892 silly gunzTarPerm extractEntry lib/dir-reader.js
893 silly gunzTarPerm extractEntry lib/link-writer.js
894 silly gunzTarPerm extractEntry lib/proxy-reader.js
895 silly gunzTarPerm extractEntry lib/proxy-writer.js
896 silly gunzTarPerm extractEntry lib/reader.js
897 silly gunzTarPerm extractEntry lib/socket-reader.js
898 silly gunzTarPerm extractEntry lib/collect.js
899 silly gunzTarPerm extractEntry lib/writer.js
900 silly gunzTarPerm extractEntry lib/link-reader.js
901 silly gunzTarPerm extractEntry test/cli-config-test.js
902 silly gunzTarPerm extractEntry lib/properties.js
903 silly gunzTarPerm extractEntry test/cli-users-test.js
904 silly gunzTarPerm extractEntry examples/helloworld/config.json
905 silly gunzTarPerm extractEntry lib/wizard.js
906 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/opener/package.json
907 silly gunzTarPerm extractEntry test/commands-test.js
908 silly gunzTarPerm extractEntry test/commands-test.js
909 silly gunzTarPerm extractEntry test/fixtures/dot-appconf
910 silly gunzTarPerm extractEntry lib/wizard/cli.js
911 silly gunzTarPerm extractEntry lib/wizard/web.js
912 silly lockFile cdb4a506-odules-jitsu-node-modules-opener /usr/local/lib/node_modules/jitsu/node_modules/opener
913 silly lockFile cdb4a506-odules-jitsu-node-modules-opener /usr/local/lib/node_modules/jitsu/node_modules/opener
914 silly lockFile d58083cc-osx-npm-opener-1-3-0-package-tgz /Users/osx/.npm/opener/1.3.0/package.tgz
915 silly lockFile d58083cc-osx-npm-opener-1-3-0-package-tgz /Users/osx/.npm/opener/1.3.0/package.tgz
916 silly gunzTarPerm extractEntry .travis.yml
917 silly gunzTarPerm extractEntry lib/copy.js
918 info preinstall opener@1.3.0
919 silly gunzTarPerm extractEntry examples/get-key.js
920 silly gunzTarPerm extractEntry examples/get-logs-by-app.js
921 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/opener/package.json
922 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/dateformat/package.json
923 verbose readDependencies using package.json deps
924 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/opener/package.json
925 verbose readDependencies using package.json deps
926 silly resolved []
927 verbose about to build /usr/local/lib/node_modules/jitsu/node_modules/opener
928 info build /usr/local/lib/node_modules/jitsu/node_modules/opener
929 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/opener/package.json
930 verbose linkStuff [ true,
930 verbose linkStuff '/usr/local/lib/node_modules',
930 verbose linkStuff false,
930 verbose linkStuff '/usr/local/lib/node_modules/jitsu/node_modules' ]
931 info linkStuff opener@1.3.0
932 verbose linkBins opener@1.3.0
933 verbose link bins [ { opener: 'opener.js' },
933 verbose link bins '/usr/local/lib/node_modules/jitsu/node_modules/.bin',
933 verbose link bins false ]
934 verbose linkMans opener@1.3.0
935 verbose rebuildBundles opener@1.3.0
936 info install opener@1.3.0
937 silly gunzTarPerm extractEntry examples/create-ssh-key.js
938 silly gunzTarPerm extractEntry examples/list-apps.js
939 info postinstall opener@1.3.0
940 silly lockFile 6717e4fc-es-jitsu-node-modules-dateformat /usr/local/lib/node_modules/jitsu/node_modules/dateformat
941 silly lockFile 6717e4fc-es-jitsu-node-modules-dateformat /usr/local/lib/node_modules/jitsu/node_modules/dateformat
942 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/progress/package.json
943 silly lockFile 209fc0ca-teformat-1-0-2-1-2-3-package-tgz /Users/osx/.npm/dateformat/1.0.2-1.2.3/package.tgz
944 silly lockFile 209fc0ca-teformat-1-0-2-1-2-3-package-tgz /Users/osx/.npm/dateformat/1.0.2-1.2.3/package.tgz
945 info preinstall dateformat@1.0.2-1.2.3
946 silly gunzTarPerm extractEntry examples/list-keys.js
947 silly gunzTarPerm extractEntry examples/restart-app.js
948 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/dateformat/package.json
949 silly gunzTarPerm extractEntry lib/debug.js
950 silly gunzTarPerm extractEntry lib/getSafe.js
951 verbose readDependencies using package.json deps
952 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/dateformat/package.json
953 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/ladder/package.json
954 silly lockFile 8324135b-ules-jitsu-node-modules-progress /usr/local/lib/node_modules/jitsu/node_modules/progress
955 silly lockFile 8324135b-ules-jitsu-node-modules-progress /usr/local/lib/node_modules/jitsu/node_modules/progress
956 verbose readDependencies using package.json deps
957 silly resolved []
958 verbose about to build /usr/local/lib/node_modules/jitsu/node_modules/dateformat
959 info build /usr/local/lib/node_modules/jitsu/node_modules/dateformat
960 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/dateformat/package.json
961 verbose linkStuff [ true,
961 verbose linkStuff '/usr/local/lib/node_modules',
961 verbose linkStuff false,
961 verbose linkStuff '/usr/local/lib/node_modules/jitsu/node_modules' ]
962 info linkStuff dateformat@1.0.2-1.2.3
963 verbose linkBins dateformat@1.0.2-1.2.3
964 verbose linkMans dateformat@1.0.2-1.2.3
965 verbose rebuildBundles dateformat@1.0.2-1.2.3
966 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/complete/package.json
967 info install dateformat@1.0.2-1.2.3
968 silly lockFile 58d7759f-x-npm-progress-0-1-0-package-tgz /Users/osx/.npm/progress/0.1.0/package.tgz
969 silly lockFile 58d7759f-x-npm-progress-0-1-0-package-tgz /Users/osx/.npm/progress/0.1.0/package.tgz
970 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/spawn-command/package.json
971 silly gunzTarPerm extractEntry test/helpers/macros.js
972 info postinstall dateformat@1.0.2-1.2.3
973 silly gunzTarPerm extractEntry examples/snapshots-list.js
974 silly gunzTarPerm extractEntry examples/start-app.js
975 info preinstall progress@0.1.0
976 silly lockFile 86f68e56-odules-jitsu-node-modules-ladder /usr/local/lib/node_modules/jitsu/node_modules/ladder
977 silly lockFile 86f68e56-odules-jitsu-node-modules-ladder /usr/local/lib/node_modules/jitsu/node_modules/ladder
978 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/progress/package.json
979 verbose readDependencies using package.json deps
980 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/progress/package.json
981 silly lockFile 09d57698-ules-jitsu-node-modules-complete /usr/local/lib/node_modules/jitsu/node_modules/complete
982 silly lockFile 09d57698-ules-jitsu-node-modules-complete /usr/local/lib/node_modules/jitsu/node_modules/complete
983 silly lockFile add6a43e-osx-npm-ladder-0-0-1-package-tgz /Users/osx/.npm/ladder/0.0.1/package.tgz
984 silly lockFile add6a43e-osx-npm-ladder-0-0-1-package-tgz /Users/osx/.npm/ladder/0.0.1/package.tgz
985 verbose readDependencies using package.json deps
986 silly resolved []
987 verbose about to build /usr/local/lib/node_modules/jitsu/node_modules/progress
988 info build /usr/local/lib/node_modules/jitsu/node_modules/progress
989 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/progress/package.json
990 verbose linkStuff [ true,
990 verbose linkStuff '/usr/local/lib/node_modules',
990 verbose linkStuff false,
990 verbose linkStuff '/usr/local/lib/node_modules/jitsu/node_modules' ]
991 info linkStuff progress@0.1.0
992 verbose linkBins progress@0.1.0
993 verbose linkMans progress@0.1.0
994 verbose rebuildBundles progress@0.1.0
995 info install progress@0.1.0
996 silly lockFile eda7a622-jitsu-node-modules-spawn-command /usr/local/lib/node_modules/jitsu/node_modules/spawn-command
997 silly lockFile eda7a622-jitsu-node-modules-spawn-command /usr/local/lib/node_modules/jitsu/node_modules/spawn-command
998 silly lockFile d5e92510-x-npm-complete-0-3-1-package-tgz /Users/osx/.npm/complete/0.3.1/package.tgz
999 silly lockFile d5e92510-x-npm-complete-0-3-1-package-tgz /Users/osx/.npm/complete/0.3.1/package.tgz
1000 silly gunzTarPerm extractEntry examples/create-api-key.js
1001 silly gunzTarPerm extractEntry examples/stop-app.js
1002 info postinstall progress@0.1.0
1003 silly lockFile 23240f26--spawn-command-0-0-2-package-tgz /Users/osx/.npm/spawn-command/0.0.2/package.tgz
1004 silly lockFile 23240f26--spawn-command-0-0-2-package-tgz /Users/osx/.npm/spawn-command/0.0.2/package.tgz
1005 silly gunzTarPerm extractEntry lib/optional.js
1006 info preinstall ladder@0.0.1
1007 info preinstall complete@0.3.1
1008 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/ladder/package.json
1009 verbose readDependencies using package.json deps
1010 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/ladder/package.json
1011 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/flatiron-cli-config/package.json
1012 info preinstall spawn-command@0.0.2
1013 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/complete/package.json
1014 verbose readDependencies using package.json deps
1015 silly resolved []
1016 verbose about to build /usr/local/lib/node_modules/jitsu/node_modules/ladder
1017 info build /usr/local/lib/node_modules/jitsu/node_modules/ladder
1018 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/ladder/package.json
1019 verbose linkStuff [ true,
1019 verbose linkStuff '/usr/local/lib/node_modules',
1019 verbose linkStuff false,
1019 verbose linkStuff '/usr/local/lib/node_modules/jitsu/node_modules' ]
1020 info linkStuff ladder@0.0.1
1021 verbose linkBins ladder@0.0.1
1022 verbose linkMans ladder@0.0.1
1023 verbose rebuildBundles ladder@0.0.1
1024 verbose readDependencies using package.json deps
1025 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/complete/package.json
1026 silly gunzTarPerm extractEntry examples/get-logs-by-user.js
1027 silly gunzTarPerm extractEntry lib/client.js
1028 info install ladder@0.0.1
1029 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/spawn-command/package.json
1030 verbose readDependencies using package.json deps
1031 silly resolved []
1032 verbose about to build /usr/local/lib/node_modules/jitsu/node_modules/complete
1033 info build /usr/local/lib/node_modules/jitsu/node_modules/complete
1034 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/complete/package.json
1035 verbose linkStuff [ true,
1035 verbose linkStuff '/usr/local/lib/node_modules',
1035 verbose linkStuff false,
1035 verbose linkStuff '/usr/local/lib/node_modules/jitsu/node_modules' ]
1036 info linkStuff complete@0.3.1
1037 verbose linkBins complete@0.3.1
1038 verbose linkMans complete@0.3.1
1039 verbose rebuildBundles complete@0.3.1
1040 verbose readDependencies using package.json deps
1041 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/spawn-command/package.json
1042 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/semver/package.json
1043 info install complete@0.3.1
1044 info postinstall ladder@0.0.1
1045 verbose readDependencies using package.json deps
1046 silly resolved []
1047 verbose about to build /usr/local/lib/node_modules/jitsu/node_modules/spawn-command
1048 info build /usr/local/lib/node_modules/jitsu/node_modules/spawn-command
1049 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/spawn-command/package.json
1050 verbose linkStuff [ true,
1050 verbose linkStuff '/usr/local/lib/node_modules',
1050 verbose linkStuff false,
1050 verbose linkStuff '/usr/local/lib/node_modules/jitsu/node_modules' ]
1051 info linkStuff spawn-command@0.0.2
1052 verbose linkBins spawn-command@0.0.2
1053 verbose linkMans spawn-command@0.0.2
1054 verbose rebuildBundles spawn-command@0.0.2
1055 info install spawn-command@0.0.2
1056 info postinstall complete@0.3.1
1057 info postinstall spawn-command@0.0.2
1058 silly lockFile e6c7271d-node-modules-flatiron-cli-config /usr/local/lib/node_modules/jitsu/node_modules/flatiron-cli-config
1059 silly lockFile e6c7271d-node-modules-flatiron-cli-config /usr/local/lib/node_modules/jitsu/node_modules/flatiron-cli-config
1060 silly gunzTarPerm extractEntry lib/client/apps.js
1061 silly gunzTarPerm extractEntry lib/client/client.js
1062 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/colors/package.json
1063 silly lockFile e181d7a4-ron-cli-config-0-1-4-package-tgz /Users/osx/.npm/flatiron-cli-config/0.1.4/package.tgz
1064 silly lockFile e181d7a4-ron-cli-config-0-1-4-package-tgz /Users/osx/.npm/flatiron-cli-config/0.1.4/package.tgz
1065 silly lockFile 6b8d5790-odules-jitsu-node-modules-semver /usr/local/lib/node_modules/jitsu/node_modules/semver
1066 silly lockFile 6b8d5790-odules-jitsu-node-modules-semver /usr/local/lib/node_modules/jitsu/node_modules/semver
1067 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm/package.json
1068 silly lockFile fc4a01ba-sx-npm-semver-1-0-14-package-tgz /Users/osx/.npm/semver/1.0.14/package.tgz
1069 silly lockFile fc4a01ba-sx-npm-semver-1-0-14-package-tgz /Users/osx/.npm/semver/1.0.14/package.tgz
1070 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/wizard/package.json
1071 info preinstall flatiron-cli-config@0.1.4
1072 silly gunzTarPerm extractEntry lib/client/databases.js
1073 silly gunzTarPerm extractEntry lib/client/helpers.js
1074 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/flatiron-cli-config/package.json
1075 verbose readDependencies using package.json deps
1076 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/flatiron-cli-config/package.json
1077 silly lockFile cbcb549f-odules-jitsu-node-modules-colors /usr/local/lib/node_modules/jitsu/node_modules/colors
1078 silly lockFile cbcb549f-odules-jitsu-node-modules-colors /usr/local/lib/node_modules/jitsu/node_modules/colors
1079 info preinstall semver@1.0.14
1080 verbose readDependencies using package.json deps
1081 silly resolved []
1082 verbose about to build /usr/local/lib/node_modules/jitsu/node_modules/flatiron-cli-config
1083 info build /usr/local/lib/node_modules/jitsu/node_modules/flatiron-cli-config
1084 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/flatiron-cli-config/package.json
1085 verbose linkStuff [ true,
1085 verbose linkStuff '/usr/local/lib/node_modules',
1085 verbose linkStuff false,
1085 verbose linkStuff '/usr/local/lib/node_modules/jitsu/node_modules' ]
1086 info linkStuff flatiron-cli-config@0.1.4
1087 verbose linkBins flatiron-cli-config@0.1.4
1088 verbose linkMans flatiron-cli-config@0.1.4
1089 verbose rebuildBundles flatiron-cli-config@0.1.4
1090 info install flatiron-cli-config@0.1.4
1091 silly lockFile 73234ce7-osx-npm-colors-0-6-2-package-tgz /Users/osx/.npm/colors/0.6.2/package.tgz
1092 silly lockFile 73234ce7-osx-npm-colors-0-6-2-package-tgz /Users/osx/.npm/colors/0.6.2/package.tgz
1093 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/semver/package.json
1094 verbose readDependencies using package.json deps
1095 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/semver/package.json
1096 info postinstall flatiron-cli-config@0.1.4
1097 verbose readDependencies using package.json deps
1098 silly resolved []
1099 verbose about to build /usr/local/lib/node_modules/jitsu/node_modules/semver
1100 info build /usr/local/lib/node_modules/jitsu/node_modules/semver
1101 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/semver/package.json
1102 verbose linkStuff [ true,
1102 verbose linkStuff '/usr/local/lib/node_modules',
1102 verbose linkStuff false,
1102 verbose linkStuff '/usr/local/lib/node_modules/jitsu/node_modules' ]
1103 info linkStuff semver@1.0.14
1104 verbose linkBins semver@1.0.14
1105 verbose link bins [ { semver: './bin/semver' },
1105 verbose link bins '/usr/local/lib/node_modules/jitsu/node_modules/.bin',
1105 verbose link bins false ]
1106 verbose linkMans semver@1.0.14
1107 verbose rebuildBundles semver@1.0.14
1108 silly lockFile 3950b6cd-s-jitsu-node-modules-fstream-npm /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm
1109 silly lockFile 3950b6cd-s-jitsu-node-modules-fstream-npm /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm
1110 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/canihaz/package.json
1111 silly gunzTarPerm extractEntry lib/client/keys.js
1112 silly gunzTarPerm extractEntry lib/client/logs.js
1113 silly lockFile 2016b8c8-odules-jitsu-node-modules-wizard /usr/local/lib/node_modules/jitsu/node_modules/wizard
1114 silly lockFile 2016b8c8-odules-jitsu-node-modules-wizard /usr/local/lib/node_modules/jitsu/node_modules/wizard
1115 silly lockFile 671f77b2-pm-fstream-npm-0-1-6-package-tgz /Users/osx/.npm/fstream-npm/0.1.6/package.tgz
1116 silly lockFile 671f77b2-pm-fstream-npm-0-1-6-package-tgz /Users/osx/.npm/fstream-npm/0.1.6/package.tgz
1117 info preinstall colors@0.6.2
1118 silly lockFile 4f8ca096-osx-npm-wizard-0-0-1-package-tgz /Users/osx/.npm/wizard/0.0.1/package.tgz
1119 silly lockFile 4f8ca096-osx-npm-wizard-0-0-1-package-tgz /Users/osx/.npm/wizard/0.0.1/package.tgz
1120 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/colors/package.json
1121 verbose readDependencies using package.json deps
1122 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/colors/package.json
1123 verbose readDependencies using package.json deps
1124 silly resolved []
1125 verbose about to build /usr/local/lib/node_modules/jitsu/node_modules/colors
1126 info build /usr/local/lib/node_modules/jitsu/node_modules/colors
1127 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/colors/package.json
1128 verbose linkStuff [ true,
1128 verbose linkStuff '/usr/local/lib/node_modules',
1128 verbose linkStuff false,
1128 verbose linkStuff '/usr/local/lib/node_modules/jitsu/node_modules' ]
1129 info linkStuff colors@0.6.2
1130 verbose linkBins colors@0.6.2
1131 verbose linkMans colors@0.6.2
1132 verbose rebuildBundles colors@0.6.2
1133 info install semver@1.0.14
1134 info preinstall fstream-npm@0.1.6
1135 info install colors@0.6.2
1136 info preinstall wizard@0.0.1
1137 info postinstall semver@1.0.14
1138 silly gunzTarPerm extractEntry lib/client/snapshots.js
1139 silly gunzTarPerm extractEntry lib/client/tokens.js
1140 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm/package.json
1141 info postinstall colors@0.6.2
1142 verbose readDependencies using package.json deps
1143 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm/package.json
1144 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/wizard/package.json
1145 silly lockFile ec09e666-dules-jitsu-node-modules-canihaz /usr/local/lib/node_modules/jitsu/node_modules/canihaz
1146 silly lockFile ec09e666-dules-jitsu-node-modules-canihaz /usr/local/lib/node_modules/jitsu/node_modules/canihaz
1147 verbose readDependencies using package.json deps
1148 verbose readDependencies using package.json deps
1149 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/wizard/package.json
1150 verbose readDependencies using package.json deps
1151 silly lockFile ac97bdbc-sx-npm-canihaz-1-0-1-package-tgz /Users/osx/.npm/canihaz/1.0.1/package.tgz
1152 silly lockFile ac97bdbc-sx-npm-canihaz-1-0-1-package-tgz /Users/osx/.npm/canihaz/1.0.1/package.tgz
1153 verbose cache add [ 'prompt@*', null ]
1154 verbose cache add name=undefined spec="prompt@*" args=["prompt@*",null]
1155 verbose parsed url { protocol: null,
1155 verbose parsed url slashes: null,
1155 verbose parsed url auth: null,
1155 verbose parsed url host: null,
1155 verbose parsed url port: null,
1155 verbose parsed url hostname: null,
1155 verbose parsed url hash: null,
1155 verbose parsed url search: null,
1155 verbose parsed url query: null,
1155 verbose parsed url pathname: 'prompt@*',
1155 verbose parsed url path: 'prompt@*',
1155 verbose parsed url href: 'prompt@*' }
1156 verbose cache add name="prompt" spec="*" args=["prompt","*"]
1157 verbose parsed url { protocol: null,
1157 verbose parsed url slashes: null,
1157 verbose parsed url auth: null,
1157 verbose parsed url host: null,
1157 verbose parsed url port: null,
1157 verbose parsed url hostname: null,
1157 verbose parsed url hash: null,
1157 verbose parsed url search: null,
1157 verbose parsed url query: null,
1157 verbose parsed url pathname: '*',
1157 verbose parsed url path: '*',
1157 verbose parsed url href: '*' }
1158 verbose addNamed [ 'prompt', '*' ]
1159 verbose addNamed [ null, '' ]
1160 silly lockFile 7abdc580-prompt prompt@*
1161 verbose lock prompt@* /Users/osx/.npm/7abdc580-prompt.lock
1162 silly addNameRange { name: 'prompt', range: '', hasData: false }
1163 verbose cache add [ 'fstream-ignore@~0.0.5', null ]
1164 verbose cache add name=undefined spec="fstream-ignore@~0.0.5" args=["fstream-ignore@~0.0.5",null]
1165 verbose parsed url { protocol: null,
1165 verbose parsed url slashes: null,
1165 verbose parsed url auth: null,
1165 verbose parsed url host: null,
1165 verbose parsed url port: null,
1165 verbose parsed url hostname: null,
1165 verbose parsed url hash: null,
1165 verbose parsed url search: null,
1165 verbose parsed url query: null,
1165 verbose parsed url pathname: 'fstream-ignore@~0.0.5',
1165 verbose parsed url path: 'fstream-ignore@~0.0.5',
1165 verbose parsed url href: 'fstream-ignore@~0.0.5' }
1166 verbose cache add name="fstream-ignore" spec="~0.0.5" args=["fstream-ignore","~0.0.5"]
1167 verbose parsed url { protocol: null,
1167 verbose parsed url slashes: null,
1167 verbose parsed url auth: null,
1167 verbose parsed url host: null,
1167 verbose parsed url port: null,
1167 verbose parsed url hostname: null,
1167 verbose parsed url hash: null,
1167 verbose parsed url search: null,
1167 verbose parsed url query: null,
1167 verbose parsed url pathname: '~0.0.5',
1167 verbose parsed url path: '~0.0.5',
1167 verbose parsed url href: '~0.0.5' }
1168 verbose addNamed [ 'fstream-ignore', '~0.0.5' ]
1169 verbose addNamed [ null, '>=0.0.5- <0.1.0-' ]
1170 silly lockFile a42d4951-fstream-ignore-0-0-5 fstream-ignore@~0.0.5
1171 verbose lock fstream-ignore@~0.0.5 /Users/osx/.npm/a42d4951-fstream-ignore-0-0-5.lock
1172 silly addNameRange { name: 'fstream-ignore',
1172 silly addNameRange range: '>=0.0.5- <0.1.0-',
1172 silly addNameRange hasData: false }
1173 silly gunzTarPerm extractEntry lib/client/users.js
1174 silly gunzTarPerm extractEntry test/helpers.js
1175 verbose cache add [ 'inherits@2', null ]
1176 verbose cache add name=undefined spec="inherits@2" args=["inherits@2",null]
1177 verbose parsed url { protocol: null,
1177 verbose parsed url slashes: null,
1177 verbose parsed url auth: null,
1177 verbose parsed url host: null,
1177 verbose parsed url port: null,
1177 verbose parsed url hostname: null,
1177 verbose parsed url hash: null,
1177 verbose parsed url search: null,
1177 verbose parsed url query: null,
1177 verbose parsed url pathname: 'inherits@2',
1177 verbose parsed url path: 'inherits@2',
1177 verbose parsed url href: 'inherits@2' }
1178 verbose cache add name="inherits" spec="2" args=["inherits","2"]
1179 verbose parsed url { protocol: null,
1179 verbose parsed url slashes: null,
1179 verbose parsed url auth: null,
1179 verbose parsed url host: null,
1179 verbose parsed url port: null,
1179 verbose parsed url hostname: null,
1179 verbose parsed url hash: null,
1179 verbose parsed url search: null,
1179 verbose parsed url query: null,
1179 verbose parsed url pathname: '2',
1179 verbose parsed url path: '2',
1179 verbose parsed url href: '2' }
1180 verbose addNamed [ 'inherits', '2' ]
1181 verbose addNamed [ null, '>=2.0.0- <3.0.0-' ]
1182 silly lockFile 1f7ff4de-inherits-2 inherits@2
1183 verbose lock inherits@2 /Users/osx/.npm/1f7ff4de-inherits-2.lock
1184 info preinstall canihaz@1.0.1
1185 silly addNameRange { name: 'inherits', range: '>=2.0.0- <3.0.0-', hasData: false }
1186 verbose url raw prompt
1187 verbose url resolving [ 'https://registry.npmjs.org/', './prompt' ]
1188 verbose url resolved https://registry.npmjs.org/prompt
1189 info trying registry request attempt 1 at 16:15:55
1190 verbose etag "2MINEJXH3IMFIP9823CQFIM06"
1191 http GET https://registry.npmjs.org/prompt
1192 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/canihaz/package.json
1193 verbose readDependencies using package.json deps
1194 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/canihaz/package.json
1195 verbose url raw fstream-ignore
1196 verbose url resolving [ 'https://registry.npmjs.org/', './fstream-ignore' ]
1197 verbose url resolved https://registry.npmjs.org/fstream-ignore
1198 info trying registry request attempt 1 at 16:15:55
1199 verbose etag "1O62VL9T7C2KOML1PS81J54HB"
1200 http GET https://registry.npmjs.org/fstream-ignore
1201 verbose readDependencies using package.json deps
1202 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/flatiron-cli-users/package.json
1203 verbose url raw inherits
1204 verbose url resolving [ 'https://registry.npmjs.org/', './inherits' ]
1205 verbose url resolved https://registry.npmjs.org/inherits
1206 info trying registry request attempt 1 at 16:15:55
1207 verbose etag "4AL2M2PJABZWUVUHFYQEADS5P"
1208 http GET https://registry.npmjs.org/inherits
1209 verbose cache add [ 'which@1.0.x', null ]
1210 verbose cache add name=undefined spec="which@1.0.x" args=["which@1.0.x",null]
1211 verbose parsed url { protocol: null,
1211 verbose parsed url slashes: null,
1211 verbose parsed url auth: null,
1211 verbose parsed url host: null,
1211 verbose parsed url port: null,
1211 verbose parsed url hostname: null,
1211 verbose parsed url hash: null,
1211 verbose parsed url search: null,
1211 verbose parsed url query: null,
1211 verbose parsed url pathname: 'which@1.0.x',
1211 verbose parsed url path: 'which@1.0.x',
1211 verbose parsed url href: 'which@1.0.x' }
1212 verbose cache add name="which" spec="1.0.x" args=["which","1.0.x"]
1213 verbose parsed url { protocol: null,
1213 verbose parsed url slashes: null,
1213 verbose parsed url auth: null,
1213 verbose parsed url host: null,
1213 verbose parsed url port: null,
1213 verbose parsed url hostname: null,
1213 verbose parsed url hash: null,
1213 verbose parsed url search: null,
1213 verbose parsed url query: null,
1213 verbose parsed url pathname: '1.0.x',
1213 verbose parsed url path: '1.0.x',
1213 verbose parsed url href: '1.0.x' }
1214 verbose addNamed [ 'which', '1.0.x' ]
1215 verbose addNamed [ null, '>=1.0.0- <1.1.0-' ]
1216 silly lockFile 2f036e04-which-1-0-x which@1.0.x
1217 verbose lock which@1.0.x /Users/osx/.npm/2f036e04-which-1-0-x.lock
1218 verbose cache add [ 'semver@1.1.x', null ]
1219 verbose cache add name=undefined spec="semver@1.1.x" args=["semver@1.1.x",null]
1220 verbose parsed url { protocol: null,
1220 verbose parsed url slashes: null,
1220 verbose parsed url auth: null,
1220 verbose parsed url host: null,
1220 verbose parsed url port: null,
1220 verbose parsed url hostname: null,
1220 verbose parsed url hash: null,
1220 verbose parsed url search: null,
1220 verbose parsed url query: null,
1220 verbose parsed url pathname: 'semver@1.1.x',
1220 verbose parsed url path: 'semver@1.1.x',
1220 verbose parsed url href: 'semver@1.1.x' }
1221 verbose cache add name="semver" spec="1.1.x" args=["semver","1.1.x"]
1222 verbose parsed url { protocol: null,
1222 verbose parsed url slashes: null,
1222 verbose parsed url auth: null,
1222 verbose parsed url host: null,
1222 verbose parsed url port: null,
1222 verbose parsed url hostname: null,
1222 verbose parsed url hash: null,
1222 verbose parsed url search: null,
1222 verbose parsed url query: null,
1222 verbose parsed url pathname: '1.1.x',
1222 verbose parsed url path: '1.1.x',
1222 verbose parsed url href: '1.1.x' }
1223 verbose addNamed [ 'semver', '1.1.x' ]
1224 verbose addNamed [ null, '>=1.1.0- <1.2.0-' ]
1225 silly lockFile 674d9f7e-semver-1-1-x semver@1.1.x
1226 verbose lock semver@1.1.x /Users/osx/.npm/674d9f7e-semver-1-1-x.lock
1227 verbose cache add [ 'mkdirp@0.3.x', null ]
1228 verbose cache add name=undefined spec="mkdirp@0.3.x" args=["mkdirp@0.3.x",null]
1229 verbose parsed url { protocol: null,
1229 verbose parsed url slashes: null,
1229 verbose parsed url auth: null,
1229 verbose parsed url host: null,
1229 verbose parsed url port: null,
1229 verbose parsed url hostname: null,
1229 verbose parsed url hash: null,
1229 verbose parsed url search: null,
1229 verbose parsed url query: null,
1229 verbose parsed url pathname: 'mkdirp@0.3.x',
1229 verbose parsed url path: 'mkdirp@0.3.x',
1229 verbose parsed url href: 'mkdirp@0.3.x' }
1230 verbose cache add name="mkdirp" spec="0.3.x" args=["mkdirp","0.3.x"]
1231 verbose parsed url { protocol: null,
1231 verbose parsed url slashes: null,
1231 verbose parsed url auth: null,
1231 verbose parsed url host: null,
1231 verbose parsed url port: null,
1231 verbose parsed url hostname: null,
1231 verbose parsed url hash: null,
1231 verbose parsed url search: null,
1231 verbose parsed url query: null,
1231 verbose parsed url pathname: '0.3.x',
1231 verbose parsed url path: '0.3.x',
1231 verbose parsed url href: '0.3.x' }
1232 verbose addNamed [ 'mkdirp', '0.3.x' ]
1233 verbose addNamed [ null, '>=0.3.0- <0.4.0-' ]
1234 silly lockFile 6d3723ce-mkdirp-0-3-x mkdirp@0.3.x
1235 verbose lock mkdirp@0.3.x /Users/osx/.npm/6d3723ce-mkdirp-0-3-x.lock
1236 silly addNameRange { name: 'which', range: '>=1.0.0- <1.1.0-', hasData: false }
1237 silly addNameRange { name: 'semver', range: '>=1.1.0- <1.2.0-', hasData: false }
1238 silly addNameRange { name: 'mkdirp', range: '>=0.3.0- <0.4.0-', hasData: false }
1239 silly gunzTarPerm extractEntry test/macros.js
1240 silly gunzTarPerm extractEntry test/commands/apps-test.js
1241 verbose url raw which
1242 verbose url resolving [ 'https://registry.npmjs.org/', './which' ]
1243 verbose url resolved https://registry.npmjs.org/which
1244 info trying registry request attempt 1 at 16:15:55
1245 verbose etag "4U42AUANZD43I26W7W04SHTG3"
1246 http GET https://registry.npmjs.org/which
1247 verbose url raw semver
1248 verbose url resolving [ 'https://registry.npmjs.org/', './semver' ]
1249 verbose url resolved https://registry.npmjs.org/semver
1250 info trying registry request attempt 1 at 16:15:55
1251 verbose etag "5T6MUUO9XMCIT4W783K8VECVS"
1252 http GET https://registry.npmjs.org/semver
1253 verbose url raw mkdirp
1254 verbose url resolving [ 'https://registry.npmjs.org/', './mkdirp' ]
1255 verbose url resolved https://registry.npmjs.org/mkdirp
1256 info trying registry request attempt 1 at 16:15:55
1257 verbose etag "5P8P29TVEQ554BHA2UQ3XQCA3"
1258 http GET https://registry.npmjs.org/mkdirp
1259 silly lockFile 55c1ca53--node-modules-flatiron-cli-users /usr/local/lib/node_modules/jitsu/node_modules/flatiron-cli-users
1260 silly lockFile 55c1ca53--node-modules-flatiron-cli-users /usr/local/lib/node_modules/jitsu/node_modules/flatiron-cli-users
1261 silly gunzTarPerm extractEntry test/commands/databases-test.js
1262 silly gunzTarPerm extractEntry test/commands/snapshots-test.js
1263 silly lockFile ef7ba815-iron-cli-users-0-1-8-package-tgz /Users/osx/.npm/flatiron-cli-users/0.1.8/package.tgz
1264 silly lockFile ef7ba815-iron-cli-users-0-1-8-package-tgz /Users/osx/.npm/flatiron-cli-users/0.1.8/package.tgz
1265 info preinstall flatiron-cli-users@0.1.8
1266 silly gunzTarPerm extractEntry test/commands/tokens-test.js
1267 silly gunzTarPerm extractEntry test/commands/users-test.js
1268 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/flatiron-cli-users/package.json
1269 verbose readDependencies using package.json deps
1270 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/flatiron-cli-users/package.json
1271 verbose readDependencies using package.json deps
1272 silly resolved []
1273 verbose about to build /usr/local/lib/node_modules/jitsu/node_modules/flatiron-cli-users
1274 info build /usr/local/lib/node_modules/jitsu/node_modules/flatiron-cli-users
1275 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/flatiron-cli-users/package.json
1276 verbose linkStuff [ true,
1276 verbose linkStuff '/usr/local/lib/node_modules',
1276 verbose linkStuff false,
1276 verbose linkStuff '/usr/local/lib/node_modules/jitsu/node_modules' ]
1277 info linkStuff flatiron-cli-users@0.1.8
1278 verbose linkBins flatiron-cli-users@0.1.8
1279 verbose linkMans flatiron-cli-users@0.1.8
1280 verbose rebuildBundles flatiron-cli-users@0.1.8
1281 info install flatiron-cli-users@0.1.8
1282 info postinstall flatiron-cli-users@0.1.8
1283 silly gunzTarPerm extractEntry test/fixtures/snapshot.tgz
1284 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/pkginfo/package.json
1285 silly lockFile de1f237a-dules-jitsu-node-modules-pkginfo /usr/local/lib/node_modules/jitsu/node_modules/pkginfo
1286 silly lockFile de1f237a-dules-jitsu-node-modules-pkginfo /usr/local/lib/node_modules/jitsu/node_modules/pkginfo
1287 silly lockFile 6428a150-sx-npm-pkginfo-0-3-0-package-tgz /Users/osx/.npm/pkginfo/0.3.0/package.tgz
1288 silly lockFile 6428a150-sx-npm-pkginfo-0-3-0-package-tgz /Users/osx/.npm/pkginfo/0.3.0/package.tgz
1289 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/request/package.json
1290 info preinstall pkginfo@0.3.0
1291 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/pkginfo/package.json
1292 verbose readDependencies using package.json deps
1293 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/pkginfo/package.json
1294 verbose readDependencies using package.json deps
1295 silly resolved []
1296 verbose about to build /usr/local/lib/node_modules/jitsu/node_modules/pkginfo
1297 info build /usr/local/lib/node_modules/jitsu/node_modules/pkginfo
1298 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/pkginfo/package.json
1299 verbose linkStuff [ true,
1299 verbose linkStuff '/usr/local/lib/node_modules',
1299 verbose linkStuff false,
1299 verbose linkStuff '/usr/local/lib/node_modules/jitsu/node_modules' ]
1300 info linkStuff pkginfo@0.3.0
1301 verbose linkBins pkginfo@0.3.0
1302 verbose linkMans pkginfo@0.3.0
1303 verbose rebuildBundles pkginfo@0.3.0
1304 info install pkginfo@0.3.0
1305 info postinstall pkginfo@0.3.0
1306 silly lockFile cbca3c65-dules-jitsu-node-modules-request /usr/local/lib/node_modules/jitsu/node_modules/request
1307 silly lockFile cbca3c65-dules-jitsu-node-modules-request /usr/local/lib/node_modules/jitsu/node_modules/request
1308 silly lockFile d833161b-x-npm-request-2-28-0-package-tgz /Users/osx/.npm/request/2.28.0/package.tgz
1309 silly lockFile d833161b-x-npm-request-2-28-0-package-tgz /Users/osx/.npm/request/2.28.0/package.tgz
1310 info preinstall request@2.28.0
1311 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/request/package.json
1312 verbose readDependencies using package.json deps
1313 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/request/package.json
1314 verbose readDependencies using package.json deps
1315 verbose cache add [ 'qs@~0.6.0', null ]
1316 verbose cache add name=undefined spec="qs@~0.6.0" args=["qs@~0.6.0",null]
1317 verbose parsed url { protocol: null,
1317 verbose parsed url slashes: null,
1317 verbose parsed url auth: null,
1317 verbose parsed url host: null,
1317 verbose parsed url port: null,
1317 verbose parsed url hostname: null,
1317 verbose parsed url hash: null,
1317 verbose parsed url search: null,
1317 verbose parsed url query: null,
1317 verbose parsed url pathname: 'qs@~0.6.0',
1317 verbose parsed url path: 'qs@~0.6.0',
1317 verbose parsed url href: 'qs@~0.6.0' }
1318 verbose cache add name="qs" spec="~0.6.0" args=["qs","~0.6.0"]
1319 verbose parsed url { protocol: null,
1319 verbose parsed url slashes: null,
1319 verbose parsed url auth: null,
1319 verbose parsed url host: null,
1319 verbose parsed url port: null,
1319 verbose parsed url hostname: null,
1319 verbose parsed url hash: null,
1319 verbose parsed url search: null,
1319 verbose parsed url query: null,
1319 verbose parsed url pathname: '~0.6.0',
1319 verbose parsed url path: '~0.6.0',
1319 verbose parsed url href: '~0.6.0' }
1320 verbose addNamed [ 'qs', '~0.6.0' ]
1321 verbose addNamed [ null, '>=0.6.0- <0.7.0-' ]
1322 silly lockFile 222bee9e-qs-0-6-0 qs@~0.6.0
1323 verbose lock qs@~0.6.0 /Users/osx/.npm/222bee9e-qs-0-6-0.lock
1324 verbose cache add [ 'json-stringify-safe@~5.0.0', null ]
1325 verbose cache add name=undefined spec="json-stringify-safe@~5.0.0" args=["json-stringify-safe@~5.0.0",null]
1326 verbose parsed url { protocol: null,
1326 verbose parsed url slashes: null,
1326 verbose parsed url auth: null,
1326 verbose parsed url host: null,
1326 verbose parsed url port: null,
1326 verbose parsed url hostname: null,
1326 verbose parsed url hash: null,
1326 verbose parsed url search: null,
1326 verbose parsed url query: null,
1326 verbose parsed url pathname: 'json-stringify-safe@~5.0.0',
1326 verbose parsed url path: 'json-stringify-safe@~5.0.0',
1326 verbose parsed url href: 'json-stringify-safe@~5.0.0' }
1327 verbose cache add name="json-stringify-safe" spec="~5.0.0" args=["json-stringify-safe","~5.0.0"]
1328 verbose parsed url { protocol: null,
1328 verbose parsed url slashes: null,
1328 verbose parsed url auth: null,
1328 verbose parsed url host: null,
1328 verbose parsed url port: null,
1328 verbose parsed url hostname: null,
1328 verbose parsed url hash: null,
1328 verbose parsed url search: null,
1328 verbose parsed url query: null,
1328 verbose parsed url pathname: '~5.0.0',
1328 verbose parsed url path: '~5.0.0',
1328 verbose parsed url href: '~5.0.0' }
1329 verbose addNamed [ 'json-stringify-safe', '~5.0.0' ]
1330 verbose addNamed [ null, '>=5.0.0- <5.1.0-' ]
1331 silly lockFile 063b1a01-json-stringify-safe-5-0-0 json-stringify-safe@~5.0.0
1332 verbose lock json-stringify-safe@~5.0.0 /Users/osx/.npm/063b1a01-json-stringify-safe-5-0-0.lock
1333 silly addNameRange { name: 'qs', range: '>=0.6.0- <0.7.0-', hasData: false }
1334 verbose cache add [ 'forever-agent@~0.5.0', null ]
1335 verbose cache add name=undefined spec="forever-agent@~0.5.0" args=["forever-agent@~0.5.0",null]
1336 verbose parsed url { protocol: null,
1336 verbose parsed url slashes: null,
1336 verbose parsed url auth: null,
1336 verbose parsed url host: null,
1336 verbose parsed url port: null,
1336 verbose parsed url hostname: null,
1336 verbose parsed url hash: null,
1336 verbose parsed url search: null,
1336 verbose parsed url query: null,
1336 verbose parsed url pathname: 'forever-agent@~0.5.0',
1336 verbose parsed url path: 'forever-agent@~0.5.0',
1336 verbose parsed url href: 'forever-agent@~0.5.0' }
1337 verbose cache add name="forever-agent" spec="~0.5.0" args=["forever-agent","~0.5.0"]
1338 verbose parsed url { protocol: null,
1338 verbose parsed url slashes: null,
1338 verbose parsed url auth: null,
1338 verbose parsed url host: null,
1338 verbose parsed url port: null,
1338 verbose parsed url hostname: null,
1338 verbose parsed url hash: null,
1338 verbose parsed url search: null,
1338 verbose parsed url query: null,
1338 verbose parsed url pathname: '~0.5.0',
1338 verbose parsed url path: '~0.5.0',
1338 verbose parsed url href: '~0.5.0' }
1339 verbose addNamed [ 'forever-agent', '~0.5.0' ]
1340 verbose addNamed [ null, '>=0.5.0- <0.6.0-' ]
1341 silly lockFile fa463915-forever-agent-0-5-0 forever-agent@~0.5.0
1342 verbose lock forever-agent@~0.5.0 /Users/osx/.npm/fa463915-forever-agent-0-5-0.lock
1343 silly addNameRange { name: 'json-stringify-safe',
1343 silly addNameRange range: '>=5.0.0- <5.1.0-',
1343 silly addNameRange hasData: false }
1344 silly addNameRange { name: 'forever-agent',
1344 silly addNameRange range: '>=0.5.0- <0.6.0-',
1344 silly addNameRange hasData: false }
1345 verbose cache add [ 'node-uuid@~1.4.0', null ]
1346 verbose cache add name=undefined spec="node-uuid@~1.4.0" args=["node-uuid@~1.4.0",null]
1347 verbose parsed url { protocol: null,
1347 verbose parsed url slashes: null,
1347 verbose parsed url auth: null,
1347 verbose parsed url host: null,
1347 verbose parsed url port: null,
1347 verbose parsed url hostname: null,
1347 verbose parsed url hash: null,
1347 verbose parsed url search: null,
1347 verbose parsed url query: null,
1347 verbose parsed url pathname: 'node-uuid@~1.4.0',
1347 verbose parsed url path: 'node-uuid@~1.4.0',
1347 verbose parsed url href: 'node-uuid@~1.4.0' }
1348 verbose cache add name="node-uuid" spec="~1.4.0" args=["node-uuid","~1.4.0"]
1349 verbose parsed url { protocol: null,
1349 verbose parsed url slashes: null,
1349 verbose parsed url auth: null,
1349 verbose parsed url host: null,
1349 verbose parsed url port: null,
1349 verbose parsed url hostname: null,
1349 verbose parsed url hash: null,
1349 verbose parsed url search: null,
1349 verbose parsed url query: null,
1349 verbose parsed url pathname: '~1.4.0',
1349 verbose parsed url path: '~1.4.0',
1349 verbose parsed url href: '~1.4.0' }
1350 verbose addNamed [ 'node-uuid', '~1.4.0' ]
1351 verbose addNamed [ null, '>=1.4.0- <1.5.0-' ]
1352 silly lockFile f662725f-node-uuid-1-4-0 node-uuid@~1.4.0
1353 verbose lock node-uuid@~1.4.0 /Users/osx/.npm/f662725f-node-uuid-1-4-0.lock
1354 verbose cache add [ 'mime@~1.2.9', null ]
1355 verbose cache add name=undefined spec="mime@~1.2.9" args=["mime@~1.2.9",null]
1356 verbose parsed url { protocol: null,
1356 verbose parsed url slashes: null,
1356 verbose parsed url auth: null,
1356 verbose parsed url host: null,
1356 verbose parsed url port: null,
1356 verbose parsed url hostname: null,
1356 verbose parsed url hash: null,
1356 verbose parsed url search: null,
1356 verbose parsed url query: null,
1356 verbose parsed url pathname: 'mime@~1.2.9',
1356 verbose parsed url path: 'mime@~1.2.9',
1356 verbose parsed url href: 'mime@~1.2.9' }
1357 verbose cache add name="mime" spec="~1.2.9" args=["mime","~1.2.9"]
1358 verbose parsed url { protocol: null,
1358 verbose parsed url slashes: null,
1358 verbose parsed url auth: null,
1358 verbose parsed url host: null,
1358 verbose parsed url port: null,
1358 verbose parsed url hostname: null,
1358 verbose parsed url hash: null,
1358 verbose parsed url search: null,
1358 verbose parsed url query: null,
1358 verbose parsed url pathname: '~1.2.9',
1358 verbose parsed url path: '~1.2.9',
1358 verbose parsed url href: '~1.2.9' }
1359 verbose addNamed [ 'mime', '~1.2.9' ]
1360 verbose addNamed [ null, '>=1.2.9- <1.3.0-' ]
1361 silly lockFile ccf24a67-mime-1-2-9 mime@~1.2.9
1362 verbose lock mime@~1.2.9 /Users/osx/.npm/ccf24a67-mime-1-2-9.lock
1363 verbose cache add [ 'tough-cookie@~0.9.15', null ]
1364 verbose cache add name=undefined spec="tough-cookie@~0.9.15" args=["tough-cookie@~0.9.15",null]
1365 verbose parsed url { protocol: null,
1365 verbose parsed url slashes: null,
1365 verbose parsed url auth: null,
1365 verbose parsed url host: null,
1365 verbose parsed url port: null,
1365 verbose parsed url hostname: null,
1365 verbose parsed url hash: null,
1365 verbose parsed url search: null,
1365 verbose parsed url query: null,
1365 verbose parsed url pathname: 'tough-cookie@~0.9.15',
1365 verbose parsed url path: 'tough-cookie@~0.9.15',
1365 verbose parsed url href: 'tough-cookie@~0.9.15' }
1366 verbose cache add name="tough-cookie" spec="~0.9.15" args=["tough-cookie","~0.9.15"]
1367 verbose parsed url { protocol: null,
1367 verbose parsed url slashes: null,
1367 verbose parsed url auth: null,
1367 verbose parsed url host: null,
1367 verbose parsed url port: null,
1367 verbose parsed url hostname: null,
1367 verbose parsed url hash: null,
1367 verbose parsed url search: null,
1367 verbose parsed url query: null,
1367 verbose parsed url pathname: '~0.9.15',
1367 verbose parsed url path: '~0.9.15',
1367 verbose parsed url href: '~0.9.15' }
1368 verbose addNamed [ 'tough-cookie', '~0.9.15' ]
1369 verbose addNamed [ null, '>=0.9.15- <0.10.0-' ]
1370 silly lockFile c2bfce7a-tough-cookie-0-9-15 tough-cookie@~0.9.15
1371 verbose lock tough-cookie@~0.9.15 /Users/osx/.npm/c2bfce7a-tough-cookie-0-9-15.lock
1372 silly addNameRange { name: 'node-uuid', range: '>=1.4.0- <1.5.0-', hasData: false }
1373 silly addNameRange { name: 'mime', range: '>=1.2.9- <1.3.0-', hasData: false }
1374 verbose cache add [ 'form-data@~0.1.0', null ]
1375 verbose cache add name=undefined spec="form-data@~0.1.0" args=["form-data@~0.1.0",null]
1376 verbose parsed url { protocol: null,
1376 verbose parsed url slashes: null,
1376 verbose parsed url auth: null,
1376 verbose parsed url host: null,
1376 verbose parsed url port: null,
1376 verbose parsed url hostname: null,
1376 verbose parsed url hash: null,
1376 verbose parsed url search: null,
1376 verbose parsed url query: null,
1376 verbose parsed url pathname: 'form-data@~0.1.0',
1376 verbose parsed url path: 'form-data@~0.1.0',
1376 verbose parsed url href: 'form-data@~0.1.0' }
1377 verbose cache add name="form-data" spec="~0.1.0" args=["form-data","~0.1.0"]
1378 verbose parsed url { protocol: null,
1378 verbose parsed url slashes: null,
1378 verbose parsed url auth: null,
1378 verbose parsed url host: null,
1378 verbose parsed url port: null,
1378 verbose parsed url hostname: null,
1378 verbose parsed url hash: null,
1378 verbose parsed url search: null,
1378 verbose parsed url query: null,
1378 verbose parsed url pathname: '~0.1.0',
1378 verbose parsed url path: '~0.1.0',
1378 verbose parsed url href: '~0.1.0' }
1379 verbose addNamed [ 'form-data', '~0.1.0' ]
1380 verbose addNamed [ null, '>=0.1.0- <0.2.0-' ]
1381 silly lockFile 26aa13f4-form-data-0-1-0 form-data@~0.1.0
1382 verbose lock form-data@~0.1.0 /Users/osx/.npm/26aa13f4-form-data-0-1-0.lock
1383 verbose cache add [ 'tunnel-agent@~0.3.0', null ]
1384 verbose cache add name=undefined spec="tunnel-agent@~0.3.0" args=["tunnel-agent@~0.3.0",null]
1385 verbose parsed url { protocol: null,
1385 verbose parsed url slashes: null,
1385 verbose parsed url auth: null,
1385 verbose parsed url host: null,
1385 verbose parsed url port: null,
1385 verbose parsed url hostname: null,
1385 verbose parsed url hash: null,
1385 verbose parsed url search: null,
1385 verbose parsed url query: null,
1385 verbose parsed url pathname: 'tunnel-agent@~0.3.0',
1385 verbose parsed url path: 'tunnel-agent@~0.3.0',
1385 verbose parsed url href: 'tunnel-agent@~0.3.0' }
1386 verbose cache add name="tunnel-agent" spec="~0.3.0" args=["tunnel-agent","~0.3.0"]
1387 verbose parsed url { protocol: null,
1387 verbose parsed url slashes: null,
1387 verbose parsed url auth: null,
1387 verbose parsed url host: null,
1387 verbose parsed url port: null,
1387 verbose parsed url hostname: null,
1387 verbose parsed url hash: null,
1387 verbose parsed url search: null,
1387 verbose parsed url query: null,
1387 verbose parsed url pathname: '~0.3.0',
1387 verbose parsed url path: '~0.3.0',
1387 verbose parsed url href: '~0.3.0' }
1388 verbose addNamed [ 'tunnel-agent', '~0.3.0' ]
1389 verbose addNamed [ null, '>=0.3.0- <0.4.0-' ]
1390 silly lockFile e5681eda-tunnel-agent-0-3-0 tunnel-agent@~0.3.0
1391 verbose lock tunnel-agent@~0.3.0 /Users/osx/.npm/e5681eda-tunnel-agent-0-3-0.lock
1392 verbose cache add [ 'http-signature@~0.10.0', null ]
1393 verbose cache add name=undefined spec="http-signature@~0.10.0" args=["http-signature@~0.10.0",null]
1394 verbose parsed url { protocol: null,
1394 verbose parsed url slashes: null,
1394 verbose parsed url auth: null,
1394 verbose parsed url host: null,
1394 verbose parsed url port: null,
1394 verbose parsed url hostname: null,
1394 verbose parsed url hash: null,
1394 verbose parsed url search: null,
1394 verbose parsed url query: null,
1394 verbose parsed url pathname: 'http-signature@~0.10.0',
1394 verbose parsed url path: 'http-signature@~0.10.0',
1394 verbose parsed url href: 'http-signature@~0.10.0' }
1395 verbose cache add name="http-signature" spec="~0.10.0" args=["http-signature","~0.10.0"]
1396 verbose parsed url { protocol: null,
1396 verbose parsed url slashes: null,
1396 verbose parsed url auth: null,
1396 verbose parsed url host: null,
1396 verbose parsed url port: null,
1396 verbose parsed url hostname: null,
1396 verbose parsed url hash: null,
1396 verbose parsed url search: null,
1396 verbose parsed url query: null,
1396 verbose parsed url pathname: '~0.10.0',
1396 verbose parsed url path: '~0.10.0',
1396 verbose parsed url href: '~0.10.0' }
1397 verbose addNamed [ 'http-signature', '~0.10.0' ]
1398 verbose addNamed [ null, '>=0.10.0- <0.11.0-' ]
1399 silly lockFile 8170f292-http-signature-0-10-0 http-signature@~0.10.0
1400 verbose lock http-signature@~0.10.0 /Users/osx/.npm/8170f292-http-signature-0-10-0.lock
1401 verbose cache add [ 'oauth-sign@~0.3.0', null ]
1402 verbose cache add name=undefined spec="oauth-sign@~0.3.0" args=["oauth-sign@~0.3.0",null]
1403 verbose parsed url { protocol: null,
1403 verbose parsed url slashes: null,
1403 verbose parsed url auth: null,
1403 verbose parsed url host: null,
1403 verbose parsed url port: null,
1403 verbose parsed url hostname: null,
1403 verbose parsed url hash: null,
1403 verbose parsed url search: null,
1403 verbose parsed url query: null,
1403 verbose parsed url pathname: 'oauth-sign@~0.3.0',
1403 verbose parsed url path: 'oauth-sign@~0.3.0',
1403 verbose parsed url href: 'oauth-sign@~0.3.0' }
1404 verbose cache add name="oauth-sign" spec="~0.3.0" args=["oauth-sign","~0.3.0"]
1405 verbose parsed url { protocol: null,
1405 verbose parsed url slashes: null,
1405 verbose parsed url auth: null,
1405 verbose parsed url host: null,
1405 verbose parsed url port: null,
1405 verbose parsed url hostname: null,
1405 verbose parsed url hash: null,
1405 verbose parsed url search: null,
1405 verbose parsed url query: null,
1405 verbose parsed url pathname: '~0.3.0',
1405 verbose parsed url path: '~0.3.0',
1405 verbose parsed url href: '~0.3.0' }
1406 verbose addNamed [ 'oauth-sign', '~0.3.0' ]
1407 verbose addNamed [ null, '>=0.3.0- <0.4.0-' ]
1408 silly lockFile 7fb5c7f1-oauth-sign-0-3-0 oauth-sign@~0.3.0
1409 verbose lock oauth-sign@~0.3.0 /Users/osx/.npm/7fb5c7f1-oauth-sign-0-3-0.lock
1410 silly addNameRange { name: 'tough-cookie',
1410 silly addNameRange range: '>=0.9.15- <0.10.0-',
1410 silly addNameRange hasData: false }
1411 verbose url raw qs
1412 verbose url resolving [ 'https://registry.npmjs.org/', './qs' ]
1413 verbose url resolved https://registry.npmjs.org/qs
1414 info trying registry request attempt 1 at 16:15:55
1415 verbose etag "EY4LXYYQ4LWO235OEZP0WY4OH"
1416 http GET https://registry.npmjs.org/qs
1417 silly addNameRange { name: 'form-data', range: '>=0.1.0- <0.2.0-', hasData: false }
1418 silly addNameRange { name: 'tunnel-agent',
1418 silly addNameRange range: '>=0.3.0- <0.4.0-',
1418 silly addNameRange hasData: false }
1419 silly addNameRange { name: 'http-signature',
1419 silly addNameRange range: '>=0.10.0- <0.11.0-',
1419 silly addNameRange hasData: false }
1420 verbose cache add [ 'hawk@~1.0.0', null ]
1421 verbose cache add name=undefined spec="hawk@~1.0.0" args=["hawk@~1.0.0",null]
1422 verbose parsed url { protocol: null,
1422 verbose parsed url slashes: null,
1422 verbose parsed url auth: null,
1422 verbose parsed url host: null,
1422 verbose parsed url port: null,
1422 verbose parsed url hostname: null,
1422 verbose parsed url hash: null,
1422 verbose parsed url search: null,
1422 verbose parsed url query: null,
1422 verbose parsed url pathname: 'hawk@~1.0.0',
1422 verbose parsed url path: 'hawk@~1.0.0',
1422 verbose parsed url href: 'hawk@~1.0.0' }
1423 verbose cache add name="hawk" spec="~1.0.0" args=["hawk","~1.0.0"]
1424 verbose parsed url { protocol: null,
1424 verbose parsed url slashes: null,
1424 verbose parsed url auth: null,
1424 verbose parsed url host: null,
1424 verbose parsed url port: null,
1424 verbose parsed url hostname: null,
1424 verbose parsed url hash: null,
1424 verbose parsed url search: null,
1424 verbose parsed url query: null,
1424 verbose parsed url pathname: '~1.0.0',
1424 verbose parsed url path: '~1.0.0',
1424 verbose parsed url href: '~1.0.0' }
1425 verbose addNamed [ 'hawk', '~1.0.0' ]
1426 verbose addNamed [ null, '>=1.0.0- <1.1.0-' ]
1427 silly lockFile 327094b8-hawk-1-0-0 hawk@~1.0.0
1428 verbose lock hawk@~1.0.0 /Users/osx/.npm/327094b8-hawk-1-0-0.lock
1429 verbose cache add [ 'aws-sign2@~0.5.0', null ]
1430 verbose cache add name=undefined spec="aws-sign2@~0.5.0" args=["aws-sign2@~0.5.0",null]
1431 verbose parsed url { protocol: null,
1431 verbose parsed url slashes: null,
1431 verbose parsed url auth: null,
1431 verbose parsed url host: null,
1431 verbose parsed url port: null,
1431 verbose parsed url hostname: null,
1431 verbose parsed url hash: null,
1431 verbose parsed url search: null,
1431 verbose parsed url query: null,
1431 verbose parsed url pathname: 'aws-sign2@~0.5.0',
1431 verbose parsed url path: 'aws-sign2@~0.5.0',
1431 verbose parsed url href: 'aws-sign2@~0.5.0' }
1432 verbose cache add name="aws-sign2" spec="~0.5.0" args=["aws-sign2","~0.5.0"]
1433 verbose parsed url { protocol: null,
1433 verbose parsed url slashes: null,
1433 verbose parsed url auth: null,
1433 verbose parsed url host: null,
1433 verbose parsed url port: null,
1433 verbose parsed url hostname: null,
1433 verbose parsed url hash: null,
1433 verbose parsed url search: null,
1433 verbose parsed url query: null,
1433 verbose parsed url pathname: '~0.5.0',
1433 verbose parsed url path: '~0.5.0',
1433 verbose parsed url href: '~0.5.0' }
1434 verbose addNamed [ 'aws-sign2', '~0.5.0' ]
1435 verbose addNamed [ null, '>=0.5.0- <0.6.0-' ]
1436 silly lockFile 82387911-aws-sign2-0-5-0 aws-sign2@~0.5.0
1437 verbose lock aws-sign2@~0.5.0 /Users/osx/.npm/82387911-aws-sign2-0-5-0.lock
1438 silly addNameRange { name: 'oauth-sign', range: '>=0.3.0- <0.4.0-', hasData: false }
1439 verbose url raw json-stringify-safe
1440 verbose url resolving [ 'https://registry.npmjs.org/', './json-stringify-safe' ]
1441 verbose url resolved https://registry.npmjs.org/json-stringify-safe
1442 info trying registry request attempt 1 at 16:15:55
1443 verbose etag "DCHF000C6O2GP81GD95QO2ILB"
1444 http GET https://registry.npmjs.org/json-stringify-safe
1445 silly addNameRange { name: 'hawk', range: '>=1.0.0- <1.1.0-', hasData: false }
1446 silly addNameRange { name: 'aws-sign2', range: '>=0.5.0- <0.6.0-', hasData: false }
1447 verbose url raw forever-agent
1448 verbose url resolving [ 'https://registry.npmjs.org/', './forever-agent' ]
1449 verbose url resolved https://registry.npmjs.org/forever-agent
1450 info trying registry request attempt 1 at 16:15:55
1451 verbose etag "CYWZJILR3M157HRX9R094YZJP"
1452 http GET https://registry.npmjs.org/forever-agent
1453 verbose url raw node-uuid
1454 verbose url resolving [ 'https://registry.npmjs.org/', './node-uuid' ]
1455 verbose url resolved https://registry.npmjs.org/node-uuid
1456 info trying registry request attempt 1 at 16:15:55
1457 verbose etag "C0S2QQR3MCP3EXXIACMHQMACU"
1458 http GET https://registry.npmjs.org/node-uuid
1459 verbose url raw mime
1460 verbose url resolving [ 'https://registry.npmjs.org/', './mime' ]
1461 verbose url resolved https://registry.npmjs.org/mime
1462 info trying registry request attempt 1 at 16:15:55
1463 verbose etag "F4V2UYXEEHA5JF6J8PG0TLDQG"
1464 http GET https://registry.npmjs.org/mime
1465 verbose url raw form-data
1466 verbose url resolving [ 'https://registry.npmjs.org/', './form-data' ]
1467 verbose url resolved https://registry.npmjs.org/form-data
1468 info trying registry request attempt 1 at 16:15:55
1469 verbose etag "CMVTBJWZS8M22B5SOYPCTL1GD"
1470 http GET https://registry.npmjs.org/form-data
1471 verbose url raw tunnel-agent
1472 verbose url resolving [ 'https://registry.npmjs.org/', './tunnel-agent' ]
1473 verbose url resolved https://registry.npmjs.org/tunnel-agent
1474 info trying registry request attempt 1 at 16:15:55
1475 verbose etag "4XEKZRB2KFYOS7X2FPWBM4UTK"
1476 http GET https://registry.npmjs.org/tunnel-agent
1477 verbose url raw http-signature
1478 verbose url resolving [ 'https://registry.npmjs.org/', './http-signature' ]
1479 verbose url resolved https://registry.npmjs.org/http-signature
1480 info trying registry request attempt 1 at 16:15:55
1481 verbose etag "6ZB1ETGRW1IRSY4JIA0Y1E3B2"
1482 http GET https://registry.npmjs.org/http-signature
1483 verbose url raw tough-cookie
1484 verbose url resolving [ 'https://registry.npmjs.org/', './tough-cookie' ]
1485 verbose url resolved https://registry.npmjs.org/tough-cookie
1486 info trying registry request attempt 1 at 16:15:55
1487 verbose etag "1UPI10TCWUXXCJDOICISVEFTA"
1488 http GET https://registry.npmjs.org/tough-cookie
1489 verbose url raw oauth-sign
1490 verbose url resolving [ 'https://registry.npmjs.org/', './oauth-sign' ]
1491 verbose url resolved https://registry.npmjs.org/oauth-sign
1492 info trying registry request attempt 1 at 16:15:55
1493 verbose etag "BBEB5VBVQE0G0SOWKWBK6G3CH"
1494 http GET https://registry.npmjs.org/oauth-sign
1495 verbose url raw hawk
1496 verbose url resolving [ 'https://registry.npmjs.org/', './hawk' ]
1497 verbose url resolved https://registry.npmjs.org/hawk
1498 info trying registry request attempt 1 at 16:15:55
1499 verbose etag "8OYGUWEVR2EN7SOD8YZ0D7VKB"
1500 http GET https://registry.npmjs.org/hawk
1501 verbose url raw aws-sign2
1502 verbose url resolving [ 'https://registry.npmjs.org/', './aws-sign2' ]
1503 verbose url resolved https://registry.npmjs.org/aws-sign2
1504 info trying registry request attempt 1 at 16:15:55
1505 verbose etag "5LQVIOJRE8YGQMQ2P04WCC67A"
1506 http GET https://registry.npmjs.org/aws-sign2
1507 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/fstream/package.json
1508 http 304 https://registry.npmjs.org/inherits
1509 silly registry.get cb [ 304,
1509 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:57 GMT',
1509 silly registry.get server: 'Apache',
1509 silly registry.get via: '1.1 varnish',
1509 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:57 GMT',
1509 silly registry.get 'cache-control': 'max-age=1',
1509 silly registry.get etag: '"4AL2M2PJABZWUVUHFYQEADS5P"',
1509 silly registry.get 'x-served-by': 'cache-jfk1022-JFK',
1509 silly registry.get 'x-cache': 'HIT',
1509 silly registry.get 'x-cache-hits': '1',
1509 silly registry.get 'x-timer': 'S1401826557.016817,VS0,VE0',
1509 silly registry.get vary: 'Accept',
1509 silly registry.get 'content-length': '0',
1509 silly registry.get 'keep-alive': 'timeout=10, max=50',
1509 silly registry.get connection: 'Keep-Alive' } ]
1510 verbose etag inherits from cache
1511 silly lockFile 6ac2ae43-dules-jitsu-node-modules-fstream /usr/local/lib/node_modules/jitsu/node_modules/fstream
1512 silly lockFile 6ac2ae43-dules-jitsu-node-modules-fstream /usr/local/lib/node_modules/jitsu/node_modules/fstream
1513 silly lockFile e9e7b202-x-npm-fstream-0-1-25-package-tgz /Users/osx/.npm/fstream/0.1.25/package.tgz
1514 silly lockFile e9e7b202-x-npm-fstream-0-1-25-package-tgz /Users/osx/.npm/fstream/0.1.25/package.tgz
1515 silly addNameRange number 2 { name: 'inherits', range: '>=2.0.0- <3.0.0-', hasData: true }
1516 silly addNameRange versions [ 'inherits', [ '1.0.0', '2.0.0', '2.0.1' ] ]
1517 verbose addNamed [ 'inherits', '2.0.1' ]
1518 verbose addNamed [ '2.0.1', '2.0.1' ]
1519 silly lockFile 2b2e8f1b-inherits-2-0-1 inherits@2.0.1
1520 verbose lock inherits@2.0.1 /Users/osx/.npm/2b2e8f1b-inherits-2-0-1.lock
1521 verbose read json /Users/osx/.npm/inherits/2.0.1/package/package.json
1522 info preinstall fstream@0.1.25
1523 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/fstream/package.json
1524 verbose readDependencies using package.json deps
1525 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/fstream/package.json
1526 verbose readDependencies using package.json deps
1527 silly lockFile 2b2e8f1b-inherits-2-0-1 inherits@2.0.1
1528 silly lockFile 2b2e8f1b-inherits-2-0-1 inherits@2.0.1
1529 verbose cache add [ 'rimraf@2', null ]
1530 verbose cache add name=undefined spec="rimraf@2" args=["rimraf@2",null]
1531 verbose parsed url { protocol: null,
1531 verbose parsed url slashes: null,
1531 verbose parsed url auth: null,
1531 verbose parsed url host: null,
1531 verbose parsed url port: null,
1531 verbose parsed url hostname: null,
1531 verbose parsed url hash: null,
1531 verbose parsed url search: null,
1531 verbose parsed url query: null,
1531 verbose parsed url pathname: 'rimraf@2',
1531 verbose parsed url path: 'rimraf@2',
1531 verbose parsed url href: 'rimraf@2' }
1532 verbose cache add name="rimraf" spec="2" args=["rimraf","2"]
1533 verbose parsed url { protocol: null,
1533 verbose parsed url slashes: null,
1533 verbose parsed url auth: null,
1533 verbose parsed url host: null,
1533 verbose parsed url port: null,
1533 verbose parsed url hostname: null,
1533 verbose parsed url hash: null,
1533 verbose parsed url search: null,
1533 verbose parsed url query: null,
1533 verbose parsed url pathname: '2',
1533 verbose parsed url path: '2',
1533 verbose parsed url href: '2' }
1534 verbose addNamed [ 'rimraf', '2' ]
1535 verbose addNamed [ null, '>=2.0.0- <3.0.0-' ]
1536 silly lockFile 8c081391-rimraf-2 rimraf@2
1537 verbose lock rimraf@2 /Users/osx/.npm/8c081391-rimraf-2.lock
1538 verbose cache add [ 'mkdirp@0.3', null ]
1539 verbose cache add name=undefined spec="mkdirp@0.3" args=["mkdirp@0.3",null]
1540 verbose parsed url { protocol: null,
1540 verbose parsed url slashes: null,
1540 verbose parsed url auth: null,
1540 verbose parsed url host: null,
1540 verbose parsed url port: null,
1540 verbose parsed url hostname: null,
1540 verbose parsed url hash: null,
1540 verbose parsed url search: null,
1540 verbose parsed url query: null,
1540 verbose parsed url pathname: 'mkdirp@0.3',
1540 verbose parsed url path: 'mkdirp@0.3',
1540 verbose parsed url href: 'mkdirp@0.3' }
1541 verbose cache add name="mkdirp" spec="0.3" args=["mkdirp","0.3"]
1542 verbose parsed url { protocol: null,
1542 verbose parsed url slashes: null,
1542 verbose parsed url auth: null,
1542 verbose parsed url host: null,
1542 verbose parsed url port: null,
1542 verbose parsed url hostname: null,
1542 verbose parsed url hash: null,
1542 verbose parsed url search: null,
1542 verbose parsed url query: null,
1542 verbose parsed url pathname: '0.3',
1542 verbose parsed url path: '0.3',
1542 verbose parsed url href: '0.3' }
1543 verbose addNamed [ 'mkdirp', '0.3' ]
1544 verbose addNamed [ null, '>=0.3.0- <0.4.0-' ]
1545 silly lockFile b5c3810e-mkdirp-0-3 mkdirp@0.3
1546 verbose lock mkdirp@0.3 /Users/osx/.npm/b5c3810e-mkdirp-0-3.lock
1547 silly addNameRange { name: 'rimraf', range: '>=2.0.0- <3.0.0-', hasData: false }
1548 verbose cache add [ 'graceful-fs@~2.0.0', null ]
1549 verbose cache add name=undefined spec="graceful-fs@~2.0.0" args=["graceful-fs@~2.0.0",null]
1550 verbose parsed url { protocol: null,
1550 verbose parsed url slashes: null,
1550 verbose parsed url auth: null,
1550 verbose parsed url host: null,
1550 verbose parsed url port: null,
1550 verbose parsed url hostname: null,
1550 verbose parsed url hash: null,
1550 verbose parsed url search: null,
1550 verbose parsed url query: null,
1550 verbose parsed url pathname: 'graceful-fs@~2.0.0',
1550 verbose parsed url path: 'graceful-fs@~2.0.0',
1550 verbose parsed url href: 'graceful-fs@~2.0.0' }
1551 verbose cache add name="graceful-fs" spec="~2.0.0" args=["graceful-fs","~2.0.0"]
1552 verbose parsed url { protocol: null,
1552 verbose parsed url slashes: null,
1552 verbose parsed url auth: null,
1552 verbose parsed url host: null,
1552 verbose parsed url port: null,
1552 verbose parsed url hostname: null,
1552 verbose parsed url hash: null,
1552 verbose parsed url search: null,
1552 verbose parsed url query: null,
1552 verbose parsed url pathname: '~2.0.0',
1552 verbose parsed url path: '~2.0.0',
1552 verbose parsed url href: '~2.0.0' }
1553 verbose addNamed [ 'graceful-fs', '~2.0.0' ]
1554 verbose addNamed [ null, '>=2.0.0- <2.1.0-' ]
1555 silly lockFile 8863dcc9-graceful-fs-2-0-0 graceful-fs@~2.0.0
1556 verbose lock graceful-fs@~2.0.0 /Users/osx/.npm/8863dcc9-graceful-fs-2-0-0.lock
1557 silly addNameRange { name: 'mkdirp', range: '>=0.3.0- <0.4.0-', hasData: false }
1558 silly lockFile 1f7ff4de-inherits-2 inherits@2
1559 silly lockFile 1f7ff4de-inherits-2 inherits@2
1560 http 304 https://registry.npmjs.org/which
1561 silly registry.get cb [ 304,
1561 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:57 GMT',
1561 silly registry.get server: 'Apache',
1561 silly registry.get via: '1.1 varnish',
1561 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:57 GMT',
1561 silly registry.get 'cache-control': 'max-age=1',
1561 silly registry.get etag: '"4U42AUANZD43I26W7W04SHTG3"',
1561 silly registry.get 'x-served-by': 'cache-jfk1025-JFK',
1561 silly registry.get 'x-cache': 'HIT',
1561 silly registry.get 'x-cache-hits': '1',
1561 silly registry.get 'x-timer': 'S1401826557.020636,VS0,VE7',
1561 silly registry.get vary: 'Accept',
1561 silly registry.get 'content-length': '0',
1561 silly registry.get 'keep-alive': 'timeout=10, max=50',
1561 silly registry.get connection: 'Keep-Alive' } ]
1562 verbose etag which from cache
1563 verbose cache add [ 'inherits@~2.0.0', null ]
1564 verbose cache add name=undefined spec="inherits@~2.0.0" args=["inherits@~2.0.0",null]
1565 verbose parsed url { protocol: null,
1565 verbose parsed url slashes: null,
1565 verbose parsed url auth: null,
1565 verbose parsed url host: null,
1565 verbose parsed url port: null,
1565 verbose parsed url hostname: null,
1565 verbose parsed url hash: null,
1565 verbose parsed url search: null,
1565 verbose parsed url query: null,
1565 verbose parsed url pathname: 'inherits@~2.0.0',
1565 verbose parsed url path: 'inherits@~2.0.0',
1565 verbose parsed url href: 'inherits@~2.0.0' }
1566 verbose cache add name="inherits" spec="~2.0.0" args=["inherits","~2.0.0"]
1567 verbose parsed url { protocol: null,
1567 verbose parsed url slashes: null,
1567 verbose parsed url auth: null,
1567 verbose parsed url host: null,
1567 verbose parsed url port: null,
1567 verbose parsed url hostname: null,
1567 verbose parsed url hash: null,
1567 verbose parsed url search: null,
1567 verbose parsed url query: null,
1567 verbose parsed url pathname: '~2.0.0',
1567 verbose parsed url path: '~2.0.0',
1567 verbose parsed url href: '~2.0.0' }
1568 verbose addNamed [ 'inherits', '~2.0.0' ]
1569 verbose addNamed [ null, '>=2.0.0- <2.1.0-' ]
1570 silly lockFile e2566bb4-inherits-2-0-0 inherits@~2.0.0
1571 verbose lock inherits@~2.0.0 /Users/osx/.npm/e2566bb4-inherits-2-0-0.lock
1572 silly addNameRange { name: 'graceful-fs',
1572 silly addNameRange range: '>=2.0.0- <2.1.0-',
1572 silly addNameRange hasData: false }
1573 silly addNameRange { name: 'inherits', range: '>=2.0.0- <2.1.0-', hasData: false }
1574 verbose url raw rimraf
1575 verbose url resolving [ 'https://registry.npmjs.org/', './rimraf' ]
1576 verbose url resolved https://registry.npmjs.org/rimraf
1577 info trying registry request attempt 1 at 16:15:55
1578 verbose etag "1STEDQ3FCRDH7RYNOV8FGGQ3J"
1579 http GET https://registry.npmjs.org/rimraf
1580 verbose url raw mkdirp
1581 verbose url resolving [ 'https://registry.npmjs.org/', './mkdirp' ]
1582 verbose url resolved https://registry.npmjs.org/mkdirp
1583 info trying registry request attempt 1 at 16:15:55
1584 verbose etag "5P8P29TVEQ554BHA2UQ3XQCA3"
1585 http GET https://registry.npmjs.org/mkdirp
1586 verbose url raw graceful-fs
1587 verbose url resolving [ 'https://registry.npmjs.org/', './graceful-fs' ]
1588 verbose url resolved https://registry.npmjs.org/graceful-fs
1589 info trying registry request attempt 1 at 16:15:55
1590 verbose etag "435YWY1ZLVPWPRJ03GQSI72GL"
1591 http GET https://registry.npmjs.org/graceful-fs
1592 verbose registry.get inherits not expired, no request
1593 silly addNameRange number 2 { name: 'inherits', range: '>=2.0.0- <2.1.0-', hasData: true }
1594 silly addNameRange versions [ 'inherits', [ '1.0.0', '2.0.0', '2.0.1' ] ]
1595 verbose addNamed [ 'inherits', '2.0.1' ]
1596 verbose addNamed [ '2.0.1', '2.0.1' ]
1597 silly lockFile 2b2e8f1b-inherits-2-0-1 inherits@2.0.1
1598 verbose lock inherits@2.0.1 /Users/osx/.npm/2b2e8f1b-inherits-2-0-1.lock
1599 silly addNameRange number 2 { name: 'which', range: '>=1.0.0- <1.1.0-', hasData: true }
1600 silly addNameRange versions [ 'which', [ '1.0.0', '1.0.1', '1.0.2', '1.0.3', '1.0.5' ] ]
1601 verbose addNamed [ 'which', '1.0.5' ]
1602 verbose addNamed [ '1.0.5', '1.0.5' ]
1603 silly lockFile 4aed4494-which-1-0-5 which@1.0.5
1604 verbose lock which@1.0.5 /Users/osx/.npm/4aed4494-which-1-0-5.lock
1605 verbose from cache /Users/osx/.npm/inherits/2.0.1/package/package.json
1606 silly lockFile 2b2e8f1b-inherits-2-0-1 inherits@2.0.1
1607 silly lockFile 2b2e8f1b-inherits-2-0-1 inherits@2.0.1
1608 verbose read json /Users/osx/.npm/which/1.0.5/package/package.json
1609 silly lockFile e2566bb4-inherits-2-0-0 inherits@~2.0.0
1610 silly lockFile e2566bb4-inherits-2-0-0 inherits@~2.0.0
1611 http 304 https://registry.npmjs.org/mkdirp
1612 silly registry.get cb [ 304,
1612 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:57 GMT',
1612 silly registry.get server: 'Apache',
1612 silly registry.get via: '1.1 varnish',
1612 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:57 GMT',
1612 silly registry.get 'cache-control': 'max-age=1',
1612 silly registry.get etag: '"5P8P29TVEQ554BHA2UQ3XQCA3"',
1612 silly registry.get 'x-served-by': 'cache-jfk1022-JFK',
1612 silly registry.get 'x-cache': 'HIT',
1612 silly registry.get 'x-cache-hits': '1',
1612 silly registry.get 'x-timer': 'S1401826557.030560,VS0,VE6',
1612 silly registry.get vary: 'Accept',
1612 silly registry.get 'content-length': '0',
1612 silly registry.get 'keep-alive': 'timeout=10, max=49',
1612 silly registry.get connection: 'Keep-Alive' } ]
1613 verbose etag mkdirp from cache
1614 silly lockFile 4aed4494-which-1-0-5 which@1.0.5
1615 silly lockFile 4aed4494-which-1-0-5 which@1.0.5
1616 silly lockFile 2f036e04-which-1-0-x which@1.0.x
1617 silly lockFile 2f036e04-which-1-0-x which@1.0.x
1618 silly addNameRange number 2 { name: 'mkdirp', range: '>=0.3.0- <0.4.0-', hasData: true }
1619 silly addNameRange versions [ 'mkdirp',
1619 silly addNameRange [ '0.0.1',
1619 silly addNameRange '0.0.2',
1619 silly addNameRange '0.0.3',
1619 silly addNameRange '0.0.4',
1619 silly addNameRange '0.0.5',
1619 silly addNameRange '0.0.6',
1619 silly addNameRange '0.0.7',
1619 silly addNameRange '0.1.0',
1619 silly addNameRange '0.2.0',
1619 silly addNameRange '0.2.1',
1619 silly addNameRange '0.2.2',
1619 silly addNameRange '0.3.0',
1619 silly addNameRange '0.3.1',
1619 silly addNameRange '0.3.2',
1619 silly addNameRange '0.3.3',
1619 silly addNameRange '0.3.4',
1619 silly addNameRange '0.3.5',
1619 silly addNameRange '0.4.0',
1619 silly addNameRange '0.4.1',
1619 silly addNameRange '0.4.2',
1619 silly addNameRange '0.5.0' ] ]
1620 verbose addNamed [ 'mkdirp', '0.3.5' ]
1621 verbose addNamed [ '0.3.5', '0.3.5' ]
1622 silly lockFile 67d2df2a-mkdirp-0-3-5 mkdirp@0.3.5
1623 verbose lock mkdirp@0.3.5 /Users/osx/.npm/67d2df2a-mkdirp-0-3-5.lock
1624 verbose read json /Users/osx/.npm/mkdirp/0.3.5/package/package.json
1625 silly lockFile 67d2df2a-mkdirp-0-3-5 mkdirp@0.3.5
1626 silly lockFile 67d2df2a-mkdirp-0-3-5 mkdirp@0.3.5
1627 http 304 https://registry.npmjs.org/qs
1628 silly registry.get cb [ 304,
1628 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:57 GMT',
1628 silly registry.get server: 'Apache',
1628 silly registry.get via: '1.1 varnish',
1628 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:57 GMT',
1628 silly registry.get 'cache-control': 'max-age=1',
1628 silly registry.get etag: '"EY4LXYYQ4LWO235OEZP0WY4OH"',
1628 silly registry.get 'x-served-by': 'cache-jfk1025-JFK',
1628 silly registry.get 'x-cache': 'HIT',
1628 silly registry.get 'x-cache-hits': '1',
1628 silly registry.get 'x-timer': 'S1401826557.042192,VS0,VE7',
1628 silly registry.get vary: 'Accept',
1628 silly registry.get 'content-length': '0',
1628 silly registry.get 'keep-alive': 'timeout=10, max=49',
1628 silly registry.get connection: 'Keep-Alive' } ]
1629 verbose etag qs from cache
1630 silly lockFile 6d3723ce-mkdirp-0-3-x mkdirp@0.3.x
1631 silly lockFile 6d3723ce-mkdirp-0-3-x mkdirp@0.3.x
1632 silly addNameRange number 2 { name: 'qs', range: '>=0.6.0- <0.7.0-', hasData: true }
1633 silly addNameRange versions [ 'qs',
1633 silly addNameRange [ '0.0.1',
1633 silly addNameRange '0.0.2',
1633 silly addNameRange '0.0.3',
1633 silly addNameRange '0.0.4',
1633 silly addNameRange '0.0.5',
1633 silly addNameRange '0.0.6',
1633 silly addNameRange '0.0.7',
1633 silly addNameRange '0.1.0',
1633 silly addNameRange '0.2.0',
1633 silly addNameRange '0.3.0',
1633 silly addNameRange '0.3.1',
1633 silly addNameRange '0.3.2',
1633 silly addNameRange '0.4.0',
1633 silly addNameRange '0.4.1',
1633 silly addNameRange '0.4.2',
1633 silly addNameRange '0.5.0',
1633 silly addNameRange '0.5.1',
1633 silly addNameRange '0.5.2',
1633 silly addNameRange '0.5.3',
1633 silly addNameRange '0.5.4',
1633 silly addNameRange '0.5.5',
1633 silly addNameRange '0.5.6',
1633 silly addNameRange '0.6.0',
1633 silly addNameRange '0.6.1',
1633 silly addNameRange '0.6.2',
1633 silly addNameRange '0.6.3',
1633 silly addNameRange '0.6.4',
1633 silly addNameRange '0.6.5',
1633 silly addNameRange '0.6.6' ] ]
1634 verbose addNamed [ 'qs', '0.6.6' ]
1635 verbose addNamed [ '0.6.6', '0.6.6' ]
1636 silly lockFile b8bccda2-qs-0-6-6 qs@0.6.6
1637 verbose lock qs@0.6.6 /Users/osx/.npm/b8bccda2-qs-0-6-6.lock
1638 verbose read json /Users/osx/.npm/qs/0.6.6/package/package.json
1639 silly lockFile b8bccda2-qs-0-6-6 qs@0.6.6
1640 silly lockFile b8bccda2-qs-0-6-6 qs@0.6.6
1641 silly lockFile 222bee9e-qs-0-6-0 qs@~0.6.0
1642 silly lockFile 222bee9e-qs-0-6-0 qs@~0.6.0
1643 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/nodejitsu-api/package.json
1644 silly lockFile ed76441e-jitsu-node-modules-nodejitsu-api /usr/local/lib/node_modules/jitsu/node_modules/nodejitsu-api
1645 silly lockFile ed76441e-jitsu-node-modules-nodejitsu-api /usr/local/lib/node_modules/jitsu/node_modules/nodejitsu-api
1646 silly lockFile f7dd9685--nodejitsu-api-0-6-3-package-tgz /Users/osx/.npm/nodejitsu-api/0.6.3/package.tgz
1647 silly lockFile f7dd9685--nodejitsu-api-0-6-3-package-tgz /Users/osx/.npm/nodejitsu-api/0.6.3/package.tgz
1648 info preinstall nodejitsu-api@0.6.3
1649 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/nodejitsu-api/package.json
1650 verbose readDependencies using package.json deps
1651 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/nodejitsu-api/package.json
1652 verbose readDependencies using package.json deps
1653 verbose cache add [ 'request@2.25.0', null ]
1654 verbose cache add name=undefined spec="request@2.25.0" args=["request@2.25.0",null]
1655 verbose parsed url { protocol: null,
1655 verbose parsed url slashes: null,
1655 verbose parsed url auth: null,
1655 verbose parsed url host: null,
1655 verbose parsed url port: null,
1655 verbose parsed url hostname: null,
1655 verbose parsed url hash: null,
1655 verbose parsed url search: null,
1655 verbose parsed url query: null,
1655 verbose parsed url pathname: 'request@2.25.0',
1655 verbose parsed url path: 'request@2.25.0',
1655 verbose parsed url href: 'request@2.25.0' }
1656 verbose cache add name="request" spec="2.25.0" args=["request","2.25.0"]
1657 verbose parsed url { protocol: null,
1657 verbose parsed url slashes: null,
1657 verbose parsed url auth: null,
1657 verbose parsed url host: null,
1657 verbose parsed url port: null,
1657 verbose parsed url hostname: null,
1657 verbose parsed url hash: null,
1657 verbose parsed url search: null,
1657 verbose parsed url query: null,
1657 verbose parsed url pathname: '2.25.0',
1657 verbose parsed url path: '2.25.0',
1657 verbose parsed url href: '2.25.0' }
1658 verbose addNamed [ 'request', '2.25.0' ]
1659 verbose addNamed [ '2.25.0', '2.25.0' ]
1660 silly lockFile 7f4d00a1-request-2-25-0 request@2.25.0
1661 verbose lock request@2.25.0 /Users/osx/.npm/7f4d00a1-request-2-25-0.lock
1662 http 304 https://registry.npmjs.org/json-stringify-safe
1663 silly registry.get cb [ 304,
1663 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:57 GMT',
1663 silly registry.get server: 'Apache',
1663 silly registry.get via: '1.1 varnish',
1663 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:57 GMT',
1663 silly registry.get 'cache-control': 'max-age=1',
1663 silly registry.get etag: '"DCHF000C6O2GP81GD95QO2ILB"',
1663 silly registry.get 'x-served-by': 'cache-jfk1022-JFK',
1663 silly registry.get 'x-cache': 'HIT',
1663 silly registry.get 'x-cache-hits': '1',
1663 silly registry.get 'x-timer': 'S1401826557.052497,VS0,VE6',
1663 silly registry.get vary: 'Accept',
1663 silly registry.get 'content-length': '0',
1663 silly registry.get 'keep-alive': 'timeout=10, max=48',
1663 silly registry.get connection: 'Keep-Alive' } ]
1664 verbose etag json-stringify-safe from cache
1665 verbose cache add [ 'preacher-api@0.1.x', null ]
1666 verbose cache add name=undefined spec="preacher-api@0.1.x" args=["preacher-api@0.1.x",null]
1667 verbose parsed url { protocol: null,
1667 verbose parsed url slashes: null,
1667 verbose parsed url auth: null,
1667 verbose parsed url host: null,
1667 verbose parsed url port: null,
1667 verbose parsed url hostname: null,
1667 verbose parsed url hash: null,
1667 verbose parsed url search: null,
1667 verbose parsed url query: null,
1667 verbose parsed url pathname: 'preacher-api@0.1.x',
1667 verbose parsed url path: 'preacher-api@0.1.x',
1667 verbose parsed url href: 'preacher-api@0.1.x' }
1668 verbose cache add name="preacher-api" spec="0.1.x" args=["preacher-api","0.1.x"]
1669 verbose parsed url { protocol: null,
1669 verbose parsed url slashes: null,
1669 verbose parsed url auth: null,
1669 verbose parsed url host: null,
1669 verbose parsed url port: null,
1669 verbose parsed url hostname: null,
1669 verbose parsed url hash: null,
1669 verbose parsed url search: null,
1669 verbose parsed url query: null,
1669 verbose parsed url pathname: '0.1.x',
1669 verbose parsed url path: '0.1.x',
1669 verbose parsed url href: '0.1.x' }
1670 verbose addNamed [ 'preacher-api', '0.1.x' ]
1671 verbose addNamed [ null, '>=0.1.0- <0.2.0-' ]
1672 silly lockFile 9b1f3741-preacher-api-0-1-x preacher-api@0.1.x
1673 verbose lock preacher-api@0.1.x /Users/osx/.npm/9b1f3741-preacher-api-0-1-x.lock
1674 silly addNameRange { name: 'preacher-api',
1674 silly addNameRange range: '>=0.1.0- <0.2.0-',
1674 silly addNameRange hasData: false }
1675 verbose url raw request/2.25.0
1676 verbose url resolving [ 'https://registry.npmjs.org/', './request/2.25.0' ]
1677 verbose url resolved https://registry.npmjs.org/request/2.25.0
1678 info trying registry request attempt 1 at 16:15:55
1679 verbose etag "4DH0OSB4P0PUZXHA6YUPMLYTV"
1680 http GET https://registry.npmjs.org/request/2.25.0
1681 verbose url raw preacher-api
1682 verbose url resolving [ 'https://registry.npmjs.org/', './preacher-api' ]
1683 verbose url resolved https://registry.npmjs.org/preacher-api
1684 info trying registry request attempt 1 at 16:15:55
1685 verbose etag "9KL0BIXLGN6OWPA1FJR4UMM8S"
1686 http GET https://registry.npmjs.org/preacher-api
1687 silly addNameRange number 2 { name: 'json-stringify-safe',
1687 silly addNameRange range: '>=5.0.0- <5.1.0-',
1687 silly addNameRange hasData: true }
1688 silly addNameRange versions [ 'json-stringify-safe',
1688 silly addNameRange [ '2.0.0', '3.0.0', '4.0.0', '5.0.0' ] ]
1689 verbose addNamed [ 'json-stringify-safe', '5.0.0' ]
1690 verbose addNamed [ '5.0.0', '5.0.0' ]
1691 silly lockFile 1d9ebe76-json-stringify-safe-5-0-0 json-stringify-safe@5.0.0
1692 verbose lock json-stringify-safe@5.0.0 /Users/osx/.npm/1d9ebe76-json-stringify-safe-5-0-0.lock
1693 verbose read json /Users/osx/.npm/json-stringify-safe/5.0.0/package/package.json
1694 silly lockFile 1d9ebe76-json-stringify-safe-5-0-0 json-stringify-safe@5.0.0
1695 silly lockFile 1d9ebe76-json-stringify-safe-5-0-0 json-stringify-safe@5.0.0
1696 silly lockFile 063b1a01-json-stringify-safe-5-0-0 json-stringify-safe@~5.0.0
1697 silly lockFile 063b1a01-json-stringify-safe-5-0-0 json-stringify-safe@~5.0.0
1698 http 304 https://registry.npmjs.org/forever-agent
1699 silly registry.get cb [ 304,
1699 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:57 GMT',
1699 silly registry.get server: 'Apache',
1699 silly registry.get via: '1.1 varnish',
1699 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:57 GMT',
1699 silly registry.get 'cache-control': 'max-age=1',
1699 silly registry.get etag: '"CYWZJILR3M157HRX9R094YZJP"',
1699 silly registry.get 'x-served-by': 'cache-jfk1025-JFK',
1699 silly registry.get 'x-cache': 'HIT',
1699 silly registry.get 'x-cache-hits': '1',
1699 silly registry.get 'x-timer': 'S1401826557.064018,VS0,VE6',
1699 silly registry.get vary: 'Accept',
1699 silly registry.get 'content-length': '0',
1699 silly registry.get 'keep-alive': 'timeout=10, max=48',
1699 silly registry.get connection: 'Keep-Alive' } ]
1700 verbose etag forever-agent from cache
1701 silly addNameRange number 2 { name: 'forever-agent',
1701 silly addNameRange range: '>=0.5.0- <0.6.0-',
1701 silly addNameRange hasData: true }
1702 silly addNameRange versions [ 'forever-agent',
1702 silly addNameRange [ '0.2.0', '0.3.0', '0.4.0', '0.5.0', '0.5.2' ] ]
1703 verbose addNamed [ 'forever-agent', '0.5.2' ]
1704 verbose addNamed [ '0.5.2', '0.5.2' ]
1705 silly lockFile 20c7a74d-forever-agent-0-5-2 forever-agent@0.5.2
1706 verbose lock forever-agent@0.5.2 /Users/osx/.npm/20c7a74d-forever-agent-0-5-2.lock
1707 verbose read json /Users/osx/.npm/forever-agent/0.5.2/package/package.json
1708 silly lockFile 20c7a74d-forever-agent-0-5-2 forever-agent@0.5.2
1709 silly lockFile 20c7a74d-forever-agent-0-5-2 forever-agent@0.5.2
1710 silly lockFile fa463915-forever-agent-0-5-0 forever-agent@~0.5.0
1711 silly lockFile fa463915-forever-agent-0-5-0 forever-agent@~0.5.0
1712 http 304 https://registry.npmjs.org/node-uuid
1713 silly registry.get cb [ 304,
1713 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:57 GMT',
1713 silly registry.get server: 'Apache',
1713 silly registry.get via: '1.1 varnish',
1713 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:57 GMT',
1713 silly registry.get 'cache-control': 'max-age=1',
1713 silly registry.get etag: '"C0S2QQR3MCP3EXXIACMHQMACU"',
1713 silly registry.get 'x-served-by': 'cache-jfk1022-JFK',
1713 silly registry.get 'x-cache': 'HIT',
1713 silly registry.get 'x-cache-hits': '1',
1713 silly registry.get 'x-timer': 'S1401826557.070567,VS0,VE7',
1713 silly registry.get vary: 'Accept',
1713 silly registry.get 'content-length': '0',
1713 silly registry.get 'keep-alive': 'timeout=10, max=47',
1713 silly registry.get connection: 'Keep-Alive' } ]
1714 verbose etag node-uuid from cache
1715 silly addNameRange number 2 { name: 'node-uuid', range: '>=1.4.0- <1.5.0-', hasData: true }
1716 silly addNameRange versions [ 'node-uuid',
1716 silly addNameRange [ '1.2.0',
1716 silly addNameRange '1.3.0',
1716 silly addNameRange '1.3.1',
1716 silly addNameRange '1.3.2',
1716 silly addNameRange '1.1.0',
1716 silly addNameRange '1.0.0',
1716 silly addNameRange '1.3.3',
1716 silly addNameRange '1.4.0',
1716 silly addNameRange '1.4.1' ] ]
1717 verbose addNamed [ 'node-uuid', '1.4.1' ]
1718 verbose addNamed [ '1.4.1', '1.4.1' ]
1719 silly lockFile 7c2028cd-node-uuid-1-4-1 node-uuid@1.4.1
1720 verbose lock node-uuid@1.4.1 /Users/osx/.npm/7c2028cd-node-uuid-1-4-1.lock
1721 verbose read json /Users/osx/.npm/node-uuid/1.4.1/package/package.json
1722 silly lockFile 7c2028cd-node-uuid-1-4-1 node-uuid@1.4.1
1723 silly lockFile 7c2028cd-node-uuid-1-4-1 node-uuid@1.4.1
1724 silly lockFile f662725f-node-uuid-1-4-0 node-uuid@~1.4.0
1725 silly lockFile f662725f-node-uuid-1-4-0 node-uuid@~1.4.0
1726 http 304 https://registry.npmjs.org/mime
1727 silly registry.get cb [ 304,
1727 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:57 GMT',
1727 silly registry.get server: 'Apache',
1727 silly registry.get via: '1.1 varnish',
1727 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:57 GMT',
1727 silly registry.get 'cache-control': 'max-age=1',
1727 silly registry.get etag: '"F4V2UYXEEHA5JF6J8PG0TLDQG"',
1727 silly registry.get 'x-served-by': 'cache-jfk1025-JFK',
1727 silly registry.get 'x-cache': 'HIT',
1727 silly registry.get 'x-cache-hits': '1',
1727 silly registry.get 'x-timer': 'S1401826557.082351,VS0,VE7',
1727 silly registry.get vary: 'Accept',
1727 silly registry.get 'content-length': '0',
1727 silly registry.get 'keep-alive': 'timeout=10, max=47',
1727 silly registry.get connection: 'Keep-Alive' } ]
1728 verbose etag mime from cache
1729 silly addNameRange number 2 { name: 'mime', range: '>=1.2.9- <1.3.0-', hasData: true }
1730 silly addNameRange versions [ 'mime',
1730 silly addNameRange [ '1.0.0',
1730 silly addNameRange '1.1.0',
1730 silly addNameRange '1.2.1',
1730 silly addNameRange '1.2.2',
1730 silly addNameRange '1.2.3',
1730 silly addNameRange '1.2.4',
1730 silly addNameRange '1.2.5',
1730 silly addNameRange '1.2.6',
1730 silly addNameRange '1.2.7',
1730 silly addNameRange '1.2.8',
1730 silly addNameRange '1.2.9',
1730 silly addNameRange '1.2.10',
1730 silly addNameRange '1.2.11' ] ]
1731 verbose addNamed [ 'mime', '1.2.11' ]
1732 verbose addNamed [ '1.2.11', '1.2.11' ]
1733 silly lockFile c4b0741f-mime-1-2-11 mime@1.2.11
1734 verbose lock mime@1.2.11 /Users/osx/.npm/c4b0741f-mime-1-2-11.lock
1735 verbose read json /Users/osx/.npm/mime/1.2.11/package/package.json
1736 silly lockFile c4b0741f-mime-1-2-11 mime@1.2.11
1737 silly lockFile c4b0741f-mime-1-2-11 mime@1.2.11
1738 silly lockFile ccf24a67-mime-1-2-9 mime@~1.2.9
1739 silly lockFile ccf24a67-mime-1-2-9 mime@~1.2.9
1740 http 304 https://registry.npmjs.org/form-data
1741 silly registry.get cb [ 304,
1741 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:57 GMT',
1741 silly registry.get server: 'Apache',
1741 silly registry.get via: '1.1 varnish',
1741 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:57 GMT',
1741 silly registry.get 'cache-control': 'max-age=1',
1741 silly registry.get etag: '"CMVTBJWZS8M22B5SOYPCTL1GD"',
1741 silly registry.get 'x-served-by': 'cache-jfk1022-JFK',
1741 silly registry.get 'x-cache': 'HIT',
1741 silly registry.get 'x-cache-hits': '1',
1741 silly registry.get 'x-timer': 'S1401826557.092619,VS0,VE6',
1741 silly registry.get vary: 'Accept',
1741 silly registry.get 'content-length': '0',
1741 silly registry.get 'keep-alive': 'timeout=10, max=46',
1741 silly registry.get connection: 'Keep-Alive' } ]
1742 verbose etag form-data from cache
1743 silly addNameRange number 2 { name: 'form-data', range: '>=0.1.0- <0.2.0-', hasData: true }
1744 silly addNameRange versions [ 'form-data',
1744 silly addNameRange [ '0.0.0',
1744 silly addNameRange '0.0.2',
1744 silly addNameRange '0.0.3',
1744 silly addNameRange '0.0.4',
1744 silly addNameRange '0.0.5',
1744 silly addNameRange '0.0.6',
1744 silly addNameRange '0.0.7',
1744 silly addNameRange '0.0.8',
1744 silly addNameRange '0.0.9',
1744 silly addNameRange '0.0.10',
1744 silly addNameRange '0.1.0',
1744 silly addNameRange '0.1.1',
1744 silly addNameRange '0.1.2',
1744 silly addNameRange '0.1.3' ] ]
1745 verbose addNamed [ 'form-data', '0.1.3' ]
1746 verbose addNamed [ '0.1.3', '0.1.3' ]
1747 silly lockFile 7a933725-form-data-0-1-3 form-data@0.1.3
1748 verbose lock form-data@0.1.3 /Users/osx/.npm/7a933725-form-data-0-1-3.lock
1749 verbose read json /Users/osx/.npm/form-data/0.1.3/package/package.json
1750 silly lockFile 7a933725-form-data-0-1-3 form-data@0.1.3
1751 silly lockFile 7a933725-form-data-0-1-3 form-data@0.1.3
1752 silly lockFile 26aa13f4-form-data-0-1-0 form-data@~0.1.0
1753 silly lockFile 26aa13f4-form-data-0-1-0 form-data@~0.1.0
1754 http 304 https://registry.npmjs.org/tunnel-agent
1755 silly registry.get cb [ 304,
1755 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:57 GMT',
1755 silly registry.get server: 'Apache',
1755 silly registry.get via: '1.1 varnish',
1755 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:57 GMT',
1755 silly registry.get 'cache-control': 'max-age=1',
1755 silly registry.get etag: '"4XEKZRB2KFYOS7X2FPWBM4UTK"',
1755 silly registry.get 'x-served-by': 'cache-jfk1025-JFK',
1755 silly registry.get 'x-cache': 'HIT',
1755 silly registry.get 'x-cache-hits': '1',
1755 silly registry.get 'x-timer': 'S1401826557.104426,VS0,VE13',
1755 silly registry.get vary: 'Accept',
1755 silly registry.get 'content-length': '0',
1755 silly registry.get 'keep-alive': 'timeout=10, max=46',
1755 silly registry.get connection: 'Keep-Alive' } ]
1756 verbose etag tunnel-agent from cache
1757 silly addNameRange number 2 { name: 'tunnel-agent',
1757 silly addNameRange range: '>=0.3.0- <0.4.0-',
1757 silly addNameRange hasData: true }
1758 silly addNameRange versions [ 'tunnel-agent', [ '0.2.0', '0.3.0', '0.4.0' ] ]
1759 verbose addNamed [ 'tunnel-agent', '0.3.0' ]
1760 verbose addNamed [ '0.3.0', '0.3.0' ]
1761 silly lockFile d054959a-tunnel-agent-0-3-0 tunnel-agent@0.3.0
1762 verbose lock tunnel-agent@0.3.0 /Users/osx/.npm/d054959a-tunnel-agent-0-3-0.lock
1763 http 304 https://registry.npmjs.org/http-signature
1764 silly registry.get cb [ 304,
1764 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:57 GMT',
1764 silly registry.get server: 'Apache',
1764 silly registry.get via: '1.1 varnish',
1764 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:57 GMT',
1764 silly registry.get 'cache-control': 'max-age=1',
1764 silly registry.get etag: '"6ZB1ETGRW1IRSY4JIA0Y1E3B2"',
1764 silly registry.get 'x-served-by': 'cache-jfk1022-JFK',
1764 silly registry.get 'x-cache': 'HIT',
1764 silly registry.get 'x-cache-hits': '1',
1764 silly registry.get 'x-timer': 'S1401826557.110724,VS0,VE6',
1764 silly registry.get vary: 'Accept',
1764 silly registry.get 'content-length': '0',
1764 silly registry.get 'keep-alive': 'timeout=10, max=45',
1764 silly registry.get connection: 'Keep-Alive' } ]
1765 verbose etag http-signature from cache
1766 verbose read json /Users/osx/.npm/tunnel-agent/0.3.0/package/package.json
1767 silly addNameRange number 2 { name: 'http-signature',
1767 silly addNameRange range: '>=0.10.0- <0.11.0-',
1767 silly addNameRange hasData: true }
1768 silly addNameRange versions [ 'http-signature',
1768 silly addNameRange [ '0.9.0',
1768 silly addNameRange '0.9.2',
1768 silly addNameRange '0.9.3',
1768 silly addNameRange '0.9.4',
1768 silly addNameRange '0.9.5',
1768 silly addNameRange '0.9.6',
1768 silly addNameRange '0.9.7',
1768 silly addNameRange '0.9.8',
1768 silly addNameRange '0.9.9',
1768 silly addNameRange '0.9.10',
1768 silly addNameRange '0.9.11',
1768 silly addNameRange '0.10.0' ] ]
1769 verbose addNamed [ 'http-signature', '0.10.0' ]
1770 verbose addNamed [ '0.10.0', '0.10.0' ]
1771 silly lockFile f628681c-http-signature-0-10-0 http-signature@0.10.0
1772 verbose lock http-signature@0.10.0 /Users/osx/.npm/f628681c-http-signature-0-10-0.lock
1773 silly lockFile d054959a-tunnel-agent-0-3-0 tunnel-agent@0.3.0
1774 silly lockFile d054959a-tunnel-agent-0-3-0 tunnel-agent@0.3.0
1775 verbose read json /Users/osx/.npm/http-signature/0.10.0/package/package.json
1776 silly lockFile e5681eda-tunnel-agent-0-3-0 tunnel-agent@~0.3.0
1777 silly lockFile e5681eda-tunnel-agent-0-3-0 tunnel-agent@~0.3.0
1778 silly lockFile f628681c-http-signature-0-10-0 http-signature@0.10.0
1779 silly lockFile f628681c-http-signature-0-10-0 http-signature@0.10.0
1780 silly lockFile 8170f292-http-signature-0-10-0 http-signature@~0.10.0
1781 silly lockFile 8170f292-http-signature-0-10-0 http-signature@~0.10.0
1782 http 304 https://registry.npmjs.org/prompt
1783 silly registry.get cb [ 304,
1783 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:56 GMT',
1783 silly registry.get server: 'Apache',
1783 silly registry.get via: '1.1 varnish',
1783 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:57 GMT',
1783 silly registry.get 'cache-control': 'max-age=1',
1783 silly registry.get etag: '"2MINEJXH3IMFIP9823CQFIM06"',
1783 silly registry.get 'x-served-by': 'cache-jfk1029-JFK',
1783 silly registry.get 'x-cache': 'MISS',
1783 silly registry.get 'x-cache-hits': '0',
1783 silly registry.get 'x-timer': 'S1401826556.991992,VS0,VE136',
1783 silly registry.get vary: 'Accept',
1783 silly registry.get 'content-length': '0',
1783 silly registry.get 'keep-alive': 'timeout=10, max=50',
1783 silly registry.get connection: 'Keep-Alive' } ]
1784 verbose etag prompt from cache
1785 silly addNameRange number 2 { name: 'prompt', range: '', hasData: true }
1786 silly addNameRange versions [ 'prompt',
1786 silly addNameRange [ '0.0.1',
1786 silly addNameRange '0.0.2',
1786 silly addNameRange '0.0.3',
1786 silly addNameRange '0.0.4',
1786 silly addNameRange '0.1.0',
1786 silly addNameRange '0.1.1',
1786 silly addNameRange '0.1.2',
1786 silly addNameRange '0.1.3',
1786 silly addNameRange '0.1.4',
1786 silly addNameRange '0.1.5',
1786 silly addNameRange '0.1.7',
1786 silly addNameRange '0.1.8',
1786 silly addNameRange '0.1.9',
1786 silly addNameRange '0.1.10',
1786 silly addNameRange '0.1.11',
1786 silly addNameRange '0.1.12',
1786 silly addNameRange '0.2.0',
1786 silly addNameRange '0.2.1',
1786 silly addNameRange '0.2.2',
1786 silly addNameRange '0.2.3',
1786 silly addNameRange '0.2.4',
1786 silly addNameRange '0.2.5',
1786 silly addNameRange '0.2.6',
1786 silly addNameRange '0.2.7',
1786 silly addNameRange '0.2.8',
1786 silly addNameRange '0.2.9',
1786 silly addNameRange '0.2.10',
1786 silly addNameRange '0.2.11',
1786 silly addNameRange '0.2.12',
1786 silly addNameRange '0.2.13' ] ]
1787 verbose addNamed [ 'prompt', '0.2.13' ]
1788 verbose addNamed [ '0.2.13', '0.2.13' ]
1789 silly lockFile c680aba2-prompt-0-2-13 prompt@0.2.13
1790 verbose lock prompt@0.2.13 /Users/osx/.npm/c680aba2-prompt-0-2-13.lock
1791 verbose read json /Users/osx/.npm/prompt/0.2.13/package/package.json
1792 silly lockFile c680aba2-prompt-0-2-13 prompt@0.2.13
1793 silly lockFile c680aba2-prompt-0-2-13 prompt@0.2.13
1794 silly lockFile 7abdc580-prompt prompt@*
1795 silly lockFile 7abdc580-prompt prompt@*
1796 silly resolved [ { name: 'prompt',
1796 silly resolved description: 'A beautiful command-line prompt for node.js',
1796 silly resolved version: '0.2.13',
1796 silly resolved author: { name: 'Nodejitsu Inc.', email: 'info@nodejitsu.com' },
1796 silly resolved maintainers: [ [Object], [Object] ],
1796 silly resolved repository: { type: 'git', url: 'http://github.com/flatiron/prompt.git' },
1796 silly resolved dependencies:
1796 silly resolved { pkginfo: '0.x.x',
1796 silly resolved read: '1.0.x',
1796 silly resolved revalidator: '0.1.x',
1796 silly resolved utile: '0.2.x',
1796 silly resolved winston: '0.6.x' },
1796 silly resolved devDependencies: { vows: '0.7.0' },
1796 silly resolved main: './lib/prompt',
1796 silly resolved scripts:
1796 silly resolved { test: 'vows test/prompt-test.js --spec',
1796 silly resolved 'test-all': 'vows --spec' },
1796 silly resolved engines: { node: '>= 0.6.6' },
1796 silly resolved readme: '# prompt [![Build Status](https://secure.travis-ci.org/flatiron/prompt.png)](http://travis-ci.org/flatiron/prompt)\n\nA beautiful command-line prompt for node.js\n\n## Features\n\n* prompts the user for input\n* supports validation and defaults\n* hides passwords\n\n## Usage\nUsing prompt is relatively straight forward. There are two core methods you should be aware of: `prompt.get()` and `prompt.addProperties()`. There methods take strings representing property names in addition to objects for complex property validation (and more). There are a number of [examples][0] that you should examine for detailed usage.\n\n### Getting Basic Prompt Information\nGetting started with `prompt` is easy. Lets take a look at `examples/simple-prompt.js`:\n\n``` js\n var prompt = require(\'prompt\');\n\n //\n // Start the prompt\n //\n prompt.start();\n\n //\n // Get two properties from the user: username and email\n //\n prompt.get([\'username\', \'email\'], function (err, result) {\n //\n // Log the results.\n //\n console.log(\'Command-line input received:\');\n console.log(\' username: \' + result.username);\n console.log(\' email: \' + result.email);\n });\n```\n\nThis will result in the following command-line output:\n\n```\n $ node examples/simple-prompt.js\n prompt: username: some-user\n prompt: email: some-user@some-place.org\n Command-line input received:\n username: some-user\n email: some-user@some-place.org\n```\n\n### Prompting with Validation, Default Values, and More (Complex Properties)\nIn addition to prompting the user with simple string prompts, there is a robust API for getting and validating complex information from a command-line prompt. Here\'s a quick sample:\n\n``` js\n var schema = {\n properties: {\n name: {\n pattern: /^[a-zA-Z\\s\\-]+$/,\n message: \'Name must be only letters, spaces, or dashes\',\n required: true\n },\n password: {\n hidden: true\n }\n }\n };\n\n //\n // Start the prompt\n //\n prompt.start();\n\n //\n // Get two properties from the user: email, password\n //\n prompt.get(schema, function (err, result) {\n //\n // Log the results.\n //\n console.log(\'Command-line input received:\');\n console.log(\' name: \' + result.name);\n console.log(\' password: \' + result.password);\n });\n```\n\nPretty easy right? The output from the above script is:\n\n```\n $ node examples/property-prompt.js\n prompt: name: nodejitsu000\n error: Invalid input for name\n error: Name must be only letters, spaces, or dashes\n prompt: name: Nodejitsu Inc\n prompt: password:\n Command-line input received:\n name: Nodejitsu Inc\n password: some-password\n```\n\n## Valid Property Settings\n`prompt` understands JSON-schema with a few extra parameters and uses [revalidator](https://github.com/flatiron/revalidator) for validation.\n\nHere\'s an overview of the properties that may be used for validation and prompting controls:\n\n``` js\n {\n description: \'Enter your password\', // Prompt displayed to the user. If not supplied name will be used.\n type: \'string\', // Specify the type of input to expect.\n pattern: /^\\w+$/, // Regular expression that input must be valid against.\n message: \'Password must be letters\', // Warning message to display if validation fails.\n hidden: true, // If true, characters entered will not be output to console.\n default: \'lamepassword\', // Default value to use if no value is entered.\n required: true // If true, value entered must be non-empty.\n before: function(value) { return \'v\' + value; } // Runs before node-prompt callbacks. It modifies user\'s input\n }\n```\n\nAlternatives to `pattern` include `format` and `conform`, as documented in [revalidator](https://github.com/flatiron/revalidator).\n\nUsing `type: \'array\'` has some special cases.\n\n- `description` will not work in the schema if `type: \'array\'` is defined.\n- `maxItems` takes precedence over `minItems`.\n- Arrays that do not have `maxItems` defined will require users to `SIGINT` (`^C`) before the array is ended.\n- If `SIGINT` (`^C`) is triggered before `minItems` is met, a validation error will appear. This will require users to `SIGEOF` (`^D`) to end the input.\n\nFor more information on things such as `maxItems` and `minItems`, refer to the [revalidator](https://github.com/flatiron/revalidator) repository.\n\n### Alternate Validation API:\n\nPrompt, in addition to iterating over JSON-Schema properties, will also happily iterate over an array of validation objects given an extra \'name\' property:\n\n```js\n var prompt = require(\'../lib/prompt\');\n\n //\n // Start the prompt\n //\n prompt.start();\n\n //\n // Get two properties from the user: username and password\n //\n prompt.get([{\n name: \'username\',\n required: true\n }, {\n name: \'password\',\n hidden: true,\n conform: function (value) {\n return true;\n }\n }], function (err, result) {\n //\n // Log the results.\n //\n console.log(\'Command-line input received:\');\n console.log(\' username: \' + result.username);\n console.log(\' password: \' + result.password);\n });\n```\n\n### Backward Compatibility\n\nNote that, while this structure is similar to that used by prompt 0.1.x, that the object properties use the same names as in JSON-Schema. prompt 0.2.x is backward compatible with prompt 0.1.x except for asynchronous validation.\n\n### Skipping Prompts\n\nSometimes power users may wish to skip promts and specify all data as command line options.\nif a value is set as a property of `prompt.override` prompt will use that instead of\nprompting the user.\n\n``` js\n //prompt-override.js\n\n var prompt = require(\'prompt\'),\n optimist = require(\'optimist\')\n\n //\n // set the overrides\n //\n prompt.override = optimist.argv\n\n //\n // Start the prompt\n //\n prompt.start();\n\n //\n // Get two properties from the user: username and email\n //\n prompt.get([\'username\', \'email\'], function (err, result) {\n //\n // Log the results.\n //\n console.log(\'Command-line input received:\');\n console.log(\' username: \' + result.username);\n console.log(\' email: \' + result.email);\n })\n\n //: node prompt-override.js --username USER --email EMAIL\n```\n\n\n### Adding Properties to an Object\nA common use-case for prompting users for data from the command-line is to extend or create a configuration object that is passed onto the entry-point method for your CLI tool. `prompt` exposes a convenience method for doing just this:\n\n``` js\n var obj = {\n password: \'lamepassword\',\n mindset: \'NY\'\n }\n\n //\n // Log the initial object.\n //\n console.log(\'Initial object to be extended:\');\n console.dir(obj);\n\n //\n // Add two properties to the empty object: username and email\n //\n prompt.addProperties(obj, [\'username\', \'email\'], function (err) {\n //\n // Log the results.\n //\n console.log(\'Updated object received:\');\n console.dir(obj);\n });\n```\n\n### Prompt history\nYou can use the `prompt.history()` method to get access to previous prompt input.\n\n``` js\n prompt.get([{\n name: \'name\',\n description: \'Your name\',\n type: \'string\',\n required: true\n }, {\n name: \'surname\',\n description: \'Your surname\',\n type: \'string\',\n required: true,\n message: \'Please dont use the demo credentials\',\n conform: function(surname) {\n var name = prompt.history(\'name\').value;\n return (name !== \'John\' || surname !== \'Smith\');\n }\n }], function(err, results) {\n console.log(results);\n });\n```\n\n## Customizing your prompt\nAside from changing `property.message`, you can also change `prompt.message`\nand `prompt.delimiter` to change the appearance of your prompt.\n\nThe basic structure of a prompt is this:\n\n``` js\nprompt.message + prompt.delimiter + property.message + prompt.delimiter;\n```\n\nThe default `prompt.message` is "prompt," the default `prompt.delimiter` is\n": ", and the default `property.message` is `property.name`.\nChanging these allows you to customize the appearance of your prompts! In\naddition, prompt supports ANSI color codes via the\n[colors module](https://github.com/Marak/colors.js) for custom colors. For a\nvery colorful example:\n\n``` js\n var prompt = require("prompt");\n\n //\n // Setting these properties customizes the prompt.\n //\n prompt.message = "Question!".rainbow;\n prompt.delimiter = "><".green;\n\n prompt.start();\n\n prompt.get({\n properties: {\n name: {\n description: "What is your name?".magenta\n }\n }\n }, function (err, result) {\n console.log("You said your name is: ".cyan + result.name.cyan);\n });\n```\n\nIf you don\'t want colors, you can set\n\n```js\nvar prompt = require(\'prompt\');\n\nprompt.colors = false;\n```\n\n## Installation\n\n``` bash\n $ [sudo] npm install prompt\n```\n\n## Running tests\n\n``` bash\n $ npm test\n```\n\n#### License: MIT\n#### Author: [Charlie Robbins](http://github.com/indexzero)\n#### Contributors: [Josh Holbrook](http://github.com/jesusabdullah), [Pavan Kumar Sunkara](http://github.com/pksunkara)\n\n[0]: https://github.com/flatiron/prompt/tree/master/examples\n',
1796 silly resolved readmeFilename: 'README.md',
1796 silly resolved _id: 'prompt@0.2.13',
1796 silly resolved _from: 'prompt@*' } ]
1797 info install prompt@0.2.13 into /usr/local/lib/node_modules/jitsu/node_modules/wizard
1798 info installOne prompt@0.2.13
1799 verbose from cache /Users/osx/.npm/prompt/0.2.13/package/package.json
1800 info /usr/local/lib/node_modules/jitsu/node_modules/wizard/node_modules/prompt unbuild
1801 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/wizard/node_modules/prompt/package.json
1802 verbose tar unpack /Users/osx/.npm/prompt/0.2.13/package.tgz
1803 silly lockFile 13a2831e-dules-wizard-node-modules-prompt /usr/local/lib/node_modules/jitsu/node_modules/wizard/node_modules/prompt
1804 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/wizard/node_modules/prompt /Users/osx/.npm/13a2831e-dules-wizard-node-modules-prompt.lock
1805 silly lockFile 6f52e370-sx-npm-prompt-0-2-13-package-tgz /Users/osx/.npm/prompt/0.2.13/package.tgz
1806 verbose lock /Users/osx/.npm/prompt/0.2.13/package.tgz /Users/osx/.npm/6f52e370-sx-npm-prompt-0-2-13-package-tgz.lock
1807 silly gunzTarPerm modes [ '755', '644' ]
1808 http 304 https://registry.npmjs.org/fstream-ignore
1809 silly registry.get cb [ 304,
1809 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:57 GMT',
1809 silly registry.get server: 'Apache',
1809 silly registry.get via: '1.1 varnish',
1809 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:57 GMT',
1809 silly registry.get 'cache-control': 'max-age=1',
1809 silly registry.get etag: '"1O62VL9T7C2KOML1PS81J54HB"',
1809 silly registry.get 'x-served-by': 'cache-jfk1021-JFK',
1809 silly registry.get 'x-cache': 'HIT',
1809 silly registry.get 'x-cache-hits': '1',
1809 silly registry.get 'x-timer': 'S1401826557.008268,VS0,VE124',
1809 silly registry.get vary: 'Accept',
1809 silly registry.get 'content-length': '0',
1809 silly registry.get 'keep-alive': 'timeout=10, max=50',
1809 silly registry.get connection: 'Keep-Alive' } ]
1810 verbose etag fstream-ignore from cache
1811 silly gunzTarPerm extractEntry package.json
1812 silly gunzTarPerm extractEntry .npmignore
1813 silly gunzTarPerm extractEntry README.md
1814 http 304 https://registry.npmjs.org/oauth-sign
1815 silly registry.get cb [ 304,
1815 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:57 GMT',
1815 silly registry.get server: 'Apache',
1815 silly registry.get via: '1.1 varnish',
1815 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:57 GMT',
1815 silly registry.get 'cache-control': 'max-age=1',
1815 silly registry.get etag: '"BBEB5VBVQE0G0SOWKWBK6G3CH"',
1815 silly registry.get 'x-served-by': 'cache-jfk1022-JFK',
1815 silly registry.get 'x-cache': 'HIT',
1815 silly registry.get 'x-cache-hits': '1',
1815 silly registry.get 'x-timer': 'S1401826557.128745,VS0,VE6',
1815 silly registry.get vary: 'Accept',
1815 silly registry.get 'content-length': '0',
1815 silly registry.get 'keep-alive': 'timeout=10, max=44',
1815 silly registry.get connection: 'Keep-Alive' } ]
1816 verbose etag oauth-sign from cache
1817 http 304 https://registry.npmjs.org/tough-cookie
1818 silly registry.get cb [ 304,
1818 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:57 GMT',
1818 silly registry.get server: 'Apache',
1818 silly registry.get via: '1.1 varnish',
1818 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:57 GMT',
1818 silly registry.get 'cache-control': 'max-age=1',
1818 silly registry.get etag: '"1UPI10TCWUXXCJDOICISVEFTA"',
1818 silly registry.get 'x-served-by': 'cache-jfk1025-JFK',
1818 silly registry.get 'x-cache': 'HIT',
1818 silly registry.get 'x-cache-hits': '1',
1818 silly registry.get 'x-timer': 'S1401826557.132234,VS0,VE8',
1818 silly registry.get vary: 'Accept',
1818 silly registry.get 'content-length': '0',
1818 silly registry.get 'keep-alive': 'timeout=10, max=45',
1818 silly registry.get connection: 'Keep-Alive' } ]
1819 verbose etag tough-cookie from cache
1820 silly addNameRange number 2 { name: 'fstream-ignore',
1820 silly addNameRange range: '>=0.0.5- <0.1.0-',
1820 silly addNameRange hasData: true }
1821 silly addNameRange versions [ 'fstream-ignore',
1821 silly addNameRange [ '0.0.1',
1821 silly addNameRange '0.0.2',
1821 silly addNameRange '0.0.3',
1821 silly addNameRange '0.0.4',
1821 silly addNameRange '0.0.5',
1821 silly addNameRange '0.0.6',
1821 silly addNameRange '0.0.7',
1821 silly addNameRange '0.0.8' ] ]
1822 verbose addNamed [ 'fstream-ignore', '0.0.8' ]
1823 verbose addNamed [ '0.0.8', '0.0.8' ]
1824 silly lockFile 26b575d8-fstream-ignore-0-0-8 fstream-ignore@0.0.8
1825 verbose lock fstream-ignore@0.0.8 /Users/osx/.npm/26b575d8-fstream-ignore-0-0-8.lock
1826 http 304 https://registry.npmjs.org/semver
1827 silly registry.get cb [ 304,
1827 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:57 GMT',
1827 silly registry.get server: 'Apache',
1827 silly registry.get via: '1.1 varnish',
1827 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:57 GMT',
1827 silly registry.get 'cache-control': 'max-age=1',
1827 silly registry.get etag: '"5T6MUUO9XMCIT4W783K8VECVS"',
1827 silly registry.get 'x-served-by': 'cache-jfk1025-JFK',
1827 silly registry.get 'x-cache': 'HIT',
1827 silly registry.get 'x-cache-hits': '1',
1827 silly registry.get 'x-timer': 'S1401826557.030248,VS0,VE113',
1827 silly registry.get vary: 'Accept',
1827 silly registry.get 'content-length': '0',
1827 silly registry.get 'keep-alive': 'timeout=10, max=50',
1827 silly registry.get connection: 'Keep-Alive' } ]
1828 verbose etag semver from cache
1829 verbose read json /Users/osx/.npm/fstream-ignore/0.0.8/package/package.json
1830 silly addNameRange number 2 { name: 'oauth-sign', range: '>=0.3.0- <0.4.0-', hasData: true }
1831 silly addNameRange versions [ 'oauth-sign', [ '0.2.0', '0.3.0', '0.4.0' ] ]
1832 verbose addNamed [ 'oauth-sign', '0.3.0' ]
1833 verbose addNamed [ '0.3.0', '0.3.0' ]
1834 silly lockFile ae61e7c5-oauth-sign-0-3-0 oauth-sign@0.3.0
1835 verbose lock oauth-sign@0.3.0 /Users/osx/.npm/ae61e7c5-oauth-sign-0-3-0.lock
1836 silly gunzTarPerm extractEntry LICENSE
1837 silly gunzTarPerm extractEntry .jshintrc
1838 silly addNameRange number 2 { name: 'tough-cookie',
1838 silly addNameRange range: '>=0.9.15- <0.10.0-',
1838 silly addNameRange hasData: true }
1839 silly addNameRange versions [ 'tough-cookie',
1839 silly addNameRange [ '0.9.0',
1839 silly addNameRange '0.9.1',
1839 silly addNameRange '0.9.3',
1839 silly addNameRange '0.9.4',
1839 silly addNameRange '0.9.5',
1839 silly addNameRange '0.9.6',
1839 silly addNameRange '0.9.7',
1839 silly addNameRange '0.9.8',
1839 silly addNameRange '0.9.9',
1839 silly addNameRange '0.9.11',
1839 silly addNameRange '0.9.12',
1839 silly addNameRange '0.9.13',
1839 silly addNameRange '0.9.14',
1839 silly addNameRange '0.9.15',
1839 silly addNameRange '0.10.0',
1839 silly addNameRange '0.11.0',
1839 silly addNameRange '0.12.0',
1839 silly addNameRange '0.12.1' ] ]
1840 verbose addNamed [ 'tough-cookie', '0.9.15' ]
1841 verbose addNamed [ '0.9.15', '0.9.15' ]
1842 silly lockFile 55948108-tough-cookie-0-9-15 tough-cookie@0.9.15
1843 verbose lock tough-cookie@0.9.15 /Users/osx/.npm/55948108-tough-cookie-0-9-15.lock
1844 verbose read json /Users/osx/.npm/oauth-sign/0.3.0/package/package.json
1845 silly addNameRange number 2 { name: 'semver', range: '>=1.1.0- <1.2.0-', hasData: true }
1846 silly addNameRange versions [ 'semver',
1846 silly addNameRange [ '1.0.0',
1846 silly addNameRange '1.0.1',
1846 silly addNameRange '1.0.2',
1846 silly addNameRange '1.0.3',
1846 silly addNameRange '1.0.4',
1846 silly addNameRange '1.0.5',
1846 silly addNameRange '1.0.6',
1846 silly addNameRange '1.0.7',
1846 silly addNameRange '1.0.8',
1846 silly addNameRange '1.0.9',
1846 silly addNameRange '1.0.10',
1846 silly addNameRange '1.0.11',
1846 silly addNameRange '1.0.12',
1846 silly addNameRange '1.0.13',
1846 silly addNameRange '1.0.14',
1846 silly addNameRange '1.1.0',
1846 silly addNameRange '1.1.1',
1846 silly addNameRange '1.1.2',
1846 silly addNameRange '1.1.3',
1846 silly addNameRange '1.1.4',
1846 silly addNameRange '2.0.0-alpha',
1846 silly addNameRange '2.0.0-beta',
1846 silly addNameRange '2.0.1',
1846 silly addNameRange '2.0.2',
1846 silly addNameRange '2.0.3',
1846 silly addNameRange '2.0.4',
1846 silly addNameRange '2.0.5',
1846 silly addNameRange '2.0.6',
1846 silly addNameRange '2.0.7',
1846 silly addNameRange '2.0.8',
1846 silly addNameRange '2.0.9',
1846 silly addNameRange '2.0.10',
1846 silly addNameRange '2.0.11',
1846 silly addNameRange '2.1.0',
1846 silly addNameRange '2.2.0',
1846 silly addNameRange '2.2.1',
1846 silly addNameRange '2.3.0' ] ]
1847 verbose addNamed [ 'semver', '1.1.4' ]
1848 verbose addNamed [ '1.1.4', '1.1.4' ]
1849 silly lockFile da52979e-semver-1-1-4 semver@1.1.4
1850 verbose lock semver@1.1.4 /Users/osx/.npm/da52979e-semver-1-1-4.lock
1851 verbose read json /Users/osx/.npm/tough-cookie/0.9.15/package/package.json
1852 verbose read json /Users/osx/.npm/semver/1.1.4/package/package.json
1853 silly lockFile 26b575d8-fstream-ignore-0-0-8 fstream-ignore@0.0.8
1854 silly lockFile 26b575d8-fstream-ignore-0-0-8 fstream-ignore@0.0.8
1855 http 304 https://registry.npmjs.org/aws-sign2
1856 silly registry.get cb [ 304,
1856 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:57 GMT',
1856 silly registry.get server: 'Apache',
1856 silly registry.get via: '1.1 varnish',
1856 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:57 GMT',
1856 silly registry.get 'cache-control': 'max-age=1',
1856 silly registry.get etag: '"5LQVIOJRE8YGQMQ2P04WCC67A"',
1856 silly registry.get 'x-served-by': 'cache-jfk1021-JFK',
1856 silly registry.get 'x-cache': 'HIT',
1856 silly registry.get 'x-cache-hits': '1',
1856 silly registry.get 'x-timer': 'S1401826557.146241,VS0,VE6',
1856 silly registry.get vary: 'Accept',
1856 silly registry.get 'content-length': '0',
1856 silly registry.get 'keep-alive': 'timeout=10, max=49',
1856 silly registry.get connection: 'Keep-Alive' } ]
1857 verbose etag aws-sign2 from cache
1858 http 304 https://registry.npmjs.org/mkdirp
1859 silly registry.get cb [ 304,
1859 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:57 GMT',
1859 silly registry.get server: 'Apache',
1859 silly registry.get via: '1.1 varnish',
1859 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:54 GMT',
1859 silly registry.get 'cache-control': 'max-age=1',
1859 silly registry.get etag: '"5P8P29TVEQ554BHA2UQ3XQCA3"',
1859 silly registry.get 'x-served-by': 'cache-jfk1025-JFK',
1859 silly registry.get 'x-cache': 'HIT',
1859 silly registry.get 'x-cache-hits': '2',
1859 silly registry.get 'x-timer': 'S1401826557.158198,VS0,VE0',
1859 silly registry.get vary: 'Accept',
1859 silly registry.get 'content-length': '0',
1859 silly registry.get 'keep-alive': 'timeout=10, max=44',
1859 silly registry.get connection: 'Keep-Alive' } ]
1860 verbose etag mkdirp from cache
1861 http 304 https://registry.npmjs.org/hawk
1862 silly registry.get cb [ 304,
1862 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:57 GMT',
1862 silly registry.get server: 'Apache',
1862 silly registry.get via: '1.1 varnish',
1862 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:57 GMT',
1862 silly registry.get 'cache-control': 'max-age=1',
1862 silly registry.get etag: '"8OYGUWEVR2EN7SOD8YZ0D7VKB"',
1862 silly registry.get 'x-served-by': 'cache-jfk1029-JFK',
1862 silly registry.get 'x-cache': 'HIT',
1862 silly registry.get 'x-cache-hits': '1',
1862 silly registry.get 'x-timer': 'S1401826557.139822,VS0,VE19',
1862 silly registry.get vary: 'Accept',
1862 silly registry.get 'content-length': '0',
1862 silly registry.get 'keep-alive': 'timeout=10, max=49',
1862 silly registry.get connection: 'Keep-Alive' } ]
1863 verbose etag hawk from cache
1864 http 304 https://registry.npmjs.org/rimraf
1865 silly registry.get cb [ 304,
1865 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:57 GMT',
1865 silly registry.get server: 'Apache',
1865 silly registry.get via: '1.1 varnish',
1865 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:57 GMT',
1865 silly registry.get 'cache-control': 'max-age=1',
1865 silly registry.get etag: '"1STEDQ3FCRDH7RYNOV8FGGQ3J"',
1865 silly registry.get 'x-served-by': 'cache-jfk1022-JFK',
1865 silly registry.get 'x-cache': 'HIT',
1865 silly registry.get 'x-cache-hits': '1',
1865 silly registry.get 'x-timer': 'S1401826557.150429,VS0,VE6',
1865 silly registry.get vary: 'Accept',
1865 silly registry.get 'content-length': '0',
1865 silly registry.get 'keep-alive': 'timeout=10, max=43',
1865 silly registry.get connection: 'Keep-Alive' } ]
1866 verbose etag rimraf from cache
1867 silly lockFile a42d4951-fstream-ignore-0-0-5 fstream-ignore@~0.0.5
1868 silly lockFile a42d4951-fstream-ignore-0-0-5 fstream-ignore@~0.0.5
1869 silly gunzTarPerm extractEntry .travis.yml
1870 silly gunzTarPerm extractEntry docs/docco.css
1871 silly gunzTarPerm extractEntry docs/prompt.html
1872 silly gunzTarPerm extractEntry examples/add-properties.js
1873 silly gunzTarPerm extractEntry examples/history.js
1874 silly gunzTarPerm extractEntry examples/nested-properties-prompt.js
1875 silly gunzTarPerm extractEntry examples/old-schema.js
1876 silly gunzTarPerm extractEntry examples/existing-properties.js
1877 silly gunzTarPerm extractEntry examples/password.js
1878 silly gunzTarPerm extractEntry examples/prompt-override.js
1879 silly gunzTarPerm extractEntry examples/property-prompt.js
1880 silly gunzTarPerm extractEntry examples/simple-prompt.js
1881 silly gunzTarPerm extractEntry examples/yes-or-no-prompt.js
1882 silly gunzTarPerm extractEntry examples/override-validation.js
1883 silly gunzTarPerm extractEntry lib/prompt.js
1884 silly gunzTarPerm extractEntry CHANGELOG.md
1885 silly gunzTarPerm extractEntry test/helpers.js
1886 silly gunzTarPerm extractEntry test/interactive-prompt-test.js
1887 silly gunzTarPerm extractEntry test/macros.js
1888 silly gunzTarPerm extractEntry test/prompt-test.js
1889 silly resolved [ { name: 'inherits',
1889 silly resolved description: 'Browser-friendly inheritance fully compatible with standard node.js inherits()',
1889 silly resolved version: '2.0.1',
1889 silly resolved keywords:
1889 silly resolved [ 'inheritance',
1889 silly resolved 'class',
1889 silly resolved 'klass',
1889 silly resolved 'oop',
1889 silly resolved 'object-oriented',
1889 silly resolved 'inherits',
1889 silly resolved 'browser',
1889 silly resolved 'browserify' ],
1889 silly resolved main: './inherits.js',
1889 silly resolved browser: './inherits_browser.js',
1889 silly resolved repository: { type: 'git', url: 'git://github.com/isaacs/inherits' },
1889 silly resolved license: 'ISC',
1889 silly resolved scripts: { test: 'node test' },
1889 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',
1889 silly resolved readmeFilename: 'README.md',
1889 silly resolved _id: 'inherits@2.0.1',
1889 silly resolved _from: 'inherits@~2.0.0' },
1889 silly resolved { author:
1889 silly resolved { name: 'Isaac Z. Schlueter',
1889 silly resolved email: 'i@izs.me',
1889 silly resolved url: 'http://blog.izs.me/' },
1889 silly resolved name: 'fstream-ignore',
1889 silly resolved description: 'A thing for ignoring files based on globs',
1889 silly resolved version: '0.0.8',
1889 silly resolved repository:
1889 silly resolved { type: 'git',
1889 silly resolved url: 'git://github.com/isaacs/fstream-ignore.git' },
1889 silly resolved main: 'ignore.js',
1889 silly resolved scripts: { test: 'tap test/*.js' },
1889 silly resolved dependencies: { fstream: '~0.1.17', inherits: '2', minimatch: '^0.3.0' },
1889 silly resolved devDependencies: { tap: '', rimraf: '', mkdirp: '' },
1889 silly resolved license: 'BSD',
1889 silly resolved readme: '# fstream-ignore\n\nA fstream DirReader that filters out files that match globs in `.ignore`\nfiles throughout the tree, like how git ignores files based on a\n`.gitignore` file.\n\nHere\'s an example:\n\n```javascript\nvar Ignore = require("fstream-ignore")\nIgnore({ path: __dirname\n , ignoreFiles: [".ignore", ".gitignore"]\n })\n .on("child", function (c) {\n console.error(c.path.substr(c.root.path.length + 1))\n })\n .pipe(tar.Pack())\n .pipe(fs.createWriteStream("foo.tar"))\n```\n\nThis will tar up the files in __dirname into `foo.tar`, ignoring\nanything matched by the globs in any .iginore or .gitignore file.\n',
1889 silly resolved readmeFilename: 'README.md',
1889 silly resolved _id: 'fstream-ignore@0.0.8',
1889 silly resolved _from: 'fstream-ignore@~0.0.5' } ]
1890 info install inherits@2.0.1 into /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm
1891 info install fstream-ignore@0.0.8 into /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm
1892 info installOne inherits@2.0.1
1893 info installOne fstream-ignore@0.0.8
1894 silly lockFile ae61e7c5-oauth-sign-0-3-0 oauth-sign@0.3.0
1895 silly lockFile ae61e7c5-oauth-sign-0-3-0 oauth-sign@0.3.0
1896 verbose from cache /Users/osx/.npm/inherits/2.0.1/package/package.json
1897 info /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm/node_modules/inherits unbuild
1898 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm/node_modules/inherits/package.json
1899 verbose from cache /Users/osx/.npm/fstream-ignore/0.0.8/package/package.json
1900 info /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm/node_modules/fstream-ignore unbuild
1901 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm/node_modules/fstream-ignore/package.json
1902 silly lockFile 55948108-tough-cookie-0-9-15 tough-cookie@0.9.15
1903 silly lockFile 55948108-tough-cookie-0-9-15 tough-cookie@0.9.15
1904 silly lockFile 7fb5c7f1-oauth-sign-0-3-0 oauth-sign@~0.3.0
1905 silly lockFile 7fb5c7f1-oauth-sign-0-3-0 oauth-sign@~0.3.0
1906 silly lockFile da52979e-semver-1-1-4 semver@1.1.4
1907 silly lockFile da52979e-semver-1-1-4 semver@1.1.4
1908 verbose tar unpack /Users/osx/.npm/inherits/2.0.1/package.tgz
1909 silly lockFile 0add675c-stream-npm-node-modules-inherits /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm/node_modules/inherits
1910 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm/node_modules/inherits /Users/osx/.npm/0add675c-stream-npm-node-modules-inherits.lock
1911 silly lockFile aca0518b-x-npm-inherits-2-0-1-package-tgz /Users/osx/.npm/inherits/2.0.1/package.tgz
1912 verbose lock /Users/osx/.npm/inherits/2.0.1/package.tgz /Users/osx/.npm/aca0518b-x-npm-inherits-2-0-1-package-tgz.lock
1913 verbose tar unpack /Users/osx/.npm/fstream-ignore/0.0.8/package.tgz
1914 silly lockFile e33a870b--npm-node-modules-fstream-ignore /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm/node_modules/fstream-ignore
1915 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm/node_modules/fstream-ignore /Users/osx/.npm/e33a870b--npm-node-modules-fstream-ignore.lock
1916 silly lockFile e3204f48-fstream-ignore-0-0-8-package-tgz /Users/osx/.npm/fstream-ignore/0.0.8/package.tgz
1917 verbose lock /Users/osx/.npm/fstream-ignore/0.0.8/package.tgz /Users/osx/.npm/e3204f48-fstream-ignore-0-0-8-package-tgz.lock
1918 silly addNameRange number 2 { name: 'aws-sign2', range: '>=0.5.0- <0.6.0-', hasData: true }
1919 silly addNameRange versions [ 'aws-sign2', [ '0.4.0', '0.5.0' ] ]
1920 verbose addNamed [ 'aws-sign2', '0.5.0' ]
1921 verbose addNamed [ '0.5.0', '0.5.0' ]
1922 silly lockFile 5a1dbd9b-aws-sign2-0-5-0 aws-sign2@0.5.0
1923 verbose lock aws-sign2@0.5.0 /Users/osx/.npm/5a1dbd9b-aws-sign2-0-5-0.lock
1924 silly lockFile c2bfce7a-tough-cookie-0-9-15 tough-cookie@~0.9.15
1925 silly lockFile c2bfce7a-tough-cookie-0-9-15 tough-cookie@~0.9.15
1926 silly addNameRange number 2 { name: 'mkdirp', range: '>=0.3.0- <0.4.0-', hasData: true }
1927 silly addNameRange versions [ 'mkdirp',
1927 silly addNameRange [ '0.0.1',
1927 silly addNameRange '0.0.2',
1927 silly addNameRange '0.0.3',
1927 silly addNameRange '0.0.4',
1927 silly addNameRange '0.0.5',
1927 silly addNameRange '0.0.6',
1927 silly addNameRange '0.0.7',
1927 silly addNameRange '0.1.0',
1927 silly addNameRange '0.2.0',
1927 silly addNameRange '0.2.1',
1927 silly addNameRange '0.2.2',
1927 silly addNameRange '0.3.0',
1927 silly addNameRange '0.3.1',
1927 silly addNameRange '0.3.2',
1927 silly addNameRange '0.3.3',
1927 silly addNameRange '0.3.4',
1927 silly addNameRange '0.3.5',
1927 silly addNameRange '0.4.0',
1927 silly addNameRange '0.4.1',
1927 silly addNameRange '0.4.2',
1927 silly addNameRange '0.5.0' ] ]
1928 verbose addNamed [ 'mkdirp', '0.3.5' ]
1929 verbose addNamed [ '0.3.5', '0.3.5' ]
1930 silly lockFile 67d2df2a-mkdirp-0-3-5 mkdirp@0.3.5
1931 verbose lock mkdirp@0.3.5 /Users/osx/.npm/67d2df2a-mkdirp-0-3-5.lock
1932 silly addNameRange number 2 { name: 'hawk', range: '>=1.0.0- <1.1.0-', hasData: true }
1933 silly addNameRange versions [ 'hawk',
1933 silly addNameRange [ '0.0.1',
1933 silly addNameRange '0.0.2',
1933 silly addNameRange '0.0.3',
1933 silly addNameRange '0.0.4',
1933 silly addNameRange '0.0.5',
1933 silly addNameRange '0.0.6',
1933 silly addNameRange '0.0.7',
1933 silly addNameRange '0.0.8',
1933 silly addNameRange '0.1.0',
1933 silly addNameRange '0.2.0',
1933 silly addNameRange '0.3.0',
1933 silly addNameRange '0.4.0',
1933 silly addNameRange '0.5.0',
1933 silly addNameRange '0.5.1',
1933 silly addNameRange '0.5.2',
1933 silly addNameRange '0.5.3',
1933 silly addNameRange '0.6.0',
1933 silly addNameRange '0.6.1',
1933 silly addNameRange '0.7.0',
1933 silly addNameRange '0.7.1',
1933 silly addNameRange '0.8.1',
1933 silly addNameRange '0.9.0',
1933 silly addNameRange '0.10.0',
1933 silly addNameRange '0.10.1',
1933 silly addNameRange '0.10.2',
1933 silly addNameRange '0.11.0',
1933 silly addNameRange '0.11.1',
1933 silly addNameRange '0.12.0',
1933 silly addNameRange '0.12.1',
1933 silly addNameRange '0.12.2',
1933 silly addNameRange '0.13.0',
1933 silly addNameRange '0.13.1',
1933 silly addNameRange '0.14.0',
1933 silly addNameRange '0.15.0',
1933 silly addNameRange '1.0.0',
1933 silly addNameRange '1.1.0-pre',
1933 silly addNameRange '1.1.1',
1933 silly addNameRange '1.1.2',
1933 silly addNameRange '2.0.0',
1933 silly addNameRange '2.1.0',
1933 silly addNameRange '2.1.1',
1933 silly addNameRange '2.1.2',
1933 silly addNameRange '2.1.3',
1933 silly addNameRange '2.2.0',
1933 silly addNameRange '2.2.1' ] ]
1934 verbose addNamed [ 'hawk', '1.0.0' ]
1935 verbose addNamed [ '1.0.0', '1.0.0' ]
1936 silly lockFile 1ca87dbe-hawk-1-0-0 hawk@1.0.0
1937 verbose lock hawk@1.0.0 /Users/osx/.npm/1ca87dbe-hawk-1-0-0.lock
1938 silly addNameRange number 2 { name: 'rimraf', range: '>=2.0.0- <3.0.0-', hasData: true }
1939 silly addNameRange versions [ 'rimraf',
1939 silly addNameRange [ '1.0.0',
1939 silly addNameRange '1.0.1',
1939 silly addNameRange '1.0.2',
1939 silly addNameRange '1.0.4',
1939 silly addNameRange '1.0.5',
1939 silly addNameRange '1.0.6',
1939 silly addNameRange '1.0.7',
1939 silly addNameRange '1.0.8',
1939 silly addNameRange '1.0.9',
1939 silly addNameRange '2.0.0',
1939 silly addNameRange '2.0.1',
1939 silly addNameRange '2.0.2',
1939 silly addNameRange '2.0.3',
1939 silly addNameRange '2.1.0',
1939 silly addNameRange '2.1.1',
1939 silly addNameRange '2.1.2',
1939 silly addNameRange '2.1.3',
1939 silly addNameRange '2.1.4',
1939 silly addNameRange '2.2.0',
1939 silly addNameRange '2.2.1',
1939 silly addNameRange '2.2.2',
1939 silly addNameRange '2.2.3',
1939 silly addNameRange '2.2.4',
1939 silly addNameRange '2.2.5',
1939 silly addNameRange '2.2.6',
1939 silly addNameRange '2.2.8' ] ]
1940 verbose addNamed [ 'rimraf', '2.2.8' ]
1941 verbose addNamed [ '2.2.8', '2.2.8' ]
1942 silly lockFile b87241a4-rimraf-2-2-8 rimraf@2.2.8
1943 verbose lock rimraf@2.2.8 /Users/osx/.npm/b87241a4-rimraf-2-2-8.lock
1944 silly lockFile 674d9f7e-semver-1-1-x semver@1.1.x
1945 silly lockFile 674d9f7e-semver-1-1-x semver@1.1.x
1946 silly gunzTarPerm modes [ '755', '644' ]
1947 verbose read json /Users/osx/.npm/aws-sign2/0.5.0/package/package.json
1948 verbose from cache /Users/osx/.npm/mkdirp/0.3.5/package/package.json
1949 silly lockFile 67d2df2a-mkdirp-0-3-5 mkdirp@0.3.5
1950 silly lockFile 67d2df2a-mkdirp-0-3-5 mkdirp@0.3.5
1951 verbose read json /Users/osx/.npm/hawk/1.0.0/package/package.json
1952 verbose read json /Users/osx/.npm/rimraf/2.2.8/package/package.json
1953 silly resolved [ { author:
1953 silly resolved { name: 'Isaac Z. Schlueter',
1953 silly resolved email: 'i@izs.me',
1953 silly resolved url: 'http://blog.izs.me' },
1953 silly resolved name: 'which',
1953 silly resolved description: 'Like which(1) unix command. Find the first instance of an executable in the PATH.',
1953 silly resolved version: '1.0.5',
1953 silly resolved repository: { type: 'git', url: 'git://github.com/isaacs/node-which.git' },
1953 silly resolved main: 'which.js',
1953 silly resolved bin: { which: './bin/which' },
1953 silly resolved engines: { node: '*' },
1953 silly resolved dependencies: {},
1953 silly resolved devDependencies: {},
1953 silly resolved readme: 'The "which" util from npm\'s guts.\n\nFinds the first instance of a specified executable in the PATH\nenvironment variable. Does not cache the results, so `hash -r` is not\nneeded when the PATH changes.\n',
1953 silly resolved readmeFilename: 'README.md',
1953 silly resolved _id: 'which@1.0.5',
1953 silly resolved _from: 'which@1.0.x' },
1953 silly resolved { name: 'mkdirp',
1953 silly resolved description: 'Recursively mkdir, like `mkdir -p`',
1953 silly resolved version: '0.3.5',
1953 silly resolved author:
1953 silly resolved { name: 'James Halliday',
1953 silly resolved email: 'mail@substack.net',
1953 silly resolved url: 'http://substack.net' },
1953 silly resolved main: './index',
1953 silly resolved keywords: [ 'mkdir', 'directory' ],
1953 silly resolved repository:
1953 silly resolved { type: 'git',
1953 silly resolved url: 'http://github.com/substack/node-mkdirp.git' },
1953 silly resolved scripts: { test: 'tap test/*.js' },
1953 silly resolved devDependencies: { tap: '~0.4.0' },
1953 silly resolved license: 'MIT',
1953 silly resolved readme: '# mkdirp\n\nLike `mkdir -p`, but in node.js!\n\n[![build status](https://secure.travis-ci.org/substack/node-mkdirp.png)](http://travis-ci.org/substack/node-mkdirp)\n\n# example\n\n## pow.js\n\n```js\nvar mkdirp = require(\'mkdirp\');\n \nmkdirp(\'/tmp/foo/bar/baz\', function (err) {\n if (err) console.error(err)\n else console.log(\'pow!\')\n});\n```\n\nOutput\n\n```\npow!\n```\n\nAnd now /tmp/foo/bar/baz exists, huzzah!\n\n# methods\n\n```js\nvar mkdirp = require(\'mkdirp\');\n```\n\n## mkdirp(dir, mode, cb)\n\nCreate a new directory and any necessary subdirectories at `dir` with octal\npermission string `mode`.\n\nIf `mode` isn\'t specified, it defaults to `0777 & (~process.umask())`.\n\n`cb(err, made)` fires with the error or the first directory `made`\nthat had to be created, if any.\n\n## mkdirp.sync(dir, mode)\n\nSynchronously create a new directory and any necessary subdirectories at `dir`\nwith octal permission string `mode`.\n\nIf `mode` isn\'t specified, it defaults to `0777 & (~process.umask())`.\n\nReturns the first directory that had to be created, if any.\n\n# install\n\nWith [npm](http://npmjs.org) do:\n\n```\nnpm install mkdirp\n```\n\n# license\n\nMIT\n',
1953 silly resolved readmeFilename: 'readme.markdown',
1953 silly resolved _id: 'mkdirp@0.3.5',
1953 silly resolved _from: 'mkdirp@0.3.5' },
1953 silly resolved { name: 'semver',
1953 silly resolved version: '1.1.4',
1953 silly resolved description: 'The semantic version parser used by npm.',
1953 silly resolved main: 'semver.js',
1953 silly resolved scripts: { test: 'tap test.js' },
1953 silly resolved devDependencies: { tap: '0.x >=0.0.4' },
1953 silly resolved license:
1953 silly resolved { type: 'MIT',
1953 silly resolved url: 'https://github.com/isaacs/semver/raw/master/LICENSE' },
1953 silly resolved repository: { type: 'git', url: 'git://github.com/isaacs/node-semver.git' },
1953 silly resolved bin: { semver: './bin/semver' },
1953 silly resolved readme: 'semver(1) -- The semantic versioner for npm\n===========================================\n\n## Usage\n\n $ npm install semver\n\n semver.valid(\'1.2.3\') // \'1.2.3\'\n semver.valid(\'a.b.c\') // null\n semver.clean(\' =v1.2.3 \') // \'1.2.3\'\n semver.satisfies(\'1.2.3\', \'1.x || >=2.5.0 || 5.0.0 - 7.2.3\') // true\n semver.gt(\'1.2.3\', \'9.8.7\') // false\n semver.lt(\'1.2.3\', \'9.8.7\') // true\n\nAs a command-line utility:\n\n $ semver -h\n\n Usage: semver -v <version> [-r <range>]\n Test if version(s) satisfy the supplied range(s),\n and sort them.\n\n Multiple versions or ranges may be supplied.\n\n Program exits successfully if any valid version satisfies\n all supplied ranges, and prints all satisfying versions.\n\n If no versions are valid, or ranges are not satisfied,\n then exits failure.\n\n Versions are printed in ascending order, so supplying\n multiple versions to the utility will just sort them.\n\n## Versions\n\nA version is the following things, in this order:\n\n* a number (Major)\n* a period\n* a number (minor)\n* a period\n* a number (patch)\n* OPTIONAL: a hyphen, followed by a number (build)\n* OPTIONAL: a collection of pretty much any non-whitespace characters\n (tag)\n\nA leading `"="` or `"v"` character is stripped off and ignored.\n\n## Comparisons\n\nThe ordering of versions is done using the following algorithm, given\ntwo versions and asked to find the greater of the two:\n\n* If the majors are numerically different, then take the one\n with a bigger major number. `2.3.4 > 1.3.4`\n* If the minors are numerically different, then take the one\n with the bigger minor number. `2.3.4 > 2.2.4`\n* If the patches are numerically different, then take the one with the\n bigger patch number. `2.3.4 > 2.3.3`\n* If only one of them has a build number, then take the one with the\n build number. `2.3.4-0 > 2.3.4`\n* If they both have build numbers, and the build numbers are numerically\n different, then take the one with the bigger build number.\n `2.3.4-10 > 2.3.4-9`\n* If only one of them has a tag, then take the one without the tag.\n `2.3.4 > 2.3.4-beta`\n* If they both have tags, then take the one with the lexicographically\n larger tag. `2.3.4-beta > 2.3.4-alpha`\n* At this point, they\'re equal.\n\n## Ranges\n\nThe following range styles are supported:\n\n* `>1.2.3` Greater than a specific version.\n* `<1.2.3` Less than\n* `1.2.3 - 2.3.4` := `>=1.2.3 <=2.3.4`\n* `~1.2.3` := `>=1.2.3 <1.3.0`\n* `~1.2` := `>=1.2.0 <1.3.0`\n* `~1` := `>=1.0.0 <2.0.0`\n* `1.2.x` := `>=1.2.0 <1.3.0`\n* `1.x` := `>=1.0.0 <2.0.0`\n\nRanges can be joined with either a space (which implies "and") or a\n`||` (which implies "or").\n\n## Functions\n\n* valid(v): Return the parsed version, or null if it\'s not valid.\n* inc(v, release): Return the version incremented by the release type\n (major, minor, patch, or build), or null if it\'s not valid.\n\n### Comparison\n\n* gt(v1, v2): `v1 > v2`\n* gte(v1, v2): `v1 >= v2`\n* lt(v1, v2): `v1 < v2`\n* lte(v1, v2): `v1 <= v2`\n* eq(v1, v2): `v1 == v2` This is true if they\'re logically equivalent,\n even if they\'re not the exact same string. You already know how to\n compare strings.\n* neq(v1, v2): `v1 != v2` The opposite of eq.\n* cmp(v1, comparator, v2): Pass in a comparison string, and it\'ll call\n the corresponding function above. `"==="` and `"!=="` do simple\n string comparison, but are included for completeness. Throws if an\n invalid comparison string is provided.\n* compare(v1, v2): Return 0 if v1 == v2, or 1 if v1 is greater, or -1 if\n v2 is greater. Sorts in ascending order if passed to Array.sort().\n* rcompare(v1, v2): The reverse of compare. Sorts an array of versions\n in descending order when passed to Array.sort().\n\n\n### Ranges\n\n* validRange(range): Return the valid range or null if it\'s not valid\n* satisfies(version, range): Return true if the version satisfies the\n range.\n* maxSatisfying(versions, range): Return the highest version in the list\n that satisfies the range, or null if none of them do.\n',
1953 silly resolved readmeFilename: 'README.md',
1953 silly resolved _id: 'semver@1.1.4',
1953 silly resolved _from: 'semver@1.1.x' } ]
1954 info install which@1.0.5 into /usr/local/lib/node_modules/jitsu/node_modules/canihaz
1955 info install mkdirp@0.3.5 into /usr/local/lib/node_modules/jitsu/node_modules/canihaz
1956 info install semver@1.1.4 into /usr/local/lib/node_modules/jitsu/node_modules/canihaz
1957 info installOne which@1.0.5
1958 info installOne mkdirp@0.3.5
1959 info installOne semver@1.1.4
1960 verbose from cache /Users/osx/.npm/which/1.0.5/package/package.json
1961 info /usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/which unbuild
1962 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/which/package.json
1963 verbose from cache /Users/osx/.npm/mkdirp/0.3.5/package/package.json
1964 info /usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/mkdirp unbuild
1965 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/mkdirp/package.json
1966 verbose from cache /Users/osx/.npm/semver/1.1.4/package/package.json
1967 info /usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/semver unbuild
1968 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/semver/package.json
1969 silly lockFile b5c3810e-mkdirp-0-3 mkdirp@0.3
1970 silly lockFile b5c3810e-mkdirp-0-3 mkdirp@0.3
1971 silly gunzTarPerm extractEntry package.json
1972 verbose tar unpack /Users/osx/.npm/which/1.0.5/package.tgz
1973 silly lockFile 34d8c33b-dules-canihaz-node-modules-which /usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/which
1974 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/which /Users/osx/.npm/34d8c33b-dules-canihaz-node-modules-which.lock
1975 silly lockFile 21225418--osx-npm-which-1-0-5-package-tgz /Users/osx/.npm/which/1.0.5/package.tgz
1976 verbose lock /Users/osx/.npm/which/1.0.5/package.tgz /Users/osx/.npm/21225418--osx-npm-which-1-0-5-package-tgz.lock
1977 verbose tar unpack /Users/osx/.npm/mkdirp/0.3.5/package.tgz
1978 silly lockFile 997916a8-ules-canihaz-node-modules-mkdirp /usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/mkdirp
1979 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/mkdirp /Users/osx/.npm/997916a8-ules-canihaz-node-modules-mkdirp.lock
1980 silly lockFile 47a182c0-osx-npm-mkdirp-0-3-5-package-tgz /Users/osx/.npm/mkdirp/0.3.5/package.tgz
1981 verbose lock /Users/osx/.npm/mkdirp/0.3.5/package.tgz /Users/osx/.npm/47a182c0-osx-npm-mkdirp-0-3-5-package-tgz.lock
1982 verbose tar unpack /Users/osx/.npm/semver/1.1.4/package.tgz
1983 silly lockFile 05539278-ules-canihaz-node-modules-semver /usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/semver
1984 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/semver /Users/osx/.npm/05539278-ules-canihaz-node-modules-semver.lock
1985 silly lockFile c475137d-osx-npm-semver-1-1-4-package-tgz /Users/osx/.npm/semver/1.1.4/package.tgz
1986 verbose lock /Users/osx/.npm/semver/1.1.4/package.tgz /Users/osx/.npm/c475137d-osx-npm-semver-1-1-4-package-tgz.lock
1987 silly gunzTarPerm modes [ '755', '644' ]
1988 silly gunzTarPerm modes [ '755', '644' ]
1989 silly gunzTarPerm extractEntry .npmignore
1990 silly gunzTarPerm extractEntry README.md
1991 silly lockFile 5a1dbd9b-aws-sign2-0-5-0 aws-sign2@0.5.0
1992 silly lockFile 5a1dbd9b-aws-sign2-0-5-0 aws-sign2@0.5.0
1993 silly lockFile 1ca87dbe-hawk-1-0-0 hawk@1.0.0
1994 silly lockFile 1ca87dbe-hawk-1-0-0 hawk@1.0.0
1995 silly lockFile b87241a4-rimraf-2-2-8 rimraf@2.2.8
1996 silly lockFile b87241a4-rimraf-2-2-8 rimraf@2.2.8
1997 silly lockFile 82387911-aws-sign2-0-5-0 aws-sign2@~0.5.0
1998 silly lockFile 82387911-aws-sign2-0-5-0 aws-sign2@~0.5.0
1999 silly gunzTarPerm extractEntry package.json
2000 http 304 https://registry.npmjs.org/preacher-api
2001 silly registry.get cb [ 304,
2001 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:57 GMT',
2001 silly registry.get server: 'Apache',
2001 silly registry.get via: '1.1 varnish',
2001 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:57 GMT',
2001 silly registry.get 'cache-control': 'max-age=1',
2001 silly registry.get etag: '"9KL0BIXLGN6OWPA1FJR4UMM8S"',
2001 silly registry.get 'x-served-by': 'cache-jfk1025-JFK',
2001 silly registry.get 'x-cache': 'MISS',
2001 silly registry.get 'x-cache-hits': '0',
2001 silly registry.get 'x-timer': 'S1401826557.176282,VS0,VE14',
2001 silly registry.get vary: 'Accept',
2001 silly registry.get 'content-length': '0',
2001 silly registry.get 'keep-alive': 'timeout=10, max=43',
2001 silly registry.get connection: 'Keep-Alive' } ]
2002 verbose etag preacher-api from cache
2003 silly lockFile 327094b8-hawk-1-0-0 hawk@~1.0.0
2004 silly lockFile 327094b8-hawk-1-0-0 hawk@~1.0.0
2005 silly lockFile 8c081391-rimraf-2 rimraf@2
2006 silly lockFile 8c081391-rimraf-2 rimraf@2
2007 silly gunzTarPerm extractEntry package.json
2008 silly resolved [ { name: 'qs',
2008 silly resolved description: 'querystring parser',
2008 silly resolved version: '0.6.6',
2008 silly resolved keywords: [ 'query string', 'parser', 'component' ],
2008 silly resolved repository:
2008 silly resolved { type: 'git',
2008 silly resolved url: 'git://github.com/visionmedia/node-querystring.git' },
2008 silly resolved devDependencies: { mocha: '*', 'expect.js': '*' },
2008 silly resolved scripts: { test: 'make test' },
2008 silly resolved author:
2008 silly resolved { name: 'TJ Holowaychuk',
2008 silly resolved email: 'tj@vision-media.ca',
2008 silly resolved url: 'http://tjholowaychuk.com' },
2008 silly resolved main: 'index',
2008 silly resolved engines: { node: '*' },
2008 silly resolved readme: '# node-querystring\n\n query string parser for node and the browser supporting nesting, as it was removed from `0.3.x`, so this library provides the previous and commonly desired behaviour (and twice as fast). Used by [express](http://expressjs.com), [connect](http://senchalabs.github.com/connect) and others.\n\n## Installation\n\n $ npm install qs\n\n## Examples\n\n```js\nvar qs = require(\'qs\');\n\nqs.parse(\'user[name][first]=Tobi&user[email]=tobi@learnboost.com\');\n// => { user: { name: { first: \'Tobi\' }, email: \'tobi@learnboost.com\' } }\n\nqs.stringify({ user: { name: \'Tobi\', email: \'tobi@learnboost.com\' }})\n// => user[name]=Tobi&user[email]=tobi%40learnboost.com\n```\n\n## Testing\n\nInstall dev dependencies:\n\n $ npm install -d\n\nand execute:\n\n $ make test\n\nbrowser:\n\n $ open test/browser/index.html\n\n## License \n\n(The MIT License)\n\nCopyright (c) 2010 TJ Holowaychuk &lt;tj@vision-media.ca&gt;\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\'Software\'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \'AS IS\', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.',
2008 silly resolved readmeFilename: 'Readme.md',
2008 silly resolved _id: 'qs@0.6.6',
2008 silly resolved _from: 'qs@~0.6.0' },
2008 silly resolved { name: 'json-stringify-safe',
2008 silly resolved version: '5.0.0',
2008 silly resolved description: 'Like JSON.stringify, but doesn\'t blow up on circular refs',
2008 silly resolved main: 'stringify.js',
2008 silly resolved scripts: { test: 'node test.js' },
2008 silly resolved repository:
2008 silly resolved { type: 'git',
2008 silly resolved url: 'git://github.com/isaacs/json-stringify-safe' },
2008 silly resolved keywords: [ 'json', 'stringify', 'circular', 'safe' ],
2008 silly resolved author:
2008 silly resolved { name: 'Isaac Z. Schlueter',
2008 silly resolved email: 'i@izs.me',
2008 silly resolved url: 'http://blog.izs.me' },
2008 silly resolved license: 'BSD',
2008 silly resolved readmeFilename: 'README.md',
2008 silly resolved readme: '# json-stringify-safe\n\nLike JSON.stringify, but doesn\'t throw on circular references.\n\n## Usage\n\nTakes the same arguments as `JSON.stringify`.\n\n```javascript\nvar stringify = require(\'json-stringify-safe\');\nvar circularObj = {};\ncircularObj.circularRef = circularObj;\ncircularObj.list = [ circularObj, circularObj ];\nconsole.log(stringify(circularObj, null, 2));\n```\n\nOutput:\n\n```json\n{\n "circularRef": "[Circular]",\n "list": [\n "[Circular]",\n "[Circular]"\n ]\n}\n```\n\n## Details\n\n```\nstringify(obj, serializer, indent, decycler)\n```\n\nThe first three arguments are the same as to JSON.stringify. The last\nis an argument that\'s only used when the object has been seen already.\n\nThe default `decycler` function returns the string `\'[Circular]\'`.\nIf, for example, you pass in `function(k,v){}` (return nothing) then it\nwill prune cycles. If you pass in `function(k,v){ return {foo: \'bar\'}}`,\nthen cyclical objects will always be represented as `{"foo":"bar"}` in\nthe result.\n\n```\nstringify.getSerialize(serializer, decycler)\n```\n\nReturns a serializer that can be used elsewhere. This is the actual\nfunction that\'s passed to JSON.stringify.\n',
2008 silly resolved _id: 'json-stringify-safe@5.0.0',
2008 silly resolved _from: 'json-stringify-safe@~5.0.0' },
2008 silly resolved { author:
2008 silly resolved { name: 'Mikeal Rogers',
2008 silly resolved email: 'mikeal.rogers@gmail.com',
2008 silly resolved url: 'http://www.futurealoof.com' },
2008 silly resolved name: 'forever-agent',
2008 silly resolved description: 'HTTP Agent that keeps socket connections alive between keep-alive requests. Formerly part of mikeal/request, now a standalone module.',
2008 silly resolved version: '0.5.2',
2008 silly resolved repository: { url: 'https://github.com/mikeal/forever-agent' },
2008 silly resolved main: 'index.js',
2008 silly resolved dependencies: {},
2008 silly resolved devDependencies: {},
2008 silly resolved optionalDependencies: {},
2008 silly resolved engines: { node: '*' },
2008 silly resolved readme: 'forever-agent\n=============\n\nHTTP Agent that keeps socket connections alive between keep-alive requests. Formerly part of mikeal/request, now a standalone module.\n',
2008 silly resolved readmeFilename: 'README.md',
2008 silly resolved _id: 'forever-agent@0.5.2',
2008 silly resolved _from: 'forever-agent@~0.5.0' },
2008 silly resolved { name: 'node-uuid',
2008 silly resolved description: 'Rigorous implementation of RFC4122 (v1 and v4) UUIDs.',
2008 silly resolved url: 'http://github.com/broofa/node-uuid',
2008 silly resolved keywords: [ 'uuid', 'guid', 'rfc4122' ],
2008 silly resolved author: { name: 'Robert Kieffer', email: 'robert@broofa.com' },
2008 silly resolved contributors: [ [Object] ],
2008 silly resolved lib: '.',
2008 silly resolved main: './uuid.js',
2008 silly resolved repository: { type: 'git', url: 'https://github.com/broofa/node-uuid.git' },
2008 silly resolved version: '1.4.1',
2008 silly resolved readme: '# node-uuid\n\nSimple, fast generation of [RFC4122](http://www.ietf.org/rfc/rfc4122.txt) UUIDS.\n\nFeatures:\n\n* Generate RFC4122 version 1 or version 4 UUIDs\n* Runs in node.js and all browsers.\n* Registered as a [ComponentJS](https://github.com/component/component) [component](https://github.com/component/component/wiki/Components) (\'broofa/node-uuid\').\n* Cryptographically strong random # generation on supporting platforms\n* 1.1K minified and gzip\'ed (Want something smaller? Check this [crazy shit](https://gist.github.com/982883) out! )\n* [Annotated source code](http://broofa.github.com/node-uuid/docs/uuid.html)\n\n## Getting Started\n\nInstall it in your browser:\n\n```html\n<script src="uuid.js"></script>\n```\n\nOr in node.js:\n\n```\nnpm install node-uuid\n```\n\n```javascript\nvar uuid = require(\'node-uuid\');\n```\n\nThen create some ids ...\n\n```javascript\n// Generate a v1 (time-based) id\nuuid.v1(); // -> \'6c84fb90-12c4-11e1-840d-7b25c5ee775a\'\n\n// Generate a v4 (random) id\nuuid.v4(); // -> \'110ec58a-a0f2-4ac4-8393-c866d813b8d1\'\n```\n\n## API\n\n### uuid.v1([`options` [, `buffer` [, `offset`]]])\n\nGenerate and return a RFC4122 v1 (timestamp-based) UUID.\n\n* `options` - (Object) Optional uuid state to apply. Properties may include:\n\n * `node` - (Array) Node id as Array of 6 bytes (per 4.1.6). Default: Randomly generated ID. See note 1.\n * `clockseq` - (Number between 0 - 0x3fff) RFC clock sequence. Default: An internally maintained clockseq is used.\n * `msecs` - (Number | Date) Time in milliseconds since unix Epoch. Default: The current time is used.\n * `nsecs` - (Number between 0-9999) additional time, in 100-nanosecond units. Ignored if `msecs` is unspecified. Default: internal uuid counter is used, as per 4.2.1.2.\n\n* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.\n* `offset` - (Number) Starting index in `buffer` at which to begin writing.\n\nReturns `buffer`, if specified, otherwise the string form of the UUID\n\nNotes:\n\n1. The randomly generated node id is only guaranteed to stay constant for the lifetime of the current JS runtime. (Future versions of this module may use persistent storage mechanisms to extend this guarantee.)\n\nExample: Generate string UUID with fully-specified options\n\n```javascript\nuuid.v1({\n node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab],\n clockseq: 0x1234,\n msecs: new Date(\'2011-11-01\').getTime(),\n nsecs: 5678\n}); // -> "710b962e-041c-11e1-9234-0123456789ab"\n```\n\nExample: In-place generation of two binary IDs\n\n```javascript\n// Generate two ids in an array\nvar arr = new Array(32); // -> []\nuuid.v1(null, arr, 0); // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15]\nuuid.v1(null, arr, 16); // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15 02 a3 1c b0 14 32 11 e1 85 58 0b 48 8e 4f c1 15]\n\n// Optionally use uuid.unparse() to get stringify the ids\nuuid.unparse(buffer); // -> \'02a2ce90-1432-11e1-8558-0b488e4fc115\'\nuuid.unparse(buffer, 16) // -> \'02a31cb0-1432-11e1-8558-0b488e4fc115\'\n```\n\n### uuid.v4([`options` [, `buffer` [, `offset`]]])\n\nGenerate and return a RFC4122 v4 UUID.\n\n* `options` - (Object) Optional uuid state to apply. Properties may include:\n\n * `random` - (Number[16]) Array of 16 numbers (0-255) to use in place of randomly generated values\n * `rng` - (Function) Random # generator to use. Set to one of the built-in generators - `uuid.mathRNG` (all platforms), `uuid.nodeRNG` (node.js only), `uuid.whatwgRNG` (WebKit only) - or a custom function that returns an array[16] of byte values.\n\n* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.\n* `offset` - (Number) Starting index in `buffer` at which to begin writing.\n\nReturns `buffer`, if specified, otherwise the string form of the UUID\n\nExample: Generate string UUID with fully-specified options\n\n```javascript\nuuid.v4({\n random: [\n 0x10, 0x91, 0x56, 0xbe, 0xc4, 0xfb, 0xc1, 0xea,\n 0x71, 0xb4, 0xef, 0xe1, 0x67, 0x1c, 0x58, 0x36\n ]\n});\n// -> "109156be-c4fb-41ea-b1b4-efe1671c5836"\n```\n\nExample: Generate two IDs in a single buffer\n\n```javascript\nvar buffer = new Array(32); // (or \'new Buffer\' in node.js)\nuuid.v4(null, buffer, 0);\nuuid.v4(null, buffer, 16);\n```\n\n### uuid.parse(id[, buffer[, offset]])\n### uuid.unparse(buffer[, offset])\n\nParse and unparse UUIDs\n\n * `id` - (String) UUID(-like) string\n * `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. Default: A new Array or Buffer is used\n * `offset` - (Number) Starting index in `buffer` at which to begin writing. Default: 0\n\nExample parsing and unparsing a UUID string\n\n```javascript\nvar bytes = uuid.parse(\'797ff043-11eb-11e1-80d6-510998755d10\'); // -> <Buffer 79 7f f0 43 11 eb 11 e1 80 d6 51 09 98 75 5d 10>\nvar string = uuid.unparse(bytes); // -> \'797ff043-11eb-11e1-80d6-510998755d10\'\n```\n\n### uuid.noConflict()\n\n(Browsers only) Set `uuid` property back to it\'s previous value.\n\nReturns the node-uuid object.\n\nExample:\n\n```javascript\nvar myUuid = uuid.noConflict();\nmyUuid.v1(); // -> \'6c84fb90-12c4-11e1-840d-7b25c5ee775a\'\n```\n\n## Deprecated APIs\n\nSupport for the following v1.2 APIs is available in v1.3, but is deprecated and will be removed in the next major version.\n\n### uuid([format [, buffer [, offset]]])\n\nuuid() has become uuid.v4(), and the `format` argument is now implicit in the `buffer` argument. (i.e. if you specify a buffer, the format is assumed to be binary).\n\n### uuid.BufferClass\n\nThe class of container created when generating binary uuid data if no buffer argument is specified. This is expected to go away, with no replacement API.\n\n## Testing\n\nIn node.js\n\n```\n> cd test\n> node test.js\n```\n\nIn Browser\n\n```\nopen test/test.html\n```\n\n### Benchmarking\n\nRequires node.js\n\n```\nnpm install uuid uuid-js\nnode benchmark/benchmark.js\n```\n\nFor a more complete discussion of node-uuid performance, please see the `benchmark/README.md` file, and the [benchmark wiki](https://github.com/broofa/node-uuid/wiki/Benchmark)\n\nFor browser performance [checkout the JSPerf tests](http://jsperf.com/node-uuid-performance).\n\n## Release notes\n\n### 1.4.0\n\n* Improved module context detection\n* Removed public RNG functions\n\n### 1.3.2\n\n* Improve tests and handling of v1() options (Issue #24)\n* Expose RNG option to allow for perf testing with different generators\n\n### 1.3.0\n\n* Support for version 1 ids, thanks to [@ctavan](https://github.com/ctavan)!\n* Support for node.js crypto API\n* De-emphasizing performance in favor of a) cryptographic quality PRNGs where available and b) more manageable code\n',
2008 silly resolved readmeFilename: 'README.md',
2008 silly resolved _id: 'node-uuid@1.4.1',
2008 silly resolved _from: 'node-uuid@~1.4.0' },
2008 silly resolved { author:
2008 silly resolved { name: 'Robert Kieffer',
2008 silly resolved email: 'robert@broofa.com',
2008 silly resolved url: 'http://github.com/broofa' },
2008 silly resolved contributors: [ [Object] ],
2008 silly resolved dependencies: {},
2008 silly resolved description: 'A comprehensive library for mime-type mapping',
2008 silly resolved devDependencies: {},
2008 silly resolved keywords: [ 'util', 'mime' ],
2008 silly resolved main: 'mime.js',
2008 silly resolved name: 'mime',
2008 silly resolved repository: { url: 'https://github.com/broofa/node-mime', type: 'git' },
2008 silly resolved version: '1.2.11',
2008 silly resolved readme: '# mime\n\nComprehensive MIME type mapping API. Includes all 600+ types and 800+ extensions defined by the Apache project, plus additional types submitted by the node.js community.\n\n## Install\n\nInstall with [npm](http://github.com/isaacs/npm):\n\n npm install mime\n\n## API - Queries\n\n### mime.lookup(path)\nGet the mime type associated with a file, if no mime type is found `application/octet-stream` is returned. Performs a case-insensitive lookup using the extension in `path` (the substring after the last \'/\' or \'.\'). E.g.\n\n var mime = require(\'mime\');\n\n mime.lookup(\'/path/to/file.txt\'); // => \'text/plain\'\n mime.lookup(\'file.txt\'); // => \'text/plain\'\n mime.lookup(\'.TXT\'); // => \'text/plain\'\n mime.lookup(\'htm\'); // => \'text/html\'\n\n### mime.default_type\nSets the mime type returned when `mime.lookup` fails to find the extension searched for. (Default is `application/octet-stream`.)\n\n### mime.extension(type)\nGet the default extension for `type`\n\n mime.extension(\'text/html\'); // => \'html\'\n mime.extension(\'application/octet-stream\'); // => \'bin\'\n\n### mime.charsets.lookup()\n\nMap mime-type to charset\n\n mime.charsets.lookup(\'text/plain\'); // => \'UTF-8\'\n\n(The logic for charset lookups is pretty rudimentary. Feel free to suggest improvements.)\n\n## API - Defining Custom Types\n\nThe following APIs allow you to add your own type mappings within your project. If you feel a type should be included as part of node-mime, see [requesting new types](https://github.com/broofa/node-mime/wiki/Requesting-New-Types).\n\n### mime.define()\n\nAdd custom mime/extension mappings\n\n mime.define({\n \'text/x-some-format\': [\'x-sf\', \'x-sft\', \'x-sfml\'],\n \'application/x-my-type\': [\'x-mt\', \'x-mtt\'],\n // etc ...\n });\n\n mime.lookup(\'x-sft\'); // => \'text/x-some-format\'\n\nThe first entry in the extensions array is returned by `mime.extension()`. E.g.\n\n mime.extension(\'text/x-some-format\'); // => \'x-sf\'\n\n### mime.load(filepath)\n\nLoad mappings from an Apache ".types" format file\n\n mime.load(\'./my_project.types\');\n\nThe .types file format is simple - See the `types` dir for examples.\n',
2008 silly resolved readmeFilename: 'README.md',
2008 silly resolved _id: 'mime@1.2.11',
2008 silly resolved _from: 'mime@~1.2.9' },
2008 silly resolved { author:
2008 silly resolved { name: 'Felix Geisendörfer',
2008 silly resolved email: 'felix@debuggable.com',
2008 silly resolved url: 'http://debuggable.com/' },
2008 silly resolved name: 'form-data',
2008 silly resolved description: 'A module to create readable "multipart/form-data" streams. Can be used to submit forms and file uploads to other web applications.',
2008 silly resolved version: '0.1.3',
2008 silly resolved repository:
2008 silly resolved { type: 'git',
2008 silly resolved url: 'git://github.com/felixge/node-form-data.git' },
2008 silly resolved main: './lib/form_data',
2008 silly resolved scripts: { test: 'node test/run.js' },
2008 silly resolved engines: { node: '>= 0.8' },
2008 silly resolved dependencies: { 'combined-stream': '~0.0.4', mime: '~1.2.11', async: '~0.9.0' },
2008 silly resolved licenses: [ [Object] ],
2008 silly resolved devDependencies:
2008 silly resolved { fake: '~0.2.2',
2008 silly resolved far: '~0.0.7',
2008 silly resolved formidable: '~1.0.14',
2008 silly resolved request: '~2.36.0' },
2008 silly resolved readme: '# Form-Data [![Build Status](https://travis-ci.org/felixge/node-form-data.png?branch=master)](https://travis-ci.org/felixge/node-form-data) [![Dependency Status](https://gemnasium.com/felixge/node-form-data.png)](https://gemnasium.com/felixge/node-form-data)\n\nA module to create readable ```"multipart/form-data"``` streams. Can be used to submit forms and file uploads to other web applications.\n\nThe API of this module is inspired by the [XMLHttpRequest-2 FormData Interface][xhr2-fd].\n\n[xhr2-fd]: http://dev.w3.org/2006/webapi/XMLHttpRequest-2/Overview.html#the-formdata-interface\n[streams2-thing]: http://nodejs.org/api/stream.html#stream_compatibility_with_older_node_versions\n\n## Install\n\n```\nnpm install form-data\n```\n\n## Usage\n\nIn this example we are constructing a form with 3 fields that contain a string,\na buffer and a file stream.\n\n``` javascript\nvar FormData = require(\'form-data\');\nvar fs = require(\'fs\');\n\nvar form = new FormData();\nform.append(\'my_field\', \'my value\');\nform.append(\'my_buffer\', new Buffer(10));\nform.append(\'my_file\', fs.createReadStream(\'/foo/bar.jpg\'));\n```\n\nAlso you can use http-response stream:\n\n``` javascript\nvar FormData = require(\'form-data\');\nvar http = require(\'http\');\n\nvar form = new FormData();\n\nhttp.request(\'http://nodejs.org/images/logo.png\', function(response) {\n form.append(\'my_field\', \'my value\');\n form.append(\'my_buffer\', new Buffer(10));\n form.append(\'my_logo\', response);\n});\n```\n\nOr @mikeal\'s request stream:\n\n``` javascript\nvar FormData = require(\'form-data\');\nvar request = require(\'request\');\n\nvar form = new FormData();\n\nform.append(\'my_field\', \'my value\');\nform.append(\'my_buffer\', new Buffer(10));\nform.append(\'my_logo\', request(\'http://nodejs.org/images/logo.png\'));\n```\n\nIn order to submit this form to a web application, call ```submit(url, [callback])``` method:\n\n``` javascript\nform.submit(\'http://example.org/\', function(err, res) {\n // res – response object (http.IncomingMessage) //\n res.resume(); // for node-0.10.x\n});\n\n```\n\nFor more advanced request manipulations ```submit()``` method returns ```http.ClientRequest``` object, or you can choose from one of the alternative submission methods.\n\n### Alternative submission methods\n\nYou can use node\'s http client interface:\n\n``` javascript\nvar http = require(\'http\');\n\nvar request = http.request({\n method: \'post\',\n host: \'example.org\',\n path: \'/upload\',\n headers: form.getHeaders()\n});\n\nform.pipe(request);\n\nrequest.on(\'response\', function(res) {\n console.log(res.statusCode);\n});\n```\n\nOr if you would prefer the `\'Content-Length\'` header to be set for you:\n\n``` javascript\nform.submit(\'example.org/upload\', function(err, res) {\n console.log(res.statusCode);\n});\n```\n\nTo use custom headers and pre-known length in parts:\n\n``` javascript\nvar CRLF = \'\\r\\n\';\nvar form = new FormData();\n\nvar options = {\n header: CRLF + \'--\' + form.getBoundary() + CRLF + \'X-Custom-Header: 123\' + CRLF + CRLF,\n knownLength: 1\n};\n\nform.append(\'my_buffer\', buffer, options);\n\nform.submit(\'http://example.com/\', function(err, res) {\n if (err) throw err;\n console.log(\'Done\');\n});\n```\n\nForm-Data can recognize and fetch all the required information from common types of streams (```fs.readStream```, ```http.response``` and ```mikeal\'s request```), for some other types of streams you\'d need to provide "file"-related information manually:\n\n``` javascript\nsomeModule.stream(function(err, stdout, stderr) {\n if (err) throw err;\n\n var form = new FormData();\n\n form.append(\'file\', stdout, {\n filename: \'unicycle.jpg\',\n contentType: \'image/jpg\',\n knownLength: 19806\n });\n\n form.submit(\'http://example.com/\', function(err, res) {\n if (err) throw err;\n console.log(\'Done\');\n });\n});\n```\n\nFor edge cases, like POST request to URL with query string or to pass HTTP auth credentials, object can be passed to `form.submit()` as first parameter:\n\n``` javascript\nform.submit({\n host: \'example.com\',\n path: \'/probably.php?extra=params\',\n auth: \'username:password\'\n}, function(err, res) {\n console.log(res.statusCode);\n});\n```\n\nIn case you need to also send custom HTTP headers with the POST request, you can use the `headers` key in first parameter of `form.submit()`:\n\n``` javascript\nform.submit({\n host: \'example.com\',\n path: \'/surelynot.php\',\n headers: {\'x-test-header\': \'test-header-value\'}\n}, function(err, res) {\n console.log(res.statusCode);\n});\n```\n\n## Notes\n\n- ```getLengthSync()``` method DOESN\'T calculate length for streams, use ```knownLength``` options as workaround.\n- If it feels like FormData hangs after submit and you\'re on ```node-0.10```, please check [Compatibility with Older Node Versions][streams2-thing]\n\n## TODO\n\n- Add new streams (0.10) support and try really hard not to break it for 0.8.x.\n\n## License\n\nForm-Data is licensed under the MIT license.\n',
2008 silly resolved readmeFilename: 'Readme.md',
2008 silly resolved _id: 'form-data@0.1.3',
2008 silly resolved _from: 'form-data@~0.1.0' },
2008 silly resolved { author:
2008 silly resolved { name: 'Mikeal Rogers',
2008 silly resolved email: 'mikeal.rogers@gmail.com',
2008 silly resolved url: 'http://www.futurealoof.com' },
2008 silly resolved name: 'tunnel-agent',
2008 silly resolved description: 'HTTP proxy tunneling agent. Formerly part of mikeal/request, now a standalone module.',
2008 silly resolved version: '0.3.0',
2008 silly resolved repository: { url: 'https://github.com/mikeal/tunnel-agent' },
2008 silly resolved main: 'index.js',
2008 silly resolved dependencies: {},
2008 silly resolved devDependencies: {},
2008 silly resolved optionalDependencies: {},
2008 silly resolved engines: { node: '*' },
2008 silly resolved readme: 'tunnel-agent\n============\n\nHTTP proxy tunneling agent. Formerly part of mikeal/request, now a standalone module.\n',
2008 silly resolved readmeFilename: 'README.md',
2008 silly resolved _id: 'tunnel-agent@0.3.0',
2008 silly resolved _from: 'tunnel-agent@~0.3.0' },
2008 silly resolved { author: { name: 'Joyent, Inc' },
2008 silly resolved name: 'http-signature',
2008 silly resolved description: 'Reference implementation of Joyent\'s HTTP Signature Scheme',
2008 silly resolved version: '0.10.0',
2008 silly resolved repository:
2008 silly resolved { type: 'git',
2008 silly resolved url: 'git://github.com/joyent/node-http-signature.git' },
2008 silly resolved engines: { node: '>=0.8' },
2008 silly resolved main: 'lib/index.js',
2008 silly resolved scripts: { test: './node_modules/.bin/tap tst/*.js' },
2008 silly resolved dependencies: { 'assert-plus': '0.1.2', asn1: '0.1.11', ctype: '0.5.2' },
2008 silly resolved devDependencies: { 'node-uuid': '1.4.0', tap: '0.4.2' },
2008 silly resolved readme: '# node-http-signature\n\nnode-http-signature is a node.js library that has client and server components\nfor Joyent\'s [HTTP Signature Scheme](http_signing.md).\n\n## Usage\n\nNote the example below signs a request with the same key/cert used to start an\nHTTP server. This is almost certainly not what you actaully want, but is just\nused to illustrate the API calls; you will need to provide your own key\nmanagement in addition to this library.\n\n### Client\n\n var fs = require(\'fs\');\n var https = require(\'https\');\n var httpSignature = require(\'http-signature\');\n\n var key = fs.readFileSync(\'./key.pem\', \'ascii\');\n\n var options = {\n host: \'localhost\',\n port: 8443,\n path: \'/\',\n method: \'GET\',\n headers: {}\n };\n\n // Adds a \'Date\' header in, signs it, and adds the\n // \'Authorization\' header in.\n var req = https.request(options, function(res) {\n console.log(res.statusCode);\n });\n\n\n httpSignature.sign(req, {\n key: key,\n keyId: \'./cert.pem\'\n });\n\n req.end();\n\n### Server\n\n var fs = require(\'fs\');\n var https = require(\'https\');\n var httpSignature = require(\'http-signature\');\n\n var options = {\n key: fs.readFileSync(\'./key.pem\'),\n cert: fs.readFileSync(\'./cert.pem\')\n };\n\n https.createServer(options, function (req, res) {\n var rc = 200;\n var parsed = httpSignature.parseRequest(req);\n var pub = fs.readFileSync(parsed.keyId, \'ascii\');\n if (!httpSignature.verifySignature(parsed, pub))\n rc = 401;\n\n res.writeHead(rc);\n res.end();\n }).listen(8443);\n\n## Installation\n\n npm install http-signature\n\n## License\n\nMIT.\n\n## Bugs\n\nSee <https://github.com/joyent/node-http-signature/issues>.\n',
2008 silly resolved readmeFilename: 'README.md',
2008 silly resolved _id: 'http-signature@0.10.0',
2008 silly resolved _from: 'http-signature@~0.10.0' },
2008 silly resolved { author:
2008 silly resolved { name: 'Mikeal Rogers',
2008 silly resolved email: 'mikeal.rogers@gmail.com',
2008 silly resolved url: 'http://www.futurealoof.com' },
2008 silly resolved name: 'oauth-sign',
2008 silly resolved description: 'OAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module.',
2008 silly resolved version: '0.3.0',
2008 silly resolved repository: { url: 'https://github.com/mikeal/oauth-sign' },
2008 silly resolved main: 'index.js',
2008 silly resolved dependencies: {},
2008 silly resolved devDependencies: {},
2008 silly resolved optionalDependencies: {},
2008 silly resolved engines: { node: '*' },
2008 silly resolved scripts: { test: 'node test.js' },
2008 silly resolved readme: 'oauth-sign\n==========\n\nOAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module. \n',
2008 silly resolved readmeFilename: 'README.md',
2008 silly resolved _id: 'oauth-sign@0.3.0',
2008 silly resolved _from: 'oauth-sign@~0.3.0' },
2008 silly resolved { author:
2008 silly resolved { name: 'Jeremy Stashewsky',
2008 silly resolved email: 'jeremy@goinstant.com',
2008 silly resolved url: 'https://github.com/stash' },
2008 silly resolved name: 'tough-cookie',
2008 silly resolved description: 'RFC6265 Cookies and Cookie Jar for node.js',
2008 silly resolved keywords:
2008 silly resolved [ 'HTTP',
2008 silly resolved 'cookie',
2008 silly resolved 'cookies',
2008 silly resolved 'set-cookie',
2008 silly resolved 'cookiejar',
2008 silly resolved 'jar',
2008 silly resolved 'RFC6265',
2008 silly resolved 'RFC2965' ],
2008 silly resolved version: '0.9.15',
2008 silly resolved homepage: 'https://github.com/goinstant/node-cookie',
2008 silly resolved repository:
2008 silly resolved { type: 'git',
2008 silly resolved url: 'git://github.com/goinstant/node-cookie.git' },
2008 silly resolved bugs: { url: 'https://github.com/goinstant/node-cookie/issues' },
2008 silly resolved main: './lib/cookie',
2008 silly resolved scripts: { test: 'vows test.js' },
2008 silly resolved engines: { node: '>=0.4.12' },
2008 silly resolved dependencies: { punycode: '>=0.2.0' },
2008 silly resolved devDependencies: { vows: '>=0.6.0', async: '>=0.1.12' },
2008 silly resolved readme: '[RFC6265](http://tools.ietf.org/html/rfc6265) Cookies and CookieJar for Node.js\n\n![Tough Cookie](http://www.goinstant.com.s3.amazonaws.com/tough-cookie.jpg)\n\n# Synopsis\n\n``` javascript\nvar cookies = require(\'tough-cookie\'); // note: not \'cookie\', \'cookies\' or \'node-cookie\'\nvar Cookie = cookies.Cookie;\nvar cookie = Cookie.parse(header);\ncookie.value = \'somethingdifferent\';\nheader = cookie.toString();\n\nvar cookiejar = new cookies.CookieJar();\ncookiejar.setCookie(cookie, \'http://currentdomain.example.com/path\', cb);\n// ...\ncookiejar.getCookies(\'http://example.com/otherpath\',function(err,cookies) {\n res.headers[\'cookie\'] = cookies.join(\'; \');\n});\n```\n\n# Installation\n\nIt\'s _so_ easy!\n\n`npm install tough-cookie`\n\nRequires `punycode`, which should get installed automatically for you. Note that node.js v0.6.2+ bundles punycode by default.\n\nWhy the name? NPM modules `cookie`, `cookies` and `cookiejar` were already taken.\n\n# API\n\ncookies\n=======\n\nFunctions on the module you get from `require(\'tough-cookie\')`. All can be used as pure functions and don\'t need to be "bound".\n\nparseDate(string[,strict])\n-----------------\n\nParse a cookie date string into a `Date`. Parses according to RFC6265 Section 5.1.1, not `Date.parse()`. If strict is set to true then leading/trailing non-seperator characters around the time part will cause the parsing to fail (e.g. "Thu, 01 Jan 1970 00:00:010 GMT" has an extra trailing zero but Chrome, an assumedly RFC-compliant browser, treats this as valid).\n\nformatDate(date)\n----------------\n\nFormat a Date into a RFC1123 string (the RFC6265-recommended format).\n\ncanonicalDomain(str)\n--------------------\n\nTransforms a domain-name into a canonical domain-name. The canonical domain-name is a trimmed, lowercased, stripped-of-leading-dot and optionally punycode-encoded domain-name (Section 5.1.2 of RFC6265). For the most part, this function is idempotent (can be run again on its output without ill effects).\n\ndomainMatch(str,domStr[,canonicalize=true])\n-------------------------------------------\n\nAnswers "does this real domain match the domain in a cookie?". The `str` is the "current" domain-name and the `domStr` is the "cookie" domain-name. Matches according to RFC6265 Section 5.1.3, but it helps to think of it as a "suffix match".\n\nThe `canonicalize` parameter will run the other two paramters through `canonicalDomain` or not.\n\ndefaultPath(path)\n-----------------\n\nGiven a current request/response path, gives the Path apropriate for storing in a cookie. This is basically the "directory" of a "file" in the path, but is specified by Section 5.1.4 of the RFC.\n\nThe `path` parameter MUST be _only_ the pathname part of a URI (i.e. excludes the hostname, query, fragment, etc.). This is the `.pathname` property of node\'s `uri.parse()` output.\n\npathMatch(reqPath,cookiePath)\n-----------------------------\n\nAnswers "does the request-path path-match a given cookie-path?" as per RFC6265 Section 5.1.4. Returns a boolean.\n\nThis is essentially a prefix-match where `cookiePath` is a prefix of `reqPath`.\n\nparse(header[,strict=false])\n----------------------------\n\nalias for `Cookie.parse(header[,strict])`\n\nfromJSON(string)\n----------------\n\nalias for `Cookie.fromJSON(string)`\n\ngetPublicSuffix(hostname)\n-------------------------\n\nReturns the public suffix of this hostname. The public suffix is the shortest domain-name upon which a cookie can be set. Returns `null` if the hostname cannot have cookies set for it.\n\nFor example: `www.example.com` and `www.subdomain.example.com` both have public suffix `example.com`.\n\nFor further information, see http://publicsuffix.org/. This module derives its list from that site.\n\ncookieCompare(a,b)\n------------------\n\nFor use with `.sort()`, sorts a list of cookies into the recommended order given in the RFC (Section 5.4 step 2). Longest `.path`s go first, then sorted oldest to youngest.\n\n``` javascript\nvar cookies = [ /* unsorted array of Cookie objects */ ];\ncookies = cookies.sort(cookieCompare);\n```\n\npermuteDomain(domain)\n---------------------\n\nGenerates a list of all possible domains that `domainMatch()` the parameter. May be handy for implementing cookie stores.\n\n\npermutePath(path)\n-----------------\n\nGenerates a list of all possible paths that `pathMatch()` the parameter. May be handy for implementing cookie stores.\n\nCookie\n======\n\nCookie.parse(header[,strict=false])\n-----------------------------------\n\nParses a single Cookie or Set-Cookie HTTP header into a `Cookie` object. Returns `undefined` if the string can\'t be parsed. If in strict mode, returns `undefined` if the cookie doesn\'t follow the guidelines in section 4 of RFC6265. Generally speaking, strict mode can be used to validate your own generated Set-Cookie headers, but acting as a client you want to be lenient and leave strict mode off.\n\nHere\'s how to process the Set-Cookie header(s) on a node HTTP/HTTPS response:\n\n``` javascript\nif (res.headers[\'set-cookie\'] instanceof Array)\n cookies = res.headers[\'set-cookie\'].map(Cookie.parse);\nelse\n cookies = [Cookie.parse(res.headers[\'set-cookie\'])];\n```\n\nCookie.fromJSON(string)\n-----------------------\n\nConvert a JSON string to a `Cookie` object. Does a `JSON.parse()` and converts the `.created`, `.lastAccessed` and `.expires` properties into `Date` objects.\n\nProperties\n==========\n\n * _key_ - string - the name or key of the cookie (default "")\n * _value_ - string - the value of the cookie (default "")\n * _expires_ - `Date` - if set, the `Expires=` attribute of the cookie (defaults to the string `"Infinity"`). See `setExpires()`\n * _maxAge_ - seconds - if set, the `Max-Age=` attribute _in seconds_ of the cookie. May also be set to strings `"Infinity"` and `"-Infinity"` for non-expiry and immediate-expiry, respectively. See `setMaxAge()`\n * _domain_ - string - the `Domain=` attribute of the cookie\n * _path_ - string - the `Path=` of the cookie\n * _secure_ - boolean - the `Secure` cookie flag\n * _httpOnly_ - boolean - the `HttpOnly` cookie flag\n * _extensions_ - `Array` - any unrecognized cookie attributes as strings (even if equal-signs inside)\n \nAfter a cookie has been passed through `CookieJar.setCookie()` it will have the following additional attributes:\n\n * _hostOnly_ - boolean - is this a host-only cookie (i.e. no Domain field was set, but was instead implied)\n * _pathIsDefault_ - boolean - if true, there was no Path field on the cookie and `defaultPath()` was used to derive one.\n * _created_ - `Date` - when this cookie was added to the jar\n * _lastAccessed_ - `Date` - last time the cookie got accessed. Will affect cookie cleaning once implemented. Using `cookiejar.getCookies(...)` will update this attribute.\n\nConstruction([{options}])\n------------\n\nReceives an options object that can contain any Cookie properties, uses the default for unspecified properties.\n\n.toString()\n-----------\n\nencode to a Set-Cookie header value. The Expires cookie field is set using `formatDate()`, but is omitted entirely if `.expires` is `Infinity`.\n\n.cookieString()\n---------------\n\nencode to a Cookie header value (i.e. the `.key` and `.value` properties joined with \'=\').\n\n.setExpires(String)\n-------------------\n\nsets the expiry based on a date-string passed through `parseDate()`. If parseDate returns `null` (i.e. can\'t parse this date string), `.expires` is set to `"Infinity"` (a string) is set.\n\n.setMaxAge(number)\n-------------------\n\nsets the maxAge in seconds. Coerces `-Infinity` to `"-Infinity"` and `Infinity` to `"Infinity"` so it JSON serializes correctly.\n\n.expiryTime([now=Date.now()])\n-----------------------------\n\n.expiryDate([now=Date.now()])\n-----------------------------\n\nexpiryTime() Computes the absolute unix-epoch milliseconds that this cookie expires. expiryDate() works similarly, except it returns a `Date` object. Note that in both cases the `now` parameter should be milliseconds.\n\nMax-Age takes precedence over Expires (as per the RFC). The `.created` attribute -- or, by default, the `now` paramter -- is used to offset the `.maxAge` attribute.\n\nIf Expires (`.expires`) is set, that\'s returned.\n\nOtherwise, `expiryTime()` returns `Infinity` and `expiryDate()` returns a `Date` object for "Tue, 19 Jan 2038 03:14:07 GMT" (latest date that can be expressed by a 32-bit `time_t`; the common limit for most user-agents).\n\n.TTL([now=Date.now()])\n---------\n\ncompute the TTL relative to `now` (milliseconds). The same precedence rules as for `expiryTime`/`expiryDate` apply.\n\nThe "number" `Infinity` is returned for cookies without an explicit expiry and `0` is returned if the cookie is expired. Otherwise a time-to-live in milliseconds is returned.\n\n.canonicalizedDoman()\n---------------------\n\n.cdomain()\n----------\n\nreturn the canonicalized `.domain` field. This is lower-cased and punycode (RFC3490) encoded if the domain has any non-ASCII characters.\n\n.validate()\n-----------\n\nStatus: *IN PROGRESS*. Works for a few things, but is by no means comprehensive.\n\nvalidates cookie attributes for semantic correctness. Useful for "lint" checking any Set-Cookie headers you generate. For now, it returns a boolean, but eventually could return a reason string -- you can future-proof with this construct:\n\n``` javascript\nif (cookie.validate() === true) {\n // it\'s tasty\n} else {\n // yuck!\n}\n```\n\nCookieJar\n=========\n\nConstruction([store = new MemoryCookieStore()][, rejectPublicSuffixes])\n------------\n\nSimply use `new CookieJar()`. If you\'d like to use a custom store, pass that to the constructor otherwise a `MemoryCookieStore` will be created and used.\n\n\nAttributes\n----------\n\n * _rejectPublicSuffixes_ - boolean - reject cookies with domains like "com" and "co.uk" (default: `true`)\n \nSince eventually this module would like to support database/remote/etc. CookieJars, continuation passing style is used for CookieJar methods.\n\n.setCookie(cookieOrString, currentUrl, [{options},] cb(err,cookie))\n-------------------------------------------------------------------\n\nAttempt to set the cookie in the cookie jar. If the operation fails, an error will be given to the callback `cb`, otherwise the cookie is passed through. The cookie will have updated `.created`, `.lastAccessed` and `.hostOnly` properties.\n\nThe `options` object can be omitted and can have the following properties:\n\n * _http_ - boolean - default `true` - indicates if this is an HTTP or non-HTTP API. Affects HttpOnly cookies.\n * _secure_ - boolean - autodetect from url - indicates if this is a "Secure" API. If the currentUrl starts with `https:` or `wss:` then this is defaulted to `true`, otherwise `false`.\n * _now_ - Date - default `new Date()` - what to use for the creation/access time of cookies\n * _strict_ - boolean - default `false` - perform extra checks\n * _ignoreError_ - boolean - default `false` - silently ignore things like parse errors and invalid domains. CookieStore errors aren\'t ignored by this option.\n\nAs per the RFC, the `.hostOnly` property is set if there was no "Domain=" parameter in the cookie string (or `.domain` was null on the Cookie object). The `.domain` property is set to the fully-qualified hostname of `currentUrl` in this case. Matching this cookie requires an exact hostname match (not a `domainMatch` as per usual).\n\n.storeCookie(cookie, [{options},] cb(err,cookie))\n-------------------------------------------------\n\n__REMOVED__ removed in lieu of the CookieStore API below\n \n.getCookies(currentUrl, [{options},] cb(err,cookies))\n-----------------------------------------------------\n\nRetrieve the list of cookies that can be sent in a Cookie header for the current url.\n\nIf an error is encountered, that\'s passed as `err` to the callback, otherwise an `Array` of `Cookie` objects is passed. The array is sorted with `cookieCompare()` unless the `{sort:false}` option is given.\n\nThe `options` object can be omitted and can have the following properties:\n\n * _http_ - boolean - default `true` - indicates if this is an HTTP or non-HTTP API. Affects HttpOnly cookies.\n * _secure_ - boolean - autodetect from url - indicates if this is a "Secure" API. If the currentUrl starts with `https:` or `wss:` then this is defaulted to `true`, otherwise `false`.\n * _now_ - Date - default `new Date()` - what to use for the creation/access time of cookies\n * _expire_ - boolean - default `true` - perform expiry-time checking of cookies and asynchronously remove expired cookies from the store. Using `false` will return expired cookies and **not** remove them from the store (which is useful for replaying Set-Cookie headers, potentially).\n * _allPaths_ - boolean - default `false` - if `true`, do not scope cookies by path. The default uses RFC-compliant path scoping. **Note**: may not be supported by the CookieStore `fetchCookies` function (the default MemoryCookieStore supports it).\n\nThe `.lastAccessed` property of the returned cookies will have been updated.\n\n.getCookieString(...)\n---------------------\n\nAccepts the same options as `.getCookies()` but passes a string suitable for a Cookie header rather than an array to the callback. Simply maps the `Cookie` array via `.cookieString()`.\n\n.getSetCookieStrings(...)\n-------------------------\n\nAccepts the same options as `.getCookies()` but passes an array of strings suitable for Set-Cookie headers (rather than an array of `Cookie`s) to the callback. Simply maps the cookie array via `.toString()`.\n\n# CookieStore API\n\nThe storage model for each `CookieJar` instance can be replaced with a custom implementation. The default is `MemoryCookieStore` which can be found in the `lib/memstore.js` file. The API uses continuation-passing-style to allow for asynchronous stores.\n\nAll `domain` parameters will have been normalized before calling.\n\nThe Cookie store must have all of the following methods.\n\nstore.findCookie(domain, path, key, cb(err,cookie))\n---------------------------------------------------\n\nRetrieve a cookie with the given domain, path and key (a.k.a. name). The RFC maintains that exactly one of these cookies should exist in a store. If the store is using versioning, this means that the latest/newest such cookie should be returned.\n\nCallback takes an error and the resulting `Cookie` object. If no cookie is found then `null` MUST be passed instead (i.e. not an error).\n\nstore.findCookies(domain, path, cb(err,cookies))\n------------------------------------------------\n\nLocates cookies matching the given domain and path. This is most often called in the context of `cookiejar.getCookies()` above.\n\nIf no cookies are found, the callback MUST be passed an empty array.\n\nThe resulting list will be checked for applicability to the current request according to the RFC (domain-match, path-match, http-only-flag, secure-flag, expiry, etc.), so it\'s OK to use an optimistic search algorithm when implementing this method. However, the search algorithm used SHOULD try to find cookies that `domainMatch()` the domain and `pathMatch()` the path in order to limit the amount of checking that needs to be done.\n\nAs of version 0.9.12, the `allPaths` option to `cookiejar.getCookies()` above will cause the path here to be `null`. If the path is `null`, path-matching MUST NOT be performed (i.e. domain-matching only).\n\nstore.putCookie(cookie, cb(err))\n--------------------------------\n\nAdds a new cookie to the store. The implementation SHOULD replace any existing cookie with the same `.domain`, `.path`, and `.key` properties -- depending on the nature of the implementation, it\'s possible that between the call to `fetchCookie` and `putCookie` that a duplicate `putCookie` can occur.\n\nThe `cookie` object MUST NOT be modified; the caller will have already updated the `.creation` and `.lastAccessed` properties.\n\nPass an error if the cookie cannot be stored.\n\nstore.updateCookie(oldCookie, newCookie, cb(err))\n-------------------------------------------------\n\nUpdate an existing cookie. The implementation MUST update the `.value` for a cookie with the same `domain`, `.path` and `.key`. The implementation SHOULD check that the old value in the store is equivalent to `oldCookie` - how the conflict is resolved is up to the store.\n\nThe `.lastAccessed` property will always be different between the two objects and `.created` will always be the same. Stores MAY ignore or defer the `.lastAccessed` change at the cost of affecting how cookies are sorted (or selected for deletion).\n\nStores may wish to optimize changing the `.value` of the cookie in the store versus storing a new cookie. If the implementation doesn\'t define this method a stub that calls `putCookie(newCookie,cb)` will be added to the store object.\n\nThe `newCookie` and `oldCookie` objects MUST NOT be modified.\n\nPass an error if the newCookie cannot be stored.\n\nstore.removeCookie(domain, path, key, cb(err))\n----------------------------------------------\n\nRemove a cookie from the store (see notes on `findCookie` about the uniqueness constraint).\n\nThe implementation MUST NOT pass an error if the cookie doesn\'t exist; only pass an error due to the failure to remove an existing cookie.\n\nstore.removeCookies(domain, path, cb(err))\n------------------------------------------\n\nRemoves matching cookies from the store. The `path` paramter is optional, and if missing means all paths in a domain should be removed.\n\nPass an error ONLY if removing any existing cookies failed.\n\n# TODO\n\n * _full_ RFC5890/RFC5891 canonicalization for domains in `cdomain()`\n * the optional `punycode` requirement implements RFC3492, but RFC6265 requires RFC5891\n * better tests for `validate()`?\n\n# Copyright and License\n\n(tl;dr: MIT with some MPL/1.1)\n\nCopyright GoInstant, Inc. and other contributors. All rights reserved.\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the "Software"), to\ndeal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\nsell copies 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\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\nIN THE SOFTWARE.\n\nPortions may be licensed under different licenses (in particular public-suffix.txt is MPL/1.1); please read the LICENSE file for full details.\n',
2008 silly resolved readmeFilename: 'README.md',
2008 silly resolved _id: 'tough-cookie@0.9.15',
2008 silly resolved _from: 'tough-cookie@~0.9.15' },
2008 silly resolved { author:
2008 silly resolved { name: 'Mikeal Rogers',
2008 silly resolved email: 'mikeal.rogers@gmail.com',
2008 silly resolved url: 'http://www.futurealoof.com' },
2008 silly resolved name: 'aws-sign2',
2008 silly resolved description: 'AWS signing. Originally pulled from LearnBoost/knox, maintained as vendor in request, now a standalone module.',
2008 silly resolved version: '0.5.0',
2008 silly resolved repository: { url: 'https://github.com/mikeal/aws-sign' },
2008 silly resolved main: 'index.js',
2008 silly resolved dependencies: {},
2008 silly resolved devDependencies: {},
2008 silly resolved optionalDependencies: {},
2008 silly resolved engines: { node: '*' },
2008 silly resolved readme: 'aws-sign\n========\n\nAWS signing. Originally pulled from LearnBoost/knox, maintained as vendor in request, now a standalone module.\n',
2008 silly resolved readmeFilename: 'README.md',
2008 silly resolved _id: 'aws-sign2@0.5.0',
2008 silly resolved _from: 'aws-sign2@~0.5.0' },
2008 silly resolved { name: 'hawk',
2008 silly resolved description: 'HTTP Hawk Authentication Scheme',
2008 silly resolved version: '1.0.0',
2008 silly resolved author:
2008 silly resolved { name: 'Eran Hammer',
2008 silly resolved email: 'eran@hueniverse.com',
2008 silly resolved url: 'http://hueniverse.com' },
2008 silly resolved contributors: [],
2008 silly resolved repository: { type: 'git', url: 'git://github.com/hueniverse/hawk' },
2008 silly resolved main: 'index',
2008 silly resolved keywords: [ 'http', 'authentication', 'scheme', 'hawk' ],
2008 silly resolved engines: { node: '>=0.8.0' },
2008 silly resolved dependencies:
2008 silly resolved { hoek: '0.9.x',
2008 silly resolved boom: '0.4.x',
2008 silly resolved cryptiles: '0.2.x',
2008 silly resolved sntp: '0.2.x' },
2008 silly resolved devDependencies:
2008 silly resolved { lab: '0.1.x',
2008 silly resolved 'complexity-report': '0.x.x',
2008 silly resolved localStorage: '1.0.x' },
2008 silly resolved scripts: { test: 'make test-cov' },
2008 silly resolved licenses: [ [Object] ],
2008 silly resolved readme: '![hawk Logo](https://raw.github.com/hueniverse/hawk/master/images/hawk.png)\n\n<img align="right" src="https://raw.github.com/hueniverse/hawk/master/images/logo.png" /> **Hawk** is an HTTP authentication scheme using a message authentication code (MAC) algorithm to provide partial\nHTTP request cryptographic verification. For more complex use cases such as access delegation, see [Oz](https://github.com/hueniverse/oz).\n\nCurrent version: **1.0**\n\n[![Build Status](https://secure.travis-ci.org/hueniverse/hawk.png)](http://travis-ci.org/hueniverse/hawk)\n\n# Table of Content\n\n- [**Introduction**](#introduction)\n - [Replay Protection](#replay-protection)\n - [Usage Example](#usage-example)\n - [Protocol Example](#protocol-example)\n - [Payload Validation](#payload-validation)\n - [Response Payload Validation](#response-payload-validation)\n - [Browser Support and Considerations](#browser-support-and-considerations)\n<p></p>\n- [**Single URI Authorization**](#single-uri-authorization)\n - [Usage Example](#bewit-usage-example)\n<p></p>\n- [**Security Considerations**](#security-considerations)\n - [MAC Keys Transmission](#mac-keys-transmission)\n - [Confidentiality of Requests](#confidentiality-of-requests)\n - [Spoofing by Counterfeit Servers](#spoofing-by-counterfeit-servers)\n - [Plaintext Storage of Credentials](#plaintext-storage-of-credentials)\n - [Entropy of Keys](#entropy-of-keys)\n - [Coverage Limitations](#coverage-limitations)\n - [Future Time Manipulation](#future-time-manipulation)\n - [Client Clock Poisoning](#client-clock-poisoning)\n - [Bewit Limitations](#bewit-limitations)\n - [Host Header Forgery](#host-header-forgery)\n<p></p>\n- [**Frequently Asked Questions**](#frequently-asked-questions)\n<p></p>\n- [**Acknowledgements**](#acknowledgements)\n\n# Introduction\n\n**Hawk** is an HTTP authentication scheme providing mechanisms for making authenticated HTTP requests with\npartial cryptographic verification of the request and response, covering the HTTP method, request URI, host,\nand optionally the request payload.\n\nSimilar to the HTTP [Digest access authentication schemes](http://www.ietf.org/rfc/rfc2617.txt), **Hawk** uses a set of\nclient credentials which include an identifier (e.g. username) and key (e.g. password). Likewise, just as with the Digest scheme,\nthe key is never included in authenticated requests. Instead, it is used to calculate a request MAC value which is\nincluded in its place.\n\nHowever, **Hawk** has several differences from Digest. In particular, while both use a nonce to limit the possibility of\nreplay attacks, in **Hawk** the client generates the nonce and uses it in combination with a timestamp, leading to less\n"chattiness" (interaction with the server).\n\nAlso unlike Digest, this scheme is not intended to protect the key itself (the password in Digest) because\nthe client and server must both have access to the key material in the clear.\n\nThe primary design goals of this scheme are to:\n* simplify and improve HTTP authentication for services that are unwilling or unable to deploy TLS for all resources,\n* secure credentials against leakage (e.g., when the client uses some form of dynamic configuration to determine where\n to send an authenticated request), and\n* avoid the exposure of credentials sent to a malicious server over an unauthenticated secure channel due to client\n failure to validate the server\'s identity as part of its TLS handshake.\n\nIn addition, **Hawk** supports a method for granting third-parties temporary access to individual resources using\na query parameter called _bewit_ (in falconry, a leather strap used to attach a tracking device to the leg of a hawk).\n\nThe **Hawk** scheme requires the establishment of a shared symmetric key between the client and the server,\nwhich is beyond the scope of this module. Typically, the shared credentials are established via an initial\nTLS-protected phase or derived from some other shared confidential information available to both the client\nand the server.\n\n\n## Replay Protection\n\nWithout replay protection, an attacker can use a compromised (but otherwise valid and authenticated) request more \nthan once, gaining access to a protected resource. To mitigate this, clients include both a nonce and a timestamp when \nmaking requests. This gives the server enough information to prevent replay attacks.\n\nThe nonce is generated by the client, and is a string unique across all requests with the same timestamp and\nkey identifier combination. \n\nThe timestamp enables the server to restrict the validity period of the credentials where requests occuring afterwards\nare rejected. It also removes the need for the server to retain an unbounded number of nonce values for future checks.\nBy default, **Hawk** uses a time window of 1 minute to allow for time skew between the client and server (which in\npractice translates to a maximum of 2 minutes as the skew can be positive or negative).\n\nUsing a timestamp requires the client\'s clock to be in sync with the server\'s clock. **Hawk** requires both the client\nclock and the server clock to use NTP to ensure synchronization. However, given the limitations of some client types\n(e.g. browsers) to deploy NTP, the server provides the client with its current time (in seconds precision) in response\nto a bad timestamp.\n\nThere is no expectation that the client will adjust its system clock to match the server (in fact, this would be a\npotential attack vector). Instead, the client only uses the server\'s time to calculate an offset used only\nfor communications with that particular server. The protocol rewards clients with synchronized clocks by reducing\nthe number of round trips required to authenticate the first request.\n\n\n## Usage Example\n\nServer code:\n\n```javascript\nvar Http = require(\'http\');\nvar Hawk = require(\'hawk\');\n\n\n// Credentials lookup function\n\nvar credentialsFunc = function (id, callback) {\n\n var credentials = {\n key: \'werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn\',\n algorithm: \'sha256\',\n user: \'Steve\'\n };\n\n return callback(null, credentials);\n};\n\n// Create HTTP server\n\nvar handler = function (req, res) {\n\n // Authenticate incoming request\n\n Hawk.server.authenticate(req, credentialsFunc, {}, function (err, credentials, artifacts) {\n\n // Prepare response\n\n var payload = (!err ? \'Hello \' + credentials.user + \' \' + artifacts.ext : \'Shoosh!\');\n var headers = { \'Content-Type\': \'text/plain\' };\n\n // Generate Server-Authorization response header\n\n var header = Hawk.server.header(credentials, artifacts, { payload: payload, contentType: headers[\'Content-Type\'] });\n headers[\'Server-Authorization\'] = header;\n\n // Send the response back\n\n res.writeHead(!err ? 200 : 401, headers);\n res.end(payload);\n });\n};\n\n// Start server\n\nHttp.createServer(handler).listen(8000, \'example.com\');\n```\n\nClient code:\n\n```javascript\nvar Request = require(\'request\');\nvar Hawk = require(\'hawk\');\n\n\n// Client credentials\n\nvar credentials = {\n id: \'dh37fgj492je\',\n key: \'werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn\',\n algorithm: \'sha256\'\n}\n\n// Request options\n\nvar requestOptions = {\n uri: \'http://example.com:8000/resource/1?b=1&a=2\',\n method: \'GET\',\n headers: {}\n};\n\n// Generate Authorization request header\n\nvar header = Hawk.client.header(\'http://example.com:8000/resource/1?b=1&a=2\', \'GET\', { credentials: credentials, ext: \'some-app-data\' });\nrequestOptions.headers.Authorization = header.field;\n\n// Send authenticated request\n\nRequest(requestOptions, function (error, response, body) {\n\n // Authenticate the server\'s response\n\n var isValid = Hawk.client.authenticate(response, credentials, header.artifacts, { payload: body });\n\n // Output results\n\n console.log(response.statusCode + \': \' + body + (isValid ? \' (valid)\' : \' (invalid)\'));\n});\n```\n\n**Hawk** utilized the [**SNTP**](https://github.com/hueniverse/sntp) module for time sync management. By default, the local\nmachine time is used. To automatically retrieve and synchronice the clock within the application, use the SNTP \'start()\' method.\n\n```javascript\nHawk.sntp.start();\n```\n\n\n## Protocol Example\n\nThe client attempts to access a protected resource without authentication, sending the following HTTP request to\nthe resource server:\n\n```\nGET /resource/1?b=1&a=2 HTTP/1.1\nHost: example.com:8000\n```\n\nThe resource server returns an authentication challenge.\n\n```\nHTTP/1.1 401 Unauthorized\nWWW-Authenticate: Hawk\n```\n\nThe client has previously obtained a set of **Hawk** credentials for accessing resources on the "http://example.com/"\nserver. The **Hawk** credentials issued to the client include the following attributes:\n\n* Key identifier: dh37fgj492je\n* Key: werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn\n* Algorithm: sha256\n\nThe client generates the authentication header by calculating a timestamp (e.g. the number of seconds since January 1,\n1970 00:00:00 GMT), generating a nonce, and constructing the normalized request string (each value followed by a newline\ncharacter):\n\n```\nhawk.1.header\n1353832234\nj4h3g2\nGET\n/resource/1?b=1&a=2\nexample.com\n8000\n\nsome-app-ext-data\n\n```\n\nThe request MAC is calculated using HMAC with the specified hash algorithm "sha256" and the key over the normalized request string.\nThe result is base64-encoded to produce the request MAC:\n\n```\n6R4rV5iE+NPoym+WwjeHzjAGXUtLNIxmo1vpMofpLAE=\n```\n\nThe client includes the **Hawk** key identifier, timestamp, nonce, application specific data, and request MAC with the request using\nthe HTTP `Authorization` request header field:\n\n```\nGET /resource/1?b=1&a=2 HTTP/1.1\nHost: example.com:8000\nAuthorization: Hawk id="dh37fgj492je", ts="1353832234", nonce="j4h3g2", ext="some-app-ext-data", mac="6R4rV5iE+NPoym+WwjeHzjAGXUtLNIxmo1vpMofpLAE="\n```\n\nThe server validates the request by calculating the request MAC again based on the request received and verifies the validity\nand scope of the **Hawk** credentials. If valid, the server responds with the requested resource.\n\n\n### Payload Validation\n\n**Hawk** provides optional payload validation. When generating the authentication header, the client calculates a payload hash\nusing the specified hash algorithm. The hash is calculated over the concatenated value of (each followed by a newline character):\n* `hawk.1.payload`\n* the content-type in lowercase, without any parameters (e.g. `application/json`)\n* the request payload prior to any content encoding (the exact representation requirements should be specified by the server for payloads other than simple single-part ascii to ensure interoperability)\n\nFor example:\n\n* Payload: `Thank you for flying Hawk`\n* Content Type: `text/plain`\n* Hash (sha256): `Yi9LfIIFRtBEPt74PVmbTF/xVAwPn7ub15ePICfgnuY=`\n\nResults in the following input to the payload hash function (newline terminated values):\n\n```\nhawk.1.payload\ntext/plain\nThank you for flying Hawk\n\n```\n\nWhich produces the following hash value:\n\n```\nYi9LfIIFRtBEPt74PVmbTF/xVAwPn7ub15ePICfgnuY=\n```\n\nThe client constructs the normalized request string (newline terminated values):\n\n```\nhawk.1.header\n1353832234\nj4h3g2\nPOST\n/resource/1?a=1&b=2\nexample.com\n8000\nYi9LfIIFRtBEPt74PVmbTF/xVAwPn7ub15ePICfgnuY=\nsome-app-ext-data\n\n```\n\nThen calculates the request MAC and includes the **Hawk** key identifier, timestamp, nonce, payload hash, application specific data,\nand request MAC, with the request using the HTTP `Authorization` request header field:\n\n```\nPOST /resource/1?a=1&b=2 HTTP/1.1\nHost: example.com:8000\nAuthorization: Hawk id="dh37fgj492je", ts="1353832234", nonce="j4h3g2", hash="Yi9LfIIFRtBEPt74PVmbTF/xVAwPn7ub15ePICfgnuY=", ext="some-app-ext-data", mac="aSe1DERmZuRl3pI36/9BdZmnErTw3sNzOOAUlfeKjVw="\n```\n\nIt is up to the server if and when it validates the payload for any given request, based solely on it\'s security policy\nand the nature of the data included.\n\nIf the payload is available at the time of authentication, the server uses the hash value provided by the client to construct\nthe normalized string and validates the MAC. If the MAC is valid, the server calculates the payload hash and compares the value\nwith the provided payload hash in the header. In many cases, checking the MAC first is faster than calculating the payload hash.\n\nHowever, if the payload is not available at authentication time (e.g. too large to fit in memory, streamed elsewhere, or processed\nat a different stage in the application), the server may choose to defer payload validation for later by retaining the hash value\nprovided by the client after validating the MAC.\n\nIt is important to note that MAC validation does not mean the hash value provided by the client is valid, only that the value\nincluded in the header was not modified. Without calculating the payload hash on the server and comparing it to the value provided\nby the client, the payload may be modified by an attacker.\n\n\n## Response Payload Validation\n\n**Hawk** provides partial response payload validation. The server includes the `Server-Authorization` response header which enables the\nclient to authenticate the response and ensure it is talking to the right server. **Hawk** defines the HTTP `Server-Authorization` header\nas a response header using the exact same syntax as the `Authorization` request header field.\n\nThe header is contructed using the same process as the client\'s request header. The server uses the same credentials and other\nartifacts provided by the client to constructs the normalized request string. The `ext` and `hash` values are replaced with\nnew values based on the server response. The rest as identical to those used by the client.\n\nThe result MAC digest is included with the optional `hash` and `ext` values:\n\n```\nServer-Authorization: Hawk mac="XIJRsMl/4oL+nn+vKoeVZPdCHXB4yJkNnBbTbHFZUYE=", hash="f9cDF/TDm7TkYRLnGwRMfeDzT6LixQVLvrIKhh0vgmM=", ext="response-specific"\n```\n\n\n## Browser Support and Considerations\n\nA browser script is provided for including using a `<script>` tag in [lib/browser.js](/lib/browser.js).\n\n**Hawk** relies on the _Server-Authorization_ and _WWW-Authenticate_ headers in its response to communicate with the client.\nTherefore, in case of CORS requests, it is important to consider sending _Access-Control-Expose-Headers_ with the value\n_"WWW-Authenticate, Server-Authorization"_ on each response from your server. As explained in the\n[specifications](http://www.w3.org/TR/cors/#access-control-expose-headers-response-header), it will indicate that these headers\ncan safely be accessed by the client (using getResponseHeader() on the XmlHttpRequest object). Otherwise you will be met with a\n["simple response header"](http://www.w3.org/TR/cors/#simple-response-header) which excludes these fields and would prevent the\nHawk client from authenticating the requests.You can read more about the why and how in this\n[article](http://www.html5rocks.com/en/tutorials/cors/#toc-adding-cors-support-to-the-server)\n\n\n# Single URI Authorization\n\nThere are cases in which limited and short-term access to a protected resource is granted to a third party which does not\nhave access to the shared credentials. For example, displaying a protected image on a web page accessed by anyone. **Hawk**\nprovides limited support for such URIs in the form of a _bewit_ - a URI query parameter appended to the request URI which contains\nthe necessary credentials to authenticate the request.\n\nBecause of the significant security risks involved in issuing such access, bewit usage is purposely limited only to GET requests\nand for a finite period of time. Both the client and server can issue bewit credentials, however, the server should not use the same\ncredentials as the client to maintain clear traceability as to who issued which credentials.\n\nIn order to simplify implementation, bewit credentials do not support single-use policy and can be replayed multiple times within\nthe granted access timeframe. \n\n\n## Bewit Usage Example\n\nServer code:\n\n```javascript\nvar Http = require(\'http\');\nvar Hawk = require(\'hawk\');\n\n\n// Credentials lookup function\n\nvar credentialsFunc = function (id, callback) {\n\n var credentials = {\n key: \'werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn\',\n algorithm: \'sha256\'\n };\n\n return callback(null, credentials);\n};\n\n// Create HTTP server\n\nvar handler = function (req, res) {\n\n Hawk.uri.authenticate(req, credentialsFunc, {}, function (err, credentials, attributes) {\n\n res.writeHead(!err ? 200 : 401, { \'Content-Type\': \'text/plain\' });\n res.end(!err ? \'Access granted\' : \'Shoosh!\');\n });\n};\n\nHttp.createServer(handler).listen(8000, \'example.com\');\n```\n\nBewit code generation:\n\n```javascript\nvar Request = require(\'request\');\nvar Hawk = require(\'hawk\');\n\n\n// Client credentials\n\nvar credentials = {\n id: \'dh37fgj492je\',\n key: \'werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn\',\n algorithm: \'sha256\'\n}\n\n// Generate bewit\n\nvar duration = 60 * 5; // 5 Minutes\nvar bewit = Hawk.uri.getBewit(\'http://example.com:8080/resource/1?b=1&a=2\', { credentials: credentials, ttlSec: duration, ext: \'some-app-data\' });\nvar uri = \'http://example.com:8000/resource/1?b=1&a=2\' + \'&bewit=\' + bewit;\n```\n\n\n# Security Considerations\n\nThe greatest sources of security risks are usually found not in **Hawk** but in the policies and procedures surrounding its use.\nImplementers are strongly encouraged to assess how this module addresses their security requirements. This section includes\nan incomplete list of security considerations that must be reviewed and understood before deploying **Hawk** on the server.\nMany of the protections provided in **Hawk** depends on whether and how they are used.\n\n### MAC Keys Transmission\n\n**Hawk** does not provide any mechanism for obtaining or transmitting the set of shared credentials required. Any mechanism used\nto obtain **Hawk** credentials must ensure that these transmissions are protected using transport-layer mechanisms such as TLS.\n\n### Confidentiality of Requests\n\nWhile **Hawk** provides a mechanism for verifying the integrity of HTTP requests, it provides no guarantee of request\nconfidentiality. Unless other precautions are taken, eavesdroppers will have full access to the request content. Servers should\ncarefully consider the types of data likely to be sent as part of such requests, and employ transport-layer security mechanisms\nto protect sensitive resources.\n\n### Spoofing by Counterfeit Servers\n\n**Hawk** provides limited verification of the server authenticity. When receiving a response back from the server, the server\nmay choose to include a response `Server-Authorization` header which the client can use to verify the response. However, it is up to\nthe server to determine when such measure is included, to up to the client to enforce that policy.\n\nA hostile party could take advantage of this by intercepting the client\'s requests and returning misleading or otherwise\nincorrect responses. Service providers should consider such attacks when developing services using this protocol, and should\nrequire transport-layer security for any requests where the authenticity of the resource server or of server responses is an issue.\n\n### Plaintext Storage of Credentials\n\nThe **Hawk** key functions the same way passwords do in traditional authentication systems. In order to compute the request MAC,\nthe server must have access to the key in plaintext form. This is in contrast, for example, to modern operating systems, which\nstore only a one-way hash of user credentials.\n\nIf an attacker were to gain access to these keys - or worse, to the server\'s database of all such keys - he or she would be able\nto perform any action on behalf of any resource owner. Accordingly, it is critical that servers protect these keys from unauthorized\naccess.\n\n### Entropy of Keys\n\nUnless a transport-layer security protocol is used, eavesdroppers will have full access to authenticated requests and request\nMAC values, and will thus be able to mount offline brute-force attacks to recover the key used. Servers should be careful to\nassign keys which are long enough, and random enough, to resist such attacks for at least the length of time that the **Hawk**\ncredentials are valid.\n\nFor example, if the credentials are valid for two weeks, servers should ensure that it is not possible to mount a brute force\nattack that recovers the key in less than two weeks. Of course, servers are urged to err on the side of caution, and use the\nlongest key reasonable.\n\nIt is equally important that the pseudo-random number generator (PRNG) used to generate these keys be of sufficiently high\nquality. Many PRNG implementations generate number sequences that may appear to be random, but which nevertheless exhibit\npatterns or other weaknesses which make cryptanalysis or brute force attacks easier. Implementers should be careful to use\ncryptographically secure PRNGs to avoid these problems.\n\n### Coverage Limitations\n\nThe request MAC only covers the HTTP `Host` header and optionally the `Content-Type` header. It does not cover any other headers\nwhich can often affect how the request body is interpreted by the server. If the server behavior is influenced by the presence\nor value of such headers, an attacker can manipulate the request headers without being detected. Implementers should use the\n`ext` feature to pass application-specific information via the `Authorization` header which is protected by the request MAC.\n\nThe response authentication, when performed, only covers the response payload, content-type, and the request information \nprovided by the client in it\'s request (method, resource, timestamp, nonce, etc.). It does not cover the HTTP status code or\nany other response header field (e.g. Location) which can affect the client\'s behaviour.\n\n### Future Time Manipulation\n\nThe protocol relies on a clock sync between the client and server. To accomplish this, the server informs the client of its\ncurrent time when an invalid timestamp is received.\n\nIf an attacker is able to manipulate this information and cause the client to use an incorrect time, it would be able to cause\nthe client to generate authenticated requests using time in the future. Such requests will fail when sent by the client, and will\nnot likely leave a trace on the server (given the common implementation of nonce, if at all enforced). The attacker will then\nbe able to replay the request at the correct time without detection.\n\nThe client must only use the time information provided by the server if:\n* it was delivered over a TLS connection and the server identity has been verified, or\n* the `tsm` MAC digest calculated using the same client credentials over the timestamp has been verified.\n\n### Client Clock Poisoning\n\nWhen receiving a request with a bad timestamp, the server provides the client with its current time. The client must never use\nthe time received from the server to adjust its own clock, and must only use it to calculate an offset for communicating with\nthat particular server.\n\n### Bewit Limitations\n\nSpecial care must be taken when issuing bewit credentials to third parties. Bewit credentials are valid until expiration and cannot\nbe revoked or limited without using other means. Whatever resource they grant access to will be completely exposed to anyone with\naccess to the bewit credentials which act as bearer credentials for that particular resource. While bewit usage is limited to GET\nrequests only and therefore cannot be used to perform transactions or change server state, it can still be used to expose private\nand sensitive information.\n\n### Host Header Forgery\n\nHawk validates the incoming request MAC against the incoming HTTP Host header. However, unless the optional `host` and `port`\noptions are used with `server.authenticate()`, a malicous client can mint new host names pointing to the server\'s IP address and\nuse that to craft an attack by sending a valid request that\'s meant for another hostname than the one used by the server. Server\nimplementors must manually verify that the host header received matches their expectation (or use the options mentioned above).\n\n# Frequently Asked Questions\n\n### Where is the protocol specification?\n\nIf you are looking for some prose explaining how all this works, **this is it**. **Hawk** is being developed as an open source\nproject instead of a standard. In other words, the [code](/hueniverse/hawk/tree/master/lib) is the specification. Not sure about\nsomething? Open an issue!\n\n### Is it done?\n\nAt if version 0.10.0, **Hawk** is feature-complete. However, until this module reaches version 1.0.0 it is considered experimental\nand is likely to change. This also means your feedback and contribution are very welcome. Feel free to open issues with questions\nand suggestions.\n\n### Where can I find **Hawk** implementations in other languages?\n\n**Hawk**\'s only reference implementation is provided in JavaScript as a node.js module. However, others are actively porting it to other\nplatforms. There is already a [PHP](https://github.com/alexbilbie/PHP-Hawk),\n[.NET](https://github.com/pcibraro/hawknet), and [JAVA](https://github.com/wealdtech/hawk) libraries available. The full list\nis maintained [here](https://github.com/hueniverse/hawk/issues?labels=port). Please add an issue if you are working on another\nport. A cross-platform test-suite is in the works.\n\n### Why isn\'t the algorithm part of the challenge or dynamically negotiated?\n\nThe algorithm used is closely related to the key issued as different algorithms require different key sizes (and other\nrequirements). While some keys can be used for multiple algorithm, the protocol is designed to closely bind the key and algorithm\ntogether as part of the issued credentials.\n\n### Why is Host and Content-Type the only headers covered by the request MAC?\n\nIt is really hard to include other headers. Headers can be changed by proxies and other intermediaries and there is no\nwell-established way to normalize them. Many platforms change the case of header field names and values. The only\nstraight-forward solution is to include the headers in some blob (say, base64 encoded JSON) and include that with the request,\nan approach taken by JWT and other such formats. However, that design violates the HTTP header boundaries, repeats information,\nand introduces other security issues because firewalls will not be aware of these "hidden" headers. In addition, any information\nrepeated must be compared to the duplicated information in the header and therefore only moves the problem elsewhere.\n\n### Why not just use HTTP Digest?\n\nDigest requires pre-negotiation to establish a nonce. This means you can\'t just make a request - you must first send\na protocol handshake to the server. This pattern has become unacceptable for most web services, especially mobile\nwhere extra round-trip are costly.\n\n### Why bother with all this nonce and timestamp business?\n\n**Hawk** is an attempt to find a reasonable, practical compromise between security and usability. OAuth 1.0 got timestamp\nand nonces halfway right but failed when it came to scalability and consistent developer experience. **Hawk** addresses\nit by requiring the client to sync its clock, but provides it with tools to accomplish it.\n\nIn general, replay protection is a matter of application-specific threat model. It is less of an issue on a TLS-protected\nsystem where the clients are implemented using best practices and are under the control of the server. Instead of dropping\nreplay protection, **Hawk** offers a required time window and an optional nonce verification. Together, it provides developers\nwith the ability to decide how to enforce their security policy without impacting the client\'s implementation.\n\n### What are `app` and `dlg` in the authorization header and normalized mac string?\n\nThe original motivation for **Hawk** was to replace the OAuth 1.0 use cases. This included both a simple client-server mode which\nthis module is specifically designed for, and a delegated access mode which is being developed separately in\n[Oz](https://github.com/hueniverse/oz). In addition to the **Hawk** use cases, Oz requires another attribute: the application id `app`.\nThis provides binding between the credentials and the application in a way that prevents an attacker from tricking an application\nto use credentials issued to someone else. It also has an optional \'delegated-by\' attribute `dlg` which is the application id of the\napplication the credentials were directly issued to. The goal of these two additions is to allow Oz to utilize **Hawk** directly,\nbut with the additional security of delegated credentials.\n\n### What is the purpose of the static strings used in each normalized MAC input?\n\nWhen calculating a hash or MAC, a static prefix (tag) is added. The prefix is used to prevent MAC values from being\nused or reused for a purpose other than what they were created for (i.e. prevents switching MAC values between a request,\nresponse, and a bewit use cases). It also protects against expliots created after a potential change in how the protocol\ncreates the normalized string. For example, if a future version would switch the order of nonce and timestamp, it\ncan create an exploit opportunity for cases where the nonce is similar in format to a timestamp.\n\n### Does **Hawk** have anything to do with OAuth?\n\nShort answer: no.\n\n**Hawk** was originally proposed as the OAuth MAC Token specification. However, the OAuth working group in its consistent\nincompetence failed to produce a final, usable solution to address one of the most popular use cases of OAuth 1.0 - using it\nto authenticate simple client-server transactions (i.e. two-legged). As you can guess, the OAuth working group is still hard\nat work to produce more garbage.\n\n**Hawk** provides a simple HTTP authentication scheme for making client-server requests. It does not address the OAuth use case\nof delegating access to a third party. If you are looking for an OAuth alternative, check out [Oz](https://github.com/hueniverse/oz).\n\n\n# Acknowledgements\n\n**Hawk** is a derivative work of the [HTTP MAC Authentication Scheme](http://tools.ietf.org/html/draft-hammer-oauth-v2-mac-token-05) proposal\nco-authored by Ben Adida, Adam Barth, and Eran Hammer, which in turn was based on the OAuth 1.0 community specification.\n\nSpecial thanks to Ben Laurie for his always insightful feedback and advice.\n\nThe **Hawk** logo was created by [Chris Carrasco](http://chriscarrasco.com).\n',
2008 silly resolved readmeFilename: 'README.md',
2008 silly resolved _id: 'hawk@1.0.0',
2008 silly resolved _from: 'hawk@~1.0.0' } ]
2009 info install qs@0.6.6 into /usr/local/lib/node_modules/jitsu/node_modules/request
2010 info install json-stringify-safe@5.0.0 into /usr/local/lib/node_modules/jitsu/node_modules/request
2011 info install forever-agent@0.5.2 into /usr/local/lib/node_modules/jitsu/node_modules/request
2012 info install node-uuid@1.4.1 into /usr/local/lib/node_modules/jitsu/node_modules/request
2013 info install mime@1.2.11 into /usr/local/lib/node_modules/jitsu/node_modules/request
2014 info install form-data@0.1.3 into /usr/local/lib/node_modules/jitsu/node_modules/request
2015 info install tunnel-agent@0.3.0 into /usr/local/lib/node_modules/jitsu/node_modules/request
2016 info install http-signature@0.10.0 into /usr/local/lib/node_modules/jitsu/node_modules/request
2017 info install oauth-sign@0.3.0 into /usr/local/lib/node_modules/jitsu/node_modules/request
2018 info install tough-cookie@0.9.15 into /usr/local/lib/node_modules/jitsu/node_modules/request
2019 info install aws-sign2@0.5.0 into /usr/local/lib/node_modules/jitsu/node_modules/request
2020 info install hawk@1.0.0 into /usr/local/lib/node_modules/jitsu/node_modules/request
2021 info installOne qs@0.6.6
2022 info installOne json-stringify-safe@5.0.0
2023 info installOne forever-agent@0.5.2
2024 info installOne node-uuid@1.4.1
2025 info installOne mime@1.2.11
2026 info installOne form-data@0.1.3
2027 info installOne tunnel-agent@0.3.0
2028 info installOne http-signature@0.10.0
2029 info installOne oauth-sign@0.3.0
2030 info installOne tough-cookie@0.9.15
2031 info installOne aws-sign2@0.5.0
2032 info installOne hawk@1.0.0
2033 verbose from cache /Users/osx/.npm/qs/0.6.6/package/package.json
2034 info /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/qs unbuild
2035 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/qs/package.json
2036 verbose from cache /Users/osx/.npm/json-stringify-safe/5.0.0/package/package.json
2037 info /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/json-stringify-safe unbuild
2038 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/json-stringify-safe/package.json
2039 verbose from cache /Users/osx/.npm/forever-agent/0.5.2/package/package.json
2040 info /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/forever-agent unbuild
2041 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/forever-agent/package.json
2042 verbose from cache /Users/osx/.npm/node-uuid/1.4.1/package/package.json
2043 info /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/node-uuid unbuild
2044 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/node-uuid/package.json
2045 verbose from cache /Users/osx/.npm/mime/1.2.11/package/package.json
2046 info /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/mime unbuild
2047 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/mime/package.json
2048 verbose from cache /Users/osx/.npm/form-data/0.1.3/package/package.json
2049 info /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/form-data unbuild
2050 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/form-data/package.json
2051 verbose from cache /Users/osx/.npm/tunnel-agent/0.3.0/package/package.json
2052 info /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/tunnel-agent unbuild
2053 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/tunnel-agent/package.json
2054 verbose from cache /Users/osx/.npm/http-signature/0.10.0/package/package.json
2055 info /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/http-signature unbuild
2056 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/http-signature/package.json
2057 verbose from cache /Users/osx/.npm/oauth-sign/0.3.0/package/package.json
2058 info /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/oauth-sign unbuild
2059 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/oauth-sign/package.json
2060 verbose from cache /Users/osx/.npm/tough-cookie/0.9.15/package/package.json
2061 info /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/tough-cookie unbuild
2062 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/tough-cookie/package.json
2063 verbose from cache /Users/osx/.npm/aws-sign2/0.5.0/package/package.json
2064 info /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/aws-sign2 unbuild
2065 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/aws-sign2/package.json
2066 verbose from cache /Users/osx/.npm/hawk/1.0.0/package/package.json
2067 info /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/hawk unbuild
2068 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/hawk/package.json
2069 silly gunzTarPerm extractEntry README.md
2070 silly gunzTarPerm extractEntry LICENSE
2071 silly gunzTarPerm extractEntry README.md
2072 silly gunzTarPerm extractEntry LICENSE
2073 verbose tar unpack /Users/osx/.npm/qs/0.6.6/package.tgz
2074 silly lockFile 64a29f65--modules-request-node-modules-qs /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/qs
2075 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/qs /Users/osx/.npm/64a29f65--modules-request-node-modules-qs.lock
2076 silly lockFile bab7cb7f-ers-osx-npm-qs-0-6-6-package-tgz /Users/osx/.npm/qs/0.6.6/package.tgz
2077 verbose lock /Users/osx/.npm/qs/0.6.6/package.tgz /Users/osx/.npm/bab7cb7f-ers-osx-npm-qs-0-6-6-package-tgz.lock
2078 silly gunzTarPerm extractEntry LICENSE
2079 silly gunzTarPerm extractEntry ignore.js
2080 verbose tar unpack /Users/osx/.npm/json-stringify-safe/5.0.0/package.tgz
2081 silly lockFile 53c15d36-node-modules-json-stringify-safe /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/json-stringify-safe
2082 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/json-stringify-safe /Users/osx/.npm/53c15d36-node-modules-json-stringify-safe.lock
2083 silly lockFile 63eefeff-stringify-safe-5-0-0-package-tgz /Users/osx/.npm/json-stringify-safe/5.0.0/package.tgz
2084 verbose lock /Users/osx/.npm/json-stringify-safe/5.0.0/package.tgz /Users/osx/.npm/63eefeff-stringify-safe-5-0-0-package-tgz.lock
2085 verbose tar unpack /Users/osx/.npm/forever-agent/0.5.2/package.tgz
2086 silly lockFile 5a245298-quest-node-modules-forever-agent /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/forever-agent
2087 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/forever-agent /Users/osx/.npm/5a245298-quest-node-modules-forever-agent.lock
2088 silly lockFile e5e78006--forever-agent-0-5-2-package-tgz /Users/osx/.npm/forever-agent/0.5.2/package.tgz
2089 verbose lock /Users/osx/.npm/forever-agent/0.5.2/package.tgz /Users/osx/.npm/e5e78006--forever-agent-0-5-2-package-tgz.lock
2090 verbose tar unpack /Users/osx/.npm/node-uuid/1.4.1/package.tgz
2091 silly lockFile 6faa8023-s-request-node-modules-node-uuid /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/node-uuid
2092 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/node-uuid /Users/osx/.npm/6faa8023-s-request-node-modules-node-uuid.lock
2093 silly lockFile 74f7249a--npm-node-uuid-1-4-1-package-tgz /Users/osx/.npm/node-uuid/1.4.1/package.tgz
2094 verbose lock /Users/osx/.npm/node-uuid/1.4.1/package.tgz /Users/osx/.npm/74f7249a--npm-node-uuid-1-4-1-package-tgz.lock
2095 verbose tar unpack /Users/osx/.npm/mime/1.2.11/package.tgz
2096 silly lockFile 6da87b99-odules-request-node-modules-mime /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/mime
2097 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/mime /Users/osx/.npm/6da87b99-odules-request-node-modules-mime.lock
2098 silly lockFile 9a29f0ac--osx-npm-mime-1-2-11-package-tgz /Users/osx/.npm/mime/1.2.11/package.tgz
2099 verbose lock /Users/osx/.npm/mime/1.2.11/package.tgz /Users/osx/.npm/9a29f0ac--osx-npm-mime-1-2-11-package-tgz.lock
2100 verbose tar unpack /Users/osx/.npm/form-data/0.1.3/package.tgz
2101 silly lockFile 48e38e1f-s-request-node-modules-form-data /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/form-data
2102 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/form-data /Users/osx/.npm/48e38e1f-s-request-node-modules-form-data.lock
2103 silly lockFile 40bad14c--npm-form-data-0-1-3-package-tgz /Users/osx/.npm/form-data/0.1.3/package.tgz
2104 verbose lock /Users/osx/.npm/form-data/0.1.3/package.tgz /Users/osx/.npm/40bad14c--npm-form-data-0-1-3-package-tgz.lock
2105 verbose tar unpack /Users/osx/.npm/tunnel-agent/0.3.0/package.tgz
2106 silly lockFile fca2ace6-equest-node-modules-tunnel-agent /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/tunnel-agent
2107 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/tunnel-agent /Users/osx/.npm/fca2ace6-equest-node-modules-tunnel-agent.lock
2108 silly lockFile 3ec98e3d-m-tunnel-agent-0-3-0-package-tgz /Users/osx/.npm/tunnel-agent/0.3.0/package.tgz
2109 verbose lock /Users/osx/.npm/tunnel-agent/0.3.0/package.tgz /Users/osx/.npm/3ec98e3d-m-tunnel-agent-0-3-0-package-tgz.lock
2110 verbose tar unpack /Users/osx/.npm/http-signature/0.10.0/package.tgz
2111 silly lockFile 23e51c0b-uest-node-modules-http-signature /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/http-signature
2112 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/http-signature /Users/osx/.npm/23e51c0b-uest-node-modules-http-signature.lock
2113 silly lockFile b54421aa-ttp-signature-0-10-0-package-tgz /Users/osx/.npm/http-signature/0.10.0/package.tgz
2114 verbose lock /Users/osx/.npm/http-signature/0.10.0/package.tgz /Users/osx/.npm/b54421aa-ttp-signature-0-10-0-package-tgz.lock
2115 verbose tar unpack /Users/osx/.npm/oauth-sign/0.3.0/package.tgz
2116 silly lockFile f400a18a--request-node-modules-oauth-sign /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/oauth-sign
2117 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/oauth-sign /Users/osx/.npm/f400a18a--request-node-modules-oauth-sign.lock
2118 silly lockFile d7dfcb7e-npm-oauth-sign-0-3-0-package-tgz /Users/osx/.npm/oauth-sign/0.3.0/package.tgz
2119 verbose lock /Users/osx/.npm/oauth-sign/0.3.0/package.tgz /Users/osx/.npm/d7dfcb7e-npm-oauth-sign-0-3-0-package-tgz.lock
2120 verbose tar unpack /Users/osx/.npm/tough-cookie/0.9.15/package.tgz
2121 silly lockFile 634b10ba-equest-node-modules-tough-cookie /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/tough-cookie
2122 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/tough-cookie /Users/osx/.npm/634b10ba-equest-node-modules-tough-cookie.lock
2123 silly lockFile f1c898be--tough-cookie-0-9-15-package-tgz /Users/osx/.npm/tough-cookie/0.9.15/package.tgz
2124 verbose lock /Users/osx/.npm/tough-cookie/0.9.15/package.tgz /Users/osx/.npm/f1c898be--tough-cookie-0-9-15-package-tgz.lock
2125 verbose tar unpack /Users/osx/.npm/aws-sign2/0.5.0/package.tgz
2126 silly lockFile d69ae838-s-request-node-modules-aws-sign2 /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/aws-sign2
2127 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/aws-sign2 /Users/osx/.npm/d69ae838-s-request-node-modules-aws-sign2.lock
2128 silly lockFile 486aeba8--npm-aws-sign2-0-5-0-package-tgz /Users/osx/.npm/aws-sign2/0.5.0/package.tgz
2129 verbose lock /Users/osx/.npm/aws-sign2/0.5.0/package.tgz /Users/osx/.npm/486aeba8--npm-aws-sign2-0-5-0-package-tgz.lock
2130 verbose tar unpack /Users/osx/.npm/hawk/1.0.0/package.tgz
2131 silly lockFile 5a1f8d28-odules-request-node-modules-hawk /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/hawk
2132 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/hawk /Users/osx/.npm/5a1f8d28-odules-request-node-modules-hawk.lock
2133 silly lockFile 32ffb87e-s-osx-npm-hawk-1-0-0-package-tgz /Users/osx/.npm/hawk/1.0.0/package.tgz
2134 verbose lock /Users/osx/.npm/hawk/1.0.0/package.tgz /Users/osx/.npm/32ffb87e-s-osx-npm-hawk-1-0-0-package-tgz.lock
2135 silly addNameRange number 2 { name: 'preacher-api',
2135 silly addNameRange range: '>=0.1.0- <0.2.0-',
2135 silly addNameRange hasData: true }
2136 silly addNameRange versions [ 'preacher-api',
2136 silly addNameRange [ '0.1.0',
2136 silly addNameRange '0.1.1',
2136 silly addNameRange '0.1.2',
2136 silly addNameRange '0.1.3',
2136 silly addNameRange '0.1.4',
2136 silly addNameRange '0.1.5',
2136 silly addNameRange '0.1.6',
2136 silly addNameRange '0.1.7' ] ]
2137 verbose addNamed [ 'preacher-api', '0.1.7' ]
2138 verbose addNamed [ '0.1.7', '0.1.7' ]
2139 silly lockFile 4d54a76c-preacher-api-0-1-7 preacher-api@0.1.7
2140 verbose lock preacher-api@0.1.7 /Users/osx/.npm/4d54a76c-preacher-api-0-1-7.lock
2141 silly gunzTarPerm modes [ '755', '644' ]
2142 silly gunzTarPerm modes [ '755', '644' ]
2143 silly gunzTarPerm modes [ '755', '644' ]
2144 silly gunzTarPerm modes [ '755', '644' ]
2145 silly gunzTarPerm modes [ '755', '644' ]
2146 silly gunzTarPerm modes [ '755', '644' ]
2147 silly gunzTarPerm modes [ '755', '644' ]
2148 verbose read json /Users/osx/.npm/preacher-api/0.1.7/package/package.json
2149 silly gunzTarPerm extractEntry which.js
2150 silly gunzTarPerm extractEntry bin/which
2151 silly gunzTarPerm extractEntry package.json
2152 silly gunzTarPerm extractEntry semver.js
2153 silly gunzTarPerm extractEntry test.js
2154 silly gunzTarPerm extractEntry bin/semver
2155 silly gunzTarPerm extractEntry package.json
2156 silly gunzTarPerm extractEntry example/basic.js
2157 silly gunzTarPerm extractEntry test/.npmignore
2158 silly gunzTarPerm extractEntry package.json
2159 silly gunzTarPerm extractEntry package.json
2160 silly gunzTarPerm extractEntry package.json
2161 silly gunzTarPerm extractEntry package.json
2162 silly gunzTarPerm extractEntry package.json
2163 silly gunzTarPerm extractEntry .npmignore
2164 silly gunzTarPerm extractEntry index.js
2165 silly gunzTarPerm extractEntry README.md
2166 silly gunzTarPerm extractEntry LICENSE
2167 silly gunzTarPerm extractEntry README.md
2168 silly gunzTarPerm extractEntry LICENSE
2169 silly gunzTarPerm extractEntry License
2170 silly gunzTarPerm extractEntry Readme.md
2171 silly gunzTarPerm extractEntry README.md
2172 silly gunzTarPerm extractEntry LICENSE
2173 silly lockFile 4d54a76c-preacher-api-0-1-7 preacher-api@0.1.7
2174 silly lockFile 4d54a76c-preacher-api-0-1-7 preacher-api@0.1.7
2175 silly gunzTarPerm extractEntry README.md
2176 silly gunzTarPerm extractEntry LICENSE
2177 silly gunzTarPerm extractEntry README.md
2178 silly gunzTarPerm extractEntry LICENSE
2179 silly lockFile 9b1f3741-preacher-api-0-1-x preacher-api@0.1.x
2180 silly lockFile 9b1f3741-preacher-api-0-1-x preacher-api@0.1.x
2181 silly gunzTarPerm extractEntry test/00-setup.js
2182 silly gunzTarPerm extractEntry .gitmodules
2183 silly gunzTarPerm extractEntry Readme.md
2184 silly gunzTarPerm extractEntry stringify.js
2185 silly gunzTarPerm extractEntry test.js
2186 silly gunzTarPerm extractEntry index.js
2187 silly gunzTarPerm extractEntry index.js
2188 silly gunzTarPerm extractEntry index.js
2189 silly gunzTarPerm extractEntry test.js
2190 silly gunzTarPerm extractEntry index.js
2191 silly gunzTarPerm extractEntry lib/form_data.js
2192 silly gunzTarPerm extractEntry test/basic.js
2193 silly gunzTarPerm extractEntry test/common.js
2194 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/which/package.json
2195 silly gunzTarPerm extractEntry test/ignore-most.js
2196 silly gunzTarPerm extractEntry test/nested-ignores.js
2197 silly lockFile 34d8c33b-dules-canihaz-node-modules-which /usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/which
2198 silly lockFile 34d8c33b-dules-canihaz-node-modules-which /usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/which
2199 silly gunzTarPerm extractEntry test/unignore-child.js
2200 silly gunzTarPerm extractEntry test/zz-cleanup.js
2201 silly lockFile 21225418--osx-npm-which-1-0-5-package-tgz /Users/osx/.npm/which/1.0.5/package.tgz
2202 silly lockFile 21225418--osx-npm-which-1-0-5-package-tgz /Users/osx/.npm/which/1.0.5/package.tgz
2203 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/json-stringify-safe/package.json
2204 info preinstall which@1.0.5
2205 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/which/package.json
2206 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/forever-agent/package.json
2207 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/aws-sign2/package.json
2208 verbose readDependencies using package.json deps
2209 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/which/package.json
2210 verbose readDependencies using package.json deps
2211 silly resolved []
2212 verbose about to build /usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/which
2213 info build /usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/which
2214 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/which/package.json
2215 verbose linkStuff [ true,
2215 verbose linkStuff '/usr/local/lib/node_modules',
2215 verbose linkStuff false,
2215 verbose linkStuff '/usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules' ]
2216 info linkStuff which@1.0.5
2217 verbose linkBins which@1.0.5
2218 verbose link bins [ { which: './bin/which' },
2218 verbose link bins '/usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/.bin',
2218 verbose link bins false ]
2219 verbose linkMans which@1.0.5
2220 verbose rebuildBundles which@1.0.5
2221 silly gunzTarPerm extractEntry test/.ignore
2222 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/qs/package.json
2223 silly lockFile 53c15d36-node-modules-json-stringify-safe /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/json-stringify-safe
2224 silly lockFile 53c15d36-node-modules-json-stringify-safe /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/json-stringify-safe
2225 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/tunnel-agent/package.json
2226 silly lockFile 63eefeff-stringify-safe-5-0-0-package-tgz /Users/osx/.npm/json-stringify-safe/5.0.0/package.tgz
2227 silly lockFile 63eefeff-stringify-safe-5-0-0-package-tgz /Users/osx/.npm/json-stringify-safe/5.0.0/package.tgz
2228 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/form-data/package.json
2229 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/oauth-sign/package.json
2230 info install which@1.0.5
2231 info postinstall which@1.0.5
2232 silly lockFile 5a245298-quest-node-modules-forever-agent /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/forever-agent
2233 silly lockFile 5a245298-quest-node-modules-forever-agent /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/forever-agent
2234 silly lockFile d69ae838-s-request-node-modules-aws-sign2 /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/aws-sign2
2235 silly lockFile d69ae838-s-request-node-modules-aws-sign2 /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/aws-sign2
2236 info preinstall json-stringify-safe@5.0.0
2237 silly lockFile 64a29f65--modules-request-node-modules-qs /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/qs
2238 silly lockFile 64a29f65--modules-request-node-modules-qs /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/qs
2239 silly lockFile e5e78006--forever-agent-0-5-2-package-tgz /Users/osx/.npm/forever-agent/0.5.2/package.tgz
2240 silly lockFile e5e78006--forever-agent-0-5-2-package-tgz /Users/osx/.npm/forever-agent/0.5.2/package.tgz
2241 silly lockFile 486aeba8--npm-aws-sign2-0-5-0-package-tgz /Users/osx/.npm/aws-sign2/0.5.0/package.tgz
2242 silly lockFile 486aeba8--npm-aws-sign2-0-5-0-package-tgz /Users/osx/.npm/aws-sign2/0.5.0/package.tgz
2243 http 304 https://registry.npmjs.org/graceful-fs
2244 silly registry.get cb [ 304,
2244 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:57 GMT',
2244 silly registry.get server: 'Apache',
2244 silly registry.get via: '1.1 varnish',
2244 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:57 GMT',
2244 silly registry.get 'cache-control': 'max-age=1',
2244 silly registry.get etag: '"435YWY1ZLVPWPRJ03GQSI72GL"',
2244 silly registry.get 'x-served-by': 'cache-jfk1025-JFK',
2244 silly registry.get 'x-cache': 'HIT',
2244 silly registry.get 'x-cache-hits': '1',
2244 silly registry.get 'x-timer': 'S1401826557.158152,VS0,VE118',
2244 silly registry.get vary: 'Accept',
2244 silly registry.get 'content-length': '0',
2244 silly registry.get 'keep-alive': 'timeout=10, max=49',
2244 silly registry.get connection: 'Keep-Alive' } ]
2245 verbose etag graceful-fs from cache
2246 http 304 https://registry.npmjs.org/request/2.25.0
2247 silly registry.get cb [ 304,
2247 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:57 GMT',
2247 silly registry.get server: 'Apache',
2247 silly registry.get via: '1.1 varnish',
2247 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:57 GMT',
2247 silly registry.get 'cache-control': 'max-age=1',
2247 silly registry.get etag: '"4DH0OSB4P0PUZXHA6YUPMLYTV"',
2247 silly registry.get 'x-served-by': 'cache-jfk1021-JFK',
2247 silly registry.get 'x-cache': 'MISS',
2247 silly registry.get 'x-cache-hits': '0',
2247 silly registry.get 'x-timer': 'S1401826557.172228,VS0,VE101',
2247 silly registry.get vary: 'Accept',
2247 silly registry.get 'content-length': '0',
2247 silly registry.get 'keep-alive': 'timeout=10, max=48',
2247 silly registry.get connection: 'Keep-Alive' } ]
2248 verbose etag request/2.25.0 from cache
2249 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/json-stringify-safe/package.json
2250 silly lockFile bab7cb7f-ers-osx-npm-qs-0-6-6-package-tgz /Users/osx/.npm/qs/0.6.6/package.tgz
2251 silly lockFile bab7cb7f-ers-osx-npm-qs-0-6-6-package-tgz /Users/osx/.npm/qs/0.6.6/package.tgz
2252 verbose readDependencies using package.json deps
2253 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/json-stringify-safe/package.json
2254 silly lockFile fca2ace6-equest-node-modules-tunnel-agent /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/tunnel-agent
2255 silly lockFile fca2ace6-equest-node-modules-tunnel-agent /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/tunnel-agent
2256 verbose readDependencies using package.json deps
2257 silly resolved []
2258 verbose about to build /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/json-stringify-safe
2259 info build /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/json-stringify-safe
2260 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/json-stringify-safe/package.json
2261 verbose linkStuff [ true,
2261 verbose linkStuff '/usr/local/lib/node_modules',
2261 verbose linkStuff false,
2261 verbose linkStuff '/usr/local/lib/node_modules/jitsu/node_modules/request/node_modules' ]
2262 info linkStuff json-stringify-safe@5.0.0
2263 verbose linkBins json-stringify-safe@5.0.0
2264 verbose linkMans json-stringify-safe@5.0.0
2265 verbose rebuildBundles json-stringify-safe@5.0.0
2266 info install json-stringify-safe@5.0.0
2267 silly lockFile 48e38e1f-s-request-node-modules-form-data /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/form-data
2268 silly lockFile 48e38e1f-s-request-node-modules-form-data /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/form-data
2269 silly lockFile f400a18a--request-node-modules-oauth-sign /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/oauth-sign
2270 silly lockFile f400a18a--request-node-modules-oauth-sign /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/oauth-sign
2271 silly lockFile 3ec98e3d-m-tunnel-agent-0-3-0-package-tgz /Users/osx/.npm/tunnel-agent/0.3.0/package.tgz
2272 silly lockFile 3ec98e3d-m-tunnel-agent-0-3-0-package-tgz /Users/osx/.npm/tunnel-agent/0.3.0/package.tgz
2273 info preinstall forever-agent@0.5.2
2274 info preinstall aws-sign2@0.5.0
2275 info postinstall json-stringify-safe@5.0.0
2276 silly lockFile 40bad14c--npm-form-data-0-1-3-package-tgz /Users/osx/.npm/form-data/0.1.3/package.tgz
2277 silly lockFile 40bad14c--npm-form-data-0-1-3-package-tgz /Users/osx/.npm/form-data/0.1.3/package.tgz
2278 silly lockFile d7dfcb7e-npm-oauth-sign-0-3-0-package-tgz /Users/osx/.npm/oauth-sign/0.3.0/package.tgz
2279 silly lockFile d7dfcb7e-npm-oauth-sign-0-3-0-package-tgz /Users/osx/.npm/oauth-sign/0.3.0/package.tgz
2280 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/forever-agent/package.json
2281 info preinstall qs@0.6.6
2282 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/aws-sign2/package.json
2283 verbose readDependencies using package.json deps
2284 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/forever-agent/package.json
2285 silly addNameRange number 2 { name: 'graceful-fs', range: '>=2.0.0- <2.1.0-', hasData: true }
2286 silly addNameRange versions [ 'graceful-fs',
2286 silly addNameRange [ '1.0.0',
2286 silly addNameRange '1.0.1',
2286 silly addNameRange '1.0.2',
2286 silly addNameRange '1.1.0',
2286 silly addNameRange '1.1.1',
2286 silly addNameRange '1.1.2',
2286 silly addNameRange '1.1.3',
2286 silly addNameRange '1.1.4',
2286 silly addNameRange '1.1.5',
2286 silly addNameRange '1.1.6',
2286 silly addNameRange '1.1.7',
2286 silly addNameRange '1.1.8',
2286 silly addNameRange '1.1.9',
2286 silly addNameRange '1.1.10',
2286 silly addNameRange '1.1.11',
2286 silly addNameRange '1.1.12',
2286 silly addNameRange '1.1.13',
2286 silly addNameRange '1.1.14',
2286 silly addNameRange '1.2.0',
2286 silly addNameRange '1.2.1',
2286 silly addNameRange '1.2.2',
2286 silly addNameRange '1.2.3',
2286 silly addNameRange '2.0.0',
2286 silly addNameRange '2.0.1',
2286 silly addNameRange '2.0.2',
2286 silly addNameRange '2.0.3',
2286 silly addNameRange '3.0.0' ] ]
2287 verbose addNamed [ 'graceful-fs', '2.0.3' ]
2288 verbose addNamed [ '2.0.3', '2.0.3' ]
2289 silly lockFile aa717173-graceful-fs-2-0-3 graceful-fs@2.0.3
2290 verbose lock graceful-fs@2.0.3 /Users/osx/.npm/aa717173-graceful-fs-2-0-3.lock
2291 verbose readDependencies using package.json deps
2292 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/aws-sign2/package.json
2293 verbose readDependencies using package.json deps
2294 silly resolved []
2295 verbose about to build /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/forever-agent
2296 info build /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/forever-agent
2297 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/forever-agent/package.json
2298 verbose linkStuff [ true,
2298 verbose linkStuff '/usr/local/lib/node_modules',
2298 verbose linkStuff false,
2298 verbose linkStuff '/usr/local/lib/node_modules/jitsu/node_modules/request/node_modules' ]
2299 info linkStuff forever-agent@0.5.2
2300 verbose linkBins forever-agent@0.5.2
2301 verbose linkMans forever-agent@0.5.2
2302 verbose rebuildBundles forever-agent@0.5.2
2303 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/qs/package.json
2304 verbose read json /Users/osx/.npm/request/2.25.0/package/package.json
2305 verbose readDependencies using package.json deps
2306 silly resolved []
2307 verbose about to build /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/aws-sign2
2308 info build /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/aws-sign2
2309 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/aws-sign2/package.json
2310 verbose linkStuff [ true,
2310 verbose linkStuff '/usr/local/lib/node_modules',
2310 verbose linkStuff false,
2310 verbose linkStuff '/usr/local/lib/node_modules/jitsu/node_modules/request/node_modules' ]
2311 info linkStuff aws-sign2@0.5.0
2312 verbose linkBins aws-sign2@0.5.0
2313 verbose linkMans aws-sign2@0.5.0
2314 verbose rebuildBundles aws-sign2@0.5.0
2315 info preinstall tunnel-agent@0.3.0
2316 info install forever-agent@0.5.2
2317 verbose readDependencies using package.json deps
2318 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/qs/package.json
2319 verbose read json /Users/osx/.npm/graceful-fs/2.0.3/package/package.json
2320 info install aws-sign2@0.5.0
2321 verbose readDependencies using package.json deps
2322 silly resolved []
2323 verbose about to build /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/qs
2324 info build /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/qs
2325 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/qs/package.json
2326 verbose linkStuff [ true,
2326 verbose linkStuff '/usr/local/lib/node_modules',
2326 verbose linkStuff false,
2326 verbose linkStuff '/usr/local/lib/node_modules/jitsu/node_modules/request/node_modules' ]
2327 info linkStuff qs@0.6.6
2328 verbose linkBins qs@0.6.6
2329 verbose linkMans qs@0.6.6
2330 verbose rebuildBundles qs@0.6.6
2331 info preinstall form-data@0.1.3
2332 info preinstall oauth-sign@0.3.0
2333 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/tunnel-agent/package.json
2334 info postinstall forever-agent@0.5.2
2335 info install qs@0.6.6
2336 info postinstall aws-sign2@0.5.0
2337 verbose readDependencies using package.json deps
2338 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/tunnel-agent/package.json
2339 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/form-data/package.json
2340 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/oauth-sign/package.json
2341 verbose readDependencies using package.json deps
2342 silly resolved []
2343 verbose about to build /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/tunnel-agent
2344 info build /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/tunnel-agent
2345 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/tunnel-agent/package.json
2346 verbose linkStuff [ true,
2346 verbose linkStuff '/usr/local/lib/node_modules',
2346 verbose linkStuff false,
2346 verbose linkStuff '/usr/local/lib/node_modules/jitsu/node_modules/request/node_modules' ]
2347 info linkStuff tunnel-agent@0.3.0
2348 verbose linkBins tunnel-agent@0.3.0
2349 verbose linkMans tunnel-agent@0.3.0
2350 verbose rebuildBundles tunnel-agent@0.3.0
2351 info postinstall qs@0.6.6
2352 verbose readDependencies using package.json deps
2353 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/form-data/package.json
2354 verbose readDependencies using package.json deps
2355 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/oauth-sign/package.json
2356 info install tunnel-agent@0.3.0
2357 verbose readDependencies using package.json deps
2358 verbose readDependencies using package.json deps
2359 silly resolved []
2360 verbose about to build /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/oauth-sign
2361 info build /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/oauth-sign
2362 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/oauth-sign/package.json
2363 verbose linkStuff [ true,
2363 verbose linkStuff '/usr/local/lib/node_modules',
2363 verbose linkStuff false,
2363 verbose linkStuff '/usr/local/lib/node_modules/jitsu/node_modules/request/node_modules' ]
2364 info linkStuff oauth-sign@0.3.0
2365 verbose linkBins oauth-sign@0.3.0
2366 verbose linkMans oauth-sign@0.3.0
2367 verbose rebuildBundles oauth-sign@0.3.0
2368 info install oauth-sign@0.3.0
2369 info postinstall tunnel-agent@0.3.0
2370 verbose cache add [ 'combined-stream@~0.0.4', null ]
2371 verbose cache add name=undefined spec="combined-stream@~0.0.4" args=["combined-stream@~0.0.4",null]
2372 verbose parsed url { protocol: null,
2372 verbose parsed url slashes: null,
2372 verbose parsed url auth: null,
2372 verbose parsed url host: null,
2372 verbose parsed url port: null,
2372 verbose parsed url hostname: null,
2372 verbose parsed url hash: null,
2372 verbose parsed url search: null,
2372 verbose parsed url query: null,
2372 verbose parsed url pathname: 'combined-stream@~0.0.4',
2372 verbose parsed url path: 'combined-stream@~0.0.4',
2372 verbose parsed url href: 'combined-stream@~0.0.4' }
2373 verbose cache add name="combined-stream" spec="~0.0.4" args=["combined-stream","~0.0.4"]
2374 verbose parsed url { protocol: null,
2374 verbose parsed url slashes: null,
2374 verbose parsed url auth: null,
2374 verbose parsed url host: null,
2374 verbose parsed url port: null,
2374 verbose parsed url hostname: null,
2374 verbose parsed url hash: null,
2374 verbose parsed url search: null,
2374 verbose parsed url query: null,
2374 verbose parsed url pathname: '~0.0.4',
2374 verbose parsed url path: '~0.0.4',
2374 verbose parsed url href: '~0.0.4' }
2375 verbose addNamed [ 'combined-stream', '~0.0.4' ]
2376 verbose addNamed [ null, '>=0.0.4- <0.1.0-' ]
2377 silly lockFile 97e270a8-combined-stream-0-0-4 combined-stream@~0.0.4
2378 verbose lock combined-stream@~0.0.4 /Users/osx/.npm/97e270a8-combined-stream-0-0-4.lock
2379 verbose cache add [ 'async@~0.9.0', null ]
2380 verbose cache add name=undefined spec="async@~0.9.0" args=["async@~0.9.0",null]
2381 verbose parsed url { protocol: null,
2381 verbose parsed url slashes: null,
2381 verbose parsed url auth: null,
2381 verbose parsed url host: null,
2381 verbose parsed url port: null,
2381 verbose parsed url hostname: null,
2381 verbose parsed url hash: null,
2381 verbose parsed url search: null,
2381 verbose parsed url query: null,
2381 verbose parsed url pathname: 'async@~0.9.0',
2381 verbose parsed url path: 'async@~0.9.0',
2381 verbose parsed url href: 'async@~0.9.0' }
2382 verbose cache add name="async" spec="~0.9.0" args=["async","~0.9.0"]
2383 verbose parsed url { protocol: null,
2383 verbose parsed url slashes: null,
2383 verbose parsed url auth: null,
2383 verbose parsed url host: null,
2383 verbose parsed url port: null,
2383 verbose parsed url hostname: null,
2383 verbose parsed url hash: null,
2383 verbose parsed url search: null,
2383 verbose parsed url query: null,
2383 verbose parsed url pathname: '~0.9.0',
2383 verbose parsed url path: '~0.9.0',
2383 verbose parsed url href: '~0.9.0' }
2384 verbose addNamed [ 'async', '~0.9.0' ]
2385 verbose addNamed [ null, '>=0.9.0- <0.10.0-' ]
2386 silly lockFile 38be4a8c-async-0-9-0 async@~0.9.0
2387 verbose lock async@~0.9.0 /Users/osx/.npm/38be4a8c-async-0-9-0.lock
2388 info postinstall oauth-sign@0.3.0
2389 silly lockFile 7f4d00a1-request-2-25-0 request@2.25.0
2390 silly lockFile 7f4d00a1-request-2-25-0 request@2.25.0
2391 silly addNameRange { name: 'combined-stream',
2391 silly addNameRange range: '>=0.0.4- <0.1.0-',
2391 silly addNameRange hasData: false }
2392 silly addNameRange { name: 'async', range: '>=0.9.0- <0.10.0-', hasData: false }
2393 silly lockFile aa717173-graceful-fs-2-0-3 graceful-fs@2.0.3
2394 silly lockFile aa717173-graceful-fs-2-0-3 graceful-fs@2.0.3
2395 silly resolved [ { name: 'preacher-api',
2395 silly resolved version: '0.1.7',
2395 silly resolved description: 'Nodejitsu Preacher API client wrapper',
2395 silly resolved main: './lib/client.js',
2395 silly resolved scripts: { test: 'vows --spec -i ./test/client/*-test.js' },
2395 silly resolved author: { name: 'Nodejitsu Inc' },
2395 silly resolved license: 'MIT',
2395 silly resolved devDependencies: { vows: '~0.7.0', nock: '~0.22.1' },
2395 silly resolved dependencies: { request: '~2.25.0', primus: '~1.4.0', ws: '~0.4.28' },
2395 silly resolved readme: '# preacher-api\n\nNodejitsu Preacher API client wrapper\n\n\n#### (C) Copyright 2010 - 2013, [Nodejitsu](http://nodejitsu.com) Inc.\n',
2395 silly resolved readmeFilename: 'README.md',
2395 silly resolved _id: 'preacher-api@0.1.7',
2395 silly resolved _from: 'preacher-api@0.1.x' },
2395 silly resolved { name: 'request',
2395 silly resolved description: 'Simplified HTTP request client.',
2395 silly resolved tags: [ 'http', 'simple', 'util', 'utility' ],
2395 silly resolved version: '2.25.0',
2395 silly resolved author: { name: 'Mikeal Rogers', email: 'mikeal.rogers@gmail.com' },
2395 silly resolved repository: { type: 'git', url: 'http://github.com/mikeal/request.git' },
2395 silly resolved bugs: { url: 'http://github.com/mikeal/request/issues' },
2395 silly resolved engines: [ 'node >= 0.8.0' ],
2395 silly resolved main: 'index.js',
2395 silly resolved dependencies:
2395 silly resolved { qs: '~0.6.0',
2395 silly resolved 'json-stringify-safe': '~5.0.0',
2395 silly resolved 'forever-agent': '~0.5.0',
2395 silly resolved 'tunnel-agent': '~0.3.0',
2395 silly resolved 'http-signature': '~0.10.0',
2395 silly resolved hawk: '~1.0.0',
2395 silly resolved 'aws-sign': '~0.3.0',
2395 silly resolved 'oauth-sign': '~0.3.0',
2395 silly resolved 'cookie-jar': '~0.3.0',
2395 silly resolved 'node-uuid': '~1.4.0',
2395 silly resolved mime: '~1.2.9',
2395 silly resolved 'form-data': '~0.1.0' },
2395 silly resolved scripts: { test: 'node tests/run.js' },
2395 silly resolved readme: '# Request -- Simplified HTTP request method\n\n## Install\n\n<pre>\n npm install request\n</pre>\n\nOr from source:\n\n<pre>\n git clone git://github.com/mikeal/request.git \n cd request\n npm link\n</pre>\n\n## Super simple to use\n\nRequest is designed to be the simplest way possible to make http calls. It supports HTTPS and follows redirects by default.\n\n```javascript\nvar request = require(\'request\');\nrequest(\'http://www.google.com\', function (error, response, body) {\n if (!error && response.statusCode == 200) {\n console.log(body) // Print the google web page.\n }\n})\n```\n\n## Streaming\n\nYou can stream any response to a file stream.\n\n```javascript\nrequest(\'http://google.com/doodle.png\').pipe(fs.createWriteStream(\'doodle.png\'))\n```\n\nYou can also stream a file to a PUT or POST request. This method will also check the file extension against a mapping of file extensions to content-types, in this case `application/json`, and use the proper content-type in the PUT request if one is not already provided in the headers.\n\n```javascript\nfs.createReadStream(\'file.json\').pipe(request.put(\'http://mysite.com/obj.json\'))\n```\n\nRequest can also pipe to itself. When doing so the content-type and content-length will be preserved in the PUT headers.\n\n```javascript\nrequest.get(\'http://google.com/img.png\').pipe(request.put(\'http://mysite.com/img.png\'))\n```\n\nNow let\'s get fancy.\n\n```javascript\nhttp.createServer(function (req, resp) {\n if (req.url === \'/doodle.png\') {\n if (req.method === \'PUT\') {\n req.pipe(request.put(\'http://mysite.com/doodle.png\'))\n } else if (req.method === \'GET\' || req.method === \'HEAD\') {\n request.get(\'http://mysite.com/doodle.png\').pipe(resp)\n } \n }\n})\n```\n\nYou can also pipe() from a http.ServerRequest instance and to a http.ServerResponse instance. The HTTP method and headers will be sent as well as the entity-body data. Which means that, if you don\'t really care about security, you can do:\n\n```javascript\nhttp.createServer(function (req, resp) {\n if (req.url === \'/doodle.png\') {\n var x = request(\'http://mysite.com/doodle.png\')\n req.pipe(x)\n x.pipe(resp)\n }\n})\n```\n\nAnd since pipe() returns the destination stream in node 0.5.x you can do one line proxying :)\n\n```javascript\nreq.pipe(request(\'http://mysite.com/doodle.png\')).pipe(resp)\n```\n\nAlso, none of this new functionality conflicts with requests previous features, it just expands them.\n\n```javascript\nvar r = request.defaults({\'proxy\':\'http://localproxy.com\'})\n\nhttp.createServer(function (req, resp) {\n if (req.url === \'/doodle.png\') {\n r.get(\'http://google.com/doodle.png\').pipe(resp)\n }\n})\n```\nYou can still use intermediate proxies, the requests will still follow HTTP forwards, etc.\n\n## Forms\n\n`request` supports `application/x-www-form-urlencoded` and `multipart/form-data` form uploads. For `multipart/related` refer to the `multipart` API.\n\nUrl encoded forms are simple\n\n```javascript\nrequest.post(\'http://service.com/upload\', {form:{key:\'value\'}})\n// or\nrequest.post(\'http://service.com/upload\').form({key:\'value\'})\n```\n\nFor `multipart/form-data` we use the [form-data](https://github.com/felixge/node-form-data) library by [@felixge](https://github.com/felixge). You don\'t need to worry about piping the form object or setting the headers, `request` will handle that for you.\n\n```javascript\nvar r = request.post(\'http://service.com/upload\')\nvar form = r.form()\nform.append(\'my_field\', \'my_value\')\nform.append(\'my_buffer\', new Buffer([1, 2, 3]))\nform.append(\'my_file\', fs.createReadStream(path.join(__dirname, \'doodle.png\'))\nform.append(\'remote_file\', request(\'http://google.com/doodle.png\'))\n```\n\n## HTTP Authentication\n\n```javascript\nrequest.get(\'http://some.server.com/\').auth(\'username\', \'password\', false);\n// or\nrequest.get(\'http://some.server.com/\', {\n \'auth\': {\n \'user\': \'username\',\n \'pass\': \'password\',\n \'sendImmediately\': false\n }\n});\n```\n\nIf passed as an option, `auth` should be a hash containing values `user` || `username`, `password` || `pass`, and `sendImmediately` (optional). The method form takes parameters `auth(username, password, sendImmediately)`.\n\n`sendImmediately` defaults to true, which will cause a basic authentication header to be sent. If `sendImmediately` is `false`, then `request` will retry with a proper authentication header after receiving a 401 response from the server (which must contain a `WWW-Authenticate` header indicating the required authentication method).\n\nDigest authentication is supported, but it only works with `sendImmediately` set to `false` (otherwise `request` will send basic authentication on the initial request, which will probably cause the request to fail).\n\n## OAuth Signing\n\n```javascript\n// Twitter OAuth\nvar qs = require(\'querystring\')\n , oauth =\n { callback: \'http://mysite.com/callback/\'\n , consumer_key: CONSUMER_KEY\n , consumer_secret: CONSUMER_SECRET\n }\n , url = \'https://api.twitter.com/oauth/request_token\'\n ;\nrequest.post({url:url, oauth:oauth}, function (e, r, body) {\n // Ideally, you would take the body in the response\n // and construct a URL that a user clicks on (like a sign in button).\n // The verifier is only available in the response after a user has \n // verified with twitter that they are authorizing your app.\n var access_token = qs.parse(body)\n , oauth = \n { consumer_key: CONSUMER_KEY\n , consumer_secret: CONSUMER_SECRET\n , token: access_token.oauth_token\n , verifier: access_token.oauth_verifier\n }\n , url = \'https://api.twitter.com/oauth/access_token\'\n ;\n request.post({url:url, oauth:oauth}, function (e, r, body) {\n var perm_token = qs.parse(body)\n , oauth = \n { consumer_key: CONSUMER_KEY\n , consumer_secret: CONSUMER_SECRET\n , token: perm_token.oauth_token\n , token_secret: perm_token.oauth_token_secret\n }\n , url = \'https://api.twitter.com/1/users/show.json?\'\n , params = \n { screen_name: perm_token.screen_name\n , user_id: perm_token.user_id\n }\n ;\n url += qs.stringify(params)\n request.get({url:url, oauth:oauth, json:true}, function (e, r, user) {\n console.log(user)\n })\n })\n})\n```\n\n\n\n### request(options, callback)\n\nThe first argument can be either a url or an options object. The only required option is uri, all others are optional.\n\n* `uri` || `url` - fully qualified uri or a parsed url object from url.parse()\n* `qs` - object containing querystring values to be appended to the uri\n* `method` - http method, defaults to GET\n* `headers` - http headers, defaults to {}\n* `body` - entity body for PATCH, POST and PUT requests. Must be buffer or string.\n* `form` - when passed an object this will set `body` but to a querystring representation of value and adds `Content-type: application/x-www-form-urlencoded; charset=utf-8` header. When passed no option a FormData instance is returned that will be piped to request.\n* `auth` - A hash containing values `user` || `username`, `password` || `pass`, and `sendImmediately` (optional). See documentation above.\n* `json` - sets `body` but to JSON representation of value and adds `Content-type: application/json` header. Additionally, parses the response body as json.\n* `multipart` - (experimental) array of objects which contains their own headers and `body` attribute. Sends `multipart/related` request. See example below.\n* `followRedirect` - follow HTTP 3xx responses as redirects. defaults to true.\n* `followAllRedirects` - follow non-GET HTTP 3xx responses as redirects. defaults to false.\n* `maxRedirects` - the maximum number of redirects to follow, defaults to 10.\n* `encoding` - Encoding to be used on `setEncoding` of response data. If set to `null`, the body is returned as a Buffer.\n* `pool` - A hash object containing the agents for these requests. If omitted this request will use the global pool which is set to node\'s default maxSockets.\n* `pool.maxSockets` - Integer containing the maximum amount of sockets in the pool.\n* `timeout` - Integer containing the number of milliseconds to wait for a request to respond before aborting the request\t\n* `proxy` - An HTTP proxy to be used. Support proxy Auth with Basic Auth the same way it\'s supported with the `url` parameter by embedding the auth info in the uri.\n* `oauth` - Options for OAuth HMAC-SHA1 signing, see documentation above.\n* `hawk` - Options for [Hawk signing](https://github.com/hueniverse/hawk). The `credentials` key must contain the necessary signing info, [see hawk docs for details](https://github.com/hueniverse/hawk#usage-example).\n* `strictSSL` - Set to `true` to require that SSL certificates be valid. Note: to use your own certificate authority, you need to specify an agent that was created with that ca as an option.\n* `jar` - Set to `true` if you want cookies to be remembered for future use, or define your custom cookie jar (see examples section)\n* `aws` - object containing aws signing information, should have the properties `key` and `secret` as well as `bucket` unless you\'re specifying your bucket as part of the path, or you are making a request that doesn\'t use a bucket (i.e. GET Services)\n* `httpSignature` - Options for the [HTTP Signature Scheme](https://github.com/joyent/node-http-signature/blob/master/http_signing.md) using [Joyent\'s library](https://github.com/joyent/node-http-signature). The `keyId` and `key` properties must be specified. See the docs for other options.\n* `localAddress` - Local interface to bind for network connections.\n\n\nThe callback argument gets 3 arguments. The first is an error when applicable (usually from the http.Client option not the http.ClientRequest object). The second is an http.ClientResponse object. The third is the response body String or Buffer.\n\n## Convenience methods\n\nThere are also shorthand methods for different HTTP METHODs and some other conveniences.\n\n### request.defaults(options) \n \nThis method returns a wrapper around the normal request API that defaults to whatever options you pass in to it.\n\n### request.put\n\nSame as request() but defaults to `method: "PUT"`.\n\n```javascript\nrequest.put(url)\n```\n\n### request.patch\n\nSame as request() but defaults to `method: "PATCH"`.\n\n```javascript\nrequest.patch(url)\n```\n\n### request.post\n\nSame as request() but defaults to `method: "POST"`.\n\n```javascript\nrequest.post(url)\n```\n\n### request.head\n\nSame as request() but defaults to `method: "HEAD"`.\n\n```javascript\nrequest.head(url)\n```\n\n### request.del\n\nSame as request() but defaults to `method: "DELETE"`.\n\n```javascript\nrequest.del(url)\n```\n\n### request.get\n\nAlias to normal request method for uniformity.\n\n```javascript\nrequest.get(url)\n```\n### request.cookie\n\nFunction that creates a new cookie.\n\n```javascript\nrequest.cookie(\'cookie_string_here\')\n```\n### request.jar\n\nFunction that creates a new cookie jar.\n\n```javascript\nrequest.jar()\n```\n\n\n## Examples:\n\n```javascript\n var request = require(\'request\')\n , rand = Math.floor(Math.random()*100000000).toString()\n ;\n request(\n { method: \'PUT\'\n , uri: \'http://mikeal.iriscouch.com/testjs/\' + rand\n , multipart: \n [ { \'content-type\': \'application/json\'\n , body: JSON.stringify({foo: \'bar\', _attachments: {\'message.txt\': {follows: true, length: 18, \'content_type\': \'text/plain\' }}})\n }\n , { body: \'I am an attachment\' }\n ] \n }\n , function (error, response, body) {\n if(response.statusCode == 201){\n console.log(\'document saved as: http://mikeal.iriscouch.com/testjs/\'+ rand)\n } else {\n console.log(\'error: \'+ response.statusCode)\n console.log(body)\n }\n }\n )\n```\nCookies are disabled by default (else, they would be used in subsequent requests). To enable cookies set jar to true (either in defaults or in the options sent).\n\n```javascript\nvar request = request.defaults({jar: true})\nrequest(\'http://www.google.com\', function () {\n request(\'http://images.google.com\')\n})\n```\n\nIf you to use a custom cookie jar (instead of letting request use its own global cookie jar) you do so by setting the jar default or by specifying it as an option:\n\n```javascript\nvar j = request.jar()\nvar request = request.defaults({jar:j})\nrequest(\'http://www.google.com\', function () {\n request(\'http://images.google.com\')\n})\n```\nOR\n\n```javascript\nvar j = request.jar()\nvar cookie = request.cookie(\'your_cookie_here\')\nj.add(cookie)\nrequest({url: \'http://www.google.com\', jar: j}, function () {\n request(\'http://images.google.com\')\n})\n```\n',
2395 silly resolved readmeFilename: 'README.md',
2395 silly resolved _id: 'request@2.25.0',
2395 silly resolved _from: 'request@2.25.0' } ]
2396 info install preacher-api@0.1.7 into /usr/local/lib/node_modules/jitsu/node_modules/nodejitsu-api
2397 info install request@2.25.0 into /usr/local/lib/node_modules/jitsu/node_modules/nodejitsu-api
2398 info installOne preacher-api@0.1.7
2399 info installOne request@2.25.0
2400 verbose from cache /Users/osx/.npm/preacher-api/0.1.7/package/package.json
2401 info /usr/local/lib/node_modules/jitsu/node_modules/nodejitsu-api/node_modules/preacher-api unbuild
2402 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/nodejitsu-api/node_modules/preacher-api/package.json
2403 verbose from cache /Users/osx/.npm/request/2.25.0/package/package.json
2404 info /usr/local/lib/node_modules/jitsu/node_modules/nodejitsu-api/node_modules/request unbuild
2405 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/nodejitsu-api/node_modules/request/package.json
2406 silly lockFile 8863dcc9-graceful-fs-2-0-0 graceful-fs@~2.0.0
2407 silly lockFile 8863dcc9-graceful-fs-2-0-0 graceful-fs@~2.0.0
2408 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/semver/package.json
2409 verbose url raw combined-stream
2410 verbose url resolving [ 'https://registry.npmjs.org/', './combined-stream' ]
2411 verbose url resolved https://registry.npmjs.org/combined-stream
2412 info trying registry request attempt 1 at 16:15:56
2413 verbose etag "98VC6JCW8Q8SHRX53ZKQOA7Z0"
2414 http GET https://registry.npmjs.org/combined-stream
2415 verbose url raw async
2416 verbose url resolving [ 'https://registry.npmjs.org/', './async' ]
2417 verbose url resolved https://registry.npmjs.org/async
2418 info trying registry request attempt 1 at 16:15:56
2419 verbose etag "1MO2T44MYV3BGT6A4FLI065DW"
2420 http GET https://registry.npmjs.org/async
2421 silly resolved [ { name: 'inherits',
2421 silly resolved description: 'Browser-friendly inheritance fully compatible with standard node.js inherits()',
2421 silly resolved version: '2.0.1',
2421 silly resolved keywords:
2421 silly resolved [ 'inheritance',
2421 silly resolved 'class',
2421 silly resolved 'klass',
2421 silly resolved 'oop',
2421 silly resolved 'object-oriented',
2421 silly resolved 'inherits',
2421 silly resolved 'browser',
2421 silly resolved 'browserify' ],
2421 silly resolved main: './inherits.js',
2421 silly resolved browser: './inherits_browser.js',
2421 silly resolved repository: { type: 'git', url: 'git://github.com/isaacs/inherits' },
2421 silly resolved license: 'ISC',
2421 silly resolved scripts: { test: 'node test' },
2421 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',
2421 silly resolved readmeFilename: 'README.md',
2421 silly resolved _id: 'inherits@2.0.1',
2421 silly resolved _from: 'inherits@~2.0.0' },
2421 silly resolved { name: 'mkdirp',
2421 silly resolved description: 'Recursively mkdir, like `mkdir -p`',
2421 silly resolved version: '0.3.5',
2421 silly resolved author:
2421 silly resolved { name: 'James Halliday',
2421 silly resolved email: 'mail@substack.net',
2421 silly resolved url: 'http://substack.net' },
2421 silly resolved main: './index',
2421 silly resolved keywords: [ 'mkdir', 'directory' ],
2421 silly resolved repository:
2421 silly resolved { type: 'git',
2421 silly resolved url: 'http://github.com/substack/node-mkdirp.git' },
2421 silly resolved scripts: { test: 'tap test/*.js' },
2421 silly resolved devDependencies: { tap: '~0.4.0' },
2421 silly resolved license: 'MIT',
2421 silly resolved readme: '# mkdirp\n\nLike `mkdir -p`, but in node.js!\n\n[![build status](https://secure.travis-ci.org/substack/node-mkdirp.png)](http://travis-ci.org/substack/node-mkdirp)\n\n# example\n\n## pow.js\n\n```js\nvar mkdirp = require(\'mkdirp\');\n \nmkdirp(\'/tmp/foo/bar/baz\', function (err) {\n if (err) console.error(err)\n else console.log(\'pow!\')\n});\n```\n\nOutput\n\n```\npow!\n```\n\nAnd now /tmp/foo/bar/baz exists, huzzah!\n\n# methods\n\n```js\nvar mkdirp = require(\'mkdirp\');\n```\n\n## mkdirp(dir, mode, cb)\n\nCreate a new directory and any necessary subdirectories at `dir` with octal\npermission string `mode`.\n\nIf `mode` isn\'t specified, it defaults to `0777 & (~process.umask())`.\n\n`cb(err, made)` fires with the error or the first directory `made`\nthat had to be created, if any.\n\n## mkdirp.sync(dir, mode)\n\nSynchronously create a new directory and any necessary subdirectories at `dir`\nwith octal permission string `mode`.\n\nIf `mode` isn\'t specified, it defaults to `0777 & (~process.umask())`.\n\nReturns the first directory that had to be created, if any.\n\n# install\n\nWith [npm](http://npmjs.org) do:\n\n```\nnpm install mkdirp\n```\n\n# license\n\nMIT\n',
2421 silly resolved readmeFilename: 'readme.markdown',
2421 silly resolved _id: 'mkdirp@0.3.5',
2421 silly resolved _from: 'mkdirp@0.3' },
2421 silly resolved { name: 'rimraf',
2421 silly resolved version: '2.2.8',
2421 silly resolved main: 'rimraf.js',
2421 silly resolved description: 'A deep deletion module for node (like `rm -rf`)',
2421 silly resolved author:
2421 silly resolved { name: 'Isaac Z. Schlueter',
2421 silly resolved email: 'i@izs.me',
2421 silly resolved url: 'http://blog.izs.me/' },
2421 silly resolved license:
2421 silly resolved { type: 'MIT',
2421 silly resolved url: 'https://github.com/isaacs/rimraf/raw/master/LICENSE' },
2421 silly resolved repository: { type: 'git', url: 'git://github.com/isaacs/rimraf.git' },
2421 silly resolved scripts: { test: 'cd test && bash run.sh' },
2421 silly resolved bin: { rimraf: './bin.js' },
2421 silly resolved contributors: [ [Object], [Object], [Object], [Object], [Object] ],
2421 silly resolved readme: '`rm -rf` for node.\n\nInstall with `npm install rimraf`, or just drop rimraf.js somewhere.\n\n## API\n\n`rimraf(f, callback)`\n\nThe callback will be called with an error if there is one. Certain\nerrors are handled for you:\n\n* Windows: `EBUSY` and `ENOTEMPTY` - rimraf will back off a maximum of\n `opts.maxBusyTries` times before giving up.\n* `ENOENT` - If the file doesn\'t exist, rimraf will return\n successfully, since your desired outcome is already the case.\n\n## rimraf.sync\n\nIt can remove stuff synchronously, too. But that\'s not so good. Use\nthe async API. It\'s better.\n\n## CLI\n\nIf installed with `npm install rimraf -g` it can be used as a global\ncommand `rimraf <path>` which is useful for cross platform support.\n\n## mkdirp\n\nIf you need to create a directory recursively, check out\n[mkdirp](https://github.com/substack/node-mkdirp).\n',
2421 silly resolved readmeFilename: 'README.md',
2421 silly resolved _id: 'rimraf@2.2.8',
2421 silly resolved _from: 'rimraf@2' },
2421 silly resolved { author:
2421 silly resolved { name: 'Isaac Z. Schlueter',
2421 silly resolved email: 'i@izs.me',
2421 silly resolved url: 'http://blog.izs.me' },
2421 silly resolved name: 'graceful-fs',
2421 silly resolved description: 'A drop-in replacement for fs, making various improvements.',
2421 silly resolved version: '2.0.3',
2421 silly resolved repository:
2421 silly resolved { type: 'git',
2421 silly resolved url: 'git://github.com/isaacs/node-graceful-fs.git' },
2421 silly resolved main: 'graceful-fs.js',
2421 silly resolved engines: { node: '>=0.4.0' },
2421 silly resolved directories: { test: 'test' },
2421 silly resolved scripts: { test: 'tap test/*.js' },
2421 silly resolved keywords:
2421 silly resolved [ 'fs',
2421 silly resolved 'module',
2421 silly resolved 'reading',
2421 silly resolved 'retry',
2421 silly resolved 'retries',
2421 silly resolved 'queue',
2421 silly resolved 'error',
2421 silly resolved 'errors',
2421 silly resolved 'handling',
2421 silly resolved 'EMFILE',
2421 silly resolved 'EAGAIN',
2421 silly resolved 'EINVAL',
2421 silly resolved 'EPERM',
2421 silly resolved 'EACCESS' ],
2421 silly resolved license: 'BSD',
2421 silly resolved readme: '# graceful-fs\n\ngraceful-fs functions as a drop-in replacement for the fs module,\nmaking various improvements.\n\nThe improvements are meant to normalize behavior across different\nplatforms and environments, and to make filesystem access more\nresilient to errors.\n\n## Improvements over fs module\n\ngraceful-fs:\n\n* Queues up `open` and `readdir` calls, and retries them once\n something closes if there is an EMFILE error from too many file\n descriptors.\n* fixes `lchmod` for Node versions prior to 0.6.2.\n* implements `fs.lutimes` if possible. Otherwise it becomes a noop.\n* ignores `EINVAL` and `EPERM` errors in `chown`, `fchown` or\n `lchown` if the user isn\'t root.\n* makes `lchmod` and `lchown` become noops, if not available.\n* retries reading a file if `read` results in EAGAIN error.\n\nOn Windows, it retries renaming a file for up to one second if `EACCESS`\nor `EPERM` error occurs, likely because antivirus software has locked\nthe directory.\n',
2421 silly resolved readmeFilename: 'README.md',
2421 silly resolved _id: 'graceful-fs@2.0.3',
2421 silly resolved _from: 'graceful-fs@~2.0.0' } ]
2422 info install inherits@2.0.1 into /usr/local/lib/node_modules/jitsu/node_modules/fstream
2423 info install mkdirp@0.3.5 into /usr/local/lib/node_modules/jitsu/node_modules/fstream
2424 info install rimraf@2.2.8 into /usr/local/lib/node_modules/jitsu/node_modules/fstream
2425 info install graceful-fs@2.0.3 into /usr/local/lib/node_modules/jitsu/node_modules/fstream
2426 info installOne inherits@2.0.1
2427 info installOne mkdirp@0.3.5
2428 info installOne rimraf@2.2.8
2429 info installOne graceful-fs@2.0.3
2430 verbose tar unpack /Users/osx/.npm/preacher-api/0.1.7/package.tgz
2431 silly lockFile 822d63de-su-api-node-modules-preacher-api /usr/local/lib/node_modules/jitsu/node_modules/nodejitsu-api/node_modules/preacher-api
2432 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/nodejitsu-api/node_modules/preacher-api /Users/osx/.npm/822d63de-su-api-node-modules-preacher-api.lock
2433 silly lockFile 56aa7830-m-preacher-api-0-1-7-package-tgz /Users/osx/.npm/preacher-api/0.1.7/package.tgz
2434 verbose lock /Users/osx/.npm/preacher-api/0.1.7/package.tgz /Users/osx/.npm/56aa7830-m-preacher-api-0-1-7-package-tgz.lock
2435 verbose tar unpack /Users/osx/.npm/request/2.25.0/package.tgz
2436 silly lockFile 03c8dfbd-dejitsu-api-node-modules-request /usr/local/lib/node_modules/jitsu/node_modules/nodejitsu-api/node_modules/request
2437 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/nodejitsu-api/node_modules/request /Users/osx/.npm/03c8dfbd-dejitsu-api-node-modules-request.lock
2438 silly lockFile 5c8f0bee-x-npm-request-2-25-0-package-tgz /Users/osx/.npm/request/2.25.0/package.tgz
2439 verbose lock /Users/osx/.npm/request/2.25.0/package.tgz /Users/osx/.npm/5c8f0bee-x-npm-request-2-25-0-package-tgz.lock
2440 verbose from cache /Users/osx/.npm/inherits/2.0.1/package/package.json
2441 info /usr/local/lib/node_modules/jitsu/node_modules/fstream/node_modules/inherits unbuild
2442 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/fstream/node_modules/inherits/package.json
2443 verbose from cache /Users/osx/.npm/mkdirp/0.3.5/package/package.json
2444 info /usr/local/lib/node_modules/jitsu/node_modules/fstream/node_modules/mkdirp unbuild
2445 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/fstream/node_modules/mkdirp/package.json
2446 verbose from cache /Users/osx/.npm/rimraf/2.2.8/package/package.json
2447 info /usr/local/lib/node_modules/jitsu/node_modules/fstream/node_modules/rimraf unbuild
2448 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/fstream/node_modules/rimraf/package.json
2449 verbose from cache /Users/osx/.npm/graceful-fs/2.0.3/package/package.json
2450 info /usr/local/lib/node_modules/jitsu/node_modules/fstream/node_modules/graceful-fs unbuild
2451 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/fstream/node_modules/graceful-fs/package.json
2452 silly gunzTarPerm modes [ '755', '644' ]
2453 verbose tar unpack /Users/osx/.npm/inherits/2.0.1/package.tgz
2454 silly lockFile 64b5e4fb-es-fstream-node-modules-inherits /usr/local/lib/node_modules/jitsu/node_modules/fstream/node_modules/inherits
2455 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/fstream/node_modules/inherits /Users/osx/.npm/64b5e4fb-es-fstream-node-modules-inherits.lock
2456 silly lockFile aca0518b-x-npm-inherits-2-0-1-package-tgz /Users/osx/.npm/inherits/2.0.1/package.tgz
2457 verbose lock /Users/osx/.npm/inherits/2.0.1/package.tgz /Users/osx/.npm/aca0518b-x-npm-inherits-2-0-1-package-tgz.lock
2458 verbose tar unpack /Users/osx/.npm/mkdirp/0.3.5/package.tgz
2459 silly lockFile 373da6dc-ules-fstream-node-modules-mkdirp /usr/local/lib/node_modules/jitsu/node_modules/fstream/node_modules/mkdirp
2460 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/fstream/node_modules/mkdirp /Users/osx/.npm/373da6dc-ules-fstream-node-modules-mkdirp.lock
2461 silly lockFile 47a182c0-osx-npm-mkdirp-0-3-5-package-tgz /Users/osx/.npm/mkdirp/0.3.5/package.tgz
2462 verbose lock /Users/osx/.npm/mkdirp/0.3.5/package.tgz /Users/osx/.npm/47a182c0-osx-npm-mkdirp-0-3-5-package-tgz.lock
2463 verbose tar unpack /Users/osx/.npm/rimraf/2.2.8/package.tgz
2464 silly lockFile c393c068-ules-fstream-node-modules-rimraf /usr/local/lib/node_modules/jitsu/node_modules/fstream/node_modules/rimraf
2465 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/fstream/node_modules/rimraf /Users/osx/.npm/c393c068-ules-fstream-node-modules-rimraf.lock
2466 silly lockFile 65048d9f-osx-npm-rimraf-2-2-8-package-tgz /Users/osx/.npm/rimraf/2.2.8/package.tgz
2467 verbose lock /Users/osx/.npm/rimraf/2.2.8/package.tgz /Users/osx/.npm/65048d9f-osx-npm-rimraf-2-2-8-package-tgz.lock
2468 verbose tar unpack /Users/osx/.npm/graceful-fs/2.0.3/package.tgz
2469 silly lockFile 4329e076-fstream-node-modules-graceful-fs /usr/local/lib/node_modules/jitsu/node_modules/fstream/node_modules/graceful-fs
2470 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/fstream/node_modules/graceful-fs /Users/osx/.npm/4329e076-fstream-node-modules-graceful-fs.lock
2471 silly lockFile 0864d919-pm-graceful-fs-2-0-3-package-tgz /Users/osx/.npm/graceful-fs/2.0.3/package.tgz
2472 verbose lock /Users/osx/.npm/graceful-fs/2.0.3/package.tgz /Users/osx/.npm/0864d919-pm-graceful-fs-2-0-3-package-tgz.lock
2473 silly gunzTarPerm extractEntry package.json
2474 silly lockFile 05539278-ules-canihaz-node-modules-semver /usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/semver
2475 silly lockFile 05539278-ules-canihaz-node-modules-semver /usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/semver
2476 silly lockFile c475137d-osx-npm-semver-1-1-4-package-tgz /Users/osx/.npm/semver/1.1.4/package.tgz
2477 silly lockFile c475137d-osx-npm-semver-1-1-4-package-tgz /Users/osx/.npm/semver/1.1.4/package.tgz
2478 silly gunzTarPerm extractEntry .npmignore
2479 silly gunzTarPerm extractEntry README.md
2480 info preinstall semver@1.1.4
2481 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/semver/package.json
2482 verbose readDependencies using package.json deps
2483 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/semver/package.json
2484 verbose readDependencies using package.json deps
2485 silly resolved []
2486 verbose about to build /usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/semver
2487 info build /usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/semver
2488 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/semver/package.json
2489 verbose linkStuff [ true,
2489 verbose linkStuff '/usr/local/lib/node_modules',
2489 verbose linkStuff false,
2489 verbose linkStuff '/usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules' ]
2490 info linkStuff semver@1.1.4
2491 verbose linkBins semver@1.1.4
2492 verbose link bins [ { semver: './bin/semver' },
2492 verbose link bins '/usr/local/lib/node_modules/jitsu/node_modules/canihaz/node_modules/.bin',
2492 verbose link bins false ]
2493 verbose linkMans semver@1.1.4
2494 verbose rebuildBundles semver@1.1.4
2495 silly gunzTarPerm extractEntry lib/client.js
2496 silly gunzTarPerm extractEntry lib/client/client.js
2497 info install semver@1.1.4
2498 info postinstall semver@1.1.4
2499 silly gunzTarPerm extractEntry lib/client/logs.js
2500 silly gunzTarPerm extractEntry test/macros.js
2501 silly gunzTarPerm extractEntry test/client/logs-test.js
2502 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm/node_modules/fstream-ignore/package.json
2503 silly lockFile e33a870b--npm-node-modules-fstream-ignore /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm/node_modules/fstream-ignore
2504 silly lockFile e33a870b--npm-node-modules-fstream-ignore /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm/node_modules/fstream-ignore
2505 silly lockFile e3204f48-fstream-ignore-0-0-8-package-tgz /Users/osx/.npm/fstream-ignore/0.0.8/package.tgz
2506 silly lockFile e3204f48-fstream-ignore-0-0-8-package-tgz /Users/osx/.npm/fstream-ignore/0.0.8/package.tgz
2507 info preinstall fstream-ignore@0.0.8
2508 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm/node_modules/fstream-ignore/package.json
2509 verbose readDependencies using package.json deps
2510 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm/node_modules/fstream-ignore/package.json
2511 verbose readDependencies using package.json deps
2512 verbose cache add [ 'minimatch@^0.3.0', null ]
2513 verbose cache add name=undefined spec="minimatch@^0.3.0" args=["minimatch@^0.3.0",null]
2514 verbose parsed url { protocol: null,
2514 verbose parsed url slashes: null,
2514 verbose parsed url auth: null,
2514 verbose parsed url host: null,
2514 verbose parsed url port: null,
2514 verbose parsed url hostname: null,
2514 verbose parsed url hash: null,
2514 verbose parsed url search: null,
2514 verbose parsed url query: null,
2514 verbose parsed url pathname: 'minimatch@^0.3.0',
2514 verbose parsed url path: 'minimatch@^0.3.0',
2514 verbose parsed url href: 'minimatch@^0.3.0' }
2515 verbose cache add name="minimatch" spec="^0.3.0" args=["minimatch","^0.3.0"]
2516 verbose parsed url { protocol: null,
2516 verbose parsed url slashes: null,
2516 verbose parsed url auth: null,
2516 verbose parsed url host: null,
2516 verbose parsed url port: null,
2516 verbose parsed url hostname: null,
2516 verbose parsed url hash: null,
2516 verbose parsed url search: null,
2516 verbose parsed url query: null,
2516 verbose parsed url pathname: '^0.3.0',
2516 verbose parsed url path: '^0.3.0',
2516 verbose parsed url href: '^0.3.0' }
2517 verbose addNamed [ 'minimatch', '^0.3.0' ]
2518 verbose addNamed [ null, null ]
2519 silly lockFile 27a1ef78-minimatch-0-3-0 minimatch@^0.3.0
2520 verbose lock minimatch@^0.3.0 /Users/osx/.npm/27a1ef78-minimatch-0-3-0.lock
2521 info addNameTag [ 'minimatch', '^0.3.0' ]
2522 verbose url raw minimatch
2523 verbose url resolving [ 'https://registry.npmjs.org/', './minimatch' ]
2524 verbose url resolved https://registry.npmjs.org/minimatch
2525 info trying registry request attempt 1 at 16:15:56
2526 verbose etag "64HZ0LR2MPZLWRRTTBF60QUIU"
2527 http GET https://registry.npmjs.org/minimatch
2528 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/nodejitsu-api/node_modules/preacher-api/package.json
2529 silly lockFile 822d63de-su-api-node-modules-preacher-api /usr/local/lib/node_modules/jitsu/node_modules/nodejitsu-api/node_modules/preacher-api
2530 silly lockFile 822d63de-su-api-node-modules-preacher-api /usr/local/lib/node_modules/jitsu/node_modules/nodejitsu-api/node_modules/preacher-api
2531 silly lockFile 56aa7830-m-preacher-api-0-1-7-package-tgz /Users/osx/.npm/preacher-api/0.1.7/package.tgz
2532 silly lockFile 56aa7830-m-preacher-api-0-1-7-package-tgz /Users/osx/.npm/preacher-api/0.1.7/package.tgz
2533 info preinstall preacher-api@0.1.7
2534 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/nodejitsu-api/node_modules/preacher-api/package.json
2535 verbose readDependencies using package.json deps
2536 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/nodejitsu-api/node_modules/preacher-api/package.json
2537 http 304 https://registry.npmjs.org/combined-stream
2538 silly registry.get cb [ 304,
2538 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:57 GMT',
2538 silly registry.get server: 'Apache',
2538 silly registry.get via: '1.1 varnish',
2538 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 07:59:02 GMT',
2538 silly registry.get 'cache-control': 'max-age=1',
2538 silly registry.get etag: '"98VC6JCW8Q8SHRX53ZKQOA7Z0"',
2538 silly registry.get 'x-served-by': 'cache-jfk1029-JFK',
2538 silly registry.get 'x-cache': 'HIT',
2538 silly registry.get 'x-cache-hits': '1142',
2538 silly registry.get 'x-timer': 'S1401826557.379932,VS0,VE0',
2538 silly registry.get vary: 'Accept',
2538 silly registry.get 'content-length': '0',
2538 silly registry.get 'keep-alive': 'timeout=10, max=50',
2538 silly registry.get connection: 'Keep-Alive' } ]
2539 verbose etag combined-stream from cache
2540 verbose readDependencies using package.json deps
2541 verbose cache add [ 'primus@~1.4.0', null ]
2542 verbose cache add name=undefined spec="primus@~1.4.0" args=["primus@~1.4.0",null]
2543 verbose parsed url { protocol: null,
2543 verbose parsed url slashes: null,
2543 verbose parsed url auth: null,
2543 verbose parsed url host: null,
2543 verbose parsed url port: null,
2543 verbose parsed url hostname: null,
2543 verbose parsed url hash: null,
2543 verbose parsed url search: null,
2543 verbose parsed url query: null,
2543 verbose parsed url pathname: 'primus@~1.4.0',
2543 verbose parsed url path: 'primus@~1.4.0',
2543 verbose parsed url href: 'primus@~1.4.0' }
2544 verbose cache add name="primus" spec="~1.4.0" args=["primus","~1.4.0"]
2545 verbose parsed url { protocol: null,
2545 verbose parsed url slashes: null,
2545 verbose parsed url auth: null,
2545 verbose parsed url host: null,
2545 verbose parsed url port: null,
2545 verbose parsed url hostname: null,
2545 verbose parsed url hash: null,
2545 verbose parsed url search: null,
2545 verbose parsed url query: null,
2545 verbose parsed url pathname: '~1.4.0',
2545 verbose parsed url path: '~1.4.0',
2545 verbose parsed url href: '~1.4.0' }
2546 verbose addNamed [ 'primus', '~1.4.0' ]
2547 verbose addNamed [ null, '>=1.4.0- <1.5.0-' ]
2548 silly lockFile 13c3ee02-primus-1-4-0 primus@~1.4.0
2549 verbose lock primus@~1.4.0 /Users/osx/.npm/13c3ee02-primus-1-4-0.lock
2550 verbose cache add [ 'ws@~0.4.28', null ]
2551 verbose cache add name=undefined spec="ws@~0.4.28" args=["ws@~0.4.28",null]
2552 verbose parsed url { protocol: null,
2552 verbose parsed url slashes: null,
2552 verbose parsed url auth: null,
2552 verbose parsed url host: null,
2552 verbose parsed url port: null,
2552 verbose parsed url hostname: null,
2552 verbose parsed url hash: null,
2552 verbose parsed url search: null,
2552 verbose parsed url query: null,
2552 verbose parsed url pathname: 'ws@~0.4.28',
2552 verbose parsed url path: 'ws@~0.4.28',
2552 verbose parsed url href: 'ws@~0.4.28' }
2553 verbose cache add name="ws" spec="~0.4.28" args=["ws","~0.4.28"]
2554 verbose parsed url { protocol: null,
2554 verbose parsed url slashes: null,
2554 verbose parsed url auth: null,
2554 verbose parsed url host: null,
2554 verbose parsed url port: null,
2554 verbose parsed url hostname: null,
2554 verbose parsed url hash: null,
2554 verbose parsed url search: null,
2554 verbose parsed url query: null,
2554 verbose parsed url pathname: '~0.4.28',
2554 verbose parsed url path: '~0.4.28',
2554 verbose parsed url href: '~0.4.28' }
2555 verbose addNamed [ 'ws', '~0.4.28' ]
2556 verbose addNamed [ null, '>=0.4.28- <0.5.0-' ]
2557 silly lockFile 1ef0d92d-ws-0-4-28 ws@~0.4.28
2558 verbose lock ws@~0.4.28 /Users/osx/.npm/1ef0d92d-ws-0-4-28.lock
2559 silly addNameRange number 2 { name: 'combined-stream',
2559 silly addNameRange range: '>=0.0.4- <0.1.0-',
2559 silly addNameRange hasData: true }
2560 silly addNameRange versions [ 'combined-stream',
2560 silly addNameRange [ '0.0.0', '0.0.1', '0.0.2', '0.0.3', '0.0.4' ] ]
2561 verbose addNamed [ 'combined-stream', '0.0.4' ]
2562 verbose addNamed [ '0.0.4', '0.0.4' ]
2563 silly lockFile fa19b583-combined-stream-0-0-4 combined-stream@0.0.4
2564 verbose lock combined-stream@0.0.4 /Users/osx/.npm/fa19b583-combined-stream-0-0-4.lock
2565 verbose read json /Users/osx/.npm/combined-stream/0.0.4/package/package.json
2566 silly lockFile fa19b583-combined-stream-0-0-4 combined-stream@0.0.4
2567 silly lockFile fa19b583-combined-stream-0-0-4 combined-stream@0.0.4
2568 silly lockFile 97e270a8-combined-stream-0-0-4 combined-stream@~0.0.4
2569 silly lockFile 97e270a8-combined-stream-0-0-4 combined-stream@~0.0.4
2570 http 304 https://registry.npmjs.org/async
2571 silly registry.get cb [ 304,
2571 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:57 GMT',
2571 silly registry.get server: 'Apache',
2571 silly registry.get via: '1.1 varnish',
2571 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:57 GMT',
2571 silly registry.get 'cache-control': 'max-age=1',
2571 silly registry.get etag: '"1MO2T44MYV3BGT6A4FLI065DW"',
2571 silly registry.get 'x-served-by': 'cache-jfk1028-JFK',
2571 silly registry.get 'x-cache': 'HIT',
2571 silly registry.get 'x-cache-hits': '1',
2571 silly registry.get 'x-timer': 'S1401826557.381914,VS0,VE7',
2571 silly registry.get vary: 'Accept',
2571 silly registry.get 'content-length': '0',
2571 silly registry.get 'keep-alive': 'timeout=10, max=50',
2571 silly registry.get connection: 'Keep-Alive' } ]
2572 verbose etag async from cache
2573 silly addNameRange number 2 { name: 'async', range: '>=0.9.0- <0.10.0-', hasData: true }
2574 silly addNameRange versions [ 'async',
2574 silly addNameRange [ '0.1.0',
2574 silly addNameRange '0.1.1',
2574 silly addNameRange '0.1.2',
2574 silly addNameRange '0.1.3',
2574 silly addNameRange '0.1.4',
2574 silly addNameRange '0.1.5',
2574 silly addNameRange '0.1.6',
2574 silly addNameRange '0.1.7',
2574 silly addNameRange '0.1.8',
2574 silly addNameRange '0.1.9',
2574 silly addNameRange '0.1.10',
2574 silly addNameRange '0.1.11',
2574 silly addNameRange '0.1.12',
2574 silly addNameRange '0.1.13',
2574 silly addNameRange '0.1.14',
2574 silly addNameRange '0.1.15',
2574 silly addNameRange '0.1.16',
2574 silly addNameRange '0.1.17',
2574 silly addNameRange '0.1.18',
2574 silly addNameRange '0.1.19',
2574 silly addNameRange '0.1.20',
2574 silly addNameRange '0.1.21',
2574 silly addNameRange '0.1.22',
2574 silly addNameRange '0.2.0',
2574 silly addNameRange '0.2.1',
2574 silly addNameRange '0.2.2',
2574 silly addNameRange '0.2.3',
2574 silly addNameRange '0.2.4',
2574 silly addNameRange '0.2.5',
2574 silly addNameRange '0.2.6',
2574 silly addNameRange '0.2.7',
2574 silly addNameRange '0.2.8',
2574 silly addNameRange '0.2.9',
2574 silly addNameRange '0.2.10',
2574 silly addNameRange '0.3.0',
2574 silly addNameRange '0.4.0',
2574 silly addNameRange '0.4.1',
2574 silly addNameRange '0.5.0',
2574 silly addNameRange '0.6.0',
2574 silly addNameRange '0.6.1',
2574 silly addNameRange '0.6.2',
2574 silly addNameRange '0.7.0',
2574 silly addNameRange '0.8.0',
2574 silly addNameRange '0.9.0' ] ]
2575 verbose addNamed [ 'async', '0.9.0' ]
2576 verbose addNamed [ '0.9.0', '0.9.0' ]
2577 silly lockFile 9a58a886-async-0-9-0 async@0.9.0
2578 verbose lock async@0.9.0 /Users/osx/.npm/9a58a886-async-0-9-0.lock
2579 verbose read json /Users/osx/.npm/async/0.9.0/package/package.json
2580 silly lockFile 9a58a886-async-0-9-0 async@0.9.0
2581 silly lockFile 9a58a886-async-0-9-0 async@0.9.0
2582 silly lockFile 38be4a8c-async-0-9-0 async@~0.9.0
2583 silly lockFile 38be4a8c-async-0-9-0 async@~0.9.0
2584 silly resolved [ { author:
2584 silly resolved { name: 'Felix Geisendörfer',
2584 silly resolved email: 'felix@debuggable.com',
2584 silly resolved url: 'http://debuggable.com/' },
2584 silly resolved name: 'combined-stream',
2584 silly resolved description: 'A stream that emits multiple other streams one after another.',
2584 silly resolved version: '0.0.4',
2584 silly resolved homepage: 'https://github.com/felixge/node-combined-stream',
2584 silly resolved repository:
2584 silly resolved { type: 'git',
2584 silly resolved url: 'git://github.com/felixge/node-combined-stream.git' },
2584 silly resolved main: './lib/combined_stream',
2584 silly resolved engines: { node: '*' },
2584 silly resolved dependencies: { 'delayed-stream': '0.0.5' },
2584 silly resolved devDependencies: { far: '0.0.1' },
2584 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',
2584 silly resolved readmeFilename: 'Readme.md',
2584 silly resolved _id: 'combined-stream@0.0.4',
2584 silly resolved _from: 'combined-stream@~0.0.4' },
2584 silly resolved { name: 'async',
2584 silly resolved description: 'Higher-order functions and common patterns for asynchronous code',
2584 silly resolved main: './lib/async',
2584 silly resolved author: { name: 'Caolan McMahon' },
2584 silly resolved version: '0.9.0',
2584 silly resolved repository: { type: 'git', url: 'https://github.com/caolan/async.git' },
2584 silly resolved bugs: { url: 'https://github.com/caolan/async/issues' },
2584 silly resolved licenses: [ [Object] ],
2584 silly resolved devDependencies: { nodeunit: '>0.0.0', 'uglify-js': '1.2.x', nodelint: '>0.0.0' },
2584 silly resolved jam: { main: 'lib/async.js', include: [Object] },
2584 silly resolved scripts: { test: 'nodeunit test/test-async.js' },
2584 silly resolved readme: '# Async.js\n\n[![Build Status via Travis CI](https://travis-ci.org/caolan/async.svg?branch=master)](https://travis-ci.org/caolan/async)\n\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. \n\nUsage:\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`](#seriestasks-callback)\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* [`seq`](#seq)\n* [`applyEach`](#applyEach)\n* [`applyEachSeries`](#applyEachSeries)\n* [`queue`](#queue)\n* [`priorityQueue`](#priorityQueue)\n* [`cargo`](#cargo)\n* [`auto`](#auto)\n* [`retry`](#retry)\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 the function `iterator` to each item in `arr`, 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 its `callback`, the main\n`callback` (for the `each` function) is immediately called with the error.\n\nNote, that since this function applies `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 `arr`.\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 when all `iterator` functions\n have finished, or an error occurs.\n\n__Examples__\n\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```js\n// assuming openFiles is an array of file names \n\nasync.each(openFiles, function( file, callback) {\n \n // Perform operation on file here.\n console.log(\'Processing file \' + file);\n \n if( file.length > 32 ) {\n console.log(\'This file name is too long\');\n callback(\'File name too long\');\n } else {\n // Do work to process file here\n console.log(\'File processed\');\n callback();\n }\n}, function(err){\n // if any of the file processing produced an error, err would equal that error\n if( err ) {\n // One of the iterations produced an error.\n // All processing will now stop.\n console.log(\'A file failed to process\');\n } else {\n console.log(\'All files have been processed successfully\');\n }\n});\n```\n\n---------------------------------------\n\n<a name="forEachSeries" />\n<a name="eachSeries" />\n### eachSeries(arr, iterator, callback)\n\nThe same as [`each`](#each), only `iterator` is applied to each item in `arr` in\nseries. The next `iterator` is only called once the current one has completed. \nThis 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`](#each), only no more than `limit` `iterator`s will be simultaneously \nrunning at any time.\n\nNote that the items in `arr` are not processed in batches, so there is no guarantee that \nthe first `limit` `iterator` functions will complete before any others are started.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `limit` - The maximum number of `iterator`s to run at any time.\n* `iterator(item, callback)` - A function to apply to each item in `arr`.\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 when all `iterator` functions\n have finished, or an error occurs.\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 `arr` through\nthe `iterator` function. The `iterator` is called with an item from `arr` and a\ncallback for when it has finished processing. Each of these callback takes 2 arguments: \nan `error`, and the transformed item from `arr`. If `iterator` passes an error to this \ncallback, the main `callback` (for the `map` 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. \nHowever, the results array will be in the same order as the original `arr`.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `iterator(item, callback)` - A function to apply to each item in `arr`.\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 when all `iterator`\n functions have finished, or an error occurs. Results is an array of the\n transformed items from the `arr`.\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`](#map), only the `iterator` is applied to each item in `arr` in\nseries. The next `iterator` is only called once the current one has completed. \nThe 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`](#map), only no more than `limit` `iterator`s will be simultaneously \nrunning at any time.\n\nNote that the items are not processed in batches, so there is no guarantee that \nthe first `limit` `iterator` functions will complete before any others are started.\n\n__Arguments__\n\n* `arr` - An array to iterate over.\n* `limit` - The maximum number of `iterator`s to run at any time.\n* `iterator(item, callback)` - A function to apply to each item in `arr`.\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 when all `iterator`\n calls have finished, or an error occurs. The result is an array of the\n transformed items from the original `arr`.\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="select" />\n<a name="filter" />\n### filter(arr, iterator, callback)\n\n__Alias:__ `select`\n\nReturns a new array of all the values in `arr` which pass an async truth test.\n_The callback for each `iterator` call only accepts a single argument of `true` or\n`false`; 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 `arr`.\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="selectSeries" />\n<a name="filterSeries" />\n### filterSeries(arr, iterator, callback)\n\n__Alias:__ `selectSeries`\n\nThe same as [`filter`](#filter) only the `iterator` is applied to each item in `arr` in\nseries. The next `iterator` is only called once the current one has completed. \nThe 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`](#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`](#reject), only the `iterator` is applied to each item in `arr`\nin series.\n\n\n---------------------------------------\n\n<a name="reduce" />\n### reduce(arr, memo, iterator, callback)\n\n__Aliases:__ `inject`, `foldl`\n\nReduces `arr` into a single value using an async `iterator` to return\neach successive step. `memo` is the initial state of the reduction. \nThis function only operates in series. \n\nFor performance reasons, it may make sense to split a call to this function into \na parallel map, and then use the normal `Array.prototype.reduce` on the results. \nThis function is for situations where each step in the reduction needs to be async; \nif you can get the data before reducing 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`](#reduce), only operates on `arr` in reverse order.\n\n\n---------------------------------------\n\n<a name="detect" />\n### detect(arr, iterator, callback)\n\nReturns the first value in `arr` that passes an async truth test. The\n`iterator` 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 `arr` (in terms of order) that passes the test.\n\nIf order within the original `arr` is important, then look at [`detectSeries`](#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 `arr`.\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`](#detect), only the `iterator` is applied to each item in `arr`\nin series. This means the result is always the first in the original `arr` (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 `arr` 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 `arr`.\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 occurs. Results is the items from\n the original `arr` 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__Sort Order__\n\nBy modifying the callback parameter the sorting order can be influenced:\n\n```js\n//ascending order\nasync.sortBy([1,9,3,5], function(x, callback){\n callback(err, x);\n}, function(err,result){\n //result callback\n} );\n\n//descending order\nasync.sortBy([1,9,3,5], function(x, callback){\n callback(err, x*-1); //<- x*-1 instead of x, turns the order around\n}, function(err,result){\n //result callback\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 `arr` satisfies an async test.\n_The callback for each iterator call only accepts a single argument of `true` or\n`false`; 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 in parallel. The iterator is passed a callback(truthValue) which must be \n called with a 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 `arr` satisfies an async test.\n_The callback for each `iterator` call only accepts a single argument of `true` or\n`false`; 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 in parallel. The iterator is passed a callback(truthValue) which must be \n called with a 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 `iterator` to each item in `arr`, concatenating the results. Returns the\nconcatenated list. The `iterator`s 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 `arr` 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 `arr`.\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 occurs. 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 [`concat`](#concat), but executes in series instead of parallel.\n\n\n## Control Flow\n\n<a name="series" />\n### series(tasks, [callback])\n\nRun the functions in the `tasks` array 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 `callback` is immediately called with the value of the error. \nOtherwise, `callback` receives an array of results when `tasks` have completed.\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\n[`series`](#series).\n\n**Note** that while many implementations preserve the order of object properties, the\n[ECMAScript Language Specifcation](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6) \nexplicitly states that\n\n> The mechanics and order of enumerating the properties is not specified.\n\nSo if you rely on the order in which your series of functions are executed, and want\nthis to work on all platforms, consider using an array. \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 `err` (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 the `tasks` 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\n[`parallel`](#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)` which it must call on completion with an error `err` \n (which can 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="parallelLimit" />\n### parallelLimit(tasks, limit, [callback])\n\nThe same as [`parallel`](#parallel), only `tasks` are executed in parallel \nwith a maximum of `limit` tasks 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 `err` (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 `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 which is called each time `test` passes. The function is\n passed a `callback(err)`, which must be called once it has completed with an \n optional `err` 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`](#whilst). To reflect the difference in \nthe order of operations, the arguments `test` and `fn` are switched. \n\n`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 `callback` when stopped,\nor an error occurs.\n\nThe inverse of [`whilst`](#whilst).\n\n---------------------------------------\n\n<a name="doUntil" />\n### doUntil(fn, test, callback)\n\nLike [`doWhilst`](#doWhilst), except the `test` is inverted. Note the argument ordering differs from `until`.\n\n---------------------------------------\n\n<a name="forever" />\n### forever(fn, errback)\n\nCalls the asynchronous function `fn` with a callback parameter that allows it to\ncall itself again, in series, indefinitely.\n\nIf an error is passed to the callback then `errback` is called with the\nerror, and execution stops, otherwise it will never be called.\n\n```js\nasync.forever(\n function(next) {\n // next is suitable for passing to things that need a callback(err [, whatever]);\n // it will result in this function being called again.\n },\n function(err) {\n // if next is called with a value in its first parameter, it will appear\n // in here as \'err\', and execution will stop.\n }\n);\n```\n\n---------------------------------------\n\n<a name="waterfall" />\n### waterfall(tasks, [callback])\n\nRuns the `tasks` array of functions in series, each passing their results to the next in\nthe array. However, if any of the `tasks` pass an error to their own 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 // arg1 now equals \'one\' and arg2 now equals \'two\'\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\n`f(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="seq" />\n### seq(fn1, fn2...)\n\nVersion of the compose function that is more natural to read.\nEach following function consumes the return value of the latter function. \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\n// Requires lodash (or underscore), express3 and dresende\'s orm2.\n// Part of an app, that fetches cats of the logged user.\n// This example uses `seq` function to avoid overnesting and error \n// handling clutter.\napp.get(\'/cats\', function(request, response) {\n function handleError(err, data, callback) {\n if (err) {\n console.error(err);\n response.json({ status: \'error\', message: err.message });\n }\n else {\n callback(data);\n }\n }\n var User = request.models.User;\n async.seq(\n _.bind(User.get, User), // \'User.get\' has signature (id, callback(err, data))\n handleError,\n function(user, fn) {\n user.getCats(fn); // \'getCats\' has signature (callback(err, data))\n },\n handleError,\n function(cats) {\n response.json({ status: \'ok\', message: \'Cats found\', data: cats });\n }\n )(req.session.user_id);\n }\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 \n`callback` 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`](#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\n`queue` are processed in parallel (up to the `concurrency` limit). If all\n`worker`s are in progress, the task is queued until one becomes available. \nOnce a `worker` completes a `task`, that `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* `started` - a function returning whether or not any items have been pushed and processed by the queue\n* `running()` - a function returning the number of items currently being processed.\n* `idle()` - a function returning false if there are items waiting or being processed, or true if not.\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`. Calls `callback` once \n the `worker` has finished processing the task. Instead of a single task, a `tasks` array\n 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` limit, \n 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* `paused` - a boolean for determining whether the queue is in a paused state\n* `pause()` - a function that pauses the processing of tasks until `resume()` is called.\n* `resume()` - a function that resumes the processing of queued tasks when the queue is paused.\n* `kill()` - a function that empties remaining tasks from the queue forcing it to go idle.\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\n<a name="priorityQueue" />\n### priorityQueue(worker, concurrency)\n\nThe same as [`queue`](#queue) only tasks are assigned a priority and completed in ascending priority order. There are two differences between `queue` and `priorityQueue` objects:\n\n* `push(task, priority, [callback])` - `priority` should be a number. If an array of\n `tasks` is given, all tasks will be assigned the same priority.\n* The `unshift` method was removed.\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\n`worker` is in progress, the task is queued until it becomes available. Once\nthe `worker` has completed some tasks, each callback of those tasks is called.\nCheck out [this animation](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) for how `cargo` and `queue` work.\n\nWhile [queue](#queue) passes only one task to one of a group of workers\nat a time, cargo passes an array of tasks to a single worker, repeating\nwhen the worker is finished.\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 `err` 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])` - Adds `task` to the `queue`. The callback is called\n once the `worker` has finished processing the task. Instead of a single task, an array of `tasks` \n 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 the functions in `tasks`, based on their \nrequirements. Each function can optionally depend on other functions being completed \nfirst, and each function is run as soon as its requirements are satisfied. \n\nIf any of the functions pass an error to their callback, it will not \ncomplete (so any other functions depending on it will not run), and the main \n`callback` is immediately called with the error. Functions also receive an \nobject containing 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. \n\nFor 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 \n`results` 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. Each of its properties is either a function or an array of\n requirements, with the function itself the last item in the array. The object\'s key\n of a property serves as the name of the task defined by that property,\n i.e. can be used when specifying requirements for other tasks.\n The 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. It receives the `err` argument if any `tasks` \n pass an error to their callback. Results are always returned; however, if \n an error occurs, no further `tasks` will be performed, and the results\n object will only contain partial results.\n\n\n__Example__\n\n```js\nasync.auto({\n get_data: function(callback){\n console.log(\'in get_data\');\n // async code to get some data\n callback(null, \'data\', \'converted to array\');\n },\n make_folder: function(callback){\n console.log(\'in make_folder\');\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 callback(null, \'folder\');\n },\n write_file: [\'get_data\', \'make_folder\', function(callback, results){\n console.log(\'in write_file\', JSON.stringify(results));\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 console.log(\'in email_link\', JSON.stringify(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 callback(null, {\'file\':results.write_file, \'email\':\'user@example.com\'});\n }]\n}, function(err, results) {\n console.log(\'err = \', err);\n console.log(\'results = \', results);\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 console.log(\'in get_data\');\n // async code to get some data\n callback(null, \'data\', \'converted to array\');\n },\n function(callback){\n console.log(\'in make_folder\');\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 callback(null, \'folder\');\n }\n],\nfunction(err, results){\n async.series([\n function(callback){\n console.log(\'in write_file\', JSON.stringify(results));\n // once there is some data and the directory exists,\n // write the data to a file in the directory\n results.push(\'filename\');\n callback(null);\n },\n function(callback){\n console.log(\'in email_link\', JSON.stringify(results));\n // once the file is written let\'s email a link to it...\n callback(null, {\'file\':results.pop(), \'email\':\'user@example.com\'});\n }\n ]);\n});\n```\n\nFor a complicated series of `async` tasks, using the [`auto`](#auto) function makes adding\nnew tasks much easier (and the code more readable).\n\n\n---------------------------------------\n\n<a name="retry" />\n### retry([times = 5], task, [callback])\n\nAttempts to get a successful response from `task` no more than `times` times before\nreturning an error. If the task is successful, the `callback` will be passed the result\nof the successfull task. If all attemps fail, the callback will be passed the error and\nresult (if any) of the final attempt.\n\n__Arguments__\n\n* `times` - An integer indicating how many times to attempt the `task` before giving up. Defaults to 5.\n* `task(callback, results)` - A function which receives two arguments: (1) a `callback(err, result)`\n which must be called when finished, passing `err` (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 (if nested inside another control flow).\n* `callback(err, results)` - An optional callback which is called when the\n task has succeeded, or after the final failed attempt. It receives the `err` and `result` arguments of the last attempt at completing the `task`.\n\nThe [`retry`](#retry) function can be used as a stand-alone control flow by passing a\ncallback, as shown below:\n\n```js\nasync.retry(3, apiMethod, function(err, result) {\n // do something with the result\n});\n```\n\nIt can also be embeded within other control flow functions to retry individual methods\nthat are not as reliable, like this:\n\n```js\nasync.auto({\n users: api.getUsers.bind(api),\n payments: async.retry(3, api.getPayments.bind(api))\n}, function(err, results) {\n // do something with the results\n});\n```\n\n\n---------------------------------------\n\n<a name="iterator" />\n### iterator(tasks)\n\nCreates an iterator function which calls the next function in the `tasks` array,\nreturning a continuation to call the next one after that. It\'s also possible to\n“peek” at the next iterator with `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. \n\nUseful as a shorthand 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 `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 `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` function `n` times, and accumulates results in the same manner\nyou would use with [`map`](#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`](#times), only the iterator is applied to each item in `arr` in\nseries. The next `iterator` is only called once the current one has completed. \nThe 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 to proxy and cache results from.\n* `hasher` - Tn 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 [`memoize`](#memoize)d function, reverting it to the original, unmemoized\nform. Handy for testing.\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\n`async` object.\n',
2584 silly resolved readmeFilename: 'README.md',
2584 silly resolved _id: 'async@0.9.0',
2584 silly resolved _from: 'async@~0.9.0' } ]
2585 info install combined-stream@0.0.4 into /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/form-data
2586 info install async@0.9.0 into /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/form-data
2587 info installOne combined-stream@0.0.4
2588 info installOne async@0.9.0
2589 verbose from cache /Users/osx/.npm/combined-stream/0.0.4/package/package.json
2590 info /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/form-data/node_modules/combined-stream unbuild
2591 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/form-data/node_modules/combined-stream/package.json
2592 verbose from cache /Users/osx/.npm/async/0.9.0/package/package.json
2593 info /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/form-data/node_modules/async unbuild
2594 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/form-data/node_modules/async/package.json
2595 verbose tar unpack /Users/osx/.npm/combined-stream/0.0.4/package.tgz
2596 silly lockFile 8551ecd3-ata-node-modules-combined-stream /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/form-data/node_modules/combined-stream
2597 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/form-data/node_modules/combined-stream /Users/osx/.npm/8551ecd3-ata-node-modules-combined-stream.lock
2598 silly lockFile 32539c6b-ombined-stream-0-0-4-package-tgz /Users/osx/.npm/combined-stream/0.0.4/package.tgz
2599 verbose lock /Users/osx/.npm/combined-stream/0.0.4/package.tgz /Users/osx/.npm/32539c6b-ombined-stream-0-0-4-package-tgz.lock
2600 verbose tar unpack /Users/osx/.npm/async/0.9.0/package.tgz
2601 silly lockFile af4d4263-les-form-data-node-modules-async /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/form-data/node_modules/async
2602 verbose lock /usr/local/lib/node_modules/jitsu/node_modules/request/node_modules/form-data/node_modules/async /Users/osx/.npm/af4d4263-les-form-data-node-modules-async.lock
2603 silly lockFile fac0d891--osx-npm-async-0-9-0-package-tgz /Users/osx/.npm/async/0.9.0/package.tgz
2604 verbose lock /Users/osx/.npm/async/0.9.0/package.tgz /Users/osx/.npm/fac0d891--osx-npm-async-0-9-0-package-tgz.lock
2605 verbose read json /usr/local/lib/node_modules/jitsu/node_modules/wizard/node_modules/prompt/package.json
2606 silly lockFile 13a2831e-dules-wizard-node-modules-prompt /usr/local/lib/node_modules/jitsu/node_modules/wizard/node_modules/prompt
2607 silly lockFile 13a2831e-dules-wizard-node-modules-prompt /usr/local/lib/node_modules/jitsu/node_modules/wizard/node_modules/prompt
2608 silly lockFile 6f52e370-sx-npm-prompt-0-2-13-package-tgz /Users/osx/.npm/prompt/0.2.13/package.tgz
2609 silly lockFile 6f52e370-sx-npm-prompt-0-2-13-package-tgz /Users/osx/.npm/prompt/0.2.13/package.tgz
2610 info preinstall prompt@0.2.13
2611 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/wizard/node_modules/prompt/package.json
2612 verbose readDependencies using package.json deps
2613 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/wizard/node_modules/prompt/package.json
2614 verbose readDependencies using package.json deps
2615 verbose cache add [ 'read@1.0.x', null ]
2616 verbose cache add name=undefined spec="read@1.0.x" args=["read@1.0.x",null]
2617 verbose parsed url { protocol: null,
2617 verbose parsed url slashes: null,
2617 verbose parsed url auth: null,
2617 verbose parsed url host: null,
2617 verbose parsed url port: null,
2617 verbose parsed url hostname: null,
2617 verbose parsed url hash: null,
2617 verbose parsed url search: null,
2617 verbose parsed url query: null,
2617 verbose parsed url pathname: 'read@1.0.x',
2617 verbose parsed url path: 'read@1.0.x',
2617 verbose parsed url href: 'read@1.0.x' }
2618 verbose cache add name="read" spec="1.0.x" args=["read","1.0.x"]
2619 verbose parsed url { protocol: null,
2619 verbose parsed url slashes: null,
2619 verbose parsed url auth: null,
2619 verbose parsed url host: null,
2619 verbose parsed url port: null,
2619 verbose parsed url hostname: null,
2619 verbose parsed url hash: null,
2619 verbose parsed url search: null,
2619 verbose parsed url query: null,
2619 verbose parsed url pathname: '1.0.x',
2619 verbose parsed url path: '1.0.x',
2619 verbose parsed url href: '1.0.x' }
2620 verbose addNamed [ 'read', '1.0.x' ]
2621 verbose addNamed [ null, '>=1.0.0- <1.1.0-' ]
2622 silly lockFile acd4039d-read-1-0-x read@1.0.x
2623 verbose lock read@1.0.x /Users/osx/.npm/acd4039d-read-1-0-x.lock
2624 verbose cache add [ 'revalidator@0.1.x', null ]
2625 verbose cache add name=undefined spec="revalidator@0.1.x" args=["revalidator@0.1.x",null]
2626 verbose parsed url { protocol: null,
2626 verbose parsed url slashes: null,
2626 verbose parsed url auth: null,
2626 verbose parsed url host: null,
2626 verbose parsed url port: null,
2626 verbose parsed url hostname: null,
2626 verbose parsed url hash: null,
2626 verbose parsed url search: null,
2626 verbose parsed url query: null,
2626 verbose parsed url pathname: 'revalidator@0.1.x',
2626 verbose parsed url path: 'revalidator@0.1.x',
2626 verbose parsed url href: 'revalidator@0.1.x' }
2627 verbose cache add name="revalidator" spec="0.1.x" args=["revalidator","0.1.x"]
2628 verbose parsed url { protocol: null,
2628 verbose parsed url slashes: null,
2628 verbose parsed url auth: null,
2628 verbose parsed url host: null,
2628 verbose parsed url port: null,
2628 verbose parsed url hostname: null,
2628 verbose parsed url hash: null,
2628 verbose parsed url search: null,
2628 verbose parsed url query: null,
2628 verbose parsed url pathname: '0.1.x',
2628 verbose parsed url path: '0.1.x',
2628 verbose parsed url href: '0.1.x' }
2629 verbose addNamed [ 'revalidator', '0.1.x' ]
2630 verbose addNamed [ null, '>=0.1.0- <0.2.0-' ]
2631 silly lockFile 0837132e-revalidator-0-1-x revalidator@0.1.x
2632 verbose lock revalidator@0.1.x /Users/osx/.npm/0837132e-revalidator-0-1-x.lock
2633 verbose cache add [ 'utile@0.2.x', null ]
2634 verbose cache add name=undefined spec="utile@0.2.x" args=["utile@0.2.x",null]
2635 verbose parsed url { protocol: null,
2635 verbose parsed url slashes: null,
2635 verbose parsed url auth: null,
2635 verbose parsed url host: null,
2635 verbose parsed url port: null,
2635 verbose parsed url hostname: null,
2635 verbose parsed url hash: null,
2635 verbose parsed url search: null,
2635 verbose parsed url query: null,
2635 verbose parsed url pathname: 'utile@0.2.x',
2635 verbose parsed url path: 'utile@0.2.x',
2635 verbose parsed url href: 'utile@0.2.x' }
2636 verbose cache add name="utile" spec="0.2.x" args=["utile","0.2.x"]
2637 verbose parsed url { protocol: null,
2637 verbose parsed url slashes: null,
2637 verbose parsed url auth: null,
2637 verbose parsed url host: null,
2637 verbose parsed url port: null,
2637 verbose parsed url hostname: null,
2637 verbose parsed url hash: null,
2637 verbose parsed url search: null,
2637 verbose parsed url query: null,
2637 verbose parsed url pathname: '0.2.x',
2637 verbose parsed url path: '0.2.x',
2637 verbose parsed url href: '0.2.x' }
2638 verbose addNamed [ 'utile', '0.2.x' ]
2639 verbose addNamed [ null, '>=0.2.0- <0.3.0-' ]
2640 silly lockFile f92ad74f-utile-0-2-x utile@0.2.x
2641 verbose lock utile@0.2.x /Users/osx/.npm/f92ad74f-utile-0-2-x.lock
2642 silly addNameRange { name: 'read', range: '>=1.0.0- <1.1.0-', hasData: false }
2643 silly addNameRange { name: 'revalidator',
2643 silly addNameRange range: '>=0.1.0- <0.2.0-',
2643 silly addNameRange hasData: false }
2644 verbose cache add [ 'winston@0.6.x', null ]
2645 verbose cache add name=undefined spec="winston@0.6.x" args=["winston@0.6.x",null]
2646 verbose parsed url { protocol: null,
2646 verbose parsed url slashes: null,
2646 verbose parsed url auth: null,
2646 verbose parsed url host: null,
2646 verbose parsed url port: null,
2646 verbose parsed url hostname: null,
2646 verbose parsed url hash: null,
2646 verbose parsed url search: null,
2646 verbose parsed url query: null,
2646 verbose parsed url pathname: 'winston@0.6.x',
2646 verbose parsed url path: 'winston@0.6.x',
2646 verbose parsed url href: 'winston@0.6.x' }
2647 verbose cache add name="winston" spec="0.6.x" args=["winston","0.6.x"]
2648 verbose parsed url { protocol: null,
2648 verbose parsed url slashes: null,
2648 verbose parsed url auth: null,
2648 verbose parsed url host: null,
2648 verbose parsed url port: null,
2648 verbose parsed url hostname: null,
2648 verbose parsed url hash: null,
2648 verbose parsed url search: null,
2648 verbose parsed url query: null,
2648 verbose parsed url pathname: '0.6.x',
2648 verbose parsed url path: '0.6.x',
2648 verbose parsed url href: '0.6.x' }
2649 verbose addNamed [ 'winston', '0.6.x' ]
2650 verbose addNamed [ null, '>=0.6.0- <0.7.0-' ]
2651 silly lockFile e1f74e0f-winston-0-6-x winston@0.6.x
2652 verbose lock winston@0.6.x /Users/osx/.npm/e1f74e0f-winston-0-6-x.lock
2653 silly addNameRange { name: 'utile', range: '>=0.2.0- <0.3.0-', hasData: false }
2654 silly addNameRange { name: 'winston', range: '>=0.6.0- <0.7.0-', hasData: false }
2655 verbose url raw read
2656 verbose url resolving [ 'https://registry.npmjs.org/', './read' ]
2657 verbose url resolved https://registry.npmjs.org/read
2658 info trying registry request attempt 1 at 16:15:56
2659 verbose etag "AX4MIK1433873MQ2X0SOFZUZH"
2660 http GET https://registry.npmjs.org/read
2661 verbose url raw revalidator
2662 verbose url resolving [ 'https://registry.npmjs.org/', './revalidator' ]
2663 verbose url resolved https://registry.npmjs.org/revalidator
2664 info trying registry request attempt 1 at 16:15:56
2665 verbose etag "EUJWKK05MF0JMSCTRAFOSJMIT"
2666 http GET https://registry.npmjs.org/revalidator
2667 verbose url raw utile
2668 verbose url resolving [ 'https://registry.npmjs.org/', './utile' ]
2669 verbose url resolved https://registry.npmjs.org/utile
2670 info trying registry request attempt 1 at 16:15:56
2671 verbose etag "BC16ZZBP2PGAQRXUGGZQLBT8W"
2672 http GET https://registry.npmjs.org/utile
2673 verbose url raw winston
2674 verbose url resolving [ 'https://registry.npmjs.org/', './winston' ]
2675 verbose url resolved https://registry.npmjs.org/winston
2676 info trying registry request attempt 1 at 16:15:56
2677 verbose etag "11NYU8KGNP0X91J7X2C7LT8FD"
2678 http GET https://registry.npmjs.org/winston
2679 http 304 https://registry.npmjs.org/minimatch
2680 silly registry.get cb [ 304,
2680 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:57 GMT',
2680 silly registry.get server: 'Apache',
2680 silly registry.get via: '1.1 varnish',
2680 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:57 GMT',
2680 silly registry.get 'cache-control': 'max-age=1',
2680 silly registry.get etag: '"64HZ0LR2MPZLWRRTTBF60QUIU"',
2680 silly registry.get 'x-served-by': 'cache-jfk1032-JFK',
2680 silly registry.get 'x-cache': 'MISS',
2680 silly registry.get 'x-cache-hits': '0',
2680 silly registry.get 'x-timer': 'S1401826557.424584,VS0,VE6',
2680 silly registry.get vary: 'Accept',
2680 silly registry.get 'content-length': '0',
2680 silly registry.get 'keep-alive': 'timeout=10, max=50',
2680 silly registry.get connection: 'Keep-Alive' } ]
2681 verbose etag minimatch from cache
2682 silly lockFile 27a1ef78-minimatch-0-3-0 minimatch@^0.3.0
2683 silly lockFile 27a1ef78-minimatch-0-3-0 minimatch@^0.3.0
2684 verbose about to build /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm/node_modules/fstream-ignore
2685 info /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm/node_modules/fstream-ignore unbuild
2686 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm/node_modules/fstream-ignore/package.json
2687 info preuninstall fstream-ignore@0.0.8
2688 info uninstall fstream-ignore@0.0.8
2689 verbose false,/usr/local/lib/node_modules,/usr/local/lib/node_modules/jitsu/node_modules/fstream-npm/node_modules unbuild fstream-ignore@0.0.8
2690 info postuninstall fstream-ignore@0.0.8
2691 verbose about to build /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm
2692 info /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm unbuild
2693 verbose from cache /usr/local/lib/node_modules/jitsu/node_modules/fstream-npm/package.json
2694 info preuninstall fstream-npm@0.1.6
2695 info uninstall fstream-npm@0.1.6
2696 verbose false,/usr/local/lib/node_modules,/usr/local/lib/node_modules/jitsu/node_modules unbuild fstream-npm@0.1.6
2697 info postuninstall fstream-npm@0.1.6
2698 verbose about to build /usr/local/lib/node_modules/jitsu
2699 info /usr/local/lib/node_modules/jitsu unbuild
2700 verbose from cache /usr/local/lib/node_modules/jitsu/package.json
2701 info preuninstall jitsu@0.13.16
2702 info uninstall jitsu@0.13.16
2703 verbose true,/usr/local/lib/node_modules,/usr/local/lib/node_modules unbuild jitsu@0.13.16
2704 verbose /usr/local/bin,[object Object] binRoot
2705 info postuninstall jitsu@0.13.16
2706 http 304 https://registry.npmjs.org/revalidator
2707 silly registry.get cb [ 304,
2707 silly registry.get { date: 'Tue, 03 Jun 2014 20:15:57 GMT',
2707 silly registry.get server: 'Apache',
2707 silly registry.get via: '1.1 varnish',
2707 silly registry.get 'last-modified': 'Tue, 03 Jun 2014 20:15:57 GMT',
2707 silly registry.get 'cache-control': 'max-age=1',
2707 silly registry.get etag: '"EUJWKK05MF0JMSCTRAFOSJMIT"',
2707 silly registry.get 'x-served-by': 'cache-jfk1032-JFK',
2707 silly registry.get 'x-cache': 'HIT',
2707 silly registry.get 'x-cache-hits': '1',
2707 silly registry.get 'x-timer': 'S1401826557.480880,VS0,VE0',
2707 silly registry.get vary: 'Accept',
2707 silly registry.get 'content-length': '0',
2707 silly registry.get 'keep-alive': 'timeout=10, max=50',
2707 silly registry.get connection: 'Keep-Alive' } ]
2708 verbose etag revalidator from cache
2709 silly addNameRange number 2 { name: 'revalidator', range: '>=0.1.0- <0.2.0-', hasData: true }
2710 silly addNameRange versions [ 'revalidator',
2710 silly addNameRange [ '0.1.0',
2710 silly addNameRange '0.1.1',
2710 silly addNameRange '0.1.2',
2710 silly addNameRange '0.1.3',
2710 silly addNameRange '0.1.5',
2710 silly addNameRange '0.1.6',
2710 silly addNameRange '0.1.7',
2710 silly addNameRange '0.1.8' ] ]
2711 verbose addNamed [ 'revalidator', '0.1.8' ]
2712 verbose addNamed [ '0.1.8', '0.1.8' ]
2713 silly lockFile 4dd38e4d-revalidator-0-1-8 revalidator@0.1.8
2714 verbose lock revalidator@0.1.8 /Users/osx/.npm/4dd38e4d-revalidator-0-1-8.lock
2715 verbose read json /Users/osx/.npm/revalidator/0.1.8/package/package.json
2716 error Error: No compatible version found: minimatch@'^0.3.0'
2716 error Valid install targets:
2716 error ["0.0.1","0.0.2","0.0.4","0.0.5","0.1.1","0.1.2","0.1.3","0.1.4","0.1.5","0.2.0","0.2.2","0.2.3","0.2.4","0.2.5","0.2.6","0.2.7","0.2.8","0.2.9","0.2.10","0.2.11","0.2.12","0.2.13","0.2.14","0.3.0"]
2716 error at installTargetsError (/usr/local/lib/node_modules/npm/lib/cache.js:684:10)
2716 error at /usr/local/lib/node_modules/npm/lib/cache.js:606:10
2716 error at saved (/usr/local/lib/node_modules/npm/node_modules/npm-registry-client/lib/get.js:138:7)
2716 error at Object.oncomplete (fs.js:107:15)
2717 error If you need help, you may report this log at:
2717 error <http://github.com/isaacs/npm/issues>
2717 error or email it to:
2717 error <npm-@googlegroups.com>
2718 error System Darwin 13.2.0
2719 error command "node" "/usr/local/bin/npm" "install" "jitsu" "-g"
2720 error cwd /Users/osx/Documents/_dev/aim/aimmsa.com
2721 error node -v v0.10.1
2722 error npm -v 1.2.15
2723 verbose exit [ 1, true ]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment