Shane Kilkelly 9 лет назад
Родитель
Сommit
e4e8520f27

+ 1 - 1
services/web/.nvmrc

@@ -1 +1 @@
-0.10.22
+6.9.5

+ 2 - 2
services/web/app/coffee/Features/Compile/CompileController.coffee

@@ -85,10 +85,10 @@ module.exports = CompileController =
 			res.contentType("application/pdf")
 			if !!req.query.popupDownload
 				logger.log project_id: project_id, "download pdf as popup download"
-				res.header('Content-Disposition', "attachment; filename=#{project.getSafeProjectName()}.pdf")
+				res.setContentDisposition('attachment', {filename: "#{project.getSafeProjectName()}.pdf"})
 			else
 				logger.log project_id: project_id, "download pdf to embed in browser"
-				res.header('Content-Disposition', "filename=#{project.getSafeProjectName()}.pdf")
+				res.setContentDisposition('', {filename: "#{project.getSafeProjectName()}.pdf"})
 
 			rateLimit (err, canContinue)->
 				if err?

+ 6 - 6
services/web/app/coffee/Features/Downloads/ProjectDownloadsController.coffee

@@ -15,9 +15,9 @@ module.exports = ProjectDownloadsController =
 				return next(error) if error?
 				ProjectZipStreamManager.createZipStreamForProject project_id, (error, stream) ->
 					return next(error) if error?
