Просмотр исходного кода

Merge pull request #96 from overleaf/jpa-dependencies-cleanup

[misc] dependencies cleanup
Simon Detheridge 6 лет назад
Родитель
Сommit
b5e4345855

+ 0 - 1
services/filestore/README.md

@@ -10,7 +10,6 @@ filestore acts as a proxy between the CLSIs and (currently) Amazon S3 storage, p
 * `/project/:project_id/public/:public_file_id`
 * `/project/:project_id/public/:public_file_id`
 * `/project/:project_id/size`
 * `/project/:project_id/size`
 * `/bucket/:bucket/key/*`
 * `/bucket/:bucket/key/*`
-* `/heapdump`
 * `/shutdown`
 * `/shutdown`
 * `/status` - returns `filestore sharelatex up` or `server is being shut down` (HTTP 500)
 * `/status` - returns `filestore sharelatex up` or `server is being shut down` (HTTP 500)
 * `/health_check` 
 * `/health_check` 

+ 0 - 12
services/filestore/app.js

@@ -122,18 +122,6 @@ app.get(
   fileController.getFile
   fileController.getFile
 )
 )
 
 
-app.get('/heapdump', (req, res, next) =>
-  require('heapdump').writeSnapshot(
-    '/tmp/' + Date.now() + '.filestore.heapsnapshot',
-    (err, filename) => {
-      if (err) {
-        return next(err)
-      }
-      res.send(filename)
-    }
-  )
-)
-
 app.get('/status', function(req, res) {
 app.get('/status', function(req, res) {
   res.send('filestore sharelatex up')
   res.send('filestore sharelatex up')
 })
 })

+ 2 - 2
services/filestore/app/js/HealthCheckController.js

@@ -1,4 +1,4 @@
-const fs = require('fs-extra')
+const fs = require('fs')
 const path = require('path')
 const path = require('path')
 const Settings = require('settings-sharelatex')
 const Settings = require('settings-sharelatex')
 const streamBuffers = require('stream-buffers')
 const streamBuffers = require('stream-buffers')
@@ -6,7 +6,7 @@ const { promisify } = require('util')
 const Stream = require('stream')
 const Stream = require('stream')
 
 
 const pipeline = promisify(Stream.pipeline)
 const pipeline = promisify(Stream.pipeline)
-const fsCopy = promisify(fs.copy)
+const fsCopy = promisify(fs.copyFile)
 const fsUnlink = promisify(fs.unlink)
 const fsUnlink = promisify(fs.unlink)
 
 
 const { HealthCheckError } = require('./Errors')
 const { HealthCheckError } = require('./Errors')

+ 2 - 2
services/filestore/app/js/SafeExec.js

@@ -1,4 +1,4 @@
-const _ = require('underscore')
+const lodashOnce = require('lodash.once')
 const childProcess = require('child_process')
 const childProcess = require('child_process')
 const Settings = require('settings-sharelatex')
 const Settings = require('settings-sharelatex')
 const { ConversionsDisabledError, FailedCommandError } = require('./Errors')
 const { ConversionsDisabledError, FailedCommandError } = require('./Errors')
