GithubHelp home page GithubHelp logo

meanjs / mean Goto Github PK

View Code? Open in Web Editor NEW
4.9K 295.0 2.0K 7.18 MB

MEAN.JS - Full-Stack JavaScript Using MongoDB, Express, AngularJS, and Node.js -

Home Page: http://meanjs.org

License: MIT License

JavaScript 89.52% HTML 9.64% Shell 0.16% CSS 0.34% Dockerfile 0.35%

mean's Introduction

MEAN.JS Logo

Gitter Build Status Dependencies Status Coverage Status Known Vulnerabilities

MEAN.JS is a full-stack JavaScript open-source solution, which provides a solid starting point for MongoDB, Node.js, Express, and AngularJS based applications. The idea is to solve the common issues with connecting those frameworks, build a robust framework to support daily development needs, and help developers use better practices while working with popular JavaScript components.

Before You Begin

Before you begin we recommend you read about the basic building blocks that assemble a MEAN.JS application:

Prerequisites

Make sure you have installed all of the following prerequisites on your development machine:

$ npm install -g bower

Downloading MEAN.JS

There are several ways you can get the MEAN.JS boilerplate:

Cloning The GitHub Repository

The recommended way to get MEAN.js is to use git to directly clone the MEAN.JS repository:

$ git clone https://github.com/meanjs/mean.git meanjs

This will clone the latest version of the MEAN.JS repository to a meanjs folder.

Downloading The Repository Zip File

Another way to use the MEAN.JS boilerplate is to download a zip copy from the master branch on GitHub. You can also do this using the wget command:

$ wget https://github.com/meanjs/mean/archive/master.zip -O meanjs.zip; unzip meanjs.zip; rm meanjs.zip

Don't forget to rename mean-master after your project name.

Yo Generator

Another way would be to use the Official Yo Generator, which generates a copy of the MEAN.JS 0.4.x boilerplate and supplies an application generator to ease your daily development cycles.

Quick Install

Once you've downloaded the boilerplate and installed all the prerequisites, you're just a few steps away from starting to develop your MEAN application.

The boilerplate comes pre-bundled with a package.json and bower.json files that contain the list of modules you need to start your application.

To install the dependencies, run this in the application folder from the command-line:

$ npm install

This command does a few things:

  • First it will install the dependencies needed for the application to run.
  • If you're running in a development environment, it will then also install development dependencies needed for testing and running your application.
  • When the npm packages install process is over, npm will initiate a bower install command to install all the front-end modules needed for the application
  • To update these packages later on, just run npm update

Running Your Application

Run your application using npm:

$ npm start

Your application should run on port 3000 with the development environment configuration, so in your browser just go to http://localhost:3000

That's it! Your application should be running. To proceed with your development, check the other sections in this documentation. If you encounter any problems, try the Troubleshooting section.

Explore config/env/development.js for development environment configuration options.

Running in Production mode

To run your application with production environment configuration:

$ npm run start:prod

Explore config/env/production.js for production environment configuration options.

Running with User Seed

To have default account(s) seeded at runtime:

In Development:

MONGO_SEED=true npm start

It will try to seed the users 'user' and 'admin'. If one of the user already exists, it will display an error message on the console. Just grab the passwords from the console.

In Production:

MONGO_SEED=true npm start:prod

This will seed the admin user one time if the user does not already exist. You have to copy the password from the console and save it.

Running with TLS (SSL)

Application will start by default with secure configuration (SSL mode) turned on and listen on port 8443. To run your application in a secure manner you'll need to use OpenSSL and generate a set of self-signed certificates. Unix-based users can use the following command:

$ npm run generate-ssl-certs

Windows users can follow instructions found here. After you've generated the key and certificate, place them in the config/sslcerts folder.

Finally, execute prod task npm run start:prod

  • enable/disable SSL mode in production environment change the secure option in config/env/production.js

Testing Your Application

You can run the full test suite included with MEAN.JS with the test task:

$ npm test

