From 4a2bdffd400d65e592abf8a9427a938c65d3ea10 Mon Sep 17 00:00:00 2001
From: Diego Sampaio <chinello@gmail.com>
Date: Thu, 7 May 2020 17:06:40 -0300
Subject: [PATCH] Meteor update to version 1.10.2 (#17533)

* meteor update

* Use change-case from NPM

* Update @babel/runtime

* Flow annotations aren't supported anymore

* Remove unused packages

* Update less package

* Update package-lock
---
 .meteor/packages               |  38 ++---
 .meteor/release                |   2 +-
 .meteor/versions               |  63 ++++---
 app/oembed/server/providers.js |   4 +-
 app/oembed/server/server.js    |  12 +-
 package-lock.json              | 300 +++++++++++++++++++++++++++++++--
 package.json                   |   3 +-
 7 files changed, 346 insertions(+), 76 deletions(-)

diff --git a/.meteor/packages b/.meteor/packages
index 304f5864b70..7447d19c969 100644
--- a/.meteor/packages
+++ b/.meteor/packages
@@ -6,18 +6,18 @@
 rocketchat:mongo-config
 
 accounts-facebook@1.3.2
-accounts-github@1.4.2
+accounts-github@1.4.3
 accounts-google@1.3.3
 accounts-meteor-developer@1.4.2
-accounts-password@1.5.2
+accounts-password@1.6.0
 accounts-twitter@1.4.2
 blaze-html-templates
 check@1.3.1
 ddp-rate-limiter@1.0.7
 ddp-common@1.4.0
-dynamic-import@0.5.1
-ecmascript@0.14.2
-typescript@3.7.5
+dynamic-import@0.5.2
+ecmascript@0.14.3
+typescript@3.7.6
 ejson@1.1.1
 email@1.2.3
 fastclick@1.0.13
@@ -25,16 +25,16 @@ http@1.4.2
 jquery@1.11.10
 logging@1.1.20
 meteor-base@1.4.0
-mobile-experience@1.0.5
-mongo@1.8.0
-random@1.1.0
+mobile-experience@1.1.0
+mongo@1.10.0
+random@1.2.0
 rate-limit@1.0.9
 reactive-dict@1.3.0
 reactive-var@1.0.11
 reload@1.3.0
 service-configuration@1.0.11
 session@1.2.0
-shell-server@0.4.0
+shell-server@0.5.0
 spacebars
 standard-minifier-js@2.6.0
 tracker@1.2.0
@@ -44,9 +44,6 @@ rocketchat:livechat
 rocketchat:streamer
 rocketchat:version
 
-konecty:change-case
-konecty:delayed-task
-konecty:mongo-counter
 konecty:multiple-instances-status
 konecty:user-presence
 
@@ -57,7 +54,6 @@ jalik:ufs-gridfs@1.0.2
 jparker:gravatar
 kadira:blaze-layout
 kadira:flow-router
-keepnox:perfect-scrollbar
 mizzao:timesync
 mrt:reactive-store
 mystor:device-detection
@@ -74,24 +70,24 @@ littledata:synced-cron
 
 edgee:slingshot
 jalik:ufs-local@1.0.2
-accounts-base@1.5.0
-accounts-oauth@1.1.16
+accounts-base@1.6.0
+accounts-oauth@1.2.0
 autoupdate@1.6.0
-babel-compiler@7.5.2
-google-oauth@1.2.6
+babel-compiler@7.5.3
+google-oauth@1.3.0
 htmljs
 less
 matb33:collection-hooks
 meteorhacks:inject-initial
-oauth@1.2.8
-oauth2@1.2.1
+oauth@1.3.0
+oauth2@1.3.0
 routepolicy@1.1.0
 sha@1.0.9
 templating
-webapp@1.8.0
+webapp@1.9.1
 webapp-hashing@1.0.9
 rocketchat:oauth2-server
 rocketchat:i18n
 rocketchat:postcss
 dandv:caret-position
-facts-base
+facts-base@1.0.1
diff --git a/.meteor/release b/.meteor/release
index 8558e149237..3ea26528c09 100644
--- a/.meteor/release
+++ b/.meteor/release
@@ -1 +1 @@
-METEOR@1.9.2
+METEOR@1.10.2
diff --git a/.meteor/versions b/.meteor/versions
index cb9a15cf4f2..f7e78d3598b 100644
--- a/.meteor/versions
+++ b/.meteor/versions
@@ -1,23 +1,23 @@
-accounts-base@1.5.0
+accounts-base@1.6.0
 accounts-facebook@1.3.2
 accounts-github@1.4.3
 accounts-google@1.3.3
 accounts-meteor-developer@1.4.2
-accounts-oauth@1.1.16
-accounts-password@1.5.3
+accounts-oauth@1.2.0
+accounts-password@1.6.0
 accounts-twitter@1.4.2
 aldeed:simple-schema@1.5.4
 allow-deny@1.1.0
 autoupdate@1.6.0
-babel-compiler@7.5.2
+babel-compiler@7.5.3
 babel-runtime@1.5.0
 base64@1.0.12
 binary-heap@1.0.11
 blaze@2.3.4
 blaze-html-templates@1.1.2
 blaze-tools@1.0.10
-boilerplate-generator@1.6.0
-caching-compiler@1.2.1
+boilerplate-generator@1.7.0
+caching-compiler@1.2.2
 caching-html-compiler@1.1.3
 callback-hook@1.3.0
 cfs:http-methods@0.0.32
@@ -33,8 +33,8 @@ deepwell:bootstrap-datepicker2@1.3.0
 deps@1.0.12
 diff-sequence@1.1.1
 dispatch:run-as-user@1.1.1
-dynamic-import@0.5.1
-ecmascript@0.14.2
+dynamic-import@0.5.2
+ecmascript@0.14.3
 ecmascript-runtime@0.7.0
 ecmascript-runtime-client@0.10.0
 ecmascript-runtime-server@0.9.0
@@ -42,19 +42,19 @@ edgee:slingshot@0.7.1
 ejson@1.1.1
 email@1.2.3
 es5-shim@4.8.0
-facebook-oauth@1.6.0
+facebook-oauth@1.7.0
 facts-base@1.0.1
 fastclick@1.0.13
 fetch@0.1.1
 geojson-utils@1.0.10
 github-oauth@1.2.3
-google-oauth@1.2.6
+google-oauth@1.3.0
 hot-code-push@1.0.4
 html-tools@1.0.11
 htmljs@1.0.11
 http@1.4.2
 id-map@1.1.0
-inter-process-messaging@0.1.0
+inter-process-messaging@0.1.1
 jalik:ufs@1.0.2
 jalik:ufs-gridfs@1.0.2
 jalik:ufs-local@1.0.2
@@ -64,14 +64,10 @@ jparker:gravatar@0.5.1
 jquery@1.11.11
 kadira:blaze-layout@2.3.0
 kadira:flow-router@2.12.1
-keepnox:perfect-scrollbar@0.6.8
-konecty:change-case@2.3.0
-konecty:delayed-task@1.0.0
-konecty:mongo-counter@0.0.5_3
 konecty:multiple-instances-status@1.1.0
 konecty:user-presence@2.6.3
-launch-screen@1.1.1
-less@2.8.0
+launch-screen@1.2.0
+less@3.0.1
 littledata:synced-cron@1.5.1
 livedata@1.0.18
 localstorage@1.2.0
@@ -85,37 +81,36 @@ meteorhacks:inject-initial@1.0.4
 meteorspark:util@0.2.0
 minifier-css@1.5.0
 minifier-js@2.6.0
-minimongo@1.4.5
+minimongo@1.6.0
 mizzao:timesync@0.3.4
-mobile-experience@1.0.5
-mobile-status-bar@1.0.14
+mobile-experience@1.1.0
+mobile-status-bar@1.1.0
 modern-browsers@0.1.5
 modules@0.15.0
 modules-runtime@0.12.0
-mongo@1.8.1
+mongo@1.10.0
 mongo-decimal@0.1.1
 mongo-dev-server@1.1.0
 mongo-id@1.0.7
-mongo-livedata@1.0.12
 mrt:reactive-store@0.0.1
 mystor:device-detection@0.2.0
 nimble:restivus@0.8.12
 nooitaf:colors@1.1.2_1
 npm-bcrypt@0.9.3
-npm-mongo@3.3.0
-oauth@1.2.8
-oauth1@1.2.2
-oauth2@1.2.1
+npm-mongo@3.7.0
+oauth@1.3.0
+oauth1@1.3.0
+oauth2@1.3.0
 observe-sequence@1.0.16
 ordered-dict@1.1.0
-ostrio:cookies@2.5.0
+ostrio:cookies@2.6.0
 pauli:accounts-linkedin@5.0.0
 pauli:linkedin-oauth@5.0.0
 promise@0.11.2
 raix:eventemitter@0.1.3
 raix:handlebar-helpers@0.2.5
 raix:ui-dropped-event@0.0.7
-random@1.1.0
+random@1.2.0
 rate-limit@1.0.9
 reactive-dict@1.3.0
 reactive-var@1.0.11
@@ -133,12 +128,12 @@ routepolicy@1.1.0
 service-configuration@1.0.11
 session@1.2.0
 sha@1.0.9
-shell-server@0.4.0
+shell-server@0.5.0
 simple:json-routes@2.1.0
-socket-stream-client@0.2.3
+socket-stream-client@0.3.0
 spacebars@1.0.15
 spacebars-compiler@1.1.3
-srp@1.0.12
+srp@1.1.0
 standard-minifier-js@2.6.0
 templating@1.3.2
 templating-compiler@1.3.3
@@ -146,9 +141,9 @@ templating-runtime@1.3.2
 templating-tools@1.1.2
 tracker@1.2.0
 twitter-oauth@1.2.0
-typescript@3.7.5
+typescript@3.7.6
 ui@1.0.13
 underscore@1.0.10
-url@1.2.0
-webapp@1.8.2
+url@1.3.0
+webapp@1.9.1
 webapp-hashing@1.0.9
diff --git a/app/oembed/server/providers.js b/app/oembed/server/providers.js
index 9ae9dc24c6b..8a2433834ee 100644
--- a/app/oembed/server/providers.js
+++ b/app/oembed/server/providers.js
@@ -1,7 +1,7 @@
 import URL from 'url';
 import QueryString from 'querystring';
 
-import { changeCase } from 'meteor/konecty:change-case';
+import { camelCase } from 'change-case';
 import _ from 'underscore';
 
 import { callbacks } from '../../callbacks';
@@ -106,7 +106,7 @@ callbacks.add('oembed:afterParseContent', function(data) {
 						const metas = JSON.parse(data.content.body);
 						_.each(metas, function(value, key) {
 							if (_.isString(value)) {
-								data.meta[changeCase.camelCase(`oembed_${ key }`)] = value;
+								data.meta[camelCase(`oembed_${ key }`)] = value;
 							}
 						});
 						data.meta.oembedUrl = url;
diff --git a/app/oembed/server/server.js b/app/oembed/server/server.js
index 99023e79a37..9feaabbd7e6 100644
--- a/app/oembed/server/server.js
+++ b/app/oembed/server/server.js
@@ -3,7 +3,7 @@ import querystring from 'querystring';
 
 import { Meteor } from 'meteor/meteor';
 import { HTTPInternals } from 'meteor/http';
-import { changeCase } from 'meteor/konecty:change-case';
+import { camelCase } from 'change-case';
 import _ from 'underscore';
 import iconv from 'iconv-lite';
 import ipRangeCheck from 'ip-range-check';
@@ -176,16 +176,16 @@ OEmbed.getUrlMeta = function(url, withFragment) {
 			return escapeMeta('pageTitle', title);
 		});
 		content.body.replace(/<meta[^>]*(?:name|property)=[']([^']*)['][^>]*\scontent=[']([^']*)['][^>]*>/gmi, function(meta, name, value) {
-			return escapeMeta(changeCase.camelCase(name), value);
+			return escapeMeta(camelCase(name), value);
 		});
 		content.body.replace(/<meta[^>]*(?:name|property)=["]([^"]*)["][^>]*\scontent=["]([^"]*)["][^>]*>/gmi, function(meta, name, value) {
-			return escapeMeta(changeCase.camelCase(name), value);
+			return escapeMeta(camelCase(name), value);
 		});
 		content.body.replace(/<meta[^>]*\scontent=[']([^']*)['][^>]*(?:name|property)=[']([^']*)['][^>]*>/gmi, function(meta, value, name) {
-			return escapeMeta(changeCase.camelCase(name), value);
+			return escapeMeta(camelCase(name), value);
 		});
 		content.body.replace(/<meta[^>]*\scontent=["]([^"]*)["][^>]*(?:name|property)=["]([^"]*)["][^>]*>/gmi, function(meta, value, name) {
-			return escapeMeta(changeCase.camelCase(name), value);
+			return escapeMeta(camelCase(name), value);
 		});
 		if (metas.fragment === '!' && (withFragment == null)) {
 			return OEmbed.getUrlMeta(url, true);
@@ -199,7 +199,7 @@ OEmbed.getUrlMeta = function(url, withFragment) {
 		headers = {};
 		const headerObj = content.headers;
 		Object.keys(headerObj).forEach((header) => {
-			headers[changeCase.camelCase(header)] = headerObj[header];
+			headers[camelCase(header)] = headerObj[header];
 		});
 	}
 	if (content && content.statusCode !== 200) {
diff --git a/package-lock.json b/package-lock.json
index e5dccfabcb4..811d8dc47f2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2053,11 +2053,18 @@
 			}
 		},
 		"@babel/runtime": {
-			"version": "7.8.4",
-			"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.4.tgz",
-			"integrity": "sha512-neAp3zt80trRVBI1x0azq6c57aNBqYZH8KhMm3TaB7wEI5Q4A2SHfBHE8w9gOhI/lrqxtEbXZgQIrHP+wvSGwQ==",
+			"version": "7.9.6",
+			"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz",
+			"integrity": "sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==",
 			"requires": {
-				"regenerator-runtime": "^0.13.2"
+				"regenerator-runtime": "^0.13.4"
+			},
+			"dependencies": {
+				"regenerator-runtime": {
+					"version": "0.13.5",
+					"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
+					"integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA=="
+				}
 			}
 		},
 		"@babel/template": {
@@ -10304,6 +10311,40 @@
 				"nan": "^2.1.0"
 			}
 		},
+		"capital-case": {
+			"version": "1.0.3",
+			"resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.3.tgz",
+			"integrity": "sha512-OlUSJpUr7SY0uZFOxcwnDOU7/MpHlKTZx2mqnDYQFrDudXLFm0JJ9wr/l4csB+rh2Ug0OPuoSO53PqiZBqno9A==",
+			"requires": {
+				"no-case": "^3.0.3",
+				"tslib": "^1.10.0",
+				"upper-case-first": "^2.0.1"
+			},
+			"dependencies": {
+				"lower-case": {
+					"version": "2.0.1",
+					"resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz",
+					"integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==",
+					"requires": {
+						"tslib": "^1.10.0"
+					}
+				},
+				"no-case": {
+					"version": "3.0.3",
+					"resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz",
+					"integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==",
+					"requires": {
+						"lower-case": "^2.0.1",
+						"tslib": "^1.10.0"
+					}
+				},
+				"tslib": {
+					"version": "1.11.1",
+					"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz",
+					"integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA=="
+				}
+			}
+		},
 		"cas": {
 			"version": "https://github.com/kcbanner/node-cas/tarball/fcd27dad333223b3b75a048bce27973fb3ca0f62",
 			"integrity": "sha512-CyDs8nQAr4Asy6+H2oai66tomXC/Q6B/GF2zUYNww7jfT+xBvIhkiUGctzAy5bdq7cVxBZv31hWHz7+fxevElA==",
@@ -10463,6 +10504,67 @@
 				"supports-color": "^2.0.0"
 			}
 		},