-					res.header(
-						"Content-Disposition",
-						"attachment; filename=#{encodeURIComponent(project.name)}.zip"
+					res.setContentDisposition(
+						'attachment',
+						{filename: "#{project.name}.zip"}
 					)
 					res.contentType('application/zip')
 					stream.pipe(res)
@@ -30,9 +30,9 @@ module.exports = ProjectDownloadsController =
 			return next(error) if error?
 			ProjectZipStreamManager.createZipStreamForMultipleProjects project_ids, (error, stream) ->
 				return next(error) if error?
-				res.header(
-					"Content-Disposition",
-					"attachment; filename=ShareLaTeX Projects (#{project_ids.length} items).zip"
+				res.setContentDisposition(
+					'attachment',
+					{filename: "ShareLaTeX Projects (#{project_ids.length} items).zip"}
 				)
 				res.contentType('application/zip')
 				stream.pipe(res)

+ 1 - 1
services/web/app/coffee/Features/FileStore/FileStoreController.coffee

@@ -35,5 +35,5 @@ module.exports =
 				if (is_mobile_safari(user_agent) and is_html(file))
 					logger.log filename: file.name, user_agent: user_agent, "sending html file to mobile-safari as plain text"
 					res.setHeader('Content-Type', 'text/plain')
-				res.setHeader("Content-Disposition", "attachment; filename=#{file.name}")
+				res.setContentDisposition('attachment', {filename: file.name})
 				stream.pipe res

+ 13 - 0
services/web/app/coffee/infrastructure/ExpressLocals.coffee

@@ -71,6 +71,19 @@ module.exports = (app, webRouter, apiRouter)->
 		res.locals.session = req.session
 		next()
 
+	addSetContentDisposition = (req, res, next) ->
+		res.setContentDisposition = (type, opts) ->
+			directives = for k, v of opts
+				"#{k}=\"#{encodeURIComponent(v)}\""
+			contentDispositionValue = "#{type}; #{directives.join('; ')}"
+			res.setHeader(
+				'Content-Disposition',
+				contentDispositionValue
+			)
+		next()
+	webRouter.use addSetContentDisposition
+	apiRouter.use addSetContentDisposition
+
 	webRouter.use (req, res, next)->
 
 		cdnBlocked = req.query.nocdn == 'true' or req.session.cdnBlocked

+ 1 - 1
services/web/app/coffee/infrastructure/mongojs.coffee

@@ -1,6 +1,6 @@
 Settings = require "settings-sharelatex"
 mongojs = require "mongojs"
-db = mongojs.connect(Settings.mongo.url, ["projects", "users"])
+db = mongojs(Settings.mongo.url, ["projects", "users"])
 module.exports =
 	db: db
 	ObjectId: mongojs.ObjectId

+ 3203 - 3338
services/web/npm-shrinkwrap.json

@@ -2,3877 +2,3742 @@
   "name": "web-sharelatex",
   "version": "0.1.4",
   "dependencies": {
+    "abbrev": {
+      "version": "1.1.0",
+      "from": "abbrev@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz"
+    },
+    "accepts": {
+      "version": "1.2.13",
+      "from": "accepts@>=1.2.9 <1.3.0",
+      "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz"
+    },
+    "acorn": {
+      "version": "3.3.0",
+      "from": "acorn@>=3.1.0 <4.0.0",
+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz"
+    },
+    "acorn-globals": {
+      "version": "3.1.0",
+      "from": "acorn-globals@>=3.0.0 <4.0.0",
+      "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz",
+      "dependencies": {
+        "acorn": {
+          "version": "4.0.11",
+          "from": "acorn@>=4.0.4 <5.0.0",
+          "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.11.tgz"
+        }
+      }
+    },
+    "addressparser": {
+      "version": "0.2.1",
+      "from": "addressparser@>=0.2.0 <0.3.0",
+      "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-0.2.1.tgz"
+    },
+    "ajv": {
+      "version": "4.11.5",
+      "from": "ajv@>=4.9.1 <5.0.0",
+      "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.5.tgz"
+    },
+    "align-text": {
+      "version": "0.1.4",
+      "from": "align-text@>=0.1.3 <0.2.0",
+      "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz"
+    },
+    "amdefine": {
+      "version": "1.0.1",
+      "from": "amdefine@>=0.0.4",
+      "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz"
+    },
+    "ansi-regex": {
+      "version": "2.1.1",
+      "from": "ansi-regex@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
+    },
+    "aproba": {
+      "version": "1.1.1",
+      "from": "aproba@>=1.0.3 <2.0.0",
+      "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz"
+    },
     "archiver": {
       "version": "0.9.0",
       "from": "archiver@0.9.0",
+      "resolved": "https://registry.npmjs.org/archiver/-/archiver-0.9.0.tgz",
+      "dependencies": {
+        "lodash": {
+          "version": "2.4.2",
+          "from": "lodash@>=2.4.1 <2.5.0",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz"
+        }
+      }
+    },
+    "are-we-there-yet": {
+      "version": "1.1.2",
+      "from": "are-we-there-yet@>=1.1.2 <1.2.0",
+      "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz",
       "dependencies": {
-        "buffer-crc32": {
-          "version": "0.2.13",
-          "from": "buffer-crc32@~0.2.1"
+        "isarray": {
+          "version": "1.0.0",
+          "from": "isarray@>=1.0.0 <1.1.0",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
         },
         "readable-stream": {
-          "version": "1.0.34",
-          "from": "readable-stream@~1.0.24",
-          "dependencies": {
-            "core-util-is": {
-              "version": "1.0.2",
-              "from": "core-util-is@~1.0.0"
-            },
-            "isarray": {
-              "version": "0.0.1",
-              "from": "isarray@0.0.1"
-            },
-            "string_decoder": {
-              "version": "0.10.31",
-              "from": "string_decoder@~0.10.x"
-            },
-            "inherits": {
-              "version": "2.0.3",
-              "from": "inherits@~2.0.1"
-            }
-          }
-        },
-        "tar-stream": {
-          "version": "0.3.3",
-          "from": "tar-stream@~0.3.0",
-          "dependencies": {
-            "bl": {
-              "version": "0.6.0",
-              "from": "bl@~0.6.0"
-            },
-            "end-of-stream": {
-              "version": "0.1.5",
-              "from": "end-of-stream@~0.1.3",
-              "dependencies": {
-                "once": {
-                  "version": "1.3.3",
-                  "from": "once@~1.3.0",
-                  "dependencies": {
-                    "wrappy": {
-                      "version": "1.0.2",
-                      "from": "wrappy@1"
-                    }
-                  }
-                }
-              }
-            }
-          }
-        },
-        "zip-stream": {
-          "version": "0.3.7",
-          "from": "zip-stream@~0.3.0",
-          "dependencies": {
-            "crc32-stream": {
-              "version": "0.2.0",
-              "from": "crc32-stream@~0.2.0"
-            },
-            "debug": {
-              "version": "1.0.4",
-              "from": "debug@~1.0.2",
-              "dependencies": {
-                "ms": {
-                  "version": "0.6.2",
-                  "from": "ms@0.6.2"
-                }
-              }
-            },
-            "deflate-crc32-stream": {
-              "version": "0.1.2",
-              "from": "deflate-crc32-stream@~0.1.0"
-            }
-          }
-        },
-        "lazystream": {
-          "version": "0.1.0",
-          "from": "lazystream@~0.1.0"
-        },
-        "file-utils": {
-          "version": "0.1.5",
-          "from": "file-utils@~0.1.5",
-          "dependencies": {
-            "lodash": {
-              "version": "2.1.0",
-              "from": "lodash@~2.1.0"
-            },
-            "iconv-lite": {
-              "version": "0.2.11",
-              "from": "iconv-lite@~0.2.11"
-            },
-            "glob": {
-              "version": "3.2.11",
-              "from": "glob@~3.2.6",
-              "dependencies": {
-                "inherits": {
-                  "version": "2.0.3",
-                  "from": "inherits@2"
-                },
-                "minimatch": {
-                  "version": "0.3.0",
-                  "from": "minimatch@0.3",
-                  "dependencies": {
-                    "lru-cache": {
-                      "version": "2.7.3",
-                      "from": "lru-cache@2"
-                    },
-                    "sigmund": {
-                      "version": "1.0.1",
-                      "from": "sigmund@~1.0.0"
-                    }
-                  }
-                }
-              }
-            },
-            "minimatch": {
-              "version": "0.2.14",
-              "from": "minimatch@~0.2.9",
-              "dependencies": {
-                "lru-cache": {
-                  "version": "2.7.3",
-                  "from": "lru-cache@2"
-                },
-                "sigmund": {
-                  "version": "1.0.1",
-                  "from": "sigmund@~1.0.0"
-                }
-              }
-            },
-            "findup-sync": {
-              "version": "0.1.3",
-              "from": "findup-sync@~0.1.2",
-              "dependencies": {
-                "lodash": {
-                  "version": "2.4.2",
-                  "from": "lodash@~2.4.1"
-                }
-              }
-            },
-            "isbinaryfile": {
-              "version": "0.1.9",
-              "from": "isbinaryfile@~0.1.9"
-            }
-          }
+          "version": "2.2.6",
+          "from": "readable-stream@>=2.0.0 <3.0.0||>=1.1.13 <2.0.0",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.6.tgz"
+        }
+      }
+    },
+    "argparse": {
+      "version": "0.1.16",
+      "from": "argparse@>=0.1.11 <0.2.0",
+      "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz",
+      "dependencies": {
+        "underscore": {
+          "version": "1.7.0",
+          "from": "underscore@>=1.7.0 <1.8.0",
+          "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz"
         },
-        "lodash": {
-          "version": "2.4.2",
-          "from": "lodash@~2.4.0"
+        "underscore.string": {
+          "version": "2.4.0",
+          "from": "underscore.string@>=2.4.0 <2.5.0",
+          "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz"
         }
       }
     },
+    "array-flatten": {
+      "version": "1.1.0",
+      "from": "array-flatten@1.1.0",
+      "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.0.tgz"
+    },
+    "asap": {
+      "version": "2.0.5",
+      "from": "asap@>=2.0.3 <2.1.0",
+      "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.5.tgz"
+    },
+    "asn1": {
+      "version": "0.2.3",
+      "from": "asn1@>=0.2.3 <0.3.0",
+      "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz"
+    },
+    "assert-plus": {
+      "version": "0.2.0",
+      "from": "assert-plus@>=0.2.0 <0.3.0",
+      "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz"
+    },
+    "assertion-error": {
+      "version": "1.0.2",
+      "from": "assertion-error@>=1.0.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.2.tgz"
+    },
     "async": {
       "version": "0.6.2",
-      "from": "async@0.6.2"
+      "from": "async@0.6.2",
+      "resolved": "https://registry.npmjs.org/async/-/async-0.6.2.tgz"
+    },
+    "asynckit": {
+      "version": "0.4.0",
+      "from": "asynckit@>=0.4.0 <0.5.0",
+      "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
+    },
+    "aws-sdk": {
+      "version": "2.38.0",
+      "from": "aws-sdk@>=2.6.12 <3.0.0",
+      "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.38.0.tgz",
+      "dependencies": {
+        "xml2js": {
+          "version": "0.4.17",
+          "from": "xml2js@0.4.17",
+          "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz"
+        }
+      }
+    },
+    "aws-sign2": {
+      "version": "0.6.0",
+      "from": "aws-sign2@>=0.6.0 <0.7.0",
+      "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz"
+    },
+    "aws4": {
+      "version": "1.6.0",
+      "from": "aws4@>=1.2.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz"
+    },
+    "axo": {
+      "version": "0.0.2",
+      "from": "axo@>=0.0.0 <0.1.0",
+      "resolved": "https://registry.npmjs.org/axo/-/axo-0.0.2.tgz"
+    },
+    "babel-runtime": {
+      "version": "6.3.19",
+      "from": "babel-runtime@>=6.3.19 <6.4.0",
+      "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.3.19.tgz"
+    },
+    "backoff": {
+      "version": "2.5.0",
+      "from": "backoff@>=2.5.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz"
+    },
+    "balanced-match": {
+      "version": "0.4.2",
+      "from": "balanced-match@>=0.4.1 <0.5.0",
+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz"
+    },
+    "base64-js": {
+      "version": "1.2.0",
+      "from": "base64-js@>=1.0.2 <2.0.0",
+      "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.0.tgz"
     },
     "base64-stream": {
       "version": "0.1.3",
-      "from": "base64-stream@^0.1.2",
+      "from": "base64-stream@>=0.1.2 <0.2.0",
+      "resolved": "https://registry.npmjs.org/base64-stream/-/base64-stream-0.1.3.tgz",
       "dependencies": {
+        "isarray": {
+          "version": "1.0.0",
+          "from": "isarray@>=1.0.0 <1.1.0",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+        },
         "readable-stream": {
           "version": "2.2.6",
-          "from": "readable-stream@^2.0.2",
-          "dependencies": {
-            "buffer-shims": {
-              "version": "1.0.0",
-              "from": "buffer-shims@^1.0.0"
-            },
-            "core-util-is": {
-              "version": "1.0.2",
-              "from": "core-util-is@~1.0.0"
-            },
-            "isarray": {
-              "version": "1.0.0",
-              "from": "isarray@~1.0.0"
-            },
-            "inherits": {
-              "version": "2.0.3",
-              "from": "inherits@~2.0.1"
-            },
-            "process-nextick-args": {
-              "version": "1.0.7",
-              "from": "process-nextick-args@~1.0.6"
-            },
-            "string_decoder": {
-              "version": "0.10.31",
-              "from": "string_decoder@~0.10.x"
-            },
-            "util-deprecate": {
-              "version": "1.0.2",
-              "from": "util-deprecate@~1.0.1"
-            }
-          }
+          "from": "readable-stream@>=2.0.2 <3.0.0",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.6.tgz"
         }
       }
     },
     "basic-auth-connect": {
       "version": "1.0.0",
-      "from": "basic-auth-connect@^1.0.0"
+      "from": "basic-auth-connect@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz"
     },
     "bcrypt": {
-      "version": "0.8.3",
-      "from": "bcrypt@0.8.3",
-      "dependencies": {
-        "bindings": {
-          "version": "1.2.1",
-          "from": "bindings@1.2.1"
-        },
-        "nan": {
-          "version": "1.8.4",
-          "from": "nan@1.8.4"
-        }
-      }
+      "version": "1.0.1",
+      "from": "bcrypt@1.0.1",
+      "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-1.0.1.tgz"
+    },
+    "bcrypt-pbkdf": {
+      "version": "1.0.1",
+      "from": "bcrypt-pbkdf@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
+      "optional": true
+    },
+    "bcryptjs": {
+      "version": "2.3.0",
+      "from": "bcryptjs@2.3.0",
+      "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.3.0.tgz"
+    },
+    "bindings": {
+      "version": "1.2.1",
+      "from": "bindings@1.2.1",
+      "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz"
+    },
+    "bl": {
+      "version": "0.6.0",
+      "from": "bl@>=0.6.0 <0.7.0",
+      "resolved": "https://registry.npmjs.org/bl/-/bl-0.6.0.tgz"
+    },
+    "block-stream": {
+      "version": "0.0.9",
+      "from": "block-stream@*",
+      "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz"
+    },
+    "bluebird": {
+      "version": "3.5.0",
+      "from": "bluebird@>=3.3.4 <4.0.0",
+      "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz"
     },
     "body-parser": {
       "version": "1.17.1",
-      "from": "body-parser@^1.13.1",
+      "from": "body-parser@>=1.13.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.17.1.tgz",
       "dependencies": {
-        "bytes": {
-          "version": "2.4.0",
-          "from": "bytes@2.4.0"
-        },
-        "content-type": {
-          "version": "1.0.2",
-          "from": "content-type@~1.0.1"
-        },
         "debug": {
           "version": "2.6.1",
           "from": "debug@2.6.1",
-          "dependencies": {
-            "ms": {
-              "version": "0.7.2",
-              "from": "ms@0.7.2"
-            }
-          }
-        },
-        "depd": {
-          "version": "1.1.0",
-          "from": "depd@~1.1.0"
-        },
-        "http-errors": {
-          "version": "1.6.1",
-          "from": "http-errors@~1.6.1",
-          "dependencies": {
-            "inherits": {
-              "version": "2.0.3",
-              "from": "inherits@2.0.3"
-            },
-            "setprototypeof": {
-              "version": "1.0.3",
-              "from": "setprototypeof@1.0.3"
-            },
-            "statuses": {
-              "version": "1.3.1",
-              "from": "statuses@>= 1.3.1 < 2"
-            }
-          }
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.1.tgz"
         },
         "iconv-lite": {
           "version": "0.4.15",
-          "from": "iconv-lite@0.4.15"
-        },
-        "on-finished": {
-          "version": "2.3.0",
-          "from": "on-finished@~2.3.0",
-          "dependencies": {
-            "ee-first": {
-              "version": "1.1.1",
-              "from": "ee-first@1.1.1"
-            }
-          }
-        },
-        "qs": {
-          "version": "6.4.0",
-          "from": "qs@~6.4.0"
+          "from": "iconv-lite@0.4.15",
+          "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz"
         },
-        "raw-body": {
-          "version": "2.2.0",
-          "from": "raw-body@~2.2.0",
-          "dependencies": {
-            "unpipe": {
-              "version": "1.0.0",
-              "from": "unpipe@1.0.0"
-            }
-          }
-        },
-        "type-is": {
-          "version": "1.6.14",
-          "from": "type-is@~1.6.3",
-          "dependencies": {
-            "media-typer": {
-              "version": "0.3.0",
-              "from": "media-typer@0.3.0"
-            },
-            "mime-types": {
-              "version": "2.1.15",
-              "from": "mime-types@~2.1.13",
-              "dependencies": {
-                "mime-db": {
-                  "version": "1.27.0",
-                  "from": "mime-db@~1.27.0"
-                }
-              }
-            }
-          }
+        "ms": {
+          "version": "0.7.2",
+          "from": "ms@0.7.2",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz"
+        }
+      }
+    },
+    "boom": {
+      "version": "2.10.1",
+      "from": "boom@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz"
+    },
+    "brace-expansion": {
+      "version": "1.1.6",
+      "from": "brace-expansion@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz"
+    },
+    "bson": {
+      "version": "1.0.4",
+      "from": "bson@>=1.0.4 <1.1.0",
+      "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.4.tgz"
+    },
+    "bson-ext": {
+      "version": "0.1.13",
+      "from": "bson-ext@>=0.1.0 <0.2.0",
+      "resolved": "https://registry.npmjs.org/bson-ext/-/bson-ext-0.1.13.tgz",
+      "optional": true,
+      "dependencies": {
+        "nan": {
+          "version": "2.0.9",
+          "from": "nan@>=2.0.9 <2.1.0",
+          "resolved": "https://registry.npmjs.org/nan/-/nan-2.0.9.tgz",
+          "optional": true
+        }
+      }
+    },
+    "buffer": {
+      "version": "4.9.1",
+      "from": "buffer@4.9.1",
+      "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
+      "dependencies": {
+        "isarray": {
+          "version": "1.0.0",
+          "from": "isarray@>=1.0.0 <2.0.0",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
         }
       }
     },
+    "buffer-crc32": {
+      "version": "0.2.13",
+      "from": "buffer-crc32@>=0.2.1 <0.3.0",
+      "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz"
+    },
+    "buffer-shims": {
+      "version": "1.0.0",
+      "from": "buffer-shims@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz"
+    },
     "bufferedstream": {
       "version": "1.6.0",
-      "from": "bufferedstream@1.6.0"
+      "from": "bufferedstream@1.6.0",
+      "resolved": "https://registry.npmjs.org/bufferedstream/-/bufferedstream-1.6.0.tgz"
+    },
+    "buildmail": {
+      "version": "3.3.2",
+      "from": "buildmail@3.3.2",
+      "resolved": "https://registry.npmjs.org/buildmail/-/buildmail-3.3.2.tgz",
+      "dependencies": {
+        "addressparser": {
+          "version": "1.0.0",
+          "from": "addressparser@1.0.0",
+          "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-1.0.0.tgz"
+        }
+      }
+    },
+    "bunyan": {
+      "version": "0.22.1",
+      "from": "bunyan@0.22.1",
+      "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-0.22.1.tgz"
+    },
+    "busboy": {
+      "version": "0.2.14",
+      "from": "busboy@>=0.2.9 <0.3.0",
+      "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz",
+      "dependencies": {
+        "readable-stream": {
+          "version": "1.1.14",
+          "from": "readable-stream@>=1.1.0 <1.2.0",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz"
+        }
+      }
+    },
+    "bytes": {
+      "version": "2.4.0",
+      "from": "bytes@2.4.0",
+      "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz"
+    },
+    "camelcase": {
+      "version": "1.2.1",
+      "from": "camelcase@>=1.0.2 <2.0.0",
+      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz"
+    },
+    "caseless": {
+      "version": "0.12.0",
+      "from": "caseless@>=0.12.0 <0.13.0",
+      "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"
+    },
+    "center-align": {
+      "version": "0.1.3",
+      "from": "center-align@>=0.1.1 <0.2.0",
+      "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz"
+    },
+    "chai": {
+      "version": "3.5.0",
+      "from": "chai@latest",
+      "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz"
+    },
+    "chai-spies": {
+      "version": "0.7.1",
+      "from": "chai-spies@latest",
+      "resolved": "https://registry.npmjs.org/chai-spies/-/chai-spies-0.7.1.tgz"
+    },
+    "character-parser": {
+      "version": "1.2.0",
+      "from": "character-parser@1.2.0",
+      "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-1.2.0.tgz"
+    },
+    "clean-css": {
+      "version": "3.4.25",
+      "from": "clean-css@>=3.3.0 <4.0.0",
+      "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.25.tgz",
+      "dependencies": {
+        "commander": {
+          "version": "2.8.1",
+          "from": "commander@>=2.8.0 <2.9.0",
+          "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz"
+        },
+        "source-map": {
+          "version": "0.4.4",
+          "from": "source-map@>=0.4.0 <0.5.0",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz"
+        }
+      }
+    },
+    "cliui": {
+      "version": "2.1.0",
+      "from": "cliui@>=2.1.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz"
+    },
+    "clone": {
+      "version": "1.0.2",
+      "from": "clone@1.0.2",
+      "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz"
+    },
+    "cluster-key-slot": {
+      "version": "1.0.8",
+      "from": "cluster-key-slot@>=1.0.6 <2.0.0",
+      "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.0.8.tgz"
+    },
+    "co": {
+      "version": "4.6.0",
+      "from": "co@>=4.6.0 <5.0.0",
+      "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz"
+    },
+    "code-point-at": {
+      "version": "1.1.0",
+      "from": "code-point-at@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz"
+    },
+    "coffee-script": {
+      "version": "1.12.4",
+      "from": "coffee-script@1.12.4",
+      "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.4.tgz"
+    },
+    "colors": {
+      "version": "0.6.2",
+      "from": "colors@>=0.6.2 <0.7.0",
+      "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz"
+    },
+    "combined-stream": {
+      "version": "1.0.5",
+      "from": "combined-stream@>=1.0.5 <1.1.0",
+      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz"
+    },
+    "commander": {
+      "version": "2.1.0",
+      "from": "commander@2.1.0",
+      "resolved": "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz"
+    },
+    "concat-map": {
+      "version": "0.0.1",
+      "from": "concat-map@0.0.1",
+      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
     },
     "connect-redis": {
       "version": "3.2.0",
-      "from": "connect-redis@^3.1.0",
+      "from": "connect-redis@>=3.1.0 <4.0.0",
+      "resolved": "https://registry.npmjs.org/connect-redis/-/connect-redis-3.2.0.tgz",
       "dependencies": {
         "debug": {
           "version": "2.6.3",
-          "from": "debug@^2.2.0",
-          "dependencies": {
-            "ms": {
-              "version": "0.7.2",
-              "from": "ms@0.7.2"
-            }
-          }
+          "from": "debug@>=2.2.0 <3.0.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.3.tgz"
+        },
+        "ms": {
+          "version": "0.7.2",
+          "from": "ms@0.7.2",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz"
         },
         "redis": {
           "version": "2.7.1",
-          "from": "redis@^2.1.0",
-          "dependencies": {
-            "double-ended-queue": {
-              "version": "2.1.0-0",
-              "from": "double-ended-queue@^2.1.0-0"
-            },
-            "redis-commands": {
-              "version": "1.3.1",
-              "from": "redis-commands@^1.2.0"
-            },
-            "redis-parser": {
-              "version": "2.5.0",
-              "from": "redis-parser@^2.5.0"
-            }
-          }
+          "from": "redis@>=2.1.0 <3.0.0",
+          "resolved": "https://registry.npmjs.org/redis/-/redis-2.7.1.tgz"
         }
       }
     },
+    "console-control-strings": {
+      "version": "1.1.0",
+      "from": "console-control-strings@>=1.1.0 <1.2.0",
+      "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz"
+    },
+    "constantinople": {
+      "version": "2.0.1",
+      "from": "constantinople@>=2.0.0 <2.1.0",
+      "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-2.0.1.tgz"
+    },
+    "content-disposition": {
+      "version": "0.5.0",
+      "from": "content-disposition@0.5.0",
+      "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.0.tgz"
+    },
+    "content-type": {
+      "version": "1.0.2",
+      "from": "content-type@>=1.0.2 <1.1.0",
+      "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz"
+    },
     "contentful": {
       "version": "3.8.1",
-      "from": "contentful@^3.3.14",
+      "from": "contentful@>=3.3.14 <4.0.0",
+      "resolved": "https://registry.npmjs.org/contentful/-/contentful-3.8.1.tgz",
       "dependencies": {
-        "babel-runtime": {
-          "version": "6.3.19",
-          "from": "babel-runtime@~6.3.19",
-          "dependencies": {
-            "core-js": {
-              "version": "1.2.7",
-              "from": "core-js@^1.2.0"
-            }
-          }
-        },
-        "contentful-sdk-core": {
-          "version": "2.5.0",
-          "from": "contentful-sdk-core@~2.5.0",
-          "dependencies": {
-            "follow-redirects": {
-              "version": "0.0.7",
-              "from": "follow-redirects@0.0.7",
-              "dependencies": {
-                "debug": {
-                  "version": "2.6.3",
-                  "from": "debug@^2.2.0",
-                  "dependencies": {
-                    "ms": {
-                      "version": "0.7.2",
-                      "from": "ms@0.7.2"
-                    }
-                  }
-                },
-                "stream-consume": {
-                  "version": "0.1.0",
-                  "from": "stream-consume@^0.1.0"
-                }
-              }
-            },
-            "qs": {
-              "version": "6.4.0",
-              "from": "qs@^6.1.0"
-            }
-          }
-        },
-        "json-stringify-safe": {
-          "version": "5.0.1",
-          "from": "json-stringify-safe@~5.0.1"
-        },
         "lodash": {
           "version": "4.2.1",
-          "from": "lodash@~4.2.0"
+          "from": "lodash@>=4.2.0 <4.3.0",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.2.1.tgz"
         }
       }
     },
+    "contentful-sdk-core": {
+      "version": "2.5.0",
+      "from": "contentful-sdk-core@>=2.5.0 <2.6.0",
+      "resolved": "https://registry.npmjs.org/contentful-sdk-core/-/contentful-sdk-core-2.5.0.tgz"
+    },
     "cookie": {
       "version": "0.2.4",
-      "from": "cookie@^0.2.3"
+      "from": "cookie@>=0.2.3 <0.3.0",
+      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.2.4.tgz"
     },
     "cookie-parser": {
       "version": "1.3.5",
       "from": "cookie-parser@1.3.5",
+      "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.3.5.tgz",
       "dependencies": {
         "cookie": {
           "version": "0.1.3",
-          "from": "cookie@0.1.3"
+          "from": "cookie@0.1.3",
+          "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz"
+        }
+      }
+    },
+    "cookie-signature": {
+      "version": "1.0.6",
+      "from": "cookie-signature@1.0.6",
+      "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"
+    },
+    "core-js": {
+      "version": "1.2.7",
+      "from": "core-js@>=1.2.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz"
+    },
+    "core-util-is": {
+      "version": "1.0.2",
+      "from": "core-util-is@>=1.0.0 <1.1.0",
+      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
+    },
+    "crc": {
+      "version": "3.4.4",
+      "from": "crc@3.4.4",
+      "resolved": "https://registry.npmjs.org/crc/-/crc-3.4.4.tgz"
+    },
+    "crc32-stream": {
+      "version": "0.2.0",
+      "from": "crc32-stream@>=0.2.0 <0.3.0",
+      "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-0.2.0.tgz"
+    },
+    "cross-env": {
+      "version": "3.2.4",
+      "from": "cross-env@>=3.1.2 <4.0.0",
+      "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-3.2.4.tgz"
+    },
+    "cross-spawn": {
+      "version": "5.1.0",
+      "from": "cross-spawn@>=5.1.0 <6.0.0",
+      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+      "dependencies": {
+        "lru-cache": {
+          "version": "4.0.2",
+          "from": "lru-cache@>=4.0.1 <5.0.0",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz"
         },
-        "cookie-signature": {
-          "version": "1.0.6",
-          "from": "cookie-signature@1.0.6"
+        "which": {
+          "version": "1.2.14",
+          "from": "which@>=1.2.9 <2.0.0",
+          "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz"
         }
       }
     },
+    "cryptiles": {
+      "version": "2.0.5",
+      "from": "cryptiles@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz"
+    },
+    "crypto-browserify": {
+      "version": "1.0.9",
+      "from": "crypto-browserify@1.0.9",
+      "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-1.0.9.tgz"
+    },
+    "csrf": {
+      "version": "3.0.6",
+      "from": "csrf@>=3.0.3 <3.1.0",
+      "resolved": "https://registry.npmjs.org/csrf/-/csrf-3.0.6.tgz"
+    },
+    "css": {
+      "version": "1.0.8",
+      "from": "css@>=1.0.8 <1.1.0",
+      "resolved": "https://registry.npmjs.org/css/-/css-1.0.8.tgz"
+    },
+    "css-parse": {
+      "version": "1.0.4",
+      "from": "css-parse@1.0.4",
+      "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.0.4.tgz"
+    },
+    "css-stringify": {
+      "version": "1.0.5",
+      "from": "css-stringify@1.0.5",
+      "resolved": "https://registry.npmjs.org/css-stringify/-/css-stringify-1.0.5.tgz"
+    },
     "csurf": {
       "version": "1.9.0",
-      "from": "csurf@^1.8.3",
+      "from": "csurf@>=1.8.3 <2.0.0",
+      "resolved": "https://registry.npmjs.org/csurf/-/csurf-1.9.0.tgz",
       "dependencies": {
         "cookie": {
           "version": "0.3.1",
-          "from": "cookie@0.3.1"
-        },
-        "cookie-signature": {
-          "version": "1.0.6",
-          "from": "cookie-signature@1.0.6"
-        },
-        "csrf": {
-          "version": "3.0.6",
-          "from": "csrf@~3.0.3",
-          "dependencies": {
-            "rndm": {
-              "version": "1.2.0",
-              "from": "rndm@1.2.0"
-            },
-            "tsscmp": {
-              "version": "1.0.5",
-              "from": "tsscmp@1.0.5"
-            },
-            "uid-safe": {
-              "version": "2.1.4",
-              "from": "uid-safe@~2.1.4",
-              "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.4.tgz",
-              "dependencies": {
-                "random-bytes": {
-                  "version": "1.0.0",
-                  "from": "random-bytes@~1.0.0"
-                }
-              }
-            }
-          }
+          "from": "cookie@0.3.1",
+          "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz"
         },
         "http-errors": {
           "version": "1.5.1",
-          "from": "http-errors@~1.5.0",
-          "dependencies": {
-            "inherits": {
-              "version": "2.0.3",
-              "from": "inherits@2.0.3"
-            },
-            "setprototypeof": {
-              "version": "1.0.2",
-              "from": "setprototypeof@1.0.2"
-            },
-            "statuses": {
-              "version": "1.3.1",
-              "from": "statuses@>= 1.3.1 < 2"
-            }
-          }
+          "from": "http-errors@>=1.5.0 <1.6.0",
+          "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.1.tgz"
+        },
+        "setprototypeof": {
+          "version": "1.0.2",
+          "from": "setprototypeof@1.0.2",
+          "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.2.tgz"
+        }
+      }
+    },
+    "dashdash": {
+      "version": "1.14.1",
+      "from": "dashdash@>=1.12.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+      "dependencies": {
+        "assert-plus": {
+          "version": "1.0.0",
+          "from": "assert-plus@>=1.0.0 <2.0.0",
+          "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
         }
       }
     },
     "dateformat": {
       "version": "1.0.4-1.2.3",
-      "from": "dateformat@1.0.4-1.2.3"
+      "from": "dateformat@1.0.4-1.2.3",
+      "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.4-1.2.3.tgz"
+    },
+    "debug": {
+      "version": "1.0.4",
+      "from": "debug@>=1.0.2 <1.1.0",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.4.tgz"
+    },
+    "decamelize": {
+      "version": "1.2.0",
+      "from": "decamelize@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz"
+    },
+    "deep-eql": {
+      "version": "0.1.3",
+      "from": "deep-eql@>=0.1.3 <0.2.0",
+      "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz",
+      "dependencies": {
+        "type-detect": {
+          "version": "0.1.1",
+          "from": "type-detect@0.1.1",
+          "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz"
+        }
+      }
+    },
+    "deep-extend": {
+      "version": "0.4.1",
+      "from": "deep-extend@>=0.4.0 <0.5.0",
+      "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz"
+    },
+    "deflate-crc32-stream": {
+      "version": "0.1.2",
+      "from": "deflate-crc32-stream@>=0.1.0 <0.2.0",
+      "resolved": "https://registry.npmjs.org/deflate-crc32-stream/-/deflate-crc32-stream-0.1.2.tgz"
+    },
+    "delayed-stream": {
+      "version": "1.0.0",
+      "from": "delayed-stream@>=1.0.0 <1.1.0",
+      "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
+    },
+    "delegates": {
+      "version": "1.0.0",
+      "from": "delegates@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz"
+    },
+    "depd": {
+      "version": "1.1.0",
+      "from": "depd@>=1.1.0 <1.2.0",
+      "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz"
+    },
+    "destroy": {
+      "version": "1.0.3",
+      "from": "destroy@1.0.3",
+      "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz"
+    },
+    "dicer": {
+      "version": "0.2.5",
+      "from": "dicer@0.2.5",
+      "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz",
+      "dependencies": {
+        "readable-stream": {
+          "version": "1.1.14",
+          "from": "readable-stream@>=1.1.0 <1.2.0",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz"
+        }
+      }
+    },
+    "diff": {
+      "version": "1.0.7",
+      "from": "diff@1.0.7",
+      "resolved": "https://registry.npmjs.org/diff/-/diff-1.0.7.tgz"
+    },
+    "doctypes": {
+      "version": "1.1.0",
+      "from": "doctypes@>=1.1.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz"
+    },
+    "dottie": {
+      "version": "1.1.1",
+      "from": "dottie@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/dottie/-/dottie-1.1.1.tgz"
+    },
+    "double-ended-queue": {
+      "version": "2.1.0-0",
+      "from": "double-ended-queue@>=2.1.0-0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz"
+    },
+    "dtrace-provider": {
+      "version": "0.2.8",
+      "from": "dtrace-provider@0.2.8",
+      "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.2.8.tgz",
+      "optional": true
+    },
+    "each-series": {
+      "version": "1.0.0",
+      "from": "each-series@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/each-series/-/each-series-1.0.0.tgz"
+    },
+    "ecc-jsbn": {
+      "version": "0.1.1",
+      "from": "ecc-jsbn@>=0.1.1 <0.2.0",
+      "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
+      "optional": true
+    },
+    "ee-first": {
+      "version": "1.1.1",
+      "from": "ee-first@1.1.1",
+      "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
+    },
+    "ejs": {
+      "version": "0.8.8",
+      "from": "ejs@>=0.8.3 <0.9.0",
+      "resolved": "https://registry.npmjs.org/ejs/-/ejs-0.8.8.tgz"
+    },
+    "encoding": {
+      "version": "0.1.12",
+      "from": "encoding@>=0.1.0 <0.2.0",
+      "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
+      "dependencies": {
+        "iconv-lite": {
+          "version": "0.4.15",
+          "from": "iconv-lite@>=0.4.13 <0.5.0",
+          "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz"
+        }
+      }
+    },
+    "end-of-stream": {
+      "version": "0.1.5",
+      "from": "end-of-stream@>=0.1.3 <0.2.0",
+      "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz"
+    },
+    "escape-html": {
+      "version": "1.0.2",
+      "from": "escape-html@1.0.2",
+      "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.2.tgz"
+    },
+    "escape-string-regexp": {
+      "version": "1.0.5",
+      "from": "escape-string-regexp@^1.0.2",
+      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
+    },
+    "esprima": {
+      "version": "1.0.4",
+      "from": "esprima@>=1.0.2 <1.1.0",
+      "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz"
+    },
+    "etag": {
+      "version": "1.7.0",
+      "from": "etag@>=1.7.0 <1.8.0",
+      "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz"
+    },
+    "eventemitter2": {
+      "version": "0.4.14",
+      "from": "eventemitter2@>=0.4.13 <0.5.0",
+      "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz"
+    },
+    "eventemitter3": {
+      "version": "1.2.0",
+      "from": "eventemitter3@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz"
+    },
+    "exit": {
+      "version": "0.1.2",
+      "from": "exit@>=0.1.1 <0.2.0",
+      "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz"
     },
     "express": {
       "version": "4.13.0",
       "from": "express@4.13.0",
+      "resolved": "https://registry.npmjs.org/express/-/express-4.13.0.tgz",
       "dependencies": {
-        "accepts": {
-          "version": "1.2.13",
-          "from": "accepts@~1.2.9",
-          "dependencies": {
-            "mime-types": {
-              "version": "2.1.15",
-              "from": "mime-types@~2.1.13",
-              "dependencies": {
-                "mime-db": {
-                  "version": "1.27.0",
-                  "from": "mime-db@~1.27.0"
-                }
-              }
-            },
-            "negotiator": {
-              "version": "0.5.3",
-              "from": "negotiator@0.5.3"
-            }
-          }
-        },
-        "array-flatten": {
-          "version": "1.1.0",
-          "from": "array-flatten@1.1.0"
-        },
-        "content-disposition": {
-          "version": "0.5.0",
-          "from": "content-disposition@0.5.0"
-        },
-        "content-type": {
-          "version": "1.0.2",
-          "from": "content-type@~1.0.1"
-        },
         "cookie": {
           "version": "0.1.3",
-          "from": "cookie@0.1.3"
-        },
-        "cookie-signature": {
-          "version": "1.0.6",
-          "from": "cookie-signature@1.0.6"
+          "from": "cookie@0.1.3",
+          "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz"
         },
         "debug": {
           "version": "2.2.0",
-          "from": "debug@~2.2.0",
-          "dependencies": {
-            "ms": {
-              "version": "0.7.1",
-              "from": "ms@0.7.1"
-            }
-          }
+          "from": "debug@>=2.2.0 <2.3.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz"
         },
         "depd": {
           "version": "1.0.1",
-          "from": "depd@~1.0.1"
-        },
-        "escape-html": {
-          "version": "1.0.2",
-          "from": "escape-html@1.0.2"
-        },
-        "etag": {
-          "version": "1.7.0",
-          "from": "etag@~1.7.0"
-        },
-        "finalhandler": {
-          "version": "0.4.0",
-          "from": "finalhandler@0.4.0",
-          "dependencies": {
-            "unpipe": {
-              "version": "1.0.0",
-              "from": "unpipe@~1.0.0"
-            }
-          }
-        },
-        "fresh": {
-          "version": "0.3.0",
-          "from": "fresh@0.3.0"
-        },
-        "merge-descriptors": {
-          "version": "1.0.0",
-          "from": "merge-descriptors@1.0.0"
-        },
-        "methods": {
-          "version": "1.1.2",
-          "from": "methods@~1.1.1"
+          "from": "depd@>=1.0.1 <1.1.0",
+          "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz"
         },
-        "on-finished": {
-          "version": "2.3.0",
-          "from": "on-finished@~2.3.0",
-          "dependencies": {
-            "ee-first": {
-              "version": "1.1.1",
-              "from": "ee-first@1.1.1"
-            }
-          }
-        },
-        "parseurl": {
-          "version": "1.3.1",
-          "from": "parseurl@~1.3.0"
-        },
-        "path-to-regexp": {
-          "version": "0.1.6",
-          "from": "path-to-regexp@0.1.6"
-        },
-        "proxy-addr": {
-          "version": "1.0.10",
-          "from": "proxy-addr@~1.0.8",
-          "dependencies": {
-            "forwarded": {
-              "version": "0.1.0",
-              "from": "forwarded@~0.1.0"
-            },
-            "ipaddr.js": {
-              "version": "1.0.5",
-              "from": "ipaddr.js@1.0.5"
-            }
-          }
+        "ms": {
+          "version": "0.7.1",
+          "from": "ms@0.7.1",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz"
         },
         "qs": {
           "version": "2.4.2",
-          "from": "qs@2.4.2"
-        },
-        "range-parser": {
-          "version": "1.0.3",
-          "from": "range-parser@~1.0.2"
-        },
-        "send": {
-          "version": "0.13.0",
-          "from": "send@0.13.0",
-          "dependencies": {
-            "destroy": {
-              "version": "1.0.3",
-              "from": "destroy@1.0.3"
-            },
-            "http-errors": {
-              "version": "1.3.1",
-              "from": "http-errors@~1.3.1",
-              "dependencies": {
-                "inherits": {
-                  "version": "2.0.3",
-                  "from": "inherits@~2.0.1"
-                }
-              }
-            },
-            "mime": {
-              "version": "1.3.4",
-              "from": "mime@^1.2.9"
-            },
-            "ms": {
-              "version": "0.7.1",
-              "from": "ms@0.7.1"
-            },
-            "statuses": {
-              "version": "1.2.1",
-              "from": "statuses@~1.2.1"
-            }
-          }
-        },
-        "serve-static": {
-          "version": "1.10.3",
-          "from": "serve-static@~1.10.0",
-          "dependencies": {
-            "escape-html": {
-              "version": "1.0.3",
-              "from": "escape-html@~1.0.3"
-            },
-            "send": {
-              "version": "0.13.2",
-              "from": "send@0.13.2",
-              "dependencies": {
-                "depd": {
-                  "version": "1.1.0",
-                  "from": "depd@~1.1.0"
-                },
-                "destroy": {
-                  "version": "1.0.4",
-                  "from": "destroy@~1.0.4"
-                },
-                "http-errors": {
-                  "version": "1.3.1",
-                  "from": "http-errors@~1.3.1",
-                  "dependencies": {
-                    "inherits": {
-                      "version": "2.0.3",
-                      "from": "inherits@~2.0.1"
-                    }
-                  }
-                },
-                "mime": {
-                  "version": "1.3.4",
-                  "from": "mime@1.3.4"
-                },
-                "ms": {
-                  "version": "0.7.1",
-                  "from": "ms@0.7.1"
-                },
-                "statuses": {
-                  "version": "1.2.1",
-                  "from": "statuses@~1.2.1"
-                }
-              }
-            }
-          }
-        },
-        "type-is": {
-          "version": "1.6.14",
-          "from": "type-is@~1.6.3",
-          "dependencies": {
-            "media-typer": {
-              "version": "0.3.0",
-              "from": "media-typer@0.3.0"
-            },
-            "mime-types": {
-              "version": "2.1.15",
-              "from": "mime-types@~2.1.13",
-              "dependencies": {
-                "mime-db": {
-                  "version": "1.27.0",
-                  "from": "mime-db@~1.27.0"
-                }
-              }
-            }
-          }
-        },
-        "vary": {
-          "version": "1.0.1",
-          "from": "vary@~1.0.0"
-        },
-        "utils-merge": {
-          "version": "1.0.0",
-          "from": "utils-merge@1.0.0"
+          "from": "qs@2.4.2",
+          "resolved": "https://registry.npmjs.org/qs/-/qs-2.4.2.tgz"
         }
       }
     },
     "express-session": {
       "version": "1.15.2",
-      "from": "express-session@^1.14.2",
+      "from": "express-session@>=1.14.2 <2.0.0",
+      "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.15.2.tgz",
       "dependencies": {
         "cookie": {
           "version": "0.3.1",
-          "from": "cookie@0.3.1"
+          "from": "cookie@0.3.1",
+          "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz"
         },
-        "cookie-signature": {
-          "version": "1.0.6",
-          "from": "cookie-signature@1.0.6"
+        "debug": {
+          "version": "2.6.3",
+          "from": "debug@2.6.3",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.3.tgz"
         },
-        "crc": {
-          "version": "3.4.4",
-          "from": "crc@3.4.4"
+        "ms": {
+          "version": "0.7.2",
+          "from": "ms@0.7.2",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz"
+        }
+      }
+    },
+    "extend": {
+      "version": "3.0.0",
+      "from": "extend@>=3.0.0 <3.1.0",
+      "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz"
+    },
+    "extendible": {
+      "version": "0.1.1",
+      "from": "extendible@>=0.1.0 <0.2.0",
+      "resolved": "https://registry.npmjs.org/extendible/-/extendible-0.1.1.tgz"
+    },
+    "extsprintf": {
+      "version": "1.0.2",
+      "from": "extsprintf@1.0.2",
+      "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz"
+    },
+    "failure": {
+      "version": "1.1.1",
+      "from": "failure@>=1.1.0 <1.2.0",
+      "resolved": "https://registry.npmjs.org/failure/-/failure-1.1.1.tgz"
+    },
+    "file-utils": {
+      "version": "0.1.5",
+      "from": "file-utils@>=0.1.5 <0.2.0",
+      "resolved": "https://registry.npmjs.org/file-utils/-/file-utils-0.1.5.tgz",
+      "dependencies": {
+        "lodash": {
+          "version": "2.1.0",
+          "from": "lodash@>=2.1.0 <2.2.0",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.1.0.tgz"
+        }
+      }
+    },
+    "finalhandler": {
+      "version": "0.4.0",
+      "from": "finalhandler@0.4.0",
+      "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.0.tgz",
+      "dependencies": {
+        "debug": {
+          "version": "2.2.0",
+          "from": "debug@>=2.2.0 <2.3.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz"
         },
+        "ms": {
+          "version": "0.7.1",
+          "from": "ms@0.7.1",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz"
+        }
+      }
+    },
+    "findup-sync": {
+      "version": "0.1.3",
+      "from": "findup-sync@>=0.1.2 <0.2.0",
+      "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz",
+      "dependencies": {
+        "lodash": {
+          "version": "2.4.2",
+          "from": "lodash@>=2.4.1 <2.5.0",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz"
+        }
+      }
+    },
+    "flexbuffer": {
+      "version": "0.0.6",
+      "from": "flexbuffer@0.0.6",
+      "resolved": "https://registry.npmjs.org/flexbuffer/-/flexbuffer-0.0.6.tgz"
+    },
+    "follow-redirects": {
+      "version": "0.0.7",
+      "from": "follow-redirects@0.0.7",
+      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-0.0.7.tgz",
+      "dependencies": {
         "debug": {
           "version": "2.6.3",
-          "from": "debug@*",
-          "dependencies": {
-            "ms": {
-              "version": "0.7.2",
-              "from": "ms@0.7.2"
-            }
-          }
-        },
-        "depd": {
-          "version": "1.1.0",
-          "from": "depd@~1.1.0"
+          "from": "debug@>=2.2.0 <3.0.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.3.tgz"
         },
-        "on-headers": {
-          "version": "1.0.1",
-          "from": "on-headers@~1.0.1"
+        "ms": {
+          "version": "0.7.2",
+          "from": "ms@0.7.2",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz"
+        }
+      }
+    },
+    "forever-agent": {
+      "version": "0.6.1",
+      "from": "forever-agent@>=0.6.1 <0.7.0",
+      "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"
+    },
+    "form-data": {
+      "version": "2.1.2",
+      "from": "form-data@>=2.1.1 <2.2.0",
+      "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz"
+    },
+    "forwarded": {
+      "version": "0.1.0",
+      "from": "forwarded@>=0.1.0 <0.2.0",
+      "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz"
+    },
+    "fresh": {
+      "version": "0.3.0",
+      "from": "fresh@0.3.0",
+      "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz"
+    },
+    "fs-extra": {
+      "version": "0.9.1",
+      "from": "fs-extra@>=0.9.1 <0.10.0",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.9.1.tgz",
+      "dependencies": {
+        "glob": {
+          "version": "7.1.1",
+          "from": "glob@>=7.0.5 <8.0.0",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz"
         },
-        "parseurl": {
-          "version": "1.3.1",
-          "from": "parseurl@~1.3.0"
+        "minimatch": {
+          "version": "3.0.3",
+          "from": "minimatch@^3.0.2",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz"
         },
-        "uid-safe": {
-          "version": "2.1.4",
-          "from": "uid-safe@~2.1.4",
-          "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.4.tgz",
-          "dependencies": {
-            "random-bytes": {
-              "version": "1.0.0",
-              "from": "random-bytes@~1.0.0"
-            }
-          }
+        "ncp": {
+          "version": "0.5.1",
+          "from": "ncp@>=0.5.1 <0.6.0",
+          "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.5.1.tgz"
         },
-        "utils-merge": {
+        "rimraf": {
+          "version": "2.6.1",
+          "from": "rimraf@>=2.2.8 <3.0.0",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz"
+        }
+      }
+    },
+    "fs.realpath": {
+      "version": "1.0.0",
+      "from": "fs.realpath@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
+    },
+    "fstream": {
+      "version": "1.0.11",
+      "from": "fstream@>=1.0.2 <2.0.0",
+      "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz"
+    },
+    "fstream-ignore": {
+      "version": "1.0.5",
+      "from": "fstream-ignore@>=1.0.5 <1.1.0",
+      "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz",
+      "dependencies": {
+        "minimatch": {
+          "version": "3.0.3",
+          "from": "minimatch@>=3.0.0 <4.0.0",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz"
+        }
+      }
+    },
+    "function-bind": {
+      "version": "1.1.0",
+      "from": "function-bind@>=1.0.2 <2.0.0",
+      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz"
+    },
+    "gauge": {
+      "version": "2.7.3",
+      "from": "gauge@>=2.7.1 <2.8.0",
+      "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.3.tgz"
+    },
+    "generic-pool": {
+      "version": "2.4.2",
+      "from": "generic-pool@2.4.2",
+      "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.4.2.tgz"
+    },
+    "getobject": {
+      "version": "0.1.0",
+      "from": "getobject@>=0.1.0 <0.2.0",
+      "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz"
+    },
+    "getpass": {
+      "version": "0.1.6",
+      "from": "getpass@>=0.1.1 <0.2.0",
+      "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz",
+      "dependencies": {
+        "assert-plus": {
           "version": "1.0.0",
-          "from": "utils-merge@1.0.0"
+          "from": "assert-plus@>=1.0.0 <2.0.0",
+          "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
+        }
+      }
+    },
+    "glob": {
+      "version": "3.2.11",
+      "from": "glob@>=3.2.6 <3.3.0",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz",
+      "dependencies": {
+        "minimatch": {
+          "version": "0.3.0",
+          "from": "minimatch@>=0.3.0 <0.4.0",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz"
         }
       }
     },
+    "graceful-fs": {
+      "version": "4.1.11",
+      "from": "graceful-fs@>=4.1.2 <5.0.0",
+      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz"
+    },
+    "graceful-readlink": {
+      "version": "1.0.1",
+      "from": "graceful-readlink@>=1.0.0",
+      "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz"
+    },
+    "growl": {
+      "version": "1.7.0",
+      "from": "growl@>=1.7.0 <1.8.0",
+      "resolved": "https://registry.npmjs.org/growl/-/growl-1.7.0.tgz"
+    },
     "grunt": {
       "version": "0.4.5",
-      "from": "grunt@^0.4.5",
+      "from": "grunt@>=0.4.5 <0.5.0",
+      "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz",
       "dependencies": {
         "async": {
           "version": "0.1.22",
-          "from": "async@~0.1.22"
+          "from": "async@>=0.1.22 <0.2.0",
+          "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz"
         },
         "coffee-script": {
           "version": "1.3.3",
-          "from": "coffee-script@~1.3.3"
-        },
-        "colors": {
-          "version": "0.6.2",
-          "from": "colors@~0.6.2"
+          "from": "coffee-script@>=1.3.3 <1.4.0",
+          "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz"
         },
         "dateformat": {
           "version": "1.0.2-1.2.3",
-          "from": "dateformat@1.0.2-1.2.3"
-        },
-        "eventemitter2": {
-          "version": "0.4.14",
-          "from": "eventemitter2@~0.4.13"
-        },
-        "findup-sync": {
-          "version": "0.1.3",
-          "from": "findup-sync@~0.1.2",
-          "dependencies": {
-            "glob": {
-              "version": "3.2.11",
-              "from": "glob@~3.2.9",
-              "dependencies": {
-                "inherits": {
-                  "version": "2.0.3",
-                  "from": "inherits@2"
-                },
-                "minimatch": {
-                  "version": "0.3.0",
-                  "from": "minimatch@0.3",
-                  "dependencies": {
-                    "lru-cache": {
-                      "version": "2.7.3",
-                      "from": "lru-cache@2"
-                    },
-                    "sigmund": {
-                      "version": "1.0.1",
-                      "from": "sigmund@~1.0.0"
-                    }
-                  }
-                }
-              }
-            },
-            "lodash": {
-              "version": "2.4.2",
-              "from": "lodash@~2.4.1"
-            }
-          }
+          "from": "dateformat@1.0.2-1.2.3",
+          "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz"
         },
         "glob": {
           "version": "3.1.21",
-          "from": "glob@~3.1.21",
-          "dependencies": {
-            "graceful-fs": {
-              "version": "1.2.3",
-              "from": "graceful-fs@~1.2.0"
-            },
-            "inherits": {
-              "version": "1.0.2",
-              "from": "inherits@1"
-            }
-          }
+          "from": "glob@>=3.1.21 <3.2.0",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz"
         },
-        "hooker": {
-          "version": "0.2.3",
-          "from": "hooker@~0.2.3"
+        "graceful-fs": {
+          "version": "1.2.3",
+          "from": "graceful-fs@>=1.2.0 <1.3.0",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz"
         },
-        "iconv-lite": {
-          "version": "0.2.11",
-          "from": "iconv-lite@~0.2.11"
+        "inherits": {
+          "version": "1.0.2",
+          "from": "inherits@>=1.0.0 <2.0.0",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz"
         },
-        "minimatch": {
-          "version": "0.2.14",
-          "from": "minimatch@~0.2.12",
-          "dependencies": {
-            "lru-cache": {
-              "version": "2.7.3",
-              "from": "lru-cache@2"
-            },
-            "sigmund": {
-              "version": "1.0.1",
-              "from": "sigmund@~1.0.0"
-            }
-          }
+        "lodash": {
+          "version": "0.9.2",
+          "from": "lodash@>=0.9.2 <0.10.0",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz"
         },
         "nopt": {
           "version": "1.0.10",
-          "from": "nopt@~1.0.10",
-          "dependencies": {
-            "abbrev": {
-              "version": "1.1.0",
-              "from": "abbrev@1"
-            }
-          }
+          "from": "nopt@>=1.0.10 <1.1.0",
+          "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz"
         },
         "rimraf": {
           "version": "2.2.8",
-          "from": "rimraf@~2.2.8"
-        },
-        "lodash": {
-          "version": "0.9.2",
-          "from": "lodash@~0.9.2"
+          "from": "rimraf@>=2.2.8 <2.3.0",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"
+        }
+      }
+    },
+    "grunt-bunyan": {
+      "version": "0.5.0",
+      "from": "grunt-bunyan@>=0.5.0 <0.6.0",
+      "resolved": "https://registry.npmjs.org/grunt-bunyan/-/grunt-bunyan-0.5.0.tgz",
+      "dependencies": {
+        "lodash": {
+          "version": "2.4.2",
+          "from": "lodash@>=2.4.1 <2.5.0",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz"
+        }
+      }
+    },
+    "grunt-execute": {
+      "version": "0.2.2",
+      "from": "grunt-execute@>=0.2.2 <0.3.0",
+      "resolved": "https://registry.npmjs.org/grunt-execute/-/grunt-execute-0.2.2.tgz"
+    },
+    "grunt-legacy-log": {
+      "version": "0.1.3",
+      "from": "grunt-legacy-log@>=0.1.0 <0.2.0",
+      "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz",
+      "dependencies": {
+        "lodash": {
+          "version": "2.4.2",
+          "from": "lodash@>=2.4.1 <2.5.0",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz"
         },
         "underscore.string": {
-          "version": "2.2.1",
-          "from": "underscore.string@~2.2.1"
-        },
-        "which": {
-          "version": "1.0.9",
-          "from": "which@~1.0.5"
-        },
-        "js-yaml": {
-          "version": "2.0.5",
-          "from": "js-yaml@~2.0.5",
-          "dependencies": {
-            "argparse": {
-              "version": "0.1.16",
-              "from": "argparse@~ 0.1.11",
-              "dependencies": {
-                "underscore": {
-                  "version": "1.7.0",
-                  "from": "underscore@~1.7.0"
-                },
-                "underscore.string": {
-                  "version": "2.4.0",
-                  "from": "underscore.string@~2.4.0"
-                }
-              }
-            },
-            "esprima": {
-              "version": "1.0.4",
-              "from": "esprima@~ 1.0.2"
-            }
-          }
-        },
-        "exit": {
-          "version": "0.1.2",
-          "from": "exit@~0.1.1"
-        },
-        "getobject": {
-          "version": "0.1.0",
-          "from": "getobject@~0.1.0"
+          "version": "2.3.3",
+          "from": "underscore.string@>=2.3.3 <2.4.0",
+          "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz"
+        }
+      }
+    },
+    "grunt-legacy-log-utils": {
+      "version": "0.1.1",
+      "from": "grunt-legacy-log-utils@>=0.1.1 <0.2.0",
+      "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz",
+      "dependencies": {
+        "lodash": {
+          "version": "2.4.2",
+          "from": "lodash@>=2.4.1 <2.5.0",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz"
         },
-        "grunt-legacy-util": {
-          "version": "0.2.0",
-          "from": "grunt-legacy-util@~0.2.0"
+        "underscore.string": {
+          "version": "2.3.3",
+          "from": "underscore.string@>=2.3.3 <2.4.0",
+          "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz"
+        }
+      }
+    },
+    "grunt-legacy-util": {
+      "version": "0.2.0",
+      "from": "grunt-legacy-util@>=0.2.0 <0.3.0",
+      "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz",
+      "dependencies": {
+        "async": {
+          "version": "0.1.22",
+          "from": "async@>=0.1.22 <0.2.0",
+          "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz"
         },
-        "grunt-legacy-log": {
-          "version": "0.1.3",
-          "from": "grunt-legacy-log@~0.1.0",
-          "dependencies": {
-            "grunt-legacy-log-utils": {
-              "version": "0.1.1",
-              "from": "grunt-legacy-log-utils@~0.1.1"
-            },
-            "lodash": {
-              "version": "2.4.2",
-              "from": "lodash@~2.4.1"
-            },
-            "underscore.string": {
-              "version": "2.3.3",
-              "from": "underscore.string@~2.3.3"
-            }
-          }
+        "lodash": {
+          "version": "0.9.2",
+          "from": "lodash@>=0.9.2 <0.10.0",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz"
         }
       }
     },
+    "hang": {
+      "version": "1.0.0",
+      "from": "hang@>=1.0.0 <1.1.0",
+      "resolved": "https://registry.npmjs.org/hang/-/hang-1.0.0.tgz"
+    },
+    "har-schema": {
+      "version": "1.0.5",
+      "from": "har-schema@>=1.0.5 <2.0.0",
+      "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz"
+    },
+    "har-validator": {
+      "version": "4.2.1",
+      "from": "har-validator@>=4.2.1 <4.3.0",
+      "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz"
+    },
+    "has": {
+      "version": "1.0.1",
+      "from": "has@>=1.0.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz"
+    },
+    "has-unicode": {
+      "version": "2.0.1",
+      "from": "has-unicode@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz"
+    },
+    "hawk": {
+      "version": "3.1.3",
+      "from": "hawk@>=3.1.3 <3.2.0",
+      "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz"
+    },
     "heapdump": {
-      "version": "0.3.7",
-      "from": "heapdump@^0.3.7"
+      "version": "0.3.9",
+      "from": "heapdump@>=0.3.7 <0.4.0",
+      "resolved": "https://registry.npmjs.org/heapdump/-/heapdump-0.3.9.tgz"
+    },
+    "hoek": {
+      "version": "2.16.3",
+      "from": "hoek@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz"
+    },
+    "hooker": {
+      "version": "0.2.3",
+      "from": "hooker@>=0.2.3 <0.3.0",
+      "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz"
+    },
+    "hooks-fixed": {
+      "version": "1.1.0",
+      "from": "hooks-fixed@1.1.0",
+      "resolved": "https://registry.npmjs.org/hooks-fixed/-/hooks-fixed-1.1.0.tgz"
+    },
+    "http-errors": {
+      "version": "1.6.1",
+      "from": "http-errors@>=1.6.1 <1.7.0",
+      "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz"
     },
     "http-proxy": {
       "version": "1.16.2",
-      "from": "http-proxy@^1.8.1",
-      "dependencies": {
-        "eventemitter3": {
-          "version": "1.2.0",
-          "from": "eventemitter3@1.x.x"
-        },
-        "requires-port": {
-          "version": "1.0.0",
-          "from": "requires-port@1.x.x"
-        }
-      }
+      "from": "http-proxy@>=1.8.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz"
+    },
+    "http-signature": {
+      "version": "1.1.1",
+      "from": "http-signature@>=1.1.0 <1.2.0",
+      "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz"
+    },
+    "iconv-lite": {
+      "version": "0.2.11",
+      "from": "iconv-lite@>=0.2.11 <0.3.0",
+      "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz"
+    },
+    "ieee754": {
+      "version": "1.1.8",
+      "from": "ieee754@>=1.1.4 <2.0.0",
+      "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz"
+    },
+    "inflection": {
+      "version": "1.12.0",
+      "from": "inflection@>=1.6.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.12.0.tgz"
+    },
+    "inflight": {
+      "version": "1.0.6",
+      "from": "inflight@>=1.0.4 <2.0.0",
+      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
+    },
+    "inherits": {
+      "version": "2.0.3",
+      "from": "inherits@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+    },
+    "ini": {
+      "version": "1.3.4",
+      "from": "ini@>=1.3.0 <1.4.0",
+      "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz"
     },
     "ioredis": {
       "version": "2.5.0",
-      "from": "ioredis@^2.4.0",
+      "from": "ioredis@>=2.4.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-2.5.0.tgz",
       "dependencies": {
-        "bluebird": {
-          "version": "3.5.0",
-          "from": "bluebird@^3.3.4"
-        },
-        "cluster-key-slot": {
-          "version": "1.0.8",
-          "from": "cluster-key-slot@^1.0.6"
-        },
         "debug": {
           "version": "2.6.3",
-          "from": "debug@^2.2.0",
-          "dependencies": {
-            "ms": {
-              "version": "0.7.2",
-              "from": "ms@0.7.2"
-            }
-          }
-        },
-        "double-ended-queue": {
-          "version": "2.1.0-0",
-          "from": "double-ended-queue@^2.1.0-0"
+          "from": "debug@>=2.2.0 <3.0.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.3.tgz"
         },
-        "flexbuffer": {
-          "version": "0.0.6",
-          "from": "flexbuffer@0.0.6"
-        },
-        "redis-commands": {
-          "version": "1.3.1",
-          "from": "redis-commands@^1.2.0"
+        "ms": {
+          "version": "0.7.2",
+          "from": "ms@0.7.2",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz"
         },
         "redis-parser": {
           "version": "1.3.0",
-          "from": "redis-parser@^1.3.0"
+          "from": "redis-parser@>=1.3.0 <2.0.0",
+          "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-1.3.0.tgz"
         }
       }
     },
+    "ipaddr.js": {
+      "version": "1.0.5",
+      "from": "ipaddr.js@1.0.5",
+      "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.5.tgz"
+    },
+    "is-buffer": {
+      "version": "1.1.5",
+      "from": "is-buffer@>=1.0.2 <2.0.0",
+      "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz"
+    },
+    "is-expression": {
+      "version": "2.1.0",
+      "from": "is-expression@>=2.0.1 <3.0.0",
+      "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-2.1.0.tgz"
+    },
+    "is-fullwidth-code-point": {
+      "version": "1.0.0",
+      "from": "is-fullwidth-code-point@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz"
+    },
+    "is-promise": {
+      "version": "1.0.1",
+      "from": "is-promise@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz"
+    },
+    "is-regex": {
+      "version": "1.0.4",
+      "from": "is-regex@>=1.0.3 <2.0.0",
+      "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz"
+    },
+    "is-typedarray": {
+      "version": "1.0.0",
+      "from": "is-typedarray@>=1.0.0 <1.1.0",
+      "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"
+    },
+    "is-windows": {
+      "version": "1.0.0",
+      "from": "is-windows@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.0.tgz"
+    },
+    "isarray": {
+      "version": "0.0.1",
+      "from": "isarray@0.0.1",
+      "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
+    },
+    "isbinaryfile": {
+      "version": "0.1.9",
+      "from": "isbinaryfile@>=0.1.9 <0.2.0",
+      "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-0.1.9.tgz"
+    },
+    "isexe": {
+      "version": "2.0.0",
+      "from": "isexe@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
+    },
+    "isstream": {
+      "version": "0.1.2",
+      "from": "isstream@>=0.1.2 <0.2.0",
+      "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"
+    },
     "jade": {
       "version": "1.3.1",
-      "from": "jade@~1.3.1",
+      "from": "jade@>=1.3.1 <1.4.0",
+      "resolved": "https://registry.npmjs.org/jade/-/jade-1.3.1.tgz",
       "dependencies": {
-        "commander": {
-          "version": "2.1.0",
-          "from": "commander@2.1.0"
-        },
         "mkdirp": {
           "version": "0.3.5",
-          "from": "mkdirp@~0.3.5"
-        },
-        "transformers": {
+          "from": "mkdirp@>=0.3.5 <0.4.0",
+          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz"
+        }
+      }
+    },
+    "jmespath": {
+      "version": "0.15.0",
+      "from": "jmespath@0.15.0",
+      "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz"
+    },
+    "jodid25519": {
+      "version": "1.0.2",
+      "from": "jodid25519@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz",
+      "optional": true
+    },
+    "js-stringify": {
+      "version": "1.0.2",
+      "from": "js-stringify@>=1.0.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz"
+    },
+    "js-yaml": {
+      "version": "2.0.5",
+      "from": "js-yaml@>=2.0.5 <2.1.0",
+      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz"
+    },
+    "jsbn": {
+      "version": "0.1.1",
+      "from": "jsbn@>=0.1.0 <0.2.0",
+      "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+      "optional": true
+    },
+    "json-schema": {
+      "version": "0.2.3",
+      "from": "json-schema@0.2.3",
+      "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz"
+    },
+    "json-stable-stringify": {
+      "version": "1.0.1",
+      "from": "json-stable-stringify@>=1.0.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz"
+    },
+    "json-stringify-safe": {
+      "version": "5.0.1",
+      "from": "json-stringify-safe@>=5.0.1 <5.1.0",
+      "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"
+    },
+    "jsonfile": {
+      "version": "1.1.1",
+      "from": "jsonfile@>=1.1.0 <1.2.0",
+      "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-1.1.1.tgz"
+    },
+    "jsonify": {
+      "version": "0.0.0",
+      "from": "jsonify@>=0.0.0 <0.1.0",
+      "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz"
+    },
+    "jsprim": {
+      "version": "1.4.0",
+      "from": "jsprim@>=1.2.2 <2.0.0",
+      "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz",
+      "dependencies": {
+        "assert-plus": {
+          "version": "1.0.0",
+          "from": "assert-plus@1.0.0",
+          "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
+        }
+      }
+    },
+    "jstransformer": {
+      "version": "1.0.0",
+      "from": "jstransformer@1.0.0",
+      "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz",
+      "dependencies": {
+        "is-promise": {
           "version": "2.1.0",
-          "from": "transformers@2.1.0",
-          "dependencies": {
-            "promise": {
-              "version": "2.0.0",
-              "from": "promise@~2.0",
-              "dependencies": {
-                "is-promise": {
-                  "version": "1.0.1",
-                  "from": "is-promise@~1"
-                }
-              }
-            },
-            "css": {
-              "version": "1.0.8",
-              "from": "css@~1.0.8",
-              "dependencies": {
-                "css-parse": {
-                  "version": "1.0.4",
-                  "from": "css-parse@1.0.4"
-                },
-                "css-stringify": {
-                  "version": "1.0.5",
-                  "from": "css-stringify@1.0.5"
-                }
-              }
-            },
-            "uglify-js": {
-              "version": "2.2.5",
-              "from": "uglify-js@~2.2.5",
-              "dependencies": {
-                "source-map": {
-                  "version": "0.1.43",
-                  "from": "source-map@~0.1.7",
-                  "dependencies": {
-                    "amdefine": {
-                      "version": "1.0.1",
-                      "from": "amdefine@>=0.0.4"
-                    }
-                  }
-                },
-                "optimist": {
-                  "version": "0.3.7",
-                  "from": "optimist@~0.3.5",
-                  "dependencies": {
-                    "wordwrap": {
-                      "version": "0.0.3",
-                      "from": "wordwrap@~0.0.2"
-                    }
-                  }
-                }
-              }
-            }
-          }
-        },
-        "character-parser": {
-          "version": "1.2.0",
-          "from": "character-parser@1.2.0"
-        },
-        "monocle": {
-          "version": "1.1.51",
-          "from": "monocle@1.1.51",
-          "dependencies": {
-            "readdirp": {
-              "version": "0.2.5",
-              "from": "readdirp@~0.2.3",
-              "dependencies": {
-                "minimatch": {
-                  "version": "3.0.3",
-                  "from": "minimatch@>=0.2.4",
-                  "dependencies": {
-                    "brace-expansion": {
-                      "version": "1.1.6",
-                      "from": "brace-expansion@^1.0.0",
-                      "dependencies": {
-                        "balanced-match": {
-                          "version": "0.4.2",
-                          "from": "balanced-match@^0.4.1"
-                        },
-                        "concat-map": {
-                          "version": "0.0.1",
-                          "from": "concat-map@0.0.1"
-                        }
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          }
+          "from": "is-promise@>=2.0.0 <3.0.0",
+          "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz"
         },
-        "with": {
-          "version": "3.0.1",
-          "from": "with@~3.0.0",
-          "dependencies": {
-            "uglify-js": {
-              "version": "2.4.24",
-              "from": "uglify-js@~2.4.12",
-              "dependencies": {
-                "async": {
-                  "version": "0.2.10",
-                  "from": "async@~0.2.6"
-                },
-                "source-map": {
-                  "version": "0.1.34",
-                  "from": "source-map@0.1.34",
-                  "dependencies": {
-                    "amdefine": {
-                      "version": "1.0.1",
-                      "from": "amdefine@>=0.0.4"
-                    }
-                  }
-                },
-                "uglify-to-browserify": {
-                  "version": "1.0.2",
-                  "from": "uglify-to-browserify@~1.0.0"
-                },
-                "yargs": {
-                  "version": "3.5.4",
-                  "from": "yargs@~3.5.4",
-                  "dependencies": {
-                    "camelcase": {
-                      "version": "1.2.1",
-                      "from": "camelcase@^1.0.2"
-                    },
-                    "decamelize": {
-                      "version": "1.2.0",
-                      "from": "decamelize@^1.0.0"
-                    },
-                    "window-size": {
-                      "version": "0.1.0",
-                      "from": "window-size@0.1.0"
-                    },
-                    "wordwrap": {
-                      "version": "0.0.2",
-                      "from": "wordwrap@0.0.2"
-                    }
-                  }
-                }
-              }
-            }
-          }
-        },
-        "constantinople": {
-          "version": "2.0.1",
-          "from": "constantinople@~2.0.0",
-          "dependencies": {
-            "uglify-js": {
-              "version": "2.4.24",
-              "from": "uglify-js@~2.4.12",
-              "dependencies": {
-                "async": {
-                  "version": "0.2.10",
-                  "from": "async@~0.2.6"
-                },
-                "source-map": {
-                  "version": "0.1.34",
-                  "from": "source-map@0.1.34",
-                  "dependencies": {
-                    "amdefine": {
-                      "version": "1.0.1",
-                      "from": "amdefine@>=0.0.4"
-                    }
-                  }
-                },
-                "uglify-to-browserify": {
-                  "version": "1.0.2",
-                  "from": "uglify-to-browserify@~1.0.0"
-                },
-                "yargs": {
-                  "version": "3.5.4",
-                  "from": "yargs@~3.5.4",
-                  "dependencies": {
-                    "camelcase": {
-                      "version": "1.2.1",
-                      "from": "camelcase@^1.0.2"
-                    },
-                    "decamelize": {
-                      "version": "1.2.0",
-                      "from": "decamelize@^1.0.0"
-                    },
-                    "window-size": {
-                      "version": "0.1.0",
-                      "from": "window-size@0.1.0"
-                    },
-                    "wordwrap": {
-                      "version": "0.0.2",
-                      "from": "wordwrap@0.0.2"
-                    }
-                  }
-                }
-              }
-            }
-          }
+        "promise": {
+          "version": "7.1.1",
+          "from": "promise@>=7.0.1 <8.0.0",
+          "resolved": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz"
         }
       }
     },
-    "ldapjs": {
+    "kareem": {
       "version": "1.0.1",
-      "from": "ldapjs@^1.0.0",
+      "from": "kareem@1.0.1",
+      "resolved": "https://registry.npmjs.org/kareem/-/kareem-1.0.1.tgz"
+    },
+    "kerberos": {
+      "version": "0.0.23",
+      "from": "kerberos@>=0.0.0 <0.1.0",
+      "resolved": "https://registry.npmjs.org/kerberos/-/kerberos-0.0.23.tgz",
+      "optional": true,
+      "dependencies": {
+        "nan": {
+          "version": "2.5.1",
+          "from": "nan@>=2.5.1 <2.6.0",
+          "resolved": "https://registry.npmjs.org/nan/-/nan-2.5.1.tgz",
+          "optional": true
+        }
+      }
+    },
+    "kind-of": {
+      "version": "3.1.0",
+      "from": "kind-of@>=3.0.2 <4.0.0",
+      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.1.0.tgz"
+    },
+    "lazy-cache": {
+      "version": "1.0.4",
+      "from": "lazy-cache@>=1.0.3 <2.0.0",
+      "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz"
+    },
+    "lazystream": {
+      "version": "0.1.0",
+      "from": "lazystream@>=0.1.0 <0.2.0",
+      "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-0.1.0.tgz"
+    },
+    "ldap-filter": {
+      "version": "0.2.2",
+      "from": "ldap-filter@0.2.2",
+      "resolved": "https://registry.npmjs.org/ldap-filter/-/ldap-filter-0.2.2.tgz",
+      "dependencies": {
+        "assert-plus": {
+          "version": "0.1.5",
+          "from": "assert-plus@0.1.5",
+          "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz"
+        }
+      }
+    },
+    "ldapauth-fork": {
+      "version": "2.5.5",
+      "from": "ldapauth-fork@>=2.5.0 <2.6.0",
+      "resolved": "https://registry.npmjs.org/ldapauth-fork/-/ldapauth-fork-2.5.5.tgz",
       "dependencies": {
-        "asn1": {
-          "version": "0.2.3",
-          "from": "asn1@0.2.3"
-        },
         "assert-plus": {
           "version": "1.0.0",
-          "from": "assert-plus@^1.0.0"
+          "from": "assert-plus@>=1.0.0 <2.0.0",
+          "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
         },
         "bunyan": {
-          "version": "1.8.9",
-          "from": "bunyan@^1.8.3",
+          "version": "1.8.10",
+          "from": "bunyan@>=1.8.3 <2.0.0",
+          "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.10.tgz",
           "dependencies": {
             "dtrace-provider": {
               "version": "0.8.1",
-              "from": "dtrace-provider@~0.8",
-              "dependencies": {
-                "nan": {
-                  "version": "2.5.1",
-                  "from": "nan@^2.3.3"
-                }
-              }
-            },
-            "mv": {
-              "version": "2.1.1",
-              "from": "mv@~2",
-              "dependencies": {
-                "mkdirp": {
-                  "version": "0.5.1",
-                  "from": "mkdirp@~0.5.1",
-                  "dependencies": {
-                    "minimist": {
-                      "version": "0.0.8",
-                      "from": "minimist@0.0.8"
-                    }
-                  }
-                },
-                "ncp": {
-                  "version": "2.0.0",
-                  "from": "ncp@~2.0.0"
-                },
-                "rimraf": {
-                  "version": "2.4.5",
-                  "from": "rimraf@~2.4.0",
-                  "dependencies": {
-                    "glob": {
-                      "version": "6.0.4",
-                      "from": "glob@^6.0.1",
-                      "dependencies": {
-                        "inflight": {
-                          "version": "1.0.6",
-                          "from": "inflight@^1.0.4",
-                          "dependencies": {
-                            "wrappy": {
-                              "version": "1.0.2",
-                              "from": "wrappy@1"
-                            }
-                          }
-                        },
-                        "inherits": {
-                          "version": "2.0.3",
-                          "from": "inherits@2"
-                        },
-                        "minimatch": {
-                          "version": "3.0.3",
-                          "from": "minimatch@2 || 3",
-                          "dependencies": {
-                            "brace-expansion": {
-                              "version": "1.1.6",
-                              "from": "brace-expansion@^1.0.0",
-                              "dependencies": {
-                                "balanced-match": {
-                                  "version": "0.4.2",
-                                  "from": "balanced-match@^0.4.1"
-                                },
-                                "concat-map": {
-                                  "version": "0.0.1",
-                                  "from": "concat-map@0.0.1"
-                                }
-                              }
-                            }
-                          }
-                        },
-                        "path-is-absolute": {
-                          "version": "1.0.1",
-                          "from": "path-is-absolute@^1.0.0"
-                        }
-                      }
-                    }
-                  }
-                }
-              }
-            },
-            "safe-json-stringify": {
-              "version": "1.0.4",
-              "from": "safe-json-stringify@~1"
-            },
-            "moment": {
-              "version": "2.18.1",
-              "from": "moment@^2.10.6"
+              "from": "dtrace-provider@>=0.8.0 <0.9.0",
+              "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.1.tgz",
+              "optional": true
             }
           }
         },
-        "dashdash": {
-          "version": "1.14.1",
-          "from": "dashdash@^1.14.0"
+        "dtrace-provider": {
+          "version": "0.7.1",
+          "from": "dtrace-provider@>=0.7.0 <0.8.0",
+          "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.7.1.tgz",
+          "optional": true
         },
-        "backoff": {
-          "version": "2.5.0",
-          "from": "backoff@^2.5.0",
-          "dependencies": {
-            "precond": {
-              "version": "0.2.3",
-              "from": "precond@0.2"
-            }
-          }
+        "extsprintf": {
+          "version": "1.2.0",
+          "from": "extsprintf@1.2.0",
+          "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.2.0.tgz"
         },
-        "ldap-filter": {
-          "version": "0.2.2",
-          "from": "ldap-filter@0.2.2",
-          "dependencies": {
-            "assert-plus": {
-              "version": "0.1.5",
-              "from": "assert-plus@0.1.5"
-            }
-          }
+        "glob": {
+          "version": "6.0.4",
+          "from": "glob@>=6.0.1 <7.0.0",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
+          "optional": true
+        },
+        "ldapjs": {
+          "version": "1.0.1",
+          "from": "ldapjs@>=1.0.1 <1.1.0",
+          "resolved": "https://registry.npmjs.org/ldapjs/-/ldapjs-1.0.1.tgz"
+        },
+        "lru-cache": {
+          "version": "3.2.0",
+          "from": "lru-cache@3.2.0",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-3.2.0.tgz"
+        },
+        "minimatch": {
+          "version": "3.0.3",
+          "from": "minimatch@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
+          "optional": true
+        },
+        "mv": {
+          "version": "2.1.1",
+          "from": "mv@>=2.0.0 <3.0.0",
+          "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz",
+          "optional": true
         },
         "once": {
           "version": "1.4.0",
-          "from": "once@^1.3.0",
-          "dependencies": {
-            "wrappy": {
-              "version": "1.0.2",
-              "from": "wrappy@1"
-            }
-          }
+          "from": "once@>=1.4.0 <2.0.0",
+          "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
+        },
+        "rimraf": {
+          "version": "2.4.5",
+          "from": "rimraf@>=2.4.0 <2.5.0",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz",
+          "optional": true
         },
         "vasync": {
           "version": "1.6.4",
-          "from": "vasync@^1.6.4",
+          "from": "vasync@>=1.6.4 <2.0.0",
+          "resolved": "https://registry.npmjs.org/vasync/-/vasync-1.6.4.tgz",
           "dependencies": {
             "verror": {
               "version": "1.6.0",
               "from": "verror@1.6.0",
-              "dependencies": {
-                "extsprintf": {
-                  "version": "1.2.0",
-                  "from": "extsprintf@1.2.0"
-                }
-              }
+              "resolved": "https://registry.npmjs.org/verror/-/verror-1.6.0.tgz"
             }
           }
         },
         "verror": {
           "version": "1.9.0",
-          "from": "verror@^1.8.1",
-          "dependencies": {
-            "core-util-is": {
-              "version": "1.0.2",
-              "from": "core-util-is@1.0.2"
-            },
-            "extsprintf": {
-              "version": "1.3.0",
-              "from": "extsprintf@^1.2.0"
-            }
-          }
+          "from": "verror@>=1.8.1 <2.0.0",
+          "resolved": "https://registry.npmjs.org/verror/-/verror-1.9.0.tgz"
+        }
+      }
+    },
+    "ldapjs": {
+      "version": "0.7.1",
+      "from": "ldapjs@>=0.7.1 <0.8.0",
+      "resolved": "https://registry.npmjs.org/ldapjs/-/ldapjs-0.7.1.tgz",
+      "dependencies": {
+        "asn1": {
+          "version": "0.2.1",
+          "from": "asn1@0.2.1",
+          "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.1.tgz"
         },
-        "dtrace-provider": {
-          "version": "0.7.1",
-          "from": "dtrace-provider@^0.7.0",
-          "dependencies": {
-            "nan": {
-              "version": "2.5.1",
-              "from": "nan@^2.3.3"
-            }
-          }
+        "assert-plus": {
+          "version": "0.1.5",
+          "from": "assert-plus@0.1.5",
+          "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz"
+        },
+        "nopt": {
+          "version": "2.1.1",
+          "from": "nopt@2.1.1",
+          "resolved": "https://registry.npmjs.org/nopt/-/nopt-2.1.1.tgz"
+        }
+      }
+    },
+    "libbase64": {
+      "version": "0.1.0",
+      "from": "libbase64@0.1.0",
+      "resolved": "https://registry.npmjs.org/libbase64/-/libbase64-0.1.0.tgz"
+    },
+    "libmime": {
+      "version": "2.0.0",
+      "from": "libmime@2.0.0",
+      "resolved": "https://registry.npmjs.org/libmime/-/libmime-2.0.0.tgz",
+      "dependencies": {
+        "iconv-lite": {
+          "version": "0.4.13",
+          "from": "iconv-lite@0.4.13",
+          "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz"
         }
       }
     },
+    "libqp": {
+      "version": "1.1.0",
+      "from": "libqp@1.1.0",
+      "resolved": "https://registry.npmjs.org/libqp/-/libqp-1.1.0.tgz"
+    },
+    "loads": {
+      "version": "0.0.4",
+      "from": "loads@>=0.0.0 <0.1.0",
+      "resolved": "https://registry.npmjs.org/loads/-/loads-0.0.4.tgz"
+    },
     "lodash": {
       "version": "4.17.4",
-      "from": "lodash@^4.13.1"
+      "from": "lodash@>=4.13.1 <5.0.0",
+      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz"
     },
     "logger-sharelatex": {
-      "version": "1.3.1",
-      "from": "logger-sharelatex@git+https://github.com/sharelatex/logger-sharelatex.git#v1.3.1",
-      "resolved": "git+https://github.com/sharelatex/logger-sharelatex.git#bf413ec621a000cf0e08c939de38d5e24541a08c",
+      "version": "1.5.6",
+      "from": "git+https://github.com/sharelatex/logger-sharelatex.git#master",
+      "resolved": "git+https://github.com/sharelatex/logger-sharelatex.git#b2956ec56b582b9f4fc8fdda8dc00c06e77c5537",
       "dependencies": {
+        "ansi-regex": {
+          "version": "0.2.1",
+          "from": "ansi-regex@>=0.2.0 <0.3.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz"
+        },
+        "ansi-styles": {
+          "version": "1.1.0",
+          "from": "ansi-styles@>=1.1.0 <2.0.0",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz"
+        },
         "bunyan": {
           "version": "1.5.1",
           "from": "bunyan@1.5.1",
+          "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.5.1.tgz"
+        },
+        "chalk": {
+          "version": "0.5.1",
+          "from": "chalk@>=0.5.0 <0.6.0",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz"
+        },
+        "commander": {
+          "version": "2.0.0",
+          "from": "commander@2.0.0",
+          "resolved": "https://registry.npmjs.org/commander/-/commander-2.0.0.tgz"
+        },
+        "dtrace-provider": {
+          "version": "0.6.0",
+          "from": "dtrace-provider@>=0.6.0 <0.7.0",
+          "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.6.0.tgz",
+          "optional": true
+        },
+        "formatio": {
+          "version": "1.2.0",
+          "from": "formatio@1.2.0",
+          "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.2.0.tgz"
+        },
+        "glob": {
+          "version": "6.0.4",
+          "from": "glob@>=6.0.1 <7.0.0",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
+          "optional": true
+        },
+        "graceful-fs": {
+          "version": "2.0.3",
+          "from": "graceful-fs@>=2.0.0 <2.1.0",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz"
+        },
+        "grunt-contrib-clean": {
+          "version": "0.6.0",
+          "from": "grunt-contrib-clean@>=0.6.0 <0.7.0",
+          "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-0.6.0.tgz",
           "dependencies": {
-            "dtrace-provider": {
-              "version": "0.6.0",
-              "from": "dtrace-provider@~0.6",
-              "dependencies": {
-                "nan": {
-                  "version": "2.5.1",
-                  "from": "nan@^2.3.3"
-                }
-              }
-            },
-            "mv": {
-              "version": "2.1.1",
-              "from": "mv@~2",
-              "dependencies": {
-                "mkdirp": {
-                  "version": "0.5.1",
-                  "from": "mkdirp@~0.5.1",
-                  "dependencies": {
-                    "minimist": {
-                      "version": "0.0.8",
-                      "from": "minimist@0.0.8"
-                    }
-                  }
-                },
-                "ncp": {
-                  "version": "2.0.0",
-                  "from": "ncp@~2.0.0"
-                },
-                "rimraf": {
-                  "version": "2.4.5",
-                  "from": "rimraf@~2.4.0",
-                  "dependencies": {
-                    "glob": {
-                      "version": "6.0.4",
-                      "from": "glob@^6.0.1",
-                      "dependencies": {
-                        "inflight": {
-                          "version": "1.0.6",
-                          "from": "inflight@^1.0.4",
-                          "dependencies": {
-                            "wrappy": {
-                              "version": "1.0.2",
-                              "from": "wrappy@1"
-                            }
-                          }
-                        },
-                        "inherits": {
-                          "version": "2.0.3",
-                          "from": "inherits@2"
-                        },
-                        "minimatch": {
-                          "version": "3.0.3",
-                          "from": "minimatch@2 || 3",
-                          "dependencies": {
-                            "brace-expansion": {
-                              "version": "1.1.6",
-                              "from": "brace-expansion@^1.0.0",
-                              "dependencies": {
-                                "balanced-match": {
-                                  "version": "0.4.2",
-                                  "from": "balanced-match@^0.4.1"
-                                },
-                                "concat-map": {
-                                  "version": "0.0.1",
-                                  "from": "concat-map@0.0.1"
-                                }
-                              }
-                            }
-                          }
-                        },
-                        "once": {
-                          "version": "1.4.0",
-                          "from": "once@^1.3.0",
-                          "dependencies": {
-                            "wrappy": {
-                              "version": "1.0.2",
-                              "from": "wrappy@1"
-                            }
-                          }
-                        },
-                        "path-is-absolute": {
-                          "version": "1.0.1",
-                          "from": "path-is-absolute@^1.0.0"
-                        }
-                      }
-                    }
-                  }
-                }
-              }
-            },
-            "safe-json-stringify": {
-              "version": "1.0.4",
-              "from": "safe-json-stringify@~1"
+            "rimraf": {
+              "version": "2.2.8",
+              "from": "rimraf@>=2.2.1 <2.3.0",
+              "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"
             }
           }
         },
-        "coffee-script": {
-          "version": "1.4.0",
-          "from": "coffee-script@1.4.0"
-        },
-        "raven": {
-          "version": "0.8.1",
-          "from": "raven@^0.8.0",
-          "dependencies": {
-            "cookie": {
-              "version": "0.1.0",
-              "from": "cookie@0.1.0"
+        "grunt-contrib-coffee": {
+          "version": "0.11.1",
+          "from": "grunt-contrib-coffee@>=0.11.0 <0.12.0",
+          "resolved": "https://registry.npmjs.org/grunt-contrib-coffee/-/grunt-contrib-coffee-0.11.1.tgz",
+          "dependencies": {
+            "coffee-script": {
+              "version": "1.7.1",
+              "from": "coffee-script@>=1.7.0 <1.8.0",
+              "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.7.1.tgz"
+            },
+            "mkdirp": {
+              "version": "0.3.5",
+              "from": "mkdirp@>=0.3.5 <0.4.0",
+              "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz"
+            }
+          }
+        },
+        "grunt-mocha-test": {
+          "version": "0.11.0",
+          "from": "grunt-mocha-test@>=0.11.0 <0.12.0",
+          "resolved": "https://registry.npmjs.org/grunt-mocha-test/-/grunt-mocha-test-0.11.0.tgz"
+        },
+        "has-ansi": {
+          "version": "0.1.0",
+          "from": "has-ansi@>=0.1.0 <0.2.0",
+          "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz"
+        },
+        "jade": {
+          "version": "0.26.3",
+          "from": "jade@0.26.3",
+          "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz",
+          "dependencies": {
+            "commander": {
+              "version": "0.6.1",
+              "from": "commander@0.6.1",
+              "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz"
             },
-            "lsmod": {
-              "version": "0.0.3",
-              "from": "lsmod@~0.0.3"
+            "mkdirp": {
+              "version": "0.3.0",
+              "from": "mkdirp@0.3.0",
+              "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz"
+            }
+          }
+        },
+        "lodash": {
+          "version": "2.4.2",
+          "from": "lodash@>=2.4.1 <2.5.0",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz"
+        },
+        "lolex": {
+          "version": "1.6.0",
+          "from": "lolex@>=1.6.0 <2.0.0",
+          "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.6.0.tgz"
+        },
+        "minimatch": {
+          "version": "3.0.3",
+          "from": "minimatch@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
+          "optional": true
+        },
+        "mocha": {
+          "version": "1.20.1",
+          "from": "mocha@>=1.20.0 <1.21.0",
+          "resolved": "https://registry.npmjs.org/mocha/-/mocha-1.20.1.tgz",
+          "dependencies": {
+            "glob": {
+              "version": "3.2.3",
+              "from": "glob@3.2.3",
+              "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.3.tgz"
             },
-            "node-uuid": {
-              "version": "1.4.8",
-              "from": "node-uuid@~1.4.1"
+            "minimatch": {
+              "version": "0.2.14",
+              "from": "minimatch@>=0.2.11 <0.3.0",
+              "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz"
             },
-            "stack-trace": {
-              "version": "0.0.7",
-              "from": "stack-trace@0.0.7"
+            "mkdirp": {
+              "version": "0.3.5",
+              "from": "mkdirp@0.3.5",
+              "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz"
+            }
+          }
+        },
+        "mv": {
+          "version": "2.1.1",
+          "from": "mv@>=2.0.0 <3.0.0",
+          "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz",
+          "optional": true
+        },
+        "path-to-regexp": {
+          "version": "1.7.0",
+          "from": "path-to-regexp@>=1.7.0 <2.0.0",
+          "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz"
+        },
+        "rimraf": {
+          "version": "2.4.5",
+          "from": "rimraf@>=2.4.0 <2.5.0",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz",
+          "optional": true
+        },
+        "samsam": {
+          "version": "1.2.1",
+          "from": "samsam@>=1.1.3 <2.0.0",
+          "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.2.1.tgz"
+        },
+        "sandboxed-module": {
+          "version": "2.0.3",
+          "from": "sandboxed-module@latest",
+          "resolved": "https://registry.npmjs.org/sandboxed-module/-/sandboxed-module-2.0.3.tgz"
+        },
+        "sinon": {
+          "version": "2.1.0",
+          "from": "sinon@latest",
+          "resolved": "https://registry.npmjs.org/sinon/-/sinon-2.1.0.tgz",
+          "dependencies": {
+            "diff": {
+              "version": "3.2.0",
+              "from": "diff@>=3.1.0 <4.0.0",
+              "resolved": "https://registry.npmjs.org/diff/-/diff-3.2.0.tgz"
             }
           }
+        },
+        "strip-ansi": {
+          "version": "0.3.0",
+          "from": "strip-ansi@>=0.3.0 <0.4.0",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz"
+        },
+        "supports-color": {
+          "version": "0.2.0",
+          "from": "supports-color@>=0.2.0 <0.3.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz"
+        },
+        "type-detect": {
+          "version": "4.0.0",
+          "from": "type-detect@>=4.0.0 <5.0.0",
+          "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.0.tgz"
         }
       }
     },
+    "longest": {
+      "version": "1.0.1",
+      "from": "longest@>=1.0.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz"
+    },
+    "lru-cache": {
+      "version": "2.7.3",
+      "from": "lru-cache@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz"
+    },
+    "lsmod": {
+      "version": "1.0.0",
+      "from": "lsmod@1.0.0",
+      "resolved": "https://registry.npmjs.org/lsmod/-/lsmod-1.0.0.tgz"
+    },
     "lynx": {
       "version": "0.1.1",
       "from": "lynx@0.1.1",
-      "dependencies": {
-        "mersenne": {
-          "version": "0.0.3",
-          "from": "mersenne@~0.0.3"
-        },
-        "statsd-parser": {
-          "version": "0.0.4",
-          "from": "statsd-parser@~0.0.4"
-        }
-      }
+      "resolved": "https://registry.npmjs.org/lynx/-/lynx-0.1.1.tgz"
+    },
+    "mailcomposer": {
+      "version": "3.3.2",
+      "from": "mailcomposer@3.3.2",
+      "resolved": "https://registry.npmjs.org/mailcomposer/-/mailcomposer-3.3.2.tgz"
     },
     "marked": {
       "version": "0.3.6",
-      "from": "marked@^0.3.5"
+      "from": "marked@>=0.3.5 <0.4.0",
+      "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.6.tgz"
+    },
+    "media-typer": {
+      "version": "0.3.0",
+      "from": "media-typer@0.3.0",
+      "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"
+    },
+    "merge-descriptors": {
+      "version": "1.0.0",
+      "from": "merge-descriptors@1.0.0",
+      "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.0.tgz"
+    },
+    "mersenne": {
+      "version": "0.0.3",
+      "from": "mersenne@>=0.0.3 <0.1.0",
+      "resolved": "https://registry.npmjs.org/mersenne/-/mersenne-0.0.3.tgz"
     },
     "method-override": {
       "version": "2.3.8",
-      "from": "method-override@^2.3.3",
+      "from": "method-override@>=2.3.3 <3.0.0",
+      "resolved": "https://registry.npmjs.org/method-override/-/method-override-2.3.8.tgz",
       "dependencies": {
         "debug": {
           "version": "2.6.3",
           "from": "debug@2.6.3",
-          "dependencies": {
-            "ms": {
-              "version": "0.7.2",
-              "from": "ms@0.7.2"
-            }
-          }
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.3.tgz"
         },
-        "methods": {
-          "version": "1.1.2",
-          "from": "methods@~1.1.2"
-        },
-        "parseurl": {
-          "version": "1.3.1",
-          "from": "parseurl@~1.3.1"
+        "ms": {
+          "version": "0.7.2",
+          "from": "ms@0.7.2",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz"
         },
         "vary": {
           "version": "1.1.1",
-          "from": "vary@~1.1.0"
+          "from": "vary@>=1.1.0 <1.2.0",
+          "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.1.tgz"
         }
       }
     },
+    "methods": {
+      "version": "1.1.2",
+      "from": "methods@>=1.1.1 <1.2.0",
+      "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz"
+    },
     "metrics-sharelatex": {
       "version": "1.7.1",
-      "from": "metrics-sharelatex@git+https://github.com/sharelatex/metrics-sharelatex.git#v1.7.1",
+      "from": "git+https://github.com/sharelatex/metrics-sharelatex.git#v1.7.1",
       "resolved": "git+https://github.com/sharelatex/metrics-sharelatex.git#166961924c599b1f9468f2e17846fa2a9d12372d",
       "dependencies": {
         "coffee-script": {
           "version": "1.6.0",
-          "from": "coffee-script@1.6.0"
+          "from": "coffee-script@1.6.0",
+          "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.0.tgz"
         }
       }
     },
+    "microtime-nodejs": {
+      "version": "1.0.0",
+      "from": "microtime-nodejs@>=1.0.0 <1.1.0",
+      "resolved": "https://registry.npmjs.org/microtime-nodejs/-/microtime-nodejs-1.0.0.tgz"
+    },
+    "mime": {
+      "version": "1.3.4",
+      "from": "mime@1.3.4",
+      "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz"
+    },
+    "mime-db": {
+      "version": "1.27.0",
+      "from": "mime-db@>=1.27.0 <1.28.0",
+      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz"
+    },
+    "mime-types": {
+      "version": "2.1.15",
+      "from": "mime-types@>=2.1.7 <2.2.0",
+      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz"
+    },
     "mimelib": {
       "version": "0.2.14",
       "from": "mimelib@0.2.14",
-      "dependencies": {
-        "encoding": {
-          "version": "0.1.12",
-          "from": "encoding@~0.1",
-          "dependencies": {
-            "iconv-lite": {
-              "version": "0.4.15",
-              "from": "iconv-lite@~0.4.13"
-            }
-          }
-        },
-        "addressparser": {
-          "version": "0.2.1",
-          "from": "addressparser@~0.2.0"
-        }
-      }
+      "resolved": "https://registry.npmjs.org/mimelib/-/mimelib-0.2.14.tgz"
+    },
+    "minimatch": {
+      "version": "0.2.14",
+      "from": "minimatch@>=0.2.12 <0.3.0",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz"
+    },
+    "minimist": {
+      "version": "0.0.8",
+      "from": "minimist@0.0.8",
+      "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
+    },
+    "mkdirp": {
+      "version": "0.5.1",
+      "from": "mkdirp@>=0.5.0 <0.6.0",
+      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"
     },
     "mocha": {
       "version": "1.17.1",
       "from": "mocha@1.17.1",
+      "resolved": "https://registry.npmjs.org/mocha/-/mocha-1.17.1.tgz",
       "dependencies": {
         "commander": {
           "version": "2.0.0",
-          "from": "commander@2.0.0"
+          "from": "commander@2.0.0",
+          "resolved": "https://registry.npmjs.org/commander/-/commander-2.0.0.tgz"
         },
-        "growl": {
-          "version": "1.7.0",
-          "from": "growl@1.7.x"
+        "glob": {
+          "version": "3.2.3",
+          "from": "glob@3.2.3",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.3.tgz"
+        },
+        "graceful-fs": {
+          "version": "2.0.3",
+          "from": "graceful-fs@>=2.0.0 <2.1.0",
+          "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz"
         },
         "jade": {
           "version": "0.26.3",
           "from": "jade@0.26.3",
+          "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz",
           "dependencies": {
             "commander": {
               "version": "0.6.1",
-              "from": "commander@0.6.1"
+              "from": "commander@0.6.1",
+              "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz"
             },
             "mkdirp": {
               "version": "0.3.0",
-              "from": "mkdirp@0.3.0"
-            }
-          }
-        },
-        "diff": {
-          "version": "1.0.7",
-          "from": "diff@1.0.7"
-        },
-        "debug": {
-          "version": "2.6.3",
-          "from": "debug@*",
-          "dependencies": {
-            "ms": {
-              "version": "0.7.2",
-              "from": "ms@0.7.2"
+              "from": "mkdirp@0.3.0",
+              "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz"
             }
           }
         },
         "mkdirp": {
           "version": "0.3.5",
-          "from": "mkdirp@0.3.5"
+          "from": "mkdirp@0.3.5",
+          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz"
+        }
+      }
+    },
+    "moment": {
+      "version": "2.18.1",
+      "from": "moment@>=2.10.6 <3.0.0",
+      "resolved": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz"
+    },
+    "moment-timezone": {
+      "version": "0.5.13",
+      "from": "moment-timezone@>=0.5.4 <0.6.0",
+      "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.13.tgz"
+    },
+    "mongodb": {
+      "version": "2.2.25",
+      "from": "mongodb@>=2.0.45 <3.0.0",
+      "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-2.2.25.tgz",
+      "dependencies": {
+        "es6-promise": {
+          "version": "3.2.1",
+          "from": "es6-promise@3.2.1",
+          "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.2.1.tgz"
         },
-        "glob": {
-          "version": "3.2.3",
-          "from": "glob@3.2.3",
-          "dependencies": {
-            "minimatch": {
-              "version": "0.2.14",
-              "from": "minimatch@~0.2.11",
-              "dependencies": {
-                "lru-cache": {
-                  "version": "2.7.3",
-                  "from": "lru-cache@2"
-                },
-                "sigmund": {
-                  "version": "1.0.1",
-                  "from": "sigmund@~1.0.0"
-                }
-              }
-            },
-            "graceful-fs": {
-              "version": "2.0.3",
-              "from": "graceful-fs@~2.0.0"
-            },
-            "inherits": {
-              "version": "2.0.3",
-              "from": "inherits@2"
-            }
-          }
+        "isarray": {
+          "version": "1.0.0",
+          "from": "isarray@>=1.0.0 <1.1.0",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+        },
+        "readable-stream": {
+          "version": "2.1.5",
+          "from": "readable-stream@2.1.5",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz"
         }
       }
     },
+    "mongodb-core": {
+      "version": "2.1.9",
+      "from": "mongodb-core@2.1.9",
+      "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.9.tgz"
+    },
     "mongojs": {
-      "version": "0.18.2",
-      "from": "mongojs@0.18.2",
+      "version": "2.4.0",
+      "from": "mongojs@2.4.0",
+      "resolved": "https://registry.npmjs.org/mongojs/-/mongojs-2.4.0.tgz",
       "dependencies": {
-        "thunky": {
-          "version": "0.1.0",
-          "from": "thunky@~0.1.0"
+        "isarray": {
+          "version": "1.0.0",
+          "from": "isarray@>=1.0.0 <1.1.0",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
         },
         "readable-stream": {
-          "version": "1.1.14",
-          "from": "readable-stream@~1.1.9",
-          "dependencies": {
-            "core-util-is": {
-              "version": "1.0.2",
-              "from": "core-util-is@~1.0.0"
-            },
-            "isarray": {
-              "version": "0.0.1",
-              "from": "isarray@0.0.1"
-            },
-            "string_decoder": {
-              "version": "0.10.31",
-              "from": "string_decoder@~0.10.x"
-            },
-            "inherits": {
-              "version": "2.0.3",
-              "from": "inherits@~2.0.1"
-            }
-          }
-        },
-        "mongodb": {
-          "version": "1.4.32",
-          "from": "mongodb@1.4.32",
-          "dependencies": {
-            "bson": {
-              "version": "0.2.22",
-              "from": "bson@~0.2",
-              "dependencies": {
-                "nan": {
-                  "version": "1.8.4",
-                  "from": "nan@~1.8"
-                }
-              }
-            },
-            "kerberos": {
-              "version": "0.0.9",
-              "from": "kerberos@0.0.9",
-              "dependencies": {
-                "nan": {
-                  "version": "1.6.2",
-                  "from": "nan@1.6.2"
-                }
-              }
-            },
-            "readable-stream": {
-              "version": "2.2.6",
-              "from": "readable-stream@^2.0.2",
-              "dependencies": {
-                "buffer-shims": {
-                  "version": "1.0.0",
-                  "from": "buffer-shims@^1.0.0"
-                },
-                "core-util-is": {
-                  "version": "1.0.2",
-                  "from": "core-util-is@~1.0.0"
-                },
-                "isarray": {
-                  "version": "1.0.0",
-                  "from": "isarray@~1.0.0"
-                },
-                "inherits": {
-                  "version": "2.0.3",
-                  "from": "inherits@~2.0.1"
-                },
-                "process-nextick-args": {
-                  "version": "1.0.7",
-                  "from": "process-nextick-args@~1.0.6"
-                },
-                "string_decoder": {
-                  "version": "0.10.31",
-                  "from": "string_decoder@~0.10.x"
-                },
-                "util-deprecate": {
-                  "version": "1.0.2",
-                  "from": "util-deprecate@~1.0.1"
-                }
-              }
-            }
-          }
+          "version": "2.2.6",
+          "from": "readable-stream@>=2.0.2 <3.0.0",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.6.tgz"
         }
       }
     },
     "mongoose": {
       "version": "4.1.0",
       "from": "mongoose@4.1.0",
+      "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-4.1.0.tgz",
       "dependencies": {
         "async": {
           "version": "0.9.0",
-          "from": "async@0.9.0"
+          "from": "async@0.9.0",
+          "resolved": "https://registry.npmjs.org/async/-/async-0.9.0.tgz"
         },
         "bson": {
           "version": "0.3.2",
-          "from": "bson@~0.3",
-          "dependencies": {
-            "bson-ext": {
-              "version": "0.1.13",
-              "from": "bson-ext@~0.1",
-              "dependencies": {
-                "bindings": {
-                  "version": "1.2.1",
-                  "from": "bindings@^1.2.1"
-                },
-                "nan": {
-                  "version": "2.0.9",
-                  "from": "nan@~2.0.9"
-                }
-              }
-            }
-          }
-        },
-        "hooks-fixed": {
-          "version": "1.1.0",
-          "from": "hooks-fixed@1.1.0"
-        },
-        "kareem": {
-          "version": "1.0.1",
-          "from": "kareem@1.0.1"
+          "from": "bson@>=0.3.0 <0.4.0",
+          "resolved": "https://registry.npmjs.org/bson/-/bson-0.3.2.tgz"
         },
         "mongodb": {
           "version": "2.0.34",
           "from": "mongodb@2.0.34",
-          "dependencies": {
-            "mongodb-core": {
-              "version": "1.2.0",
-              "from": "mongodb-core@1.2.0",
-              "dependencies": {
-                "bson": {
-                  "version": "0.4.23",
-                  "from": "bson@~0.4"
-                },
-                "kerberos": {
-                  "version": "0.0.23",
-                  "from": "kerberos@~0.0",
-                  "dependencies": {
-                    "nan": {
-                      "version": "2.5.1",
-                      "from": "nan@~2.5.1"
-                    }
-                  }
-                }
-              }
-            },
-            "readable-stream": {
-              "version": "1.0.31",
-              "from": "readable-stream@1.0.31",
-              "dependencies": {
-                "core-util-is": {
-                  "version": "1.0.2",
-                  "from": "core-util-is@~1.0.0"
-                },
-                "isarray": {
-                  "version": "0.0.1",
-                  "from": "isarray@0.0.1"
-                },
-                "string_decoder": {
-                  "version": "0.10.31",
-                  "from": "string_decoder@~0.10.x"
-                },
-                "inherits": {
-                  "version": "2.0.3",
-                  "from": "inherits@~2.0.1"
-                }
-              }
-            }
-          }
-        },
-        "mpath": {
-          "version": "0.1.1",
-          "from": "mpath@0.1.1"
+          "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-2.0.34.tgz"
         },
-        "mpromise": {
-          "version": "0.5.4",
-          "from": "mpromise@0.5.4"
-        },
-        "mquery": {
-          "version": "1.6.1",
-          "from": "mquery@1.6.1",
+        "mongodb-core": {
+          "version": "1.2.0",
+          "from": "mongodb-core@1.2.0",
+          "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-1.2.0.tgz",
           "dependencies": {
-            "bluebird": {
-              "version": "2.9.26",
-              "from": "bluebird@2.9.26"
-            },
-            "debug": {
-              "version": "2.2.0",
-              "from": "debug@2.2.0",
-              "dependencies": {
-                "ms": {
-                  "version": "0.7.1",
-                  "from": "ms@0.7.1"
-                }
-              }
+            "bson": {
+              "version": "0.4.23",
+              "from": "bson@>=0.4.0 <0.5.0",
+              "resolved": "https://registry.npmjs.org/bson/-/bson-0.4.23.tgz"
             }
           }
         },
         "ms": {
           "version": "0.1.0",
-          "from": "ms@0.1.0"
+          "from": "ms@0.1.0",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-0.1.0.tgz"
         },
-        "muri": {
-          "version": "1.0.0",
-          "from": "muri@1.0.0"
+        "readable-stream": {
+          "version": "1.0.31",
+          "from": "readable-stream@1.0.31",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.31.tgz"
+        }
+      }
+    },
+    "monocle": {
+      "version": "1.1.51",
+      "from": "monocle@1.1.51",
+      "resolved": "https://registry.npmjs.org/monocle/-/monocle-1.1.51.tgz"
+    },
+    "mpath": {
+      "version": "0.1.1",
+      "from": "mpath@0.1.1",
+      "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.1.1.tgz"
+    },
+    "mpromise": {
+      "version": "0.5.4",
+      "from": "mpromise@0.5.4",
+      "resolved": "https://registry.npmjs.org/mpromise/-/mpromise-0.5.4.tgz"
+    },
+    "mquery": {
+      "version": "1.6.1",
+      "from": "mquery@1.6.1",
+      "resolved": "https://registry.npmjs.org/mquery/-/mquery-1.6.1.tgz",
+      "dependencies": {
+        "bluebird": {
+          "version": "2.9.26",
+          "from": "bluebird@2.9.26",
+          "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.9.26.tgz"
         },
-        "regexp-clone": {
-          "version": "0.0.1",
-          "from": "regexp-clone@0.0.1"
+        "debug": {
+          "version": "2.2.0",
+          "from": "debug@2.2.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz"
         },
-        "sliced": {
-          "version": "0.0.5",
-          "from": "sliced@0.0.5"
+        "ms": {
+          "version": "0.7.1",
+          "from": "ms@0.7.1",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz"
         }
       }
     },
+    "ms": {
+      "version": "0.6.2",
+      "from": "ms@0.6.2",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz"
+    },
     "multer": {
       "version": "0.1.8",
-      "from": "multer@^0.1.8",
+      "from": "multer@>=0.1.8 <0.2.0",
+      "resolved": "https://registry.npmjs.org/multer/-/multer-0.1.8.tgz",
       "dependencies": {
-        "busboy": {
-          "version": "0.2.14",
-          "from": "busboy@~0.2.9",
-          "dependencies": {
-            "dicer": {
-              "version": "0.2.5",
-              "from": "dicer@0.2.5",
-              "dependencies": {
-                "streamsearch": {
-                  "version": "0.1.2",
-                  "from": "streamsearch@0.1.2"
-                }
-              }
-            },
-            "readable-stream": {
-              "version": "1.1.14",
-              "from": "readable-stream@1.1.x",
-              "dependencies": {
-                "core-util-is": {
-                  "version": "1.0.2",
-                  "from": "core-util-is@~1.0.0"
-                },
-                "isarray": {
-                  "version": "0.0.1",
-                  "from": "isarray@0.0.1"
-                },
-                "string_decoder": {
-                  "version": "0.10.31",
-                  "from": "string_decoder@~0.10.x"
-                },
-                "inherits": {
-                  "version": "2.0.3",
-                  "from": "inherits@~2.0.1"
-                }
-              }
-            }
-          }
+        "mime-db": {
+          "version": "1.12.0",
+          "from": "mime-db@>=1.12.0 <1.13.0",
+          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz"
+        },
+        "mime-types": {
+          "version": "2.0.14",
+          "from": "mime-types@>=2.0.9 <2.1.0",
+          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz"
         },
         "mkdirp": {
           "version": "0.3.5",
-          "from": "mkdirp@~0.3.5"
+          "from": "mkdirp@>=0.3.5 <0.4.0",
+          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz"
         },
         "qs": {
           "version": "1.2.2",
-          "from": "qs@~1.2.2"
+          "from": "qs@>=1.2.2 <1.3.0",
+          "resolved": "https://registry.npmjs.org/qs/-/qs-1.2.2.tgz"
         },
         "type-is": {
           "version": "1.5.7",
-          "from": "type-is@~1.5.2",
-          "dependencies": {
-            "media-typer": {
-              "version": "0.3.0",
-              "from": "media-typer@0.3.0"
-            },
-            "mime-types": {
-              "version": "2.0.14",
-              "from": "mime-types@~2.0.9",
-              "dependencies": {
-                "mime-db": {
-                  "version": "1.12.0",
-                  "from": "mime-db@~1.12.0"
-                }
-              }
-            }
-          }
+          "from": "type-is@>=1.5.2 <1.6.0",
+          "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.5.7.tgz"
         }
       }
     },
-    "nodemailer": {
-      "version": "2.1.0",
-      "from": "nodemailer@2.1.0",
+    "muri": {
+      "version": "1.0.0",
+      "from": "muri@1.0.0",
+      "resolved": "https://registry.npmjs.org/muri/-/muri-1.0.0.tgz"
+    },
+    "mv": {
+      "version": "0.0.5",
+      "from": "mv@0.0.5",
+      "resolved": "https://registry.npmjs.org/mv/-/mv-0.0.5.tgz",
+      "optional": true
+    },
+    "nan": {
+      "version": "2.3.5",
+      "from": "nan@2.3.5",
+      "resolved": "https://registry.npmjs.org/nan/-/nan-2.3.5.tgz"
+    },
+    "native-promise-only": {
+      "version": "0.8.1",
+      "from": "native-promise-only@>=0.8.1 <0.9.0",
+      "resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz"
+    },
+    "ncp": {
+      "version": "2.0.0",
+      "from": "ncp@>=2.0.0 <2.1.0",
+      "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz",
+      "optional": true
+    },
+    "negotiator": {
+      "version": "0.5.3",
+      "from": "negotiator@0.5.3",
+      "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz"
+    },
+    "node-forge": {
+      "version": "0.2.24",
+      "from": "node-forge@0.2.24",
+      "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.2.24.tgz"
+    },
+    "node-pre-gyp": {
+      "version": "0.6.30",
+      "from": "node-pre-gyp@0.6.30",
+      "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.30.tgz",
       "dependencies": {
-        "libmime": {
-          "version": "2.0.0",
-          "from": "libmime@2.0.0",
-          "dependencies": {
-            "iconv-lite": {
-              "version": "0.4.13",
-              "from": "iconv-lite@0.4.13"
-            },
-            "libbase64": {
-              "version": "0.1.0",
-              "from": "libbase64@0.1.0"
-            },
-            "libqp": {
-              "version": "1.1.0",
-              "from": "libqp@1.1.0"
-            }
-          }
-        },
-        "mailcomposer": {
-          "version": "3.3.2",
-          "from": "mailcomposer@3.3.2",
-          "dependencies": {
-            "buildmail": {
-              "version": "3.3.2",
-              "from": "buildmail@3.3.2",
-              "dependencies": {
-                "addressparser": {
-                  "version": "1.0.0",
-                  "from": "addressparser@1.0.0"
-                },
-                "libbase64": {
-                  "version": "0.1.0",
-                  "from": "libbase64@0.1.0"
-                },
-                "libqp": {
-                  "version": "1.1.0",
-                  "from": "libqp@1.1.0"
-                },
-                "nodemailer-fetch": {
-                  "version": "1.2.1",
-                  "from": "nodemailer-fetch@1.2.1"
-                }
-              }
-            }
-          }
-        },
-        "nodemailer-direct-transport": {
-          "version": "2.0.1",
-          "from": "nodemailer-direct-transport@2.0.1",
-          "dependencies": {
-            "smtp-connection": {
-              "version": "2.0.1",
-              "from": "smtp-connection@2.0.1"
-            }
-          }
-        },
-        "nodemailer-shared": {
-          "version": "1.0.3",
-          "from": "nodemailer-shared@1.0.3",
-          "dependencies": {
-            "nodemailer-fetch": {
-              "version": "1.2.1",
-              "from": "nodemailer-fetch@1.2.1"
-            }
-          }
+        "glob": {
+          "version": "7.1.1",
+          "from": "glob@>=7.0.5 <8.0.0",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz"
         },
-        "nodemailer-smtp-pool": {
-          "version": "2.1.0",
-          "from": "nodemailer-smtp-pool@2.1.0",
-          "dependencies": {
-            "clone": {
-              "version": "1.0.2",
-              "from": "clone@1.0.2"
-            },
-            "nodemailer-wellknown": {
-              "version": "0.1.7",
-              "from": "nodemailer-wellknown@0.1.7"
-            },
-            "smtp-connection": {
-              "version": "2.0.1",
-              "from": "smtp-connection@2.0.1"
-            }
-          }
+        "minimatch": {
+          "version": "3.0.3",
+          "from": "minimatch@>=3.0.2 <4.0.0",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz"
         },
-        "nodemailer-smtp-transport": {
-          "version": "2.0.1",
-          "from": "nodemailer-smtp-transport@2.0.1",
-          "dependencies": {
-            "clone": {
-              "version": "1.0.2",
-              "from": "clone@1.0.2"
-            },
-            "nodemailer-wellknown": {
-              "version": "0.1.7",
-              "from": "nodemailer-wellknown@0.1.7"
-            },
-            "smtp-connection": {
-              "version": "2.0.1",
-              "from": "smtp-connection@2.0.1"
-            }
-          }
+        "rimraf": {
+          "version": "2.5.4",
+          "from": "rimraf@>=2.5.0 <2.6.0",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz"
         }
       }
     },
-    "nodemailer-sendgrid-transport": {
+    "nodemailer": {
+      "version": "2.1.0",
+      "from": "nodemailer@2.1.0",
+      "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-2.1.0.tgz"
+    },
+    "nodemailer-direct-transport": {
+      "version": "2.0.1",
+      "from": "nodemailer-direct-transport@2.0.1",
+      "resolved": "https://registry.npmjs.org/nodemailer-direct-transport/-/nodemailer-direct-transport-2.0.1.tgz"
+    },
+    "nodemailer-fetch": {
+      "version": "1.2.1",
+      "from": "nodemailer-fetch@1.2.1",
+      "resolved": "https://registry.npmjs.org/nodemailer-fetch/-/nodemailer-fetch-1.2.1.tgz"
+    },
+    "nodemailer-sendgrid-transport": {
       "version": "0.2.0",
-      "from": "nodemailer-sendgrid-transport@^0.2.0",
-      "dependencies": {
-        "sendgrid": {
-          "version": "1.9.2",
-          "from": "sendgrid@^1.8.0",
-          "dependencies": {
-            "mime": {
-              "version": "1.3.4",
-              "from": "mime@^1.2.9"
-            },
-            "lodash": {
-              "version": "3.10.1",
-              "from": "lodash@^3.0.1 || ^2.0.0"
-            },
-            "smtpapi": {
-              "version": "1.2.0",
-              "from": "smtpapi@^1.2.0"
-            }
-          }
-        }
-      }
+      "from": "nodemailer-sendgrid-transport@>=0.2.0 <0.3.0",
+      "resolved": "https://registry.npmjs.org/nodemailer-sendgrid-transport/-/nodemailer-sendgrid-transport-0.2.0.tgz"
     },
     "nodemailer-ses-transport": {
       "version": "1.5.0",
-      "from": "nodemailer-ses-transport@^1.3.0",
+      "from": "nodemailer-ses-transport@>=1.3.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/nodemailer-ses-transport/-/nodemailer-ses-transport-1.5.0.tgz"
+    },
+    "nodemailer-shared": {
+      "version": "1.0.3",
+      "from": "nodemailer-shared@1.0.3",
+      "resolved": "https://registry.npmjs.org/nodemailer-shared/-/nodemailer-shared-1.0.3.tgz"
+    },
+    "nodemailer-smtp-pool": {
+      "version": "2.1.0",
+      "from": "nodemailer-smtp-pool@2.1.0",
+      "resolved": "https://registry.npmjs.org/nodemailer-smtp-pool/-/nodemailer-smtp-pool-2.1.0.tgz"
+    },
+    "nodemailer-smtp-transport": {
+      "version": "2.0.1",
+      "from": "nodemailer-smtp-transport@2.0.1",
+      "resolved": "https://registry.npmjs.org/nodemailer-smtp-transport/-/nodemailer-smtp-transport-2.0.1.tgz"
+    },
+    "nodemailer-wellknown": {
+      "version": "0.1.7",
+      "from": "nodemailer-wellknown@0.1.7",
+      "resolved": "https://registry.npmjs.org/nodemailer-wellknown/-/nodemailer-wellknown-0.1.7.tgz"
+    },
+    "nopt": {
+      "version": "3.0.6",
+      "from": "nopt@>=3.0.1 <3.1.0",
+      "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz"
+    },
+    "npmlog": {
+      "version": "4.0.2",
+      "from": "npmlog@>=4.0.0 <5.0.0",
+      "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.0.2.tgz"
+    },
+    "number-is-nan": {
+      "version": "1.0.1",
+      "from": "number-is-nan@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"
+    },
+    "oauth-sign": {
+      "version": "0.8.2",
+      "from": "oauth-sign@>=0.8.1 <0.9.0",
+      "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz"
+    },
+    "object-assign": {
+      "version": "4.1.1",
+      "from": "object-assign@>=4.1.0 <5.0.0",
+      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
+    },
+    "on-finished": {
+      "version": "2.3.0",
+      "from": "on-finished@>=2.3.0 <2.4.0",
+      "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz"
+    },
+    "on-headers": {
+      "version": "1.0.1",
+      "from": "on-headers@>=1.0.1 <1.1.0",
+      "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz"
+    },
+    "once": {
+      "version": "1.3.3",
+      "from": "once@>=1.3.0 <1.4.0",
+      "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz"
+    },
+    "one-time": {
+      "version": "0.0.4",
+      "from": "one-time@>=0.0.0 <0.1.0",
+      "resolved": "https://registry.npmjs.org/one-time/-/one-time-0.0.4.tgz"
+    },
+    "optimist": {
+      "version": "0.6.1",
+      "from": "optimist@0.6.1",
+      "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz"
+    },
+    "os-homedir": {
+      "version": "1.0.2",
+      "from": "os-homedir@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz"
+    },
+    "os-tmpdir": {
+      "version": "1.0.2",
+      "from": "os-tmpdir@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz"
+    },
+    "osenv": {
+      "version": "0.1.4",
+      "from": "osenv@>=0.1.4 <0.2.0",
+      "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz"
+    },
+    "parse-mongo-url": {
+      "version": "1.1.1",
+      "from": "parse-mongo-url@>=1.1.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/parse-mongo-url/-/parse-mongo-url-1.1.1.tgz"
+    },
+    "parseurl": {
+      "version": "1.3.1",
+      "from": "parseurl@>=1.3.0 <1.4.0",
+      "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz"
+    },
+    "passport": {
+      "version": "0.3.2",
+      "from": "passport@>=0.3.2 <0.4.0",
+      "resolved": "https://registry.npmjs.org/passport/-/passport-0.3.2.tgz"
+    },
+    "passport-ldapauth": {
+      "version": "0.6.0",
+      "from": "passport-ldapauth@>=0.6.0 <0.7.0",
+      "resolved": "https://registry.npmjs.org/passport-ldapauth/-/passport-ldapauth-0.6.0.tgz"
+    },
+    "passport-local": {
+      "version": "1.0.0",
+      "from": "passport-local@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/passport-local/-/passport-local-1.0.0.tgz"
+    },
+    "passport-saml": {
+      "version": "0.15.0",
+      "from": "passport-saml@>=0.15.0 <0.16.0",
+      "resolved": "https://registry.npmjs.org/passport-saml/-/passport-saml-0.15.0.tgz",
       "dependencies": {
-        "aws-sdk": {
-          "version": "2.35.0",
-          "from": "aws-sdk@^2.6.12",
+        "xml2js": {
+          "version": "0.4.17",
+          "from": "xml2js@>=0.4.0 <0.5.0",
+          "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz",
           "dependencies": {
-            "buffer": {
-              "version": "4.9.1",
-              "from": "buffer@4.9.1",
-              "dependencies": {
-                "base64-js": {
-                  "version": "1.2.0",
-                  "from": "base64-js@^1.0.2"
-                },
-                "ieee754": {
-                  "version": "1.1.8",
-                  "from": "ieee754@^1.1.4"
-                },
-                "isarray": {
-                  "version": "1.0.0",
-                  "from": "isarray@^1.0.0"
-                }
-              }
-            },
-            "crypto-browserify": {
-              "version": "1.0.9",
-              "from": "crypto-browserify@1.0.9"
-            },
-            "jmespath": {
-              "version": "0.15.0",
-              "from": "jmespath@0.15.0"
-            },
-            "querystring": {
-              "version": "0.2.0",
-              "from": "querystring@0.2.0"
-            },
-            "sax": {
-              "version": "1.1.5",
-              "from": "sax@1.1.5"
-            },
-            "url": {
-              "version": "0.10.3",
-              "from": "url@0.10.3",
-              "dependencies": {
-                "punycode": {
-                  "version": "1.3.2",
-                  "from": "punycode@1.3.2"
-                }
-              }
-            },
-            "uuid": {
-              "version": "3.0.0",
-              "from": "uuid@3.0.0"
-            },
-            "xml2js": {
-              "version": "0.4.15",
-              "from": "xml2js@0.4.15"
-            },
             "xmlbuilder": {
-              "version": "2.6.2",
-              "from": "xmlbuilder@2.6.2",
-              "dependencies": {
-                "lodash": {
-                  "version": "3.5.0",
-                  "from": "lodash@~3.5.0"
-                }
-              }
+              "version": "4.2.1",
+              "from": "xmlbuilder@^4.1.0",
+              "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz"
+            }
+          }
+        },
+        "xmlbuilder": {
+          "version": "2.5.2",
+          "from": "xmlbuilder@>=2.5.0 <2.6.0",
+          "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-2.5.2.tgz",
+          "dependencies": {
+            "lodash": {
+              "version": "3.2.0",
+              "from": "lodash@>=3.2.0 <3.3.0",
+              "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.2.0.tgz"
             }
           }
         }
       }
     },
-    "optimist": {
-      "version": "0.6.1",
-      "from": "optimist@0.6.1",
+    "passport-strategy": {
+      "version": "1.0.0",
+      "from": "passport-strategy@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz"
+    },
+    "path-is-absolute": {
+      "version": "1.0.1",
+      "from": "path-is-absolute@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+    },
+    "path-parse": {
+      "version": "1.0.5",
+      "from": "path-parse@>=1.0.5 <2.0.0",
+      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz"
+    },
+    "path-to-regexp": {
+      "version": "0.1.6",
+      "from": "path-to-regexp@0.1.6",
+      "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.6.tgz"
+    },
+    "pause": {
+      "version": "0.0.1",
+      "from": "pause@0.0.1",
+      "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz"
+    },
+    "performance-now": {
+      "version": "0.2.0",
+      "from": "performance-now@>=0.2.0 <0.3.0",
+      "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz"
+    },
+    "pooling": {
+      "version": "0.4.6",
+      "from": "pooling@0.4.6",
+      "resolved": "https://registry.npmjs.org/pooling/-/pooling-0.4.6.tgz",
       "dependencies": {
-        "wordwrap": {
-          "version": "0.0.3",
-          "from": "wordwrap@~0.0.2"
+        "assert-plus": {
+          "version": "0.1.5",
+          "from": "assert-plus@0.1.5",
+          "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz"
         },
-        "minimist": {
-          "version": "0.0.10",
-          "from": "minimist@~0.0.1"
+        "once": {
+          "version": "1.3.0",
+          "from": "once@1.3.0",
+          "resolved": "https://registry.npmjs.org/once/-/once-1.3.0.tgz"
         }
       }
     },
-    "passport": {
-      "version": "0.3.2",
-      "from": "passport@^0.3.2",
+    "precond": {
+      "version": "0.2.3",
+      "from": "precond@>=0.2.0 <0.3.0",
+      "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz"
+    },
+    "process-nextick-args": {
+      "version": "1.0.7",
+      "from": "process-nextick-args@>=1.0.6 <1.1.0",
+      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz"
+    },
+    "promise": {
+      "version": "2.0.0",
+      "from": "promise@>=2.0.0 <2.1.0",
+      "resolved": "https://registry.npmjs.org/promise/-/promise-2.0.0.tgz"
+    },
+    "proxy-addr": {
+      "version": "1.0.10",
+      "from": "proxy-addr@>=1.0.8 <1.1.0",
+      "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.10.tgz"
+    },
+    "pseudomap": {
+      "version": "1.0.2",
+      "from": "pseudomap@>=1.0.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz"
+    },
+    "pug": {
+      "version": "2.0.0-beta9",
+      "from": "pug@>=2.0.0-beta6 <3.0.0",
+      "resolved": "https://registry.npmjs.org/pug/-/pug-2.0.0-beta9.tgz"
+    },
+    "pug-attrs": {
+      "version": "2.0.2",
+      "from": "pug-attrs@>=2.0.2 <3.0.0",
+      "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.2.tgz",
       "dependencies": {
-        "passport-strategy": {
-          "version": "1.0.0",
-          "from": "passport-strategy@1.x.x"
+        "constantinople": {
+          "version": "3.1.0",
+          "from": "constantinople@>=3.0.1 <4.0.0",
+          "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.0.tgz"
+        }
+      }
+    },
+    "pug-code-gen": {
+      "version": "1.1.1",
+      "from": "pug-code-gen@>=1.1.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-1.1.1.tgz",
+      "dependencies": {
+        "constantinople": {
+          "version": "3.1.0",
+          "from": "constantinople@>=3.0.1 <4.0.0",
+          "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.0.tgz"
         },
-        "pause": {
-          "version": "0.0.1",
-          "from": "pause@0.0.1"
+        "with": {
+          "version": "5.1.1",
+          "from": "with@>=5.0.0 <6.0.0",
+          "resolved": "https://registry.npmjs.org/with/-/with-5.1.1.tgz"
         }
       }
     },
-    "passport-ldapauth": {
-      "version": "0.6.0",
-      "from": "passport-ldapauth@^0.6.0",
+    "pug-error": {
+      "version": "1.3.2",
+      "from": "pug-error@>=1.3.2 <2.0.0",
+      "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-1.3.2.tgz"
+    },
+    "pug-filters": {
+      "version": "2.1.1",
+      "from": "pug-filters@>=2.1.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-2.1.1.tgz",
       "dependencies": {
-        "passport-strategy": {
-          "version": "1.0.0",
-          "from": "passport-strategy@1.x.x"
+        "constantinople": {
+          "version": "3.1.0",
+          "from": "constantinople@>=3.0.1 <4.0.0",
+          "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.0.tgz"
+        },
+        "source-map": {
+          "version": "0.5.6",
+          "from": "source-map@>=0.5.1 <0.6.0",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz"
+        },
+        "uglify-js": {
+          "version": "2.8.21",
+          "from": "uglify-js@>=2.6.1 <3.0.0",
+          "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.21.tgz"
+        },
+        "yargs": {
+          "version": "3.10.0",
+          "from": "yargs@>=3.10.0 <3.11.0",
+          "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz"
+        }
+      }
+    },
+    "pug-lexer": {
+      "version": "2.3.2",
+      "from": "pug-lexer@>=2.3.1 <3.0.0",
+      "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-2.3.2.tgz",
+      "dependencies": {
+        "acorn": {
+          "version": "4.0.11",
+          "from": "acorn@>=4.0.2 <4.1.0",
+          "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.11.tgz"
         },
-        "ldapauth-fork": {
-          "version": "2.5.5",
-          "from": "ldapauth-fork@~2.5.0",
-          "dependencies": {
-            "bcryptjs": {
-              "version": "2.3.0",
-              "from": "bcryptjs@2.3.0"
-            },
-            "lru-cache": {
-              "version": "3.2.0",
-              "from": "lru-cache@3.2.0",
-              "dependencies": {
-                "pseudomap": {
-                  "version": "1.0.2",
-                  "from": "pseudomap@^1.0.1"
-                }
-              }
-            }
-          }
+        "character-parser": {
+          "version": "2.2.0",
+          "from": "character-parser@>=2.1.1 <3.0.0",
+          "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz"
+        },
+        "is-expression": {
+          "version": "3.0.0",
+          "from": "is-expression@>=3.0.0 <4.0.0",
+          "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz"
         }
       }
     },
-    "passport-local": {
+    "pug-linker": {
+      "version": "2.0.2",
+      "from": "pug-linker@>=2.0.1 <3.0.0",
+      "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-2.0.2.tgz"
+    },
+    "pug-load": {
+      "version": "2.0.5",
+      "from": "pug-load@>=2.0.4 <3.0.0",
+      "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.5.tgz"
+    },
+    "pug-parser": {
+      "version": "2.0.2",
+      "from": "pug-parser@>=2.0.2 <3.0.0",
+      "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-2.0.2.tgz"
+    },
+    "pug-runtime": {
+      "version": "2.0.3",
+      "from": "pug-runtime@>=2.0.3 <3.0.0",
+      "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.3.tgz"
+    },
+    "pug-strip-comments": {
+      "version": "1.0.2",
+      "from": "pug-strip-comments@>=1.0.2 <2.0.0",
+      "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.2.tgz"
+    },
+    "pug-walk": {
+      "version": "1.1.1",
+      "from": "pug-walk@>=1.1.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.1.tgz"
+    },
+    "punycode": {
+      "version": "1.4.1",
+      "from": "punycode@>=1.4.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz"
+    },
+    "q": {
+      "version": "1.1.2",
+      "from": "q@>=1.1.0 <1.2.0",
+      "resolved": "https://registry.npmjs.org/q/-/q-1.1.2.tgz"
+    },
+    "qs": {
+      "version": "6.4.0",
+      "from": "qs@>=6.4.0 <6.5.0",
+      "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz"
+    },
+    "querystring": {
+      "version": "0.2.0",
+      "from": "querystring@0.2.0",
+      "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz"
+    },
+    "random-bytes": {
       "version": "1.0.0",
-      "from": "passport-local@^1.0.0",
+      "from": "random-bytes@>=1.0.0 <1.1.0",
+      "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz"
+    },
+    "range-parser": {
+      "version": "1.0.3",
+      "from": "range-parser@>=1.0.2 <1.1.0",
+      "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz"
+    },
+    "raven": {
+      "version": "1.2.0",
+      "from": "raven@>=1.1.3 <2.0.0",
+      "resolved": "https://registry.npmjs.org/raven/-/raven-1.2.0.tgz",
       "dependencies": {
-        "passport-strategy": {
-          "version": "1.0.0",
-          "from": "passport-strategy@1.x.x"
+        "cookie": {
+          "version": "0.3.1",
+          "from": "cookie@0.3.1",
+          "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz"
+        },
+        "uuid": {
+          "version": "3.0.0",
+          "from": "uuid@3.0.0",
+          "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.0.tgz"
+        }
+      }
+    },
+    "raw-body": {
+      "version": "2.2.0",
+      "from": "raw-body@>=2.2.0 <2.3.0",
+      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.2.0.tgz",
+      "dependencies": {
+        "iconv-lite": {
+          "version": "0.4.15",
+          "from": "iconv-lite@0.4.15",
+          "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz"
+        }
+      }
+    },
+    "rc": {
+      "version": "1.1.7",
+      "from": "rc@>=1.1.0 <1.2.0",
+      "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.7.tgz",
+      "dependencies": {
+        "minimist": {
+          "version": "1.2.0",
+          "from": "minimist@>=1.2.0 <2.0.0",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz"
         }
       }
     },
+    "readable-stream": {
+      "version": "1.0.34",
+      "from": "readable-stream@>=1.0.24 <1.1.0",
+      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz"
+    },
+    "readdirp": {
+      "version": "0.2.5",
+      "from": "readdirp@>=0.2.3 <0.3.0",
+      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-0.2.5.tgz"
+    },
     "redis": {
       "version": "0.10.1",
-      "from": "redis@0.10.1"
+      "from": "redis@0.10.1",
+      "resolved": "https://registry.npmjs.org/redis/-/redis-0.10.1.tgz"
+    },
+    "redis-commands": {
+      "version": "1.3.1",
+      "from": "redis-commands@>=1.2.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.3.1.tgz"
+    },
+    "redis-parser": {
+      "version": "2.6.0",
+      "from": "redis-parser@>=2.5.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-2.6.0.tgz"
+    },
+    "redis-sentinel": {
+      "version": "0.1.1",
+      "from": "redis-sentinel@0.1.1",
+      "resolved": "https://registry.npmjs.org/redis-sentinel/-/redis-sentinel-0.1.1.tgz",
+      "dependencies": {
+        "q": {
+          "version": "0.9.2",
+          "from": "q@0.9.2",
+          "resolved": "https://registry.npmjs.org/q/-/q-0.9.2.tgz"
+        },
+        "redis": {
+          "version": "0.11.0",
+          "from": "redis@>=0.11.0 <0.12.0",
+          "resolved": "https://registry.npmjs.org/redis/-/redis-0.11.0.tgz"
+        }
+      }
     },
     "redis-sharelatex": {
       "version": "0.0.9",
       "from": "redis-sharelatex@0.0.9",
+      "resolved": "https://registry.npmjs.org/redis-sharelatex/-/redis-sharelatex-0.0.9.tgz",
       "dependencies": {
+        "ansi-regex": {
+          "version": "0.2.1",
+          "from": "ansi-regex@^0.2.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz"
+        },
+        "ansi-styles": {
+          "version": "1.1.0",
+          "from": "ansi-styles@^1.1.0",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz"
+        },
+        "assertion-error": {
+          "version": "1.0.0",
+          "from": "assertion-error@1.0.0",
+          "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.0.tgz"
+        },
         "chai": {
           "version": "1.9.1",
           "from": "chai@1.9.1",
-          "dependencies": {
-            "assertion-error": {
-              "version": "1.0.0",
-              "from": "assertion-error@1.0.0"
-            },
-            "deep-eql": {
-              "version": "0.1.3",
-              "from": "deep-eql@^0.1.3",
-              "dependencies": {
-                "type-detect": {
-                  "version": "0.1.1",
-                  "from": "type-detect@0.1.1"
-                }
-              }
-            }
-          }
+          "resolved": "https://registry.npmjs.org/chai/-/chai-1.9.1.tgz"
+        },
+        "chalk": {
+          "version": "0.5.1",
+          "from": "chalk@~0.5.0",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz"
         },
         "coffee-script": {
           "version": "1.8.0",
           "from": "coffee-script@1.8.0",
+          "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.8.0.tgz"
+        },
+        "commander": {
+          "version": "2.0.0",
+          "from": "commander@2.0.0",
+          "resolved": "https://registry.npmjs.org/commander/-/commander-2.0.0.tgz"
+        },
+        "formatio": {
+          "version": "1.0.2",
+          "from": "formatio@>=1.0.0 <1.1.0",
+          "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.0.2.tgz"
+        },
+        "fs-extra": {
+          "version": "0.11.1",
+          "from": "fs-extra@>=0.11.1 <0.12.0",
+          "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.11.1.tgz",
           "dependencies": {
             "mkdirp": {
-              "version": "0.3.5",
-              "from": "mkdirp@~0.3.5"
+              "version": "0.5.1",
+              "from": "mkdirp@^0.5.0",
+              "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"
             }
           }
         },
+        "glob": {
+          "version": "7.1.1",
+          "from": "glob@>=7.0.5 <8.0.0",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz"
+        },
+        "growl": {
+          "version": "1.8.1",
+          "from": "growl@>=1.8.0 <1.9.0",
+          "resolved": "https://registry.npmjs.org/growl/-/growl-1.8.1.tgz"
+        },
         "grunt-contrib-coffee": {
           "version": "0.11.1",
           "from": "grunt-contrib-coffee@0.11.1",
+          "resolved": "https://registry.npmjs.org/grunt-contrib-coffee/-/grunt-contrib-coffee-0.11.1.tgz",
           "dependencies": {
             "coffee-script": {
               "version": "1.7.1",
               "from": "coffee-script@~1.7.0",
-              "dependencies": {
-                "mkdirp": {
-                  "version": "0.3.5",
-                  "from": "mkdirp@~0.3.5"
-                }
-              }
-            },
-            "chalk": {
-              "version": "0.5.1",
-              "from": "chalk@~0.5.0",
-              "dependencies": {
-                "ansi-styles": {
-                  "version": "1.1.0",
-                  "from": "ansi-styles@^1.1.0"
-                },
-                "escape-string-regexp": {
-                  "version": "1.0.5",
-                  "from": "escape-string-regexp@^1.0.0"
-                },
-                "has-ansi": {
-                  "version": "0.1.0",
-                  "from": "has-ansi@^0.1.0",
-                  "dependencies": {
-                    "ansi-regex": {
-                      "version": "0.2.1",
-                      "from": "ansi-regex@^0.2.1"
-                    }
-                  }
-                },
-                "strip-ansi": {
-                  "version": "0.3.0",
-                  "from": "strip-ansi@^0.3.0",
-                  "dependencies": {
-                    "ansi-regex": {
-                      "version": "0.2.1",
-                      "from": "ansi-regex@^0.2.1"
-                    }
-                  }
-                },
-                "supports-color": {
-                  "version": "0.2.0",
-                  "from": "supports-color@^0.2.0"
-                }
-              }
-            },
-            "lodash": {
-              "version": "2.4.2",
-              "from": "lodash@~2.4.1"
+              "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.7.1.tgz"
             }
           }
         },
         "grunt-mocha-test": {
           "version": "0.12.0",
           "from": "grunt-mocha-test@0.12.0",
+          "resolved": "https://registry.npmjs.org/grunt-mocha-test/-/grunt-mocha-test-0.12.0.tgz"
+        },
+        "has-ansi": {
+          "version": "0.1.0",
+          "from": "has-ansi@^0.1.0",
+          "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz"
+        },
+        "jade": {
+          "version": "0.26.3",
+          "from": "jade@0.26.3",
+          "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz",
           "dependencies": {
-            "hooker": {
-              "version": "0.2.3",
-              "from": "hooker@~0.2.3"
+            "commander": {
+              "version": "0.6.1",
+              "from": "commander@0.6.1",
+              "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz"
             },
-            "fs-extra": {
-              "version": "0.11.1",
-              "from": "fs-extra@~0.11.1",
-              "dependencies": {
-                "ncp": {
-                  "version": "0.6.0",
-                  "from": "ncp@^0.6.0"
-                },
-                "mkdirp": {
-                  "version": "0.5.1",
-                  "from": "mkdirp@^0.5.0",
-                  "dependencies": {
-                    "minimist": {
-                      "version": "0.0.8",
-                      "from": "minimist@0.0.8"
-                    }
-                  }
-                },
-                "jsonfile": {
-                  "version": "2.4.0",
-                  "from": "jsonfile@^2.0.0",
-                  "dependencies": {
-                    "graceful-fs": {
-                      "version": "4.1.11",
-                      "from": "graceful-fs@^4.1.6"
-                    }
-                  }
-                },
-                "rimraf": {
-                  "version": "2.6.1",
-                  "from": "rimraf@^2.2.8",
-                  "dependencies": {
-                    "glob": {
-                      "version": "7.1.1",
-                      "from": "glob@^7.0.5",
-                      "dependencies": {
-                        "fs.realpath": {
-                          "version": "1.0.0",
-                          "from": "fs.realpath@^1.0.0"
-                        },
-                        "inflight": {
-                          "version": "1.0.6",
-                          "from": "inflight@^1.0.4",
-                          "dependencies": {
-                            "wrappy": {
-                              "version": "1.0.2",
-                              "from": "wrappy@1"
-                            }
-                          }
-                        },
-                        "inherits": {
-                          "version": "2.0.3",
-                          "from": "inherits@2"
-                        },
-                        "minimatch": {
-                          "version": "3.0.3",
-                          "from": "minimatch@^3.0.2",
-                          "dependencies": {
-                            "brace-expansion": {
-                              "version": "1.1.6",
-                              "from": "brace-expansion@^1.0.0",
-                              "dependencies": {
-                                "balanced-match": {
-                                  "version": "0.4.2",
-                                  "from": "balanced-match@^0.4.1"
-                                },
-                                "concat-map": {
-                                  "version": "0.0.1",
-                                  "from": "concat-map@0.0.1"
-                                }
-                              }
-                            }
-                          }
-                        },
-                        "once": {
-                          "version": "1.4.0",
-                          "from": "once@^1.3.0",
-                          "dependencies": {
-                            "wrappy": {
-                              "version": "1.0.2",
-                              "from": "wrappy@1"
-                            }
-                          }
-                        },
-                        "path-is-absolute": {
-                          "version": "1.0.1",
-                          "from": "path-is-absolute@^1.0.0"
-                        }
-                      }
-                    }
-                  }
-                }
-              }
+            "mkdirp": {
+              "version": "0.3.0",
+              "from": "mkdirp@0.3.0",
+              "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz"
             }
           }
         },
+        "jsonfile": {
+          "version": "2.4.0",
+          "from": "jsonfile@>=2.0.0 <3.0.0",
+          "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz"
+        },
+        "lodash": {
+          "version": "2.4.2",
+          "from": "lodash@~2.4.1",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz"
+        },
+        "minimatch": {
+          "version": "3.0.3",
+          "from": "minimatch@>=3.0.2 <4.0.0",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz"
+        },
+        "mkdirp": {
+          "version": "0.3.5",
+          "from": "mkdirp@>=0.3.5 <0.4.0",
+          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz"
+        },
         "mocha": {
           "version": "1.21.4",
           "from": "mocha@1.21.4",
+          "resolved": "https://registry.npmjs.org/mocha/-/mocha-1.21.4.tgz",
           "dependencies": {
-            "commander": {
-              "version": "2.0.0",
-              "from": "commander@2.0.0"
-            },
-            "growl": {
-              "version": "1.8.1",
-              "from": "growl@1.8.x"
-            },
-            "jade": {
-              "version": "0.26.3",
-              "from": "jade@0.26.3",
-              "dependencies": {
-                "commander": {
-                  "version": "0.6.1",
-                  "from": "commander@0.6.1"
-                },
-                "mkdirp": {
-                  "version": "0.3.0",
-                  "from": "mkdirp@0.3.0"
-                }
-              }
-            },
-            "diff": {
-              "version": "1.0.7",
-              "from": "diff@1.0.7"
-            },
-            "debug": {
-              "version": "2.6.3",
-              "from": "debug@*",
-              "dependencies": {
-                "ms": {
-                  "version": "0.7.2",
-                  "from": "ms@0.7.2"
-                }
-              }
-            },
-            "mkdirp": {
-              "version": "0.3.5",
-              "from": "mkdirp@~0.3.5"
-            },
             "glob": {
               "version": "3.2.3",
               "from": "glob@3.2.3",
-              "dependencies": {
-                "minimatch": {
-                  "version": "0.2.14",
-                  "from": "minimatch@~0.2.11",
-                  "dependencies": {
-                    "lru-cache": {
-                      "version": "2.7.3",
-                      "from": "lru-cache@2"
-                    },
-                    "sigmund": {
-                      "version": "1.0.1",
-                      "from": "sigmund@~1.0.0"
-                    }
-                  }
-                },
-                "graceful-fs": {
-                  "version": "2.0.3",
-                  "from": "graceful-fs@~2.0.0"
-                },
-                "inherits": {
-                  "version": "2.0.3",
-                  "from": "inherits@2"
-                }
-              }
+              "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.3.tgz"
+            },
+            "graceful-fs": {
+              "version": "2.0.3",
+              "from": "graceful-fs@>=2.0.0 <2.1.0",
+              "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz"
+            },
+            "minimatch": {
+              "version": "0.2.14",
+              "from": "minimatch@~0.2.11",
+              "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz"
             }
           }
         },
+        "ncp": {
+          "version": "0.6.0",
+          "from": "ncp@>=0.6.0 <0.7.0",
+          "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.6.0.tgz"
+        },
         "redis": {
           "version": "0.12.1",
-          "from": "redis@0.12.1"
+          "from": "redis@0.12.1",
+          "resolved": "https://registry.npmjs.org/redis/-/redis-0.12.1.tgz"
         },
-        "redis-sentinel": {
-          "version": "0.1.1",
-          "from": "redis-sentinel@0.1.1",
-          "dependencies": {
-            "redis": {
-              "version": "0.11.0",
-              "from": "redis@0.11.x"
-            },
-            "q": {
-              "version": "0.9.2",
-              "from": "q@0.9.2"
-            }
-          }
+        "rimraf": {
+          "version": "2.6.1",
+          "from": "rimraf@>=2.2.8 <3.0.0",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz"
+        },
+        "samsam": {
+          "version": "1.1.3",
+          "from": "samsam@>=1.1.0 <1.2.0",
+          "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.1.3.tgz"
         },
         "sandboxed-module": {
           "version": "1.0.1",
           "from": "sandboxed-module@1.0.1",
-          "dependencies": {
-            "require-like": {
-              "version": "0.1.2",
-              "from": "require-like@0.1.2"
-            },
-            "stack-trace": {
-              "version": "0.0.9",
-              "from": "stack-trace@0.0.9"
-            }
-          }
+          "resolved": "https://registry.npmjs.org/sandboxed-module/-/sandboxed-module-1.0.1.tgz"
         },
         "sinon": {
           "version": "1.10.3",
           "from": "sinon@1.10.3",
-          "dependencies": {
-            "formatio": {
-              "version": "1.0.2",
-              "from": "formatio@~1.0",
-              "dependencies": {
-                "samsam": {
-                  "version": "1.1.3",
-                  "from": "samsam@~1.1"
-                }
-              }
-            },
-            "util": {
-              "version": "0.10.3",
-              "from": "util@>=0.10.3 <1",
-              "dependencies": {
-                "inherits": {
-                  "version": "2.0.1",
-                  "from": "inherits@2.0.1"
-                }
-              }
-            }
-          }
+          "resolved": "https://registry.npmjs.org/sinon/-/sinon-1.10.3.tgz"
+        },
+        "strip-ansi": {
+          "version": "0.3.0",
+          "from": "strip-ansi@^0.3.0",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz"
+        },
+        "supports-color": {
+          "version": "0.2.0",
+          "from": "supports-color@^0.2.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz"
         },
         "underscore": {
           "version": "1.7.0",
-          "from": "underscore@1.7.0"
+          "from": "underscore@1.7.0",
+          "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz"
         }
       }
     },
+    "regexp-clone": {
+      "version": "0.0.1",
+      "from": "regexp-clone@0.0.1",
+      "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-0.0.1.tgz"
+    },
+    "repeat-string": {
+      "version": "1.6.1",
+      "from": "repeat-string@>=1.5.2 <2.0.0",
+      "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz"
+    },
     "request": {
       "version": "2.81.0",
-      "from": "request@^2.69.0",
-      "dependencies": {
-        "aws-sign2": {
-          "version": "0.6.0",
-          "from": "aws-sign2@~0.6.0"
-        },
-        "aws4": {
-          "version": "1.6.0",
-          "from": "aws4@^1.2.1"
-        },
-        "caseless": {
-          "version": "0.12.0",
-          "from": "caseless@~0.12.0"
-        },
-        "combined-stream": {
-          "version": "1.0.5",
-          "from": "combined-stream@~1.0.5",
-          "dependencies": {
-            "delayed-stream": {
-              "version": "1.0.0",
-              "from": "delayed-stream@~1.0.0"
-            }
-          }
-        },
-        "extend": {
-          "version": "3.0.0",
-          "from": "extend@~3.0.0"
-        },
-        "forever-agent": {
-          "version": "0.6.1",
-          "from": "forever-agent@~0.6.1"
-        },
-        "form-data": {
-          "version": "2.1.2",
-          "from": "form-data@~2.1.1",
-          "dependencies": {
-            "asynckit": {
-              "version": "0.4.0",
-              "from": "asynckit@^0.4.0"
-            }
-          }
-        },
-        "har-validator": {
-          "version": "4.2.1",
-          "from": "har-validator@~4.2.1",
-          "dependencies": {
-            "ajv": {
-              "version": "4.11.5",
-              "from": "ajv@^4.9.1",
-              "dependencies": {
-                "co": {
-                  "version": "4.6.0",
-                  "from": "co@^4.6.0"
-                },
-                "json-stable-stringify": {
-                  "version": "1.0.1",
-                  "from": "json-stable-stringify@^1.0.1",
-                  "dependencies": {
-                    "jsonify": {
-                      "version": "0.0.0",
-                      "from": "jsonify@~0.0.0"
-                    }
-                  }
-                }
-              }
-            },
-            "har-schema": {
-              "version": "1.0.5",
-              "from": "har-schema@^1.0.5"
-            }
-          }
-        },
-        "hawk": {
-          "version": "3.1.3",
-          "from": "hawk@~3.1.3",
-          "dependencies": {
-            "hoek": {
-              "version": "2.16.3",
-              "from": "hoek@2.x.x"
-            },
-            "boom": {
-              "version": "2.10.1",
-              "from": "boom@2.x.x"
-            },
-            "cryptiles": {
-              "version": "2.0.5",
-              "from": "cryptiles@2.x.x"
-            },
-            "sntp": {
-              "version": "1.0.9",
-              "from": "sntp@1.x.x"
-            }
-          }
-        },
-        "http-signature": {
-          "version": "1.1.1",
-          "from": "http-signature@~1.1.0",
-          "dependencies": {
-            "assert-plus": {
-              "version": "0.2.0",
-              "from": "assert-plus@^0.2.0"
-            },
-            "jsprim": {
-              "version": "1.4.0",
-              "from": "jsprim@^1.2.2",
-              "dependencies": {
-                "assert-plus": {
-                  "version": "1.0.0",
-                  "from": "assert-plus@1.0.0"
-                },
-                "extsprintf": {
-                  "version": "1.0.2",
-                  "from": "extsprintf@1.0.2"
-                },
-                "json-schema": {
-                  "version": "0.2.3",
-                  "from": "json-schema@0.2.3"
-                },
-                "verror": {
-                  "version": "1.3.6",
-                  "from": "verror@1.3.6"
-                }
-              }
-            },
-            "sshpk": {
-              "version": "1.11.0",
-              "from": "sshpk@^1.7.0",
-              "dependencies": {
-                "asn1": {
-                  "version": "0.2.3",
-                  "from": "asn1@~0.2.3"
-                },
-                "assert-plus": {
-                  "version": "1.0.0",
-                  "from": "assert-plus@^1.0.0"
-                },
-                "dashdash": {
-                  "version": "1.14.1",
-                  "from": "dashdash@^1.12.0"
-                },
-                "getpass": {
-                  "version": "0.1.6",
-                  "from": "getpass@^0.1.1"
-                },
-                "jsbn": {
-                  "version": "0.1.1",
-                  "from": "jsbn@~0.1.0"
-                },
-                "tweetnacl": {
-                  "version": "0.14.5",
-                  "from": "tweetnacl@~0.14.0"
-                },
-                "jodid25519": {
-                  "version": "1.0.2",
-                  "from": "jodid25519@^1.0.0"
-                },
-                "ecc-jsbn": {
-                  "version": "0.1.1",
-                  "from": "ecc-jsbn@~0.1.1"
-                },
-                "bcrypt-pbkdf": {
-                  "version": "1.0.1",
-                  "from": "bcrypt-pbkdf@^1.0.0"
-                }
-              }
-            }
-          }
-        },
-        "is-typedarray": {
-          "version": "1.0.0",
-          "from": "is-typedarray@~1.0.0"
-        },
-        "isstream": {
-          "version": "0.1.2",
-          "from": "isstream@~0.1.2"
-        },
-        "json-stringify-safe": {
-          "version": "5.0.1",
-          "from": "json-stringify-safe@~5.0.1"
-        },
-        "mime-types": {
-          "version": "2.1.15",
-          "from": "mime-types@~2.1.7",
-          "dependencies": {
-            "mime-db": {
-              "version": "1.27.0",
-              "from": "mime-db@~1.27.0"
-            }
-          }
-        },
-        "oauth-sign": {
-          "version": "0.8.2",
-          "from": "oauth-sign@~0.8.1"
-        },
-        "performance-now": {
-          "version": "0.2.0",
-          "from": "performance-now@^0.2.0"
-        },
-        "qs": {
-          "version": "6.4.0",
-          "from": "qs@~6.4.0"
-        },
-        "safe-buffer": {
-          "version": "5.0.1",
-          "from": "safe-buffer@^5.0.1"
-        },
-        "stringstream": {
-          "version": "0.0.5",
-          "from": "stringstream@~0.0.4"
-        },
-        "tough-cookie": {
-          "version": "2.3.2",
-          "from": "tough-cookie@~2.3.0",
-          "dependencies": {
-            "punycode": {
-              "version": "1.4.1",
-              "from": "punycode@^1.4.1"
-            }
-          }
-        },
-        "tunnel-agent": {
-          "version": "0.6.0",
-          "from": "tunnel-agent@^0.6.0"
-        }
-      }
+      "from": "request@>=2.69.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz"
     },
     "requests": {
       "version": "0.1.7",
-      "from": "requests@^0.1.7",
+      "from": "requests@>=0.1.7 <0.2.0",
+      "resolved": "https://registry.npmjs.org/requests/-/requests-0.1.7.tgz",
       "dependencies": {
-        "axo": {
-          "version": "0.0.2",
-          "from": "axo@0.0.x"
-        },
         "eventemitter3": {
           "version": "1.1.1",
-          "from": "eventemitter3@1.1.x"
-        },
-        "extendible": {
-          "version": "0.1.1",
-          "from": "extendible@0.1.x"
-        },
-        "hang": {
-          "version": "1.0.0",
-          "from": "hang@1.0.x"
-        },
-        "loads": {
-          "version": "0.0.4",
-          "from": "loads@0.0.x",
-          "dependencies": {
-            "failure": {
-              "version": "1.1.1",
-              "from": "failure@1.1.x"
-            },
-            "one-time": {
-              "version": "0.0.4",
-              "from": "one-time@0.0.x"
-            },
-            "xhr-response": {
-              "version": "1.0.1",
-              "from": "xhr-response@1.0.x"
-            },
-            "xhr-status": {
-              "version": "1.0.0",
-              "from": "xhr-status@1.0.x"
-            }
-          }
+          "from": "eventemitter3@>=1.1.0 <1.2.0",
+          "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.1.1.tgz"
+        }
+      }
+    },
+    "require_optional": {
+      "version": "1.0.0",
+      "from": "require_optional@>=1.0.0 <1.1.0",
+      "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.0.tgz"
+    },
+    "require-like": {
+      "version": "0.1.2",
+      "from": "require-like@0.1.2",
+      "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz"
+    },
+    "requires-port": {
+      "version": "1.0.0",
+      "from": "requires-port@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz"
+    },
+    "resolve": {
+      "version": "1.3.2",
+      "from": "resolve@>=1.1.6 <2.0.0",
+      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.2.tgz"
+    },
+    "resolve-from": {
+      "version": "2.0.0",
+      "from": "resolve-from@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz"
+    },
+    "retry-as-promised": {
+      "version": "2.2.0",
+      "from": "retry-as-promised@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-2.2.0.tgz",
+      "dependencies": {
+        "debug": {
+          "version": "2.6.3",
+          "from": "debug@>=2.2.0 <3.0.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.3.tgz"
         },
-        "xhr-send": {
-          "version": "1.0.0",
-          "from": "xhr-send@1.0.x"
+        "ms": {
+          "version": "0.7.2",
+          "from": "ms@0.7.2",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz"
         }
       }
     },
+    "right-align": {
+      "version": "0.1.3",
+      "from": "right-align@>=0.1.1 <0.2.0",
+      "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz"
+    },
     "rimraf": {
       "version": "2.2.6",
-      "from": "rimraf@2.2.6"
+      "from": "rimraf@2.2.6",
+      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.6.tgz"
+    },
+    "rndm": {
+      "version": "1.2.0",
+      "from": "rndm@1.2.0",
+      "resolved": "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz"
+    },
+    "rolling-rate-limiter": {
+      "version": "0.1.4",
+      "from": "git+https://github.com/ShaneKilkelly/rolling-rate-limiter.git#master",
+      "resolved": "git+https://github.com/ShaneKilkelly/rolling-rate-limiter.git#8a1a2cd8aaf9cd1a75cc81317b7f261157be2149"
+    },
+    "safe-buffer": {
+      "version": "5.0.1",
+      "from": "safe-buffer@>=5.0.1 <6.0.0",
+      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz"
+    },
+    "safe-json-stringify": {
+      "version": "1.0.4",
+      "from": "safe-json-stringify@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.0.4.tgz",
+      "optional": true
     },
     "sanitizer": {
       "version": "0.1.1",
-      "from": "sanitizer@0.1.1"
+      "from": "sanitizer@0.1.1",
+      "resolved": "https://registry.npmjs.org/sanitizer/-/sanitizer-0.1.1.tgz"
     },
-    "sequelize": {
-      "version": "3.30.4",
-      "from": "sequelize@^3.2.0",
+    "sax": {
+      "version": "1.2.1",
+      "from": "sax@1.2.1",
+      "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz"
+    },
+    "semver": {
+      "version": "5.3.0",
+      "from": "semver@>=5.3.0 <5.4.0",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz"
+    },
+    "send": {
+      "version": "0.13.0",
+      "from": "send@0.13.0",
+      "resolved": "https://registry.npmjs.org/send/-/send-0.13.0.tgz",
       "dependencies": {
-        "bluebird": {
-          "version": "3.5.0",
-          "from": "bluebird@^3.3.4"
+        "debug": {
+          "version": "2.2.0",
+          "from": "debug@>=2.2.0 <2.3.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz"
         },
         "depd": {
-          "version": "1.1.0",
-          "from": "depd@^1.1.0"
-        },
-        "dottie": {
-          "version": "1.1.1",
-          "from": "dottie@^1.0.0"
+          "version": "1.0.1",
+          "from": "depd@>=1.0.1 <1.1.0",
+          "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz"
         },
-        "generic-pool": {
-          "version": "2.4.2",
-          "from": "generic-pool@2.4.2"
+        "http-errors": {
+          "version": "1.3.1",
+          "from": "http-errors@>=1.3.1 <1.4.0",
+          "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz"
         },
-        "inflection": {
-          "version": "1.12.0",
-          "from": "inflection@^1.6.0"
+        "ms": {
+          "version": "0.7.1",
+          "from": "ms@0.7.1",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz"
         },
+        "statuses": {
+          "version": "1.2.1",
+          "from": "statuses@>=1.2.1 <1.3.0",
+          "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz"
+        }
+      }
+    },
+    "sendgrid": {
+      "version": "1.9.2",
+      "from": "sendgrid@>=1.8.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/sendgrid/-/sendgrid-1.9.2.tgz",
+      "dependencies": {
+        "lodash": {
+          "version": "3.10.1",
+          "from": "lodash@>=3.0.1 <4.0.0||>=2.0.0 <3.0.0",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz"
+        }
+      }
+    },
+    "sequelize": {
+      "version": "3.30.4",
+      "from": "sequelize@>=3.2.0 <4.0.0",
+      "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-3.30.4.tgz",
+      "dependencies": {
         "lodash": {
           "version": "4.12.0",
-          "from": "lodash@4.12.0"
-        },
-        "moment": {
-          "version": "2.18.1",
-          "from": "moment@^2.10.6"
-        },
-        "moment-timezone": {
-          "version": "0.5.11",
-          "from": "moment-timezone@^0.5.4"
-        },
-        "retry-as-promised": {
+          "from": "lodash@4.12.0",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.12.0.tgz"
+        }
+      }
+    },
+    "serve-static": {
+      "version": "1.10.3",
+      "from": "serve-static@>=1.10.0 <1.11.0",
+      "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.3.tgz",
+      "dependencies": {
+        "debug": {
           "version": "2.2.0",
-          "from": "retry-as-promised@^2.0.0",
-          "dependencies": {
-            "cross-env": {
-              "version": "3.2.4",
-              "from": "cross-env@^3.1.2",
-              "dependencies": {
-                "cross-spawn": {
-                  "version": "5.1.0",
-                  "from": "cross-spawn@^5.1.0",
-                  "dependencies": {
-                    "lru-cache": {
-                      "version": "4.0.2",
-                      "from": "lru-cache@^4.0.1",
-                      "dependencies": {
-                        "pseudomap": {
-                          "version": "1.0.2",
-                          "from": "pseudomap@^1.0.1"
-                        },
-                        "yallist": {
-                          "version": "2.1.2",
-                          "from": "yallist@^2.0.0"
-                        }
-                      }
-                    },
-                    "shebang-command": {
-                      "version": "1.2.0",
-                      "from": "shebang-command@^1.2.0",
-                      "dependencies": {
-                        "shebang-regex": {
-                          "version": "1.0.0",
-                          "from": "shebang-regex@^1.0.0"
-                        }
-                      }
-                    },
-                    "which": {
-                      "version": "1.2.14",
-                      "from": "which@^1.2.9",
-                      "dependencies": {
-                        "isexe": {
-                          "version": "2.0.0",
-                          "from": "isexe@^2.0.0"
-                        }
-                      }
-                    }
-                  }
-                },
-                "is-windows": {
-                  "version": "1.0.0",
-                  "from": "is-windows@^1.0.0"
-                }
-              }
-            },
-            "debug": {
-              "version": "2.6.3",
-              "from": "debug@^2.2.0",
-              "dependencies": {
-                "ms": {
-                  "version": "0.7.2",
-                  "from": "ms@0.7.2"
-                }
-              }
-            }
-          }
+          "from": "debug@>=2.2.0 <2.3.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz"
         },
-        "semver": {
-          "version": "5.3.0",
-          "from": "semver@^5.0.1"
+        "destroy": {
+          "version": "1.0.4",
+          "from": "destroy@>=1.0.4 <1.1.0",
+          "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz"
         },
-        "shimmer": {
-          "version": "1.1.0",
-          "from": "shimmer@1.1.0"
+        "escape-html": {
+          "version": "1.0.3",
+          "from": "escape-html@>=1.0.3 <1.1.0",
+          "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"
         },
-        "terraformer-wkt-parser": {
-          "version": "1.1.2",
-          "from": "terraformer-wkt-parser@^1.1.0",
-          "dependencies": {
-            "terraformer": {
-              "version": "1.0.7",
-              "from": "terraformer@~1.0.5"
-            }
-          }
+        "http-errors": {
+          "version": "1.3.1",
+          "from": "http-errors@>=1.3.1 <1.4.0",
+          "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz"
         },
-        "toposort-class": {
-          "version": "1.0.1",
-          "from": "toposort-class@^1.0.1"
+        "ms": {
+          "version": "0.7.1",
+          "from": "ms@0.7.1",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz"
         },
-        "validator": {
-          "version": "5.7.0",
-          "from": "validator@^5.2.0"
+        "send": {
+          "version": "0.13.2",
+          "from": "send@0.13.2",
+          "resolved": "https://registry.npmjs.org/send/-/send-0.13.2.tgz"
         },
-        "wkx": {
-          "version": "0.2.0",
-          "from": "wkx@0.2.0"
+        "statuses": {
+          "version": "1.2.1",
+          "from": "statuses@>=1.2.1 <1.3.0",
+          "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz"
         }
       }
     },
+    "set-blocking": {
+      "version": "2.0.0",
+      "from": "set-blocking@>=2.0.0 <2.1.0",
+      "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"
+    },
+    "setprototypeof": {
+      "version": "1.0.3",
+      "from": "setprototypeof@1.0.3",
+      "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz"
+    },
     "settings-sharelatex": {
       "version": "1.0.0",
-      "from": "settings-sharelatex@git+https://github.com/sharelatex/settings-sharelatex.git#v1.0.0",
+      "from": "git+https://github.com/sharelatex/settings-sharelatex.git#v1.0.0",
       "resolved": "git+https://github.com/sharelatex/settings-sharelatex.git#cbc5e41c1dbe6789721a14b3fdae05bf22546559",
       "dependencies": {
         "coffee-script": {
           "version": "1.6.0",
-          "from": "coffee-script@1.6.0"
+          "from": "coffee-script@1.6.0",
+          "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.0.tgz"
         }
       }
     },
+    "shebang-command": {
+      "version": "1.2.0",
+      "from": "shebang-command@>=1.2.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz"
+    },
+    "shebang-regex": {
+      "version": "1.0.0",
+      "from": "shebang-regex@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz"
+    },
+    "shimmer": {
+      "version": "1.1.0",
+      "from": "shimmer@1.1.0",
+      "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.1.0.tgz"
+    },
+    "sigmund": {
+      "version": "1.0.1",
+      "from": "sigmund@>=1.0.0 <1.1.0",
+      "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz"
+    },
+    "signal-exit": {
+      "version": "3.0.2",
+      "from": "signal-exit@>=3.0.0 <4.0.0",
+      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz"
+    },
     "sixpack-client": {
       "version": "1.0.0",
-      "from": "sixpack-client@^1.0.0"
+      "from": "sixpack-client@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/sixpack-client/-/sixpack-client-1.0.0.tgz"
+    },
+    "sliced": {
+      "version": "0.0.5",
+      "from": "sliced@0.0.5",
+      "resolved": "https://registry.npmjs.org/sliced/-/sliced-0.0.5.tgz"
+    },
+    "smtp-connection": {
+      "version": "2.0.1",
+      "from": "smtp-connection@2.0.1",
+      "resolved": "https://registry.npmjs.org/smtp-connection/-/smtp-connection-2.0.1.tgz"
+    },
+    "smtpapi": {
+      "version": "1.2.0",
+      "from": "smtpapi@>=1.2.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/smtpapi/-/smtpapi-1.2.0.tgz"
+    },
+    "sntp": {
+      "version": "1.0.9",
+      "from": "sntp@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz"
+    },
+    "source-map": {
+      "version": "0.1.34",
+      "from": "source-map@0.1.34",
+      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz"
+    },
+    "sshpk": {
+      "version": "1.11.0",
+      "from": "sshpk@>=1.7.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.11.0.tgz",
+      "dependencies": {
+        "assert-plus": {
+          "version": "1.0.0",
+          "from": "assert-plus@>=1.0.0 <2.0.0",
+          "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
+        }
+      }
+    },
+    "stack-trace": {
+      "version": "0.0.9",
+      "from": "stack-trace@0.0.9",
+      "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz"
+    },
+    "statsd-parser": {
+      "version": "0.0.4",
+      "from": "statsd-parser@>=0.0.4 <0.1.0",
+      "resolved": "https://registry.npmjs.org/statsd-parser/-/statsd-parser-0.0.4.tgz"
+    },
+    "statuses": {
+      "version": "1.3.1",
+      "from": "statuses@>=1.3.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz"
+    },
+    "stream-consume": {
+      "version": "0.1.0",
+      "from": "stream-consume@>=0.1.0 <0.2.0",
+      "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz"
+    },
+    "streamsearch": {
+      "version": "0.1.2",
+      "from": "streamsearch@0.1.2",
+      "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz"
+    },
+    "string_decoder": {
+      "version": "0.10.31",
+      "from": "string_decoder@>=0.10.0 <0.11.0",
+      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
+    },
+    "string-width": {
+      "version": "1.0.2",
+      "from": "string-width@>=1.0.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz"
+    },
+    "stringstream": {
+      "version": "0.0.5",
+      "from": "stringstream@>=0.0.4 <0.1.0",
+      "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz"
+    },
+    "strip-ansi": {
+      "version": "3.0.1",
+      "from": "strip-ansi@>=3.0.1 <4.0.0",
+      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"
+    },
+    "strip-json-comments": {
+      "version": "2.0.1",
+      "from": "strip-json-comments@>=2.0.1 <2.1.0",
+      "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz"
+    },
+    "tar": {
+      "version": "2.2.1",
+      "from": "tar@>=2.2.0 <2.3.0",
+      "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz"
+    },
+    "tar-pack": {
+      "version": "3.1.4",
+      "from": "tar-pack@>=3.1.0 <3.2.0",
+      "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.1.4.tgz",
+      "dependencies": {
+        "debug": {
+          "version": "2.2.0",
+          "from": "debug@>=2.2.0 <2.3.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz"
+        },
+        "glob": {
+          "version": "7.1.1",
+          "from": "glob@>=7.0.5 <8.0.0",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz"
+        },
+        "isarray": {
+          "version": "1.0.0",
+          "from": "isarray@>=1.0.0 <1.1.0",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+        },
+        "minimatch": {
+          "version": "3.0.3",
+          "from": "minimatch@>=3.0.2 <4.0.0",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz"
+        },
+        "ms": {
+          "version": "0.7.1",
+          "from": "ms@0.7.1",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz"
+        },
+        "readable-stream": {
+          "version": "2.1.5",
+          "from": "readable-stream@>=2.1.4 <2.2.0",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz"
+        },
+        "rimraf": {
+          "version": "2.5.4",
+          "from": "rimraf@>=2.5.1 <2.6.0",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz"
+        }
+      }
+    },
+    "tar-stream": {
+      "version": "0.3.3",
+      "from": "tar-stream@>=0.3.0 <0.4.0",
+      "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-0.3.3.tgz"
     },
     "temp": {
       "version": "0.8.3",
-      "from": "temp@^0.8.3",
+      "from": "temp@>=0.8.3 <0.9.0",
+      "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz"
+    },
+    "terraformer": {
+      "version": "1.0.7",
+      "from": "terraformer@>=1.0.5 <1.1.0",
+      "resolved": "https://registry.npmjs.org/terraformer/-/terraformer-1.0.7.tgz"
+    },
+    "terraformer-wkt-parser": {
+      "version": "1.1.2",
+      "from": "terraformer-wkt-parser@>=1.1.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/terraformer-wkt-parser/-/terraformer-wkt-parser-1.1.2.tgz"
+    },
+    "text-encoding": {
+      "version": "0.6.4",
+      "from": "text-encoding@0.6.4",
+      "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz"
+    },
+    "thunky": {
+      "version": "0.1.0",
+      "from": "thunky@>=0.1.0 <0.2.0",
+      "resolved": "https://registry.npmjs.org/thunky/-/thunky-0.1.0.tgz"
+    },
+    "timekeeper": {
+      "version": "1.0.0",
+      "from": "timekeeper@",
+      "resolved": "https://registry.npmjs.org/timekeeper/-/timekeeper-1.0.0.tgz"
+    },
+    "to-mongodb-core": {
+      "version": "2.0.0",
+      "from": "to-mongodb-core@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/to-mongodb-core/-/to-mongodb-core-2.0.0.tgz"
+    },
+    "token-stream": {
+      "version": "0.0.1",
+      "from": "token-stream@0.0.1",
+      "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-0.0.1.tgz"
+    },
+    "toposort-class": {
+      "version": "1.0.1",
+      "from": "toposort-class@>=1.0.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/toposort-class/-/toposort-class-1.0.1.tgz"
+    },
+    "tough-cookie": {
+      "version": "2.3.2",
+      "from": "tough-cookie@>=2.3.0 <2.4.0",
+      "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz"
+    },
+    "transformers": {
+      "version": "2.1.0",
+      "from": "transformers@2.1.0",
+      "resolved": "https://registry.npmjs.org/transformers/-/transformers-2.1.0.tgz",
       "dependencies": {
-        "os-tmpdir": {
-          "version": "1.0.2",
-          "from": "os-tmpdir@^1.0.0"
+        "optimist": {
+          "version": "0.3.7",
+          "from": "optimist@>=0.3.5 <0.4.0",
+          "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz"
+        },
+        "uglify-js": {
+          "version": "2.2.5",
+          "from": "uglify-js@>=2.2.5 <2.3.0",
+          "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.2.5.tgz"
         }
       }
     },
+    "tsscmp": {
+      "version": "1.0.5",
+      "from": "tsscmp@1.0.5",
+      "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.5.tgz"
+    },
+    "tunnel-agent": {
+      "version": "0.6.0",
+      "from": "tunnel-agent@>=0.6.0 <0.7.0",
+      "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"
+    },
+    "tweetnacl": {
+      "version": "0.14.5",
+      "from": "tweetnacl@>=0.14.0 <0.15.0",
+      "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+      "optional": true
+    },
+    "type-detect": {
+      "version": "1.0.0",
+      "from": "type-detect@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz"
+    },
+    "type-is": {
+      "version": "1.6.15",
+      "from": "type-is@>=1.6.14 <1.7.0",
+      "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz"
+    },
+    "uglify-js": {
+      "version": "2.4.24",
+      "from": "uglify-js@>=2.4.0 <2.5.0",
+      "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz",
+      "dependencies": {
+        "async": {
+          "version": "0.2.10",
+          "from": "async@>=0.2.6 <0.3.0",
+          "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz"
+        }
+      }
+    },
+    "uglify-to-browserify": {
+      "version": "1.0.2",
+      "from": "uglify-to-browserify@>=1.0.0 <1.1.0",
+      "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz"
+    },
+    "uid-number": {
+      "version": "0.0.6",
+      "from": "uid-number@>=0.0.6 <0.1.0",
+      "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz"
+    },
+    "uid-safe": {
+      "version": "2.1.4",
+      "from": "uid-safe@2.1.4",
+      "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.4.tgz"
+    },
     "underscore": {
       "version": "1.6.0",
-      "from": "underscore@1.6.0"
+      "from": "underscore@1.6.0",
+      "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz"
     },
-    "v8-profiler": {
-      "version": "5.7.0",
-      "from": "v8-profiler@^5.2.3",
+    "underscore.string": {
+      "version": "2.2.1",
+      "from": "underscore.string@>=2.2.1 <2.3.0",
+      "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz"
+    },
+    "unpipe": {
+      "version": "1.0.0",
+      "from": "unpipe@1.0.0",
+      "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
+    },
+    "url": {
+      "version": "0.10.3",
+      "from": "url@0.10.3",
+      "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz",
       "dependencies": {
-        "nan": {
-          "version": "2.5.1",
-          "from": "nan@^2.5.1"
-        },
-        "node-pre-gyp": {
-          "version": "0.6.34",
-          "from": "node-pre-gyp@^0.6.34",
-          "dependencies": {
-            "mkdirp": {
-              "version": "0.5.1",
-              "from": "mkdirp@^0.5.0",
-              "dependencies": {
-                "minimist": {
-                  "version": "0.0.8",
-                  "from": "minimist@0.0.8"
-                }
-              }
-            },
-            "nopt": {
-              "version": "4.0.1",
-              "from": "nopt@^4.0.1",
-              "dependencies": {
-                "abbrev": {
-                  "version": "1.1.0",
-                  "from": "abbrev@1"
-                },
-                "osenv": {
-                  "version": "0.1.4",
-                  "from": "osenv@^0.1.4",
-                  "dependencies": {
-                    "os-homedir": {
-                      "version": "1.0.2",
-                      "from": "os-homedir@^1.0.0"
-                    },
-                    "os-tmpdir": {
-                      "version": "1.0.2",
-                      "from": "os-tmpdir@^1.0.0"
-                    }
-                  }
-                }
-              }
-            },
-            "npmlog": {
-              "version": "4.0.2",
-              "from": "npmlog@^4.0.2",
-              "dependencies": {
-                "are-we-there-yet": {
-                  "version": "1.1.2",
-                  "from": "are-we-there-yet@~1.1.2",
-                  "dependencies": {
-                    "delegates": {
-                      "version": "1.0.0",
-                      "from": "delegates@^1.0.0"
-                    },
-                    "readable-stream": {
-                      "version": "2.2.6",
-                      "from": "readable-stream@^2.0.0 || ^1.1.13",
-                      "dependencies": {
-                        "buffer-shims": {
-                          "version": "1.0.0",
-                          "from": "buffer-shims@^1.0.0"
-                        },
-                        "core-util-is": {
-                          "version": "1.0.2",
-                          "from": "core-util-is@~1.0.0"
-                        },
-                        "isarray": {
-                          "version": "1.0.0",
-                          "from": "isarray@~1.0.0"
-                        },
-                        "inherits": {
-                          "version": "2.0.3",
-                          "from": "inherits@~2.0.1"
-                        },
-                        "process-nextick-args": {
-                          "version": "1.0.7",
-                          "from": "process-nextick-args@~1.0.6"
-                        },
-                        "string_decoder": {
-                          "version": "0.10.31",
-                          "from": "string_decoder@~0.10.x"
-                        },
-                        "util-deprecate": {
-                          "version": "1.0.2",
-                          "from": "util-deprecate@~1.0.1"
-                        }
-                      }
-                    }
-                  }
-                },
-                "console-control-strings": {
-                  "version": "1.1.0",
-                  "from": "console-control-strings@~1.1.0"
-                },
-                "gauge": {
-                  "version": "2.7.3",
-                  "from": "gauge@~2.7.1",
-                  "dependencies": {
-                    "aproba": {
-                      "version": "1.1.1",
-                      "from": "aproba@^1.0.3"
-                    },
-                    "has-unicode": {
-                      "version": "2.0.1",
-                      "from": "has-unicode@^2.0.0"
-                    },
-                    "object-assign": {
-                      "version": "4.1.1",
-                      "from": "object-assign@^4.1.0"
-                    },
-                    "signal-exit": {
-                      "version": "3.0.2",
-                      "from": "signal-exit@^3.0.0"
-                    },
-                    "string-width": {
-                      "version": "1.0.2",
-                      "from": "string-width@^1.0.1",
-                      "dependencies": {
-                        "code-point-at": {
-                          "version": "1.1.0",
-                          "from": "code-point-at@^1.0.0"
-                        },
-                        "is-fullwidth-code-point": {
-                          "version": "1.0.0",
-                          "from": "is-fullwidth-code-point@^1.0.0",
-                          "dependencies": {
-                            "number-is-nan": {
-                              "version": "1.0.1",
-                              "from": "number-is-nan@^1.0.0"
-                            }
-                          }
-                        }
-                      }
-                    },
-                    "strip-ansi": {
-                      "version": "3.0.1",
-                      "from": "strip-ansi@^3.0.1",
-                      "dependencies": {
-                        "ansi-regex": {
-                          "version": "2.1.1",
-                          "from": "ansi-regex@^2.0.0"
-                        }
-                      }
-                    },
-                    "wide-align": {
-                      "version": "1.1.0",
-                      "from": "wide-align@^1.1.0"
-                    }
-                  }
-                },
-                "set-blocking": {
-                  "version": "2.0.0",
-                  "from": "set-blocking@~2.0.0"
-                }
-              }
-            },
-            "rc": {
-              "version": "1.2.0",
-              "from": "rc@^1.1.7",
-              "dependencies": {
-                "deep-extend": {
-                  "version": "0.4.1",
-                  "from": "deep-extend@~0.4.0"
-                },
-                "ini": {
-                  "version": "1.3.4",
-                  "from": "ini@~1.3.0"
-                },
-                "minimist": {
-                  "version": "1.2.0",
-                  "from": "minimist@^1.2.0"
-                },
-                "strip-json-comments": {
-                  "version": "2.0.1",
-                  "from": "strip-json-comments@~2.0.1"
-                }
-              }
-            },
-            "rimraf": {
-              "version": "2.6.1",
-              "from": "rimraf@^2.2.8",
-              "dependencies": {
-                "glob": {
-                  "version": "7.1.1",
-                  "from": "glob@^7.0.5",
-                  "dependencies": {
-                    "fs.realpath": {
-                      "version": "1.0.0",
-                      "from": "fs.realpath@^1.0.0"
-                    },
-                    "inflight": {
-                      "version": "1.0.6",
-                      "from": "inflight@^1.0.4",
-                      "dependencies": {
-                        "wrappy": {
-                          "version": "1.0.2",
-                          "from": "wrappy@1"
-                        }
-                      }
-                    },
-                    "inherits": {
-                      "version": "2.0.3",
-                      "from": "inherits@2"
-                    },
-                    "minimatch": {
-                      "version": "3.0.3",
-                      "from": "minimatch@^3.0.2",
-                      "dependencies": {
-                        "brace-expansion": {
-                          "version": "1.1.6",
-                          "from": "brace-expansion@^1.0.0",
-                          "dependencies": {
-                            "balanced-match": {
-                              "version": "0.4.2",
-                              "from": "balanced-match@^0.4.1"
-                            },
-                            "concat-map": {
-                              "version": "0.0.1",
-                              "from": "concat-map@0.0.1"
-                            }
-                          }
-                        }
-                      }
-                    },
-                    "once": {
-                      "version": "1.4.0",
-                      "from": "once@^1.3.0",
-                      "dependencies": {
-                        "wrappy": {
-                          "version": "1.0.2",
-                          "from": "wrappy@1"
-                        }
-                      }
-                    },
-                    "path-is-absolute": {
-                      "version": "1.0.1",
-                      "from": "path-is-absolute@^1.0.0"
-                    }
-                  }
-                }
-              }
-            },
-            "semver": {
-              "version": "5.3.0",
-              "from": "semver@^5.3.0"
-            },
-            "tar": {
-              "version": "2.2.1",
-              "from": "tar@^2.2.1",
-              "dependencies": {
-                "block-stream": {
-                  "version": "0.0.9",
-                  "from": "block-stream@*"
-                },
-                "fstream": {
-                  "version": "1.0.11",
-                  "from": "fstream@^1.0.2",
-                  "dependencies": {
-                    "graceful-fs": {
-                      "version": "4.1.11",
-                      "from": "graceful-fs@^4.1.2"
-                    }
-                  }
-                },
-                "inherits": {
-                  "version": "2.0.3",
-                  "from": "inherits@~2.0.0"
-                }
-              }
-            },
-            "tar-pack": {
-              "version": "3.4.0",
-              "from": "tar-pack@^3.4.0",
-              "dependencies": {
-                "debug": {
-                  "version": "2.6.3",
-                  "from": "debug@^2.2.0",
-                  "dependencies": {
-                    "ms": {
-                      "version": "0.7.2",
-                      "from": "ms@0.7.2"
-                    }
-                  }
-                },
-                "fstream": {
-                  "version": "1.0.11",
-                  "from": "fstream@^1.0.10",
-                  "dependencies": {
-                    "graceful-fs": {
-                      "version": "4.1.11",
-                      "from": "graceful-fs@^4.1.2"
-                    },
-                    "inherits": {
-                      "version": "2.0.3",
-                      "from": "inherits@~2.0.0"
-                    }
-                  }
-                },
-                "fstream-ignore": {
-                  "version": "1.0.5",
-                  "from": "fstream-ignore@^1.0.5",
-                  "dependencies": {
-                    "inherits": {
-                      "version": "2.0.3",
-                      "from": "inherits@2"
-                    },
-                    "minimatch": {
-                      "version": "3.0.3",
-                      "from": "minimatch@^3.0.0",
-                      "dependencies": {
-                        "brace-expansion": {
-                          "version": "1.1.6",
-                          "from": "brace-expansion@^1.0.0",
-                          "dependencies": {
-                            "balanced-match": {
-                              "version": "0.4.2",
-                              "from": "balanced-match@^0.4.1"
-                            },
-                            "concat-map": {
-                              "version": "0.0.1",
-                              "from": "concat-map@0.0.1"
-                            }
-                          }
-                        }
-                      }
-                    }
-                  }
-                },
-                "once": {
-                  "version": "1.4.0",
-                  "from": "once@^1.3.0",
-                  "dependencies": {
-                    "wrappy": {
-                      "version": "1.0.2",
-                      "from": "wrappy@1"
-                    }
-                  }
-                },
-                "readable-stream": {
-                  "version": "2.2.6",
-                  "from": "readable-stream@^2.1.4",
-                  "dependencies": {
-                    "buffer-shims": {
-                      "version": "1.0.0",
-                      "from": "buffer-shims@^1.0.0"
-                    },
-                    "core-util-is": {
-                      "version": "1.0.2",
-                      "from": "core-util-is@~1.0.0"
-                    },
-                    "isarray": {
-                      "version": "1.0.0",
-                      "from": "isarray@~1.0.0"
-                    },
-                    "inherits": {
-                      "version": "2.0.3",
-                      "from": "inherits@~2.0.1"
-                    },
-                    "process-nextick-args": {
-                      "version": "1.0.7",
-                      "from": "process-nextick-args@~1.0.6"
-                    },
-                    "string_decoder": {
-                      "version": "0.10.31",
-                      "from": "string_decoder@~0.10.x"
-                    },
-                    "util-deprecate": {
-                      "version": "1.0.2",
-                      "from": "util-deprecate@~1.0.1"
-                    }
-                  }
-                },
-                "uid-number": {
-                  "version": "0.0.6",
-                  "from": "uid-number@^0.0.6"
-                }
-              }
-            }
-          }
+        "punycode": {
+          "version": "1.3.2",
+          "from": "punycode@1.3.2",
+          "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz"
         }
       }
     },
-    "xml2js": {
-      "version": "0.2.0",
-      "from": "xml2js@0.2.0",
+    "util": {
+      "version": "0.10.3",
+      "from": "util@>=0.10.3 <1.0.0",
+      "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
       "dependencies": {
-        "sax": {
-          "version": "1.2.2",
-          "from": "sax@>=0.1.1"
+        "inherits": {
+          "version": "2.0.1",
+          "from": "inherits@2.0.1",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
         }
       }
     },
-    "passport-saml": {
-      "version": "0.15.0",
-      "from": "passport-saml@^0.15.0",
+    "util-deprecate": {
+      "version": "1.0.2",
+      "from": "util-deprecate@>=1.0.1 <1.1.0",
+      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
+    },
+    "utils-merge": {
+      "version": "1.0.0",
+      "from": "utils-merge@1.0.0",
+      "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz"
+    },
+    "uuid": {
+      "version": "3.0.1",
+      "from": "uuid@>=3.0.1 <4.0.0",
+      "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz"
+    },
+    "v8-profiler": {
+      "version": "5.7.0",
+      "from": "v8-profiler@>=5.2.3 <6.0.0",
+      "resolved": "https://registry.npmjs.org/v8-profiler/-/v8-profiler-5.7.0.tgz",
       "dependencies": {
-        "passport-strategy": {
+        "debug": {
+          "version": "2.6.3",
+          "from": "debug@>=2.2.0 <3.0.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.3.tgz"
+        },
+        "glob": {
+          "version": "7.1.1",
+          "from": "glob@>=7.0.5 <8.0.0",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz"
+        },
+        "isarray": {
           "version": "1.0.0",
-          "from": "passport-strategy@*"
+          "from": "isarray@>=1.0.0 <1.1.0",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
         },
-        "q": {
-          "version": "1.1.2",
-          "from": "q@1.1.x"
+        "minimatch": {
+          "version": "3.0.3",
+          "from": "minimatch@>=3.0.2 <4.0.0",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz"
         },
-        "xml2js": {
-          "version": "0.4.17",
-          "from": "xml2js@0.4.x",
-          "dependencies": {
-            "sax": {
-              "version": "1.2.2",
-              "from": "sax@>=0.6.0"
-            },
-            "xmlbuilder": {
-              "version": "4.2.1",
-              "from": "xmlbuilder@^4.1.0"
-            }
-          }
+        "ms": {
+          "version": "0.7.2",
+          "from": "ms@0.7.2",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz"
         },
-        "xml-crypto": {
-          "version": "0.8.5",
-          "from": "xml-crypto@0.8.x",
-          "dependencies": {
-            "xmldom": {
-              "version": "0.1.19",
-              "from": "xmldom@=0.1.19"
-            },
-            "xpath.js": {
-              "version": "1.0.7",
-              "from": "xpath.js@>=0.0.3"
-            }
-          }
+        "nan": {
+          "version": "2.5.1",
+          "from": "nan@>=2.5.1 <3.0.0",
+          "resolved": "https://registry.npmjs.org/nan/-/nan-2.5.1.tgz"
         },
-        "xmldom": {
-          "version": "0.1.27",
-          "from": "xmldom@0.1.x"
+        "node-pre-gyp": {
+          "version": "0.6.34",
+          "from": "node-pre-gyp@>=0.6.34 <0.7.0",
+          "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.34.tgz"
         },
-        "xmlbuilder": {
-          "version": "2.5.2",
-          "from": "xmlbuilder@2.5.x",
-          "dependencies": {
-            "lodash": {
-              "version": "3.2.0",
-              "from": "lodash@~3.2.0"
-            }
-          }
+        "nopt": {
+          "version": "4.0.1",
+          "from": "nopt@>=4.0.1 <5.0.0",
+          "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz"
         },
-        "xml-encryption": {
-          "version": "0.7.4",
-          "from": "xml-encryption@~0.7",
-          "dependencies": {
-            "ejs": {
-              "version": "0.8.8",
-              "from": "ejs@~0.8.3"
-            },
-            "async": {
-              "version": "0.2.10",
-              "from": "async@~0.2.7"
-            },
-            "xpath": {
-              "version": "0.0.5",
-              "from": "xpath@0.0.5"
-            },
-            "node-forge": {
-              "version": "0.2.24",
-              "from": "node-forge@0.2.24"
-            }
-          }
+        "readable-stream": {
+          "version": "2.2.6",
+          "from": "readable-stream@>=2.1.4 <3.0.0",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.6.tgz"
+        },
+        "rimraf": {
+          "version": "2.6.1",
+          "from": "rimraf@>=2.6.1 <3.0.0",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz"
+        },
+        "tar-pack": {
+          "version": "3.4.0",
+          "from": "tar-pack@>=3.4.0 <4.0.0",
+          "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz"
         }
       }
     },
-    "pug": {
-      "version": "2.0.0-beta9",
-      "from": "pug@^2.0.0-beta6",
+    "validator": {
+      "version": "5.7.0",
+      "from": "validator@>=5.2.0 <6.0.0",
+      "resolved": "https://registry.npmjs.org/validator/-/validator-5.7.0.tgz"
+    },
+    "vary": {
+      "version": "1.0.1",
+      "from": "vary@>=1.0.0 <1.1.0",
+      "resolved": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz"
+    },
+    "vasync": {
+      "version": "1.4.0",
+      "from": "vasync@1.4.0",
+      "resolved": "https://registry.npmjs.org/vasync/-/vasync-1.4.0.tgz",
       "dependencies": {
-        "pug-code-gen": {
-          "version": "1.1.1",
-          "from": "pug-code-gen@^1.1.1",
-          "dependencies": {
-            "constantinople": {
-              "version": "3.1.0",
-              "from": "constantinople@^3.0.1",
-              "dependencies": {
-                "acorn": {
-                  "version": "3.3.0",
-                  "from": "acorn@^3.1.0"
-                },
-                "is-expression": {
-                  "version": "2.1.0",
-                  "from": "is-expression@^2.0.1",
-                  "dependencies": {
-                    "object-assign": {
-                      "version": "4.1.1",
-                      "from": "object-assign@^4.0.1"
-                    }
-                  }
-                }
-              }
-            },
-            "doctypes": {
-              "version": "1.1.0",
-              "from": "doctypes@^1.1.0"
-            },
-            "js-stringify": {
-              "version": "1.0.2",
-              "from": "js-stringify@^1.0.1"
-            },
-            "pug-attrs": {
-              "version": "2.0.2",
-              "from": "pug-attrs@^2.0.2"
-            },
-            "pug-error": {
-              "version": "1.3.2",
-              "from": "pug-error@^1.3.2"
-            },
-            "void-elements": {
-              "version": "2.0.1",
-              "from": "void-elements@^2.0.1"
-            },
-            "with": {
-              "version": "5.1.1",
-              "from": "with@^5.0.0",
-              "dependencies": {
-                "acorn": {
-                  "version": "3.3.0",
-                  "from": "acorn@^3.1.0"
-                },
-                "acorn-globals": {
-                  "version": "3.1.0",
-                  "from": "acorn-globals@^3.0.0",
-                  "dependencies": {
-                    "acorn": {
-                      "version": "4.0.11",
-                      "from": "acorn@^4.0.4"
-                    }
-                  }
-                }
-              }
-            }
-          }
-        },
-        "pug-filters": {
-          "version": "2.1.1",
-          "from": "pug-filters@^2.1.0",
-          "dependencies": {
-            "constantinople": {
-              "version": "3.1.0",
-              "from": "constantinople@^3.0.1",
-              "dependencies": {
-                "acorn": {
-                  "version": "3.3.0",
-                  "from": "acorn@^3.1.0"
-                },
-                "is-expression": {
-                  "version": "2.1.0",
-                  "from": "is-expression@^2.0.1",
-                  "dependencies": {
-                    "object-assign": {
-                      "version": "4.1.1",
-                      "from": "object-assign@^4.0.1"
-                    }
-                  }
-                }
-              }
-            },
-            "pug-error": {
-              "version": "1.3.2",
-              "from": "pug-error@^1.3.2"
-            },
-            "pug-walk": {
-              "version": "1.1.1",
-              "from": "pug-walk@^1.1.1"
-            },
-            "jstransformer": {
-              "version": "1.0.0",
-              "from": "jstransformer@1.0.0",
-              "dependencies": {
-                "is-promise": {
-                  "version": "2.1.0",
-                  "from": "is-promise@^2.0.0"
-                },
-                "promise": {
-                  "version": "7.1.1",
-                  "from": "promise@^7.0.1",
-                  "dependencies": {
-                    "asap": {
-                      "version": "2.0.5",
-                      "from": "asap@~2.0.3"
-                    }
-                  }
-                }
-              }
-            },
-            "resolve": {
-              "version": "1.3.2",
-              "from": "resolve@^1.1.6",
-              "dependencies": {
-                "path-parse": {
-                  "version": "1.0.5",
-                  "from": "path-parse@^1.0.5"
-                }
-              }
-            },
-            "uglify-js": {
-              "version": "2.8.20",
-              "from": "uglify-js@^2.6.1",
-              "dependencies": {
-                "source-map": {
-                  "version": "0.5.6",
-                  "from": "source-map@~0.5.1"
-                },
-                "yargs": {
-                  "version": "3.10.0",
-                  "from": "yargs@~3.10.0",
-                  "dependencies": {
-                    "camelcase": {
-                      "version": "1.2.1",
-                      "from": "camelcase@^1.0.2"
-                    },
-                    "cliui": {
-                      "version": "2.1.0",
-                      "from": "cliui@^2.1.0",
-                      "dependencies": {
-                        "center-align": {
-                          "version": "0.1.3",
-                          "from": "center-align@^0.1.1",
-                          "dependencies": {
-                            "align-text": {
-                              "version": "0.1.4",
-                              "from": "align-text@^0.1.3",
-                              "dependencies": {
-                                "kind-of": {
-                                  "version": "3.1.0",
-                                  "from": "kind-of@^3.0.2",
-                                  "dependencies": {
-                                    "is-buffer": {
-                                      "version": "1.1.5",
-                                      "from": "is-buffer@^1.0.2"
-                                    }
-                                  }
-                                },
-                                "longest": {
-                                  "version": "1.0.1",
-                                  "from": "longest@^1.0.1"
-                                },
-                                "repeat-string": {
-                                  "version": "1.6.1",
-                                  "from": "repeat-string@^1.5.2"
-                                }
-                              }
-                            },
-                            "lazy-cache": {
-                              "version": "1.0.4",
-                              "from": "lazy-cache@^1.0.3"
-                            }
-                          }
-                        },
-                        "right-align": {
-                          "version": "0.1.3",
-                          "from": "right-align@^0.1.1",
-                          "dependencies": {
-                            "align-text": {
-                              "version": "0.1.4",
-                              "from": "align-text@^0.1.3",
-                              "dependencies": {
-                                "kind-of": {
-                                  "version": "3.1.0",
-                                  "from": "kind-of@^3.0.2",
-                                  "dependencies": {
-                                    "is-buffer": {
-                                      "version": "1.1.5",
-                                      "from": "is-buffer@^1.0.2"
-                                    }
-                                  }
-                                },
-                                "longest": {
-                                  "version": "1.0.1",
-                                  "from": "longest@^1.0.1"
-                                },
-                                "repeat-string": {
-                                  "version": "1.6.1",
-                                  "from": "repeat-string@^1.5.2"
-                                }
-                              }
-                            }
-                          }
-                        },
-                        "wordwrap": {
-                          "version": "0.0.2",
-                          "from": "wordwrap@0.0.2"
-                        }
-                      }
-                    },
-                    "decamelize": {
-                      "version": "1.2.0",
-                      "from": "decamelize@^1.0.0"
-                    },
-                    "window-size": {
-                      "version": "0.1.0",
-                      "from": "window-size@0.1.0"
-                    }
-                  }
-                },
-                "uglify-to-browserify": {
-                  "version": "1.0.2",
-                  "from": "uglify-to-browserify@~1.0.0"
-                }
-              }
-            }
-          }
-        },
-        "pug-lexer": {
-          "version": "2.3.2",
-          "from": "pug-lexer@^2.3.1",
-          "dependencies": {
-            "character-parser": {
-              "version": "2.2.0",
-              "from": "character-parser@^2.1.1",
-              "dependencies": {
-                "is-regex": {
-                  "version": "1.0.4",
-                  "from": "is-regex@^1.0.3",
-                  "dependencies": {
-                    "has": {
-                      "version": "1.0.1",
-                      "from": "has@^1.0.1",
-                      "dependencies": {
-                        "function-bind": {
-                          "version": "1.1.0",
-                          "from": "function-bind@^1.0.2"
-                        }
-                      }
-                    }
-                  }
-                }
-              }
-            },
-            "is-expression": {
-              "version": "3.0.0",
-              "from": "is-expression@^3.0.0",
-              "dependencies": {
-                "acorn": {
-                  "version": "4.0.11",
-                  "from": "acorn@~4.0.2"
-                },
-                "object-assign": {
-                  "version": "4.1.1",
-                  "from": "object-assign@^4.0.1"
-                }
-              }
-            },
-            "pug-error": {
-              "version": "1.3.2",
-              "from": "pug-error@^1.3.2"
-            }
-          }
-        },
-        "pug-linker": {
-          "version": "2.0.2",
-          "from": "pug-linker@^2.0.1",
-          "dependencies": {
-            "pug-error": {
-              "version": "1.3.2",
-              "from": "pug-error@^1.3.2"
-            },
-            "pug-walk": {
-              "version": "1.1.1",
-              "from": "pug-walk@^1.1.1"
-            }
-          }
+        "extsprintf": {
+          "version": "1.0.0",
+          "from": "extsprintf@1.0.0",
+          "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.0.tgz"
         },
-        "pug-load": {
-          "version": "2.0.5",
-          "from": "pug-load@^2.0.4",
-          "dependencies": {
-            "object-assign": {
-              "version": "4.1.1",
-              "from": "object-assign@^4.1.0"
-            },
-            "pug-walk": {
-              "version": "1.1.1",
-              "from": "pug-walk@^1.1.1"
-            }
-          }
+        "json-schema": {
+          "version": "0.2.2",
+          "from": "json-schema@0.2.2",
+          "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz"
         },
-        "pug-parser": {
-          "version": "2.0.2",
-          "from": "pug-parser@^2.0.2",
+        "jsprim": {
+          "version": "0.3.0",
+          "from": "jsprim@0.3.0",
+          "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-0.3.0.tgz",
           "dependencies": {
-            "pug-error": {
-              "version": "1.3.2",
-              "from": "pug-error@^1.3.2"
-            },
-            "token-stream": {
-              "version": "0.0.1",
-              "from": "token-stream@0.0.1"
+            "verror": {
+              "version": "1.3.3",
+              "from": "verror@1.3.3",
+              "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.3.tgz"
             }
           }
         },
-        "pug-runtime": {
-          "version": "2.0.3",
-          "from": "pug-runtime@^2.0.3"
-        },
-        "pug-strip-comments": {
-          "version": "1.0.2",
-          "from": "pug-strip-comments@^1.0.2",
-          "dependencies": {
-            "pug-error": {
-              "version": "1.3.2",
-              "from": "pug-error@^1.3.2"
-            }
-          }
+        "verror": {
+          "version": "1.1.0",
+          "from": "verror@1.1.0",
+          "resolved": "https://registry.npmjs.org/verror/-/verror-1.1.0.tgz"
         }
       }
     },
-    "uuid": {
+    "verror": {
+      "version": "1.3.6",
+      "from": "verror@1.3.6",
+      "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz"
+    },
+    "void-elements": {
+      "version": "2.0.1",
+      "from": "void-elements@>=2.0.1 <3.0.0",
+      "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz"
+    },
+    "which": {
+      "version": "1.0.9",
+      "from": "which@>=1.0.5 <1.1.0",
+      "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz"
+    },
+    "wide-align": {
+      "version": "1.1.0",
+      "from": "wide-align@>=1.1.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.0.tgz"
+    },
+    "window-size": {
+      "version": "0.1.0",
+      "from": "window-size@0.1.0",
+      "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz"
+    },
+    "with": {
       "version": "3.0.1",
-      "from": "uuid@^3.0.1"
+      "from": "with@>=3.0.0 <3.1.0",
+      "resolved": "https://registry.npmjs.org/with/-/with-3.0.1.tgz"
     },
-    "rolling-rate-limiter": {
-      "version": "0.1.4",
-      "from": "rolling-rate-limiter@git+https://github.com/ShaneKilkelly/rolling-rate-limiter.git#master",
-      "resolved": "git+https://github.com/ShaneKilkelly/rolling-rate-limiter.git#8a1a2cd8aaf9cd1a75cc81317b7f261157be2149",
+    "wkx": {
+      "version": "0.2.0",
+      "from": "wkx@0.2.0",
+      "resolved": "https://registry.npmjs.org/wkx/-/wkx-0.2.0.tgz"
+    },
+    "wordwrap": {
+      "version": "0.0.2",
+      "from": "wordwrap@0.0.2",
+      "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz"
+    },
+    "wrappy": {
+      "version": "1.0.2",
+      "from": "wrappy@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+    },
+    "xhr-response": {
+      "version": "1.0.1",
+      "from": "xhr-response@>=1.0.0 <1.1.0",
+      "resolved": "https://registry.npmjs.org/xhr-response/-/xhr-response-1.0.1.tgz"
+    },
+    "xhr-send": {
+      "version": "1.0.0",
+      "from": "xhr-send@>=1.0.0 <1.1.0",
+      "resolved": "https://registry.npmjs.org/xhr-send/-/xhr-send-1.0.0.tgz"
+    },
+    "xhr-status": {
+      "version": "1.0.0",
+      "from": "xhr-status@>=1.0.0 <1.1.0",
+      "resolved": "https://registry.npmjs.org/xhr-status/-/xhr-status-1.0.0.tgz"
+    },
+    "xml-crypto": {
+      "version": "0.8.5",
+      "from": "xml-crypto@>=0.8.0 <0.9.0",
+      "resolved": "https://registry.npmjs.org/xml-crypto/-/xml-crypto-0.8.5.tgz",
       "dependencies": {
-        "microtime-nodejs": {
-          "version": "1.0.0",
-          "from": "microtime-nodejs@~1.0.0"
+        "xmldom": {
+          "version": "0.1.19",
+          "from": "xmldom@0.1.19",
+          "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.19.tgz"
+        }
+      }
+    },
+    "xml-encryption": {
+      "version": "0.7.4",
+      "from": "xml-encryption@>=0.7.0 <0.8.0",
+      "resolved": "https://registry.npmjs.org/xml-encryption/-/xml-encryption-0.7.4.tgz",
+      "dependencies": {
+        "async": {
+          "version": "0.2.10",
+          "from": "async@>=0.2.7 <0.3.0",
+          "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz"
+        }
+      }
+    },
+    "xml2js": {
+      "version": "0.2.0",
+      "from": "xml2js@0.2.0",
+      "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.2.0.tgz"
+    },
+    "xmlbuilder": {
+      "version": "4.2.1",
+      "from": "xmlbuilder@4.2.1",
+      "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz"
+    },
+    "xmldom": {
+      "version": "0.1.27",
+      "from": "xmldom@>=0.1.0 <0.2.0",
+      "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz"
+    },
+    "xpath": {
+      "version": "0.0.5",
+      "from": "xpath@0.0.5",
+      "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.5.tgz"
+    },
+    "xpath.js": {
+      "version": "1.0.7",
+      "from": "xpath.js@>=0.0.3",
+      "resolved": "https://registry.npmjs.org/xpath.js/-/xpath.js-1.0.7.tgz"
+    },
+    "xtend": {
+      "version": "4.0.1",
+      "from": "xtend@>=4.0.0 <5.0.0",
+      "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
+    },
+    "yallist": {
+      "version": "2.1.2",
+      "from": "yallist@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz"
+    },
+    "yargs": {
+      "version": "3.5.4",
+      "from": "yargs@>=3.5.4 <3.6.0",
+      "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.5.4.tgz"
+    },
+    "zip-stream": {
+      "version": "0.3.7",
+      "from": "zip-stream@>=0.3.0 <0.4.0",
+      "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-0.3.7.tgz",
+      "dependencies": {
+        "lodash": {
+          "version": "2.4.2",
+          "from": "lodash@>=2.4.1 <2.5.0",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz"
         }
       }
     }

+ 5 - 5
services/web/package.json

@@ -14,7 +14,7 @@
     "async": "0.6.2",
     "base64-stream": "^0.1.2",
     "basic-auth-connect": "^1.0.0",
-    "bcrypt": "0.8.3",
+    "bcrypt": "1.0.1",
     "body-parser": "^1.13.1",
     "bufferedstream": "1.6.0",
     "connect-redis": "^3.1.0",
@@ -25,21 +25,20 @@
     "dateformat": "1.0.4-1.2.3",
     "express": "4.13.0",
     "express-session": "^1.14.2",
-    "grunt": "^0.4.5",
     "heapdump": "^0.3.7",
     "http-proxy": "^1.8.1",
     "ioredis": "^2.4.0",
     "jade": "~1.3.1",
-    "ldapjs": "^1.0.0",
+    "ldapjs": "^0.7.1",
+    "logger-sharelatex": "git+https://github.com/sharelatex/logger-sharelatex.git#master",
     "lodash": "^4.13.1",
-    "logger-sharelatex": "git+https://github.com/sharelatex/logger-sharelatex.git#v1.3.1",
     "lynx": "0.1.1",
     "marked": "^0.3.5",
     "method-override": "^2.3.3",
     "metrics-sharelatex": "git+https://github.com/sharelatex/metrics-sharelatex.git#v1.7.1",
     "mimelib": "0.2.14",
     "mocha": "1.17.1",
-    "mongojs": "0.18.2",
+    "mongojs": "2.4.0",
     "mongoose": "4.1.0",
     "multer": "^0.1.8",
     "nodemailer": "2.1.0",
@@ -72,6 +71,7 @@
     "bunyan": "0.22.1",
     "chai": "",
     "chai-spies": "",
+    "grunt": "0.4.5",
     "clean-css": "^3.4.18",
     "es6-promise": "^4.0.5",
     "grunt-available-tasks": "0.4.1",

+ 8 - 10
services/web/test/UnitTests/coffee/Authentication/AuthenticationManagerTests.coffee

@@ -128,16 +128,14 @@ describe "AuthenticationManager", ->
 				@AuthenticationManager.setUserPassword(@user_id, @password, @callback)
 
 			it "should update the user's password in the database", ->
-				@db.users.update
-					.calledWith({
-						_id: ObjectId(@user_id.toString())
-					}, {
-						$set: {
-							"hashedPassword": @hashedPassword
-						}
-						$unset: password: true
-					})
-					.should.equal true
+				args = @db.users.update.lastCall.args
+				expect(args[0]).to.deep.equal {_id: ObjectId(@user_id.toString())}
+				expect(args[1]).to.deep.equal {
+					$set: {
+						"hashedPassword": @hashedPassword
+					}
+					$unset: password: true
+				}
 
 			it "should hash the password", ->
 				@bcrypt.genSalt

+ 2 - 2
services/web/test/UnitTests/coffee/Compile/CompileControllerTests.coffee

@@ -136,8 +136,8 @@ describe "CompileController", ->
 					.should.equal true
 
 			it "should set the content-disposition header with the project name", ->
-				@res.header
-					.calledWith("Content-Disposition", "filename=#{@safe_name}.pdf")
+				@res.setContentDisposition
+					.calledWith('', {filename: "#{@safe_name}.pdf"})
 					.should.equal true
 
 			it "should increment the pdf-downloads metric", ->

+ 6 - 6
services/web/test/UnitTests/coffee/Downloads/ProjectDownloadsControllerTests.coffee

@@ -59,10 +59,10 @@ describe "ProjectDownloadsController", ->
 			@Project.findById.calledWith(@project_id, "name").should.equal(true)
 
 		it "should name the downloaded file after the project", ->
-			@res.header
+			@res.setContentDisposition
 				.calledWith(
-					"Content-Disposition",
-					"attachment; filename=#{encodeURIComponent(@project_name)}.zip")
+					'attachment',
+					{filename: "#{@project_name}.zip"})
 				.should.equal true
 
 		it "should record the action via Metrics", ->
@@ -107,10 +107,10 @@ describe "ProjectDownloadsController", ->
 				.should.equal true
 
 		it "should name the downloaded file after the project", ->
-			@res.header
+			@res.setContentDisposition
 				.calledWith(
-					"Content-Disposition",
-					"attachment; filename=ShareLaTeX Projects (2 items).zip")
+					'attachment',
+					{filename: "ShareLaTeX Projects (2 items).zip"})
 				.should.equal true
 
 		it "should record the action via Metrics", ->

+ 4 - 1
services/web/test/UnitTests/coffee/FileStore/FileStoreControllerTests.coffee

@@ -29,6 +29,7 @@ describe "FileStoreController", ->
 			get: (key) -> undefined
 		@res =
 			setHeader: sinon.stub()
+			setContentDisposition: sinon.stub()
 		@file =
 			name: "myfile.png"
 
@@ -62,7 +63,9 @@ describe "FileStoreController", ->
 
 		it "should set the Content-Disposition header", (done)->
 			@stream.pipe = (des)=>
-				@res.setHeader.calledWith("Content-Disposition", "attachment; filename=#{@file.name}").should.equal true
+				@res.setContentDisposition.calledWith(
+					"attachment", {filename: @file.name}
+				).should.equal true
 				done()
 			@controller.getFile @req, @res
 

+ 9 - 3
services/web/test/UnitTests/coffee/Project/ProjectGetterTests.coffee

@@ -34,7 +34,9 @@ describe "ProjectGetter", ->
 				@ProjectGetter.getProjectWithoutDocLines @project_id, @callback
 
 			it "should call find with the project id", ->
-				@db.projects.find.calledWith(_id: ObjectId(@project_id)).should.equal true
+				expect(@db.projects.find.lastCall.args[0]).to.deep.equal {
+					_id: ObjectId(@project_id)
+				}
 
 			it "should exclude the doc lines", ->
 				excludes =
@@ -65,7 +67,9 @@ describe "ProjectGetter", ->
 				@ProjectGetter.getProjectWithOnlyFolders @project_id, @callback
 
 			it "should call find with the project id", ->
-				@db.projects.find.calledWith(_id: ObjectId(@project_id)).should.equal true
+				expect(@db.projects.find.lastCall.args[0]).to.deep.equal {
+					_id: ObjectId(@project_id)
+				}
 
 			it "should exclude the docs and files linesaaaa", ->
 				excludes =
@@ -103,7 +107,9 @@ describe "ProjectGetter", ->
 				@ProjectGetter.getProjectWithOnlyFolders @project_id, @callback
 
 			it "should call find with the project id", ->
-				@db.projects.find.calledWith(_id: ObjectId(@project_id)).should.equal true
+				expect(@db.projects.find.lastCall.args[0]).to.deep.equal {
+					_id: ObjectId(@project_id)
+				}
 
 			it "should exclude the docs and files linesaaaa", ->
 				excludes =

+ 2 - 0
services/web/test/UnitTests/coffee/helpers/MockResponse.coffee

@@ -70,6 +70,8 @@ class MockResponse
 	setHeader: (header, value) ->
 		@headers[header] = value
 
+	setContentDisposition: sinon.stub()
+
 	setTimeout: (@timout)->
 
 	header: sinon.stub()