Ver Fonte

Merge pull request #7 from sharelatex/csh-ho-docker-issue-1338-bulk-upgrade

Services bulk upgrade - contacts
Christopher Hoskin há 7 anos atrás
pai
commit
8b59e77d89

+ 1 - 0
services/contacts/.gitignore

@@ -3,4 +3,5 @@ app/js/
 test/unit/js
 test/unit/js
 test/acceptance/js
 test/acceptance/js
 app.js
 app.js
+**/*.map
 forever
 forever

+ 1 - 1
services/contacts/Dockerfile

@@ -19,4 +19,4 @@ COPY --from=app /app /app
 WORKDIR /app
 WORKDIR /app
 USER node
 USER node
 
 
-CMD ["node","app.js"]
+CMD ["node", "--expose-gc", "app.js"]

+ 0 - 78
services/contacts/Gruntfile.coffee

@@ -1,78 +0,0 @@
-module.exports = (grunt) ->
-	grunt.initConfig
-		forever:
-			app:
-				options:
-					index: "app.js"
-
-		coffee:
-			app_src:
-				expand: true,
-				flatten: true,
-				cwd: "app"
-				src: ['coffee/*.coffee'],
-				dest: 'app/js/',
-				ext: '.js'
-
-			app:
-				src: "app.coffee"
-				dest: "app.js"
-
-			unit_tests:
-				expand: true
-				cwd:  "test/unit/coffee"
-				src: ["**/*.coffee"]
-				dest: "test/unit/js/"
-				ext:  ".js"
-
-			acceptance_tests:
-				expand: true
-				cwd:  "test/acceptance/coffee"
-				src: ["**/*.coffee"]
-				dest: "test/acceptance/js/"
-				ext:  ".js"
-
-		clean:
-			app: ["app/js/"]
-			unit_tests: ["test/unit/js"]
-			acceptance_tests: ["test/acceptance/js"]
-
-		execute:
-			app:
-				src: "app.js"
-
-		mochaTest:
-			unit:
-				options:
-					reporter: grunt.option('reporter') or 'spec'
-					grep: grunt.option("grep")
-				src: ["test/unit/js/**/*.js"]
-			acceptance:
-				options:
-					reporter: grunt.option('reporter') or 'spec'
-					timeout: 40000
-					grep: grunt.option("grep")
-				src: ["test/acceptance/js/**/*.js"]
-
-	grunt.loadNpmTasks 'grunt-contrib-coffee'
-	grunt.loadNpmTasks 'grunt-contrib-clean'
-	grunt.loadNpmTasks 'grunt-mocha-test'
-	grunt.loadNpmTasks 'grunt-shell'
-	grunt.loadNpmTasks 'grunt-execute'
-	grunt.loadNpmTasks 'grunt-bunyan'
-	grunt.loadNpmTasks 'grunt-forever'
-
-	grunt.registerTask 'compile:app', ['clean:app', 'coffee:app', 'coffee:app_src']
-	grunt.registerTask 'run',         ['compile:app', 'bunyan', 'execute']
-
-	grunt.registerTask 'compile:unit_tests', ['clean:unit_tests', 'coffee:unit_tests']
-	grunt.registerTask 'test:unit',          ['compile:app', 'compile:unit_tests', 'mochaTest:unit']
-
-	grunt.registerTask 'compile:acceptance_tests', ['clean:acceptance_tests', 'coffee:acceptance_tests']
-	grunt.registerTask 'test:acceptance',          ['compile:acceptance_tests', 'mochaTest:acceptance']
-
-	grunt.registerTask 'install', 'compile:app'
-
-	grunt.registerTask 'default', ['run']
-
-

+ 1 - 1
services/contacts/Makefile

@@ -1,7 +1,7 @@
 # This file was auto-generated, do not edit it directly.
 # This file was auto-generated, do not edit it directly.
 # Instead run bin/update_build_scripts from
 # Instead run bin/update_build_scripts from
 # https://github.com/sharelatex/sharelatex-dev-environment
 # https://github.com/sharelatex/sharelatex-dev-environment
-# Version: 1.1.9
+# Version: 1.1.10
 
 
 BUILD_NUMBER ?= local
 BUILD_NUMBER ?= local
 BRANCH_NAME ?= $(shell git rev-parse --abbrev-ref HEAD)
 BRANCH_NAME ?= $(shell git rev-parse --abbrev-ref HEAD)

+ 7 - 2
services/contacts/app.coffee

@@ -1,13 +1,16 @@
+Metrics    = require "metrics-sharelatex"
+Metrics.initialize("contacts")
+
 Settings   = require "settings-sharelatex"
 Settings   = require "settings-sharelatex"
 logger     = require "logger-sharelatex"
 logger     = require "logger-sharelatex"
 express    = require "express"
 express    = require "express"
 bodyParser = require "body-parser"
 bodyParser = require "body-parser"
 Errors     = require "./app/js/Errors"
 Errors     = require "./app/js/Errors"
 HttpController = require "./app/js/HttpController"
 HttpController = require "./app/js/HttpController"
-Metrics    = require "metrics-sharelatex"
+
 Path       = require "path"
 Path       = require "path"
 
 
-Metrics.initialize("contacts")
+
 logger.initialize("contacts")
 logger.initialize("contacts")
 Metrics.event_loop?.monitor(logger)
 Metrics.event_loop?.monitor(logger)
 
 
@@ -15,6 +18,8 @@ app = express()
 
 
 app.use Metrics.http.monitor(logger)
 app.use Metrics.http.monitor(logger)
 
 
+Metrics.injectMetricsRoute(app)
+
 app.get  '/user/:user_id/contacts', HttpController.getContacts
 app.get  '/user/:user_id/contacts', HttpController.getContacts
 app.post '/user/:user_id/contacts', bodyParser.json(limit: "2mb"), HttpController.addContact
 app.post '/user/:user_id/contacts', bodyParser.json(limit: "2mb"), HttpController.addContact
 
 

+ 1 - 1
services/contacts/buildscript.txt

@@ -1,4 +1,4 @@
---script-version=1.1.9
+--script-version=1.1.10
 contacts
 contacts
 --node-version=6.14.1
 --node-version=6.14.1
 --acceptance-creds=None
 --acceptance-creds=None

+ 1 - 1
services/contacts/config/settings.defaults.coffee

@@ -8,4 +8,4 @@ module.exports =
 			host: process.env["LISTEN_ADDRESS"] or "localhost"
 			host: process.env["LISTEN_ADDRESS"] or "localhost"
 
 
 	mongo:
 	mongo:
-		url: "mongodb://#{process.env["MONGO_HOST"] or "localhost"}/sharelatex"
+		url: process.env['MONGO_CONNECTION_STRING'] or "mongodb://#{process.env["MONGO_HOST"] or "localhost"}/sharelatex"

+ 1 - 1
services/contacts/docker-compose.ci.yml

@@ -1,7 +1,7 @@
 # This file was auto-generated, do not edit it directly.
 # This file was auto-generated, do not edit it directly.
 # Instead run bin/update_build_scripts from
 # Instead run bin/update_build_scripts from
 # https://github.com/sharelatex/sharelatex-dev-environment
 # https://github.com/sharelatex/sharelatex-dev-environment
-# Version: 1.1.9
+# Version: 1.1.10
 
 
 version: "2"
 version: "2"
 
 

+ 1 - 1
services/contacts/docker-compose.yml

@@ -1,7 +1,7 @@
 # This file was auto-generated, do not edit it directly.
 # This file was auto-generated, do not edit it directly.
 # Instead run bin/update_build_scripts from
 # Instead run bin/update_build_scripts from
 # https://github.com/sharelatex/sharelatex-dev-environment
 # https://github.com/sharelatex/sharelatex-dev-environment
-# Version: 1.1.9
+# Version: 1.1.10
 
 
 version: "2"
 version: "2"
 
 

+ 1785 - 0
services/contacts/npm-shrinkwrap.json

