Răsfoiți Sursa

Update logger, metrics, and redis client

Also fix acceptance tests, broken by a change in behaviour of the redis client.
It now returns a promise from most operations. This interferes with how mocha
handles callbacks in `before` blocks.
Shane Kilkelly 7 ani în urmă
părinte
comite
ef0d9c5afc

+ 5 - 44
services/chat/.eslintrc

@@ -1,61 +1,22 @@
+// this file was auto-generated, do not edit it directly.
+// instead run bin/update_build_scripts from
+// https://github.com/sharelatex/sharelatex-dev-environment
+// version: 1.1.18
 {
   "extends": [
     "standard",
-    "standard-react",
     "prettier",
-    "prettier/react",
     "prettier/standard",
-    "plugin:jsx-a11y/recommended"
   ],
   "plugins": [
-    "prettier",
-    "jsx-a11y",
     "mocha",
     "chai-expect",
     "chai-friendly"
   ],
   "env": {
-    "mocha": true
-  },
-  "globals": {
-    "expect": true,
-    "define": true,
-    "$": true,
-    "angular": true,
-    // Injected in layout.pug
-    "user_id": true
-  },
-  "settings": {
-    // Tell eslint-plugin-react which version of React we are using
-    "react": {
-      "version": "15"
-    }
+    "node": true
   },
   "rules": {
-    "max-len": ["error", {
-      "ignoreUrls": true,
-      // Ignore long describe/it test blocks, long import/require statements
-      "ignorePattern": "(^\\s*(it|describe)\\s*\\(['\"]|^import\\s*.*\\s*from\\s*['\"]|^.*\\s*=\\s*require\\(['\"])"
-    }],
-
-    // Fix conflict between prettier & standard by overriding to prefer
-    // double quotes
-    "jsx-quotes": ["error", "prefer-double"],
-
-    // Override weird behaviour of jsx-a11y label-has-for (says labels must be
-    // nested *and* have for/id attributes)
-    "jsx-a11y/label-has-for": [
-      "error",
-      {
-        "required": {
-          "some": [
-            "nesting",
-            "id"
-          ]
-        }
-      }
-    ],
-
     // Add some mocha specific rules
     "mocha/handle-done-callback": "error",
     "mocha/no-exclusive-tests": "error",

+ 4 - 0
services/chat/.prettierrc

@@ -1,3 +1,7 @@
+# This file was auto-generated, do not edit it directly.
+# Instead run bin/update_build_scripts from
+# https://github.com/sharelatex/sharelatex-dev-environment
+# Version: 1.1.18
 {
   "semi": false,
   "singleQuote": true

+ 2 - 0
services/chat/Jenkinsfile

@@ -35,8 +35,10 @@ pipeline {
         sh 'make build'
       }
     }
+
     stage('Linting') {
       steps {
+        sh 'DOCKER_COMPOSE_FLAGS="-f docker-compose.ci.yml" make format'
         sh 'DOCKER_COMPOSE_FLAGS="-f docker-compose.ci.yml" make lint'
       }
     }

+ 9 - 2
services/chat/Makefile

@@ -1,7 +1,7 @@
 # This file was auto-generated, do not edit it directly.
 # Instead run bin/update_build_scripts from
 # https://github.com/sharelatex/sharelatex-dev-environment
-# Version: 1.1.16
+# Version: 1.1.21
 
 BUILD_NUMBER ?= local
 BRANCH_NAME ?= $(shell git rev-parse --abbrev-ref HEAD)
@@ -16,10 +16,17 @@ DOCKER_COMPOSE := BUILD_NUMBER=$(BUILD_NUMBER) \
 clean:
 	docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
 	docker rmi gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
+
+format:
+	$(DOCKER_COMPOSE) run --rm test_unit npm run format
+
+format_fix:
+	$(DOCKER_COMPOSE) run --rm test_unit npm run format:fix
+
 lint:
 	$(DOCKER_COMPOSE) run --rm test_unit npm run lint
 
-test: lint test_unit test_acceptance
+test: format lint test_unit test_acceptance
 
 test_unit:
 	@[ ! -d test/unit ] && echo "chat has no unit tests" || $(DOCKER_COMPOSE) run --rm test_unit

+ 1 - 1
services/chat/buildscript.txt

@@ -5,4 +5,4 @@ chat
 --dependencies=mongo,redis
 --docker-repos=gcr.io/overleaf-ops
 --build-target=docker
---script-version=1.1.16
+--script-version=1.1.21

+ 5 - 2
services/chat/docker-compose.ci.yml

@@ -1,15 +1,17 @@
 # This file was auto-generated, do not edit it directly.
 # Instead run bin/update_build_scripts from
 # https://github.com/sharelatex/sharelatex-dev-environment
-# Version: 1.1.16
+# Version: 1.1.21
 
-version: "3.1"
+version: "2"
 
 services:
   test_unit:
     image: ci/$PROJECT_NAME:$BRANCH_NAME-$BUILD_NUMBER
     user: node
     command: npm run test:unit:_run
+    environment:
+      NODE_ENV: test
 
 
   test_acceptance:
@@ -21,6 +23,7 @@ services:
       MONGO_HOST: mongo
       POSTGRES_HOST: postgres
       MOCHA_GREP: ${MOCHA_GREP}
+      NODE_ENV: test
     depends_on:
       - mongo
       - redis

+ 6 - 2
services/chat/docker-compose.yml

@@ -1,9 +1,9 @@
 # This file was auto-generated, do not edit it directly.
 # Instead run bin/update_build_scripts from
 # https://github.com/sharelatex/sharelatex-dev-environment
-# Version: 1.1.16
+# Version: 1.1.21
 
-version: "3.1"
+version: "2"
 
 services:
   test_unit:
@@ -13,6 +13,7 @@ services:
     working_dir: /app
     environment:
       MOCHA_GREP: ${MOCHA_GREP}
+      NODE_ENV: test
     command: npm run test:unit
     user: node
 
@@ -27,6 +28,8 @@ services:
       MONGO_HOST: mongo
       POSTGRES_HOST: postgres
       MOCHA_GREP: ${MOCHA_GREP}
+      LOG_LEVEL: ERROR
+      NODE_ENV: test
     user: node
     depends_on:
       - mongo
@@ -49,3 +52,4 @@ services:
   mongo:
     image: mongo:3.4
 
+

+ 185 - 165
services/chat/npm-shrinkwrap.json

@@ -15,10 +15,15 @@
       "dev": true
     },
     "@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",
+      "version": "0.32.1",
+      "from": "@google-cloud/common@>=0.32.0 <0.33.0",
+      "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.32.1.tgz",
       "dependencies": {
+        "arrify": {
+          "version": "2.0.1",
+          "from": "arrify@>=2.0.0 <3.0.0",
+          "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz"
+        },
         "pify": {
           "version": "4.0.1",
           "from": "pify@^4.0.0",
@@ -27,25 +32,25 @@
       }
     },
     "@google-cloud/debug-agent": {
-      "version": "3.0.1",
+      "version": "3.2.0",
       "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",
+      "resolved": "https://registry.npmjs.org/@google-cloud/debug-agent/-/debug-agent-3.2.0.tgz",
       "dependencies": {
-        "acorn": {
-          "version": "5.7.3",
-          "from": "acorn@>=5.0.3 <6.0.0",
-          "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz"
-        },
         "coffeescript": {
-          "version": "2.3.2",
+          "version": "2.4.1",
           "from": "coffeescript@>=2.0.0 <3.0.0",
-          "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-2.3.2.tgz"
+          "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-2.4.1.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"
         },
+        "semver": {
+          "version": "6.1.1",
+          "from": "semver@>=6.0.0 <7.0.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-6.1.1.tgz"
+        },
         "source-map": {
           "version": "0.6.1",
           "from": "source-map@>=0.6.1 <0.7.0",
@@ -68,10 +73,32 @@
           "from": "@google-cloud/common@>=0.26.0 <0.27.0",
           "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.26.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"
+        },
+        "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"
+        },
+        "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"
+            }
+          }
+        },
         "nan": {
-          "version": "2.12.1",
+          "version": "2.14.0",
           "from": "nan@>=2.11.1 <3.0.0",
-          "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz"
+          "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz"
         },
         "pify": {
           "version": "4.0.1",
@@ -79,41 +106,31 @@
           "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz"
         },
         "through2": {
-          "version": "3.0.0",
+          "version": "3.0.1",
           "from": "through2@>=3.0.0 <4.0.0",
-          "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.0.tgz"
+          "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.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"
+      "version": "0.3.3",
+      "from": "@google-cloud/projectify@>=0.3.3 <0.4.0",
+      "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-0.3.3.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"
+      "version": "0.4.0",
+      "from": "@google-cloud/promisify@>=0.4.0 <0.5.0",
+      "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-0.4.0.tgz"
     },
     "@google-cloud/trace-agent": {
-      "version": "3.5.2",
+      "version": "3.6.1",
       "from": "@google-cloud/trace-agent@>=3.2.0 <4.0.0",
-      "resolved": "https://registry.npmjs.org/@google-cloud/trace-agent/-/trace-agent-3.5.2.tgz",
+      "resolved": "https://registry.npmjs.org/@google-cloud/trace-agent/-/trace-agent-3.6.1.tgz",
       "dependencies": {
-        "@google-cloud/common": {
-          "version": "0.30.2",
-          "from": "@google-cloud/common@>=0.30.0 <0.31.0",
-          "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.30.2.tgz"
-        },
-        "google-auth-library": {
-          "version": "3.0.1",
-          "from": "google-auth-library@>=3.0.0 <4.0.0",
-          "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-3.0.1.tgz"
-        },
-        "pify": {
-          "version": "4.0.1",
-          "from": "pify@^4.0.0",
-          "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz"
+        "semver": {
+          "version": "6.1.1",
+          "from": "semver@^6.0.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-6.1.1.tgz"
         },
         "uuid": {
           "version": "3.3.2",
@@ -173,9 +190,9 @@
       "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"
+      "version": "0.15.0",
+      "from": "@sindresorhus/is@>=0.15.0 <0.16.0",
+      "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.15.0.tgz"
     },
     "@sinonjs/formatio": {
       "version": "2.0.0",
@@ -183,9 +200,9 @@
       "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz"
     },
     "@types/caseless": {
-      "version": "0.12.1",
+      "version": "0.12.2",
       "from": "@types/caseless@*",
-      "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.1.tgz"
+      "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.2.tgz"
     },
     "@types/console-log-level": {
       "version": "1.4.0",
@@ -208,9 +225,9 @@
       "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.0.tgz"
     },
     "@types/node": {
-      "version": "10.12.20",
+      "version": "12.0.8",
       "from": "@types/node@*",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.20.tgz"
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-12.0.8.tgz"
     },
     "@types/request": {
       "version": "2.48.1",
@@ -233,11 +250,15 @@
       "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
       "dev": true
     },
+    "abort-controller": {
+      "version": "3.0.0",
+      "from": "abort-controller@>=3.0.0 <4.0.0",
+      "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz"
+    },
     "acorn": {
       "version": "6.1.1",
       "from": "acorn@>=6.0.0 <7.0.0",
-      "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz",
-      "dev": true
+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz"
     },
     "acorn-jsx": {
       "version": "5.0.1",
@@ -246,9 +267,9 @@
       "dev": true
     },
     "agent-base": {
-      "version": "4.2.1",
+      "version": "4.3.0",
       "from": "agent-base@>=4.1.0 <5.0.0",
-      "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz"
+      "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz"
     },
     "ajv": {
       "version": "5.5.2",
@@ -424,9 +445,16 @@
       "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz"
     },
     "axios": {
-      "version": "0.18.0",
+      "version": "0.18.1",
       "from": "axios@>=0.18.0 <0.19.0",
-      "resolved": "http://registry.npmjs.org/axios/-/axios-0.18.0.tgz"
+      "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.1.tgz",
+      "dependencies": {
+        "is-buffer": {
+          "version": "2.0.3",
+          "from": "is-buffer@>=2.0.2 <3.0.0",
+          "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz"
+        }
+      }
     },
     "axobject-query": {
       "version": "2.0.2",
@@ -543,9 +571,9 @@
       "dev": true
     },
     "bindings": {
-      "version": "1.4.0",
+      "version": "1.5.0",
       "from": "bindings@>=1.2.1 <2.0.0",
-      "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.4.0.tgz"
+      "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz"
     },
     "bintrees": {
       "version": "1.0.1",
@@ -601,15 +629,14 @@
       "dev": true
     },
     "builtin-modules": {
-      "version": "3.0.0",
+      "version": "3.1.0",
       "from": "builtin-modules@>=3.0.0 <4.0.0",
-      "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.0.0.tgz"
+      "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz"
     },
     "bunyan": {
       "version": "1.8.12",
       "from": "bunyan@>=1.0.0 <2.0.0",
-      "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.12.tgz",
-      "dev": true
+      "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.12.tgz"
     },
     "cache-base": {
       "version": "1.0.1",
@@ -777,9 +804,9 @@
       "dev": true
     },
     "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"
+      "version": "1.6.0",
+      "from": "coffee-script@1.6.0",
+      "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.0.tgz"
     },
     "collection-visit": {
       "version": "1.0.0",
@@ -800,9 +827,9 @@
       "dev": true
     },
     "combined-stream": {
-      "version": "1.0.7",
+      "version": "1.0.8",
       "from": "combined-stream@>=1.0.6 <1.1.0",
-      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz"
+      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"
     },
     "commander": {
       "version": "2.20.0",
@@ -848,9 +875,9 @@
       }
     },
     "console-log-level": {
-      "version": "1.4.0",
+      "version": "1.4.1",
       "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"
+      "resolved": "https://registry.npmjs.org/console-log-level/-/console-log-level-1.4.1.tgz"
     },
     "contains-path": {
       "version": "0.1.0",
@@ -995,9 +1022,9 @@
       }
     },
     "delay": {
-      "version": "4.1.0",
+      "version": "4.3.0",
       "from": "delay@>=4.0.1 <5.0.0",
-      "resolved": "https://registry.npmjs.org/delay/-/delay-4.1.0.tgz"
+      "resolved": "https://registry.npmjs.org/delay/-/delay-4.3.0.tgz"
     },
     "delayed-stream": {
       "version": "1.0.0",
@@ -1031,7 +1058,6 @@
       "version": "0.8.6",
       "from": "dtrace-provider@>=0.8.0 <0.9.0",
       "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.6.tgz",
-      "dev": true,
       "optional": true
     },
     "duplexer": {
@@ -1047,9 +1073,9 @@
       "dev": true
     },
     "duplexify": {
-      "version": "3.6.1",
+      "version": "3.7.1",
       "from": "duplexify@>=3.6.0 <4.0.0",
-      "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.1.tgz"
+      "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz"
     },
     "ecc-jsbn": {
       "version": "0.1.2",
@@ -1057,9 +1083,9 @@
       "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.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"
+      "version": "1.0.11",
+      "from": "ecdsa-sig-formatter@1.0.11",
+      "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz"
     },
     "emitter-listener": {
       "version": "1.1.2",
@@ -1101,9 +1127,9 @@
       "dev": true
     },
     "es6-promise": {
-      "version": "4.2.5",
+      "version": "4.2.8",
       "from": "es6-promise@>=4.0.3 <5.0.0",
-      "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz"
+      "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz"
     },
     "es6-promisify": {
       "version": "5.0.0",
@@ -1364,6 +1390,11 @@
       "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
       "dev": true
     },