+		"change-case": {
+			"version": "4.1.1",
+			"resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.1.tgz",
+			"integrity": "sha512-qRlUWn/hXnX1R1LBDF/RelJLiqNjKjUqlmuBVSEIyye8kq49CXqkZWKmi8XeUAdDXWFOcGLUMZ+aHn3Q5lzUXw==",
+			"requires": {
+				"camel-case": "^4.1.1",
+				"capital-case": "^1.0.3",
+				"constant-case": "^3.0.3",
+				"dot-case": "^3.0.3",
+				"header-case": "^2.0.3",
+				"no-case": "^3.0.3",
+				"param-case": "^3.0.3",
+				"pascal-case": "^3.1.1",
+				"path-case": "^3.0.3",
+				"sentence-case": "^3.0.3",
+				"snake-case": "^3.0.3",
+				"tslib": "^1.10.0"
+			},
+			"dependencies": {
+				"camel-case": {
+					"version": "4.1.1",
+					"resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz",
+					"integrity": "sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==",
+					"requires": {
+						"pascal-case": "^3.1.1",
+						"tslib": "^1.10.0"
+					}
+				},
+				"lower-case": {
+					"version": "2.0.1",
+					"resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz",
+					"integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==",
+					"requires": {
+						"tslib": "^1.10.0"
+					}
+				},
+				"no-case": {
+					"version": "3.0.3",
+					"resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz",
+					"integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==",
+					"requires": {
+						"lower-case": "^2.0.1",
+						"tslib": "^1.10.0"
+					}
+				},
+				"param-case": {
+					"version": "3.0.3",
+					"resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.3.tgz",
+					"integrity": "sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA==",
+					"requires": {
+						"dot-case": "^3.0.3",
+						"tslib": "^1.10.0"
+					}
+				},
+				"tslib": {
+					"version": "1.11.1",
+					"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz",
+					"integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA=="
+				}
+			}
+		},
 		"change-emitter": {
 			"version": "0.1.6",
 			"resolved": "https://registry.npmjs.org/change-emitter/-/change-emitter-0.1.6.tgz",
@@ -11099,6 +11201,48 @@
 			"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
 			"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
 		},