@@ -28,7 +28,7 @@ function safeExec(command, options, callback) {
 
 
   let killTimer
   let killTimer
 
 
-  const cleanup = _.once(function(err) {
+  const cleanup = lodashOnce(function(err) {
     if (killTimer) {
     if (killTimer) {
       clearTimeout(killTimer)
       clearTimeout(killTimer)
     }
     }

+ 25 - 60
services/filestore/package-lock.json

@@ -1404,7 +1404,8 @@
     "browser-stdout": {
     "browser-stdout": {
       "version": "1.3.1",
       "version": "1.3.1",
       "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
       "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
-      "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw=="
+      "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
+      "dev": true
     },
     },
     "buffer": {
     "buffer": {
       "version": "4.9.1",
       "version": "4.9.1",
@@ -1598,7 +1599,8 @@
     "commander": {
     "commander": {
       "version": "2.15.1",
       "version": "2.15.1",
       "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
       "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
-      "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag=="
+      "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==",
+      "dev": true
     },
     },
     "common-tags": {
     "common-tags": {
       "version": "1.8.0",
       "version": "1.8.0",
@@ -1760,7 +1762,8 @@
     "diff": {
     "diff": {
       "version": "3.5.0",
       "version": "3.5.0",
       "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
       "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
-      "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA=="
+      "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
+      "dev": true
     },
     },
     "disrequire": {
     "disrequire": {
       "version": "1.1.0",
       "version": "1.1.0",
@@ -1925,7 +1928,8 @@
     "escape-string-regexp": {
     "escape-string-regexp": {
       "version": "1.0.5",
       "version": "1.0.5",
       "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
       "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-      "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="
+      "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+      "dev": true
     },
     },
     "eslint": {
     "eslint": {
       "version": "6.8.0",
       "version": "6.8.0",
@@ -2483,16 +2487,6 @@
       "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
       "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
       "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
       "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
     },
     },
-    "fs-extra": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
-      "integrity": "sha512-VerQV6vEKuhDWD2HGOybV6v5I73syoc/cXAbKlgTC7M/oFVEtklWlp9QH2Ijw3IaWDOQcMkldSPa7zXy79Z/UQ==",
-      "requires": {
-        "graceful-fs": "^4.1.2",
-        "jsonfile": "^2.1.0",
-        "klaw": "^1.0.0"
-      }
-    },
     "fs.realpath": {
     "fs.realpath": {
       "version": "1.0.0",
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
       "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@@ -2557,11 +2551,6 @@
         "assert-plus": "^1.0.0"
         "assert-plus": "^1.0.0"
       }
       }
     },
     },
-    "gettemporaryfilepath": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npmjs.org/gettemporaryfilepath/-/gettemporaryfilepath-0.0.1.tgz",
-      "integrity": "sha512-7avwQWP8MP42u7mtc+KjCRuUE3nafRJPuGaZaySD9NN1KEbfVTfSAywP4KOkK8gaxhdOxx11ZTWH28DwjAF70Q=="
-    },
     "glob": {
     "glob": {
       "version": "7.1.6",
       "version": "7.1.6",
       "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
       "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
@@ -2639,12 +2628,14 @@
     "graceful-fs": {
     "graceful-fs": {
       "version": "4.2.3",
       "version": "4.2.3",
       "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
       "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
-      "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
+      "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+      "dev": true
     },
     },
     "growl": {
     "growl": {
       "version": "1.10.5",
       "version": "1.10.5",
       "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
       "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
-      "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA=="
+      "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
+      "dev": true
     },
     },
     "gtoken": {
     "gtoken": {
       "version": "4.1.4",
       "version": "4.1.4",
@@ -2707,7 +2698,8 @@
     "has-flag": {
     "has-flag": {
       "version": "3.0.0",
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
       "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-      "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
+      "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+      "dev": true
     },
     },
     "has-symbols": {
     "has-symbols": {
       "version": "1.0.1",
       "version": "1.0.1",
@@ -2718,15 +2710,8 @@
     "he": {
     "he": {
       "version": "1.1.1",
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
       "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
-      "integrity": "sha512-z/GDPjlRMNOa2XJiB4em8wJpuuBfrFOlYKTZxtpkdr1uPdibHI8rYA3MY0KDObpVyaes0e/aunid/t88ZI2EKA=="
-    },
-    "heapdump": {
-      "version": "0.3.15",
-      "resolved": "https://registry.npmjs.org/heapdump/-/heapdump-0.3.15.tgz",
-      "integrity": "sha512-n8aSFscI9r3gfhOcAECAtXFaQ1uy4QSke6bnaL+iymYZ/dWs9cqDqHM+rALfsHUwukUbxsdlECZ0pKmJdQ/4OA==",
-      "requires": {
-        "nan": "^2.13.2"
-      }
+      "integrity": "sha512-z/GDPjlRMNOa2XJiB4em8wJpuuBfrFOlYKTZxtpkdr1uPdibHI8rYA3MY0KDObpVyaes0e/aunid/t88ZI2EKA==",
+      "dev": true
     },
     },
     "hex2dec": {
     "hex2dec": {
       "version": "1.1.2",
       "version": "1.1.2",
@@ -3067,14 +3052,6 @@
       "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
       "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
       "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
       "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
     },
     },
-    "jsonfile": {
-      "version": "2.4.0",
-      "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
-      "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==",
-      "requires": {
-        "graceful-fs": "^4.1.6"
-      }
-    },
     "jsprim": {
     "jsprim": {
       "version": "1.4.1",
       "version": "1.4.1",
       "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
       "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
@@ -3111,14 +3088,6 @@
         "safe-buffer": "^5.0.1"
         "safe-buffer": "^5.0.1"
       }
       }
     },
     },
-    "klaw": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
-      "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==",
-      "requires": {
-        "graceful-fs": "^4.1.9"
-      }
-    },
     "levn": {
     "levn": {
       "version": "0.3.0",
       "version": "0.3.0",
       "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
       "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
@@ -3197,6 +3166,11 @@
       "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
       "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
       "dev": true
       "dev": true
     },
     },
+    "lodash.once": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
+      "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w="
+    },
     "lodash.pickby": {
     "lodash.pickby": {
       "version": "4.6.0",
       "version": "4.6.0",
       "resolved": "https://registry.npmjs.org/lodash.pickby/-/lodash.pickby-4.6.0.tgz",
       "resolved": "https://registry.npmjs.org/lodash.pickby/-/lodash.pickby-4.6.0.tgz",
@@ -3493,6 +3467,7 @@
       "version": "5.2.0",
       "version": "5.2.0",
       "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz",
       "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz",
       "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==",
       "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==",
+      "dev": true,
       "requires": {
       "requires": {
         "browser-stdout": "1.3.1",
         "browser-stdout": "1.3.1",
         "commander": "2.15.1",
         "commander": "2.15.1",
@@ -3511,6 +3486,7 @@
           "version": "3.1.0",
           "version": "3.1.0",
           "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
           "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
           "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
           "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+          "dev": true,
           "requires": {
           "requires": {
             "ms": "2.0.0"
             "ms": "2.0.0"
           }
           }
@@ -3519,6 +3495,7 @@
           "version": "7.1.2",
           "version": "7.1.2",
           "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
           "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
           "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
           "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+          "dev": true,
           "requires": {
           "requires": {
             "fs.realpath": "^1.0.0",
             "fs.realpath": "^1.0.0",
             "inflight": "^1.0.4",
             "inflight": "^1.0.4",
@@ -3922,14 +3899,6 @@
         "find-up": "^2.1.0"
         "find-up": "^2.1.0"
       }
       }
     },
     },
-    "pngcrush": {
-      "version": "0.0.3",
-      "resolved": "https://registry.npmjs.org/pngcrush/-/pngcrush-0.0.3.tgz",
-      "integrity": "sha512-RVaPWGv0PUUzGeSQJHH78rw2ks8NxKbFn8uENFM+/3bfsUs39MaFDG+eul5902gH97zZLQ0zd0h2yb0YBaMKDw==",
-      "requires": {
-        "gettemporaryfilepath": "=0.0.1"
-      }
-    },
     "prelude-ls": {
     "prelude-ls": {
       "version": "1.1.2",
       "version": "1.1.2",
       "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
       "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
@@ -5300,6 +5269,7 @@
       "version": "5.4.0",
       "version": "5.4.0",
       "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
       "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
       "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
       "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
+      "dev": true,
       "requires": {
       "requires": {
         "has-flag": "^3.0.0"
         "has-flag": "^3.0.0"
       }
       }
@@ -5498,11 +5468,6 @@
       "integrity": "sha512-EgOVgL/4xfVrCMbhYKUQTdF37SQn4Iw73H5BgCrF1Abdun7Kwy/QZsE/ssAy0y4LxBbvua3PIbFsbRczWWnDdQ==",
       "integrity": "sha512-EgOVgL/4xfVrCMbhYKUQTdF37SQn4Iw73H5BgCrF1Abdun7Kwy/QZsE/ssAy0y4LxBbvua3PIbFsbRczWWnDdQ==",
       "dev": true
       "dev": true
     },
     },
-    "underscore": {
-      "version": "1.5.2",
-      "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.5.2.tgz",
-      "integrity": "sha512-yejOFsRnTJs0N9CK5Apzf6maDO2djxGoLLrlZlvGs2o9ZQuhIhDL18rtFyy4FBIbOkzA6+4hDgXbgz5EvDQCXQ=="
-    },
     "unpipe": {
     "unpipe": {
       "version": "1.0.0",
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
       "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",

+ 3 - 6
services/filestore/package.json

@@ -24,22 +24,18 @@
     "aws-sdk": "^2.628.0",
     "aws-sdk": "^2.628.0",
     "body-parser": "^1.2.0",
     "body-parser": "^1.2.0",
     "express": "^4.2.0",
     "express": "^4.2.0",
-    "fs-extra": "^1.0.0",
     "glob": "^7.1.6",
     "glob": "^7.1.6",
-    "heapdump": "^0.3.2",
+    "lodash.once": "^4.1.1",
     "logger-sharelatex": "^1.7.0",
     "logger-sharelatex": "^1.7.0",
     "metrics-sharelatex": "^2.2.0",
     "metrics-sharelatex": "^2.2.0",
-    "mocha": "5.2.0",
     "node-uuid": "~1.4.1",
     "node-uuid": "~1.4.1",
-    "pngcrush": "0.0.3",
     "range-parser": "^1.0.2",
     "range-parser": "^1.0.2",
     "request": "^2.88.0",
     "request": "^2.88.0",
     "request-promise-native": "^1.0.8",
     "request-promise-native": "^1.0.8",
     "rimraf": "2.2.8",
     "rimraf": "2.2.8",
     "settings-sharelatex": "^1.1.0",
     "settings-sharelatex": "^1.1.0",
     "stream-buffers": "~0.2.5",
     "stream-buffers": "~0.2.5",
-    "stream-meter": "^1.0.4",
-    "underscore": "~1.5.2"
+    "stream-meter": "^1.0.4"
   },
   },
   "devDependencies": {
   "devDependencies": {
     "babel-eslint": "^10.0.3",
     "babel-eslint": "^10.0.3",
@@ -58,6 +54,7 @@
     "eslint-plugin-prettier": "^3.1.2",
     "eslint-plugin-prettier": "^3.1.2",
     "eslint-plugin-promise": "^4.2.1",
     "eslint-plugin-promise": "^4.2.1",
     "eslint-plugin-standard": "^4.0.1",
     "eslint-plugin-standard": "^4.0.1",
+    "mocha": "5.2.0",
     "prettier-eslint": "^9.0.1",
     "prettier-eslint": "^9.0.1",
     "prettier-eslint-cli": "^5.0.0",
     "prettier-eslint-cli": "^5.0.0",
     "sandboxed-module": "2.0.3",
     "sandboxed-module": "2.0.3",