@@ -0,0 +1,1785 @@
+{
+  "name": "contacts-sharelatex",
+  "version": "0.1.0",
+  "dependencies": {
+    "@google-cloud/common": {
+      "version": "0.27.0",
+      "from": "@google-cloud/common@>=0.27.0 <0.28.0",
+      "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.27.0.tgz"
+    },
+    "@google-cloud/debug-agent": {
+      "version": "3.0.1",
+      "from": "@google-cloud/debug-agent@>=3.0.0 <4.0.0",
+      "resolved": "https://registry.npmjs.org/@google-cloud/debug-agent/-/debug-agent-3.0.1.tgz",
+      "dependencies": {
+        "coffeescript": {
+          "version": "2.3.2",
+          "from": "coffeescript@>=2.0.0 <3.0.0",
+          "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-2.3.2.tgz"
+        }
+      }
+    },
+    "@google-cloud/profiler": {
+      "version": "0.2.3",
+      "from": "@google-cloud/profiler@>=0.2.3 <0.3.0",
+      "resolved": "https://registry.npmjs.org/@google-cloud/profiler/-/profiler-0.2.3.tgz",
+      "dependencies": {
+        "@google-cloud/common": {
+          "version": "0.26.2",
+          "from": "@google-cloud/common@>=0.26.0 <0.27.0",
+          "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.26.2.tgz"
+        },
+        "through2": {
+          "version": "3.0.0",
+          "from": "through2@>=3.0.0 <4.0.0",
+          "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.0.tgz"
+        }
+      }
+    },
+    "@google-cloud/projectify": {
+      "version": "0.3.2",
+      "from": "@google-cloud/projectify@>=0.3.2 <0.4.0",
+      "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-0.3.2.tgz"
+    },
+    "@google-cloud/promisify": {
+      "version": "0.3.1",
+      "from": "@google-cloud/promisify@>=0.3.0 <0.4.0",
+      "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-0.3.1.tgz"
+    },
+    "@google-cloud/trace-agent": {
+      "version": "3.5.0",
+      "from": "@google-cloud/trace-agent@>=3.2.0 <4.0.0",
+      "resolved": "https://registry.npmjs.org/@google-cloud/trace-agent/-/trace-agent-3.5.0.tgz",
+      "dependencies": {
+        "@google-cloud/common": {
+          "version": "0.28.0",
+          "from": "@google-cloud/common@>=0.28.0 <0.29.0",
+          "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.28.0.tgz"
+        },
+        "methods": {
+          "version": "1.1.2",
+          "from": "methods@>=1.1.1 <2.0.0",
+          "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz"
+        },
+        "uuid": {
+          "version": "3.3.2",
+          "from": "uuid@^3.0.1",
+          "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz"
+        }
+      }
+    },
+    "@protobufjs/aspromise": {
+      "version": "1.1.2",
+      "from": "@protobufjs/aspromise@>=1.1.2 <2.0.0",
+      "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz"
+    },
+    "@protobufjs/base64": {
+      "version": "1.1.2",
+      "from": "@protobufjs/base64@>=1.1.2 <2.0.0",
+      "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz"
+    },
+    "@protobufjs/codegen": {
+      "version": "2.0.4",
+      "from": "@protobufjs/codegen@>=2.0.4 <3.0.0",
+      "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz"
+    },
+    "@protobufjs/eventemitter": {
+      "version": "1.1.0",
+      "from": "@protobufjs/eventemitter@>=1.1.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz"
+    },
+    "@protobufjs/fetch": {
+      "version": "1.1.0",
+      "from": "@protobufjs/fetch@>=1.1.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz"
+    },
+    "@protobufjs/float": {
+      "version": "1.0.2",
+      "from": "@protobufjs/float@>=1.0.2 <2.0.0",
+      "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz"
+    },
+    "@protobufjs/inquire": {
+      "version": "1.1.0",
+      "from": "@protobufjs/inquire@>=1.1.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz"
+    },
+    "@protobufjs/path": {
+      "version": "1.1.2",
+      "from": "@protobufjs/path@>=1.1.2 <2.0.0",
+      "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz"
+    },
+    "@protobufjs/pool": {
+      "version": "1.1.0",
+      "from": "@protobufjs/pool@>=1.1.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz"
+    },
+    "@protobufjs/utf8": {
+      "version": "1.1.0",
+      "from": "@protobufjs/utf8@>=1.1.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz"
+    },
+    "@sindresorhus/is": {
+      "version": "0.13.0",
+      "from": "@sindresorhus/is@>=0.13.0 <0.14.0",
+      "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.13.0.tgz"
+    },
+    "@sinonjs/commons": {
+      "version": "1.3.0",
+      "from": "@sinonjs/commons@>=1.2.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.3.0.tgz",
+      "dependencies": {
+        "type-detect": {
+          "version": "4.0.8",
+          "from": "type-detect@4.0.8",
+          "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz"
+        }
+      }
+    },
+    "@sinonjs/formatio": {
+      "version": "3.1.0",
+      "from": "@sinonjs/formatio@>=3.1.0 <4.0.0",
+      "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.1.0.tgz"
+    },
+    "@sinonjs/samsam": {
+      "version": "3.0.2",
+      "from": "@sinonjs/samsam@>=3.0.2 <4.0.0",
+      "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.0.2.tgz"
+    },
+    "@types/caseless": {
+      "version": "0.12.1",
+      "from": "@types/caseless@*",
+      "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.1.tgz"
+    },
+    "@types/console-log-level": {
+      "version": "1.4.0",
+      "from": "@types/console-log-level@>=1.4.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/@types/console-log-level/-/console-log-level-1.4.0.tgz"
+    },
+    "@types/duplexify": {
+      "version": "3.6.0",
+      "from": "@types/duplexify@>=3.5.0 <4.0.0",
+      "resolved": "https://registry.npmjs.org/@types/duplexify/-/duplexify-3.6.0.tgz"
+    },
+    "@types/form-data": {
+      "version": "2.2.1",
+      "from": "@types/form-data@*",
+      "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz"
+    },
+    "@types/long": {
+      "version": "4.0.0",
+      "from": "@types/long@>=4.0.0 <5.0.0",
+      "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.0.tgz"
+    },
+    "@types/node": {
+      "version": "10.12.18",
+      "from": "@types/node@*",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz"
+    },
+    "@types/request": {
+      "version": "2.48.1",
+      "from": "@types/request@>=2.47.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.1.tgz"
+    },
+    "@types/semver": {
+      "version": "5.5.0",
+      "from": "@types/semver@>=5.5.0 <6.0.0",
+      "resolved": "https://registry.npmjs.org/@types/semver/-/semver-5.5.0.tgz"
+    },
+    "@types/tough-cookie": {
+      "version": "2.3.4",
+      "from": "@types/tough-cookie@*",
+      "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.4.tgz"
+    },
+    "abbrev": {
+      "version": "1.1.1",
+      "from": "abbrev@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz"
+    },
+    "accepts": {
+      "version": "1.0.1",
+      "from": "accepts@1.0.1",
+      "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.0.1.tgz"
+    },
+    "acorn": {
+      "version": "5.7.3",
+      "from": "acorn@>=5.0.3 <6.0.0",
+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz"
+    },
+    "agent-base": {
+      "version": "4.2.1",
+      "from": "agent-base@>=4.1.0 <5.0.0",
+      "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz"
+    },
+    "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"
+    },
+    "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"
+        },
+        "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-from": {
+      "version": "2.1.1",
+      "from": "array-from@>=2.1.1 <3.0.0",
+      "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz"
+    },
+    "arrify": {
+      "version": "1.0.1",
+      "from": "arrify@>=1.0.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz"
+    },
+    "asn1": {
+      "version": "0.1.11",
+      "from": "asn1@0.1.11",
+      "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz",
+      "optional": true
+    },
+    "assert-plus": {
+      "version": "0.1.5",
+      "from": "assert-plus@>=0.1.5 <0.2.0",
+      "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz",
+      "optional": true
+    },
+    "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",
+      "dev": true
+    },
+    "async": {
+      "version": "0.8.0",
+      "from": "async@>=0.8.0 <0.9.0",
+      "resolved": "https://registry.npmjs.org/async/-/async-0.8.0.tgz"
+    },
+    "async-listener": {
+      "version": "0.6.10",
+      "from": "async-listener@>=0.6.0 <0.7.0",
+      "resolved": "https://registry.npmjs.org/async-listener/-/async-listener-0.6.10.tgz"
+    },
+    "aws-sign2": {
+      "version": "0.5.0",
+      "from": "aws-sign2@>=0.5.0 <0.6.0",
+      "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz",
+      "optional": true
+    },
+    "axios": {
+      "version": "0.18.0",
+      "from": "axios@>=0.18.0 <0.19.0",
+      "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz"
+    },
+    "balanced-match": {
+      "version": "1.0.0",
+      "from": "balanced-match@^1.0.0",
+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"
+    },
+    "bignumber.js": {
+      "version": "7.2.1",
+      "from": "bignumber.js@>=7.0.0 <8.0.0",
+      "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz"
+    },
+    "bindings": {
+      "version": "1.3.1",
+      "from": "bindings@>=1.2.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.1.tgz"
+    },
+    "bintrees": {
+      "version": "1.0.1",
+      "from": "bintrees@1.0.1",
+      "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz"
+    },
+    "body-parser": {
+      "version": "1.0.2",
+      "from": "body-parser@>=1.0.2 <1.1.0",
+      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.0.2.tgz"
+    },
+    "boom": {
+      "version": "0.4.2",
+      "from": "boom@>=0.4.0 <0.5.0",
+      "resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz"
+    },
+    "brace-expansion": {
+      "version": "1.1.11",
+      "from": "brace-expansion@^1.1.7",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
+    },
+    "browser-stdout": {
+      "version": "1.3.0",
+      "from": "browser-stdout@1.3.0",
+      "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz",
+      "dev": true
+    },
+    "bson": {
+      "version": "1.0.9",
+      "from": "bson@>=1.0.4 <1.1.0",
+      "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.9.tgz"
+    },
+    "buffer-crc32": {
+      "version": "0.2.1",
+      "from": "buffer-crc32@0.2.1",
+      "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.1.tgz"
+    },
+    "buffer-equal-constant-time": {
+      "version": "1.0.1",
+      "from": "buffer-equal-constant-time@1.0.1",
+      "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz"
+    },
+    "buffer-shims": {
+      "version": "1.0.0",
+      "from": "buffer-shims@>=1.0.0 <1.1.0",
+      "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz"
+    },
+    "builtin-modules": {
+      "version": "3.0.0",
+      "from": "builtin-modules@>=3.0.0 <4.0.0",
+      "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.0.0.tgz"
+    },
+    "bunyan": {
+      "version": "0.22.3",
+      "from": "bunyan@>=0.22.3 <0.23.0",
+      "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-0.22.3.tgz",
+      "dev": true
+    },
+    "buster-core": {
+      "version": "0.6.4",
+      "from": "buster-core@0.6.4",
+      "resolved": "https://registry.npmjs.org/buster-core/-/buster-core-0.6.4.tgz",
+      "dev": true
+    },
+    "buster-format": {
+      "version": "0.5.6",
+      "from": "buster-format@>=0.5.0 <0.6.0",
+      "resolved": "https://registry.npmjs.org/buster-format/-/buster-format-0.5.6.tgz",
+      "dev": true
+    },
+    "bytes": {
+      "version": "1.0.0",
+      "from": "bytes@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz"
+    },
+    "chai": {
+      "version": "1.9.2",
+      "from": "chai@>=1.9.1 <1.10.0",
+      "resolved": "https://registry.npmjs.org/chai/-/chai-1.9.2.tgz",
+      "dev": true
+    },
+    "chalk": {
+      "version": "0.5.1",
+      "from": "chalk@>=0.5.0 <0.6.0",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz",
+      "dependencies": {
+        "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"
+        }
+      }
+    },
+    "check-error": {
+      "version": "1.0.2",
+      "from": "check-error@>=1.0.2 <2.0.0",
+      "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz"
+    },
+    "coffee-script": {
+      "version": "1.12.7",
+      "from": "coffee-script@>=1.7.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.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": "0.0.7",
+      "from": "combined-stream@>=0.0.4 <0.1.0",
+      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz",
+      "optional": true
+    },
+    "commander": {
+      "version": "2.0.0",
+      "from": "commander@2.0.0",
+      "resolved": "https://registry.npmjs.org/commander/-/commander-2.0.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"
+    },
+    "console-log-level": {
+      "version": "1.4.0",
+      "from": "console-log-level@>=1.4.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/console-log-level/-/console-log-level-1.4.0.tgz"
+    },
+    "continuation-local-storage": {
+      "version": "3.2.1",
+      "from": "continuation-local-storage@>=3.2.1 <4.0.0",
+      "resolved": "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz"
+    },
+    "cookie": {
+      "version": "0.1.2",
+      "from": "cookie@0.1.2",
+      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.2.tgz"
+    },
+    "cookie-signature": {
+      "version": "1.0.3",
+      "from": "cookie-signature@1.0.3",
+      "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.3.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"
+    },
+    "cryptiles": {
+      "version": "0.2.2",
+      "from": "cryptiles@>=0.2.0 <0.3.0",
+      "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz",
+      "optional": true
+    },
+    "ctype": {
+      "version": "0.5.3",
+      "from": "ctype@0.5.3",
+      "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz",
+      "optional": true
+    },
+    "dateformat": {
+      "version": "1.0.2-1.2.3",
+      "from": "dateformat@1.0.2-1.2.3",
+      "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz"
+    },
+    "debug": {
+      "version": "0.8.1",
+      "from": "debug@>=0.7.3 <1.0.0",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-0.8.1.tgz"
+    },
+    "deep-eql": {
+      "version": "0.1.3",
+      "from": "deep-eql@0.1.3",
+      "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz",
+      "dev": true
+    },
+    "delay": {
+      "version": "4.1.0",
+      "from": "delay@>=4.0.1 <5.0.0",
+      "resolved": "https://registry.npmjs.org/delay/-/delay-4.1.0.tgz"
+    },
+    "delayed-stream": {
+      "version": "0.0.5",
+      "from": "delayed-stream@0.0.5",
+      "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz",
+      "optional": true
+    },
+    "diff": {
+      "version": "1.0.7",
+      "from": "diff@1.0.7",
+      "resolved": "https://registry.npmjs.org/diff/-/diff-1.0.7.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",
+      "dev": true,
+      "optional": true
+    },
+    "duplexify": {
+      "version": "3.6.1",
+      "from": "duplexify@>=3.6.0 <4.0.0",
+      "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.1.tgz"
+    },
+    "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"
+    },
+    "ecdsa-sig-formatter": {
+      "version": "1.0.10",
+      "from": "ecdsa-sig-formatter@1.0.10",
+      "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz"
+    },
+    "emitter-listener": {
+      "version": "1.1.2",
+      "from": "emitter-listener@>=1.1.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.1.2.tgz"
+    },
+    "end-of-stream": {
+      "version": "1.4.1",
+      "from": "end-of-stream@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz"
+    },
+    "ent": {
+      "version": "2.2.0",
+      "from": "ent@>=2.2.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz"
+    },
+    "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"
+    },
+    "es6-promisify": {
+      "version": "5.0.0",
+      "from": "es6-promisify@>=5.0.0 <6.0.0",
+      "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
+      "dependencies": {
+        "es6-promise": {
+          "version": "4.2.5",
+          "from": "es6-promise@>=4.0.3 <5.0.0",
+          "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz"
+        }
+      }
+    },
+    "escape-html": {
+      "version": "1.0.1",
+      "from": "escape-html@1.0.1",
+      "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz"
+    },
+    "escape-string-regexp": {
+      "version": "1.0.5",
+      "from": "escape-string-regexp@1.0.5",
+      "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"
+    },
+    "eventemitter2": {
+      "version": "0.4.14",
+      "from": "eventemitter2@>=0.4.13 <0.5.0",
+      "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.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.1.2",
+      "from": "express@>=4.1.1 <4.2.0",
+      "resolved": "https://registry.npmjs.org/express/-/express-4.1.2.tgz"
+    },
+    "extend": {
+      "version": "3.0.2",
+      "from": "extend@>=3.0.1 <4.0.0",
+      "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz"
+    },
+    "findit2": {
+      "version": "2.2.3",
+      "from": "findit2@>=2.2.3 <3.0.0",
+      "resolved": "https://registry.npmjs.org/findit2/-/findit2-2.2.3.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": {
+        "glob": {
+          "version": "3.2.11",
+          "from": "glob@>=3.2.9 <3.3.0",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.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"
+        },
+        "minimatch": {
+          "version": "0.3.0",
+          "from": "minimatch@>=0.3.0 <0.4.0",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz"
+        }
+      }
+    },
+    "follow-redirects": {
+      "version": "1.6.1",
+      "from": "follow-redirects@>=1.3.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.6.1.tgz",
+      "dependencies": {
+        "debug": {
+          "version": "3.1.0",
+          "from": "debug@3.1.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz"
+        }
+      }
+    },
+    "forever-agent": {
+      "version": "0.5.2",
+      "from": "forever-agent@>=0.5.0 <0.6.0",
+      "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz"
+    },
+    "form-data": {
+      "version": "0.1.4",
+      "from": "form-data@>=0.1.0 <0.2.0",
+      "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz",
+      "optional": true,
+      "dependencies": {
+        "async": {
+          "version": "0.9.2",
+          "from": "async@>=0.9.0 <0.10.0",
+          "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
+          "optional": true
+        }
+      }
+    },
+    "fresh": {
+      "version": "0.2.2",
+      "from": "fresh@0.2.2",
+      "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.2.2.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": {
+        "ncp": {
+          "version": "0.5.1",
+          "from": "ncp@>=0.5.1 <0.6.0",
+          "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.5.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",
+      "dev": true
+    },
+    "gaxios": {
+      "version": "1.0.7",
+      "from": "gaxios@>=1.0.2 <2.0.0",
+      "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-1.0.7.tgz"
+    },
+    "gcp-metadata": {
+      "version": "0.9.3",
+      "from": "gcp-metadata@>=0.9.0 <0.10.0",
+      "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.9.3.tgz"
+    },
+    "get-func-name": {
+      "version": "2.0.0",
+      "from": "get-func-name@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.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"
+    },
+    "glob": {
+      "version": "6.0.4",
+      "from": "glob@^6.0.1",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz"
+    },
+    "google-auth-library": {
+      "version": "2.0.2",
+      "from": "google-auth-library@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-2.0.2.tgz",
+      "dependencies": {
+        "gcp-metadata": {
+          "version": "0.7.0",
+          "from": "gcp-metadata@>=0.7.0 <0.8.0",
+          "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.7.0.tgz"
+        },
+        "lru-cache": {
+          "version": "5.1.1",
+          "from": "lru-cache@>=5.0.0 <6.0.0",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz"
+        }
+      }
+    },
+    "google-p12-pem": {
+      "version": "1.0.3",
+      "from": "google-p12-pem@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-1.0.3.tgz"
+    },
+    "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"
+    },
+    "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 <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 <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 <1.4.0",
+          "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz"
+        },
+        "glob": {
+          "version": "3.1.21",
+          "from": "glob@>=3.1.21 <3.2.0",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz"
+        },
+        "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 <0.3.0",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz"
+        },
+        "rimraf": {
+          "version": "2.2.8",
+          "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-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": {
+        "rimraf": {
+          "version": "2.2.8",
+          "from": "rimraf@~2.2.1",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"
+        }
+      }
+    },
+    "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"
+        },
+        "lodash": {
+          "version": "2.4.2",
+          "from": "lodash@>=2.4.1 <2.5.0",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.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-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.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"
+        },
+        "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",
+          "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.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",
+      "dependencies": {
+        "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"
+        },
+        "minimatch": {
+          "version": "0.2.14",
+          "from": "minimatch@~0.2.11",
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz"
+        },
+        "mkdirp": {
+          "version": "0.3.5",
+          "from": "mkdirp@0.3.5",
+          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz"
+        },
+        "mocha": {
+          "version": "1.20.1",
+          "from": "mocha@>=1.20.0 <1.21.0",
+          "resolved": "https://registry.npmjs.org/mocha/-/mocha-1.20.1.tgz"
+        }
+      }
+    },
+    "gtoken": {
+      "version": "2.3.0",
+      "from": "gtoken@>=2.3.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-2.3.0.tgz",
+      "dependencies": {
+        "mime": {
+          "version": "2.4.0",
+          "from": "mime@>=2.2.0 <3.0.0",
+          "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz"
+        },
+        "pify": {
+          "version": "3.0.0",
+          "from": "pify@>=3.0.0 <4.0.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.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"
+    },
+    "has-flag": {
+      "version": "2.0.0",
+      "from": "has-flag@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
+      "dev": true
+    },
+    "hawk": {
+      "version": "1.0.0",
+      "from": "hawk@>=1.0.0 <1.1.0",
+      "resolved": "https://registry.npmjs.org/hawk/-/hawk-1.0.0.tgz",
+      "optional": true
+    },
+    "he": {
+      "version": "1.1.1",
+      "from": "he@1.1.1",
+      "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
+      "dev": true
+    },
+    "hex2dec": {
+      "version": "1.1.1",
+      "from": "hex2dec@>=1.0.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/hex2dec/-/hex2dec-1.1.1.tgz"
+    },
+    "hoek": {
+      "version": "0.9.1",
+      "from": "hoek@>=0.9.0 <0.10.0",
+      "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.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"
+    },
+    "http-signature": {
+      "version": "0.10.1",
+      "from": "http-signature@>=0.10.0 <0.11.0",
+      "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz",
+      "optional": true
+    },
+    "https-proxy-agent": {
+      "version": "2.2.1",
+      "from": "https-proxy-agent@>=2.2.1 <3.0.0",
+      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz",
+      "dependencies": {
+        "debug": {
+          "version": "3.2.6",
+          "from": "debug@>=3.1.0 <4.0.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz"
+        },
+        "ms": {
+          "version": "2.1.1",
+          "from": "ms@>=2.1.1 <3.0.0",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.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"
+    },
+    "inflight": {
+      "version": "1.0.6",
+      "from": "inflight@^1.0.4",
+      "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"
+    },
+    "ip-regex": {
+      "version": "3.0.0",
+      "from": "ip-regex@>=3.0.0 <4.0.0",
+      "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-3.0.0.tgz",
+      "optional": true
+    },
+    "is": {
+      "version": "3.3.0",
+      "from": "is@>=3.2.0 <4.0.0",
+      "resolved": "https://registry.npmjs.org/is/-/is-3.3.0.tgz"
+    },
+    "is-buffer": {
+      "version": "1.1.6",
+      "from": "is-buffer@>=1.1.5 <2.0.0",
+      "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.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"
+    },
+    "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"
+        },
+        "mkdirp": {
+          "version": "0.3.0",
+          "from": "mkdirp@0.3.0",
+          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.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"
+    },
+    "json-bigint": {
+      "version": "0.3.0",
+      "from": "json-bigint@>=0.3.0 <0.4.0",
+      "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-0.3.0.tgz"
+    },
+    "json-stringify-safe": {
+      "version": "5.0.1",
+      "from": "json-stringify-safe@>=5.0.0 <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"
+    },
+    "just-extend": {
+      "version": "4.0.2",
+      "from": "just-extend@>=4.0.2 <5.0.0",
+      "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.0.2.tgz"
+    },
+    "jwa": {
+      "version": "1.1.6",
+      "from": "jwa@>=1.1.5 <2.0.0",
+      "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.1.6.tgz"
+    },
+    "jws": {
+      "version": "3.1.5",
+      "from": "jws@>=3.1.5 <4.0.0",
+      "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.5.tgz"
+    },
+    "lodash": {
+      "version": "0.9.2",
+      "from": "lodash@>=0.9.2 <0.10.0",
+      "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz"
+    },
+    "lodash.get": {
+      "version": "4.4.2",
+      "from": "lodash.get@>=4.4.2 <5.0.0",
+      "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz"
+    },
+    "lodash.pickby": {
+      "version": "4.6.0",
+      "from": "lodash.pickby@>=4.6.0 <5.0.0",
+      "resolved": "https://registry.npmjs.org/lodash.pickby/-/lodash.pickby-4.6.0.tgz"
+    },
+    "logger-sharelatex": {
+      "version": "1.5.9",
+      "from": "git+https://github.com/sharelatex/logger-sharelatex.git#v1.5.9",
+      "resolved": "git+https://github.com/sharelatex/logger-sharelatex.git#e8e1b95052f62e107336053e4a983f81cdbdf589",
+      "dependencies": {
+        "assertion-error": {
+          "version": "1.1.0",
+          "from": "assertion-error@>=1.1.0 <2.0.0",
+          "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-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"
+        },
+        "chai": {
+          "version": "4.2.0",
+          "from": "chai@latest",
+          "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.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"
+        },
+        "deep-eql": {
+          "version": "3.0.1",
+          "from": "deep-eql@>=3.0.1 <4.0.0",
+          "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz"
+        },
+        "diff": {
+          "version": "3.5.0",
+          "from": "diff@>=3.5.0 <4.0.0",
+          "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.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
+        },
+        "has-flag": {
+          "version": "3.0.0",
+          "from": "has-flag@>=3.0.0 <4.0.0",
+          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.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": "7.2.2",
+          "from": "sinon@latest",
+          "resolved": "https://registry.npmjs.org/sinon/-/sinon-7.2.2.tgz"
+        },
+        "supports-color": {
+          "version": "5.5.0",
+          "from": "supports-color@>=5.5.0 <6.0.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
+        },
+        "timekeeper": {
+          "version": "1.0.0",
+          "from": "timekeeper@>=1.0.0 <2.0.0",
+          "resolved": "https://registry.npmjs.org/timekeeper/-/timekeeper-1.0.0.tgz"
+        },
+        "type-detect": {
+          "version": "4.0.8",
+          "from": "type-detect@>=4.0.5 <5.0.0",
+          "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz"
+        }
+      }
+    },
+    "lolex": {
+      "version": "3.0.0",
+      "from": "lolex@>=3.0.0 <4.0.0",
+      "resolved": "https://registry.npmjs.org/lolex/-/lolex-3.0.0.tgz"
+    },
+    "long": {
+      "version": "4.0.0",
+      "from": "long@>=4.0.0 <5.0.0",
+      "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.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 <0.2.0",
+      "resolved": "https://registry.npmjs.org/lynx/-/lynx-0.1.1.tgz"
+    },
+    "merge-descriptors": {
+      "version": "0.0.2",
+      "from": "merge-descriptors@0.0.2",
+      "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-0.0.2.tgz"
+    },
+    "mersenne": {
+      "version": "0.0.4",
+      "from": "mersenne@>=0.0.3 <0.1.0",
+      "resolved": "https://registry.npmjs.org/mersenne/-/mersenne-0.0.4.tgz"
+    },
+    "methods": {
+      "version": "0.1.0",
+      "from": "methods@0.1.0",
+      "resolved": "https://registry.npmjs.org/methods/-/methods-0.1.0.tgz"
+    },
+    "metrics-sharelatex": {
+      "version": "2.0.12",
+      "from": "git+https://github.com/sharelatex/metrics-sharelatex.git#v2.0.12",
+      "resolved": "git+https://github.com/sharelatex/metrics-sharelatex.git#3ac1621ef049e2f2d88a83b3a41011333d609662",
+      "dependencies": {
+        "coffee-script": {
+          "version": "1.6.0",
+          "from": "coffee-script@1.6.0",
+          "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.0.tgz"
+        }
+      }
+    },
+    "mime": {
+      "version": "1.2.11",
+      "from": "mime@>=1.2.11 <1.3.0",
+      "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz"
+    },
+    "minimatch": {
+      "version": "3.0.4",
+      "from": "minimatch@2 || 3",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.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.1",
+      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"
+    },
+    "mocha": {
+      "version": "4.1.0",
+      "from": "mocha@>=4.0.1 <5.0.0",
+      "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz",
+      "dev": true,
+      "dependencies": {
+        "commander": {
+          "version": "2.11.0",
+          "from": "commander@2.11.0",
+          "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
+          "dev": true
+        },
+        "debug": {
+          "version": "3.1.0",
+          "from": "debug@3.1.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+          "dev": true
+        },
+        "diff": {
+          "version": "3.3.1",
+          "from": "diff@3.3.1",
+          "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz",
+          "dev": true
+        },
+        "glob": {
+          "version": "7.1.2",
+          "from": "glob@7.1.2",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+          "dev": true
+        },
+        "growl": {
+          "version": "1.10.3",
+          "from": "growl@1.10.3",
+          "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz",
+          "dev": true
+        }
+      }
+    },
+    "module-details-from-path": {
+      "version": "1.0.3",
+      "from": "module-details-from-path@>=1.0.3 <2.0.0",
+      "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz"
+    },
+    "mongodb": {
+      "version": "2.2.36",
+      "from": "mongodb@>=2.0.45 <3.0.0",
+      "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-2.2.36.tgz",
+      "dependencies": {
+        "readable-stream": {
+          "version": "2.2.7",
+          "from": "readable-stream@2.2.7",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz"
+        },
+        "string_decoder": {
+          "version": "1.0.3",
+          "from": "string_decoder@>=1.0.0 <1.1.0",
+          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz"
+        }
+      }
+    },
+    "mongodb-core": {
+      "version": "2.1.20",
+      "from": "mongodb-core@2.1.20",
+      "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.20.tgz"
+    },
+    "mongojs": {
+      "version": "2.4.0",
+      "from": "mongojs@2.4.0",
+      "resolved": "https://registry.npmjs.org/mongojs/-/mongojs-2.4.0.tgz"
+    },
+    "ms": {
+      "version": "2.0.0",
+      "from": "ms@2.0.0",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
+    },
+    "mv": {
+      "version": "2.1.1",
+      "from": "mv@~2",
+      "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz",
+      "optional": true
+    },
+    "nan": {
+      "version": "2.12.1",
+      "from": "nan@>=2.11.1 <3.0.0",
+      "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz"
+    },
+    "ncp": {
+      "version": "2.0.0",
+      "from": "ncp@~2.0.0",
+      "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz",
+      "optional": true
+    },
+    "negotiator": {
+      "version": "0.4.9",
+      "from": "negotiator@>=0.4.0 <0.5.0",
+      "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.4.9.tgz"
+    },
+    "nise": {
+      "version": "1.4.8",
+      "from": "nise@>=1.4.7 <2.0.0",
+      "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.8.tgz",
+      "dependencies": {
+        "isarray": {
+          "version": "0.0.1",
+          "from": "isarray@0.0.1",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
+        },
+        "lolex": {
+          "version": "2.7.5",
+          "from": "lolex@>=2.3.2 <3.0.0",
+          "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.7.5.tgz"
+        },
+        "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"
+        }
+      }
+    },
+    "node-fetch": {
+      "version": "2.3.0",
+      "from": "node-fetch@>=2.2.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.3.0.tgz"
+    },
+    "node-forge": {
+      "version": "0.7.6",
+      "from": "node-forge@>=0.7.5 <0.8.0",
+      "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.6.tgz"
+    },
+    "node-uuid": {
+      "version": "1.4.8",
+      "from": "node-uuid@>=1.4.1 <1.5.0",
+      "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz"
+    },
+    "nopt": {
+      "version": "1.0.10",
+      "from": "nopt@>=1.0.10 <1.1.0",
+      "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz"
+    },
+    "oauth-sign": {
+      "version": "0.3.0",
+      "from": "oauth-sign@>=0.3.0 <0.4.0",
+      "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz",
+      "optional": true
+    },
+    "once": {
+      "version": "1.4.0",
+      "from": "once@>=1.3.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
+    },
+    "p-limit": {
+      "version": "2.1.0",
+      "from": "p-limit@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz"
+    },
+    "p-try": {
+      "version": "2.0.0",
+      "from": "p-try@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz"
+    },
+    "parse-duration": {
+      "version": "0.1.1",
+      "from": "parse-duration@>=0.1.1 <0.2.0",
+      "resolved": "https://registry.npmjs.org/parse-duration/-/parse-duration-0.1.1.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"
+    },
+    "parse-ms": {
+      "version": "2.0.0",
+      "from": "parse-ms@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.0.0.tgz"
+    },
+    "parseurl": {
+      "version": "1.0.1",
+      "from": "parseurl@1.0.1",
+      "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.0.1.tgz"
+    },
+    "path-is-absolute": {
+      "version": "1.0.1",
+      "from": "path-is-absolute@^1.0.0",
+      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+    },
+    "path-parse": {
+      "version": "1.0.6",
+      "from": "path-parse@>=1.0.6 <2.0.0",
+      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz"
+    },
+    "path-to-regexp": {
+      "version": "0.1.2",
+      "from": "path-to-regexp@0.1.2",
+      "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.2.tgz"
+    },
+    "pathval": {
+      "version": "1.1.0",
+      "from": "pathval@>=1.1.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz"
+    },
+    "pify": {
+      "version": "4.0.1",
+      "from": "pify@>=4.0.1 <5.0.0",
+      "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz"
+    },
+    "pretty-ms": {
+      "version": "4.0.0",
+      "from": "pretty-ms@>=4.0.0 <5.0.0",
+      "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-4.0.0.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"
+    },
+    "prom-client": {
+      "version": "11.2.1",
+      "from": "prom-client@>=11.1.3 <12.0.0",
+      "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-11.2.1.tgz"
+    },
+    "protobufjs": {
+      "version": "6.8.8",
+      "from": "protobufjs@>=6.8.6 <6.9.0",
+      "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.8.8.tgz"
+    },
+    "psl": {
+      "version": "1.1.31",
+      "from": "psl@>=1.1.28 <2.0.0",
+      "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz",
+      "optional": true
+    },
+    "punycode": {
+      "version": "2.1.1",
+      "from": "punycode@>=2.1.1 <3.0.0",
+      "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+      "optional": true
+    },
+    "qs": {
+      "version": "0.6.6",
+      "from": "qs@>=0.6.6 <0.7.0",
+      "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz"
+    },
+    "range-parser": {
+      "version": "1.0.0",
+      "from": "range-parser@1.0.0",
+      "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.0.tgz"
+    },
+    "raven": {
+      "version": "1.2.1",
+      "from": "raven@>=1.1.3 <2.0.0",
+      "resolved": "https://registry.npmjs.org/raven/-/raven-1.2.1.tgz",
+      "dependencies": {
+        "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": "1.1.7",
+      "from": "raw-body@>=1.1.2 <1.2.0",
+      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz"
+    },
+    "readable-stream": {
+      "version": "2.3.6",
+      "from": "readable-stream@>=2.0.2 <3.0.0",
+      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+      "dependencies": {
+        "process-nextick-args": {
+          "version": "2.0.0",
+          "from": "process-nextick-args@>=2.0.0 <2.1.0",
+          "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz"
+        },
+        "string_decoder": {
+          "version": "1.1.1",
+          "from": "string_decoder@>=1.1.1 <1.2.0",
+          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"
+        }
+      }
+    },
+    "request": {
+      "version": "2.34.0",
+      "from": "request@>=2.34.0 <2.35.0",
+      "resolved": "https://registry.npmjs.org/request/-/request-2.34.0.tgz"
+    },
+    "require_optional": {
+      "version": "1.0.1",
+      "from": "require_optional@>=1.0.0 <1.1.0",
+      "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz"
+    },
+    "require-in-the-middle": {
+      "version": "3.1.0",
+      "from": "require-in-the-middle@>=3.0.0 <4.0.0",
+      "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-3.1.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"
+    },
+    "resolve": {
+      "version": "1.9.0",
+      "from": "resolve@>=1.5.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.9.0.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-axios": {
+      "version": "0.3.2",
+      "from": "retry-axios@0.3.2",
+      "resolved": "https://registry.npmjs.org/retry-axios/-/retry-axios-0.3.2.tgz"
+    },
+    "retry-request": {
+      "version": "4.0.0",
+      "from": "retry-request@>=4.0.0 <5.0.0",
+      "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.0.0.tgz"
+    },
+    "rimraf": {
+      "version": "2.4.5",
+      "from": "rimraf@~2.4.0",
+      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz"
+    },
+    "safe-buffer": {
+      "version": "5.1.2",
+      "from": "safe-buffer@>=5.1.0 <5.2.0",
+      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
+    },
+    "safe-json-stringify": {
+      "version": "1.2.0",
+      "from": "safe-json-stringify@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz",
+      "optional": true
+    },
+    "sandboxed-module": {
+      "version": "0.3.0",
+      "from": "sandboxed-module@>=0.3.0 <0.4.0",
+      "resolved": "https://registry.npmjs.org/sandboxed-module/-/sandboxed-module-0.3.0.tgz",
+      "dev": true,
+      "dependencies": {
+        "stack-trace": {
+          "version": "0.0.6",
+          "from": "stack-trace@0.0.6",
+          "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.6.tgz",
+          "dev": true
+        }
+      }
+    },
+    "semver": {
+      "version": "5.6.0",
+      "from": "semver@>=5.1.0 <6.0.0",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz"
+    },
+    "send": {
+      "version": "0.3.0",
+      "from": "send@0.3.0",
+      "resolved": "https://registry.npmjs.org/send/-/send-0.3.0.tgz",
+      "dependencies": {
+        "debug": {
+          "version": "0.8.0",
+          "from": "debug@0.8.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-0.8.0.tgz"
+        }
+      }
+    },
+    "serve-static": {
+      "version": "1.1.0",
+      "from": "serve-static@1.1.0",
+      "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.1.0.tgz"
+    },
+    "settings-sharelatex": {
+      "version": "1.1.0",
+      "from": "git+https://github.com/sharelatex/settings-sharelatex.git#v1.1.0",
+      "resolved": "git+https://github.com/sharelatex/settings-sharelatex.git#93f63d029b52fef8825c3a401b2b6a7ba29b4750",
+      "dependencies": {
+        "coffee-script": {
+          "version": "1.6.0",
+          "from": "coffee-script@1.6.0",
+          "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.0.tgz"
+        }
+      }
+    },
+    "shimmer": {
+      "version": "1.2.0",
+      "from": "shimmer@>=1.2.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.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"
+    },
+    "sinon": {
+      "version": "1.5.2",
+      "from": "sinon@>=1.5.2 <1.6.0",
+      "resolved": "https://registry.npmjs.org/sinon/-/sinon-1.5.2.tgz",
+      "dev": true
+    },
+    "sntp": {
+      "version": "0.2.4",
+      "from": "sntp@>=0.2.0 <0.3.0",
+      "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz",
+      "optional": true
+    },
+    "source-map": {
+      "version": "0.6.1",
+      "from": "source-map@>=0.6.1 <0.7.0",
+      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"
+    },
+    "split": {
+      "version": "1.0.1",
+      "from": "split@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.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"
+    },
+    "stream-shift": {
+      "version": "1.0.0",
+      "from": "stream-shift@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.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"
+    },
+    "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": "4.4.0",
+      "from": "supports-color@4.4.0",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
+      "dev": true
+    },
+    "symbol-observable": {
+      "version": "1.2.0",
+      "from": "symbol-observable@>=1.2.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz"
+    },
+    "tdigest": {
+      "version": "0.1.1",
+      "from": "tdigest@>=0.1.1 <0.2.0",
+      "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz"
+    },
+    "teeny-request": {
+      "version": "3.11.3",
+      "from": "teeny-request@>=3.11.1 <4.0.0",
+      "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-3.11.3.tgz",
+      "dependencies": {
+        "uuid": {
+          "version": "3.3.2",
+          "from": "uuid@>=3.3.2 <4.0.0",
+          "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz"
+        }
+      }
+    },
+    "text-encoding": {
+      "version": "0.6.4",
+      "from": "text-encoding@>=0.6.4 <0.7.0",
+      "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz"
+    },
+    "through": {
+      "version": "2.3.8",
+      "from": "through@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
+    },
+    "through2": {
+      "version": "2.0.5",
+      "from": "through2@>=2.0.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.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": "0.0.5",
+      "from": "timekeeper@0.0.5",
+      "resolved": "https://registry.npmjs.org/timekeeper/-/timekeeper-0.0.5.tgz",
+      "dev": true
+    },
+    "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"
+    },
+    "tough-cookie": {
+      "version": "3.0.0",
+      "from": "tough-cookie@>=0.12.0",
+      "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.0.tgz",
+      "optional": true
+    },
+    "tunnel-agent": {
+      "version": "0.3.0",
+      "from": "tunnel-agent@>=0.3.0 <0.4.0",
+      "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.3.0.tgz",
+      "optional": true
+    },
+    "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",
+      "dev": true
+    },
+    "type-is": {
+      "version": "1.1.0",
+      "from": "type-is@>=1.1.0 <1.2.0",
+      "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.1.0.tgz"
+    },
+    "underscore": {
+      "version": "1.6.0",
+      "from": "underscore@>=1.6.0 <1.7.0",
+      "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz"
+    },
+    "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"
+    },
+    "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"
+    },
+    "which": {
+      "version": "1.0.9",
+      "from": "which@>=1.0.5 <1.1.0",
+      "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.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"
+    },
+    "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": "3.0.3",
+      "from": "yallist@>=3.0.2 <4.0.0",
+      "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz"
+    }
+  }
+}