+		"constant-case": {
+			"version": "3.0.3",
+			"resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.3.tgz",
+			"integrity": "sha512-FXtsSnnrFYpzDmvwDGQW+l8XK3GV1coLyBN0eBz16ZUzGaZcT2ANVCJmLeuw2GQgxKHQIe9e0w2dzkSfaRlUmA==",
+			"requires": {
+				"no-case": "^3.0.3",
+				"tslib": "^1.10.0",
+				"upper-case": "^2.0.1"
+			},
+			"dependencies": {
+				"lower-case": {
+					"version": "2.0.1",
+					"resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz",
+					"integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==",
+					"requires": {
+						"tslib": "^1.10.0"
+					}
+				},
+				"no-case": {
+					"version": "3.0.3",
+					"resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz",
+					"integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==",
+					"requires": {
+						"lower-case": "^2.0.1",
+						"tslib": "^1.10.0"
+					}
+				},
+				"tslib": {
+					"version": "1.11.1",
+					"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz",
+					"integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA=="
+				},
+				"upper-case": {
+					"version": "2.0.1",
+					"resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.1.tgz",
+					"integrity": "sha512-laAsbea9SY5osxrv7S99vH9xAaJKrw5Qpdh4ENRLcaxipjKsiaBwiAsxfa8X5mObKNTQPsupSq0J/VIxsSJe3A==",
+					"requires": {
+						"tslib": "^1.10.0"
+					}
+				}
+			}
+		},
 		"constants-browserify": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