+    "event-target-shim": {
+      "version": "5.0.1",
+      "from": "event-target-shim@>=5.0.0 <6.0.0",
+      "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz"
+    },
     "execa": {
       "version": "0.7.0",
       "from": "execa@>=0.7.0 <0.8.0",
@@ -1654,9 +1685,9 @@
       "dev": true
     },
     "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"
+      "version": "1.5.10",
+      "from": "follow-redirects@1.5.10",
+      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz"
     },
     "for-in": {
       "version": "1.0.2",
@@ -1705,14 +1736,14 @@
       "dev": true
     },
     "gaxios": {
-      "version": "1.2.7",
-      "from": "gaxios@>=1.0.4 <2.0.0",
-      "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-1.2.7.tgz"
+      "version": "1.8.4",
+      "from": "gaxios@>=1.2.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-1.8.4.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"
+      "version": "1.0.0",
+      "from": "gcp-metadata@>=1.0.0 <2.0.0",
+      "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-1.0.0.tgz"
     },
     "get-caller-file": {
       "version": "1.0.3",
@@ -1781,21 +1812,14 @@
       "dev": true
     },
     "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"
-        }
-      }
+      "version": "3.1.2",
+      "from": "google-auth-library@>=3.1.1 <4.0.0",
+      "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-3.1.2.tgz"
     },
     "google-p12-pem": {
-      "version": "1.0.3",
+      "version": "1.0.4",
       "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",
+      "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-1.0.4.tgz",
       "dependencies": {
         "pify": {
           "version": "4.0.1",
@@ -1817,9 +1841,9 @@
       "dev": true
     },
     "gtoken": {
-      "version": "2.3.2",
-      "from": "gtoken@>=2.3.0 <3.0.0",
-      "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-2.3.2.tgz",
+      "version": "2.3.3",
+      "from": "gtoken@>=2.3.2 <3.0.0",
+      "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-2.3.3.tgz",
       "dependencies": {
         "pify": {
           "version": "4.0.1",
@@ -2047,7 +2071,8 @@
     "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"
+      "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+      "dev": true
     },
     "is-callable": {
       "version": "1.1.4",
@@ -2312,14 +2337,14 @@
       "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-1.1.27.tgz"
     },
     "jwa": {
-      "version": "1.2.0",
-      "from": "jwa@>=1.2.0 <2.0.0",
-      "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.2.0.tgz"
+      "version": "1.4.1",
+      "from": "jwa@>=1.4.1 <2.0.0",
+      "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz"
     },
     "jws": {
-      "version": "3.2.1",
+      "version": "3.2.2",
       "from": "jws@>=3.1.5 <4.0.0",
-      "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.1.tgz"
+      "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz"
     },
     "kind-of": {
       "version": "6.0.2",
@@ -2400,21 +2425,10 @@
       "dev": true
     },
     "logger-sharelatex": {
-      "version": "1.6.0",
-      "from": "logger-sharelatex@1.6.0",
-      "resolved": "https://registry.npmjs.org/logger-sharelatex/-/logger-sharelatex-1.6.0.tgz",
+      "version": "1.7.0",
+      "from": "logger-sharelatex@1.7.0",
+      "resolved": "https://registry.npmjs.org/logger-sharelatex/-/logger-sharelatex-1.7.0.tgz",
       "dependencies": {
-        "bunyan": {
-          "version": "1.5.1",
-          "from": "bunyan@1.5.1",
-          "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.5.1.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
-        },
         "request": {
           "version": "2.88.0",
           "from": "request@>=2.88.0 <3.0.0",
@@ -2603,16 +2617,9 @@
       "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz"
     },
     "metrics-sharelatex": {
-      "version": "2.1.1",
-      "from": "metrics-sharelatex@2.1.1",
-      "resolved": "https://registry.npmjs.org/metrics-sharelatex/-/metrics-sharelatex-2.1.1.tgz",
-      "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"
-        }
-      }
+      "version": "2.2.0",
+      "from": "metrics-sharelatex@2.2.0",
+      "resolved": "https://registry.npmjs.org/metrics-sharelatex/-/metrics-sharelatex-2.2.0.tgz"
     },
     "micromatch": {
       "version": "3.1.10",
@@ -2621,19 +2628,19 @@
       "dev": true
     },
     "mime": {
-      "version": "2.4.0",
+      "version": "2.4.4",
       "from": "mime@>=2.2.0 <3.0.0",
-      "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz"
+      "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz"
     },
     "mime-db": {
-      "version": "1.37.0",
-      "from": "mime-db@>=1.37.0 <1.38.0",
-      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz"
+      "version": "1.40.0",
+      "from": "mime-db@1.40.0",
+      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz"
     },
     "mime-types": {
-      "version": "2.1.21",
+      "version": "2.1.24",
       "from": "mime-types@>=2.1.19 <2.2.0",
-      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz"
+      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz"
     },
     "mimic-fn": {
       "version": "1.2.0",
@@ -2736,7 +2743,6 @@
       "version": "2.22.1",
       "from": "moment@>=2.10.6 <3.0.0",
       "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.1.tgz",
-      "dev": true,
       "optional": true
     },
     "mongojs": {
@@ -2988,14 +2994,14 @@
       "resolved": "https://registry.npmjs.org/nise/-/nise-1.3.3.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"
+      "version": "2.6.0",
+      "from": "node-fetch@>=2.3.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.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"
+      "version": "0.8.4",
+      "from": "node-forge@>=0.8.0 <0.9.0",
+      "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.8.4.tgz"
     },
     "nodemon": {
       "version": "1.17.4",
@@ -3144,9 +3150,9 @@
       "dev": true
     },
     "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"
+      "version": "2.2.0",
+      "from": "p-limit@>=2.2.0 <3.0.0",
+      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz"
     },
     "p-locate": {
       "version": "2.0.0",
@@ -3169,9 +3175,9 @@
       }
     },
     "p-try": {
-      "version": "2.0.0",
+      "version": "2.2.0",
       "from": "p-try@>=2.0.0 <3.0.0",
-      "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz"
+      "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz"
     },
     "package-json": {
       "version": "4.0.1",
@@ -3205,9 +3211,9 @@
       "dev": true
     },
     "parse-ms": {
-      "version": "2.0.0",
+      "version": "2.1.0",
       "from": "parse-ms@>=2.0.0 <3.0.0",
-      "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.0.0.tgz"
+      "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz"
     },
     "pascalcase": {
       "version": "0.1.1",
@@ -3655,9 +3661,9 @@
       "dev": true
     },
     "prom-client": {
-      "version": "11.2.1",
+      "version": "11.5.1",
       "from": "prom-client@>=11.1.3 <12.0.0",
-      "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-11.2.1.tgz"
+      "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-11.5.1.tgz"
     },
     "prop-types": {
       "version": "15.7.2",
@@ -3668,7 +3674,14 @@
     "protobufjs": {
       "version": "6.8.8",
       "from": "protobufjs@>=6.8.6 <6.9.0",
-      "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.8.8.tgz"
+      "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.8.8.tgz",
+      "dependencies": {
+        "@types/node": {
+          "version": "10.14.9",
+          "from": "@types/node@>=10.1.0 <11.0.0",
+          "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.9.tgz"
+        }
+      }
     },
     "pseudomap": {
       "version": "1.0.2",
@@ -3677,9 +3690,9 @@
       "dev": true
     },
     "psl": {
-      "version": "1.1.31",
+      "version": "1.1.32",
       "from": "psl@>=1.1.24 <2.0.0",
-      "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz"
+      "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.32.tgz"
     },
     "pstree.remy": {
       "version": "1.1.0",
@@ -3724,9 +3737,9 @@
       "dev": true
     },
     "raven": {
-      "version": "1.2.1",
-      "from": "raven@>=1.1.3 <2.0.0",
-      "resolved": "https://registry.npmjs.org/raven/-/raven-1.2.1.tgz"
+      "version": "1.1.3",
+      "from": "raven@1.1.3",
+      "resolved": "https://registry.npmjs.org/raven/-/raven-1.1.3.tgz"
     },
     "rc": {
       "version": "1.2.7",
@@ -4142,9 +4155,21 @@
       "dev": true
     },
     "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"
+      "version": "4.0.0",
+      "from": "require-in-the-middle@>=4.0.0 <5.0.0",
+      "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-4.0.0.tgz",
+      "dependencies": {
+        "debug": {
+          "version": "4.1.1",
+          "from": "debug@>=4.1.1 <5.0.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz"
+        },
+        "ms": {
+          "version": "2.1.2",
+          "from": "ms@>=2.1.1 <3.0.0",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
+        }
+      }
     },
     "require-like": {
       "version": "0.1.2",
@@ -4587,11 +4612,6 @@
       "from": "supports-color@>=5.1.0 <6.0.0",
       "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz"
     },
-    "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"
-    },
     "table": {
       "version": "5.2.3",
       "from": "table@>=5.2.3 <6.0.0",

+ 5 - 3
services/chat/package.json

@@ -13,13 +13,15 @@
     "nodemon": "nodemon --config nodemon.json",
     "test:acceptance:_run": "mocha --recursive --reporter spec --timeout 15000 --exit $@ test/acceptance/js",
     "test:unit:_run": "mocha --recursive --reporter spec $@ test/unit/js",
-    "lint": "node_modules/.bin/eslint ."
+    "lint": "node_modules/.bin/eslint .",
+    "format": "node_modules/.bin/prettier-eslint '**/*.js' --list-different",
+    "format:fix": "node_modules/.bin/prettier-eslint '**/*.js' --write"
   },
   "dependencies": {
     "async": "0.2.9",
     "express": "3.3.1",
-    "logger-sharelatex": "^1.6.0",
-    "metrics-sharelatex": "^2.1.1",
+    "logger-sharelatex": "^1.7.0",
+    "metrics-sharelatex": "^2.2.0",
     "mongojs": "2.4.0",
     "redis": "~0.10.1",
     "request": "^2.79.0",