+ 0 - 2573
services/contacts/package-lock.json

@@ -1,2573 +0,0 @@
-{
-  "name": "contacts-sharelatex",
-  "version": "0.1.0",
-  "lockfileVersion": 1,
-  "requires": true,
-  "dependencies": {
-    "async": {
-      "version": "0.8.0",
-      "resolved": "https://registry.npmjs.org/async/-/async-0.8.0.tgz",
-      "integrity": "sha1-7mXsdymML/FFa8RBigUtDwZDURI="
-    },
-    "body-parser": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.0.2.tgz",
-      "integrity": "sha1-NGFHmjJ4/gD8rr7DMUu1T8T3tHw=",
-      "requires": {
-        "qs": "0.6.6",
-        "raw-body": "1.1.7",
-        "type-is": "1.1.0"
-      },
-      "dependencies": {
-        "qs": {
-          "version": "0.6.6",
-          "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz",
-          "integrity": "sha1-bgFQmP9RlouKPIGQAdXyyJvEsQc="
-        },
-        "raw-body": {
-          "version": "1.1.7",
-          "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz",
-          "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=",
-          "requires": {
-            "bytes": "1.0.0",
-            "string_decoder": "0.10.31"
-          },
-          "dependencies": {
-            "bytes": {
-              "version": "1.0.0",
-              "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz",
-              "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g="
-            },
-            "string_decoder": {
-              "version": "0.10.31",
-              "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
-              "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
-            }
-          }
-        },
-        "type-is": {
-          "version": "1.1.0",
-          "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.1.0.tgz",
-          "integrity": "sha1-0CReyLJnZmjVndDPMlUGBnalfbY=",
-          "requires": {
-            "mime": "1.2.11"
-          },
-          "dependencies": {
-            "mime": {
-              "version": "1.2.11",
-              "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz",
-              "integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA="
-            }
-          }
-        }
-      }
-    },
-    "bson": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.6.tgz",
-      "integrity": "sha512-D8zmlb46xfuK2gGvKmUjIklQEouN2nQ0LEHHeZ/NoHM2LDiMk2EYzZ5Ntw/Urk+bgMDosOZxaRzXxvhI5TcAVQ=="
-    },
-    "buffer-shims": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
-      "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E="
-    },
-    "bunyan": {
-      "version": "0.22.3",
-      "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-0.22.3.tgz",
-      "integrity": "sha1-ehncG0yMZF90AkGnQPIkUUfGfsI=",
-      "dev": true,
-      "requires": {
-        "dtrace-provider": "0.2.8",
-        "mv": "2.1.1"
-      },
-      "dependencies": {
-        "dtrace-provider": {
-          "version": "0.2.8",
-          "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.2.8.tgz",
-          "integrity": "sha1-4kPxkhmqlfvw2PL/sH9b1k6U/iA=",
-          "dev": true,
-          "optional": true
-        },
-        "mv": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz",
-          "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "mkdirp": "0.5.1",
-            "ncp": "2.0.0",
-            "rimraf": "2.4.5"
-          },
-          "dependencies": {
-            "mkdirp": {
-              "version": "0.5.1",
-              "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
-              "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "minimist": "0.0.8"
-              },
-              "dependencies": {
-                "minimist": {
-                  "version": "0.0.8",
-                  "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
-                  "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
-                  "dev": true,
-                  "optional": true
-                }
-              }
-            },
-            "ncp": {
-              "version": "2.0.0",
-              "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz",
-              "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=",
-              "dev": true,
-              "optional": true
-            },
-            "rimraf": {
-              "version": "2.4.5",
-              "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz",
-              "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=",
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "glob": "6.0.4"
-              },
-              "dependencies": {
-                "glob": {
-                  "version": "6.0.4",
-                  "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
-                  "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
-                  "dev": true,
-                  "optional": true,
-                  "requires": {
-                    "inflight": "1.0.6",
-                    "inherits": "2.0.3",
-                    "minimatch": "3.0.4",
-                    "once": "1.4.0",
-                    "path-is-absolute": "1.0.1"
-                  },
-                  "dependencies": {
-                    "inflight": {
-                      "version": "1.0.6",
-                      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
-                      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
-                      "dev": true,
-                      "optional": true,
-                      "requires": {
-                        "once": "1.4.0",
-                        "wrappy": "1.0.2"
-                      },
-                      "dependencies": {
-                        "wrappy": {
-                          "version": "1.0.2",
-                          "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
-                          "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
-                          "dev": true,
-                          "optional": true
-                        }
-                      }
-                    },
-                    "inherits": {
-                      "version": "2.0.3",
-                      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
-                      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
-                      "dev": true,
-                      "optional": true
-                    },
-                    "minimatch": {
-                      "version": "3.0.4",
-                      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
-                      "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=",
-                      "dev": true,
-                      "optional": true,
-                      "requires": {
-                        "brace-expansion": "1.1.11"
-                      },
-                      "dependencies": {
-                        "brace-expansion": {
-                          "version": "1.1.11",
-                          "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
-                          "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=",
-                          "dev": true,
-                          "optional": true,
-                          "requires": {
-                            "balanced-match": "1.0.0",
-                            "concat-map": "0.0.1"
-                          },
-                          "dependencies": {
-                            "balanced-match": {
-                              "version": "1.0.0",
-                              "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
-                              "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
-                              "dev": true,
-                              "optional": true
-                            },
-                            "concat-map": {
-                              "version": "0.0.1",
-                              "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
-                              "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
-                              "dev": true,
-                              "optional": true
-                            }
-                          }
-                        }
-                      }
-                    },
-                    "once": {
-                      "version": "1.4.0",
-                      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
-                      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
-                      "dev": true,
-                      "requires": {
-                        "wrappy": "1.0.2"
-                      },
-                      "dependencies": {
-                        "wrappy": {
-                          "version": "1.0.2",
-                          "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
-                          "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
-                          "dev": true
-                        }
-                      }
-                    },
-                    "path-is-absolute": {
-                      "version": "1.0.1",
-                      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
-                      "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
-                      "dev": true,
-                      "optional": true
-                    }
-                  }
-                }
-              }
-            }
-          }
-        }
-      }
-    },
-    "chai": {
-      "version": "1.9.2",
-      "resolved": "https://registry.npmjs.org/chai/-/chai-1.9.2.tgz",
-      "integrity": "sha1-Pxog+CsLnXQ3V30k1vErGmnTtZA=",
-      "dev": true,
-      "requires": {
-        "assertion-error": "1.0.0",
-        "deep-eql": "0.1.3"
-      },
-      "dependencies": {
-        "assertion-error": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.0.tgz",
-          "integrity": "sha1-x/hUOP3UZrx8oWq5DIFRN5el0js=",
-          "dev": true
-        },
-        "deep-eql": {
-          "version": "0.1.3",
-          "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz",
-          "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=",
-          "dev": true,
-          "requires": {
-            "type-detect": "0.1.1"
-          },
-          "dependencies": {
-            "type-detect": {
-              "version": "0.1.1",
-              "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz",
-              "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=",
-              "dev": true
-            }
-          }
-        }
-      }
-    },
-    "coffee-script": {
-      "version": "1.12.7",
-      "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz",
-      "integrity": "sha1-wF2uDLeVkdBbMHCoQzqYyaiczFM="
-    },
-    "core-util-is": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
-      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
-    },
-    "each-series": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/each-series/-/each-series-1.0.0.tgz",
-      "integrity": "sha1-+Ibmxm39sl7x/nNWQUbuXLR4r8s="
-    },
-    "es6-promise": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.2.1.tgz",
-      "integrity": "sha1-7FYjOGgDKQkgcXDDlEjiREndH8Q="
-    },
-    "express": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmjs.org/express/-/express-4.1.2.tgz",
-      "integrity": "sha1-yx0RQlVximWhvNaVgDbvcgxSlIc=",
-      "requires": {
-        "accepts": "1.0.1",
-        "buffer-crc32": "0.2.1",
-        "cookie": "0.1.2",
-        "cookie-signature": "1.0.3",
-        "debug": "0.8.1",
-        "escape-html": "1.0.1",
-        "fresh": "0.2.2",
-        "merge-descriptors": "0.0.2",
-        "methods": "0.1.0",
-        "parseurl": "1.0.1",
-        "path-to-regexp": "0.1.2",
-        "qs": "0.6.6",
-        "range-parser": "1.0.0",
-        "send": "0.3.0",
-        "serve-static": "1.1.0",
-        "type-is": "1.1.0",
-        "utils-merge": "1.0.0"
-      },
-      "dependencies": {
-        "accepts": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.0.1.tgz",
-          "integrity": "sha1-weBtYT5iRrqHRnjW2bkjibfOMQw=",
-          "requires": {
-            "mime": "1.2.11",
-            "negotiator": "0.4.9"
-          },
-          "dependencies": {
-            "mime": {
-              "version": "1.2.11",
-              "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz",
-              "integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA="
-            },
-            "negotiator": {
-              "version": "0.4.9",
-              "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.4.9.tgz",
-              "integrity": "sha1-kuRrbbU8fkIe1koryU8IvnYw3z8="
-            }
-          }
-        },
-        "buffer-crc32": {
-          "version": "0.2.1",
-          "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.1.tgz",
-          "integrity": "sha1-vj5TgvwCttYySVasGvmKqYsIU0w="
-        },
-        "cookie": {
-          "version": "0.1.2",
-          "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.2.tgz",
-          "integrity": "sha1-cv7D0k5Io0Mgc9kMEmQgBQYQBLE="
-        },
-        "cookie-signature": {
-          "version": "1.0.3",
-          "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.3.tgz",
-          "integrity": "sha1-kc2ZfMUftkFZVzjGnNoCAyj1D/k="
-        },
-        "debug": {
-          "version": "0.8.1",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-0.8.1.tgz",
-          "integrity": "sha1-IP9NJvXkIstoobrLu2EDmtjBwTA="
-        },
-        "escape-html": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz",
-          "integrity": "sha1-GBoobq05ejmpKFfPsdQwUuNWv/A="
-        },
-        "fresh": {
-          "version": "0.2.2",
-          "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.2.2.tgz",
-          "integrity": "sha1-lzHc9WeMf660T7kDxPct9VGH+nc="
-        },
-        "merge-descriptors": {
-          "version": "0.0.2",
-          "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-0.0.2.tgz",
-          "integrity": "sha1-w2pSp4FDdRPFcnXzndnTF1FKyMc="
-        },
-        "methods": {
-          "version": "0.1.0",
-          "resolved": "https://registry.npmjs.org/methods/-/methods-0.1.0.tgz",
-          "integrity": "sha1-M11Cnu/SG3us8unJIqjSvRSjDk8="
-        },
-        "parseurl": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.0.1.tgz",
-          "integrity": "sha1-Llfc5u/dN8NRhwEDCUTCK/OIt7Q="
-        },
-        "path-to-regexp": {
-          "version": "0.1.2",
-          "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.2.tgz",
-          "integrity": "sha1-mysVH5zDAYye6lDKlXKeBXgXErQ="
-        },
-        "qs": {
-          "version": "0.6.6",
-          "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz",
-          "integrity": "sha1-bgFQmP9RlouKPIGQAdXyyJvEsQc="
-        },
-        "range-parser": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.0.tgz",
-          "integrity": "sha1-pLJkz+C+XONqvjdlrJwqJIdG28A="
-        },
-        "send": {
-          "version": "0.3.0",
-          "resolved": "https://registry.npmjs.org/send/-/send-0.3.0.tgz",
-          "integrity": "sha1-lxgyRjSAb8dbxPj15R9X2dZmBuc=",
-          "requires": {
-            "buffer-crc32": "0.2.1",
-            "debug": "0.8.0",
-            "fresh": "0.2.2",
-            "mime": "1.2.11",
-            "range-parser": "1.0.0"
-          },
-          "dependencies": {
-            "debug": {
-              "version": "0.8.0",
-              "resolved": "https://registry.npmjs.org/debug/-/debug-0.8.0.tgz",
-              "integrity": "sha1-BUHqkfDlA/3wxe7UGKMlUCNJZ/A="
-            },
-            "mime": {
-              "version": "1.2.11",
-              "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz",
-              "integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA="
-            }
-          }
-        },
-        "serve-static": {
-          "version": "1.1.0",
-          "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.1.0.tgz",
-          "integrity": "sha1-RU36Bbs93U5wGokVuDoniqkcVkM=",
-          "requires": {
-            "parseurl": "1.0.1",
-            "send": "0.3.0"
-          }
-        },
-        "type-is": {
-          "version": "1.1.0",
-          "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.1.0.tgz",
-          "integrity": "sha1-0CReyLJnZmjVndDPMlUGBnalfbY=",
-          "requires": {
-            "mime": "1.2.11"
-          },
-          "dependencies": {
-            "mime": {
-              "version": "1.2.11",
-              "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz",
-              "integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA="
-            }
-          }
-        },
-        "utils-merge": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz",
-          "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg="
-        }
-      }
-    },
-    "grunt": {
-      "version": "0.4.5",
-      "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz",
-      "integrity": "sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A=",
-      "dev": true,
-      "requires": {
-        "async": "0.1.22",
-        "coffee-script": "1.3.3",
-        "colors": "0.6.2",
-        "dateformat": "1.0.2-1.2.3",
-        "eventemitter2": "0.4.14",
-        "exit": "0.1.2",
-        "findup-sync": "0.1.3",
-        "getobject": "0.1.0",
-        "glob": "3.1.21",
-        "grunt-legacy-log": "0.1.3",
-        "grunt-legacy-util": "0.2.0",
-        "hooker": "0.2.3",
-        "iconv-lite": "0.2.11",
-        "js-yaml": "2.0.5",
-        "lodash": "0.9.2",
-        "minimatch": "0.2.14",
-        "nopt": "1.0.10",
-        "rimraf": "2.2.8",
-        "underscore.string": "2.2.1",
-        "which": "1.0.9"
-      },
-      "dependencies": {
-        "async": {
-          "version": "0.1.22",
-          "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz",
-          "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=",
-          "dev": true
-        },
-        "coffee-script": {
-          "version": "1.3.3",
-          "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz",
-          "integrity": "sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ=",
-          "dev": true
-        },
-        "colors": {
-          "version": "0.6.2",
-          "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
-          "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=",
-          "dev": true
-        },
-        "dateformat": {
-          "version": "1.0.2-1.2.3",
-          "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz",
-          "integrity": "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk=",
-          "dev": true
-        },
-        "eventemitter2": {
-          "version": "0.4.14",
-          "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
-          "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=",
-          "dev": true
-        },
-        "exit": {
-          "version": "0.1.2",
-          "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
-          "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
-          "dev": true
-        },
-        "findup-sync": {
-          "version": "0.1.3",
-          "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz",
-          "integrity": "sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=",
-          "dev": true,
-          "requires": {
-            "glob": "3.2.11",
-            "lodash": "2.4.2"
-          },
-          "dependencies": {
-            "glob": {
-              "version": "3.2.11",
-              "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz",
-              "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=",
-              "dev": true,
-              "requires": {
-                "inherits": "2.0.3",
-                "minimatch": "0.3.0"
-              },
-              "dependencies": {
-                "inherits": {
-                  "version": "2.0.3",
-                  "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
-                  "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
-                  "dev": true
-                },
-                "minimatch": {
-                  "version": "0.3.0",
-                  "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz",
-                  "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=",
-                  "dev": true,
-                  "requires": {
-                    "lru-cache": "2.7.3",
-                    "sigmund": "1.0.1"
-                  },
-                  "dependencies": {
-                    "lru-cache": {
-                      "version": "2.7.3",
-                      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
-                      "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
-                      "dev": true
-                    },
-                    "sigmund": {
-                      "version": "1.0.1",
-                      "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
-                      "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
-                      "dev": true
-                    }
-                  }
-                }
-              }
-            },
-            "lodash": {
-              "version": "2.4.2",
-              "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
-              "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
-              "dev": true
-            }
-          }
-        },
-        "getobject": {
-          "version": "0.1.0",
-          "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
-          "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=",
-          "dev": true
-        },
-        "glob": {
-          "version": "3.1.21",
-          "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
-          "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=",
-          "dev": true,
-          "requires": {
-            "graceful-fs": "1.2.3",
-            "inherits": "1.0.2",
-            "minimatch": "0.2.14"
-          },
-          "dependencies": {
-            "graceful-fs": {
-              "version": "1.2.3",
-              "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
-              "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=",
-              "dev": true
-            },
-            "inherits": {
-              "version": "1.0.2",
-              "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz",
-              "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=",
-              "dev": true
-            }
-          }
-        },
-        "grunt-legacy-log": {
-          "version": "0.1.3",
-          "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz",
-          "integrity": "sha1-7ClCboAwIa9ZAp+H0vnNczWgVTE=",
-          "dev": true,
-          "requires": {
-            "colors": "0.6.2",
-            "grunt-legacy-log-utils": "0.1.1",
-            "hooker": "0.2.3",
-            "lodash": "2.4.2",
-            "underscore.string": "2.3.3"
-          },
-          "dependencies": {
-            "grunt-legacy-log-utils": {
-              "version": "0.1.1",
-              "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz",
-              "integrity": "sha1-wHBrndkGThFvNvI/5OawSGcsD34=",
-              "dev": true,
-              "requires": {
-                "colors": "0.6.2",
-                "lodash": "2.4.2",
-                "underscore.string": "2.3.3"
-              }
-            },
-            "lodash": {
-              "version": "2.4.2",
-              "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
-              "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
-              "dev": true
-            },
-            "underscore.string": {
-              "version": "2.3.3",
-              "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
-              "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=",
-              "dev": true
-            }
-          }
-        },
-        "grunt-legacy-util": {
-          "version": "0.2.0",
-          "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz",
-          "integrity": "sha1-kzJIhNv343qf98Am3/RR2UqeVUs=",
-          "dev": true,
-          "requires": {
-            "async": "0.1.22",
-            "exit": "0.1.2",
-            "getobject": "0.1.0",
-            "hooker": "0.2.3",
-            "lodash": "0.9.2",
-            "underscore.string": "2.2.1",
-            "which": "1.0.9"
-          }
-        },
-        "hooker": {
-          "version": "0.2.3",
-          "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
-          "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=",
-          "dev": true
-        },
-        "iconv-lite": {
-          "version": "0.2.11",
-          "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz",
-          "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=",
-          "dev": true
-        },
-        "js-yaml": {
-          "version": "2.0.5",
-          "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz",
-          "integrity": "sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=",
-          "dev": true,
-          "requires": {
-            "argparse": "0.1.16",
-            "esprima": "1.0.4"
-          },
-          "dependencies": {
-            "argparse": {
-              "version": "0.1.16",
-              "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz",
-              "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=",
-              "dev": true,
-              "requires": {
-                "underscore": "1.7.0",
-                "underscore.string": "2.4.0"
-              },
-              "dependencies": {
-                "underscore": {
-                  "version": "1.7.0",
-                  "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
-                  "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=",
-                  "dev": true
-                },
-                "underscore.string": {
-                  "version": "2.4.0",
-                  "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz",
-                  "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=",
-                  "dev": true
-                }
-              }
-            },
-            "esprima": {
-              "version": "1.0.4",
-              "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz",
-              "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=",
-              "dev": true
-            }
-          }
-        },
-        "lodash": {
-          "version": "0.9.2",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz",
-          "integrity": "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=",
-          "dev": true
-        },
-        "minimatch": {
-          "version": "0.2.14",
-          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
-          "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
-          "dev": true,
-          "requires": {
-            "lru-cache": "2.7.3",
-            "sigmund": "1.0.1"
-          },
-          "dependencies": {
-            "lru-cache": {
-              "version": "2.7.3",
-              "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
-              "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
-              "dev": true
-            },
-            "sigmund": {
-              "version": "1.0.1",
-              "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
-              "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
-              "dev": true
-            }
-          }
-        },
-        "nopt": {
-          "version": "1.0.10",
-          "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
-          "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
-          "dev": true,
-          "requires": {
-            "abbrev": "1.1.1"
-          },
-          "dependencies": {
-            "abbrev": {
-              "version": "1.1.1",
-              "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
-              "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=",
-              "dev": true
-            }
-          }
-        },
-        "rimraf": {
-          "version": "2.2.8",
-          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
-          "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=",
-          "dev": true
-        },
-        "underscore.string": {
-          "version": "2.2.1",
-          "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz",
-          "integrity": "sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk=",
-          "dev": true
-        },
-        "which": {
-          "version": "1.0.9",
-          "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz",
-          "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=",
-          "dev": true
-        }
-      }
-    },
-    "grunt-bunyan": {
-      "version": "0.5.0",
-      "resolved": "https://registry.npmjs.org/grunt-bunyan/-/grunt-bunyan-0.5.0.tgz",
-      "integrity": "sha1-aCnXbgGZQ9owQTk2MaNuKsgpsWw=",
-      "dev": true,
-      "requires": {
-        "lodash": "2.4.2"
-      },
-      "dependencies": {
-        "lodash": {
-          "version": "2.4.2",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
-          "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
-          "dev": true
-        }
-      }
-    },
-    "grunt-contrib-clean": {
-      "version": "0.5.0",
-      "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-0.5.0.tgz",
-      "integrity": "sha1-9T397ghJsce0Dp67umn0jExgecU=",
-      "dev": true,
-      "requires": {
-        "rimraf": "2.2.8"
-      },
-      "dependencies": {
-        "rimraf": {
-          "version": "2.2.8",
-          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
-          "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=",
-          "dev": true
-        }
-      }
-    },
-    "grunt-contrib-coffee": {
-      "version": "0.10.1",
-      "resolved": "https://registry.npmjs.org/grunt-contrib-coffee/-/grunt-contrib-coffee-0.10.1.tgz",
-      "integrity": "sha1-7SLGgp9FiqjqR/hnaEM+mBMUAYY=",
-      "dev": true,
-      "requires": {
-        "chalk": "0.4.0",
-        "coffee-script": "1.7.1",
-        "lodash": "2.4.2"
-      },
-      "dependencies": {
-        "chalk": {
-          "version": "0.4.0",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz",
-          "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "1.0.0",
-            "has-color": "0.1.7",
-            "strip-ansi": "0.1.1"
-          },
-          "dependencies": {
-            "ansi-styles": {
-              "version": "1.0.0",
-              "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz",
-              "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=",
-              "dev": true
-            },
-            "has-color": {
-              "version": "0.1.7",
-              "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz",
-              "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=",
-              "dev": true
-            },
-            "strip-ansi": {
-              "version": "0.1.1",
-              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz",
-              "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=",
-              "dev": true
-            }
-          }
-        },
-        "coffee-script": {
-          "version": "1.7.1",
-          "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.7.1.tgz",
-          "integrity": "sha1-YplqhheAx15tUGnROCJyO3NAS/w=",
-          "dev": true,
-          "requires": {
-            "mkdirp": "0.3.5"
-          },
-          "dependencies": {
-            "mkdirp": {
-              "version": "0.3.5",
-              "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz",
-              "integrity": "sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc=",
-              "dev": true
-            }
-          }
-        },
-        "lodash": {
-          "version": "2.4.2",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
-          "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
-          "dev": true
-        }
-      }
-    },
-    "grunt-execute": {
-      "version": "0.2.2",
-      "resolved": "https://registry.npmjs.org/grunt-execute/-/grunt-execute-0.2.2.tgz",
-      "integrity": "sha1-TpRf5XlZzA3neZCDtrQq7ZYWNQo=",
-      "dev": true
-    },
-    "grunt-forever": {
-      "version": "0.4.7",
-      "resolved": "https://registry.npmjs.org/grunt-forever/-/grunt-forever-0.4.7.tgz",
-      "integrity": "sha1-dHDb4a2hFFAhZKTCoAOHXfj+EzA=",
-      "dev": true,
-      "requires": {
-        "forever": "0.14.2"
-      },
-      "dependencies": {
-        "forever": {
-          "version": "0.14.2",
-          "resolved": "https://registry.npmjs.org/forever/-/forever-0.14.2.tgz",
-          "integrity": "sha1-6Tsr2UxXBavBmxXlTDEz1puinGs=",
-          "dev": true,
-          "requires": {
-            "cliff": "0.1.10",
-            "colors": "0.6.2",
-            "flatiron": "0.4.3",
-            "forever-monitor": "1.5.2",
-            "nconf": "0.6.9",
-            "nssocket": "0.5.3",
-            "optimist": "0.6.1",
-            "timespan": "2.3.0",
-            "utile": "0.2.1",
-            "winston": "0.8.3"
-          },
-          "dependencies": {
-            "cliff": {
-              "version": "0.1.10",
-              "resolved": "https://registry.npmjs.org/cliff/-/cliff-0.1.10.tgz",
-              "integrity": "sha1-U74z6p9ZvshWCe4wCsQgdgPlIBM=",
-              "dev": true,
-              "requires": {
-                "colors": "1.0.3",
-                "eyes": "0.1.8",
-                "winston": "0.8.3"
-              },
-              "dependencies": {
-                "colors": {
-                  "version": "1.0.3",
-                  "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
-                  "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=",
-                  "dev": true
-                },
-                "eyes": {
-                  "version": "0.1.8",
-                  "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
-                  "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=",
-                  "dev": true
-                }
-              }
-            },
-            "colors": {
-              "version": "0.6.2",
-              "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
-              "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=",
-              "dev": true
-            },
-            "flatiron": {
-              "version": "0.4.3",
-              "resolved": "https://registry.npmjs.org/flatiron/-/flatiron-0.4.3.tgz",
-              "integrity": "sha1-JIz3mj2n19w3nioRySonGcu1QPY=",
-              "dev": true,
-              "requires": {
-                "broadway": "0.3.6",
-                "director": "1.2.7",
-                "optimist": "0.6.0",
-                "prompt": "0.2.14"
-              },
-              "dependencies": {
-                "broadway": {
-                  "version": "0.3.6",
-                  "resolved": "https://registry.npmjs.org/broadway/-/broadway-0.3.6.tgz",
-                  "integrity": "sha1-fb7waLlUt5B5Jf1USWO1eKkCuno=",
-                  "dev": true,
-                  "requires": {
-                    "cliff": "0.1.9",
-                    "eventemitter2": "0.4.14",
-                    "nconf": "0.6.9",
-                    "utile": "0.2.1",
-                    "winston": "0.8.0"
-                  },
-                  "dependencies": {
-                    "cliff": {
-                      "version": "0.1.9",
-                      "resolved": "https://registry.npmjs.org/cliff/-/cliff-0.1.9.tgz",
-                      "integrity": "sha1-ohHgnGo947oa8n0EnTASUNGIErw=",
-                      "dev": true,
-                      "requires": {
-                        "colors": "0.6.2",
-                        "eyes": "0.1.8",
-                        "winston": "0.8.0"
-                      },
-                      "dependencies": {
-                        "eyes": {
-                          "version": "0.1.8",
-                          "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
-                          "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=",
-                          "dev": true
-                        }
-                      }
-                    },
-                    "eventemitter2": {
-                      "version": "0.4.14",
-                      "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
-                      "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=",
-                      "dev": true
-                    },
-                    "winston": {
-                      "version": "0.8.0",
-                      "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.0.tgz",
-                      "integrity": "sha1-YdCDD6aZcGISIGsKK1ymmpMENmg=",
-                      "dev": true,
-                      "requires": {
-                        "async": "0.2.10",
-                        "colors": "0.6.2",
-                        "cycle": "1.0.3",
-                        "eyes": "0.1.8",
-                        "pkginfo": "0.3.1",
-                        "stack-trace": "0.0.10"
-                      },
-                      "dependencies": {
-                        "async": {
-                          "version": "0.2.10",
-                          "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
-                          "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
-                          "dev": true
-                        },
-                        "cycle": {
-                          "version": "1.0.3",
-                          "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz",
-                          "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=",
-                          "dev": true
-                        },
-                        "eyes": {
-                          "version": "0.1.8",
-                          "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
-                          "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=",
-                          "dev": true
-                        },
-                        "pkginfo": {
-                          "version": "0.3.1",
-                          "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz",
-                          "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=",
-                          "dev": true
-                        },
-                        "stack-trace": {
-                          "version": "0.0.10",
-                          "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
-                          "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=",
-                          "dev": true
-                        }
-                      }
-                    }
-                  }
-                },
-                "director": {
-                  "version": "1.2.7",
-                  "resolved": "https://registry.npmjs.org/director/-/director-1.2.7.tgz",
-                  "integrity": "sha1-v9N0EHX9f7GlsuE2WMX0vsd3NvM=",
-                  "dev": true
-                },
-                "optimist": {
-                  "version": "0.6.0",
-                  "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.0.tgz",
-                  "integrity": "sha1-aUJIJvNAX3nxQub8PZrljU27kgA=",
-                  "dev": true,
-                  "requires": {
-                    "minimist": "0.0.10",
-                    "wordwrap": "0.0.3"
-                  },
-                  "dependencies": {
-                    "minimist": {
-                      "version": "0.0.10",
-                      "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
-                      "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=",
-                      "dev": true
-                    },
-                    "wordwrap": {
-                      "version": "0.0.3",
-                      "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
-                      "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
-                      "dev": true
-                    }
-                  }
-                },
-                "prompt": {
-                  "version": "0.2.14",
-                  "resolved": "https://registry.npmjs.org/prompt/-/prompt-0.2.14.tgz",
-                  "integrity": "sha1-V3VPZPVD/XsIRXB8gY7OYY8F/9w=",
-                  "dev": true,
-                  "requires": {
-                    "pkginfo": "0.4.1",
-                    "read": "1.0.7",
-                    "revalidator": "0.1.8",
-                    "utile": "0.2.1",
-                    "winston": "0.8.3"
-                  },
-                  "dependencies": {
-                    "pkginfo": {
-                      "version": "0.4.1",
-                      "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz",
-                      "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=",
-                      "dev": true
-                    },
-                    "read": {
-                      "version": "1.0.7",
-                      "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
-                      "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=",
-                      "dev": true,
-                      "requires": {
-                        "mute-stream": "0.0.7"
-                      },
-                      "dependencies": {
-                        "mute-stream": {
-                          "version": "0.0.7",
-                          "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
-                          "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
-                          "dev": true
-                        }
-                      }
-                    },
-                    "revalidator": {
-                      "version": "0.1.8",
-                      "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz",
-                      "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=",
-                      "dev": true
-                    }
-                  }
-                }
-              }
-            },
-            "forever-monitor": {
-              "version": "1.5.2",
-              "resolved": "https://registry.npmjs.org/forever-monitor/-/forever-monitor-1.5.2.tgz",
-              "integrity": "sha1-J5OI36k7CFNj1rKKgj7wpq7rNdc=",
-              "dev": true,
-              "requires": {
-                "broadway": "0.3.6",
-                "minimatch": "1.0.0",
-                "ps-tree": "0.0.3",
-                "utile": "0.2.1",
-                "watch": "0.13.0"
-              },
-              "dependencies": {
-                "broadway": {
-                  "version": "0.3.6",
-                  "resolved": "https://registry.npmjs.org/broadway/-/broadway-0.3.6.tgz",
-                  "integrity": "sha1-fb7waLlUt5B5Jf1USWO1eKkCuno=",
-                  "dev": true,
-                  "requires": {
-                    "cliff": "0.1.9",
-                    "eventemitter2": "0.4.14",
-                    "nconf": "0.6.9",
-                    "utile": "0.2.1",
-                    "winston": "0.8.0"
-                  },
-                  "dependencies": {
-                    "cliff": {
-                      "version": "0.1.9",
-                      "resolved": "https://registry.npmjs.org/cliff/-/cliff-0.1.9.tgz",
-                      "integrity": "sha1-ohHgnGo947oa8n0EnTASUNGIErw=",
-                      "dev": true,
-                      "requires": {
-                        "colors": "0.6.2",
-                        "eyes": "0.1.8",
-                        "winston": "0.8.0"
-                      },
-                      "dependencies": {
-                        "eyes": {
-                          "version": "0.1.8",
-                          "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
-                          "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=",
-                          "dev": true
-                        }
-                      }
-                    },
-                    "eventemitter2": {
-                      "version": "0.4.14",
-                      "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
-                      "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=",
-                      "dev": true
-                    },
-                    "winston": {
-                      "version": "0.8.0",
-                      "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.0.tgz",
-                      "integrity": "sha1-YdCDD6aZcGISIGsKK1ymmpMENmg=",
-                      "dev": true,
-                      "requires": {
-                        "async": "0.2.10",
-                        "colors": "0.6.2",
-                        "cycle": "1.0.3",
-                        "eyes": "0.1.8",
-                        "pkginfo": "0.3.1",
-                        "stack-trace": "0.0.10"
-                      },
-                      "dependencies": {
-                        "async": {
-                          "version": "0.2.10",
-                          "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
-                          "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
-                          "dev": true
-                        },
-                        "cycle": {
-                          "version": "1.0.3",
-                          "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz",
-                          "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=",
-                          "dev": true
-                        },
-                        "eyes": {
-                          "version": "0.1.8",
-                          "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
-                          "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=",
-                          "dev": true
-                        },
-                        "pkginfo": {
-                          "version": "0.3.1",
-                          "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz",
-                          "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=",
-                          "dev": true
-                        },
-                        "stack-trace": {
-                          "version": "0.0.10",
-                          "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
-                          "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=",
-                          "dev": true
-                        }
-                      }
-                    }
-                  }
-                },
-                "minimatch": {
-                  "version": "1.0.0",
-                  "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz",
-                  "integrity": "sha1-4N0hILSeG3JM6NcUxSCCKpQ4V20=",
-                  "dev": true,
-                  "requires": {
-                    "lru-cache": "2.7.3",
-                    "sigmund": "1.0.1"
-                  },
-                  "dependencies": {
-                    "lru-cache": {
-                      "version": "2.7.3",
-                      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
-                      "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
-                      "dev": true
-                    },
-                    "sigmund": {
-                      "version": "1.0.1",
-                      "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
-                      "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
-                      "dev": true
-                    }
-                  }
-                },
-                "ps-tree": {
-                  "version": "0.0.3",
-                  "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-0.0.3.tgz",
-                  "integrity": "sha1-2/jXUqf+Ivp9WGNWiUmWEOknbdw=",
-                  "dev": true,
-                  "requires": {
-                    "event-stream": "0.5.3"
-                  },
-                  "dependencies": {
-                    "event-stream": {
-                      "version": "0.5.3",
-                      "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-0.5.3.tgz",
-                      "integrity": "sha1-t3uTCfcQet3+q2PwwOr9jbC9jBw=",
-                      "dev": true,
-                      "requires": {
-                        "optimist": "0.2.8"
-                      },
-                      "dependencies": {
-                        "optimist": {
-                          "version": "0.2.8",
-                          "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.2.8.tgz",
-                          "integrity": "sha1-6YGrfiaLRXlIWTtVZ0wJmoFcrDE=",
-                          "dev": true,
-                          "requires": {
-                            "wordwrap": "0.0.3"
-                          },
-                          "dependencies": {
-                            "wordwrap": {
-                              "version": "0.0.3",
-                              "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
-                              "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
-                              "dev": true
-                            }
-                          }
-                        }
-                      }
-                    }
-                  }
-                },
-                "watch": {
-                  "version": "0.13.0",
-                  "resolved": "https://registry.npmjs.org/watch/-/watch-0.13.0.tgz",
-                  "integrity": "sha1-/MbSs/DoxzSC61Qjmhn9W8+adTw=",
-                  "dev": true,
-                  "requires": {
-                    "minimist": "1.2.0"
-                  },
-                  "dependencies": {
-                    "minimist": {
-                      "version": "1.2.0",
-                      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
-                      "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
-                      "dev": true
-                    }
-                  }
-                }
-              }
-            },
-            "nconf": {
-              "version": "0.6.9",
-              "resolved": "https://registry.npmjs.org/nconf/-/nconf-0.6.9.tgz",
-              "integrity": "sha1-lXDvFe1vmuays8jV5xtm0xk81mE=",
-              "dev": true,
-              "requires": {
-                "async": "0.2.9",
-                "ini": "1.3.5",
-                "optimist": "0.6.0"
-              },
-              "dependencies": {
-                "async": {
-                  "version": "0.2.9",
-                  "resolved": "https://registry.npmjs.org/async/-/async-0.2.9.tgz",
-                  "integrity": "sha1-32MGD789Myhqdqr21Vophtn/hhk=",
-                  "dev": true
-                },
-                "ini": {
-                  "version": "1.3.5",
-                  "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
-                  "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=",
-                  "dev": true
-                },
-                "optimist": {
-                  "version": "0.6.0",
-                  "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.0.tgz",
-                  "integrity": "sha1-aUJIJvNAX3nxQub8PZrljU27kgA=",
-                  "dev": true,
-                  "requires": {
-                    "minimist": "0.0.10",
-                    "wordwrap": "0.0.3"
-                  },
-                  "dependencies": {
-                    "minimist": {
-                      "version": "0.0.10",
-                      "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
-                      "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=",
-                      "dev": true
-                    },
-                    "wordwrap": {
-                      "version": "0.0.3",
-                      "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
-                      "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
-                      "dev": true
-                    }
-                  }
-                }
-              }
-            },
-            "nssocket": {
-              "version": "0.5.3",
-              "resolved": "https://registry.npmjs.org/nssocket/-/nssocket-0.5.3.tgz",
-              "integrity": "sha1-iDyi7GBfXtZKTVGQsmJUAZKPj40=",
-              "dev": true,
-              "requires": {
-                "eventemitter2": "0.4.14",
-                "lazy": "1.0.11"
-              },
-              "dependencies": {
-                "eventemitter2": {
-                  "version": "0.4.14",
-                  "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
-                  "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=",
-                  "dev": true
-                },
-                "lazy": {
-                  "version": "1.0.11",
-                  "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz",
-                  "integrity": "sha1-2qBoIGKCVCwIgojpdcKXwa53tpA=",
-                  "dev": true
-                }
-              }
-            },
-            "optimist": {
-              "version": "0.6.1",
-              "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
-              "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
-              "dev": true,
-              "requires": {
-                "minimist": "0.0.10",
-                "wordwrap": "0.0.3"
-              },
-              "dependencies": {
-                "minimist": {
-                  "version": "0.0.10",
-                  "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
-                  "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=",
-                  "dev": true
-                },
-                "wordwrap": {
-                  "version": "0.0.3",
-                  "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
-                  "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
-                  "dev": true
-                }
-              }
-            },
-            "timespan": {
-              "version": "2.3.0",
-              "resolved": "https://registry.npmjs.org/timespan/-/timespan-2.3.0.tgz",
-              "integrity": "sha1-SQLOBAvRPYRcj1myfp1ZutbzmSk=",
-              "dev": true
-            },
-            "utile": {
-              "version": "0.2.1",
-              "resolved": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz",
-              "integrity": "sha1-kwyI6ZCY1iIINMNWy9mncFItkNc=",
-              "dev": true,
-              "requires": {
-                "async": "0.2.10",
-                "deep-equal": "1.0.1",
-                "i": "0.3.6",
-                "mkdirp": "0.5.1",
-                "ncp": "0.4.2",
-                "rimraf": "2.6.2"
-              },
-              "dependencies": {
-                "async": {
-                  "version": "0.2.10",
-                  "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
-                  "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
-                  "dev": true
-                },
-                "deep-equal": {
-                  "version": "1.0.1",
-                  "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
-                  "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=",
-                  "dev": true
-                },
-                "i": {
-                  "version": "0.3.6",
-                  "resolved": "https://registry.npmjs.org/i/-/i-0.3.6.tgz",
-                  "integrity": "sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0=",
-                  "dev": true
-                },
-                "mkdirp": {
-                  "version": "0.5.1",
-                  "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
-                  "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
-                  "dev": true,
-                  "requires": {
-                    "minimist": "0.0.8"
-                  },
-                  "dependencies": {
-                    "minimist": {
-                      "version": "0.0.8",
-                      "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
-                      "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
-                      "dev": true
-                    }
-                  }
-                },
-                "ncp": {
-                  "version": "0.4.2",
-                  "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz",
-                  "integrity": "sha1-q8xsvT7C7Spyn/bnwfqPAXhKhXQ=",
-                  "dev": true
-                },
-                "rimraf": {
-                  "version": "2.6.2",
-                  "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
-                  "integrity": "sha1-LtgVDSShbqhlHm1u8PR8QVjOejY=",
-                  "dev": true,
-                  "requires": {
-                    "glob": "7.1.2"
-                  },
-                  "dependencies": {
-                    "glob": {
-                      "version": "7.1.2",
-                      "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
-                      "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=",
-                      "dev": true,
-                      "requires": {
-                        "fs.realpath": "1.0.0",
-                        "inflight": "1.0.6",
-                        "inherits": "2.0.3",
-                        "minimatch": "3.0.4",
-                        "once": "1.4.0",
-                        "path-is-absolute": "1.0.1"
-                      },
-                      "dependencies": {
-                        "fs.realpath": {
-                          "version": "1.0.0",
-                          "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
-                          "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
-                          "dev": true
-                        },
-                        "inflight": {
-                          "version": "1.0.6",
-                          "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
-                          "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
-                          "dev": true,
-                          "requires": {
-                            "once": "1.4.0",
-                            "wrappy": "1.0.2"
-                          },
-                          "dependencies": {
-                            "wrappy": {
-                              "version": "1.0.2",
-                              "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
-                              "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
-                              "dev": true
-                            }
-                          }
-                        },
-                        "inherits": {
-                          "version": "2.0.3",
-                          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
-                          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
-                          "dev": true
-                        },
-                        "minimatch": {
-                          "version": "3.0.4",
-                          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
-                          "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=",
-                          "dev": true,
-                          "requires": {
-                            "brace-expansion": "1.1.11"
-                          },
-                          "dependencies": {
-                            "brace-expansion": {
-                              "version": "1.1.11",
-                              "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
-                              "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=",
-                              "dev": true,
-                              "requires": {
-                                "balanced-match": "1.0.0",
-                                "concat-map": "0.0.1"
-                              },
-                              "dependencies": {
-                                "balanced-match": {
-                                  "version": "1.0.0",
-                                  "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
-                                  "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
-                                  "dev": true
-                                },
-                                "concat-map": {
-                                  "version": "0.0.1",
-                                  "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
-                                  "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
-                                  "dev": true
-                                }
-                              }
-                            }
-                          }
-                        },
-                        "once": {
-                          "version": "1.4.0",
-                          "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
-                          "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
-                          "dev": true,
-                          "requires": {
-                            "wrappy": "1.0.2"
-                          },
-                          "dependencies": {
-                            "wrappy": {
-                              "version": "1.0.2",
-                              "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
-                              "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
-                              "dev": true
-                            }
-                          }
-                        },
-                        "path-is-absolute": {
-                          "version": "1.0.1",
-                          "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
-                          "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
-                          "dev": true
-                        }
-                      }
-                    }
-                  }
-                }
-              }
-            },
-            "winston": {
-              "version": "0.8.3",
-              "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz",
-              "integrity": "sha1-ZLar9M0Brcrv1QCTk7HY6L7BnbA=",
-              "dev": true,
-              "requires": {
-                "async": "0.2.10",
-                "colors": "0.6.2",
-                "cycle": "1.0.3",
-                "eyes": "0.1.8",
-                "isstream": "0.1.2",
-                "pkginfo": "0.3.1",
-                "stack-trace": "0.0.10"
-              },
-              "dependencies": {
-                "async": {
-                  "version": "0.2.10",
-                  "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
-                  "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
-                  "dev": true
-                },
-                "cycle": {
-                  "version": "1.0.3",
-                  "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz",
-                  "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=",
-                  "dev": true
-                },
-                "eyes": {
-                  "version": "0.1.8",
-                  "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
-                  "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=",
-                  "dev": true
-                },
-                "isstream": {
-                  "version": "0.1.2",
-                  "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
-                  "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
-                  "dev": true
-                },
-                "pkginfo": {
-                  "version": "0.3.1",
-                  "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz",
-                  "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=",
-                  "dev": true
-                },
-                "stack-trace": {
-                  "version": "0.0.10",
-                  "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
-                  "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=",
-                  "dev": true
-                }
-              }
-            }
-          }
-        }
-      }
-    },
-    "grunt-mocha-test": {
-      "version": "0.10.2",
-      "resolved": "https://registry.npmjs.org/grunt-mocha-test/-/grunt-mocha-test-0.10.2.tgz",
-      "integrity": "sha1-PeXc+ZPkN1vhrxkfj1u9H1clbUc=",
-      "dev": true,
-      "requires": {
-        "fs-extra": "0.8.1",
-        "hooker": "0.2.3",
-        "mocha": "1.18.2"
-      },
-      "dependencies": {
-        "fs-extra": {
-          "version": "0.8.1",
-          "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.8.1.tgz",
-          "integrity": "sha1-Dld5/7/t9RG8dVWVx/A8BtS0Po0=",
-          "dev": true,
-          "requires": {
-            "jsonfile": "1.1.1",
-            "mkdirp": "0.3.5",
-            "ncp": "0.4.2",
-            "rimraf": "2.2.8"
-          },
-          "dependencies": {
-            "jsonfile": {
-              "version": "1.1.1",
-              "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-1.1.1.tgz",
-              "integrity": "sha1-2k/WrXfxolUgPqY8e8Mtwx72RDM=",
-              "dev": true
-            },
-            "mkdirp": {
-              "version": "0.3.5",
-              "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz",
-              "integrity": "sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc=",
-              "dev": true
-            },
-            "ncp": {
-              "version": "0.4.2",
-              "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz",
-              "integrity": "sha1-q8xsvT7C7Spyn/bnwfqPAXhKhXQ=",
-              "dev": true
-            },
-            "rimraf": {
-              "version": "2.2.8",
-              "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
-              "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=",
-              "dev": true
-            }
-          }
-        },
-        "hooker": {
-          "version": "0.2.3",
-          "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
-          "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=",
-          "dev": true
-        },
-        "mocha": {
-          "version": "1.18.2",
-          "resolved": "https://registry.npmjs.org/mocha/-/mocha-1.18.2.tgz",
-          "integrity": "sha1-gAhI+PeITGHu/PoqJzBLqeVEbQs=",
-          "dev": true,
-          "requires": {
-            "commander": "2.0.0",
-            "debug": "3.1.0",
-            "diff": "1.0.7",
-            "glob": "3.2.3",
-            "growl": "1.7.0",
-            "jade": "0.26.3",
-            "mkdirp": "0.3.5"
-          },
-          "dependencies": {
-            "commander": {
-              "version": "2.0.0",
-              "resolved": "https://registry.npmjs.org/commander/-/commander-2.0.0.tgz",
-              "integrity": "sha1-0bhvkB+LZL2UG96tr5JFMDk76Sg=",
-              "dev": true
-            },
-            "debug": {
-              "version": "3.1.0",
-              "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
-              "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=",
-              "dev": true,
-              "requires": {
-                "ms": "2.0.0"
-              },
-              "dependencies": {
-                "ms": {
-                  "version": "2.0.0",
-                  "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-                  "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
-                  "dev": true
-                }
-              }
-            },
-            "diff": {
-              "version": "1.0.7",
-              "resolved": "https://registry.npmjs.org/diff/-/diff-1.0.7.tgz",
-              "integrity": "sha1-JLuwAcSn1VIhaefKvbLCgU7ZHPQ=",
-              "dev": true
-            },
-            "glob": {
-              "version": "3.2.3",
-              "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.3.tgz",
-              "integrity": "sha1-4xPusknHr/qlxHUoaw4RW1mDlGc=",
-              "dev": true,
-              "requires": {
-                "graceful-fs": "2.0.3",
-                "inherits": "2.0.3",
-                "minimatch": "0.2.14"
-              },
-              "dependencies": {
-                "graceful-fs": {
-                  "version": "2.0.3",
-                  "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz",
-                  "integrity": "sha1-fNLNsiiko/Nule+mzBQt59GhNtA=",
-                  "dev": true
-                },
-                "inherits": {
-                  "version": "2.0.3",
-                  "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
-                  "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
-                  "dev": true
-                },
-                "minimatch": {
-                  "version": "0.2.14",
-                  "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
-                  "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
-                  "dev": true,
-                  "requires": {
-                    "lru-cache": "2.7.3",
-                    "sigmund": "1.0.1"
-                  },
-                  "dependencies": {
-                    "lru-cache": {
-                      "version": "2.7.3",
-                      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
-                      "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
-                      "dev": true
-                    },
-                    "sigmund": {
-                      "version": "1.0.1",
-                      "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
-                      "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
-                      "dev": true
-                    }
-                  }
-                }
-              }
-            },
-            "growl": {
-              "version": "1.7.0",
-              "resolved": "https://registry.npmjs.org/growl/-/growl-1.7.0.tgz",
-              "integrity": "sha1-3i1mE20ALhErpw8/EMMc98NQsto=",
-              "dev": true
-            },
-            "jade": {
-              "version": "0.26.3",
-              "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz",
-              "integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=",
-              "dev": true,
-              "requires": {
-                "commander": "0.6.1",
-                "mkdirp": "0.3.0"
-              },
-              "dependencies": {
-                "commander": {
-                  "version": "0.6.1",
-                  "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz",
-                  "integrity": "sha1-+mihT2qUXVTbvlDYzbMyDp47GgY=",
-                  "dev": true
-                },
-                "mkdirp": {
-                  "version": "0.3.0",
-                  "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz",
-                  "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=",
-                  "dev": true
-                }
-              }
-            },
-            "mkdirp": {
-              "version": "0.3.5",
-              "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz",
-              "integrity": "sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc=",
-              "dev": true
-            }
-          }
-        }
-      }
-    },
-    "grunt-shell": {
-      "version": "0.7.0",
-      "resolved": "https://registry.npmjs.org/grunt-shell/-/grunt-shell-0.7.0.tgz",
-      "integrity": "sha1-K3HlTuXlZTfTTsBr+ZfAbOW000s=",
-      "dev": true,
-      "requires": {
-        "chalk": "0.4.0"
-      },
-      "dependencies": {
-        "chalk": {
-          "version": "0.4.0",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz",
-          "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "1.0.0",
-            "has-color": "0.1.7",
-            "strip-ansi": "0.1.1"
-          },
-          "dependencies": {
-            "ansi-styles": {
-              "version": "1.0.0",
-              "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz",
-              "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=",
-              "dev": true
-            },
-            "has-color": {
-              "version": "0.1.7",
-              "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz",
-              "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=",
-              "dev": true
-            },
-            "strip-ansi": {
-              "version": "0.1.1",
-              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz",
-              "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=",
-              "dev": true
-            }
-          }
-        }
-      }
-    },
-    "inherits": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
-      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
-    },
-    "isarray": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
-      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
-    },
-    "logger-sharelatex": {
-      "version": "git+https://github.com/sharelatex/logger-sharelatex.git#5a3ea8e655f23e76a77bbc207c012d3fc944c8d8",
-      "requires": {
-        "bunyan": "1.3.6",
-        "coffee-script": "1.4.0",
-        "raven": "0.8.1"
-      },
-      "dependencies": {
-        "bunyan": {
-          "version": "1.3.6",
-          "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.3.6.tgz",
-          "integrity": "sha1-xDM3p7Dc5mPYIjNnurBRlbkLR2o=",
-          "requires": {
-            "dtrace-provider": "0.4.0",
-            "mv": "2.1.1",
-            "safe-json-stringify": "1.1.0"
-          },
-          "dependencies": {
-            "dtrace-provider": {
-              "version": "0.4.0",
-              "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.4.0.tgz",
-              "integrity": "sha1-C2e8HMd+eb+IuHrSBmT0p1POPyY=",
-              "optional": true,
-              "requires": {
-                "nan": "1.5.3"
-              },
-              "dependencies": {
-                "nan": {
-                  "version": "1.5.3",
-                  "resolved": "https://registry.npmjs.org/nan/-/nan-1.5.3.tgz",
-                  "integrity": "sha1-TNDswTO3sHAKSSpkat1CeuijGOs=",
-                  "optional": true
-                }
-              }
-            },
-            "mv": {
-              "version": "2.1.1",
-              "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz",
-              "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=",
-              "optional": true,
-              "requires": {
-                "mkdirp": "0.5.1",
-                "ncp": "2.0.0",
-                "rimraf": "2.4.5"
-              },
-              "dependencies": {
-                "mkdirp": {
-                  "version": "0.5.1",
-                  "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
-                  "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
-                  "optional": true,
-                  "requires": {
-                    "minimist": "0.0.8"
-                  },
-                  "dependencies": {
-                    "minimist": {
-                      "version": "0.0.8",
-                      "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
-                      "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
-                      "optional": true
-                    }
-                  }
-                },
-                "ncp": {
-                  "version": "2.0.0",
-                  "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz",
-                  "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=",
-                  "optional": true
-                },
-                "rimraf": {
-                  "version": "2.4.5",
-                  "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz",
-                  "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=",
-                  "optional": true,
-                  "requires": {
-                    "glob": "6.0.4"
-                  },
-                  "dependencies": {
-                    "glob": {
-                      "version": "6.0.4",
-                      "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
-                      "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
-                      "optional": true,
-                      "requires": {
-                        "inflight": "1.0.6",
-                        "inherits": "2.0.3",
-                        "minimatch": "3.0.4",
-                        "once": "1.4.0",
-                        "path-is-absolute": "1.0.1"
-                      },
-                      "dependencies": {
-                        "inflight": {
-                          "version": "1.0.6",
-                          "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
-                          "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
-                          "optional": true,
-                          "requires": {
-                            "once": "1.4.0",
-                            "wrappy": "1.0.2"
-                          },
-                          "dependencies": {
-                            "wrappy": {
-                              "version": "1.0.2",
-                              "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
-                              "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
-                              "optional": true
-                            }
-                          }
-                        },
-                        "inherits": {
-                          "version": "2.0.3",
-                          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
-                          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
-                          "optional": true
-                        },
-                        "minimatch": {
-                          "version": "3.0.4",
-                          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
-                          "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=",
-                          "optional": true,
-                          "requires": {
-                            "brace-expansion": "1.1.11"
-                          },
-                          "dependencies": {
-                            "brace-expansion": {
-                              "version": "1.1.11",
-                              "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
-                              "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=",
-                              "optional": true,
-                              "requires": {
-                                "balanced-match": "1.0.0",
-                                "concat-map": "0.0.1"
-                              },
-                              "dependencies": {
-                                "balanced-match": {
-                                  "version": "1.0.0",
-                                  "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
-                                  "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
-                                  "optional": true
-                                },
-                                "concat-map": {
-                                  "version": "0.0.1",
-                                  "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
-                                  "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
-                                  "optional": true
-                                }
-                              }
-                            }
-                          }
-                        },
-                        "once": {
-                          "version": "1.4.0",
-                          "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
-                          "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
-                          "requires": {
-                            "wrappy": "1.0.2"
-                          },
-                          "dependencies": {
-                            "wrappy": {
-                              "version": "1.0.2",
-                              "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
-                              "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
-                            }
-                          }
-                        },
-                        "path-is-absolute": {
-                          "version": "1.0.1",
-                          "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
-                          "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
-                          "optional": true
-                        }
-                      }
-                    }
-                  }
-                }
-              }
-            },
-            "safe-json-stringify": {
-              "version": "1.1.0",
-              "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.1.0.tgz",
-              "integrity": "sha1-vSttrR66+rPCRnKjlVJ/AYBLfhk=",
-              "optional": true
-            }
-          }
-        },
-        "coffee-script": {
-          "version": "1.4.0",
-          "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.4.0.tgz",
-          "integrity": "sha1-XjvIqsJsAajie/EHcixWVfWtfTY="
-        },
-        "raven": {
-          "version": "0.8.1",
-          "resolved": "https://registry.npmjs.org/raven/-/raven-0.8.1.tgz",
-          "integrity": "sha1-UVk7tlnHcnjc00gitlq+d7dRuvU=",
-          "requires": {
-            "cookie": "0.1.0",
-            "lsmod": "0.0.3",
-            "node-uuid": "1.4.8",
-            "stack-trace": "0.0.7"
-          },
-          "dependencies": {
-            "cookie": {
-              "version": "0.1.0",
-              "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz",
-              "integrity": "sha1-kOtGndzpBchm3mh+/EMTHYgB+dA="
-            },
-            "lsmod": {
-              "version": "0.0.3",
-              "resolved": "https://registry.npmjs.org/lsmod/-/lsmod-0.0.3.tgz",
-              "integrity": "sha1-F+E9ThrpF1DqVlNUjNiecUetAkQ="
-            },
-            "node-uuid": {
-              "version": "1.4.8",
-              "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz",
-              "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc="
-            },
-            "stack-trace": {
-              "version": "0.0.7",
-              "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.7.tgz",
-              "integrity": "sha1-xy4Il0T8Nln1CM3ONiGvVjTsD/8="
-            }
-          }
-        }
-      }
-    },
-    "metrics-sharelatex": {
-      "version": "git+https://github.com/sharelatex/metrics-sharelatex.git#166961924c599b1f9468f2e17846fa2a9d12372d",
-      "requires": {
-        "coffee-script": "1.6.0",
-        "lynx": "0.1.1",
-        "underscore": "1.6.0"
-      },
-      "dependencies": {
-        "coffee-script": {
-          "version": "1.6.0",
-          "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.0.tgz",
-          "integrity": "sha1-gIs5bhEPU9AhoZpO8fZb4OjjX6M="
-        },
-        "lynx": {
-          "version": "0.1.1",
-          "resolved": "https://registry.npmjs.org/lynx/-/lynx-0.1.1.tgz",
-          "integrity": "sha1-Mxjc7xaQi4KG6Bisz9sxzXQkj50=",
-          "requires": {
-            "mersenne": "0.0.4",
-            "statsd-parser": "0.0.4"
-          },
-          "dependencies": {
-            "mersenne": {
-              "version": "0.0.4",
-              "resolved": "https://registry.npmjs.org/mersenne/-/mersenne-0.0.4.tgz",
-              "integrity": "sha1-QB/ex+whzbngPNPTAhOY2iGycIU="
-            },
-            "statsd-parser": {
-              "version": "0.0.4",
-              "resolved": "https://registry.npmjs.org/statsd-parser/-/statsd-parser-0.0.4.tgz",
-              "integrity": "sha1-y9JDlTzELv/VSLXSI4jtaJ7GOb0="
-            }
-          }
-        }
-      }
-    },
-    "mongodb": {
-      "version": "2.2.35",
-      "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-2.2.35.tgz",
-      "integrity": "sha512-3HGLucDg/8EeYMin3k+nFWChTA85hcYDCw1lPsWR6yV9A6RgKb24BkLiZ9ySZR+S0nfBjWoIUS7cyV6ceGx5Gg==",
-      "requires": {
-        "es6-promise": "3.2.1",
-        "mongodb-core": "2.1.19",
-        "readable-stream": "2.2.7"
-      },
-      "dependencies": {
-        "readable-stream": {
-          "version": "2.2.7",
-          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz",
-          "integrity": "sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE=",
-          "requires": {
-            "buffer-shims": "1.0.0",
-            "core-util-is": "1.0.2",
-            "inherits": "2.0.3",
-            "isarray": "1.0.0",
-            "process-nextick-args": "1.0.7",
-            "string_decoder": "1.0.3",
-            "util-deprecate": "1.0.2"
-          }
-        }
-      }
-    },
-    "mongodb-core": {
-      "version": "2.1.19",
-      "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.19.tgz",
-      "integrity": "sha512-Jt4AtWUkpuW03kRdYGxga4O65O1UHlFfvvInslEfLlGi+zDMxbBe3J2NVmN9qPJ957Mn6Iz0UpMtV80cmxCVxw==",
-      "requires": {
-        "bson": "1.0.6",
-        "require_optional": "1.0.1"
-      }
-    },
-    "mongojs": {
-      "version": "2.4.0",
-      "resolved": "https://registry.npmjs.org/mongojs/-/mongojs-2.4.0.tgz",
-      "integrity": "sha1-8of7/UV/7fWItakBHmhRPZ3TK/s=",
-      "requires": {
-        "each-series": "1.0.0",
-        "mongodb": "2.2.35",
-        "once": "1.4.0",
-        "parse-mongo-url": "1.1.1",
-        "readable-stream": "2.3.6",
-        "thunky": "0.1.0",
-        "to-mongodb-core": "2.0.0",
-        "xtend": "4.0.1"
-      }
-    },
-    "once": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
-      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
-      "requires": {
-        "wrappy": "1.0.2"
-      }
-    },
-    "parse-mongo-url": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/parse-mongo-url/-/parse-mongo-url-1.1.1.tgz",
-      "integrity": "sha1-ZiON9fjnwMjKTNlw1KtqE3PrdbU="
-    },
-    "process-nextick-args": {
-      "version": "1.0.7",
-      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
-      "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
-    },
-    "readable-stream": {
-      "version": "2.3.6",
-      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
-      "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
-      "requires": {
-        "core-util-is": "1.0.2",
-        "inherits": "2.0.3",
-        "isarray": "1.0.0",
-        "process-nextick-args": "2.0.0",
-        "safe-buffer": "5.1.1",
-        "string_decoder": "1.1.1",
-        "util-deprecate": "1.0.2"
-      },
-      "dependencies": {
-        "process-nextick-args": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
-          "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
-        },
-        "string_decoder": {
-          "version": "1.1.1",
-          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
-          "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
-          "requires": {
-            "safe-buffer": "5.1.1"
-          }
-        }
-      }
-    },
-    "request": {
-      "version": "2.34.0",
-      "resolved": "https://registry.npmjs.org/request/-/request-2.34.0.tgz",
-      "integrity": "sha1-tdi5UmrdSi1GKfTUFxJFc5lkRa4=",
-      "requires": {
-        "aws-sign2": "0.5.0",
-        "forever-agent": "0.5.2",
-        "form-data": "0.1.4",
-        "hawk": "1.0.0",
-        "http-signature": "0.10.1",
-        "json-stringify-safe": "5.0.1",
-        "mime": "1.2.11",
-        "node-uuid": "1.4.8",
-        "oauth-sign": "0.3.0",
-        "qs": "0.6.6",
-        "tough-cookie": "2.3.4",
-        "tunnel-agent": "0.3.0"
-      },
-      "dependencies": {
-        "aws-sign2": {
-          "version": "0.5.0",
-          "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz",
-          "integrity": "sha1-xXED96F/wDfwLXwuZLYC6iI/fWM=",
-          "optional": true
-        },
-        "forever-agent": {
-          "version": "0.5.2",
-          "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz",
-          "integrity": "sha1-bQ4JxJIflKJ/Y9O0nF/v8epMUTA="
-        },
-        "form-data": {
-          "version": "0.1.4",
-          "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz",
-          "integrity": "sha1-kavXiKupcCsaq/qLwBAxoqyeOxI=",
-          "optional": true,
-          "requires": {
-            "async": "0.9.2",
-            "combined-stream": "0.0.7",
-            "mime": "1.2.11"
-          },
-          "dependencies": {
-            "async": {
-              "version": "0.9.2",
-              "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
-              "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=",
-              "optional": true
-            },
-            "combined-stream": {
-              "version": "0.0.7",
-              "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz",
-              "integrity": "sha1-ATfmV7qlp1QcV6w3rF/AfXO03B8=",
-              "optional": true,
-              "requires": {
-                "delayed-stream": "0.0.5"
-              },
-              "dependencies": {
-                "delayed-stream": {
-                  "version": "0.0.5",
-                  "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz",
-                  "integrity": "sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8=",
-                  "optional": true
-                }
-              }
-            }
-          }
-        },
-        "hawk": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/hawk/-/hawk-1.0.0.tgz",
-          "integrity": "sha1-uQuxaYByhUEdp//LjdJZhQLTtS0=",
-          "optional": true,
-          "requires": {
-            "boom": "0.4.2",
-            "cryptiles": "0.2.2",
-            "hoek": "0.9.1",
-            "sntp": "0.2.4"
-          },
-          "dependencies": {
-            "boom": {
-              "version": "0.4.2",
-              "resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz",
-              "integrity": "sha1-emNune1O/O+xnO9JR6PGffrukRs=",
-              "requires": {
-                "hoek": "0.9.1"
-              }
-            },
-            "cryptiles": {
-              "version": "0.2.2",
-              "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz",
-              "integrity": "sha1-7ZH/HxetE9N0gohZT4pIoNJvMlw=",
-              "optional": true,
-              "requires": {
-                "boom": "0.4.2"
-              }
-            },
-            "hoek": {
-              "version": "0.9.1",
-              "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz",
-              "integrity": "sha1-PTIkYrrfB3Fup+uFuviAec3c5QU="
-            },
-            "sntp": {
-              "version": "0.2.4",
-              "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz",
-              "integrity": "sha1-+4hfGLDzqtGJ+CSGJTa87ux1CQA=",
-              "optional": true,
-              "requires": {
-                "hoek": "0.9.1"
-              }
-            }
-          }
-        },
-        "http-signature": {
-          "version": "0.10.1",
-          "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz",
-          "integrity": "sha1-T72sEyVZqoMjEh5UB3nAoBKyfmY=",
-          "optional": true,
-          "requires": {
-            "asn1": "0.1.11",
-            "assert-plus": "0.1.5",
-            "ctype": "0.5.3"
-          },
-          "dependencies": {
-            "asn1": {
-              "version": "0.1.11",
-              "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz",
-              "integrity": "sha1-VZvhg3bQik7E2+gId9J4GGObLfc=",
-              "optional": true
-            },
-            "assert-plus": {
-              "version": "0.1.5",
-              "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz",
-              "integrity": "sha1-7nQAlBMALYTOxyGcasgRgS5yMWA=",
-              "optional": true
-            },
-            "ctype": {
-              "version": "0.5.3",
-              "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz",
-              "integrity": "sha1-gsGMJGH3QRTvFsE1IkrQuRRMoS8=",
-              "optional": true
-            }
-          }
-        },
-        "json-stringify-safe": {
-          "version": "5.0.1",
-          "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
-          "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
-        },
-        "mime": {
-          "version": "1.2.11",
-          "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz",
-          "integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA="
-        },
-        "node-uuid": {
-          "version": "1.4.8",
-          "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz",
-          "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc="
-        },
-        "oauth-sign": {
-          "version": "0.3.0",
-          "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz",
-          "integrity": "sha1-y1QPk7srIqfVlBaRoojWDo6pOG4=",
-          "optional": true
-        },
-        "qs": {
-          "version": "0.6.6",
-          "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz",
-          "integrity": "sha1-bgFQmP9RlouKPIGQAdXyyJvEsQc="
-        },
-        "tough-cookie": {
-          "version": "2.3.4",
-          "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
-          "integrity": "sha1-7GDO44rGdQY//JelwYlwV47oNlU=",
-          "optional": true,
-          "requires": {
-            "punycode": "1.4.1"
-          },
-          "dependencies": {
-            "punycode": {
-              "version": "1.4.1",
-              "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
-              "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
-              "optional": true
-            }
-          }
-        },
-        "tunnel-agent": {
-          "version": "0.3.0",
-          "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.3.0.tgz",
-          "integrity": "sha1-rWgbaPUyGtKCfEz7G31d8s/pQu4=",
-          "optional": true
-        }
-      }
-    },
-    "require_optional": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz",
-      "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==",
-      "requires": {
-        "resolve-from": "2.0.0",
-        "semver": "5.5.0"
-      }
-    },
-    "resolve-from": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
-      "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
-    },
-    "safe-buffer": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
-      "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
-    },
-    "sandboxed-module": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npmjs.org/sandboxed-module/-/sandboxed-module-0.3.0.tgz",
-      "integrity": "sha1-8fvvvYCaT2kHO9B8rm/H2y6vX2o=",
-      "dev": true,
-      "requires": {
-        "require-like": "0.1.2",
-        "stack-trace": "0.0.6"
-      },
-      "dependencies": {
-        "require-like": {
-          "version": "0.1.2",
-          "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz",
-          "integrity": "sha1-rW8wwTvs15cBDEaK+ndcDAprR/o=",
-          "dev": true
-        },
-        "stack-trace": {
-          "version": "0.0.6",
-          "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.6.tgz",
-          "integrity": "sha1-HnGb1qJin/CcGJ4Xqe+QKpT8XbA=",
-          "dev": true
-        }
-      }
-    },
-    "semver": {
-      "version": "5.5.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
-      "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA=="
-    },
-    "settings-sharelatex": {
-      "version": "git+https://github.com/sharelatex/settings-sharelatex.git#cbc5e41c1dbe6789721a14b3fdae05bf22546559",
-      "requires": {
-        "coffee-script": "1.6.0"
-      },
-      "dependencies": {
-        "coffee-script": {
-          "version": "1.6.0",
-          "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.0.tgz",
-          "integrity": "sha1-gIs5bhEPU9AhoZpO8fZb4OjjX6M="
-        }
-      }
-    },
-    "sinon": {
-      "version": "1.5.2",
-      "resolved": "https://registry.npmjs.org/sinon/-/sinon-1.5.2.tgz",
-      "integrity": "sha1-nKvGx4vfRF1/gxHVSWhi+VRoxPg=",
-      "dev": true,
-      "requires": {
-        "buster-format": "0.5.6"
-      },
-      "dependencies": {
-        "buster-format": {
-          "version": "0.5.6",
-          "resolved": "https://registry.npmjs.org/buster-format/-/buster-format-0.5.6.tgz",
-          "integrity": "sha1-K4bDIuz14bCubm55Bev884fSq5U=",
-          "dev": true,
-          "requires": {
-            "buster-core": "0.6.4"
-          },
-          "dependencies": {
-            "buster-core": {
-              "version": "0.6.4",
-              "resolved": "https://registry.npmjs.org/buster-core/-/buster-core-0.6.4.tgz",
-              "integrity": "sha1-J79rrWdCROpyDzEdkAoMoct4YFA=",
-              "dev": true
-            }
-          }
-        }
-      }
-    },
-    "string_decoder": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
-      "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
-      "requires": {
-        "safe-buffer": "5.1.1"
-      }
-    },
-    "thunky": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npmjs.org/thunky/-/thunky-0.1.0.tgz",
-      "integrity": "sha1-vzAUaCTituZ7Dy16Ssi+smkIaE4="
-    },
-    "timekeeper": {
-      "version": "0.0.5",
-      "resolved": "https://registry.npmjs.org/timekeeper/-/timekeeper-0.0.5.tgz",
-      "integrity": "sha1-DKbnGM5O8RhHfJETmja7u2+gHB0=",
-      "dev": true
-    },
-    "to-mongodb-core": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/to-mongodb-core/-/to-mongodb-core-2.0.0.tgz",
-      "integrity": "sha1-NZbsdhOsmtO5ioncua77pWnNJ+s="
-    },
-    "underscore": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz",
-      "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag="
-    },
-    "util-deprecate": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
-      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
-    },
-    "wrappy": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
-      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
-    },
-    "xtend": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
-      "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
-    }
-  }
-}