@@ -13366,17 +13510,32 @@
 			"version": "3.0.3",
 			"resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz",
 			"integrity": "sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA==",
-			"dev": true,
 			"requires": {
 				"no-case": "^3.0.3",
 				"tslib": "^1.10.0"
 			},
 			"dependencies": {
+				"lower-case": {
+					"version": "2.0.1",
+					"resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz",
+					"integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==",
+					"requires": {
+						"tslib": "^1.10.0"
+					}
+				},
+				"no-case": {
+					"version": "3.0.3",
+					"resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz",
+					"integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==",
+					"requires": {
+						"lower-case": "^2.0.1",
+						"tslib": "^1.10.0"
+					}
+				},
 				"tslib": {
 					"version": "1.11.1",
 					"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz",
-					"integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==",
-					"dev": true
+					"integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA=="
 				}
 			}
 		},
@@ -17630,6 +17789,22 @@
 			"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
 			"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
 		},
+		"header-case": {
+			"version": "2.0.3",
+			"resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.3.tgz",
+			"integrity": "sha512-LChe/V32mnUQnTwTxd3aAlNMk8ia9tjCDb/LjYtoMrdAPApxLB+azejUk5ERZIZdIqvinwv6BAUuFXH/tQPdZA==",
+			"requires": {
+				"capital-case": "^1.0.3",
+				"tslib": "^1.10.0"
+			},
+			"dependencies": {
+				"tslib": {
+					"version": "1.11.1",
+					"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz",
+					"integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA=="
+				}
+			}
+		},
 		"hepburn": {
 			"version": "1.1.1",
 			"resolved": "https://registry.npmjs.org/hepburn/-/hepburn-1.1.1.tgz",
@@ -23831,17 +24006,32 @@
 			"version": "3.1.1",
 			"resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz",
 			"integrity": "sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==",
-			"dev": true,
 			"requires": {
 				"no-case": "^3.0.3",
 				"tslib": "^1.10.0"
 			},
 			"dependencies": {
+				"lower-case": {
+					"version": "2.0.1",
+					"resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz",
+					"integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==",
+					"requires": {
+						"tslib": "^1.10.0"
+					}
+				},
+				"no-case": {
+					"version": "3.0.3",
+					"resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz",
+					"integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==",
+					"requires": {
+						"lower-case": "^2.0.1",
+						"tslib": "^1.10.0"
+					}
+				},
 				"tslib": {
 					"version": "1.11.1",
 					"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz",
-					"integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==",
-					"dev": true
+					"integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA=="
 				}
 			}
 		},