This will run both the server-side tests (located in the app/tests/ directory) and the client-side tests (located in the public/modules/*/tests/).

To execute only the server tests, run the test:server task:

$ npm run test:server

To execute only the server tests and run again only changed tests, run the test:server:watch task:

$ npm run test:server:watch

And to run only the client tests, run the test:client task:

$ npm run test:client

Running your application with Gulp

The MEAN.JS project integrates Gulp as build tools and task automation.

We have wrapped Gulp tasks with npm scripts so that regardless of the build tool running the project is transparent to you.

To use Gulp directly, you need to first install it globally:

$ npm install gulp -g

Then start the development environment with:

$ gulp

To run your application with production environment configuration, execute gulp as follows:

$ gulp prod

It is also possible to run any Gulp tasks using npm's run command and therefore use locally installed version of gulp, for example: npm run gulp eslint

Development and deployment With Docker

  • Install Docker

  • Install Compose

  • Local development and testing with compose:

$ docker-compose up
  • Local development and testing with just Docker:
$ docker build -t mean .
$ docker run -p 27017:27017 -d --name db mongo
$ docker run -p 3000:3000 --link db:db_1 mean
$
  • To enable live reload, forward port 35729 and mount /app and /public as volumes:
$ docker run -p 3000:3000 -p 35729:35729 -v /Users/mdl/workspace/mean-stack/mean/public:/home/mean/public -v /Users/mdl/workspace/mean-stack/mean/app:/home/mean/app --link db:db_1 mean

Production deploy with Docker

  • Production deployment with compose:
$ docker-compose -f docker-compose-production.yml up -d
  • Production deployment with just Docker:
$ docker build -t mean -f Dockerfile-production .
$ docker run -p 27017:27017 -d --name db mongo
$ docker run -p 3000:3000 --link db:db_1 mean

Deploying to PAAS

Deploying MEANJS To Heroku

By clicking the button below you can signup for Heroku and deploy a working copy of MEANJS to the cloud without having to do the steps above.

Deploy

Amazon S3 configuration

To save the profile images to S3, simply set those environment variables: UPLOADS_STORAGE: s3 S3_BUCKET: the name of the bucket where the images will be saved S3_ACCESS_KEY_ID: Your S3 access key S3_SECRET_ACCESS_KEY: Your S3 access key password

Getting Started With MEAN.JS

You have your application running, but there is a lot of stuff to understand. We recommend you go over the Official Documentation. In the docs we'll try to explain both general concepts of MEAN components and give you some guidelines to help you improve your development process. We tried covering as many aspects as possible, and will keep it updated by your request. You can also help us develop and improve the documentation by checking out the gh-pages branch of this repository.

Community

Contributing

We welcome pull requests from the community! Just be sure to read the contributing doc to get started.

Credits

Inspired by the great work of Madhusudhan Srinivasa The MEAN name was coined by Valeri Karpov.

License

The MIT License

mean's People

Contributors

amoshaviv avatar cdriscol avatar codydaig avatar enkodellc avatar fyockm avatar hyperreality avatar igorauad avatar ilanbiala avatar itelo avatar jloveland avatar liorkesos avatar lirantal avatar luebken avatar michaeljcole avatar mleanos avatar mrjasonweaver avatar netusco avatar pgrodrigues avatar pierrebrisorgueil avatar pontifier avatar reblace avatar rhutchison avatar rschwabco avatar shanavas786 avatar simison avatar snyk-bot avatar spacemonkey avatar sujeethk avatar trainerbill avatar wansco avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mean's Issues

MongoDB Migrations

The convo from Twitter.

I was thinking of migrations a-la Rails or Fuel PHP.

Could base something on the relatively simple and abstract migrate framework. I tried using mongo-migrate, as well as a command line tool, but I've had no luck with either.

This might be something which is best left as un-opinionated by the stack though, and let the users choose their own tool, but still I like the idea of having the convenience of db migrations right there available to me by default when I'm using mean.

What do you guys think?

module doesnt seem to load in production mode

when I am in development mode my menu items show up, if I set the env=production my menu items disappear. I see no errors in the console or log. I have the same dependencies defined in all.js and production.js. What am I missing?

Proposal with working code: separate core from boilerplate. Adopt contrib module system.

Hi,

This is a proposal to add a core and plugin system to MEAN.JS

My motivation for this is:

  1. To get an awesome clean boilerplate for new projects
  2. Get updates to core code easily through npm
  3. Get new features through modules from an open and thriving community

The TLDR;

Here is a MEAN.JS boilerplate app using a new core and contrib plugin system implemented via npm.

To see the code in action:

git clone [email protected]:MichaelJCole/mean.git
cd mean
git checkout meanjs-core
npm install
grunt build
grunt

Notice package.json has two modules: meanjs-core and meanjs-module

In action:

  1. Signup a new user and you should get an email.
  2. Click a confirmation link and check your server console.

Proposal

The proposal is to adopt a framework for boilerplate, core, and contrib code.

To move forward, I propose we:

  1. start to refactor core code out of the boilerplate and into meanjs-core
  2. add new features (email verification and lost password) to meanjs-core
  3. refine the boilerplate for the best end-developer experience
  4. experiment with contrib modules and configuration, propose some best practices
  5. adjust core best practices as we go

Please send any suggestions or comments! What do you think?

The details

I wanted to add three features to my MEAN.JS app:

  1. email verification
  2. lost passwords
  3. subscription to an email list at MailChimp on signup.
  1. & 2) seemed like 'core' functionality. Something MEAN.JS would probably want to maintain

  2. is very custom. Probably not maintained by MEAN.JS, but something I could share with other developers.

I created a plugin system in the MEAN.JS boilerplate forked here that uses it's package.json to import modules meanjs-core and meanjs-module.

In action: Signup email

  1. Sign up as a new user. An email should be sent to the address you used.

This email came from Mandrill email service account (I'll change the keys shortly).
You can config your own email transport in config/env/development.js 'emailTransactional'

The core function sendConfirmEmail is called from the boilerplate in app/controller/users.server.controller.js:

/**
 * Signup
 */
exports.signup = function(req, res) {
  // ...  

  // Then save the user 
  user.save(function(err) {
    if (err) {
      // ...
    } else {
      // ...
      req.login(user, function(err) {
        // ...
      });

      var templateData = {
        user: user
      };
      // Send confirmation email
      req.core.users.sendConfirmEmail(req, user, 'confirmation.email', templateData);
    }
  });
};

In the console you should see:

meanjs-core - users.server.controller.js - sendConfirmEmail...
---> about to send to: [email protected]
---> email sent
POST /auth/signup 200 46ms - 254b
Message sent: 250 2.0.0 Ok: queued as 0801A20024B

In action: confirmation link and custom contrib module

  1. Click a confirmation link:

This has two requirements:

  1. Mark the user's email as confirmed in meanjs-core
  2. Sign user up for MailChimp email list in contrib meanjs-module

The route is configured in the boilerplate users.server.routes.js like this:

  // Confirm user's email
  app.route('/auth/confirm/:confirmationCode')
    .get(app.core.users.checkEmailVerification)
    .get(app.core.users.processEmailVerification)
    .get(app.mean.myModule.subscribeMarketingEmails)
    .get(app.core.users.completeEmailVerification);

There are 4 controllers here:

  1. Core: checkEmailVerification checks the link. Not ok => go to error page. Ok => call next()
  2. Core: processEmailVerification. Update db. Call next()
  3. Contrib: subscribeMarketingEmails. Use MailChimp API. Call next()
  4. Core: completeEmailVerification. Return 'ok' to client

This let's the end-developer:

  • add/remove/remix these controllers to get the functionality they want.
  • Get bug fixes through npm.
  • Have an ecosystem for contributed modules.

To add your own custom module

Add a contributed module in your boilerplate's server.js:

// after mongoose initializes db
var meanModules = {
  'myModule': require('meanjs-module')(db, config) // edit config files if needed.
  // add your module here.
};

How it works

meanModules, core, and config are automatically attached to app and req in /config/express.js so they can be used like this:

// Config
app.config
req.config
// Core functionality
app.core.[submodule].[export]
req.core.[submodule].[export]
// Contributed modules
app.mean.[export]
req.mean.[export]

For technical details, the meanjs-core/README.md was my coding plan and notes.

meanjs-core and meanjs-module are pretty simplistic right now. I implemented just enough to demonstrate how core and contrib modules would interact with the boilerplate.

Results of clicking the link

Clicking the link should reply with 'ok'. So clearly I didn't fully implement this yet. But check your server console to see what happened.

[nodemon] starting `node --debug server.js`
debugger listening on port 5858

 NODE_ENV is not defined! Using default development environment

Failed to load c++ bson extension, using pure JS version
meanjs-module - requiring...
meanjs-module - configuring...
Failed to load c++ bson extension, using pure JS version
meanjs-core - requiring...
meanjs-core - configuring...
meanjs-core - users.server.controller.js - requiring...
setting up email
MEAN.JS application started on port 3000
meanjs-core - users.server.controller.js - checkEmailVerification...
checking.  Success!
meanjs-core - users.server.controller.js - processEmailVerification...
updating user object
meanjs-module - subscribeMarketingEmails controller...
meanjs-core - users.server.controller.js - getCurrentUser...
meanjs-module - User subscribed to marketing emails
meanjs-core - users.server.controller.js - completeEmailVerification...
GET /auth/confirm/adsfasdfasdf 304 15ms

You can see console messages of when the different functions are being called.

Comments

So, it's not fully baked, but it's enough to move in a direction.

Todo:

  • Core Client-side AngularJS code. My background is server side, but I'll need to find a way to get the email list functionality to work. Symfony2 in php used symlinks to pull in client code from modules.
  • Mongoose data models. It would be nice to factor this out of boilerplate and into core.

You read this far, thanks! Click reply and tell me what you think?

CMS - Frontend+Backend

I am using meanjs to build a CMS-kindathing, so I would need to seperated the views into backend and frontend and I have issues on how to react when a user is not signed in.
How would a show a menu-item, like Articles to anyone but something like create Article only to a logged-in user.
I am now also able to get to the #!/articles/create page even though I am not logged in - I'm not able to save anything, but how would I redirect the not-logged in User to the signin-page in the first place.

Missing required parameter: redirect_uri

I'm running a fresh download of mean. I copied over my development settings for google, facebook. when I attempt to sign in using one of those methods it fails. With google, I get this error:

Error: invalid_request

Missing required parameter: redirect_uri

Learn more

Request Details
scope=https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email
response_type=code
redirect_uri=
client_id=[redacted]
Thatโ€™s all we know.

screen shot 2014-05-07 at 3 02 09 pm

Moving Menu Code out of Core Module

Every new module requires to add new menu items but this would require to append the core module for menu. So the menu should also be append able from outside like routes.

A question about roadmap

Sorry ask this question here, seems not a good place!

Where can I find the roadmap of 'mean', or the feature list planned?

uglify and ccmin issue!

For some reason the Grunt tasks for uglify and ccmin are not executed properly with the result of not generating the the two minified files for .js and css so the application is not working in production. I even created a new clean project to test it but still it's not generating those files.

Heroku deployment problem

Hi, I'm getting a crash on my Heroku deployment. I noticed in another issue that you mentioned the demo works on Heroku. What am I missing?

2014-05-03T01:47:24+00:00 heroku[slug-compiler]: Slug compilation started
2014-05-03T01:48:02+00:00 heroku[slug-compiler]: Slug compilation finished
2014-05-03T01:48:02.327850+00:00 heroku[web.1]: State changed from crashed to starting
2014-05-03T01:48:02.118577+00:00 heroku[api]: Deploy 06b5253 by [email protected]
2014-05-03T01:48:02.118666+00:00 heroku[api]: Release v8 created by [email protected]
2014-05-03T01:48:06.357371+00:00 app[web.1]: warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
2014-05-03T01:48:06.356375+00:00 app[web.1]: warn:    --minUptime not set. Defaulting to: 1000ms
2014-05-03T01:48:07.042968+00:00 app[web.1]: Express app started on port 41178
2014-05-03T01:48:07.044926+00:00 app[web.1]: events.js:72
2014-05-03T01:48:07.044772+00:00 app[web.1]: 
2014-05-03T01:48:07.045148+00:00 app[web.1]:         throw er; // Unhandled 'error' event
2014-05-03T01:48:07.045150+00:00 app[web.1]:               ^
2014-05-03T01:48:07.047359+00:00 app[web.1]:     at Socket.<anonymous> (/app/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection.js:512:10)
2014-05-03T01:48:07.047361+00:00 app[web.1]:     at Socket.EventEmitter.emit (events.js:95:17)
2014-05-03T01:48:07.047350+00:00 app[web.1]: Error: failed to connect to [localhost:27017]
2014-05-03T01:48:07.047353+00:00 app[web.1]:     at null.<anonymous> (/app/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:553:74)
2014-05-03T01:48:07.047354+00:00 app[web.1]:     at EventEmitter.emit (events.js:106:17)
2014-05-03T01:48:07.047356+00:00 app[web.1]:     at null.<anonymous> (/app/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:140:15)
2014-05-03T01:48:07.047358+00:00 app[web.1]:     at EventEmitter.emit (events.js:98:17)
2014-05-03T01:48:07.047363+00:00 app[web.1]:     at net.js:440:14
2014-05-03T01:48:07.047364+00:00 app[web.1]:     at process._tickCallback (node.js:419:13)
2014-05-03T01:48:07.055494+00:00 app[web.1]: error: Forever detected script exited with code: 8
2014-05-03T01:48:05.437538+00:00 heroku[web.1]: Starting process with command `./node_modules/.bin/forever -m 5 server.js`

โ˜” heroku info --app xxx-stage

=== xxx-stage
Addons:        mandrill:starter
               mongohq:sandbox

Git URL:       [email protected]
Owner Email:   [email protected]
Region:        us
Repo Size:     516k
Slug Size:     19M
Stack:         cedar
Web URL:       http://xxx-stage.herokuapp.com/

If I grunt I get:

grunt                                                                                                                                                                dev
Running "jshint:all" (jshint) task
>> 46 files lint free.

Running "concurrent:tasks" (concurrent) task
Running "watch" task
Waiting...
Running "nodemon:dev" (nodemon) task
[nodemon] v1.0.17
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node --debug server.js`
debugger listening on port 5858
Express app started on port 3000

Cloud 9 - c9

Deploying in the Cloud 9 IDE took some time, but I now have an the framework running. Here are some suggestions to others that want to use Cloud 9 for this MEANjs stack.

  1. I was unable to use the Cloud 9 download option for MEANjs on Github. Instead I copied the url and did a $ git clone url. The MEANjs always seemed to load fine, but the bower, grunt, and npm installs were often slow and created an incomplete install. Repeating the install never worked.
  2. When network speed (mine or c9?) was fast, I'd get a good install, but generally needed to do a npm bower update as recommended in the documentation.
  3. You create the Mongodb instance on c9 as follows:
    $ mkdir data
    $ echo 'mongod --bind_ip=$IP --dbpath=data --nojournal --rest "$@"' > mongod
    $ chmod a+x mongod
    and start it with a ./mongod (Note it's a dot/) I use a new terminal window (alt T) for the mongod instance.
  4. You have to change server.js from app.listen(config.port) to
    app.listen(process.env.PORT || 3000, process.env.IP || '0.0.0.0', function(){}
  5. grunt in the lower terminal panel should get you going.

Non-trivial Heroku deployment

I'm having a lot of trouble deploying to Heroku. The issues have to do with path names. You can't use __dirname on Heroku, but even if I change it to

process.env.PWD = process.cwd()

it doesn't work. I think Heroku gives you /app as a root directory, so we might have to prefix this to paths whenever process.env.NODE_ENV==='production'.

I'm trying to deploy using my app, not the base app. I'll try with the base app tomorrow.

[Question] integretation with ng-kickstart

Hi MEANJS team,

I really appreciate your effort and I think this new modular structure is far better compared to the MEAN.IO one.

Months ago I started the development of ng-kickstar http://vesparny.github.io/ng-kickstart
I'm thinking if it is worth to integrate part of my job (talking about the front-end grunt stuff) in meanjs.
I'd be happy to take care in case you were interested

Submenus for Menuitems like login menu?

I think that sites with few modules might need to have the option for adding submenus on the main menu.
I did a branch 'submenus' on my fork that is working on my repository.
I didn't do the tests yet, I wanted to know though if people is interested and if there is better approaches than the one I've used.
thanks!

Signin conflict

When an user signup without social account and next he connect a social account at the upcoming login he will get 'Invalid password' message. After test the problem can be reproduced with http://meanjs.herokuapp.com/

Enhancement: generate CRUD from a Mongoose Schema

It is a great pleasure using Meanjs! I greatly appreciate the ability to generate a CRUD module via yo meanjs:crud-module. It would be even better if we could pass the generate the Mongoose schema as a json file. If the generator used the schema to generate the various files, it would cut back on a lot of boiler plate coding. Thanks!

Npm install error on 3.0

Hi, I upgraded to 3.0, deleted my node_modules dir, and ran npm install

I'm getting this error:

1003 error Error: No compatible version found: forever@'~0.11.00'

see attached log file for more details.

Any suggestions?

0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/nodejs', '/usr/bin/npm', 'install' ]
2 info using [email protected]
3 info using [email protected]
4 verbose read json /home/michael/scm/writermustwrite.com/package.json
5 verbose readDependencies using package.json deps
6 verbose install where, deps [ '/home/michael/scm/writermustwrite.com',
6 verbose install   [ 'express',
6 verbose install     'express-session',
6 verbose install     'body-parser',
6 verbose install     'cookie-parser',
6 verbose install     'compression',
6 verbose install     'method-override',
6 verbose install     'morgan',
6 verbose install     'connect-mongo',
6 verbose install     'connect-flash',
6 verbose install     'helmet',
6 verbose install     'consolidate',
6 verbose install     'swig',
6 verbose install     'mongoose',
6 verbose install     'passport',
6 verbose install     'passport-local',
6 verbose install     'passport-facebook',
6 verbose install     'passport-twitter',
6 verbose install     'passport-linkedin',
6 verbose install     'passport-google-oauth',
6 verbose install     'lodash',
6 verbose install     'forever',
6 verbose install     'bower',
6 verbose install     'grunt-cli',
6 verbose install     'glob',
6 verbose install     'supertest',
6 verbose install     'should',
6 verbose install     'grunt-env',
6 verbose install     'grunt-node-inspector',
6 verbose install     'grunt-contrib-watch',
6 verbose install     'grunt-contrib-jshint',
6 verbose install     'grunt-contrib-csslint',
6 verbose install     'grunt-contrib-uglify',
6 verbose install     'grunt-contrib-cssmin',
6 verbose install     'grunt-nodemon',
6 verbose install     'grunt-concurrent',
6 verbose install     'grunt-mocha-test',
6 verbose install     'grunt-karma',
6 verbose install     'load-grunt-tasks',
6 verbose install     'karma',
6 verbose install     'karma-jasmine',
6 verbose install     'karma-coverage',
6 verbose install     'karma-chrome-launcher',
6 verbose install     'karma-firefox-launcher',
6 verbose install     'karma-phantomjs-launcher' ] ]
7 verbose from cache /home/michael/scm/writermustwrite.com/package.json
8 info preinstall [email protected]
9 verbose from cache /home/michael/scm/writermustwrite.com/package.json
10 verbose readDependencies using package.json deps
11 verbose cache add [ 'express@~4.1.0', null ]
12 verbose cache add name=undefined spec="express@~4.1.0" args=["express@~4.1.0",null]
13 verbose parsed url { protocol: null,
13 verbose parsed url   slashes: null,
13 verbose parsed url   auth: null,
13 verbose parsed url   host: null,
13 verbose parsed url   port: null,
13 verbose parsed url   hostname: null,
13 verbose parsed url   hash: null,
13 verbose parsed url   search: null,
13 verbose parsed url   query: null,
13 verbose parsed url   pathname: 'express@~4.1.0',
13 verbose parsed url   path: 'express@~4.1.0',
13 verbose parsed url   href: 'express@~4.1.0' }
14 verbose cache add name="express" spec="~4.1.0" args=["express","~4.1.0"]
15 verbose parsed url { protocol: null,
15 verbose parsed url   slashes: null,
15 verbose parsed url   auth: null,
15 verbose parsed url   host: null,
15 verbose parsed url   port: null,
15 verbose parsed url   hostname: null,
15 verbose parsed url   hash: null,
15 verbose parsed url   search: null,
15 verbose parsed url   query: null,
15 verbose parsed url   pathname: '~4.1.0',
15 verbose parsed url   path: '~4.1.0',
15 verbose parsed url   href: '~4.1.0' }
16 verbose addNamed [ 'express', '~4.1.0' ]
17 verbose addNamed [ null, '>=4.1.0-0 <4.2.0-0' ]
18 verbose cache add [ 'express-session@~1.0.2', null ]
19 verbose cache add name=undefined spec="express-session@~1.0.2" args=["express-session@~1.0.2",null]
20 verbose parsed url { protocol: null,
20 verbose parsed url   slashes: null,
20 verbose parsed url   auth: null,
20 verbose parsed url   host: null,
20 verbose parsed url   port: null,
20 verbose parsed url   hostname: null,
20 verbose parsed url   hash: null,
20 verbose parsed url   search: null,
20 verbose parsed url   query: null,
20 verbose parsed url   pathname: 'express-session@~1.0.2',
20 verbose parsed url   path: 'express-session@~1.0.2',
20 verbose parsed url   href: 'express-session@~1.0.2' }
21 verbose cache add name="express-session" spec="~1.0.2" args=["express-session","~1.0.2"]
22 verbose parsed url { protocol: null,
22 verbose parsed url   slashes: null,
22 verbose parsed url   auth: null,
22 verbose parsed url   host: null,
22 verbose parsed url   port: null,
22 verbose parsed url   hostname: null,
22 verbose parsed url   hash: null,
22 verbose parsed url   search: null,
22 verbose parsed url   query: null,
22 verbose parsed url   pathname: '~1.0.2',
22 verbose parsed url   path: '~1.0.2',
22 verbose parsed url   href: '~1.0.2' }
23 verbose addNamed [ 'express-session', '~1.0.2' ]
24 verbose addNamed [ null, '>=1.0.2-0 <1.1.0-0' ]
25 verbose cache add [ 'body-parser@~1.0.1', null ]
26 verbose cache add name=undefined spec="body-parser@~1.0.1" args=["body-parser@~1.0.1",null]
27 verbose parsed url { protocol: null,
27 verbose parsed url   slashes: null,
27 verbose parsed url   auth: null,
27 verbose parsed url   host: null,
27 verbose parsed url   port: null,
27 verbose parsed url   hostname: null,
27 verbose parsed url   hash: null,
27 verbose parsed url   search: null,
27 verbose parsed url   query: null,
27 verbose parsed url   pathname: 'body-parser@~1.0.1',
27 verbose parsed url   path: 'body-parser@~1.0.1',
27 verbose parsed url   href: 'body-parser@~1.0.1' }
28 verbose cache add name="body-parser" spec="~1.0.1" args=["body-parser","~1.0.1"]
29 verbose parsed url { protocol: null,
29 verbose parsed url   slashes: null,
29 verbose parsed url   auth: null,
29 verbose parsed url   host: null,
29 verbose parsed url   port: null,
29 verbose parsed url   hostname: null,
29 verbose parsed url   hash: null,
29 verbose parsed url   search: null,
29 verbose parsed url   query: null,
29 verbose parsed url   pathname: '~1.0.1',
29 verbose parsed url   path: '~1.0.1',
29 verbose parsed url   href: '~1.0.1' }
30 verbose addNamed [ 'body-parser', '~1.0.1' ]
31 verbose addNamed [ null, '>=1.0.1-0 <1.1.0-0' ]
32 silly lockFile 1aa44a57-express-4-1-0 express@~4.1.0
33 verbose lock express@~4.1.0 /home/michael/.npm/1aa44a57-express-4-1-0.lock
34 verbose cache add [ 'cookie-parser@~1.0.1', null ]
35 verbose cache add name=undefined spec="cookie-parser@~1.0.1" args=["cookie-parser@~1.0.1",null]
36 verbose parsed url { protocol: null,
36 verbose parsed url   slashes: null,
36 verbose parsed url   auth: null,
36 verbose parsed url   host: null,
36 verbose parsed url   port: null,
36 verbose parsed url   hostname: null,
36 verbose parsed url   hash: null,
36 verbose parsed url   search: null,
36 verbose parsed url   query: null,
36 verbose parsed url   pathname: 'cookie-parser@~1.0.1',
36 verbose parsed url   path: 'cookie-parser@~1.0.1',
36 verbose parsed url   href: 'cookie-parser@~1.0.1' }
37 verbose cache add name="cookie-parser" spec="~1.0.1" args=["cookie-parser","~1.0.1"]
38 verbose parsed url { protocol: null,
38 verbose parsed url   slashes: null,
38 verbose parsed url   auth: null,
38 verbose parsed url   host: null,
38 verbose parsed url   port: null,
38 verbose parsed url   hostname: null,
38 verbose parsed url   hash: null,
38 verbose parsed url   search: null,
38 verbose parsed url   query: null,
38 verbose parsed url   pathname: '~1.0.1',
38 verbose parsed url   path: '~1.0.1',
38 verbose parsed url   href: '~1.0.1' }
39 verbose addNamed [ 'cookie-parser', '~1.0.1' ]
40 verbose addNamed [ null, '>=1.0.1-0 <1.1.0-0' ]
41 silly lockFile 8e5bf42e-cookie-parser-1-0-1 cookie-parser@~1.0.1
42 verbose lock cookie-parser@~1.0.1 /home/michael/.npm/8e5bf42e-cookie-parser-1-0-1.lock
43 silly lockFile 286922d5-express-session-1-0-2 express-session@~1.0.2
44 verbose lock express-session@~1.0.2 /home/michael/.npm/286922d5-express-session-1-0-2.lock
45 silly addNameRange { name: 'express', range: '>=4.1.0-0 <4.2.0-0', hasData: false }
46 verbose cache add [ 'compression@~1.0.1', null ]
47 verbose cache add name=undefined spec="compression@~1.0.1" args=["compression@~1.0.1",null]
48 verbose parsed url { protocol: null,
48 verbose parsed url   slashes: null,
48 verbose parsed url   auth: null,
48 verbose parsed url   host: null,
48 verbose parsed url   port: null,
48 verbose parsed url   hostname: null,
48 verbose parsed url   hash: null,
48 verbose parsed url   search: null,
48 verbose parsed url   query: null,
48 verbose parsed url   pathname: 'compression@~1.0.1',
48 verbose parsed url   path: 'compression@~1.0.1',
48 verbose parsed url   href: 'compression@~1.0.1' }
49 verbose cache add name="compression" spec="~1.0.1" args=["compression","~1.0.1"]
50 verbose parsed url { protocol: null,
50 verbose parsed url   slashes: null,
50 verbose parsed url   auth: null,
50 verbose parsed url   host: null,
50 verbose parsed url   port: null,
50 verbose parsed url   hostname: null,
50 verbose parsed url   hash: null,
50 verbose parsed url   search: null,
50 verbose parsed url   query: null,
50 verbose parsed url   pathname: '~1.0.1',
50 verbose parsed url   path: '~1.0.1',
50 verbose parsed url   href: '~1.0.1' }
51 verbose addNamed [ 'compression', '~1.0.1' ]
52 verbose addNamed [ null, '>=1.0.1-0 <1.1.0-0' ]
53 silly lockFile c4743765-compression-1-0-1 compression@~1.0.1
54 verbose lock compression@~1.0.1 /home/michael/.npm/c4743765-compression-1-0-1.lock
55 verbose cache add [ 'method-override@~1.0.0', null ]
56 verbose cache add name=undefined spec="method-override@~1.0.0" args=["method-override@~1.0.0",null]
57 verbose parsed url { protocol: null,
57 verbose parsed url   slashes: null,
57 verbose parsed url   auth: null,
57 verbose parsed url   host: null,
57 verbose parsed url   port: null,
57 verbose parsed url   hostname: null,
57 verbose parsed url   hash: null,
57 verbose parsed url   search: null,
57 verbose parsed url   query: null,
57 verbose parsed url   pathname: 'method-override@~1.0.0',
57 verbose parsed url   path: 'method-override@~1.0.0',
57 verbose parsed url   href: 'method-override@~1.0.0' }
58 verbose cache add name="method-override" spec="~1.0.0" args=["method-override","~1.0.0"]
59 verbose parsed url { protocol: null,
59 verbose parsed url   slashes: null,
59 verbose parsed url   auth: null,
59 verbose parsed url   host: null,
59 verbose parsed url   port: null,
59 verbose parsed url   hostname: null,
59 verbose parsed url   hash: null,
59 verbose parsed url   search: null,
59 verbose parsed url   query: null,
59 verbose parsed url   pathname: '~1.0.0',
59 verbose parsed url   path: '~1.0.0',
59 verbose parsed url   href: '~1.0.0' }
60 verbose addNamed [ 'method-override', '~1.0.0' ]
61 verbose addNamed [ null, '>=1.0.0-0 <1.1.0-0' ]
62 silly lockFile 75669156-method-override-1-0-0 method-override@~1.0.0
63 verbose lock method-override@~1.0.0 /home/michael/.npm/75669156-method-override-1-0-0.lock
64 silly lockFile ed7f1d4f-body-parser-1-0-1 body-parser@~1.0.1
65 verbose lock body-parser@~1.0.1 /home/michael/.npm/ed7f1d4f-body-parser-1-0-1.lock
66 silly addNameRange { name: 'cookie-parser',
66 silly addNameRange   range: '>=1.0.1-0 <1.1.0-0',
66 silly addNameRange   hasData: false }
67 silly addNameRange { name: 'express-session',
67 silly addNameRange   range: '>=1.0.2-0 <1.1.0-0',
67 silly addNameRange   hasData: false }
68 silly addNameRange { name: 'compression',
68 silly addNameRange   range: '>=1.0.1-0 <1.1.0-0',
68 silly addNameRange   hasData: false }
69 verbose cache add [ 'morgan@~1.0.0', null ]
70 verbose cache add name=undefined spec="morgan@~1.0.0" args=["morgan@~1.0.0",null]
71 verbose parsed url { protocol: null,
71 verbose parsed url   slashes: null,
71 verbose parsed url   auth: null,
71 verbose parsed url   host: null,
71 verbose parsed url   port: null,
71 verbose parsed url   hostname: null,
71 verbose parsed url   hash: null,
71 verbose parsed url   search: null,
71 verbose parsed url   query: null,
71 verbose parsed url   pathname: 'morgan@~1.0.0',
71 verbose parsed url   path: 'morgan@~1.0.0',
71 verbose parsed url   href: 'morgan@~1.0.0' }
72 verbose cache add name="morgan" spec="~1.0.0" args=["morgan","~1.0.0"]
73 verbose parsed url { protocol: null,
73 verbose parsed url   slashes: null,
73 verbose parsed url   auth: null,
73 verbose parsed url   host: null,
73 verbose parsed url   port: null,
73 verbose parsed url   hostname: null,
73 verbose parsed url   hash: null,
73 verbose parsed url   search: null,
73 verbose parsed url   query: null,
73 verbose parsed url   pathname: '~1.0.0',
73 verbose parsed url   path: '~1.0.0',
73 verbose parsed url   href: '~1.0.0' }
74 verbose addNamed [ 'morgan', '~1.0.0' ]
75 verbose addNamed [ null, '>=1.0.0-0 <1.1.0-0' ]
76 silly lockFile 58998603-morgan-1-0-0 morgan@~1.0.0
77 verbose lock morgan@~1.0.0 /home/michael/.npm/58998603-morgan-1-0-0.lock
78 silly addNameRange { name: 'method-override',
78 silly addNameRange   range: '>=1.0.0-0 <1.1.0-0',
78 silly addNameRange   hasData: false }
79 silly addNameRange { name: 'body-parser',
79 silly addNameRange   range: '>=1.0.1-0 <1.1.0-0',
79 silly addNameRange   hasData: false }
80 verbose url raw cookie-parser
81 verbose url resolving [ 'https://registry.npmjs.org/', './cookie-parser' ]
82 verbose url resolved https://registry.npmjs.org/cookie-parser
83 info trying registry request attempt 1 at 12:02:43
84 http GET https://registry.npmjs.org/cookie-parser
85 verbose url raw express-session
86 verbose url resolving [ 'https://registry.npmjs.org/', './express-session' ]
87 verbose url resolved https://registry.npmjs.org/express-session
88 info trying registry request attempt 1 at 12:02:43
89 http GET https://registry.npmjs.org/express-session
90 verbose url raw compression
91 verbose url resolving [ 'https://registry.npmjs.org/', './compression' ]
92 verbose url resolved https://registry.npmjs.org/compression
93 info trying registry request attempt 1 at 12:02:43
94 http GET https://registry.npmjs.org/compression
95 verbose cache add [ 'connect-mongo@~0.4.0', null ]
96 verbose cache add name=undefined spec="connect-mongo@~0.4.0" args=["connect-mongo@~0.4.0",null]
97 verbose parsed url { protocol: null,
97 verbose parsed url   slashes: null,
97 verbose parsed url   auth: null,
97 verbose parsed url   host: null,
97 verbose parsed url   port: null,
97 verbose parsed url   hostname: null,
97 verbose parsed url   hash: null,
97 verbose parsed url   search: null,
97 verbose parsed url   query: null,
97 verbose parsed url   pathname: 'connect-mongo@~0.4.0',
97 verbose parsed url   path: 'connect-mongo@~0.4.0',
97 verbose parsed url   href: 'connect-mongo@~0.4.0' }
98 verbose cache add name="connect-mongo" spec="~0.4.0" args=["connect-mongo","~0.4.0"]
99 verbose parsed url { protocol: null,
99 verbose parsed url   slashes: null,
99 verbose parsed url   auth: null,
99 verbose parsed url   host: null,
99 verbose parsed url   port: null,
99 verbose parsed url   hostname: null,
99 verbose parsed url   hash: null,
99 verbose parsed url   search: null,
99 verbose parsed url   query: null,
99 verbose parsed url   pathname: '~0.4.0',
99 verbose parsed url   path: '~0.4.0',
99 verbose parsed url   href: '~0.4.0' }
100 verbose addNamed [ 'connect-mongo', '~0.4.0' ]
101 verbose addNamed [ null, '>=0.4.0-0 <0.5.0-0' ]
102 silly lockFile ad4b84b6-connect-mongo-0-4-0 connect-mongo@~0.4.0
103 verbose lock connect-mongo@~0.4.0 /home/michael/.npm/ad4b84b6-connect-mongo-0-4-0.lock
104 verbose cache add [ 'connect-flash@~0.1.1', null ]
105 verbose cache add name=undefined spec="connect-flash@~0.1.1" args=["connect-flash@~0.1.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: 'connect-flash@~0.1.1',
106 verbose parsed url   path: 'connect-flash@~0.1.1',
106 verbose parsed url   href: 'connect-flash@~0.1.1' }
107 verbose cache add name="connect-flash" spec="~0.1.1" args=["connect-flash","~0.1.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: '~0.1.1',
108 verbose parsed url   path: '~0.1.1',
108 verbose parsed url   href: '~0.1.1' }
109 verbose addNamed [ 'connect-flash', '~0.1.1' ]
110 verbose addNamed [ null, '>=0.1.1-0 <0.2.0-0' ]
111 silly lockFile be0530b2-connect-flash-0-1-1 connect-flash@~0.1.1
112 verbose lock connect-flash@~0.1.1 /home/michael/.npm/be0530b2-connect-flash-0-1-1.lock
113 verbose cache add [ 'helmet@~0.2.1', null ]
114 verbose cache add name=undefined spec="helmet@~0.2.1" args=["helmet@~0.2.1",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: 'helmet@~0.2.1',
115 verbose parsed url   path: 'helmet@~0.2.1',
115 verbose parsed url   href: 'helmet@~0.2.1' }
116 verbose cache add name="helmet" spec="~0.2.1" args=["helmet","~0.2.1"]
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.2.1',
117 verbose parsed url   path: '~0.2.1',
117 verbose parsed url   href: '~0.2.1' }
118 verbose addNamed [ 'helmet', '~0.2.1' ]
119 verbose addNamed [ null, '>=0.2.1-0 <0.3.0-0' ]
120 silly lockFile 188db6c6-helmet-0-2-1 helmet@~0.2.1
121 verbose lock helmet@~0.2.1 /home/michael/.npm/188db6c6-helmet-0-2-1.lock
122 verbose cache add [ 'consolidate@~0.10.0', null ]
123 verbose cache add name=undefined spec="consolidate@~0.10.0" args=["consolidate@~0.10.0",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: 'consolidate@~0.10.0',
124 verbose parsed url   path: 'consolidate@~0.10.0',
124 verbose parsed url   href: 'consolidate@~0.10.0' }
125 verbose cache add name="consolidate" spec="~0.10.0" args=["consolidate","~0.10.0"]
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.10.0',
126 verbose parsed url   path: '~0.10.0',
126 verbose parsed url   href: '~0.10.0' }
127 verbose addNamed [ 'consolidate', '~0.10.0' ]
128 verbose addNamed [ null, '>=0.10.0-0 <0.11.0-0' ]
129 silly lockFile 67e2b75f-consolidate-0-10-0 consolidate@~0.10.0
130 verbose lock consolidate@~0.10.0 /home/michael/.npm/67e2b75f-consolidate-0-10-0.lock
131 verbose cache add [ 'swig@~1.3.2', null ]
132 verbose cache add name=undefined spec="swig@~1.3.2" args=["swig@~1.3.2",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: 'swig@~1.3.2',
133 verbose parsed url   path: 'swig@~1.3.2',
133 verbose parsed url   href: 'swig@~1.3.2' }
134 verbose cache add name="swig" spec="~1.3.2" args=["swig","~1.3.2"]
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.3.2',
135 verbose parsed url   path: '~1.3.2',
135 verbose parsed url   href: '~1.3.2' }
136 verbose addNamed [ 'swig', '~1.3.2' ]
137 verbose addNamed [ null, '>=1.3.2-0 <1.4.0-0' ]
138 silly lockFile 30c2942f-swig-1-3-2 swig@~1.3.2
139 verbose lock swig@~1.3.2 /home/michael/.npm/30c2942f-swig-1-3-2.lock
140 verbose cache add [ 'mongoose@~3.8.8', null ]
141 verbose cache add name=undefined spec="mongoose@~3.8.8" args=["mongoose@~3.8.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: 'mongoose@~3.8.8',
142 verbose parsed url   path: 'mongoose@~3.8.8',
142 verbose parsed url   href: 'mongoose@~3.8.8' }
143 verbose cache add name="mongoose" spec="~3.8.8" args=["mongoose","~3.8.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: '~3.8.8',
144 verbose parsed url   path: '~3.8.8',
144 verbose parsed url   href: '~3.8.8' }
145 verbose addNamed [ 'mongoose', '~3.8.8' ]
146 verbose addNamed [ null, '>=3.8.8-0 <3.9.0-0' ]
147 silly lockFile a99f28d1-mongoose-3-8-8 mongoose@~3.8.8
148 verbose lock mongoose@~3.8.8 /home/michael/.npm/a99f28d1-mongoose-3-8-8.lock
149 verbose cache add [ 'passport@~0.2.0', null ]
150 verbose cache add name=undefined spec="passport@~0.2.0" args=["passport@~0.2.0",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: 'passport@~0.2.0',
151 verbose parsed url   path: 'passport@~0.2.0',
151 verbose parsed url   href: 'passport@~0.2.0' }
152 verbose cache add name="passport" spec="~0.2.0" args=["passport","~0.2.0"]
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.2.0',
153 verbose parsed url   path: '~0.2.0',
153 verbose parsed url   href: '~0.2.0' }
154 verbose addNamed [ 'passport', '~0.2.0' ]
155 verbose addNamed [ null, '>=0.2.0-0 <0.3.0-0' ]
156 silly lockFile 3c817d05-passport-0-2-0 passport@~0.2.0
157 verbose lock passport@~0.2.0 /home/michael/.npm/3c817d05-passport-0-2-0.lock
158 verbose cache add [ 'passport-local@~1.0.0', null ]
159 verbose cache add name=undefined spec="passport-local@~1.0.0" args=["passport-local@~1.0.0",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: 'passport-local@~1.0.0',
160 verbose parsed url   path: 'passport-local@~1.0.0',
160 verbose parsed url   href: 'passport-local@~1.0.0' }
161 verbose cache add name="passport-local" spec="~1.0.0" args=["passport-local","~1.0.0"]
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: '~1.0.0',
162 verbose parsed url   path: '~1.0.0',
162 verbose parsed url   href: '~1.0.0' }
163 verbose addNamed [ 'passport-local', '~1.0.0' ]
164 verbose addNamed [ null, '>=1.0.0-0 <1.1.0-0' ]
165 silly lockFile 84af7143-passport-local-1-0-0 passport-local@~1.0.0
166 verbose lock passport-local@~1.0.0 /home/michael/.npm/84af7143-passport-local-1-0-0.lock
167 verbose cache add [ 'passport-facebook@~1.0.2', null ]
168 verbose cache add name=undefined spec="passport-facebook@~1.0.2" args=["passport-facebook@~1.0.2",null]
169 verbose parsed url { protocol: null,
169 verbose parsed url   slashes: null,
169 verbose parsed url   auth: null,
169 verbose parsed url   host: null,
169 verbose parsed url   port: null,
169 verbose parsed url   hostname: null,
169 verbose parsed url   hash: null,
169 verbose parsed url   search: null,
169 verbose parsed url   query: null,
169 verbose parsed url   pathname: 'passport-facebook@~1.0.2',
169 verbose parsed url   path: 'passport-facebook@~1.0.2',
169 verbose parsed url   href: 'passport-facebook@~1.0.2' }
170 verbose cache add name="passport-facebook" spec="~1.0.2" args=["passport-facebook","~1.0.2"]
171 verbose parsed url { protocol: null,
171 verbose parsed url   slashes: null,
171 verbose parsed url   auth: null,
171 verbose parsed url   host: null,
171 verbose parsed url   port: null,
171 verbose parsed url   hostname: null,
171 verbose parsed url   hash: null,
171 verbose parsed url   search: null,
171 verbose parsed url   query: null,
171 verbose parsed url   pathname: '~1.0.2',
171 verbose parsed url   path: '~1.0.2',
171 verbose parsed url   href: '~1.0.2' }
172 verbose addNamed [ 'passport-facebook', '~1.0.2' ]
173 verbose addNamed [ null, '>=1.0.2-0 <1.1.0-0' ]
174 silly lockFile 15dce32a-passport-facebook-1-0-2 passport-facebook@~1.0.2
175 verbose lock passport-facebook@~1.0.2 /home/michael/.npm/15dce32a-passport-facebook-1-0-2.lock
176 verbose cache add [ 'passport-twitter@~1.0.2', null ]
177 verbose cache add name=undefined spec="passport-twitter@~1.0.2" args=["passport-twitter@~1.0.2",null]
178 verbose parsed url { protocol: null,
178 verbose parsed url   slashes: null,
178 verbose parsed url   auth: null,
178 verbose parsed url   host: null,
178 verbose parsed url   port: null,
178 verbose parsed url   hostname: null,
178 verbose parsed url   hash: null,
178 verbose parsed url   search: null,
178 verbose parsed url   query: null,
178 verbose parsed url   pathname: 'passport-twitter@~1.0.2',
178 verbose parsed url   path: 'passport-twitter@~1.0.2',
178 verbose parsed url   href: 'passport-twitter@~1.0.2' }
179 verbose cache add name="passport-twitter" spec="~1.0.2" args=["passport-twitter","~1.0.2"]
180 verbose parsed url { protocol: null,
180 verbose parsed url   slashes: null,
180 verbose parsed url   auth: null,
180 verbose parsed url   host: null,
180 verbose parsed url   port: null,
180 verbose parsed url   hostname: null,
180 verbose parsed url   hash: null,
180 verbose parsed url   search: null,
180 verbose parsed url   query: null,
180 verbose parsed url   pathname: '~1.0.2',
180 verbose parsed url   path: '~1.0.2',
180 verbose parsed url   href: '~1.0.2' }
181 verbose addNamed [ 'passport-twitter', '~1.0.2' ]
182 verbose addNamed [ null, '>=1.0.2-0 <1.1.0-0' ]
183 silly lockFile d97c8ec0-passport-twitter-1-0-2 passport-twitter@~1.0.2
184 verbose lock passport-twitter@~1.0.2 /home/michael/.npm/d97c8ec0-passport-twitter-1-0-2.lock
185 verbose cache add [ 'passport-linkedin@~0.1.3', null ]
186 verbose cache add name=undefined spec="passport-linkedin@~0.1.3" args=["passport-linkedin@~0.1.3",null]
187 verbose parsed url { protocol: null,
187 verbose parsed url   slashes: null,
187 verbose parsed url   auth: null,
187 verbose parsed url   host: null,
187 verbose parsed url   port: null,
187 verbose parsed url   hostname: null,
187 verbose parsed url   hash: null,
187 verbose parsed url   search: null,
187 verbose parsed url   query: null,
187 verbose parsed url   pathname: 'passport-linkedin@~0.1.3',
187 verbose parsed url   path: 'passport-linkedin@~0.1.3',
187 verbose parsed url   href: 'passport-linkedin@~0.1.3' }
188 verbose cache add name="passport-linkedin" spec="~0.1.3" args=["passport-linkedin","~0.1.3"]
189 verbose parsed url { protocol: null,
189 verbose parsed url   slashes: null,
189 verbose parsed url   auth: null,
189 verbose parsed url   host: null,
189 verbose parsed url   port: null,
189 verbose parsed url   hostname: null,
189 verbose parsed url   hash: null,
189 verbose parsed url   search: null,
189 verbose parsed url   query: null,
189 verbose parsed url   pathname: '~0.1.3',
189 verbose parsed url   path: '~0.1.3',
189 verbose parsed url   href: '~0.1.3' }
190 verbose addNamed [ 'passport-linkedin', '~0.1.3' ]
191 verbose addNamed [ null, '>=0.1.3-0 <0.2.0-0' ]
192 silly lockFile e0fc7ce3-passport-linkedin-0-1-3 passport-linkedin@~0.1.3
193 verbose lock passport-linkedin@~0.1.3 /home/michael/.npm/e0fc7ce3-passport-linkedin-0-1-3.lock
194 verbose cache add [ 'passport-google-oauth@~0.1.5', null ]
195 verbose cache add name=undefined spec="passport-google-oauth@~0.1.5" args=["passport-google-oauth@~0.1.5",null]
196 verbose parsed url { protocol: null,
196 verbose parsed url   slashes: null,
196 verbose parsed url   auth: null,
196 verbose parsed url   host: null,
196 verbose parsed url   port: null,
196 verbose parsed url   hostname: null,
196 verbose parsed url   hash: null,
196 verbose parsed url   search: null,
196 verbose parsed url   query: null,
196 verbose parsed url   pathname: 'passport-google-oauth@~0.1.5',
196 verbose parsed url   path: 'passport-google-oauth@~0.1.5',
196 verbose parsed url   href: 'passport-google-oauth@~0.1.5' }
197 verbose cache add name="passport-google-oauth" spec="~0.1.5" args=["passport-google-oauth","~0.1.5"]
198 verbose parsed url { protocol: null,
198 verbose parsed url   slashes: null,
198 verbose parsed url   auth: null,
198 verbose parsed url   host: null,
198 verbose parsed url   port: null,
198 verbose parsed url   hostname: null,
198 verbose parsed url   hash: null,
198 verbose parsed url   search: null,
198 verbose parsed url   query: null,
198 verbose parsed url   pathname: '~0.1.5',
198 verbose parsed url   path: '~0.1.5',
198 verbose parsed url   href: '~0.1.5' }
199 verbose addNamed [ 'passport-google-oauth', '~0.1.5' ]
200 verbose addNamed [ null, '>=0.1.5-0 <0.2.0-0' ]
201 silly lockFile 8b7f1422-passport-google-oauth-0-1-5 passport-google-oauth@~0.1.5
202 verbose lock passport-google-oauth@~0.1.5 /home/michael/.npm/8b7f1422-passport-google-oauth-0-1-5.lock
203 verbose cache add [ 'lodash@~2.4.1', null ]
204 verbose cache add name=undefined spec="lodash@~2.4.1" args=["lodash@~2.4.1",null]
205 verbose parsed url { protocol: null,
205 verbose parsed url   slashes: null,
205 verbose parsed url   auth: null,
205 verbose parsed url   host: null,
205 verbose parsed url   port: null,
205 verbose parsed url   hostname: null,
205 verbose parsed url   hash: null,
205 verbose parsed url   search: null,
205 verbose parsed url   query: null,
205 verbose parsed url   pathname: 'lodash@~2.4.1',
205 verbose parsed url   path: 'lodash@~2.4.1',
205 verbose parsed url   href: 'lodash@~2.4.1' }
206 verbose cache add name="lodash" spec="~2.4.1" args=["lodash","~2.4.1"]
207 verbose parsed url { protocol: null,
207 verbose parsed url   slashes: null,
207 verbose parsed url   auth: null,
207 verbose parsed url   host: null,
207 verbose parsed url   port: null,
207 verbose parsed url   hostname: null,
207 verbose parsed url   hash: null,
207 verbose parsed url   search: null,
207 verbose parsed url   query: null,
207 verbose parsed url   pathname: '~2.4.1',
207 verbose parsed url   path: '~2.4.1',
207 verbose parsed url   href: '~2.4.1' }
208 verbose addNamed [ 'lodash', '~2.4.1' ]
209 verbose addNamed [ null, '>=2.4.1-0 <2.5.0-0' ]
210 silly lockFile 257f9ab3-lodash-2-4-1 lodash@~2.4.1
211 verbose lock lodash@~2.4.1 /home/michael/.npm/257f9ab3-lodash-2-4-1.lock
212 verbose cache add [ 'forever@~0.11.00', null ]
213 verbose cache add name=undefined spec="forever@~0.11.00" args=["forever@~0.11.00",null]
214 verbose parsed url { protocol: null,
214 verbose parsed url   slashes: null,
214 verbose parsed url   auth: null,
214 verbose parsed url   host: null,
214 verbose parsed url   port: null,
214 verbose parsed url   hostname: null,
214 verbose parsed url   hash: null,
214 verbose parsed url   search: null,
214 verbose parsed url   query: null,
214 verbose parsed url   pathname: 'forever@~0.11.00',
214 verbose parsed url   path: 'forever@~0.11.00',
214 verbose parsed url   href: 'forever@~0.11.00' }
215 verbose cache add name="forever" spec="~0.11.00" args=["forever","~0.11.00"]
216 verbose parsed url { protocol: null,
216 verbose parsed url   slashes: null,
216 verbose parsed url   auth: null,
216 verbose parsed url   host: null,
216 verbose parsed url   port: null,
216 verbose parsed url   hostname: null,
216 verbose parsed url   hash: null,
216 verbose parsed url   search: null,
216 verbose parsed url   query: null,
216 verbose parsed url   pathname: '~0.11.00',
216 verbose parsed url   path: '~0.11.00',
216 verbose parsed url   href: '~0.11.00' }
217 verbose addNamed [ 'forever', '~0.11.00' ]
218 verbose addNamed [ null, null ]
219 silly lockFile 7230367c-forever-0-11-00 forever@~0.11.00
220 verbose lock forever@~0.11.00 /home/michael/.npm/7230367c-forever-0-11-00.lock
221 verbose cache add [ 'bower@~1.3.1', null ]
222 verbose cache add name=undefined spec="bower@~1.3.1" args=["bower@~1.3.1",null]
223 verbose parsed url { protocol: null,
223 verbose parsed url   slashes: null,
223 verbose parsed url   auth: null,
223 verbose parsed url   host: null,
223 verbose parsed url   port: null,
223 verbose parsed url   hostname: null,
223 verbose parsed url   hash: null,
223 verbose parsed url   search: null,
223 verbose parsed url   query: null,
223 verbose parsed url   pathname: 'bower@~1.3.1',
223 verbose parsed url   path: 'bower@~1.3.1',
223 verbose parsed url   href: 'bower@~1.3.1' }
224 verbose cache add name="bower" spec="~1.3.1" args=["bower","~1.3.1"]
225 verbose parsed url { protocol: null,
225 verbose parsed url   slashes: null,
225 verbose parsed url   auth: null,
225 verbose parsed url   host: null,
225 verbose parsed url   port: null,
225 verbose parsed url   hostname: null,
225 verbose parsed url   hash: null,
225 verbose parsed url   search: null,
225 verbose parsed url   query: null,
225 verbose parsed url   pathname: '~1.3.1',
225 verbose parsed url   path: '~1.3.1',
225 verbose parsed url   href: '~1.3.1' }
226 verbose addNamed [ 'bower', '~1.3.1' ]
227 verbose addNamed [ null, '>=1.3.1-0 <1.4.0-0' ]
228 silly lockFile 3aa1224b-bower-1-3-1 bower@~1.3.1
229 verbose lock bower@~1.3.1 /home/michael/.npm/3aa1224b-bower-1-3-1.lock
230 verbose cache add [ 'grunt-cli@~0.1.13', null ]
231 verbose cache add name=undefined spec="grunt-cli@~0.1.13" args=["grunt-cli@~0.1.13",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: 'grunt-cli@~0.1.13',
232 verbose parsed url   path: 'grunt-cli@~0.1.13',
232 verbose parsed url   href: 'grunt-cli@~0.1.13' }
233 verbose cache add name="grunt-cli" spec="~0.1.13" args=["grunt-cli","~0.1.13"]
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.1.13',
234 verbose parsed url   path: '~0.1.13',
234 verbose parsed url   href: '~0.1.13' }
235 verbose addNamed [ 'grunt-cli', '~0.1.13' ]
236 verbose addNamed [ null, '>=0.1.13-0 <0.2.0-0' ]
237 silly lockFile a6c878ac-grunt-cli-0-1-13 grunt-cli@~0.1.13
238 verbose lock grunt-cli@~0.1.13 /home/michael/.npm/a6c878ac-grunt-cli-0-1-13.lock
239 verbose cache add [ 'glob@~3.2.9', null ]
240 verbose cache add name=undefined spec="glob@~3.2.9" args=["glob@~3.2.9",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: 'glob@~3.2.9',
241 verbose parsed url   path: 'glob@~3.2.9',
241 verbose parsed url   href: 'glob@~3.2.9' }
242 verbose cache add name="glob" spec="~3.2.9" args=["glob","~3.2.9"]
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: '~3.2.9',
243 verbose parsed url   path: '~3.2.9',
243 verbose parsed url   href: '~3.2.9' }
244 verbose addNamed [ 'glob', '~3.2.9' ]
245 verbose addNamed [ null, '>=3.2.9-0 <3.3.0-0' ]
246 silly lockFile 200db29c-glob-3-2-9 glob@~3.2.9
247 verbose lock glob@~3.2.9 /home/michael/.npm/200db29c-glob-3-2-9.lock
248 verbose cache add [ 'supertest@~0.10.0', null ]
249 verbose cache add name=undefined spec="supertest@~0.10.0" args=["supertest@~0.10.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: 'supertest@~0.10.0',
250 verbose parsed url   path: 'supertest@~0.10.0',
250 verbose parsed url   href: 'supertest@~0.10.0' }
251 verbose cache add name="supertest" spec="~0.10.0" args=["supertest","~0.10.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: '~0.10.0',
252 verbose parsed url   path: '~0.10.0',
252 verbose parsed url   href: '~0.10.0' }
253 verbose addNamed [ 'supertest', '~0.10.0' ]
254 verbose addNamed [ null, '>=0.10.0-0 <0.11.0-0' ]
255 silly lockFile 1c1a5d4d-supertest-0-10-0 supertest@~0.10.0
256 verbose lock supertest@~0.10.0 /home/michael/.npm/1c1a5d4d-supertest-0-10-0.lock
257 verbose cache add [ 'should@~3.2.0', null ]
258 verbose cache add name=undefined spec="should@~3.2.0" args=["should@~3.2.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: 'should@~3.2.0',
259 verbose parsed url   path: 'should@~3.2.0',
259 verbose parsed url   href: 'should@~3.2.0' }
260 verbose cache add name="should" spec="~3.2.0" args=["should","~3.2.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: '~3.2.0',
261 verbose parsed url   path: '~3.2.0',
261 verbose parsed url   href: '~3.2.0' }
262 verbose addNamed [ 'should', '~3.2.0' ]
263 verbose addNamed [ null, '>=3.2.0-0 <3.3.0-0' ]
264 silly lockFile eccadef6-should-3-2-0 should@~3.2.0
265 verbose lock should@~3.2.0 /home/michael/.npm/eccadef6-should-3-2-0.lock
266 verbose cache add [ 'grunt-env@~0.4.1', null ]
267 verbose cache add name=undefined spec="grunt-env@~0.4.1" args=["grunt-env@~0.4.1",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: 'grunt-env@~0.4.1',
268 verbose parsed url   path: 'grunt-env@~0.4.1',
268 verbose parsed url   href: 'grunt-env@~0.4.1' }
269 verbose cache add name="grunt-env" spec="~0.4.1" args=["grunt-env","~0.4.1"]
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.4.1',
270 verbose parsed url   path: '~0.4.1',
270 verbose parsed url   href: '~0.4.1' }
271 verbose addNamed [ 'grunt-env', '~0.4.1' ]
272 verbose addNamed [ null, '>=0.4.1-0 <0.5.0-0' ]
273 silly lockFile 6526b89d-grunt-env-0-4-1 grunt-env@~0.4.1
274 verbose lock grunt-env@~0.4.1 /home/michael/.npm/6526b89d-grunt-env-0-4-1.lock
275 verbose cache add [ 'grunt-node-inspector@~0.1.3', null ]
276 verbose cache add name=undefined spec="grunt-node-inspector@~0.1.3" args=["grunt-node-inspector@~0.1.3",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: 'grunt-node-inspector@~0.1.3',
277 verbose parsed url   path: 'grunt-node-inspector@~0.1.3',
277 verbose parsed url   href: 'grunt-node-inspector@~0.1.3' }
278 verbose cache add name="grunt-node-inspector" spec="~0.1.3" args=["grunt-node-inspector","~0.1.3"]
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: '~0.1.3',
279 verbose parsed url   path: '~0.1.3',
279 verbose parsed url   href: '~0.1.3' }
280 verbose addNamed [ 'grunt-node-inspector', '~0.1.3' ]
281 verbose addNamed [ null, '>=0.1.3-0 <0.2.0-0' ]
282 silly lockFile 6fd8e55e-grunt-node-inspector-0-1-3 grunt-node-inspector@~0.1.3
283 verbose lock grunt-node-inspector@~0.1.3 /home/michael/.npm/6fd8e55e-grunt-node-inspector-0-1-3.lock
284 verbose cache add [ 'grunt-contrib-watch@~0.6.1', null ]
285 verbose cache add name=undefined spec="grunt-contrib-watch@~0.6.1" args=["grunt-contrib-watch@~0.6.1",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: 'grunt-contrib-watch@~0.6.1',
286 verbose parsed url   path: 'grunt-contrib-watch@~0.6.1',
286 verbose parsed url   href: 'grunt-contrib-watch@~0.6.1' }
287 verbose cache add name="grunt-contrib-watch" spec="~0.6.1" args=["grunt-contrib-watch","~0.6.1"]
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.6.1',
288 verbose parsed url   path: '~0.6.1',
288 verbose parsed url   href: '~0.6.1' }
289 verbose addNamed [ 'grunt-contrib-watch', '~0.6.1' ]
290 verbose addNamed [ null, '>=0.6.1-0 <0.7.0-0' ]
291 silly lockFile 82ce6ec8-grunt-contrib-watch-0-6-1 grunt-contrib-watch@~0.6.1
292 verbose lock grunt-contrib-watch@~0.6.1 /home/michael/.npm/82ce6ec8-grunt-contrib-watch-0-6-1.lock
293 verbose cache add [ 'grunt-contrib-jshint@~0.10.0', null ]
294 verbose cache add name=undefined spec="grunt-contrib-jshint@~0.10.0" args=["grunt-contrib-jshint@~0.10.0",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: 'grunt-contrib-jshint@~0.10.0',
295 verbose parsed url   path: 'grunt-contrib-jshint@~0.10.0',
295 verbose parsed url   href: 'grunt-contrib-jshint@~0.10.0' }
296 verbose cache add name="grunt-contrib-jshint" spec="~0.10.0" args=["grunt-contrib-jshint","~0.10.0"]
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.10.0',
297 verbose parsed url   path: '~0.10.0',
297 verbose parsed url   href: '~0.10.0' }
298 verbose addNamed [ 'grunt-contrib-jshint', '~0.10.0' ]
299 verbose addNamed [ null, '>=0.10.0-0 <0.11.0-0' ]
300 silly lockFile 956acfd4-grunt-contrib-jshint-0-10-0 grunt-contrib-jshint@~0.10.0
301 verbose lock grunt-contrib-jshint@~0.10.0 /home/michael/.npm/956acfd4-grunt-contrib-jshint-0-10-0.lock
302 verbose cache add [ 'grunt-contrib-csslint@^0.2.0', null ]
303 verbose cache add name=undefined spec="grunt-contrib-csslint@^0.2.0" args=["grunt-contrib-csslint@^0.2.0",null]
304 verbose parsed url { protocol: null,
304 verbose parsed url   slashes: null,
304 verbose parsed url   auth: null,
304 verbose parsed url   host: null,
304 verbose parsed url   port: null,
304 verbose parsed url   hostname: null,
304 verbose parsed url   hash: null,
304 verbose parsed url   search: null,
304 verbose parsed url   query: null,
304 verbose parsed url   pathname: 'grunt-contrib-csslint@^0.2.0',
304 verbose parsed url   path: 'grunt-contrib-csslint@^0.2.0',
304 verbose parsed url   href: 'grunt-contrib-csslint@^0.2.0' }
305 verbose cache add name="grunt-contrib-csslint" spec="^0.2.0" args=["grunt-contrib-csslint","^0.2.0"]
306 verbose parsed url { protocol: null,
306 verbose parsed url   slashes: null,
306 verbose parsed url   auth: null,
306 verbose parsed url   host: null,
306 verbose parsed url   port: null,
306 verbose parsed url   hostname: null,
306 verbose parsed url   hash: null,
306 verbose parsed url   search: null,
306 verbose parsed url   query: null,
306 verbose parsed url   pathname: '^0.2.0',
306 verbose parsed url   path: '^0.2.0',
306 verbose parsed url   href: '^0.2.0' }
307 verbose addNamed [ 'grunt-contrib-csslint', '^0.2.0' ]
308 verbose addNamed [ null, '>=0.2.0-0 <0.3.0-0' ]
309 silly lockFile 645e3033-grunt-contrib-csslint-0-2-0 grunt-contrib-csslint@^0.2.0
310 verbose lock grunt-contrib-csslint@^0.2.0 /home/michael/.npm/645e3033-grunt-contrib-csslint-0-2-0.lock
311 silly addNameRange { name: 'morgan', range: '>=1.0.0-0 <1.1.0-0', hasData: false }
312 verbose url raw method-override
313 verbose url resolving [ 'https://registry.npmjs.org/', './method-override' ]
314 verbose url resolved https://registry.npmjs.org/method-override
315 info trying registry request attempt 1 at 12:02:43
316 http GET https://registry.npmjs.org/method-override
317 verbose url raw body-parser
318 verbose url resolving [ 'https://registry.npmjs.org/', './body-parser' ]
319 verbose url resolved https://registry.npmjs.org/body-parser
320 info trying registry request attempt 1 at 12:02:43
321 http GET https://registry.npmjs.org/body-parser
322 silly addNameRange { name: 'connect-mongo',
322 silly addNameRange   range: '>=0.4.0-0 <0.5.0-0',
322 silly addNameRange   hasData: false }
323 silly addNameRange { name: 'connect-flash',
323 silly addNameRange   range: '>=0.1.1-0 <0.2.0-0',
323 silly addNameRange   hasData: false }
324 silly addNameRange { name: 'helmet', range: '>=0.2.1-0 <0.3.0-0', hasData: false }
325 silly addNameRange { name: 'consolidate',
325 silly addNameRange   range: '>=0.10.0-0 <0.11.0-0',
325 silly addNameRange   hasData: false }
326 silly addNameRange { name: 'swig', range: '>=1.3.2-0 <1.4.0-0', hasData: false }
327 silly addNameRange { name: 'mongoose', range: '>=3.8.8-0 <3.9.0-0', hasData: false }
328 silly addNameRange { name: 'passport', range: '>=0.2.0-0 <0.3.0-0', hasData: false }
329 silly addNameRange { name: 'passport-local',
329 silly addNameRange   range: '>=1.0.0-0 <1.1.0-0',
329 silly addNameRange   hasData: false }
330 silly addNameRange { name: 'passport-facebook',
330 silly addNameRange   range: '>=1.0.2-0 <1.1.0-0',
330 silly addNameRange   hasData: false }
331 silly addNameRange { name: 'passport-twitter',
331 silly addNameRange   range: '>=1.0.2-0 <1.1.0-0',
331 silly addNameRange   hasData: false }
332 silly addNameRange { name: 'passport-linkedin',
332 silly addNameRange   range: '>=0.1.3-0 <0.2.0-0',
332 silly addNameRange   hasData: false }
333 silly addNameRange { name: 'passport-google-oauth',
333 silly addNameRange   range: '>=0.1.5-0 <0.2.0-0',
333 silly addNameRange   hasData: false }
334 silly addNameRange { name: 'lodash', range: '>=2.4.1-0 <2.5.0-0', hasData: false }
335 info addNameTag [ 'forever', '~0.11.00' ]
336 silly addNameRange { name: 'bower', range: '>=1.3.1-0 <1.4.0-0', hasData: false }
337 silly addNameRange { name: 'grunt-cli',
337 silly addNameRange   range: '>=0.1.13-0 <0.2.0-0',
337 silly addNameRange   hasData: false }
338 silly addNameRange { name: 'glob', range: '>=3.2.9-0 <3.3.0-0', hasData: false }
339 silly addNameRange { name: 'supertest',
339 silly addNameRange   range: '>=0.10.0-0 <0.11.0-0',
339 silly addNameRange   hasData: false }
340 silly addNameRange { name: 'should', range: '>=3.2.0-0 <3.3.0-0', hasData: false }
341 silly addNameRange { name: 'grunt-env',
341 silly addNameRange   range: '>=0.4.1-0 <0.5.0-0',
341 silly addNameRange   hasData: false }
342 silly addNameRange { name: 'grunt-node-inspector',
342 silly addNameRange   range: '>=0.1.3-0 <0.2.0-0',
342 silly addNameRange   hasData: false }
343 silly addNameRange { name: 'grunt-contrib-watch',
343 silly addNameRange   range: '>=0.6.1-0 <0.7.0-0',
343 silly addNameRange   hasData: false }
344 silly addNameRange { name: 'grunt-contrib-jshint',
344 silly addNameRange   range: '>=0.10.0-0 <0.11.0-0',
344 silly addNameRange   hasData: false }
345 silly addNameRange { name: 'grunt-contrib-csslint',
345 silly addNameRange   range: '>=0.2.0-0 <0.3.0-0',
345 silly addNameRange   hasData: false }
346 verbose cache add [ 'grunt-contrib-uglify@~0.4.0', null ]
347 verbose cache add name=undefined spec="grunt-contrib-uglify@~0.4.0" args=["grunt-contrib-uglify@~0.4.0",null]
348 verbose parsed url { protocol: null,
348 verbose parsed url   slashes: null,
348 verbose parsed url   auth: null,
348 verbose parsed url   host: null,
348 verbose parsed url   port: null,
348 verbose parsed url   hostname: null,
348 verbose parsed url   hash: null,
348 verbose parsed url   search: null,
348 verbose parsed url   query: null,
348 verbose parsed url   pathname: 'grunt-contrib-uglify@~0.4.0',
348 verbose parsed url   path: 'grunt-contrib-uglify@~0.4.0',
348 verbose parsed url   href: 'grunt-contrib-uglify@~0.4.0' }
349 verbose cache add name="grunt-contrib-uglify" spec="~0.4.0" args=["grunt-contrib-uglify","~0.4.0"]
350 verbose parsed url { protocol: null,
350 verbose parsed url   slashes: null,
350 verbose parsed url   auth: null,
350 verbose parsed url   host: null,
350 verbose parsed url   port: null,
350 verbose parsed url   hostname: null,
350 verbose parsed url   hash: null,
350 verbose parsed url   search: null,
350 verbose parsed url   query: null,
350 verbose parsed url   pathname: '~0.4.0',
350 verbose parsed url   path: '~0.4.0',
350 verbose parsed url   href: '~0.4.0' }
351 verbose addNamed [ 'grunt-contrib-uglify', '~0.4.0' ]
352 verbose addNamed [ null, '>=0.4.0-0 <0.5.0-0' ]
353 silly lockFile bea3f155-grunt-contrib-uglify-0-4-0 grunt-contrib-uglify@~0.4.0
354 verbose lock grunt-contrib-uglify@~0.4.0 /home/michael/.npm/bea3f155-grunt-contrib-uglify-0-4-0.lock
355 verbose cache add [ 'grunt-contrib-cssmin@~0.9.0', null ]
356 verbose cache add name=undefined spec="grunt-contrib-cssmin@~0.9.0" args=["grunt-contrib-cssmin@~0.9.0",null]
357 verbose parsed url { protocol: null,
357 verbose parsed url   slashes: null,
357 verbose parsed url   auth: null,
357 verbose parsed url   host: null,
357 verbose parsed url   port: null,
357 verbose parsed url   hostname: null,
357 verbose parsed url   hash: null,
357 verbose parsed url   search: null,
357 verbose parsed url   query: null,
357 verbose parsed url   pathname: 'grunt-contrib-cssmin@~0.9.0',
357 verbose parsed url   path: 'grunt-contrib-cssmin@~0.9.0',
357 verbose parsed url   href: 'grunt-contrib-cssmin@~0.9.0' }
358 verbose cache add name="grunt-contrib-cssmin" spec="~0.9.0" args=["grunt-contrib-cssmin","~0.9.0"]
359 verbose parsed url { protocol: null,
359 verbose parsed url   slashes: null,
359 verbose parsed url   auth: null,
359 verbose parsed url   host: null,
359 verbose parsed url   port: null,
359 verbose parsed url   hostname: null,
359 verbose parsed url   hash: null,
359 verbose parsed url   search: null,
359 verbose parsed url   query: null,
359 verbose parsed url   pathname: '~0.9.0',
359 verbose parsed url   path: '~0.9.0',
359 verbose parsed url   href: '~0.9.0' }
360 verbose addNamed [ 'grunt-contrib-cssmin', '~0.9.0' ]
361 verbose addNamed [ null, '>=0.9.0-0 <0.10.0-0' ]
362 silly lockFile d7cec126-grunt-contrib-cssmin-0-9-0 grunt-contrib-cssmin@~0.9.0
363 verbose lock grunt-contrib-cssmin@~0.9.0 /home/michael/.npm/d7cec126-grunt-contrib-cssmin-0-9-0.lock
364 verbose cache add [ 'grunt-nodemon@~0.2.0', null ]
365 verbose cache add name=undefined spec="grunt-nodemon@~0.2.0" args=["grunt-nodemon@~0.2.0",null]
366 verbose parsed url { protocol: null,
366 verbose parsed url   slashes: null,
366 verbose parsed url   auth: null,
366 verbose parsed url   host: null,
366 verbose parsed url   port: null,
366 verbose parsed url   hostname: null,
366 verbose parsed url   hash: null,
366 verbose parsed url   search: null,
366 verbose parsed url   query: null,
366 verbose parsed url   pathname: 'grunt-nodemon@~0.2.0',
366 verbose parsed url   path: 'grunt-nodemon@~0.2.0',
366 verbose parsed url   href: 'grunt-nodemon@~0.2.0' }
367 verbose cache add name="grunt-nodemon" spec="~0.2.0" args=["grunt-nodemon","~0.2.0"]
368 verbose parsed url { protocol: null,
368 verbose parsed url   slashes: null,
368 verbose parsed url   auth: null,
368 verbose parsed url   host: null,
368 verbose parsed url   port: null,
368 verbose parsed url   hostname: null,
368 verbose parsed url   hash: null,
368 verbose parsed url   search: null,
368 verbose parsed url   query: null,
368 verbose parsed url   pathname: '~0.2.0',
368 verbose parsed url   path: '~0.2.0',
368 verbose parsed url   href: '~0.2.0' }
369 verbose addNamed [ 'grunt-nodemon', '~0.2.0' ]
370 verbose addNamed [ null, '>=0.2.0-0 <0.3.0-0' ]
371 silly lockFile 3dfae922-grunt-nodemon-0-2-0 grunt-nodemon@~0.2.0
372 verbose lock grunt-nodemon@~0.2.0 /home/michael/.npm/3dfae922-grunt-nodemon-0-2-0.lock
373 verbose cache add [ 'grunt-concurrent@~0.5.0', null ]
374 verbose cache add name=undefined spec="grunt-concurrent@~0.5.0" args=["grunt-concurrent@~0.5.0",null]
375 verbose parsed url { protocol: null,
375 verbose parsed url   slashes: null,
375 verbose parsed url   auth: null,
375 verbose parsed url   host: null,
375 verbose parsed url   port: null,
375 verbose parsed url   hostname: null,
375 verbose parsed url   hash: null,
375 verbose parsed url   search: null,
375 verbose parsed url   query: null,
375 verbose parsed url   pathname: 'grunt-concurrent@~0.5.0',
375 verbose parsed url   path: 'grunt-concurrent@~0.5.0',
375 verbose parsed url   href: 'grunt-concurrent@~0.5.0' }
376 verbose cache add name="grunt-concurrent" spec="~0.5.0" args=["grunt-concurrent","~0.5.0"]
377 verbose parsed url { protocol: null,
377 verbose parsed url   slashes: null,
377 verbose parsed url   auth: null,
377 verbose parsed url   host: null,
377 verbose parsed url   port: null,
377 verbose parsed url   hostname: null,
377 verbose parsed url   hash: null,
377 verbose parsed url   search: null,
377 verbose parsed url   query: null,
377 verbose parsed url   pathname: '~0.5.0',
377 verbose parsed url   path: '~0.5.0',
377 verbose parsed url   href: '~0.5.0' }
378 verbose addNamed [ 'grunt-concurrent', '~0.5.0' ]
379 verbose addNamed [ null, '>=0.5.0-0 <0.6.0-0' ]
380 silly lockFile 7bf8c3d2-grunt-concurrent-0-5-0 grunt-concurrent@~0.5.0
381 verbose lock grunt-concurrent@~0.5.0 /home/michael/.npm/7bf8c3d2-grunt-concurrent-0-5-0.lock
382 verbose cache add [ 'grunt-mocha-test@~0.10.0', null ]
383 verbose cache add name=undefined spec="grunt-mocha-test@~0.10.0" args=["grunt-mocha-test@~0.10.0",null]
384 verbose parsed url { protocol: null,
384 verbose parsed url   slashes: null,
384 verbose parsed url   auth: null,
384 verbose parsed url   host: null,
384 verbose parsed url   port: null,
384 verbose parsed url   hostname: null,
384 verbose parsed url   hash: null,
384 verbose parsed url   search: null,
384 verbose parsed url   query: null,
384 verbose parsed url   pathname: 'grunt-mocha-test@~0.10.0',
384 verbose parsed url   path: 'grunt-mocha-test@~0.10.0',
384 verbose parsed url   href: 'grunt-mocha-test@~0.10.0' }
385 verbose cache add name="grunt-mocha-test" spec="~0.10.0" args=["grunt-mocha-test","~0.10.0"]
386 verbose parsed url { protocol: null,
386 verbose parsed url   slashes: null,
386 verbose parsed url   auth: null,
386 verbose parsed url   host: null,
386 verbose parsed url   port: null,
386 verbose parsed url   hostname: null,
386 verbose parsed url   hash: null,
386 verbose parsed url   search: null,
386 verbose parsed url   query: null,
386 verbose parsed url   pathname: '~0.10.0',
386 verbose parsed url   path: '~0.10.0',
386 verbose parsed url   href: '~0.10.0' }
387 verbose addNamed [ 'grunt-mocha-test', '~0.10.0' ]
388 verbose addNamed [ null, '>=0.10.0-0 <0.11.0-0' ]
389 silly lockFile 20ce080e-grunt-mocha-test-0-10-0 grunt-mocha-test@~0.10.0
390 verbose lock grunt-mocha-test@~0.10.0 /home/michael/.npm/20ce080e-grunt-mocha-test-0-10-0.lock
391 verbose cache add [ 'grunt-karma@~0.8.2', null ]
392 verbose cache add name=undefined spec="grunt-karma@~0.8.2" args=["grunt-karma@~0.8.2",null]
393 verbose parsed url { protocol: null,
393 verbose parsed url   slashes: null,
393 verbose parsed url   auth: null,
393 verbose parsed url   host: null,
393 verbose parsed url   port: null,
393 verbose parsed url   hostname: null,
393 verbose parsed url   hash: null,
393 verbose parsed url   search: null,
393 verbose parsed url   query: null,
393 verbose parsed url   pathname: 'grunt-karma@~0.8.2',
393 verbose parsed url   path: 'grunt-karma@~0.8.2',
393 verbose parsed url   href: 'grunt-karma@~0.8.2' }
394 verbose cache add name="grunt-karma" spec="~0.8.2" args=["grunt-karma","~0.8.2"]
395 verbose parsed url { protocol: null,
395 verbose parsed url   slashes: null,
395 verbose parsed url   auth: null,
395 verbose parsed url   host: null,
395 verbose parsed url   port: null,
395 verbose parsed url   hostname: null,
395 verbose parsed url   hash: null,
395 verbose parsed url   search: null,
395 verbose parsed url   query: null,
395 verbose parsed url   pathname: '~0.8.2',
395 verbose parsed url   path: '~0.8.2',
395 verbose parsed url   href: '~0.8.2' }
396 verbose addNamed [ 'grunt-karma', '~0.8.2' ]
397 verbose addNamed [ null, '>=0.8.2-0 <0.9.0-0' ]
398 silly lockFile 980fd4de-grunt-karma-0-8-2 grunt-karma@~0.8.2
399 verbose lock grunt-karma@~0.8.2 /home/michael/.npm/980fd4de-grunt-karma-0-8-2.lock
400 verbose cache add [ 'load-grunt-tasks@~0.4.0', null ]
401 verbose cache add name=undefined spec="load-grunt-tasks@~0.4.0" args=["load-grunt-tasks@~0.4.0",null]
402 verbose parsed url { protocol: null,
402 verbose parsed url   slashes: null,
402 verbose parsed url   auth: null,
402 verbose parsed url   host: null,
402 verbose parsed url   port: null,
402 verbose parsed url   hostname: null,
402 verbose parsed url   hash: null,
402 verbose parsed url   search: null,
402 verbose parsed url   query: null,
402 verbose parsed url   pathname: 'load-grunt-tasks@~0.4.0',
402 verbose parsed url   path: 'load-grunt-tasks@~0.4.0',
402 verbose parsed url   href: 'load-grunt-tasks@~0.4.0' }
403 verbose cache add name="load-grunt-tasks" spec="~0.4.0" args=["load-grunt-tasks","~0.4.0"]
404 verbose parsed url { protocol: null,
404 verbose parsed url   slashes: null,
404 verbose parsed url   auth: null,
404 verbose parsed url   host: null,
404 verbose parsed url   port: null,
404 verbose parsed url   hostname: null,
404 verbose parsed url   hash: null,
404 verbose parsed url   search: null,
404 verbose parsed url   query: null,
404 verbose parsed url   pathname: '~0.4.0',
404 verbose parsed url   path: '~0.4.0',
404 verbose parsed url   href: '~0.4.0' }
405 verbose addNamed [ 'load-grunt-tasks', '~0.4.0' ]
406 verbose addNamed [ null, '>=0.4.0-0 <0.5.0-0' ]
407 silly lockFile db6ec5cc-load-grunt-tasks-0-4-0 load-grunt-tasks@~0.4.0
408 verbose lock load-grunt-tasks@~0.4.0 /home/michael/.npm/db6ec5cc-load-grunt-tasks-0-4-0.lock
409 verbose cache add [ 'karma@~0.12.0', null ]
410 verbose cache add name=undefined spec="karma@~0.12.0" args=["karma@~0.12.0",null]
411 verbose parsed url { protocol: null,
411 verbose parsed url   slashes: null,
411 verbose parsed url   auth: null,
411 verbose parsed url   host: null,
411 verbose parsed url   port: null,
411 verbose parsed url   hostname: null,
411 verbose parsed url   hash: null,
411 verbose parsed url   search: null,
411 verbose parsed url   query: null,
411 verbose parsed url   pathname: 'karma@~0.12.0',
411 verbose parsed url   path: 'karma@~0.12.0',
411 verbose parsed url   href: 'karma@~0.12.0' }
412 verbose cache add name="karma" spec="~0.12.0" args=["karma","~0.12.0"]
413 verbose parsed url { protocol: null,
413 verbose parsed url   slashes: null,
413 verbose parsed url   auth: null,
413 verbose parsed url   host: null,
413 verbose parsed url   port: null,
413 verbose parsed url   hostname: null,
413 verbose parsed url   hash: null,
413 verbose parsed url   search: null,
413 verbose parsed url   query: null,
413 verbose parsed url   pathname: '~0.12.0',
413 verbose parsed url   path: '~0.12.0',
413 verbose parsed url   href: '~0.12.0' }
414 verbose addNamed [ 'karma', '~0.12.0' ]
415 verbose addNamed [ null, '>=0.12.0-0 <0.13.0-0' ]
416 silly lockFile 9f4f2022-karma-0-12-0 karma@~0.12.0
417 verbose lock karma@~0.12.0 /home/michael/.npm/9f4f2022-karma-0-12-0.lock
418 verbose cache add [ 'karma-jasmine@~0.2.1', null ]
419 verbose cache add name=undefined spec="karma-jasmine@~0.2.1" args=["karma-jasmine@~0.2.1",null]
420 verbose parsed url { protocol: null,
420 verbose parsed url   slashes: null,
420 verbose parsed url   auth: null,
420 verbose parsed url   host: null,
420 verbose parsed url   port: null,
420 verbose parsed url   hostname: null,
420 verbose parsed url   hash: null,
420 verbose parsed url   search: null,
420 verbose parsed url   query: null,
420 verbose parsed url   pathname: 'karma-jasmine@~0.2.1',
420 verbose parsed url   path: 'karma-jasmine@~0.2.1',
420 verbose parsed url   href: 'karma-jasmine@~0.2.1' }
421 verbose cache add name="karma-jasmine" spec="~0.2.1" args=["karma-jasmine","~0.2.1"]
422 verbose parsed url { protocol: null,
422 verbose parsed url   slashes: null,
422 verbose parsed url   auth: null,
422 verbose parsed url   host: null,
422 verbose parsed url   port: null,
422 verbose parsed url   hostname: null,
422 verbose parsed url   hash: null,
422 verbose parsed url   search: null,
422 verbose parsed url   query: null,
422 verbose parsed url   pathname: '~0.2.1',
422 verbose parsed url   path: '~0.2.1',
422 verbose parsed url   href: '~0.2.1' }
423 verbose addNamed [ 'karma-jasmine', '~0.2.1' ]
424 verbose addNamed [ null, '>=0.2.1-0 <0.3.0-0' ]
425 silly lockFile 49e94803-karma-jasmine-0-2-1 karma-jasmine@~0.2.1
426 verbose lock karma-jasmine@~0.2.1 /home/michael/.npm/49e94803-karma-jasmine-0-2-1.lock
427 verbose cache add [ 'karma-coverage@~0.2.0', null ]
428 verbose cache add name=undefined spec="karma-coverage@~0.2.0" args=["karma-coverage@~0.2.0",null]
429 verbose parsed url { protocol: null,
429 verbose parsed url   slashes: null,
429 verbose parsed url   auth: null,
429 verbose parsed url   host: null,
429 verbose parsed url   port: null,
429 verbose parsed url   hostname: null,
429 verbose parsed url   hash: null,
429 verbose parsed url   search: null,
429 verbose parsed url   query: null,
429 verbose parsed url   pathname: 'karma-coverage@~0.2.0',
429 verbose parsed url   path: 'karma-coverage@~0.2.0',
429 verbose parsed url   href: 'karma-coverage@~0.2.0' }
430 verbose cache add name="karma-coverage" spec="~0.2.0" args=["karma-coverage","~0.2.0"]
431 verbose parsed url { protocol: null,
431 verbose parsed url   slashes: null,
431 verbose parsed url   auth: null,
431 verbose parsed url   host: null,
431 verbose parsed url   port: null,
431 verbose parsed url   hostname: null,
431 verbose parsed url   hash: null,
431 verbose parsed url   search: null,
431 verbose parsed url   query: null,
431 verbose parsed url   pathname: '~0.2.0',
431 verbose parsed url   path: '~0.2.0',
431 verbose parsed url   href: '~0.2.0' }
432 verbose addNamed [ 'karma-coverage', '~0.2.0' ]
433 verbose addNamed [ null, '>=0.2.0-0 <0.3.0-0' ]
434 silly lockFile 5953868c-karma-coverage-0-2-0 karma-coverage@~0.2.0
435 verbose lock karma-coverage@~0.2.0 /home/michael/.npm/5953868c-karma-coverage-0-2-0.lock
436 verbose cache add [ 'karma-chrome-launcher@~0.1.2', null ]
437 verbose cache add name=undefined spec="karma-chrome-launcher@~0.1.2" args=["karma-chrome-launcher@~0.1.2",null]
438 verbose parsed url { protocol: null,
438 verbose parsed url   slashes: null,
438 verbose parsed url   auth: null,
438 verbose parsed url   host: null,
438 verbose parsed url   port: null,
438 verbose parsed url   hostname: null,
438 verbose parsed url   hash: null,
438 verbose parsed url   search: null,
438 verbose parsed url   query: null,
438 verbose parsed url   pathname: 'karma-chrome-launcher@~0.1.2',
438 verbose parsed url   path: 'karma-chrome-launcher@~0.1.2',
438 verbose parsed url   href: 'karma-chrome-launcher@~0.1.2' }
439 verbose cache add name="karma-chrome-launcher" spec="~0.1.2" args=["karma-chrome-launcher","~0.1.2"]
440 verbose parsed url { protocol: null,
440 verbose parsed url   slashes: null,
440 verbose parsed url   auth: null,
440 verbose parsed url   host: null,
440 verbose parsed url   port: null,
440 verbose parsed url   hostname: null,
440 verbose parsed url   hash: null,
440 verbose parsed url   search: null,
440 verbose parsed url   query: null,
440 verbose parsed url   pathname: '~0.1.2',
440 verbose parsed url   path: '~0.1.2',
440 verbose parsed url   href: '~0.1.2' }
441 verbose addNamed [ 'karma-chrome-launcher', '~0.1.2' ]
442 verbose addNamed [ null, '>=0.1.2-0 <0.2.0-0' ]
443 silly lockFile ebb87570-karma-chrome-launcher-0-1-2 karma-chrome-launcher@~0.1.2
444 verbose lock karma-chrome-launcher@~0.1.2 /home/michael/.npm/ebb87570-karma-chrome-launcher-0-1-2.lock
445 verbose cache add [ 'karma-firefox-launcher@~0.1.3', null ]
446 verbose cache add name=undefined spec="karma-firefox-launcher@~0.1.3" args=["karma-firefox-launcher@~0.1.3",null]
447 verbose parsed url { protocol: null,
447 verbose parsed url   slashes: null,
447 verbose parsed url   auth: null,
447 verbose parsed url   host: null,
447 verbose parsed url   port: null,
447 verbose parsed url   hostname: null,
447 verbose parsed url   hash: null,
447 verbose parsed url   search: null,
447 verbose parsed url   query: null,
447 verbose parsed url   pathname: 'karma-firefox-launcher@~0.1.3',
447 verbose parsed url   path: 'karma-firefox-launcher@~0.1.3',
447 verbose parsed url   href: 'karma-firefox-launcher@~0.1.3' }
448 verbose cache add name="karma-firefox-launcher" spec="~0.1.3" args=["karma-firefox-launcher","~0.1.3"]
449 verbose parsed url { protocol: null,
449 verbose parsed url   slashes: null,
449 verbose parsed url   auth: null,
449 verbose parsed url   host: null,
449 verbose parsed url   port: null,
449 verbose parsed url   hostname: null,
449 verbose parsed url   hash: null,
449 verbose parsed url   search: null,
449 verbose parsed url   query: null,
449 verbose parsed url   pathname: '~0.1.3',
449 verbose parsed url   path: '~0.1.3',
449 verbose parsed url   href: '~0.1.3' }
450 verbose addNamed [ 'karma-firefox-launcher', '~0.1.3' ]
451 verbose addNamed [ null, '>=0.1.3-0 <0.2.0-0' ]
452 silly lockFile 1f62a97f-karma-firefox-launcher-0-1-3 karma-firefox-launcher@~0.1.3
453 verbose lock karma-firefox-launcher@~0.1.3 /home/michael/.npm/1f62a97f-karma-firefox-launcher-0-1-3.lock
454 verbose cache add [ 'karma-phantomjs-launcher@~0.1.2', null ]
455 verbose cache add name=undefined spec="karma-phantomjs-launcher@~0.1.2" args=["karma-phantomjs-launcher@~0.1.2",null]
456 verbose parsed url { protocol: null,
456 verbose parsed url   slashes: null,
456 verbose parsed url   auth: null,
456 verbose parsed url   host: null,
456 verbose parsed url   port: null,
456 verbose parsed url   hostname: null,
456 verbose parsed url   hash: null,
456 verbose parsed url   search: null,
456 verbose parsed url   query: null,
456 verbose parsed url   pathname: 'karma-phantomjs-launcher@~0.1.2',
456 verbose parsed url   path: 'karma-phantomjs-launcher@~0.1.2',
456 verbose parsed url   href: 'karma-phantomjs-launcher@~0.1.2' }
457 verbose cache add name="karma-phantomjs-launcher" spec="~0.1.2" args=["karma-phantomjs-launcher","~0.1.2"]
458 verbose parsed url { protocol: null,
458 verbose parsed url   slashes: null,
458 verbose parsed url   auth: null,
458 verbose parsed url   host: null,
458 verbose parsed url   port: null,
458 verbose parsed url   hostname: null,
458 verbose parsed url   hash: null,
458 verbose parsed url   search: null,
458 verbose parsed url   query: null,
458 verbose parsed url   pathname: '~0.1.2',
458 verbose parsed url   path: '~0.1.2',
458 verbose parsed url   href: '~0.1.2' }
459 verbose addNamed [ 'karma-phantomjs-launcher', '~0.1.2' ]
460 verbose addNamed [ null, '>=0.1.2-0 <0.2.0-0' ]
461 silly lockFile 2b5ef104-karma-phantomjs-launcher-0-1-2 karma-phantomjs-launcher@~0.1.2
462 verbose lock karma-phantomjs-launcher@~0.1.2 /home/michael/.npm/2b5ef104-karma-phantomjs-launcher-0-1-2.lock
463 verbose url raw morgan
464 verbose url resolving [ 'https://registry.npmjs.org/', './morgan' ]
465 verbose url resolved https://registry.npmjs.org/morgan
466 info trying registry request attempt 1 at 12:02:43
467 http GET https://registry.npmjs.org/morgan
468 verbose url raw helmet
469 verbose url resolving [ 'https://registry.npmjs.org/', './helmet' ]
470 verbose url resolved https://registry.npmjs.org/helmet
471 info trying registry request attempt 1 at 12:02:43
472 http GET https://registry.npmjs.org/helmet
473 silly addNameRange { name: 'grunt-contrib-uglify',
473 silly addNameRange   range: '>=0.4.0-0 <0.5.0-0',
473 silly addNameRange   hasData: false }
474 silly addNameRange { name: 'grunt-contrib-cssmin',
474 silly addNameRange   range: '>=0.9.0-0 <0.10.0-0',
474 silly addNameRange   hasData: false }
475 silly addNameRange { name: 'grunt-nodemon',
475 silly addNameRange   range: '>=0.2.0-0 <0.3.0-0',
475 silly addNameRange   hasData: false }
476 silly addNameRange { name: 'grunt-concurrent',
476 silly addNameRange   range: '>=0.5.0-0 <0.6.0-0',
476 silly addNameRange   hasData: false }
477 silly addNameRange { name: 'grunt-mocha-test',
477 silly addNameRange   range: '>=0.10.0-0 <0.11.0-0',
477 silly addNameRange   hasData: false }
478 silly addNameRange { name: 'grunt-karma',
478 silly addNameRange   range: '>=0.8.2-0 <0.9.0-0',
478 silly addNameRange   hasData: false }
479 silly addNameRange { name: 'load-grunt-tasks',
479 silly addNameRange   range: '>=0.4.0-0 <0.5.0-0',
479 silly addNameRange   hasData: false }
480 silly addNameRange { name: 'karma', range: '>=0.12.0-0 <0.13.0-0', hasData: false }
481 silly addNameRange { name: 'karma-jasmine',
481 silly addNameRange   range: '>=0.2.1-0 <0.3.0-0',
481 silly addNameRange   hasData: false }
482 silly addNameRange { name: 'karma-coverage',
482 silly addNameRange   range: '>=0.2.0-0 <0.3.0-0',
482 silly addNameRange   hasData: false }
483 silly addNameRange { name: 'karma-chrome-launcher',
483 silly addNameRange   range: '>=0.1.2-0 <0.2.0-0',
483 silly addNameRange   hasData: false }
484 silly addNameRange { name: 'karma-firefox-launcher',
484 silly addNameRange   range: '>=0.1.3-0 <0.2.0-0',
484 silly addNameRange   hasData: false }
485 silly addNameRange { name: 'karma-phantomjs-launcher',
485 silly addNameRange   range: '>=0.1.2-0 <0.2.0-0',
485 silly addNameRange   hasData: false }
486 verbose url raw express
487 verbose url resolving [ 'https://registry.npmjs.org/', './express' ]
488 verbose url resolved https://registry.npmjs.org/express
489 info trying registry request attempt 1 at 12:02:43
490 verbose etag "9FAI1EBDV8Z79LIXDU2RMOUD1"
491 http GET https://registry.npmjs.org/express
492 verbose url raw connect-flash
493 verbose url resolving [ 'https://registry.npmjs.org/', './connect-flash' ]
494 verbose url resolved https://registry.npmjs.org/connect-flash
495 info trying registry request attempt 1 at 12:02:43
496 verbose etag "1UU5KQDHYASHDXRC24P4O3FYC"
497 http GET https://registry.npmjs.org/connect-flash
498 verbose url raw connect-mongo
499 verbose url resolving [ 'https://registry.npmjs.org/', './connect-mongo' ]
500 verbose url resolved https://registry.npmjs.org/connect-mongo
501 info trying registry request attempt 1 at 12:02:43
502 verbose etag "3FLSP6MOC0396FU9CMW8R3JVD"
503 http GET https://registry.npmjs.org/connect-mongo
504 verbose url raw consolidate
505 verbose url resolving [ 'https://registry.npmjs.org/', './consolidate' ]
506 verbose url resolved https://registry.npmjs.org/consolidate
507 info trying registry request attempt 1 at 12:02:43
508 verbose etag "9Q6I3WSWJ5RQFAE80VUR38M4N"
509 http GET https://registry.npmjs.org/consolidate
510 verbose url raw swig
511 verbose url resolving [ 'https://registry.npmjs.org/', './swig' ]
512 verbose url resolved https://registry.npmjs.org/swig
513 info trying registry request attempt 1 at 12:02:43
514 verbose etag "UUXA5WK3WR02MBGTUU88MDD3"
515 http GET https://registry.npmjs.org/swig
516 verbose url raw passport
517 verbose url resolving [ 'https://registry.npmjs.org/', './passport' ]
518 verbose url resolved https://registry.npmjs.org/passport
519 info trying registry request attempt 1 at 12:02:43
520 verbose etag "8ZTXGSG1KGQPVH2XJW8FQ3ZW0"
521 http GET https://registry.npmjs.org/passport
522 verbose url raw passport-facebook
523 verbose url resolving [ 'https://registry.npmjs.org/', './passport-facebook' ]
524 verbose url resolved https://registry.npmjs.org/passport-facebook
525 info trying registry request attempt 1 at 12:02:43
526 verbose etag "6G0K2LCML3I06A6Z6F333PWN7"
527 http GET https://registry.npmjs.org/passport-facebook
528 verbose url raw mongoose
529 verbose url resolving [ 'https://registry.npmjs.org/', './mongoose' ]
530 verbose url resolved https://registry.npmjs.org/mongoose
531 info trying registry request attempt 1 at 12:02:43
532 verbose etag "8CBK8FGY2MTHIX098QVDXFQBP"
533 http GET https://registry.npmjs.org/mongoose
534 verbose url raw passport-local
535 verbose url resolving [ 'https://registry.npmjs.org/', './passport-local' ]
536 verbose url resolved https://registry.npmjs.org/passport-local
537 info trying registry request attempt 1 at 12:02:43
538 verbose etag "BJWVQHS5ZPXBNYXP4I034PZ18"
539 http GET https://registry.npmjs.org/passport-local
540 verbose url raw passport-linkedin
541 verbose url resolving [ 'https://registry.npmjs.org/', './passport-linkedin' ]
542 verbose url resolved https://registry.npmjs.org/passport-linkedin
543 info trying registry request attempt 1 at 12:02:43
544 verbose etag "DFFHSMM44UNVNTX917SU1LZYI"
545 http GET https://registry.npmjs.org/passport-linkedin
546 verbose url raw lodash
547 verbose url resolving [ 'https://registry.npmjs.org/', './lodash' ]
548 verbose url resolved https://registry.npmjs.org/lodash
549 info trying registry request attempt 1 at 12:02:43
550 verbose etag "3RKVULGLLXAVQBZ9SE6GKP3UP"
551 http GET https://registry.npmjs.org/lodash
552 verbose url raw passport-twitter
553 verbose url resolving [ 'https://registry.npmjs.org/', './passport-twitter' ]
554 verbose url resolved https://registry.npmjs.org/passport-twitter
555 info trying registry request attempt 1 at 12:02:43
556 verbose etag "CKGRJXSGRH8Z3ELGJR5LRDHRR"
557 http GET https://registry.npmjs.org/passport-twitter
558 verbose url raw passport-google-oauth
559 verbose url resolving [ 'https://registry.npmjs.org/', './passport-google-oauth' ]
560 verbose url resolved https://registry.npmjs.org/passport-google-oauth
561 info trying registry request attempt 1 at 12:02:43
562 verbose etag "D7WK4ZGRU6QIK6AU2OCL13R6G"
563 http GET https://registry.npmjs.org/passport-google-oauth
564 verbose url raw grunt-cli
565 verbose url resolving [ 'https://registry.npmjs.org/', './grunt-cli' ]
566 verbose url resolved https://registry.npmjs.org/grunt-cli
567 info trying registry request attempt 1 at 12:02:43
568 verbose etag "6PZDUI8VIBFID9COF5TX45XL8"
569 http GET https://registry.npmjs.org/grunt-cli
570 verbose url raw glob
571 verbose url resolving [ 'https://registry.npmjs.org/', './glob' ]
572 verbose url resolved https://registry.npmjs.org/glob
573 info trying registry request attempt 1 at 12:02:43
574 verbose etag "A55KRAK6OJF6UVQOB4NXZMR66"
575 http GET https://registry.npmjs.org/glob
576 verbose url raw forever
577 verbose url resolving [ 'https://registry.npmjs.org/', './forever' ]
578 verbose url resolved https://registry.npmjs.org/forever
579 info trying registry request attempt 1 at 12:02:43
580 verbose etag "4P9V7OHA0WR54KEFP372B7RNH"
581 http GET https://registry.npmjs.org/forever
582 verbose url raw supertest
583 verbose url resolving [ 'https://registry.npmjs.org/', './supertest' ]
584 verbose url resolved https://registry.npmjs.org/supertest
585 info trying registry request attempt 1 at 12:02:43
586 verbose etag "2NGPKPG9VDVTLZYDUZ81BA8X4"
587 http GET https://registry.npmjs.org/supertest
588 verbose url raw bower
589 verbose url resolving [ 'https://registry.npmjs.org/', './bower' ]
590 verbose url resolved https://registry.npmjs.org/bower
591 info trying registry request attempt 1 at 12:02:43
592 verbose etag "5D6WU1EISH9UMEBAT241BGHHD"
593 http GET https://registry.npmjs.org/bower
594 verbose url raw should
595 verbose url resolving [ 'https://registry.npmjs.org/', './should' ]
596 verbose url resolved https://registry.npmjs.org/should
597 info trying registry request attempt 1 at 12:02:43
598 verbose etag "AV4BAGL8M6NUKTRFLAQRDEBQI"
599 http GET https://registry.npmjs.org/should
600 verbose url raw grunt-env
601 verbose url resolving [ 'https://registry.npmjs.org/', './grunt-env' ]
602 verbose url resolved https://registry.npmjs.org/grunt-env
603 info trying registry request attempt 1 at 12:02:43
604 verbose etag "W31212S0IOVD0DQ183GZGJQT"
605 http GET https://registry.npmjs.org/grunt-env
606 verbose url raw grunt-node-inspector
607 verbose url resolving [ 'https://registry.npmjs.org/', './grunt-node-inspector' ]
608 verbose url resolved https://registry.npmjs.org/grunt-node-inspector
609 info trying registry request attempt 1 at 12:02:43
610 verbose etag "7R7LKSJ7GOW3OLXOBG5GLIO5C"
611 http GET https://registry.npmjs.org/grunt-node-inspector
612 verbose url raw grunt-contrib-watch
613 verbose url resolving [ 'https://registry.npmjs.org/', './grunt-contrib-watch' ]
614 verbose url resolved https://registry.npmjs.org/grunt-contrib-watch
615 info trying registry request attempt 1 at 12:02:43
616 verbose etag "5ZK6GMSXLNB4QCER3EMMKTHU"
617 http GET https://registry.npmjs.org/grunt-contrib-watch
618 verbose url raw grunt-contrib-csslint
619 verbose url resolving [ 'https://registry.npmjs.org/', './grunt-contrib-csslint' ]
620 verbose url resolved https://registry.npmjs.org/grunt-contrib-csslint
621 info trying registry request attempt 1 at 12:02:43
622 verbose etag "5A2PVVD3BPTF4XFMBG0LEUE97"
623 http GET https://registry.npmjs.org/grunt-contrib-csslint
624 verbose url raw grunt-contrib-jshint
625 verbose url resolving [ 'https://registry.npmjs.org/', './grunt-contrib-jshint' ]
626 verbose url resolved https://registry.npmjs.org/grunt-contrib-jshint
627 info trying registry request attempt 1 at 12:02:43
628 verbose etag "8GB5W8YHVA4JV7F5X31NF37ZL"
629 http GET https://registry.npmjs.org/grunt-contrib-jshint
630 verbose url raw grunt-contrib-cssmin
631 verbose url resolving [ 'https://registry.npmjs.org/', './grunt-contrib-cssmin' ]
632 verbose url resolved https://registry.npmjs.org/grunt-contrib-cssmin
633 info trying registry request attempt 1 at 12:02:43
634 verbose etag "A1W86PDJN9PEUPN9ZEUCC6MBX"
635 http GET https://registry.npmjs.org/grunt-contrib-cssmin
636 verbose url raw grunt-contrib-uglify
637 verbose url resolving [ 'https://registry.npmjs.org/', './grunt-contrib-uglify' ]
638 verbose url resolved https://registry.npmjs.org/grunt-contrib-uglify
639 info trying registry request attempt 1 at 12:02:43
640 verbose etag "CWV49HJI7PFRPL9KK70E19K07"
641 http GET https://registry.npmjs.org/grunt-contrib-uglify
642 verbose url raw grunt-nodemon
643 verbose url resolving [ 'https://registry.npmjs.org/', './grunt-nodemon' ]
644 verbose url resolved https://registry.npmjs.org/grunt-nodemon
645 info trying registry request attempt 1 at 12:02:43
646 verbose etag "DA3NA48JXQGRTOW4ADRCKQXDQ"
647 http GET https://registry.npmjs.org/grunt-nodemon
648 verbose url raw grunt-concurrent
649 verbose url resolving [ 'https://registry.npmjs.org/', './grunt-concurrent' ]
650 verbose url resolved https://registry.npmjs.org/grunt-concurrent
651 info trying registry request attempt 1 at 12:02:43
652 verbose etag "CK5P73HWOYWEINOQ5VT0TBDVB"
653 http GET https://registry.npmjs.org/grunt-concurrent
654 verbose url raw grunt-mocha-test
655 verbose url resolving [ 'https://registry.npmjs.org/', './grunt-mocha-test' ]
656 verbose url resolved https://registry.npmjs.org/grunt-mocha-test
657 info trying registry request attempt 1 at 12:02:43
658 verbose etag "556JJ931SJ93S8J6R6KRDL97V"
659 http GET https://registry.npmjs.org/grunt-mocha-test
660 verbose url raw grunt-karma
661 verbose url resolving [ 'https://registry.npmjs.org/', './grunt-karma' ]
662 verbose url resolved https://registry.npmjs.org/grunt-karma
663 info trying registry request attempt 1 at 12:02:43
664 verbose etag "BUJQFU9UPSU5J1CL2GARKAOFF"
665 http GET https://registry.npmjs.org/grunt-karma
666 verbose url raw load-grunt-tasks
667 verbose url resolving [ 'https://registry.npmjs.org/', './load-grunt-tasks' ]
668 verbose url resolved https://registry.npmjs.org/load-grunt-tasks
669 info trying registry request attempt 1 at 12:02:43
670 verbose etag "4633DSZAD96FCGL86SFKM056T"
671 http GET https://registry.npmjs.org/load-grunt-tasks
672 verbose url raw karma-jasmine
673 verbose url resolving [ 'https://registry.npmjs.org/', './karma-jasmine' ]
674 verbose url resolved https://registry.npmjs.org/karma-jasmine
675 info trying registry request attempt 1 at 12:02:43
676 verbose etag "5NFUMQ5JIXPHWUVFZW04J5VAE"
677 http GET https://registry.npmjs.org/karma-jasmine
678 verbose url raw karma-coverage
679 verbose url resolving [ 'https://registry.npmjs.org/', './karma-coverage' ]
680 verbose url resolved https://registry.npmjs.org/karma-coverage
681 info trying registry request attempt 1 at 12:02:43
682 verbose etag "EEUUIDT0HME2WBJBE9OEEPF2J"
683 http GET https://registry.npmjs.org/karma-coverage
684 verbose url raw karma-chrome-launcher
685 verbose url resolving [ 'https://registry.npmjs.org/', './karma-chrome-launcher' ]
686 verbose url resolved https://registry.npmjs.org/karma-chrome-launcher
687 info trying registry request attempt 1 at 12:02:43
688 verbose etag "64R5HKVFTJ4O63JLXNANZPSJP"
689 http GET https://registry.npmjs.org/karma-chrome-launcher
690 verbose url raw karma-firefox-launcher
691 verbose url resolving [ 'https://registry.npmjs.org/', './karma-firefox-launcher' ]
692 verbose url resolved https://registry.npmjs.org/karma-firefox-launcher
693 info trying registry request attempt 1 at 12:02:43
694 verbose etag "1JR59DKFST2LBVFUKBR1KW5GU"
695 http GET https://registry.npmjs.org/karma-firefox-launcher
696 verbose url raw karma-phantomjs-launcher
697 verbose url resolving [ 'https://registry.npmjs.org/', './karma-phantomjs-launcher' ]
698 verbose url resolved https://registry.npmjs.org/karma-phantomjs-launcher
699 info trying registry request attempt 1 at 12:02:43
700 verbose etag "E8SUBUAUGVXQVZERW8AS2OORD"
701 http GET https://registry.npmjs.org/karma-phantomjs-launcher
702 verbose url raw karma
703 verbose url resolving [ 'https://registry.npmjs.org/', './karma' ]
704 verbose url resolved https://registry.npmjs.org/karma
705 info trying registry request attempt 1 at 12:02:43
706 verbose etag "ES8SOG9X9QEBKOJ03AGCO3Y2V"
707 http GET https://registry.npmjs.org/karma
708 http 200 https://registry.npmjs.org/cookie-parser
709 silly registry.get cb [ 200,
709 silly registry.get   { date: 'Sat, 03 May 2014 17:02:44 GMT',
709 silly registry.get     server: 'CouchDB/1.5.0 (Erlang OTP/R14B04)',
709 silly registry.get     etag: '"3MVJ4WZ8UU24BNBPT78T8PK6F"',
709 silly registry.get     'content-type': 'application/json',
709 silly registry.get     via: '1.1 varnish',
709 silly registry.get     'cache-control': 'max-age=1',
709 silly registry.get     'content-length': '3600',
709 silly registry.get     'accept-ranges': 'bytes',
709 silly registry.get     age: '84',
709 silly registry.get     'x-served-by': 'cache-v42-ASH, cache-jfk1030-JFK',
709 silly registry.get     'x-cache': 'HIT, MISS',
709 silly registry.get     'x-cache-hits': '1, 0',
709 silly registry.get     'x-timer': 'S1399136480.947028399,VS0,VS4,VE113,VE83838',
709 silly registry.get     vary: 'Accept',
709 silly registry.get     'keep-alive': 'timeout=10, max=50',
709 silly registry.get     connection: 'Keep-Alive' } ]
710 silly addNameRange number 2 { name: 'cookie-parser',
710 silly addNameRange   range: '>=1.0.1-0 <1.1.0-0',
710 silly addNameRange   hasData: true }
711 silly addNameRange versions [ 'cookie-parser', [ '1.0.0', '1.0.1' ] ]
712 verbose addNamed [ 'cookie-parser', '1.0.1' ]
713 verbose addNamed [ '1.0.1', '1.0.1' ]
714 silly lockFile 8d245ba8-cookie-parser-1-0-1 [email protected]
715 verbose lock [email protected] /home/michael/.npm/8d245ba8-cookie-parser-1-0-1.lock
716 verbose read json /home/michael/.npm/cookie-parser/1.0.1/package/package.json
717 silly lockFile 8d245ba8-cookie-parser-1-0-1 [email protected]
718 silly lockFile 8d245ba8-cookie-parser-1-0-1 [email protected]
719 silly lockFile 8e5bf42e-cookie-parser-1-0-1 cookie-parser@~1.0.1
720 silly lockFile 8e5bf42e-cookie-parser-1-0-1 cookie-parser@~1.0.1
721 http 200 https://registry.npmjs.org/method-override
722 silly registry.get cb [ 200,
722 silly registry.get   { date: 'Sat, 03 May 2014 17:02:44 GMT',
722 silly registry.get     server: 'CouchDB/1.5.0 (Erlang OTP/R14B04)',
722 silly registry.get     etag: '"143U76LNY9X5R9570SWKNUPOT"',
722 silly registry.get     'content-type': 'application/json',
722 silly registry.get     'cache-control': 'max-age=1',
722 silly registry.get     'content-length': '3350',
722 silly registry.get     'accept-ranges': 'bytes',
722 silly registry.get     via: '1.1 varnish',
722 silly registry.get     age: '145',
722 silly registry.get     'x-served-by': 'cache-v43-ASH',
722 silly registry.get     'x-cache': 'HIT',
722 silly registry.get     'x-cache-hits': '1',
722 silly registry.get     'x-timer': 'S1399136564.781873941,VS0,VE70',
722 silly registry.get     vary: 'Accept',
722 silly registry.get     'keep-alive': 'timeout=10, max=50',
722 silly registry.get     connection: 'Keep-Alive' } ]
723 silly addNameRange number 2 { name: 'method-override',
723 silly addNameRange   range: '>=1.0.0-0 <1.1.0-0',
723 silly addNameRange   hasData: true }
724 silly addNameRange versions [ 'method-override', [ '1.0.0' ] ]
725 verbose addNamed [ 'method-override', '1.0.0' ]
726 verbose addNamed [ '1.0.0', '1.0.0' ]
727 silly lockFile ca61273e-method-override-1-0-0 [email protected]
728 verbose lock [email protected] /home/michael/.npm/ca61273e-method-override-1-0-0.lock
729 verbose read json /home/michael/.npm/method-override/1.0.0/package/package.json
730 silly lockFile ca61273e-method-override-1-0-0 [email protected]
731 silly lockFile ca61273e-method-override-1-0-0 [email protected]
732 silly lockFile 75669156-method-override-1-0-0 method-override@~1.0.0
733 silly lockFile 75669156-method-override-1-0-0 method-override@~1.0.0
734 http 200 https://registry.npmjs.org/compression
735 silly registry.get cb [ 200,
735 silly registry.get   { date: 'Sat, 03 May 2014 17:02:44 GMT',
735 silly registry.get     server: 'CouchDB/1.5.0 (Erlang OTP/R14B04)',
735 silly registry.get     etag: '"CDZYSRKLT22ESBOKRRU3Z84JQ"',
735 silly registry.get     'content-type': 'application/json',
735 silly registry.get     'cache-control': 'max-age=1',
735 silly registry.get     'content-length': '6790',
735 silly registry.get     'accept-ranges': 'bytes',
735 silly registry.get     via: '1.1 varnish',
735 silly registry.get     'x-served-by': 'cache-v44-ASH',
735 silly registry.get     'x-cache': 'MISS',
735 silly registry.get     'x-cache-hits': '0',
735 silly registry.get     'x-timer': 'S1399136564.876186609,VS0,VE92',
735 silly registry.get     vary: 'Accept',
735 silly registry.get     'keep-alive': 'timeout=10, max=50',
735 silly registry.get     connection: 'Keep-Alive' } ]
736 silly addNameRange number 2 { name: 'compression',
736 silly addNameRange   range: '>=1.0.1-0 <1.1.0-0',
736 silly addNameRange   hasData: true }
737 silly addNameRange versions [ 'compression', [ '1.0.0', '1.0.1', '1.0.2' ] ]
738 verbose addNamed [ 'compression', '1.0.2' ]
739 verbose addNamed [ '1.0.2', '1.0.2' ]
740 silly lockFile 8d701c94-compression-1-0-2 [email protected]
741 verbose lock [email protected] /home/michael/.npm/8d701c94-compression-1-0-2.lock
742 silly lockFile 18f4f52c-ompression-compression-1-0-2-tgz https://registry.npmjs.org/compression/-/compression-1.0.2.tgz
743 verbose lock https://registry.npmjs.org/compression/-/compression-1.0.2.tgz /home/michael/.npm/18f4f52c-ompression-compression-1-0-2-tgz.lock
744 verbose addRemoteTarball [ 'https://registry.npmjs.org/compression/-/compression-1.0.2.tgz',
744 verbose addRemoteTarball   '90ea20033ee689473678b2ee32226183d7030893' ]
745 info retry fetch attempt 1 at 12:02:44
746 verbose fetch to= /home/michael/tmp/npm-10527/1399136564727-0.550290658371523/tmp.tgz
747 http GET https://registry.npmjs.org/compression/-/compression-1.0.2.tgz
748 http 200 https://registry.npmjs.org/body-parser
749 silly registry.get cb [ 200,
749 silly registry.get   { date: 'Sat, 03 May 2014 17:02:44 GMT',
749 silly registry.get     server: 'CouchDB/1.5.0 (Erlang OTP/R14B04)',
749 silly registry.get     etag: '"7FE5632RXX68MSXX3E0YEV3RJ"',
749 silly registry.get     'content-type': 'application/json',
749 silly registry.get     'cache-control': 'max-age=1',
749 silly registry.get     'content-length': '6481',
749 silly registry.get     'accept-ranges': 'bytes',
749 silly registry.get     via: '1.1 varnish',
749 silly registry.get     'x-served-by': 'cache-v42-ASH',
749 silly registry.get     'x-cache': 'MISS',
749 silly registry.get     'x-cache-hits': '0',
749 silly registry.get     'x-timer': 'S1399136564.875543118,VS0,VE100',
749 silly registry.get     vary: 'Accept',
749 silly registry.get     'keep-alive': 'timeout=10, max=50',
749 silly registry.get     connection: 'Keep-Alive' } ]
750 silly addNameRange number 2 { name: 'body-parser',
750 silly addNameRange   range: '>=1.0.1-0 <1.1.0-0',
750 silly addNameRange   hasData: true }
751 silly addNameRange versions [ 'body-parser', [ '1.0.0', '1.0.1', '1.0.2' ] ]
752 verbose addNamed [ 'body-parser', '1.0.2' ]
753 verbose addNamed [ '1.0.2', '1.0.2' ]
754 silly lockFile bc6ccf3b-body-parser-1-0-2 [email protected]
755 verbose lock [email protected] /home/michael/.npm/bc6ccf3b-body-parser-1-0-2.lock
756 silly lockFile 9ecea155-ody-parser-body-parser-1-0-2-tgz https://registry.npmjs.org/body-parser/-/body-parser-1.0.2.tgz
757 verbose lock https://registry.npmjs.org/body-parser/-/body-parser-1.0.2.tgz /home/michael/.npm/9ecea155-ody-parser-body-parser-1-0-2-tgz.lock
758 verbose addRemoteTarball [ 'https://registry.npmjs.org/body-parser/-/body-parser-1.0.2.tgz',
758 verbose addRemoteTarball   '3461479a3278fe00fcaebec3314bb54fc4f7b47c' ]
759 info retry fetch attempt 1 at 12:02:44
760 verbose fetch to= /home/michael/tmp/npm-10527/1399136564811-0.9445811985060573/tmp.tgz
761 http GET https://registry.npmjs.org/body-parser/-/body-parser-1.0.2.tgz
762 http 200 https://registry.npmjs.org/express-session
763 silly registry.get cb [ 200,
763 silly registry.get   { date: 'Sat, 03 May 2014 17:02:44 GMT',
763 silly registry.get     server: 'CouchDB/1.5.0 (Erlang OTP/R14B04)',
763 silly registry.get     etag: '"DEWV2DKFUZMHV2QGKG43B7GYV"',
763 silly registry.get     'content-type': 'application/json',
763 silly registry.get     via: '1.1 varnish',
763 silly registry.get     'cache-control': 'max-age=1',
763 silly registry.get     'content-length': '11941',
763 silly registry.get     'accept-ranges': 'bytes',
763 silly registry.get     age: '3310',
763 silly registry.get     'x-served-by': 'cache-v37-ASH, cache-jfk1035-JFK',
763 silly registry.get     'x-cache': 'HIT, MISS',
763 silly registry.get     'x-cache-hits': '1, 0',
763 silly registry.get     'x-timer': 'S1399113749.592943907,VS0,VS4,VE13,VE22815382',
763 silly registry.get     vary: 'Accept',
763 silly registry.get     'keep-alive': 'timeout=10, max=50',
763 silly registry.get     connection: 'Keep-Alive' } ]
764 http 200 https://registry.npmjs.org/morgan
765 silly registry.get cb [ 200,
765 silly registry.get   { date: 'Sat, 03 May 2014 17:02:45 GMT',
765 silly registry.get     server: 'CouchDB/1.5.0 (Erlang OTP/R14B04)',
765 silly registry.get     etag: '"NCFFQPDVUA1Z2X0X4ER33LG6"',
765 silly registry.get     'content-type': 'application/json',
765 silly registry.get     via: '1.1 varnish',
765 silly registry.get     'cache-control': 'max-age=1',
765 silly registry.get     'content-length': '3253',
765 silly registry.get     'accept-ranges': 'bytes',
765 silly registry.get     age: '351',
765 silly registry.get     'x-served-by': 'cache-v36-ASH, cache-jfk1030-JFK',
765 silly registry.get     'x-cache': 'MISS, MISS',
765 silly registry.get     'x-cache-hits': '0, 0',
765 silly registry.get     'x-timer': 'S1399108319.297156334,VS0,VS4,VE101,VE28245775',
765 silly registry.get     vary: 'Accept',
765 silly registry.get     'keep-alive': 'timeout=10, max=49',
765 silly registry.get     connection: 'Keep-Alive' } ]
766 silly addNameRange number 2 { name: 'morgan', range: '>=1.0.0-0 <1.1.0-0', hasData: true }
767 silly addNameRange versions [ 'morgan', [ '1.0.0' ] ]
768 verbose addNamed [ 'morgan', '1.0.0' ]
769 verbose addNamed [ '1.0.0', '1.0.0' ]
770 silly lockFile 45551810-morgan-1-0-0 [email protected]
771 verbose lock [email protected] /home/michael/.npm/45551810-morgan-1-0-0.lock
772 silly addNameRange number 2 { name: 'express-session',
772 silly addNameRange   range: '>=1.0.2-0 <1.1.0-0',
772 silly addNameRange   hasData: true }
773 silly addNameRange versions [ 'express-session',
773 silly addNameRange   [ '1.0.0', '1.0.1', '1.0.2', '1.0.3', '1.0.4' ] ]
774 verbose addNamed [ 'express-session', '1.0.4' ]
775 verbose addNamed [ '1.0.4', '1.0.4' ]
776 silly lockFile 0c902971-express-session-1-0-4 [email protected]
777 verbose lock [email protected] /home/michael/.npm/0c902971-express-session-1-0-4.lock
778 verbose read json /home/michael/.npm/morgan/1.0.0/package/package.json
779 silly lockFile 9ba4f82a-ession-express-session-1-0-4-tgz https://registry.npmjs.org/express-session/-/express-session-1.0.4.tgz
780 verbose lock https://registry.npmjs.org/express-session/-/express-session-1.0.4.tgz /home/michael/.npm/9ba4f82a-ession-express-session-1-0-4-tgz.lock
781 verbose addRemoteTarball [ 'https://registry.npmjs.org/express-session/-/express-session-1.0.4.tgz',
781 verbose addRemoteTarball   'a10045af3f24693c9c19b1914a11d0cab8f7b29b' ]
782 info retry fetch attempt 1 at 12:02:44
783 verbose fetch to= /home/michael/tmp/npm-10527/1399136564918-0.5999403127934784/tmp.tgz
784 http GET https://registry.npmjs.org/express-session/-/express-session-1.0.4.tgz
785 silly lockFile 45551810-morgan-1-0-0 [email protected]
786 silly lockFile 45551810-morgan-1-0-0 [email protected]
787 silly lockFile 58998603-morgan-1-0-0 morgan@~1.0.0
788 silly lockFile 58998603-morgan-1-0-0 morgan@~1.0.0
789 http 200 https://registry.npmjs.org/connect-flash
790 silly registry.get cb [ 200,
790 silly registry.get   { date: 'Sat, 03 May 2014 17:02:45 GMT',
790 silly registry.get     server: 'CouchDB/1.5.0 (Erlang OTP/R14B04)',
790 silly registry.get     etag: '"168WHRY0V5J8BJVXHUX2F2JGK"',
790 silly registry.get     'content-type': 'application/json',
790 silly registry.get     'cache-control': 'max-age=1',
790 silly registry.get     'content-length': '5511',
790 silly registry.get     'accept-ranges': 'bytes',
790 silly registry.get     via: '1.1 varnish',
790 silly registry.get     age: '67',
790 silly registry.get     'x-served-by': 'cache-v42-ASH',
790 silly registry.get     'x-cache': 'HIT',
790 silly registry.get     'x-cache-hits': '1',
790 silly registry.get     'x-timer': 'S1399136565.318138599,VS0,VE93',
790 silly registry.get     vary: 'Accept',
790 silly registry.get     'keep-alive': 'timeout=10, max=49',
790 silly registry.get     connection: 'Keep-Alive' } ]
791 silly addNameRange number 2 { name: 'connect-flash',
791 silly addNameRange   range: '>=0.1.1-0 <0.2.0-0',
791 silly addNameRange   hasData: true }
792 silly addNameRange versions [ 'connect-flash', [ '0.1.0', '0.1.1' ] ]
793 verbose addNamed [ 'connect-flash', '0.1.1' ]
794 verbose addNamed [ '0.1.1', '0.1.1' ]
795 silly lockFile 0cdf4f98-connect-flash-0-1-1 [email protected]
796 verbose lock [email protected] /home/michael/.npm/0cdf4f98-connect-flash-0-1-1.lock
797 verbose read json /home/michael/.npm/connect-flash/0.1.1/package/package.json
798 silly lockFile 0cdf4f98-connect-flash-0-1-1 [email protected]
799 silly lockFile 0cdf4f98-connect-flash-0-1-1 [email protected]
800 silly lockFile be0530b2-connect-flash-0-1-1 connect-flash@~0.1.1
801 silly lockFile be0530b2-connect-flash-0-1-1 connect-flash@~0.1.1
802 http 200 https://registry.npmjs.org/helmet
803 silly registry.get cb [ 200,
803 silly registry.get   { date: 'Sat, 03 May 2014 17:02:45 GMT',
803 silly registry.get     server: 'CouchDB/1.5.0 (Erlang OTP/R14B04)',
803 silly registry.get     etag: '"D7ZUK6CGUUK1R6FWNQGSGJX3C"',
803 silly registry.get     'content-type': 'application/json',
803 silly registry.get     'cache-control': 'max-age=1',
803 silly registry.get     'content-length': '22147',
803 silly registry.get     'accept-ranges': 'bytes',
803 silly registry.get     via: '1.1 varnish',
803 silly registry.get     'x-served-by': 'cache-v43-ASH',
803 silly registry.get     'x-cache': 'MISS',
803 silly registry.get     'x-cache-hits': '0',
803 silly registry.get     'x-timer': 'S1399136565.066781044,VS0,VE87',
803 silly registry.get     vary: 'Accept',
803 silly registry.get     'keep-alive': 'timeout=10, max=49',
803 silly registry.get     connection: 'Keep-Alive' } ]
804 silly addNameRange number 2 { name: 'helmet', range: '>=0.2.1-0 <0.3.0-0', hasData: true }
805 silly addNameRange versions [ 'helmet',
805 silly addNameRange   [ '0.0.1',
805 silly addNameRange     '0.0.2',
805 silly addNameRange     '0.0.3',
805 silly addNameRange     '0.0.4',
805 silly addNameRange     '0.0.5',
805 silly addNameRange     '0.0.6',
805 silly addNameRange     '0.0.7',
805 silly addNameRange     '0.0.8',
805 silly addNameRange     '0.0.9',
805 silly addNameRange     '0.0.10',
805 silly addNameRange     '0.0.11',
805 silly addNameRange     '0.1.0',
805 silly addNameRange     '0.1.1',
805 silly addNameRange     '0.1.2',
805 silly addNameRange     '0.1.3',
805 silly addNameRange     '0.2.0',
805 silly addNameRange     '0.2.1' ] ]
806 verbose addNamed [ 'helmet', '0.2.1' ]
807 verbose addNamed [ '0.2.1', '0.2.1' ]
808 silly lockFile e5ed0ac5-helmet-0-2-1 [email protected]
809 verbose lock [email protected] /home/michael/.npm/e5ed0ac5-helmet-0-2-1.lock
810 silly lockFile 6cf8d754-pmjs-org-helmet-helmet-0-2-1-tgz https://registry.npmjs.org/helmet/-/helmet-0.2.1.tgz
811 verbose lock https://registry.npmjs.org/helmet/-/helmet-0.2.1.tgz /home/michael/.npm/6cf8d754-pmjs-org-helmet-helmet-0-2-1-tgz.lock
812 verbose addRemoteTarball [ 'https://registry.npmjs.org/helmet/-/helmet-0.2.1.tgz',
812 verbose addRemoteTarball   '5e5e6d4d7761e199368fc63426cec9bea39b10d3' ]
813 info retry fetch attempt 1 at 12:02:45
814 verbose fetch to= /home/michael/tmp/npm-10527/1399136565256-0.3049016813747585/tmp.tgz
815 http GET https://registry.npmjs.org/helmet/-/helmet-0.2.1.tgz
816 http 200 https://registry.npmjs.org/connect-mongo
817 silly registry.get cb [ 200,
817 silly registry.get   { date: 'Sat, 03 May 2014 17:02:45 GMT',
817 silly registry.get     server: 'CouchDB/1.5.0 (Erlang OTP/R14B04)',
817 silly registry.get     etag: '"EJTN543H35B5KYVXM1IRQ7C7O"',
817 silly registry.get     'content-type': 'application/json',
817 silly registry.get     via: '1.1 varnish',
817 silly registry.get     'cache-control': 'max-age=1',
817 silly registry.get     'content-length': '19194',
817 silly registry.get     'accept-ranges': 'bytes',
817 silly registry.get     'x-served-by': 'cache-v37-ASH, cache-jfk1035-JFK',
817 silly registry.get     'x-cache': 'HIT, MISS',
817 silly registry.get     'x-cache-hits': '1, 0',
817 silly registry.get     'x-timer': 'S1399129848.972141266,VS0,VS5,VE97,VE6716447',
817 silly registry.get     vary: 'Accept',
817 silly registry.get     'keep-alive': 'timeout=10, max=49',
817 silly registry.get     connection: 'Keep-Alive' } ]
818 silly addNameRange number 2 { name: 'connect-mongo',
818 silly addNameRange   range: '>=0.4.0-0 <0.5.0-0',
818 silly addNameRange   hasData: true }
819 silly addNameRange versions [ 'connect-mongo',
819 silly addNameRange   [ '0.1.0',
819 silly addNameRange     '0.1.1',
819 silly addNameRange     '0.1.2',
819 silly addNameRange     '0.1.3',
819 silly addNameRange     '0.1.4',
819 silly addNameRange     '0.1.5',
819 silly addNameRange     '0.1.6',
819 silly addNameRange     '0.1.7',
819 silly addNameRange     '0.1.8',
819 silly addNameRange     '0.1.9',
819 silly addNameRange     '0.2.0',
819 silly addNameRange     '0.3.0',
819 silly addNameRange     '0.3.1',
819 silly addNameRange     '0.3.2',
819 silly addNameRange     '0.3.3',
819 silly addNameRange     '0.4.0',
819 silly addNameRange     '0.4.1' ] ]
820 verbose addNamed [ 'connect-mongo', '0.4.1' ]
821 verbose addNamed [ '0.4.1', '0.4.1' ]
822 silly lockFile 59b2d988-connect-mongo-0-4-1 [email protected]
823 verbose lock [email protected] /home/michael/.npm/59b2d988-connect-mongo-0-4-1.lock
824 silly lockFile 36b6e658-ct-mongo-connect-mongo-0-4-1-tgz https://registry.npmjs.org/connect-mongo/-/connect-mongo-0.4.1.tgz
825 verbose lock https://registry.npmjs.org/connect-mongo/-/connect-mongo-0.4.1.tgz /home/michael/.npm/36b6e658-ct-mongo-connect-mongo-0-4-1-tgz.lock
826 verbose addRemoteTarball [ 'https://registry.npmjs.org/connect-mongo/-/connect-mongo-0.4.1.tgz',
826 verbose addRemoteTarball   '01ed3e71558fb3f0fdc97b784ef974f9909ddd11' ]
827 info retry fetch attempt 1 at 12:02:45
828 verbose fetch to= /home/michael/tmp/npm-10527/1399136565675-0.8875917706172913/tmp.tgz
829 http GET https://registry.npmjs.org/connect-mongo/-/connect-mongo-0.4.1.tgz
830 http 200 https://registry.npmjs.org/consolidate
831 silly registry.get cb [ 200,
831 silly registry.get   { date: 'Sat, 03 May 2014 17:02:45 GMT',
831 silly registry.get     server: 'CouchDB/1.5.0 (Erlang OTP/R16B)',
831 silly registry.get     etag: '"C8OMV2HMKCRM7DT02OEPKAMKD"',
831 silly registry.get     'content-type': 'application/json',
831 silly registry.get     via: '1.1 varnish',
831 silly registry.get     'cache-control': 'max-age=1',
831 silly registry.get     'content-length': '20465',
831 silly registry.get     'accept-ranges': 'bytes',
831 silly registry.get     'x-served-by': 'cache-v36-ASH, cache-jfk1030-JFK',
831 silly registry.get     'x-cache': 'HIT, MISS',
831 silly registry.get     'x-cache-hits': '1, 0',
831 silly registry.get     'x-timer': 'S1399135208.225153685,VS0,VS2,VE98,VE1357202',
831 silly registry.get     vary: 'Accept',
831 silly registry.get     'keep-alive': 'timeout=10, max=48',
831 silly registry.get     connection: 'Keep-Alive' } ]
832 silly addNameRange number 2 { name: 'consolidate',
832 silly addNameRange   range: '>=0.10.0-0 <0.11.0-0',
832 silly addNameRange   hasData: true }
833 silly addNameRange versions [ 'consolidate',
833 silly addNameRange   [ '0.0.1',
833 silly addNameRange     '0.1.0',
833 silly addNameRange     '0.2.0',
833 silly addNameRange     '0.3.0',
833 silly addNameRange     '0.3.1',
833 silly addNameRange     '0.4.0',
833 silly addNameRange     '0.5.0',
833 silly addNameRange     '0.6.0',
833 silly addNameRange     '0.7.0',
833 silly addNameRange     '0.8.0',
833 silly addNameRange     '0.9.0',
833 silly addNameRange     '0.9.1',
833 silly addNameRange     '0.10.0' ] ]
834 verbose addNamed [ 'consolidate', '0.10.0' ]
835 verbose addNamed [ '0.10.0', '0.10.0' ]
836 silly lockFile 4f259ef6-consolidate-0-10-0 [email protected]
837 verbose lock [email protected] /home/michael/.npm/4f259ef6-consolidate-0-10-0.lock
838 verbose read json /home/michael/.npm/consolidate/0.10.0/package/package.json
839 silly lockFile 4f259ef6-consolidate-0-10-0 [email protected]
840 silly lockFile 4f259ef6-consolidate-0-10-0 [email protected]
841 silly lockFile 67e2b75f-consolidate-0-10-0 consolidate@~0.10.0
842 silly lockFile 67e2b75f-consolidate-0-10-0 consolidate@~0.10.0
843 http 200 https://registry.npmjs.org/passport
844 silly registry.get cb [ 200,
844 silly registry.get   { date: 'Sat, 03 May 2014 17:02:45 GMT',
844 silly registry.get     server: 'CouchDB/1.5.0 (Erlang OTP/R14B04)',
844 silly registry.get     etag: '"D45LHBTEL57BMI8R8IN781A71"',
844 silly registry.get     'content-type': 'application/json',
844 silly registry.get     'cache-control': 'max-age=1',
844 silly registry.get     'content-length': '31272',
844 silly registry.get     'accept-ranges': 'bytes',
844 silly registry.get     via: '1.1 varnish',
844 silly registry.get     age: '27',
844 silly registry.get     'x-served-by': 'cache-v43-ASH',
844 silly registry.get     'x-cache': 'HIT',
844 silly registry.get     'x-cache-hits': '1',
844 silly registry.get     'x-timer': 'S1399136565.667225361,VS0,VE88',
844 silly registry.get     vary: 'Accept',
844 silly registry.get     'keep-alive': 'timeout=10, max=48',
844 silly registry.get     connection: 'Keep-Alive' } ]
845 silly addNameRange number 2 { name: 'passport', range: '>=0.2.0-0 <0.3.0-0', hasData: true }
846 silly addNameRange versions [ 'passport',
846 silly addNameRange   [ '0.1.0',
846 silly addNameRange     '0.1.1',
846 silly addNameRange     '0.1.2',
846 silly addNameRange     '0.1.3',
846 silly addNameRange     '0.1.4',
846 silly addNameRange     '0.1.5',
846 silly addNameRange     '0.1.6',
846 silly addNameRange     '0.1.7',
846 silly addNameRange     '0.1.8',
846 silly addNameRange     '0.1.9',
846 silly addNameRange     '0.1.10',
846 silly addNameRange     '0.1.11',
846 silly addNameRange     '0.1.12',
846 silly addNameRange     '0.1.13',
846 silly addNameRange     '0.1.14',
846 silly addNameRange     '0.1.15',
846 silly addNameRange     '0.1.16',
846 silly addNameRange     '0.1.17',
846 silly addNameRange     '0.1.18',
846 silly addNameRange     '0.2.0' ] ]
847 verbose addNamed [ 'passport', '0.2.0' ]
848 verbose addNamed [ '0.2.0', '0.2.0' ]
849 silly lockFile 315c7a7b-passport-0-2-0 [email protected]
850 verbose lock [email protected] /home/michael/.npm/315c7a7b-passport-0-2-0.lock
851 verbose read json /home/michael/.npm/passport/0.2.0/package/package.json
852 silly lockFile 315c7a7b-passport-0-2-0 [email protected]
853 silly lockFile 315c7a7b-passport-0-2-0 [email protected]
854 silly lockFile 3c817d05-passport-0-2-0 passport@~0.2.0
855 silly lockFile 3c817d05-passport-0-2-0 passport@~0.2.0
856 http 200 https://registry.npmjs.org/passport-local
857 silly registry.get cb [ 200,
857 silly registry.get   { date: 'Sat, 03 May 2014 17:02:46 GMT',
857 silly registry.get     server: 'CouchDB/1.5.0 (Erlang OTP/R14B04)',
857 silly registry.get     etag: '"BG5OERIOZ4AZF1UPKPU3DMV08"',
857 silly registry.get     'content-type': 'application/json',
857 silly registry.get     'cache-control': 'max-age=1',
857 silly registry.get     'content-length': '13367',
857 silly registry.get     'accept-ranges': 'bytes',
857 silly registry.get     via: '1.1 varnish',
857 silly registry.get     age: '76',
857 silly registry.get     'x-served-by': 'cache-v43-ASH',
857 silly registry.get     'x-cache': 'HIT',
857 silly registry.get     'x-cache-hits': '1',
857 silly registry.get     'x-timer': 'S1399136566.530155897,VS0,VE83',
857 silly registry.get     vary: 'Accept',
857 silly registry.get     'keep-alive': 'timeout=10, max=47',
857 silly registry.get     connection: 'Keep-Alive' } ]
858 silly addNameRange number 2 { name: 'passport-local',
858 silly addNameRange   range: '>=1.0.0-0 <1.1.0-0',
858 silly addNameRange   hasData: true }
859 silly addNameRange versions [ 'passport-local',
859 silly addNameRange   [ '0.1.0',
859 silly addNameRange     '0.1.1',
859 silly addNameRange     '0.1.2',
859 silly addNameRange     '0.1.3',
859 silly addNameRange     '0.1.4',
859 silly addNameRange     '0.1.5',
859 silly addNameRange     '0.1.6',
859 silly addNameRange     '1.0.0' ] ]
860 verbose addNamed [ 'passport-local', '1.0.0' ]
861 verbose addNamed [ '1.0.0', '1.0.0' ]
862 silly lockFile 8defd22e-passport-local-1-0-0 [email protected]
863 verbose lock [email protected] /home/michael/.npm/8defd22e-passport-local-1-0-0.lock
864 http 200 https://registry.npmjs.org/passport-facebook
865 silly registry.get cb [ 200,
865 silly registry.get   { date: 'Sat, 03 May 2014 17:02:46 GMT',
865 silly registry.get     server: 'CouchDB/1.5.0 (Erlang OTP/R14B04)',
865 silly registry.get     etag: '"EH5RKAS82VQHGVYZV2I71ZERY"',
865 silly registry.get     'content-type': 'application/json',
865 silly registry.get     via: '1.1 varnish',
865 silly registry.get     'cache-control': 'max-age=1',
865 silly registry.get     'content-length': '19469',
865 silly registry.get     'accept-ranges': 'bytes',
865 silly registry.get     'x-served-by': 'cache-v43-ASH, cache-jfk1035-JFK',
865 silly registry.get     'x-cache': 'MISS, MISS',
865 silly registry.get     'x-cache-hits': '0, 0',
865 silly registry.get     'x-timer': 'S1399038843.249965429,VS0,VS3,VE115,VE97723034',
865 silly registry.get     vary: 'Accept',
865 silly registry.get     'keep-alive': 'timeout=10, max=48',
865 silly registry.get     connection: 'Keep-Alive' } ]
866 verbose read json /home/michael/.npm/passport-local/1.0.0/package/package.json
867 silly addNameRange number 2 { name: 'passport-facebook',
867 silly addNameRange   range: '>=1.0.2-0 <1.1.0-0',
867 silly addNameRange   hasData: true }
868 silly addNameRange versions [ 'passport-facebook',
868 silly addNameRange   [ '0.1.0',
868 silly addNameRange     '0.1.1',
868 silly addNameRange     '0.1.2',
868 silly addNameRange     '0.1.3',
868 silly addNameRange     '0.1.4',
868 silly addNameRange     '0.1.5',
868 silly addNameRange     '0.1.6',
868 silly addNameRange     '1.0.0',
868 silly addNameRange     '1.0.1',
868 silly addNameRange     '1.0.2',
868 silly addNameRange     '1.0.3' ] ]
869 verbose addNamed [ 'passport-facebook', '1.0.3' ]
870 verbose addNamed [ '1.0.3', '1.0.3' ]
871 silly lockFile 3e2a96bb-passport-facebook-1-0-3 [email protected]
872 verbose lock [email protected] /home/michael/.npm/3e2a96bb-passport-facebook-1-0-3.lock
873 verbose read json /home/michael/.npm/passport-facebook/1.0.3/package/package.json
874 silly lockFile 8defd22e-passport-local-1-0-0 [email protected]
875 silly lockFile 8defd22e-passport-local-1-0-0 [email protected]
876 silly lockFile 84af7143-passport-local-1-0-0 passport-local@~1.0.0
877 silly lockFile 84af7143-passport-local-1-0-0 passport-local@~1.0.0
878 silly lockFile 3e2a96bb-passport-facebook-1-0-3 [email protected]
879 silly lockFile 3e2a96bb-passport-facebook-1-0-3 [email protected]
880 silly lockFile 15dce32a-passport-facebook-1-0-2 passport-facebook@~1.0.2
881 silly lockFile 15dce32a-passport-facebook-1-0-2 passport-facebook@~1.0.2
882 http 200 https://registry.npmjs.org/swig
883 silly registry.get cb [ 200,
883 silly registry.get   { date: 'Sat, 03 May 2014 17:02:45 GMT',
883 silly registry.get     server: 'CouchDB/1.5.0 (Erlang OTP/R14B04)',
883 silly registry.get     etag: '"EHULSND4CR6IYP2QF1HP3L9F2"',
883 silly registry.get     'content-type': 'application/json',
883 silly registry.get     'cache-control': 'max-age=1',
883 silly registry.get     'content-length': '71001',
883 silly registry.get     'accept-ranges': 'bytes',
883 silly registry.get     via: '1.1 varnish',
883 silly registry.get     age: '67',
883 silly registry.get     'x-served-by': 'cache-v42-ASH',
883 silly registry.get     'x-cache': 'HIT',
883 silly registry.get     'x-cache-hits': '1',
883 silly registry.get     'x-timer': 'S1399136565.664239645,VS0,VE8',
883 silly registry.get     vary: 'Accept',
883 silly registry.get     'keep-alive': 'timeout=10, max=48',
883 silly registry.get     connection: 'Keep-Alive' } ]
884 silly addNameRange number 2 { name: 'swig', range: '>=1.3.2-0 <1.4.0-0', hasData: true }
885 silly addNameRange versions [ 'swig',
885 silly addNameRange   [ '0.1.1',
885 silly addNameRange     '0.1.2',
885 silly addNameRange     '0.1.3',
885 silly addNameRange     '0.1.5',
885 silly addNameRange     '0.1.6',
885 silly addNameRange     '0.1.7',
885 silly addNameRange     '0.1.8',
885 silly addNameRange     '0.1.9',
885 silly addNameRange     '0.2.0',
885 silly addNameRange     '0.2.1',
885 silly addNameRange     '0.2.2',
885 silly addNameRange     '0.2.3',
885 silly addNameRange     '0.3.0',
885 silly addNameRange     '0.4.0',
885 silly addNameRange     '0.5.0',
885 silly addNameRange     '0.6.0',
885 silly addNameRange     '0.6.1',
885 silly addNameRange     '0.7.0',
885 silly addNameRange     '0.8.0',
885 silly addNameRange     '0.9.0',
885 silly addNameRange     '0.9.1',
885 silly addNameRange     '0.9.2',
885 silly addNameRange     '0.9.3',
885 silly addNameRange     '0.9.4',
885 silly addNameRange     '0.10.0',
885 silly addNameRange     '0.11.0',
885 silly addNameRange     '0.11.1',
885 silly addNameRange     '0.11.2',
885 silly addNameRange     '0.12.0',
885 silly addNameRange     '0.12.1',
885 silly addNameRange     '0.13.0',
885 silly addNameRange     '0.13.1',
885 silly addNameRange     '0.13.2',
885 silly addNameRange     '0.13.3',
885 silly addNameRange     '0.13.4',
885 silly addNameRange     '0.13.5',
885 silly addNameRange     '0.14.0',
885 silly addNameRange     '1.0.0-pre1',
885 silly addNameRange     '1.0.0-pre2',
885 silly addNameRange     '1.0.0-pre3',
885 silly addNameRange     '1.0.0-rc1',
885 silly addNameRange     '1.0.0-rc2',
885 silly addNameRange     '1.0.0-rc3',
885 silly addNameRange     '1.0.0',
885 silly addNameRange     '1.1.0',
885 silly addNameRange     '1.2.0',
885 silly addNameRange     '1.2.1',
885 silly addNameRange     '1.2.2',
885 silly addNameRange     '1.3.0',
885 silly addNameRange     '1.3.2' ] ]
886 verbose addNamed [ 'swig', '1.3.2' ]
887 verbose addNamed [ '1.3.2', '1.3.2' ]
888 silly lockFile 0437bdfd-swig-1-3-2 [email protected]
889 verbose lock [email protected] /home/michael/.npm/0437bdfd-swig-1-3-2.lock
890 verbose read json /home/michael/.npm/swig/1.3.2/package/package.json
891 silly lockFile 0437bdfd-swig-1-3-2 [email protected]
892 silly lockFile 0437bdfd-swig-1-3-2 [email protected]
893 silly lockFile 30c2942f-swig-1-3-2 swig@~1.3.2
894 silly lockFile 30c2942f-swig-1-3-2 swig@~1.3.2
895 http 200 https://registry.npmjs.org/passport-linkedin
896 silly registry.get cb [ 200,
896 silly registry.get   { date: 'Sat, 03 May 2014 17:02:47 GMT',
896 silly registry.get     server: 'CouchDB/1.5.0 (Erlang OTP/R16B)',
896 silly registry.get     etag: '"94HT8PL22UZZ5EQW2XI9736RZ"',
896 silly registry.get     'content-type': 'application/json',
896 silly registry.get     'cache-control': 'max-age=1',
896 silly registry.get     'content-length': '8965',
896 silly registry.get     'accept-ranges': 'bytes',
896 silly registry.get     via: '1.1 varnish',
896 silly registry.get     age: '47',
896 silly registry.get     'x-served-by': 'cache-v43-ASH',
896 silly registry.get     'x-cache': 'MISS',
896 silly registry.get     'x-cache-hits': '0',
896 silly registry.get     'x-timer': 'S1399136567.069498301,VS0,VE7',
896 silly registry.get     vary: 'Accept',
896 silly registry.get     'keep-alive': 'timeout=10, max=46',
896 silly registry.get     connection: 'Keep-Alive' } ]
897 http 304 https://registry.npmjs.org/lodash
898 silly registry.get cb [ 304,
898 silly registry.get   { date: 'Sat, 03 May 2014 17:02:47 GMT',
898 silly registry.get     server: 'Apache',
898 silly registry.get     via: '1.1 varnish',
898 silly registry.get     'last-modified': 'Sat, 03 May 2014 17:02:47 GMT',
898 silly registry.get     'cache-control': 'max-age=1',
898 silly registry.get     etag: '"3RKVULGLLXAVQBZ9SE6GKP3UP"',
898 silly registry.get     'x-served-by': 'cache-jfk1035-JFK',
898 silly registry.get     'x-cache': 'HIT',
898 silly registry.get     'x-cache-hits': '1',
898 silly registry.get     'x-timer': 'S1399136567.091603279,VS0,VE7',
898 silly registry.get     vary: 'Accept',
898 silly registry.get     'content-length': '0',
898 silly registry.get     'keep-alive': 'timeout=10, max=47',
898 silly registry.get     connection: 'Keep-Alive' } ]
899 verbose etag lodash from cache
900 silly addNameRange number 2 { name: 'passport-linkedin',
900 silly addNameRange   range: '>=0.1.3-0 <0.2.0-0',
900 silly addNameRange   hasData: true }
901 silly addNameRange versions [ 'passport-linkedin', [ '0.1.0', '0.1.1', '0.1.2', '0.1.3' ] ]
902 verbose addNamed [ 'passport-linkedin', '0.1.3' ]
903 verbose addNamed [ '0.1.3', '0.1.3' ]
904 silly lockFile 4bcadc20-passport-linkedin-0-1-3 [email protected]
905 verbose lock [email protected] /home/michael/.npm/4bcadc20-passport-linkedin-0-1-3.lock
906 verbose read json /home/michael/.npm/passport-linkedin/0.1.3/package/package.json
907 silly addNameRange number 2 { name: 'lodash', range: '>=2.4.1-0 <2.5.0-0', hasData: true }
908 silly addNameRange versions [ 'lodash',
908 silly addNameRange   [ '0.1.0',
908 silly addNameRange     '0.2.0',
908 silly addNameRange     '0.2.1',
908 silly addNameRange     '0.2.2',
908 silly addNameRange     '0.3.0',
908 silly addNameRange     '0.3.1',
908 silly addNameRange     '0.3.2',
908 silly addNameRange     '0.4.0',
908 silly addNameRange     '0.4.1',
908 silly addNameRange     '0.4.2',
908 silly addNameRange     '0.5.0-rc.1',
908 silly addNameRange     '0.5.0',
908 silly addNameRange     '0.5.1',
908 silly addNameRange     '0.5.2',
908 silly addNameRange     '0.6.0',
908 silly addNameRange     '0.6.1',
908 silly addNameRange     '0.7.0',
908 silly addNameRange     '0.8.0',
908 silly addNameRange     '0.8.1',
908 silly addNameRange     '0.8.2',
908 silly addNameRange     '0.9.0',
908 silly addNameRange     '0.9.1',
908 silly addNameRange     '0.9.2',
908 silly addNameRange     '0.10.0',
908 silly addNameRange     '1.0.0-rc.1',
908 silly addNameRange     '1.0.0-rc.2',
908 silly addNameRange     '1.0.0-rc.3',
908 silly addNameRange     '1.0.0',
908 silly addNameRange     '1.0.1',
908 silly addNameRange     '1.1.0',
908 silly addNameRange     '1.1.1',
908 silly addNameRange     '1.2.0',
908 silly addNameRange     '1.2.1',
908 silly addNameRange     '1.3.0',
908 silly addNameRange     '1.3.1',
908 silly addNameRange     '2.0.0',
908 silly addNameRange     '2.1.0',
908 silly addNameRange     '2.2.0',
908 silly addNameRange     '2.2.1',
908 silly addNameRange     '2.3.0',
908 silly addNameRange     '2.4.0',
908 silly addNameRange     '2.4.1' ] ]
909 verbose addNamed [ 'lodash', '2.4.1' ]
910 verbose addNamed [ '2.4.1', '2.4.1' ]
911 silly lockFile 8502be2a-lodash-2-4-1 [email protected]
912 verbose lock [email protected] /home/michael/.npm/8502be2a-lodash-2-4-1.lock
913 verbose read json /home/michael/.npm/lodash/2.4.1/package/package.json
914 silly lockFile 4bcadc20-passport-linkedin-0-1-3 [email protected]
915 silly lockFile 4bcadc20-passport-linkedin-0-1-3 [email protected]
916 silly lockFile 8502be2a-lodash-2-4-1 [email protected]
917 silly lockFile 8502be2a-lodash-2-4-1 [email protected]
918 silly lockFile e0fc7ce3-passport-linkedin-0-1-3 passport-linkedin@~0.1.3
919 silly lockFile e0fc7ce3-passport-linkedin-0-1-3 passport-linkedin@~0.1.3
920 silly lockFile 257f9ab3-lodash-2-4-1 lodash@~2.4.1
921 silly lockFile 257f9ab3-lodash-2-4-1 lodash@~2.4.1
922 http 200 https://registry.npmjs.org/express
923 silly registry.get cb [ 200,
923 silly registry.get   { date: 'Sat, 03 May 2014 17:02:45 GMT',
923 silly registry.get     server: 'CouchDB/1.6.0+build.fauxton-91-g5a2864b (Erlang OTP/R14B04)',
923 silly registry.get     etag: '"81MKYNUZ8A7CHGYJJ686X7WIZ"',
923 silly registry.get     'content-type': 'application/json',
923 silly registry.get     'cache-control': 'max-age=1',
923 silly registry.get     'content-length': '179870',
923 silly registry.get     'accept-ranges': 'bytes',
923 silly registry.get     via: '1.1 varnish',
923 silly registry.get     age: '2',
923 silly registry.get     'x-served-by': 'cache-v44-ASH',
923 silly registry.get     'x-cache': 'HIT',
923 silly registry.get     'x-cache-hits': '1',
923 silly registry.get     'x-timer': 'S1399136565.215546131,VS0,VE30',
923 silly registry.get     vary: 'Accept',
923 silly registry.get     'keep-alive': 'timeout=10, max=49',
923 silly registry.get     connection: 'Keep-Alive' } ]
924 silly addNameRange number 2 { name: 'express', range: '>=4.1.0-0 <4.2.0-0', hasData: true }
925 silly addNameRange versions [ 'express',
925 silly addNameRange   [ '0.14.0',
925 silly addNameRange     '0.14.1',
925 silly addNameRange     '1.0.0',
925 silly addNameRange     '1.0.1',
925 silly addNameRange     '1.0.2',
925 silly addNameRange     '1.0.3',
925 silly addNameRange     '1.0.4',
925 silly addNameRange     '1.0.5',
925 silly addNameRange     '1.0.6',
925 silly addNameRange     '1.0.7',
925 silly addNameRange     '1.0.8',
925 silly addNameRange     '2.0.0',
925 silly addNameRange     '2.1.0',
925 silly addNameRange     '2.1.1',
925 silly addNameRange     '2.2.0',
925 silly addNameRange     '2.2.1',
925 silly addNameRange     '2.2.2',
925 silly addNameRange     '2.3.0',
925 silly addNameRange     '2.3.1',
925 silly addNameRange     '2.3.2',
925 silly addNameRange     '2.3.3',
925 silly addNameRange     '2.3.4',
925 silly addNameRange     '2.3.5',
925 silly addNameRange     '2.3.6',
925 silly addNameRange     '2.3.7',
925 silly addNameRange     '2.3.8',
925 silly addNameRange     '2.3.9',
925 silly addNameRange     '2.3.10',
925 silly addNameRange     '2.3.11',
925 silly addNameRange     '2.3.12',
925 silly addNameRange     '2.4.0',
925 silly addNameRange     '2.4.1',
925 silly addNameRange     '2.4.2',
925 silly addNameRange     '2.4.3',
925 silly addNameRange     '2.4.4',
925 silly addNameRange     '2.4.5',
925 silly addNameRange     '2.4.6',
925 silly addNameRange     '2.4.7',
925 silly addNameRange     '2.5.0',
925 silly addNameRange     '2.5.1',
925 silly addNameRange     '2.5.2',
925 silly addNameRange     '2.5.3',
925 silly addNameRange     '2.5.4',
925 silly addNameRange     '2.5.5',
925 silly addNameRange     '2.5.6',
925 silly addNameRange     '2.5.7',
925 silly addNameRange     '2.5.8',
925 silly addNameRange     '2.5.9',
925 silly addNameRange     '2.5.10',
925 silly addNameRange     '2.5.11',
925 silly addNameRange     '3.0.0',
925 silly addNameRange     '3.0.1',
925 silly addNameRange     '3.0.2',
925 silly addNameRange     '3.0.3',
925 silly addNameRange     '3.0.4',
925 silly addNameRange     '3.0.5',
925 silly addNameRange     '3.0.6',
925 silly addNameRange     '3.1.0',
925 silly addNameRange     '3.1.1',
925 silly addNameRange     '3.1.2',
925 silly addNameRange     '3.2.0',
925 silly addNameRange     '3.2.1',
925 silly addNameRange     '3.2.2',
925 silly addNameRange     '3.2.3',
925 silly addNameRange     '3.2.4',
925 silly addNameRange     '3.2.5',
925 silly addNameRange     '3.2.6',
925 silly addNameRange     '3.3.0',
925 silly addNameRange     '3.3.1',
925 silly addNameRange     '3.3.2',
925 silly addNameRange     '3.3.3',
925 silly addNameRange     '3.3.4',
925 silly addNameRange     '3.3.5',
925 silly addNameRange     '3.3.6',
925 silly addNameRange     '1.0.0-beta',
925 silly addNameRange     '1.0.0-beta2',
925 silly addNameRange     '1.0.0-rc',
925 silly addNameRange     '1.0.0-rc2',
925 silly addNameRange     '1.0.0-rc3',
925 silly addNameRange     '1.0.0-rc4',
925 silly addNameRange     '2.0.0-beta',
925 silly addNameRange     '2.0.0-beta2',
925 silly addNameRange     '2.0.0-beta3',
925 silly addNameRange     '2.0.0-rc',
925 silly addNameRange     '2.0.0-rc2',
925 silly addNameRange     '2.0.0-rc3',
925 silly addNameRange     '3.0.0-alpha1',
925 silly addNameRange     '3.0.0-alpha2',
925 silly addNameRange     '3.0.0-alpha3',
925 silly addNameRange     '3.0.0-alpha4',
925 silly addNameRange     '3.0.0-alpha5',
925 silly addNameRange     '3.0.0-beta1',
925 silly addNameRange     '3.0.0-beta2',
925 silly addNameRange     '3.0.0-beta3',
925 silly addNameRange     '3.0.0-beta4',
925 silly addNameRange     '3.0.0-beta6',
925 silly addNameRange     '3.0.0-beta7',
925 silly addNameRange     '3.0.0-rc1',
925 silly addNameRange     '3.0.0-rc2',
925 silly addNameRange     '3.0.0-rc3',
925 silly addNameRange     '3.0.0-rc4',
925 silly addNameRange     '3.0.0-rc5',
925 silly addNameRange     '3.3.7',
925 silly addNameRange     '3.3.8',
925 silly addNameRange     '3.4.0',
925 silly addNameRange     '3.4.1',
925 silly addNameRange     '3.4.2',
925 silly addNameRange     '3.4.3',
925 silly addNameRange     '3.4.4',
925 silly addNameRange     '3.4.5',
925 silly addNameRange     '3.4.6',
925 silly addNameRange     '3.4.7',
925 silly addNameRange     '3.4.8',
925 silly addNameRange     '4.0.0-rc1',
925 silly addNameRange     '4.0.0-rc2',
925 silly addNameRange     '3.5.0',
925 silly addNameRange     '4.0.0-rc3',
925 silly addNameRange     '4.0.0-rc4',
925 silly addNameRange     '3.5.1',
925 silly addNameRange     '4.0.0',
925 silly addNameRange     '3.5.2',
925 silly addNameRange     '4.1.0',
925 silly addNameRange     '4.1.1' ] ]
926 verbose addNamed [ 'express', '4.1.1' ]
927 verbose addNamed [ '4.1.1', '4.1.1' ]
928 silly lockFile e8de92d7-express-4-1-1 [email protected]
929 verbose lock [email protected] /home/michael/.npm/e8de92d7-express-4-1-1.lock
930 silly lockFile b3ca51fb-js-org-express-express-4-1-1-tgz https://registry.npmjs.org/express/-/express-4.1.1.tgz
931 verbose lock https://registry.npmjs.org/express/-/express-4.1.1.tgz /home/michael/.npm/b3ca51fb-js-org-express-express-4-1-1-tgz.lock
932 verbose addRemoteTarball [ 'https://registry.npmjs.org/express/-/express-4.1.1.tgz',
932 verbose addRemoteTarball   '266f08c3cbc21fc1831e954073dda8cf3cae002f' ]
933 info retry fetch attempt 1 at 12:02:47
934 verbose fetch to= /home/michael/tmp/npm-10527/1399136567238-0.3335357434116304/tmp.tgz
935 http GET https://registry.npmjs.org/express/-/express-4.1.1.tgz
936 http 200 https://registry.npmjs.org/passport-twitter
937 silly registry.get cb [ 200,
937 silly registry.get   { date: 'Sat, 03 May 2014 17:02:47 GMT',
937 silly registry.get     server: 'CouchDB/1.5.0 (Erlang OTP/R14B04)',
937 silly registry.get     etag: '"PPQ8KE1PBP42CQUPJIQ2C120"',
937 silly registry.get     'content-type': 'application/json',
937 silly registry.get     'cache-control': 'max-age=1',
937 silly registry.get     'content-length': '24800',
937 silly registry.get     'accept-ranges': 'bytes',
937 silly registry.get     via: '1.1 varnish',
937 silly registry.get     age: '45',
937 silly registry.get     'x-served-by': 'cache-v42-ASH',
937 silly registry.get     'x-cache': 'HIT',
937 silly registry.get     'x-cache-hits': '1',
937 silly registry.get     'x-timer': 'S1399136567.273556709,VS0,VE95',
937 silly registry.get     vary: 'Accept',
937 silly registry.get     'keep-alive': 'timeout=10, max=47',
937 silly registry.get     connection: 'Keep-Alive' } ]
938 http 304 https://registry.npmjs.org/grunt-cli
939 silly registry.get cb [ 304,
939 silly registry.get   { date: 'Sat, 03 May 2014 17:02:47 GMT',
939 silly registry.get     server: 'Apache',
939 silly registry.get     via: '1.1 varnish',
939 silly registry.get     'last-modified': 'Sat, 03 May 2014 17:02:47 GMT',
939 silly registry.get     'cache-control': 'max-age=1',
939 silly registry.get     etag: '"6PZDUI8VIBFID9COF5TX45XL8"',
939 silly registry.get     'x-served-by': 'cache-jfk1035-JFK',
939 silly registry.get     'x-cache': 'HIT',
939 silly registry.get     'x-cache-hits': '1',
939 silly registry.get     'x-timer': 'S1399136567.390510321,VS0,VE6',
939 silly registry.get     vary: 'Accept',
939 silly registry.get     'content-length': '0',
939 silly registry.get     'keep-alive': 'timeout=10, max=46',
939 silly registry.get     connection: 'Keep-Alive' } ]
940 verbose etag grunt-cli from cache
941 silly addNameRange number 2 { name: 'passport-twitter',
941 silly addNameRange   range: '>=1.0.2-0 <1.1.0-0',
941 silly addNameRange   hasData: true }
942 silly addNameRange versions [ 'passport-twitter',
942 silly addNameRange   [ '0.1.0',
942 silly addNameRange     '0.1.1',
942 silly addNameRange     '0.1.2',
942 silly addNameRange     '0.1.3',
942 silly addNameRange     '0.1.4',
942 silly addNameRange     '0.1.5',
942 silly addNameRange     '1.0.0',
942 silly addNameRange     '1.0.1',
942 silly addNameRange     '1.0.2' ] ]
943 verbose addNamed [ 'passport-twitter', '1.0.2' ]
944 verbose addNamed [ '1.0.2', '1.0.2' ]
945 silly lockFile 50fcdf9c-passport-twitter-1-0-2 [email protected]
946 verbose lock [email protected] /home/michael/.npm/50fcdf9c-passport-twitter-1-0-2.lock
947 silly addNameRange number 2 { name: 'grunt-cli',
947 silly addNameRange   range: '>=0.1.13-0 <0.2.0-0',
947 silly addNameRange   hasData: true }
948 silly addNameRange versions [ 'grunt-cli',
948 silly addNameRange   [ '0.1.0',
948 silly addNameRange     '0.1.1',
948 silly addNameRange     '0.1.2',
948 silly addNameRange     '0.1.3',
948 silly addNameRange     '0.1.4',
948 silly addNameRange     '0.1.5',
948 silly addNameRange     '0.1.6',
948 silly addNameRange     '0.1.7',
948 silly addNameRange     '0.1.8',
948 silly addNameRange     '0.1.9',
948 silly addNameRange     '0.1.10',
948 silly addNameRange     '0.1.11',
948 silly addNameRange     '0.1.12',
948 silly addNameRange     '0.1.13' ] ]
949 verbose addNamed [ 'grunt-cli', '0.1.13' ]
950 verbose addNamed [ '0.1.13', '0.1.13' ]
951 silly lockFile 28997503-grunt-cli-0-1-13 [email protected]
952 verbose lock [email protected] /home/michael/.npm/28997503-grunt-cli-0-1-13.lock
953 verbose read json /home/michael/.npm/passport-twitter/1.0.2/package/package.json
954 verbose read json /home/michael/.npm/grunt-cli/0.1.13/package/package.json
955 silly lockFile 28997503-grunt-cli-0-1-13 [email protected]
956 silly lockFile 28997503-grunt-cli-0-1-13 [email protected]
957 silly lockFile a6c878ac-grunt-cli-0-1-13 grunt-cli@~0.1.13
958 silly lockFile a6c878ac-grunt-cli-0-1-13 grunt-cli@~0.1.13
959 silly lockFile 50fcdf9c-passport-twitter-1-0-2 [email protected]
960 silly lockFile 50fcdf9c-passport-twitter-1-0-2 [email protected]
961 silly lockFile d97c8ec0-passport-twitter-1-0-2 passport-twitter@~1.0.2
962 silly lockFile d97c8ec0-passport-twitter-1-0-2 passport-twitter@~1.0.2
963 http 200 https://registry.npmjs.org/passport-google-oauth
964 silly registry.get cb [ 200,
964 silly registry.get   { date: 'Sat, 03 May 2014 17:02:47 GMT',
964 silly registry.get     server: 'CouchDB/1.5.0 (Erlang OTP/R14B04)',
96
![powma logo](https://cloud.githubusercontent.com/assets/1504790/2870882/709152cc-d2e5-11e3-9bbd-33a6726a7337.png)
4 silly registry.get     etag: '"6GW39JH31ET87IC666PPMRD7N"',
964 silly registry.get     'content-type': 'application/json',
964 silly registry.get     'cache-control': 'max-age=1',
964 silly registry.get     'content-length': '12415',
964 silly registry.get     'accept-ranges': 'bytes',
964 silly registry.get     via: '1.1 varnish',
964 silly registry.get     age: '200',
964 silly registry.get     'x-served-by': 'cache-v43-ASH',
964 silly registry.get     'x-cache': 'HIT',
964 silly registry.get     'x-cache-hits': '1',
964 silly registry.get     'x-timer': 'S1399136567.391171455,VS0,VE86',
964 silly registry.get     vary: 'Accept',
964 silly registry.get     'keep-alive': 'timeout=10, max=45',
964 silly registry.get     connection: 'Keep-Alive' } ]
965 silly addNameRange number 2 { name: 'passport-google-oauth',
965 silly addNameRange   range: '>=0.1.5-0 <0.2.0-0',
965 silly addNameRange   hasData: true }
966 silly addNameRange versions [ 'passport-google-oauth',
966 silly addNameRange   [ '0.1.0', '0.1.1', '0.1.2', '0.1.3', '0.1.4', '0.1.5' ] ]
967 verbose addNamed [ 'passport-google-oauth', '0.1.5' ]
968 verbose addNamed [ '0.1.5', '0.1.5' ]
969 silly lockFile 3fbba456-passport-google-oauth-0-1-5 [email protected]
970 verbose lock [email protected] /home/michael/.npm/3fbba456-passport-google-oauth-0-1-5.lock
971 verbose read json /home/michael/.npm/passport-google-oauth/0.1.5/package/package.json
972 silly lockFile 3fbba456-passport-google-oauth-0-1-5 [email protected]
973 silly lockFile 3fbba456-passport-google-oauth-0-1-5 [email protected]
974 silly lockFile 8b7f1422-passport-google-oauth-0-1-5 passport-google-oauth@~0.1.5
975 silly lockFile 8b7f1422-passport-google-oauth-0-1-5 passport-google-oauth@~0.1.5
976 http 304 https://registry.npmjs.org/glob
977 silly registry.get cb [ 304,
977 silly registry.get   { date: 'Sat, 03 May 2014 17:02:47 GMT',
977 silly registry.get     server: 'Apache',
977 silly registry.get     via: '1.1 varnish',
977 silly registry.get     'last-modified': 'Sat, 03 May 2014 17:02:47 GMT',
977 silly registry.get     'cache-control': 'max-age=1',
977 silly registry.get     etag: '"A55KRAK6OJF6UVQOB4NXZMR66"',
977 silly registry.get     'x-served-by': 'cache-v44-ASH',
977 silly registry.get     'x-cache': 'HIT',
977 silly registry.get     'x-cache-hits': '1',
977 silly registry.get     'x-timer': 'S1399136567.632092714,VS0,VE1',
977 silly registry.get     vary: 'Accept',
977 silly registry.get     'content-length': '0',
977 silly registry.get     'keep-alive': 'timeout=10, max=48',
977 silly registry.get     connection: 'Keep-Alive' } ]
978 verbose etag glob from cache
979 silly addNameRange number 2 { name: 'glob', range: '>=3.2.9-0 <3.3.0-0', hasData: true }
980 silly addNameRange versions [ 'glob',
980 silly addNameRange   [ '1.1.0',
980 silly addNameRange     '2.0.9',
980 silly addNameRange     '2.0.8',
980 silly addNameRange     '2.0.7',
980 silly addNameRange     '2.1.0',
980 silly addNameRange     '3.0.0',
980 silly addNameRange     '3.0.1',
980 silly addNameRange     '3.1.0',
980 silly addNameRange     '3.1.1',
980 silly addNameRange     '3.1.2',
980 silly addNameRange     '3.1.3',
980 silly addNameRange     '3.1.4',
980 silly addNameRange     '3.1.5',
980 silly addNameRange     '3.1.6',
980 silly addNameRange     '3.1.7',
980 silly addNameRange     '3.1.9',
980 silly addNameRange     '3.1.10',
980 silly addNameRange     '3.1.11',
980 silly addNameRange     '3.1.12',
980 silly addNameRange     '3.1.13',
980 silly addNameRange     '3.1.14',
980 silly addNameRange     '3.1.15',
980 silly addNameRange     '3.1.16',
980 silly addNameRange     '3.1.17',
980 silly addNameRange     '3.1.18',
980 silly addNameRange     '3.1.19',
980 silly addNameRange     '3.1.20',
980 silly addNameRange     '3.1.21',
980 silly addNameRange     '3.2.0',
980 silly addNameRange     '3.2.1',
980 silly addNameRange     '3.2.3',
980 silly addNameRange     '3.2.4',
980 silly addNameRange     '3.2.5',
980 silly addNameRange     '3.2.6',
980 silly addNameRange     '3.2.7',
980 silly addNameRange     '3.2.8',
980 silly addNameRange     '3.2.9' ] ]
981 verbose addNamed [ 'glob', '3.2.9' ]
982 verbose addNamed [ '3.2.9', '3.2.9' ]
983 silly lockFile 311bb488-glob-3-2-9 [email protected]
984 verbose lock [email protected] /home/michael/.npm/311bb488-glob-3-2-9.lock
985 verbose read json /home/michael/.npm/glob/3.2.9/package/package.json
986 silly lockFile 311bb488-glob-3-2-9 [email protected]
987 silly lockFile 311bb488-glob-3-2-9 [email protected]
988 silly lockFile 200db29c-glob-3-2-9 glob@~3.2.9
989 silly lockFile 200db29c-glob-3-2-9 glob@~3.2.9
990 http 200 https://registry.npmjs.org/forever
991 silly registry.get cb [ 200,
991 silly registry.get   { date: 'Sat, 03 May 2014 17:02:47 GMT',
991 silly registry.get     server: 'CouchDB/1.6.0+build.fauxton-91-g5a2864b (Erlang OTP/R14B04)',
991 silly registry.get     etag: '"96N5E3EQ0XQOOXTAIJUHV26M8"',
991 silly registry.get     'content-type': 'application/json',
991 silly registry.get     'cache-control': 'max-age=1',
991 silly registry.get     'content-length': '64104',
991 silly registry.get     'accept-ranges': 'bytes',
991 silly registry.get     via: '1.1 varnish',
991 silly registry.get     age: '44',
991 silly registry.get     'x-served-by': 'cache-v42-ASH',
991 silly registry.get     'x-cache': 'HIT',
991 silly registry.get     'x-cache-hits': '1',
991 silly registry.get     'x-timer': 'S1399136567.737083197,VS0,VE95',
991 silly registry.get     vary: 'Accept',
991 silly registry.get     'keep-alive': 'timeout=10, max=46',
991 silly registry.get     connection: 'Keep-Alive' } ]
992 http 200 https://registry.npmjs.org/supertest
993 silly registry.get cb [ 200,
993 silly registry.get   { date: 'Sat, 03 May 2014 17:02:47 GMT',
993 silly registry.get     server: 'CouchDB/1.5.0 (Erlang OTP/R14B04)',
993 silly registry.get     etag: '"E71NKJ0KVMU7V0GKEEWE7A97O"',
993 silly registry.get     'content-type': 'application/json',
993 silly registry.get     via: '1.1 varnish',
993 silly registry.get     'cache-control': 'max-age=1',
993 silly registry.get     'content-length': '28924',
993 silly registry.get     'accept-ranges': 'bytes',
993 silly registry.get     'x-served-by': 'cache-v42-ASH, cache-jfk1035-JFK',
993 silly registry.get     'x-cache': 'MISS, MISS',
993 silly registry.get     'x-cache-hits': '0, 0',
993 silly registry.get     'x-timer': 'S1399136018.434273720,VS0,VS4,VE10,VE549394',
993 silly registry.get     vary: 'Accept',
993 silly registry.get     'keep-alive': 'timeout=10, max=45',
993 silly registry.get     connection: 'Keep-Alive' } ]
994 silly addNameRange number 2 { name: 'supertest',
994 silly addNameRange   range: '>=0.10.0-0 <0.11.0-0',
994 silly addNameRange   hasData: true }
995 silly addNameRange versions [ 'supertest',
995 silly addNameRange   [ '0.0.1',
995 silly addNameRange     '0.1.0',
995 silly addNameRange     '0.1.1',
995 silly addNameRange     '0.1.2',
995 silly addNameRange     '0.2.0',
995 silly addNameRange     '0.3.0',
995 silly addNameRange     '0.3.1',
995 silly addNameRange     '0.4.0',
995 silly addNameRange     '0.4.1',
995 silly addNameRange     '0.4.2',
995 silly addNameRange     '0.5.0',
995 silly addNameRange     '0.5.1',
995 silly addNameRange     '0.6.0',
995 silly addNameRange     '0.6.1',
995 silly addNameRange     '0.7.0',
995 silly addNameRange     '0.7.1',
995 silly addNameRange     '0.8.0',
995 silly addNameRange     '0.8.1',
995 silly addNameRange     '0.8.2',
995 silly addNameRange     '0.8.3',
995 silly addNameRange     '0.9.0',
995 silly addNameRange     '0.9.1',
995 silly addNameRange     '0.9.2',
995 silly addNameRange     '0.10.0',
995 silly addNameRange     '0.11.0',
995 silly addNameRange     '0.12.0' ] ]
996 verbose addNamed [ 'supertest', '0.10.0' ]
997 verbose addNamed [ '0.10.0', '0.10.0' ]
998 silly lockFile 49cc2929-supertest-0-10-0 [email protected]
999 verbose lock [email protected] /home/michael/.npm/49cc2929-supertest-0-10-0.lock
1000 silly lockFile 7230367c-forever-0-11-00 forever@~0.11.00
1001 silly lockFile 7230367c-forever-0-11-00 forever@~0.11.00
1002 verbose read json /home/michael/.npm/supertest/0.10.0/package/package.json
1003 error Error: No compatible version found: forever@'~0.11.00'
1003 error Valid install targets:
1003 error ["0.6.0","0.6.1","0.6.2","0.6.3","0.6.4","0.6.5","0.6.6","0.6.7","0.6.8","0.6.9","0.7.0","0.7.1","0.7.2","0.7.3","0.7.4","0.7.5","0.8.0","0.8.1","0.8.2","0.8.3","0.8.4","0.8.5","0.9.0","0.9.1","0.9.2","0.10.0","0.10.5","0.10.6","0.10.7","0.10.8","0.10.9","0.10.10","0.10.11","0.11.0","0.11.1"]
1003 error     at installTargetsError (/usr/share/npm/lib/cache.js:685:10)
1003 error     at /usr/share/npm/lib/cache.js:607:10
1003 error     at saved (/usr/share/npm/node_modules/npm-registry-client/lib/get.js:138:7)
1003 error     at /usr/lib/nodejs/graceful-fs/polyfills.js:133:7
1003 error     at Object.oncomplete (fs.js:107:15)
1004 error If you need help, you may report this log at:
1004 error     <http://bugs.debian.org/npm>
1004 error or use
1004 error     reportbug --attach /home/michael/scm/writermustwrite.com/npm-debug.log npm
1005 error System Linux 3.11.0-12-generic
1006 error command "/usr/bin/nodejs" "/usr/bin/npm" "install"
1007 error cwd /home/michael/scm/writermustwrite.com
1008 error node -v v0.10.15
1009 error npm -v 1.2.18
1010 verbose exit [ 1, true ]

What's most recent version?

Hi, what's the most recent version?

The webpage meanjs.org links to master which is 0.2.3 in the config file.
There is a 3.0 branch, and a 3.1 branch in git?

What's the best to use for a brand new project?

Thanks!

Adding lodash or underscore to Angular

I'm at a loss as to how to do this.

I've been trying to add either underscore or lodash to my angular project and it's just not happening. I'm not even sure the best way to do it and I'm sure it's partly because i'm still not familiar with angular. I've been researching it for a couple of days and seeing various ways of doing. But, as I'm sure you're aware, there's about a dozen ways to do things in angular it seems. ;)

Anyway, I've tried both of these:

https://github.com/cabrel/angular-lodash
https://github.com/floydsoft/angular-underscore

For example, with lodash I did this:

<script type="text/javascript" src="/lib/angular/angular.js"></script>
<script type="text/javascript" src="/js/lodash.js"></script>
<script type="text/javascript" src="/js/angular-lodash.js"></script>

When I added angular-lodash to my controller like this:

angular.module('mean.users').controller('UsersPropertiesController', ['$scope', '$filter', '$stateParams', '$location', 'Authentication', 'UserProperties','PropertiesByUser','Properties','angular-lodash',
function($scope, $filter, $stateParams, $location, Authentication, UserProperties, PropertiesByUser)

I get this error:

Error: [$injector:unpr] Unknown provider: angular-lodashProvider <- angular-lodash

I just wanted to be able to use either lodash or underscore in my project, but I just can't seem to get it to happen. Any ideas?

bower_components in .gitignore

Is there a reason bower_components isn't in the .gitignore file? It seems like it doesn't really need to be in the git repo.

Can access to articles without being logged

Shouldn't be better if the $stateProvider checked if the user is logged in before allowing someone to access to list articles link. As it is now anyone can view the articles.

How to share state and binding between modules??

OK, Im a newb at angular and mean.js so bear with me... Im having trouble figuring out how to share/access state from across modules and have their corresponding controllers and views update.

Lets say i am trying to store an "Active" article. On the list view you click a btn to make that article active. That active article is shared throughout the app. Updating text in the navbar, and being able to be accessed by each module.

Right now I am unable to make that happen. Ive tried adding a service in core to hold the current article and update when you select an article. Also binding the header to the same service. But it isnt updated. I am assuming I need to so some sort of watch or manual digest but cant seem to get it working.

What's the preferred way to store and share state using the mean.js architecture? Thanks for your help.

Assests with relative references will no longer be found after minifying CSS and Javascript

In the 3.0 branch, tasks have been added to minify the CSS and Javascript files. While increasing performance, this has the negative side effect that any relative references to files, from the CSS or javascript files, will now be broken.

Currently the most noticeable issue is the glyphicons no longer display for the "edit" and "delete" actions on an article.

I have created a pull request which resolves this same issue (for the glyphicons at least) on a different project. Let me know if you would like me to make the same pull request for this project.

Here is the original pull request:
https://github.com/linnovate/mean/pull/412/files

Alternatively, implementing full CDN support would solve the issue for the glyphicons, and other assets which can be served off a CDN. It still won't solve the problem for CSS and JS contained in meanjs modules though. You will need to come up with a more dynamic solution to that problem (or make everyone use fully qualified references).

Creating a module with the same name of the app breaks everything

Hi, sorry for not being able to point out the exact cause, but it's really easy to reproduce.

$ mkdir docs
$ cd docs
$ yo meanjs
$    ... name: Docs

tested it it works fine, then...

$ yo meanjs:crud-module docs

And it breaks. With the following error:

Uncaught Error: [$injector:modulerr] Failed to instantiate module docs due to:
Error: [$injector:modulerr] Failed to instantiate module users due to:
Error: [$injector:unpr] Unknown provider: $stateProvider
http://errors.angularjs.org/1.2.16/$injec...<omitted>...1) angular.js:78
(anonymous function) angular.js:78
(anonymous function) angular.js:3809
forEach angular.js:323
loadModules angular.js:3775
createInjector angular.js:3715
doBootstrap angular.js:1379
bootstrap angular.js:1394
(anonymous function) application.js:19
trigger angular.js:2509
(anonymous function) angular.js:2780
forEach angular.js:330
eventHandler angular.js:2779

Hope it helps :)

Livereload/Grunt not working properly

Hi, I'm using the Yeoman generator and it seems livereload/grunt fails and just recompiles the client side modified files (the angular modules). If I modify the files in app/views/** it doesn't work and I have to restart the grunt server in order to see the changes...

Is this the normal behaviour?

Best practice to be updated?

Maybe for some it is a trivial question but not for me so far.

I like your code style and application setup, as i can see meanjs is being updated regularly.

So could you please tell me, whats the best way to keep my project based on meanjs updated? I can mention a few - but the question is, how would you do it?

Error: Failed to lookup view "error" in views directory

When doing a:
article.save(function(err) {
if (err) {
res.render('error', {
status: 500
});
} else {
res.jsonp(article);
}
});

I'm getting the following:
Error: Failed to lookup view "error" in views directory "D:\MEAN\meanjs2/app/views"
at Function.app.render (D:\MEAN\meanjs2\node_modules\express\lib\application.js:493:17)
at ServerResponse.res.render (D:\MEAN\meanjs2\node_modules\express\lib\response.js:798:7)

enhancement: i18n support

I currently have the need to localize a lot of core to display authentication information (in German).

To do that I added angular-translate and a local core.client.translation.js with some basics (these files should go into json files one day). I'll have to change all templates (especially the header to now use the translate directive a la {{ 'SIGNOUT' | translate }}).

Any ideas on how to incorporate i18n on the server side so we could re-use translations? I'd be willing to provide a fork with the changed the templates, German translations etc. I'd wait for 0.3 to ship though, and then fork the new development branch.

Getting error on bootstrapping the app.

When starting the application using grunt command, I am getting following error.

/Users/xyz/Documents/developments/Project/pqr/node_modules/connect-mongo/lib/connect-mongo.js:30
  var Store = connect.session.Store;
                             ^
TypeError: Cannot read property 'Store' of undefined
    at module.exports (/Users/xyz/Documents/developments/Project/pqr/node_modules/connect-mongo/lib/connect-mongo.js:30:30)
    at Object.<anonymous> (/Users/xyz/Documents/developments/Project/pqr/config/express.js:8:39)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/Users/xyz/Documents/developments/Project/pqr/server.js:22:11)
    at Module._compile (module.js:456:26)
[nodemon] app crashed - waiting for file changes before starting...

[Question] Quick method for not including sign in?

I'm really just getting started with MEANjs. I've been using Angular on the front-end for a few months but now I'm getting into the backend. Fun to learn but it's a steep curve. I do most of my work on an intranet, so sign in is not really needed, yet. Is there an easy way to not include these modules? Thanks.

Directory descriptions

Hi, alot of this is new to me. I'm looking through the folders in MEAN and had some questions. This might make a nice blog post if you (or I) write it up:

When I look at the directories, I'm not sure what's what?

Directory Purpose
app/ Your app's REST server files - See Yoeman generator
app/views/ your single page app's index.html templates
config/*.js MEAN core config
config/env/ Your app's config files
public/dist/ CSS and JS used in production mode. Made by Grunt. See gruntfile.js:58, config/config.js, config/env/all.js (list of files to uglify/minify)
public/lib/ bower downloads. Do not get uglified/minified into dist.
public/modules/ Your app's client views - See Yoeman generator

Is this documented somewhere?

How to build files for deployment

Hello, I am interested in using this boilerplate for a new project, however I can't see how to build the client-side app for deployment (concatenate and minify all files into a single script for deployment).

Is this possible, and if not is it in the roadmap? I like your vertical module concept but without support for client-side compilation I will probably end up using something like angular-fullstack.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.