+ 4 - 12
services/contacts/package.json

@@ -8,7 +8,7 @@
     "url": "https://github.com/sharelatex/contacts-sharelatex.git"
     "url": "https://github.com/sharelatex/contacts-sharelatex.git"
   },
   },
   "scripts": {
   "scripts": {
-    "compile:app": "([ -e app/coffee ] && coffee $COFFEE_OPTIONS -o app/js -c app/coffee || echo 'No CoffeeScript folder to compile') && ( [ -e app.coffee ] && coffee $COFFEE_OPTIONS -c app.coffee || echo 'No CoffeeScript app to compile')",
+    "compile:app": "([ -e app/coffee ] && coffee -m $COFFEE_OPTIONS -o app/js -c app/coffee || echo 'No CoffeeScript folder to compile') && ( [ -e app.coffee ] && coffee -m $COFFEE_OPTIONS -c app.coffee || echo 'No CoffeeScript app to compile')",
     "start": "npm run compile:app && node $NODE_APP_OPTIONS app.js",
     "start": "npm run compile:app && node $NODE_APP_OPTIONS app.js",
     "test:acceptance:_run": "mocha --recursive --reporter spec --timeout 30000 --exit $@ test/acceptance/js",
     "test:acceptance:_run": "mocha --recursive --reporter spec --timeout 30000 --exit $@ test/acceptance/js",
     "test:acceptance": "npm run compile:app && npm run compile:acceptance_tests && npm run test:acceptance:_run -- --grep=$MOCHA_GREP",
     "test:acceptance": "npm run compile:app && npm run compile:acceptance_tests && npm run test:acceptance:_run -- --grep=$MOCHA_GREP",
@@ -25,25 +25,17 @@
     "body-parser": "~1.0.2",
     "body-parser": "~1.0.2",
     "coffee-script": "^1.7.1",
     "coffee-script": "^1.7.1",
     "express": "~4.1.1",
     "express": "~4.1.1",
-    "logger-sharelatex": "git+https://github.com/sharelatex/logger-sharelatex.git#v1.1.0",
-    "metrics-sharelatex": "git+https://github.com/sharelatex/metrics-sharelatex.git#v1.7.1",
+    "logger-sharelatex": "git+https://github.com/sharelatex/logger-sharelatex.git#v1.5.9",
+    "metrics-sharelatex": "git+https://github.com/sharelatex/metrics-sharelatex.git#v2.0.12",
     "mongojs": "2.4.0",
     "mongojs": "2.4.0",
     "request": "~2.34.0",
     "request": "~2.34.0",
-    "settings-sharelatex": "git+https://github.com/sharelatex/settings-sharelatex.git#v1.0.0",
+    "settings-sharelatex": "git+https://github.com/sharelatex/settings-sharelatex.git#v1.1.0",
     "underscore": "~1.6.0"
     "underscore": "~1.6.0"
   },
   },
   "devDependencies": {
   "devDependencies": {
     "bunyan": "~0.22.3",
     "bunyan": "~0.22.3",
     "chai": "~1.9.1",
     "chai": "~1.9.1",
-    "grunt": "~0.4.4",
-    "grunt-bunyan": "~0.5.0",
-    "grunt-contrib-clean": "~0.5.0",
-    "grunt-contrib-coffee": "~0.10.1",
-    "grunt-execute": "~0.2.1",
-    "grunt-forever": "~0.4.4",
-    "grunt-mocha-test": "~0.10.2",
     "mocha": "^4.0.1",
     "mocha": "^4.0.1",
-    "grunt-shell": "~0.7.0",
     "sandboxed-module": "~0.3.0",
     "sandboxed-module": "~0.3.0",
     "sinon": "~1.5.2",
     "sinon": "~1.5.2",
     "timekeeper": "0.0.5"
     "timekeeper": "0.0.5"