@@ -23857,6 +24047,22 @@
 			"integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=",
 			"dev": true
 		},
+		"path-case": {
+			"version": "3.0.3",
+			"resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.3.tgz",
+			"integrity": "sha512-UMFU6UETFpCNWbIWNczshPrnK/7JAXBP2NYw80ojElbQ2+JYxdqWDBkvvqM93u4u6oLmuJ/tPOf2tM8KtXv4eg==",
+			"requires": {
+				"dot-case": "^3.0.3",
+				"tslib": "^1.10.0"
+			},
+			"dependencies": {
+				"tslib": {
+					"version": "1.11.1",
+					"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz",
+					"integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA=="
+				}
+			}
+		},
 		"path-dirname": {
 			"version": "1.0.2",
 			"resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
@@ -27094,7 +27300,8 @@
 		"regenerator-runtime": {
 			"version": "0.13.3",
 			"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
-			"integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw=="
+			"integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==",
+			"dev": true
 		},
 		"regenerator-transform": {
 			"version": "0.10.1",
@@ -27761,6 +27968,40 @@
 				}
 			}
 		},
+		"sentence-case": {
+			"version": "3.0.3",
+			"resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.3.tgz",
+			"integrity": "sha512-ZPr4dgTcNkEfcGOMFQyDdJrTU9uQO1nb1cjf+nuzb6FxgMDgKddZOM29qEsB7jvsZSMruLRcL2KfM4ypKpa0LA==",
+			"requires": {
+				"no-case": "^3.0.3",
+				"tslib": "^1.10.0",
+				"upper-case-first": "^2.0.1"
+			},
+			"dependencies": {
+				"lower-case": {
+					"version": "2.0.1",
+					"resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz",
+					"integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==",
+					"requires": {
+						"tslib": "^1.10.0"
+					}
+				},
+				"no-case": {
+					"version": "3.0.3",
+					"resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz",
+					"integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==",
+					"requires": {
+						"lower-case": "^2.0.1",
+						"tslib": "^1.10.0"
+					}
+				},
+				"tslib": {
+					"version": "1.11.1",
+					"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz",
+					"integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA=="
+				}
+			}
+		},
 		"serialize-javascript": {
 			"version": "1.6.1",
 			"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.6.1.tgz",
@@ -28178,6 +28419,22 @@
 			"resolved": "https://registry.npmjs.org/slick/-/slick-1.12.2.tgz",
 			"integrity": "sha1-vQSN23TefRymkV+qSldXCzVQwtc="
 		},
+		"snake-case": {
+			"version": "3.0.3",
+			"resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.3.tgz",
+			"integrity": "sha512-WM1sIXEO+rsAHBKjGf/6R1HBBcgbncKS08d2Aqec/mrDSpU80SiOU41hO7ny6DToHSyrlwTYzQBIK1FPSx4Y3Q==",
+			"requires": {
+				"dot-case": "^3.0.3",
+				"tslib": "^1.10.0"
+			},
+			"dependencies": {
+				"tslib": {
+					"version": "1.11.1",
+					"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz",
+					"integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA=="
+				}
+			}
+		},
 		"snakeize": {
 			"version": "0.1.0",
 			"resolved": "https://registry.npmjs.org/snakeize/-/snakeize-0.1.0.tgz",
@@ -30764,6 +31021,27 @@
 			"integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==",
 			"dev": true
 		},
+		"upper-case": {
+			"version": "1.1.3",
+			"resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
+			"integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=",
+			"dev": true
+		},
+		"upper-case-first": {
+			"version": "2.0.1",
+			"resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.1.tgz",
+			"integrity": "sha512-105J8XqQ+9RxW3l9gHZtgve5oaiR9TIwvmZAMAIZWRHe00T21cdvewKORTlOJf/zXW6VukuTshM+HXZNWz7N5w==",
+			"requires": {
+				"tslib": "^1.10.0"
+			},
+			"dependencies": {
+				"tslib": {
+					"version": "1.11.1",
+					"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz",
+					"integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA=="
+				}
+			}
+		},
 		"uri-js": {
 			"version": "4.2.2",
 			"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
diff --git a/package.json b/package.json
index fc15d157f51..723799ef294 100644
--- a/package.json
+++ b/package.json
@@ -116,7 +116,7 @@
 	"dependencies": {
 		"@accounts/mongo": "0.0.12",
 		"@accounts/server": "0.0.18",
-		"@babel/runtime": "^7.7.6",
+		"@babel/runtime": "^7.9.6",
 		"@google-cloud/language": "^3.7.0",
 		"@google-cloud/storage": "^2.3.1",
 		"@google-cloud/vision": "^1.8.0",
@@ -149,6 +149,7 @@
 		"busboy": "^0.2.14",
 		"bytebuffer": "5.0.1",
 		"cas": "https://github.com/kcbanner/node-cas/tarball/fcd27dad333223b3b75a048bce27973fb3ca0f62",
+		"change-case": "^4.1.1",
 		"chart.js": "^2.7.3",
 		"clipboard": "^2.0.4",
 		"codemirror": "^5.42.0",
-- 
GitLab