Bläddra i källkod

Update packages

ghorsington 4 år sedan
förälder
incheckning
55740a749f

+ 89 - 40
bot/package-lock.json

@@ -72,6 +72,32 @@
             "is-negated-glob": "^1.0.0"
          }
       },
+      "@eslint/eslintrc": {
+         "version": "0.1.3",
+         "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.1.3.tgz",
+         "integrity": "sha512-4YVwPkANLeNtRjMekzux1ci8hIaH5eGKktGqR0d3LWsKNn5B2X/1Z6Trxy7jQXl9EBGE6Yj02O+t09FMeRllaA==",
+         "dev": true,
+         "requires": {
+            "ajv": "^6.12.4",
+            "debug": "^4.1.1",
+            "espree": "^7.3.0",
+            "globals": "^12.1.0",
+            "ignore": "^4.0.6",
+            "import-fresh": "^3.2.1",
+            "js-yaml": "^3.13.1",
+            "lodash": "^4.17.19",
+            "minimatch": "^3.0.4",
+            "strip-json-comments": "^3.1.1"
+         },
+         "dependencies": {
+            "ignore": {
+               "version": "4.0.6",
+               "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+               "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+               "dev": true
+            }
+         }
+      },
       "@google-cloud/common": {
          "version": "2.4.0",
          "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-2.4.0.tgz",
@@ -573,9 +599,9 @@
          }
       },
       "@types/cheerio": {
-         "version": "0.22.21",
-         "resolved": "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.21.tgz",
-         "integrity": "sha512-aGI3DfswwqgKPiEOTaiHV2ZPC9KEhprpgEbJnv0fZl3SGX0cGgEva1126dGrMC6AJM6v/aihlUgJn9M5DbDZ/Q==",
+         "version": "0.22.22",
+         "resolved": "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.22.tgz",
+         "integrity": "sha512-05DYX4zU96IBfZFY+t3Mh88nlwSMtmmzSYaQkKN48T495VV1dkHSah6qYyDTN5ngaS0i0VonH37m+RuzSM0YiA==",
          "requires": {
             "@types/node": "*"
          }
@@ -682,9 +708,9 @@
          "integrity": "sha512-2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA=="
       },
       "@types/humanize-duration": {
-         "version": "3.18.0",
-         "resolved": "https://registry.npmjs.org/@types/humanize-duration/-/humanize-duration-3.18.0.tgz",
-         "integrity": "sha512-11QHl+GvEQ5TlCjA9xqQKNv4S0P8XFq5uHeZe2UPjngESBl7tA1tai/60eEYwWMFWIyQOl7ybarYF0B33K3Qtg=="
+         "version": "3.18.1",
+         "resolved": "https://registry.npmjs.org/@types/humanize-duration/-/humanize-duration-3.18.1.tgz",
+         "integrity": "sha512-MUgbY3CF7hg/a/jogixmAufLjJBQT7WEf8Q+kYJkOc47ytngg1IuZobCngdTjAgY83JWEogippge5O5fplaQlw=="
       },
       "@types/json-schema": {
          "version": "7.0.5",
@@ -765,9 +791,9 @@
          "integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q=="
       },
       "@types/node": {
-         "version": "14.6.1",
-         "resolved": "https://registry.npmjs.org/@types/node/-/node-14.6.1.tgz",
-         "integrity": "sha512-HnYlg/BRF8uC1FyKRFZwRaCPTPYKa+6I8QiUZFLredaGOou481cgFS4wKRFyKvQtX8xudqkSdBczJHIYSQYKrQ=="
+         "version": "14.11.2",
+         "resolved": "https://registry.npmjs.org/@types/node/-/node-14.11.2.tgz",
+         "integrity": "sha512-jiE3QIxJ8JLNcb1Ps6rDbysDhN4xa8DJJvuC9prr6w+1tIh+QAbYyNF3tyiZNLDBIuBCf4KEcV2UvQm/V60xfA=="
       },
       "@types/node-schedule": {
          "version": "1.3.0",
@@ -981,9 +1007,9 @@
          }
       },
       "acorn-jsx": {
-         "version": "5.2.0",
-         "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz",
-         "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==",
+         "version": "5.3.1",
+         "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz",
+         "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==",
          "dev": true
       },
       "acorn-walk": {
@@ -1759,9 +1785,9 @@
                "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug=="
             },
             "supports-color": {
-               "version": "7.1.0",
-               "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
-               "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+               "version": "7.2.0",
+               "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+               "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
                "requires": {
                   "has-flag": "^4.0.0"
                }
@@ -2491,22 +2517,23 @@
          }
       },
       "eslint": {
-         "version": "7.7.0",
-         "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.7.0.tgz",
-         "integrity": "sha512-1KUxLzos0ZVsyL81PnRN335nDtQ8/vZUD6uMtWbF+5zDtjKcsklIi78XoE0MVL93QvWTu+E5y44VyyCsOMBrIg==",
+         "version": "7.10.0",
+         "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.10.0.tgz",
+         "integrity": "sha512-BDVffmqWl7JJXqCjAK6lWtcQThZB/aP1HXSH1JKwGwv0LQEdvpR7qzNrUT487RM39B5goWuboFad5ovMBmD8yA==",
          "dev": true,
          "requires": {
             "@babel/code-frame": "^7.0.0",
+            "@eslint/eslintrc": "^0.1.3",
             "ajv": "^6.10.0",
             "chalk": "^4.0.0",
             "cross-spawn": "^7.0.2",
             "debug": "^4.0.1",
             "doctrine": "^3.0.0",
             "enquirer": "^2.3.5",
-            "eslint-scope": "^5.1.0",
+            "eslint-scope": "^5.1.1",
             "eslint-utils": "^2.1.0",
             "eslint-visitor-keys": "^1.3.0",
-            "espree": "^7.2.0",
+            "espree": "^7.3.0",
             "esquery": "^1.2.0",
             "esutils": "^2.0.2",
             "file-entry-cache": "^5.0.1",
@@ -2569,6 +2596,33 @@
                "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
                "dev": true
             },
+            "eslint-scope": {
+               "version": "5.1.1",
+               "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+               "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+               "dev": true,
+               "requires": {
+                  "esrecurse": "^4.3.0",
+                  "estraverse": "^4.1.1"
+               }
+            },
+            "esrecurse": {
+               "version": "4.3.0",
+               "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+               "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+               "dev": true,
+               "requires": {
+                  "estraverse": "^5.2.0"
+               },
+               "dependencies": {
+                  "estraverse": {
+                     "version": "5.2.0",
+                     "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
+                     "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
+                     "dev": true
+                  }
+               }
+            },
             "glob-parent": {
                "version": "5.1.1",
                "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
@@ -2636,9 +2690,9 @@
                "dev": true
             },
             "supports-color": {
-               "version": "7.1.0",
-               "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
-               "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+               "version": "7.2.0",
+               "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+               "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
                "dev": true,
                "requires": {
                   "has-flag": "^4.0.0"
@@ -3356,18 +3410,18 @@
          "integrity": "sha512-ZIf3qfLFayVrPvAjeKKxO5FRF1/NwRxt6Dko+fWEMuHwHbZx8/fcaAao9b0wCM6kr8qeg2te8XTpyuvKuD9aKw=="
       },
       "got": {
-         "version": "11.5.2",
-         "resolved": "https://registry.npmjs.org/got/-/got-11.5.2.tgz",
-         "integrity": "sha512-yUhpEDLeuGiGJjRSzEq3kvt4zJtAcjKmhIiwNp/eUs75tRlXfWcHo5tcBaMQtnjHWC7nQYT5HkY/l0QOQTkVww==",
+         "version": "11.7.0",
+         "resolved": "https://registry.npmjs.org/got/-/got-11.7.0.tgz",
+         "integrity": "sha512-7en2XwH2MEqOsrK0xaKhbWibBoZqy+f1RSUoIeF1BLcnf+pyQdDsljWMfmOh+QKJwuvDIiKx38GtPh5wFdGGjg==",
          "requires": {
-            "@sindresorhus/is": "^3.0.0",
+            "@sindresorhus/is": "^3.1.1",
             "@szmarczak/http-timer": "^4.0.5",
             "@types/cacheable-request": "^6.0.1",
             "@types/responselike": "^1.0.0",
             "cacheable-lookup": "^5.0.3",
             "cacheable-request": "^7.0.1",
             "decompress-response": "^6.0.0",
-            "http2-wrapper": "^1.0.0-beta.5.0",
+            "http2-wrapper": "^1.0.0-beta.5.2",
             "lowercase-keys": "^2.0.0",
             "p-cancelable": "^2.0.0",
             "responselike": "^2.0.0"
@@ -4135,9 +4189,9 @@
          }
       },
       "keyv": {
-         "version": "4.0.1",
-         "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.1.tgz",
-         "integrity": "sha512-xz6Jv6oNkbhrFCvCP7HQa8AaII8y8LRpoSm661NOKLr4uHuBwhX4epXrPQgF3+xdJnN4Esm5X0xwY4bOlALOtw==",
+         "version": "4.0.3",
+         "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz",
+         "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==",
          "requires": {
             "json-buffer": "3.0.1"
          }
@@ -6560,16 +6614,16 @@
          }
       },
       "typeorm": {
-         "version": "0.2.25",
-         "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.2.25.tgz",
-         "integrity": "sha512-yzQ995fyDy5wolSLK9cmjUNcmQdixaeEm2TnXB5HN++uKbs9TiR6Y7eYAHpDlAE8s9J1uniDBgytecCZVFergQ==",
+         "version": "0.2.26",
+         "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.2.26.tgz",
+         "integrity": "sha512-sbKxK6K9sXZPCVF0weEb74UA/z1UW0sRWfI7EoOOtQaRZaLvSEwtgHPqle9t8asxEtD+gzkUdd+NqF7yH7HtIQ==",
          "requires": {
             "app-root-path": "^3.0.0",
             "buffer": "^5.1.0",
             "chalk": "^2.4.2",
             "cli-highlight": "^2.0.0",
             "debug": "^4.1.1",
-            "dotenv": "^6.2.0",
+            "dotenv": "^8.2.0",
             "glob": "^7.1.2",
             "js-yaml": "^3.13.1",
             "mkdirp": "^1.0.3",
@@ -6581,11 +6635,6 @@
             "yargs": "^13.2.1"
          },
          "dependencies": {
-            "dotenv": {
-               "version": "6.2.0",
-               "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz",
-               "integrity": "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w=="
-            },
             "mkdirp": {
                "version": "1.0.4",
                "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",

+ 6 - 6
bot/package.json

@@ -27,8 +27,8 @@
    },
    "dependencies": {
       "@google-cloud/translate": "^5.3.0",
-      "@types/cheerio": "^0.22.21",
-      "@types/humanize-duration": "^3.18.0",
+      "@types/cheerio": "^0.22.22",
+      "@types/humanize-duration": "^3.18.1",
       "@types/koa": "^2.11.4",
       "@types/koa-router": "^7.4.1",
       "@types/lowdb": "^1.0.9",
@@ -44,7 +44,7 @@
       "express": "^4.17.1",
       "form-data": "^3.0.0",
       "google-protobuf": "^3.13.0",
-      "got": "^11.5.2",
+      "got": "^11.7.0",
       "html2bbcode": "^1.2.6",
       "humanize-duration": "^3.23.1",
       "interval-promise": "^1.4.0",
@@ -65,7 +65,7 @@
       "tsconfig-paths": "^3.9.0",
       "turndown": "^6.0.0",
       "type-zoo": "^3.4.1",
-      "typeorm": "^0.2.25",
+      "typeorm": "^0.2.26",
       "typescript": "^3.9.7",
       "typescript-rest-rpc": "^1.0.10",
       "uws": "^100.0.1",
@@ -74,11 +74,11 @@
       "yaml": "^1.10.0"
    },
    "devDependencies": {
-      "@types/node": "^14.6.0",
+      "@types/node": "^14.11.2",
       "@types/nodemailer": "^6.4.0",
       "@typescript-eslint/eslint-plugin": "^3.9.1",
       "@typescript-eslint/parser": "^3.9.1",
-      "eslint": "^7.7.0",
+      "eslint": "^7.10.0",
       "nodemon": "^2.0.4",
       "ts-node": "8.10.2"
    }

+ 1 - 1
bot/src/plugins/aggregators/com3d2_world.ts

@@ -42,7 +42,7 @@ async function aggregate() {
         const result : INewsItem[] = [];
         let latestEntry = lastPost.newsId;
 
-        for(const a of diaryEntries.get() as CheerioElement[]) {
+        for(const a of diaryEntries.toArray()) {
             if(!a.attribs.id)
                 continue;
             

+ 2 - 2
bot/src/plugins/aggregators/kiss_diary.ts

@@ -40,11 +40,11 @@ async function aggregate() {
         }
 
         const diaryTexts = rootNode("div.blog_frame_middle");
-        const items = diaryEntryNames.map((i, e) => ({ table: e, content: diaryTexts.get(i) }));
+        const items = diaryEntryNames.toArray().map((e, i) => ({ table: e, content: diaryTexts[i]}));
         const result : INewsItem[] = [];
         let latestEntry = lastPost.newsId;
 
-        for(const {table, content} of items.get() as {table: CheerioElement, content: CheerioElement}[]) {
+        for(const {table, content} of items) {
             const a = cheerio(table).find("a");
             const link = a.attr("href");
             const matches = link ? urlPattern.exec(link) : false;

+ 17 - 17
shared/package-lock.json

@@ -20,9 +20,9 @@
       "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ=="
     },
     "@types/node": {
-      "version": "14.6.1",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-14.6.1.tgz",
-      "integrity": "sha512-HnYlg/BRF8uC1FyKRFZwRaCPTPYKa+6I8QiUZFLredaGOou481cgFS4wKRFyKvQtX8xudqkSdBczJHIYSQYKrQ=="
+      "version": "14.11.2",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-14.11.2.tgz",
+      "integrity": "sha512-jiE3QIxJ8JLNcb1Ps6rDbysDhN4xa8DJJvuC9prr6w+1tIh+QAbYyNF3tyiZNLDBIuBCf4KEcV2UvQm/V60xfA=="
     },
     "@types/nodemailer": {
       "version": "6.4.0",
@@ -162,9 +162,9 @@
           "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
         },
         "supports-color": {
-          "version": "7.1.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
-          "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+          "version": "7.2.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
           "requires": {
             "has-flag": "^4.0.0"
           }
@@ -255,11 +255,11 @@
       "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
     },
     "debug": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
-      "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+      "version": "4.2.0",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
+      "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
       "requires": {
-        "ms": "^2.1.1"
+        "ms": "2.1.2"
       }
     },
     "decamelize": {
@@ -268,9 +268,9 @@
       "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
     },
     "dotenv": {
-      "version": "6.2.0",
-      "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz",
-      "integrity": "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w=="
+      "version": "8.2.0",
+      "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz",
+      "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw=="
     },
     "emoji-regex": {
       "version": "8.0.0",
@@ -691,16 +691,16 @@
       "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q=="
     },
     "typeorm": {
-      "version": "0.2.25",
-      "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.2.25.tgz",
-      "integrity": "sha512-yzQ995fyDy5wolSLK9cmjUNcmQdixaeEm2TnXB5HN++uKbs9TiR6Y7eYAHpDlAE8s9J1uniDBgytecCZVFergQ==",
+      "version": "0.2.26",
+      "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.2.26.tgz",
+      "integrity": "sha512-sbKxK6K9sXZPCVF0weEb74UA/z1UW0sRWfI7EoOOtQaRZaLvSEwtgHPqle9t8asxEtD+gzkUdd+NqF7yH7HtIQ==",
       "requires": {
         "app-root-path": "^3.0.0",
         "buffer": "^5.1.0",
         "chalk": "^2.4.2",
         "cli-highlight": "^2.0.0",
         "debug": "^4.1.1",
-        "dotenv": "^6.2.0",
+        "dotenv": "^8.2.0",
         "glob": "^7.1.2",
         "js-yaml": "^3.13.1",
         "mkdirp": "^1.0.3",

+ 2 - 2
shared/package.json

@@ -10,10 +10,10 @@
   "author": "ghorsington",
   "license": "ISC",
   "dependencies": {
-    "@types/node": "^14.0.5",
+    "@types/node": "^14.11.2",
     "nodemailer": "^6.4.11",
     "rimraf": "^3.0.2",
-    "typeorm": "^0.2.25",
+    "typeorm": "^0.2.26",
     "typescript": "^3.9.3",
     "winston": "^3.3.3",
     "winston-transport": "^4.4.0"

+ 280 - 152
web/package-lock.json

@@ -24,19 +24,19 @@
 			}
 		},
 		"@babel/core": {
-			"version": "7.11.4",
-			"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.4.tgz",
-			"integrity": "sha512-5deljj5HlqRXN+5oJTY7Zs37iH3z3b++KjiKtIsJy1NrjOOVSEaJHEetLBhyu0aQOSNNZ/0IuEAan9GzRuDXHg==",
+			"version": "7.11.6",
+			"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.6.tgz",
+			"integrity": "sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg==",
 			"dev": true,
 			"requires": {
 				"@babel/code-frame": "^7.10.4",
-				"@babel/generator": "^7.11.4",
+				"@babel/generator": "^7.11.6",
 				"@babel/helper-module-transforms": "^7.11.0",
 				"@babel/helpers": "^7.10.4",
-				"@babel/parser": "^7.11.4",
+				"@babel/parser": "^7.11.5",
 				"@babel/template": "^7.10.4",
-				"@babel/traverse": "^7.11.0",
-				"@babel/types": "^7.11.0",
+				"@babel/traverse": "^7.11.5",
+				"@babel/types": "^7.11.5",
 				"convert-source-map": "^1.7.0",
 				"debug": "^4.1.0",
 				"gensync": "^1.0.0-beta.1",
@@ -48,12 +48,12 @@
 			},
 			"dependencies": {
 				"debug": {
-					"version": "4.1.1",
-					"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
-					"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+					"version": "4.2.0",
+					"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
+					"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
 					"dev": true,
 					"requires": {
-						"ms": "^2.1.1"
+						"ms": "2.1.2"
 					}
 				},
 				"ms": {
@@ -65,12 +65,12 @@
 			}
 		},
 		"@babel/generator": {
-			"version": "7.11.4",
-			"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.4.tgz",
-			"integrity": "sha512-Rn26vueFx0eOoz7iifCN2UHT6rGtnkSGWSoDRIy8jZN3B91PzeSULbswfLoOWuTuAcNwpG/mxy+uCTDnZ9Mp1g==",
+			"version": "7.11.6",
+			"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz",
+			"integrity": "sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==",
 			"dev": true,
 			"requires": {
-				"@babel/types": "^7.11.0",
+				"@babel/types": "^7.11.5",
 				"jsesc": "^2.5.1",
 				"source-map": "^0.5.0"
 			}
@@ -331,9 +331,9 @@
 			}
 		},
 		"@babel/parser": {
-			"version": "7.11.4",
-			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.4.tgz",
-			"integrity": "sha512-MggwidiH+E9j5Sh8pbrX5sJvMcsqS5o+7iB42M9/k0CD63MjYbdP4nhSh7uB5wnv2/RVzTZFTxzF/kIa5mrCqA==",
+			"version": "7.11.5",
+			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz",
+			"integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==",
 			"dev": true
 		},
 		"@babel/plugin-proposal-async-generator-functions": {
@@ -826,9 +826,9 @@
 			}
 		},
 		"@babel/plugin-transform-runtime": {
-			"version": "7.11.0",
-			"resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.0.tgz",
-			"integrity": "sha512-LFEsP+t3wkYBlis8w6/kmnd6Kb1dxTd+wGJ8MlxTGzQo//ehtqlVL4S9DNUa53+dtPSQobN2CXx4d81FqC58cw==",
+			"version": "7.11.5",
+			"resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.5.tgz",
+			"integrity": "sha512-9aIoee+EhjySZ6vY5hnLjigHzunBlscx9ANKutkeWTJTx6m5Rbq6Ic01tLvO54lSusR+BxV7u4UDdCmXv5aagg==",
 			"dev": true,
 			"requires": {
 				"@babel/helper-module-imports": "^7.10.4",
@@ -905,9 +905,9 @@
 			}
 		},
 		"@babel/preset-env": {
-			"version": "7.11.0",
-			"resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz",
-			"integrity": "sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg==",
+			"version": "7.11.5",
+			"resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.5.tgz",
+			"integrity": "sha512-kXqmW1jVcnB2cdueV+fyBM8estd5mlNfaQi6lwLgRwCby4edpavgbFhiBNjmWA3JpB/yZGSISa7Srf+TwxDQoA==",
 			"dev": true,
 			"requires": {
 				"@babel/compat-data": "^7.11.0",
@@ -972,7 +972,7 @@
 				"@babel/plugin-transform-unicode-escapes": "^7.10.4",
 				"@babel/plugin-transform-unicode-regex": "^7.10.4",
 				"@babel/preset-modules": "^0.1.3",
-				"@babel/types": "^7.11.0",
+				"@babel/types": "^7.11.5",
 				"browserslist": "^4.12.0",
 				"core-js-compat": "^3.6.2",
 				"invariant": "^2.2.2",
@@ -1014,29 +1014,29 @@
 			}
 		},
 		"@babel/traverse": {
-			"version": "7.11.0",
-			"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz",
-			"integrity": "sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==",
+			"version": "7.11.5",
+			"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz",
+			"integrity": "sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==",
 			"dev": true,
 			"requires": {
 				"@babel/code-frame": "^7.10.4",
-				"@babel/generator": "^7.11.0",
+				"@babel/generator": "^7.11.5",
 				"@babel/helper-function-name": "^7.10.4",
 				"@babel/helper-split-export-declaration": "^7.11.0",
-				"@babel/parser": "^7.11.0",
-				"@babel/types": "^7.11.0",
+				"@babel/parser": "^7.11.5",
+				"@babel/types": "^7.11.5",
 				"debug": "^4.1.0",
 				"globals": "^11.1.0",
 				"lodash": "^4.17.19"
 			},
 			"dependencies": {
 				"debug": {
-					"version": "4.1.1",
-					"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
-					"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+					"version": "4.2.0",
+					"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
+					"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
 					"dev": true,
 					"requires": {
-						"ms": "^2.1.1"
+						"ms": "2.1.2"
 					}
 				},
 				"ms": {
@@ -1048,9 +1048,9 @@
 			}
 		},
 		"@babel/types": {
-			"version": "7.11.0",
-			"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz",
-			"integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==",
+			"version": "7.11.5",
+			"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz",
+			"integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==",
 			"dev": true,
 			"requires": {
 				"@babel/helper-validator-identifier": "^7.10.4",
@@ -1074,6 +1074,50 @@
 				"kuler": "^2.0.0"
 			}
 		},
+		"@eslint/eslintrc": {
+			"version": "0.1.3",
+			"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.1.3.tgz",
+			"integrity": "sha512-4YVwPkANLeNtRjMekzux1ci8hIaH5eGKktGqR0d3LWsKNn5B2X/1Z6Trxy7jQXl9EBGE6Yj02O+t09FMeRllaA==",
+			"dev": true,
+			"requires": {
+				"ajv": "^6.12.4",
+				"debug": "^4.1.1",
+				"espree": "^7.3.0",
+				"globals": "^12.1.0",
+				"ignore": "^4.0.6",
+				"import-fresh": "^3.2.1",
+				"js-yaml": "^3.13.1",
+				"lodash": "^4.17.19",
+				"minimatch": "^3.0.4",
+				"strip-json-comments": "^3.1.1"
+			},
+			"dependencies": {
+				"debug": {
+					"version": "4.2.0",
+					"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
+					"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
+					"dev": true,
+					"requires": {
+						"ms": "2.1.2"
+					}
+				},
+				"globals": {
+					"version": "12.4.0",
+					"resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
+					"integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
+					"dev": true,
+					"requires": {
+						"type-fest": "^0.8.1"
+					}
+				},
+				"ms": {
+					"version": "2.1.2",
+					"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+					"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+					"dev": true
+				}
+			}
+		},
 		"@fortawesome/fontawesome-common-types": {
 			"version": "0.2.30",
 			"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.30.tgz",
@@ -1106,6 +1150,34 @@
 			"requires": {
 				"postcss": "7.0.32",
 				"purgecss": "^2.3.0"
+			},
+			"dependencies": {
+				"postcss": {
+					"version": "7.0.32",
+					"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz",
+					"integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==",
+					"dev": true,
+					"requires": {
+						"chalk": "^2.4.2",
+						"source-map": "^0.6.1",
+						"supports-color": "^6.1.0"
+					}
+				},
+				"source-map": {
+					"version": "0.6.1",
+					"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+					"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+					"dev": true
+				},
+				"supports-color": {
+					"version": "6.1.0",
+					"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+					"integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+					"dev": true,
+					"requires": {
+						"has-flag": "^3.0.0"
+					}
+				}
 			}
 		},
 		"@improbable-eng/grpc-web": {
@@ -1136,9 +1208,9 @@
 			}
 		},
 		"@rollup/plugin-babel": {
-			"version": "5.2.0",
-			"resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.2.0.tgz",
-			"integrity": "sha512-CPABsajaKjINgBQ3it+yMnfVO3ibsrMBxRzbUOUw2cL1hsZJ7aogU8mgglQm3S2hHJgjnAmxPz0Rq7DVdmHsTw==",
+			"version": "5.2.1",
+			"resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.2.1.tgz",
+			"integrity": "sha512-Jd7oqFR2dzZJ3NWANDyBjwTtX/lYbZpVcmkHrfQcpvawHs9E4c0nYk5U2mfZ6I/DZcIvy506KZJi54XK/jxH7A==",
 			"dev": true,
 			"requires": {
 				"@babel/helper-module-imports": "^7.10.4",
@@ -1292,9 +1364,9 @@
 			"dev": true
 		},
 		"@types/express": {
-			"version": "4.17.7",
-			"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.7.tgz",
-			"integrity": "sha512-dCOT5lcmV/uC2J9k0rPafATeeyz+99xTt54ReX11/LObZgfzJqZNcW27zGhYyX+9iSEGXGt5qLPwRSvBZcLvtQ==",
+			"version": "4.17.8",
+			"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.8.tgz",
+			"integrity": "sha512-wLhcKh3PMlyA2cNAB9sjM1BntnhPMiM0JOBwPBqttjHev2428MLEB4AYVN+d8s2iyCVZac+o41Pflm/ZH5vLXQ==",
 			"requires": {
 				"@types/body-parser": "*",
 				"@types/express-serve-static-core": "*",
@@ -1303,9 +1375,9 @@
 			}
 		},
 		"@types/express-serve-static-core": {
-			"version": "4.17.9",
-			"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.9.tgz",
-			"integrity": "sha512-DG0BYg6yO+ePW+XoDENYz8zhNGC3jDDEpComMYn7WJc4mY1Us8Rw9ax2YhJXxpyk2SF47PQAoQ0YyVT1a0bEkA==",
+			"version": "4.17.13",
+			"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.13.tgz",
+			"integrity": "sha512-RgDi5a4nuzam073lRGKTUIaL3eF2+H7LJvJ8eUnCI0wA6SNjXc44DCmWNiTLs/AZ7QlsFWZiw/gTG3nSQGL0fA==",
 			"requires": {
 				"@types/node": "*",
 				"@types/qs": "*",
@@ -1379,9 +1451,9 @@
 			"dev": true
 		},
 		"@types/qs": {
-			"version": "6.9.4",
-			"resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.4.tgz",
-			"integrity": "sha512-+wYo+L6ZF6BMoEjtf8zB2esQsqdV6WsjRK/GP9WOgLPrq87PbNWgIxS76dS5uvl/QXtHGakZmwTznIfcPXcKlQ=="
+			"version": "6.9.5",
+			"resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.5.tgz",
+			"integrity": "sha512-/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ=="
 		},
 		"@types/range-parser": {
 			"version": "1.2.3",
@@ -1568,9 +1640,9 @@
 			"dev": true
 		},
 		"acorn-jsx": {
-			"version": "5.2.0",
-			"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz",
-			"integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==",
+			"version": "5.3.1",
+			"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz",
+			"integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==",
 			"dev": true
 		},
 		"acorn-node": {
@@ -1591,9 +1663,9 @@
 			"dev": true
 		},
 		"ajv": {
-			"version": "6.12.4",
-			"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz",
-			"integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==",
+			"version": "6.12.5",
+			"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz",
+			"integrity": "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==",
 			"dev": true,
 			"requires": {
 				"fast-deep-equal": "^3.1.1",
@@ -2707,22 +2779,23 @@
 			"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
 		},
 		"eslint": {
-			"version": "7.7.0",
-			"resolved": "https://registry.npmjs.org/eslint/-/eslint-7.7.0.tgz",
-			"integrity": "sha512-1KUxLzos0ZVsyL81PnRN335nDtQ8/vZUD6uMtWbF+5zDtjKcsklIi78XoE0MVL93QvWTu+E5y44VyyCsOMBrIg==",
+			"version": "7.10.0",
+			"resolved": "https://registry.npmjs.org/eslint/-/eslint-7.10.0.tgz",
+			"integrity": "sha512-BDVffmqWl7JJXqCjAK6lWtcQThZB/aP1HXSH1JKwGwv0LQEdvpR7qzNrUT487RM39B5goWuboFad5ovMBmD8yA==",
 			"dev": true,
 			"requires": {
 				"@babel/code-frame": "^7.0.0",
+				"@eslint/eslintrc": "^0.1.3",
 				"ajv": "^6.10.0",
 				"chalk": "^4.0.0",
 				"cross-spawn": "^7.0.2",
 				"debug": "^4.0.1",
 				"doctrine": "^3.0.0",
 				"enquirer": "^2.3.5",
-				"eslint-scope": "^5.1.0",
+				"eslint-scope": "^5.1.1",
 				"eslint-utils": "^2.1.0",
 				"eslint-visitor-keys": "^1.3.0",
-				"espree": "^7.2.0",
+				"espree": "^7.3.0",
 				"esquery": "^1.2.0",
 				"esutils": "^2.0.2",
 				"file-entry-cache": "^5.0.1",
@@ -2786,12 +2859,39 @@
 					"dev": true
 				},
 				"debug": {
-					"version": "4.1.1",
-					"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
-					"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+					"version": "4.2.0",
+					"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
+					"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
 					"dev": true,
 					"requires": {
-						"ms": "^2.1.1"
+						"ms": "2.1.2"
+					}
+				},
+				"eslint-scope": {
+					"version": "5.1.1",
+					"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+					"integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+					"dev": true,
+					"requires": {
+						"esrecurse": "^4.3.0",
+						"estraverse": "^4.1.1"
+					}
+				},
+				"esrecurse": {
+					"version": "4.3.0",
+					"resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+					"integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+					"dev": true,
+					"requires": {
+						"estraverse": "^5.2.0"
+					},
+					"dependencies": {
+						"estraverse": {
+							"version": "5.2.0",
+							"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
+							"integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
+							"dev": true
+						}
 					}
 				},
 				"globals": {
@@ -2822,9 +2922,9 @@
 					"dev": true
 				},
 				"supports-color": {
-					"version": "7.1.0",
-					"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
-					"integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+					"version": "7.2.0",
+					"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+					"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
 					"dev": true,
 					"requires": {
 						"has-flag": "^4.0.0"
@@ -2854,9 +2954,9 @@
 			}
 		},
 		"eslint-import-resolver-typescript": {
-			"version": "2.2.1",
-			"resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.2.1.tgz",
-			"integrity": "sha512-wxlVdwuWY6R5+CoesIy6n8EZX4k9lEeZGWTVBoX9g//8Xma8JMtL/p3AGnG43rRyXmIrX+/0IN8lpOPzrw1fSw==",
+			"version": "2.3.0",
+			"resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.3.0.tgz",
+			"integrity": "sha512-MHSXvmj5e0SGOOBhBbt7C+fWj1bJbtSYFAD85Xeg8nvUtuooTod2HQb8bfhE9f5QyyNxEfgzqOYFCvmdDIcCuw==",
 			"dev": true,
 			"requires": {
 				"debug": "^4.1.1",
@@ -2867,12 +2967,12 @@
 			},
 			"dependencies": {
 				"debug": {
-					"version": "4.1.1",
-					"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
-					"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+					"version": "4.2.0",
+					"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
+					"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
 					"dev": true,
 					"requires": {
-						"ms": "^2.1.1"
+						"ms": "2.1.2"
 					}
 				},
 				"ms": {
@@ -2894,9 +2994,9 @@
 			}
 		},
 		"eslint-plugin-import": {
-			"version": "2.22.0",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz",
-			"integrity": "sha512-66Fpf1Ln6aIS5Gr/55ts19eUuoDhAbZgnr6UxK5hbDx6l/QgQgx61AePq+BV4PP2uXQFClgMVzep5zZ94qqsxg==",
+			"version": "2.22.1",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz",
+			"integrity": "sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==",
 			"dev": true,
 			"requires": {
 				"array-includes": "^3.1.1",
@@ -2904,7 +3004,7 @@
 				"contains-path": "^0.1.0",
 				"debug": "^2.6.9",
 				"doctrine": "1.5.0",
-				"eslint-import-resolver-node": "^0.3.3",
+				"eslint-import-resolver-node": "^0.3.4",
 				"eslint-module-utils": "^2.6.0",
 				"has": "^1.0.3",
 				"minimatch": "^3.0.4",
@@ -3272,18 +3372,18 @@
 			"integrity": "sha512-ZIf3qfLFayVrPvAjeKKxO5FRF1/NwRxt6Dko+fWEMuHwHbZx8/fcaAao9b0wCM6kr8qeg2te8XTpyuvKuD9aKw=="
 		},
 		"got": {
-			"version": "11.5.2",
-			"resolved": "https://registry.npmjs.org/got/-/got-11.5.2.tgz",
-			"integrity": "sha512-yUhpEDLeuGiGJjRSzEq3kvt4zJtAcjKmhIiwNp/eUs75tRlXfWcHo5tcBaMQtnjHWC7nQYT5HkY/l0QOQTkVww==",
+			"version": "11.7.0",
+			"resolved": "https://registry.npmjs.org/got/-/got-11.7.0.tgz",
+			"integrity": "sha512-7en2XwH2MEqOsrK0xaKhbWibBoZqy+f1RSUoIeF1BLcnf+pyQdDsljWMfmOh+QKJwuvDIiKx38GtPh5wFdGGjg==",
 			"requires": {
-				"@sindresorhus/is": "^3.0.0",
+				"@sindresorhus/is": "^3.1.1",
 				"@szmarczak/http-timer": "^4.0.5",
 				"@types/cacheable-request": "^6.0.1",
 				"@types/responselike": "^1.0.0",
 				"cacheable-lookup": "^5.0.3",
 				"cacheable-request": "^7.0.1",
 				"decompress-response": "^6.0.0",
-				"http2-wrapper": "^1.0.0-beta.5.0",
+				"http2-wrapper": "^1.0.0-beta.5.2",
 				"lowercase-keys": "^2.0.0",
 				"p-cancelable": "^2.0.0",
 				"responselike": "^2.0.0"
@@ -3362,6 +3462,12 @@
 				"uglify-js": "^3.5.1"
 			}
 		},
+		"html-tags": {
+			"version": "3.1.0",
+			"resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz",
+			"integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==",
+			"dev": true
+		},
 		"http-cache-semantics": {
 			"version": "4.1.0",
 			"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
@@ -3625,9 +3731,9 @@
 					"dev": true
 				},
 				"supports-color": {
-					"version": "7.1.0",
-					"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
-					"integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+					"version": "7.2.0",
+					"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+					"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
 					"dev": true,
 					"requires": {
 						"has-flag": "^4.0.0"
@@ -3706,9 +3812,9 @@
 			}
 		},
 		"keyv": {
-			"version": "4.0.1",
-			"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.1.tgz",
-			"integrity": "sha512-xz6Jv6oNkbhrFCvCP7HQa8AaII8y8LRpoSm661NOKLr4uHuBwhX4epXrPQgF3+xdJnN4Esm5X0xwY4bOlALOtw==",
+			"version": "4.0.3",
+			"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz",
+			"integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==",
 			"requires": {
 				"json-buffer": "3.0.1"
 			}
@@ -3987,9 +4093,9 @@
 			}
 		},
 		"node-fetch": {
-			"version": "2.6.0",
-			"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
-			"integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
+			"version": "2.6.1",
+			"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
+			"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
 		},
 		"node-forge": {
 			"version": "0.8.5",
@@ -4375,9 +4481,9 @@
 			}
 		},
 		"postcss": {
-			"version": "7.0.32",
-			"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz",
-			"integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==",
+			"version": "7.0.34",
+			"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.34.tgz",
+			"integrity": "sha512-H/7V2VeNScX9KE83GDrDZNiGT1m2H+UTnlinIzhjlLX9hfMUn1mHNnGeX81a1c8JSBdBvqk7c2ZOG6ZPn5itGw==",
 			"requires": {
 				"chalk": "^2.4.2",
 				"source-map": "^0.6.1",
@@ -4693,9 +4799,9 @@
 			}
 		},
 		"postcss-load-config": {
-			"version": "2.1.0",
-			"resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz",
-			"integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==",
+			"version": "2.1.2",
+			"resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz",
+			"integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==",
 			"dev": true,
 			"requires": {
 				"cosmiconfig": "^5.0.0",
@@ -4988,6 +5094,32 @@
 					"resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
 					"integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==",
 					"dev": true
+				},
+				"postcss": {
+					"version": "7.0.32",
+					"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz",
+					"integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==",
+					"dev": true,
+					"requires": {
+						"chalk": "^2.4.2",
+						"source-map": "^0.6.1",
+						"supports-color": "^6.1.0"
+					}
+				},
+				"source-map": {
+					"version": "0.6.1",
+					"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+					"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+					"dev": true
+				},
+				"supports-color": {
+					"version": "6.1.0",
+					"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+					"integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+					"dev": true,
+					"requires": {
+						"has-flag": "^3.0.0"
+					}
 				}
 			}
 		},
@@ -5148,9 +5280,9 @@
 			"dev": true
 		},
 		"regexpu-core": {
-			"version": "4.7.0",
-			"resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz",
-			"integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==",
+			"version": "4.7.1",
+			"resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz",
+			"integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==",
 			"dev": true,
 			"requires": {
 				"regenerate": "^1.4.0",
@@ -5244,9 +5376,9 @@
 			}
 		},
 		"rollup": {
-			"version": "2.26.7",
-			"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.26.7.tgz",
-			"integrity": "sha512-3/aXJ+ibw2fqj6KBX4ioYcx8s3kseYXzyxLR6Xmm7Zakzd7WNvn9XDUahBCQ/oPVHmVO9gEeIYKHgFaZWqsJzg==",
+			"version": "2.28.2",
+			"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.28.2.tgz",
+			"integrity": "sha512-8txbsFBFLmm9Xdt4ByTOGa9Muonmc8MfNjnGAR8U8scJlF1ZW7AgNZa7aqBXaKtlvnYP/ab++fQIq9dB9NWUbg==",
 			"dev": true,
 			"requires": {
 				"fsevents": "~2.1.2"
@@ -5264,9 +5396,9 @@
 			}
 		},
 		"rollup-plugin-terser": {
-			"version": "7.0.0",
-			"resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.0.tgz",
-			"integrity": "sha512-p/N3lLiFusCjYTLfVkoaiRTOGr5AESEaljMPH12MhOtoMkmTBhIAfuadrcWy4am1U0vU4WTxO9fi0K09O4CboQ==",
+			"version": "7.0.2",
+			"resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz",
+			"integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==",
 			"dev": true,
 			"requires": {
 				"@babel/code-frame": "^7.10.4",
@@ -5320,14 +5452,14 @@
 			"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
 		},
 		"sapper": {
-			"version": "0.28.2",
-			"resolved": "https://registry.npmjs.org/sapper/-/sapper-0.28.2.tgz",
-			"integrity": "sha512-0k967n9EnGxj9t1ezuvEUFiqUI7Mr92grAJXlhRNmEfV7qvJhiTqNmN/N7GvUtz3qk4RF9u2hfQCa48ozx85GA==",
+			"version": "0.28.9",
+			"resolved": "https://registry.npmjs.org/sapper/-/sapper-0.28.9.tgz",
+			"integrity": "sha512-ngowemh3h4wCKE+/EYCn0OZWhuavbqYnR9O2ZavFzdlszE5AznDXuQOwEgnX73U8hS4y9kN3kOudErYmKCjdDg==",
 			"dev": true,
 			"requires": {
 				"html-minifier": "^4.0.0",
 				"http-link-header": "^1.0.2",
-				"shimport": "^1.0.1",
+				"shimport": "^2.0.4",
 				"source-map": "^0.6.1",
 				"sourcemap-codec": "^1.4.6",
 				"string-hash": "^1.1.3"
@@ -5434,9 +5566,9 @@
 			"dev": true
 		},
 		"shimport": {
-			"version": "1.0.1",
-			"resolved": "https://registry.npmjs.org/shimport/-/shimport-1.0.1.tgz",
-			"integrity": "sha512-Imf4gH+8WQmT1GvxS/x79qpmfnE6m50hyN1ucatX+7oMCgmaF8obZWCPIzSUe6+P+YmXM46lkP2pxiV2/lt9Og==",
+			"version": "2.0.4",
+			"resolved": "https://registry.npmjs.org/shimport/-/shimport-2.0.4.tgz",
+			"integrity": "sha512-5YOyQqYkOFSkPFnpS87De6BYzDiZBc8FS4/aTuGZiST+WmXSwWRoaNRHqyVOeEpSx9wlgYWg9WYfCuzD/11/qA==",
 			"dev": true
 		},
 		"showdown": {
@@ -5653,9 +5785,9 @@
 			}
 		},
 		"spdx-license-ids": {
-			"version": "3.0.5",
-			"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
-			"integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==",
+			"version": "3.0.6",
+			"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz",
+			"integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==",
 			"dev": true
 		},
 		"split": {
@@ -5795,9 +5927,9 @@
 			}
 		},
 		"svelte": {
-			"version": "3.24.1",
-			"resolved": "https://registry.npmjs.org/svelte/-/svelte-3.24.1.tgz",
-			"integrity": "sha512-OX/IBVUJSFo1rnznXdwf9rv6LReJ3qQ0PwRjj76vfUWyTfbHbR9OXqJBnUrpjyis2dwYcbT2Zm1DFjOOF1ZbbQ=="
+			"version": "3.28.0",
+			"resolved": "https://registry.npmjs.org/svelte/-/svelte-3.28.0.tgz",
+			"integrity": "sha512-WJW8wD+aTmU5GUnTUjdhVF35mve2MjylubLgB6fGWoXHpYENdwcwWsWvjMQLayzMynqNH733h1Ck8wJzNR7gdQ=="
 		},
 		"svelte-awesome": {
 			"version": "2.3.0",
@@ -5808,9 +5940,9 @@
 			}
 		},
 		"svelte-preprocess": {
-			"version": "4.1.1",
-			"resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.1.1.tgz",
-			"integrity": "sha512-fCnq15SY0MYd70as0z0IcdtU6a6m0RTFdWViWSdV7styI/yp6SVkMinpFR7GbQJR3StzZ/9FEmroSiYYzc3VZA==",
+			"version": "4.3.2",
+			"resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.3.2.tgz",
+			"integrity": "sha512-CmIsCr62y34qGS10/SC1l1VkmX0kZR6wncbGgRJ1qJftLDMEaazC3bWqoqAlrqyQFvpO0+xb44GQm4RKi/9sLQ==",
 			"dev": true,
 			"requires": {
 				"@types/pug": "^2.0.4",
@@ -5832,9 +5964,9 @@
 			}
 		},
 		"tailwindcss": {
-			"version": "1.7.5",
-			"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-1.7.5.tgz",
-			"integrity": "sha512-thDHLkRioJh0/62EFcEfQCCBEsZXpluehymrPzn8Hkycy8uI9svvtOqyWtcfkBPB0s5yb6R2tY9zPzh5mIr0Wg==",
+			"version": "1.8.10",
+			"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-1.8.10.tgz",
+			"integrity": "sha512-7QkERG/cWCzsuMqHMwjOaLMVixOGLNBiXsrkssxlE1aWfkxVbGqiuMokR2162xRyaH2mBIHKxmlf1qb3DvIPqw==",
 			"dev": true,
 			"requires": {
 				"@fullhuman/postcss-purgecss": "^2.1.2",
@@ -5845,6 +5977,7 @@
 				"color": "^3.1.2",
 				"detective": "^5.2.0",
 				"fs-extra": "^8.0.0",
+				"html-tags": "^3.1.0",
 				"lodash": "^4.17.20",
 				"node-emoji": "^1.8.1",
 				"normalize.css": "^8.0.1",
@@ -5902,9 +6035,9 @@
 					"dev": true
 				},
 				"supports-color": {
-					"version": "7.1.0",
-					"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
-					"integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+					"version": "7.2.0",
+					"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+					"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
 					"dev": true,
 					"requires": {
 						"has-flag": "^4.0.0"
@@ -5913,9 +6046,9 @@
 			}
 		},
 		"terser": {
-			"version": "5.2.1",
-			"resolved": "https://registry.npmjs.org/terser/-/terser-5.2.1.tgz",
-			"integrity": "sha512-/AOtjRtAMNGO0fIF6m8HfcvXTw/2AKpsOzDn36tA5RfhRdeXyb4RvHxJ5Pah7iL6dFkLk+gOnCaNHGwJPl6TrQ==",
+			"version": "5.3.2",
+			"resolved": "https://registry.npmjs.org/terser/-/terser-5.3.2.tgz",
+			"integrity": "sha512-H67sydwBz5jCUA32ZRL319ULu+Su1cAoZnnc+lXnenGRYWyLE3Scgkt8mNoAsMx0h5kdo758zdoS0LG9rYZXDQ==",
 			"dev": true,
 			"requires": {
 				"commander": "^2.20.0",
@@ -6060,16 +6193,16 @@
 			}
 		},
 		"typeorm": {
-			"version": "0.2.25",
-			"resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.2.25.tgz",
-			"integrity": "sha512-yzQ995fyDy5wolSLK9cmjUNcmQdixaeEm2TnXB5HN++uKbs9TiR6Y7eYAHpDlAE8s9J1uniDBgytecCZVFergQ==",
+			"version": "0.2.26",
+			"resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.2.26.tgz",
+			"integrity": "sha512-sbKxK6K9sXZPCVF0weEb74UA/z1UW0sRWfI7EoOOtQaRZaLvSEwtgHPqle9t8asxEtD+gzkUdd+NqF7yH7HtIQ==",
 			"requires": {
 				"app-root-path": "^3.0.0",
 				"buffer": "^5.1.0",
 				"chalk": "^2.4.2",
 				"cli-highlight": "^2.0.0",
 				"debug": "^4.1.1",
-				"dotenv": "^6.2.0",
+				"dotenv": "^8.2.0",
 				"glob": "^7.1.2",
 				"js-yaml": "^3.13.1",
 				"mkdirp": "^1.0.3",
@@ -6082,18 +6215,13 @@
 			},
 			"dependencies": {
 				"debug": {
-					"version": "4.1.1",
-					"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
-					"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+					"version": "4.2.0",
+					"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
+					"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
 					"requires": {
-						"ms": "^2.1.1"
+						"ms": "2.1.2"
 					}
 				},
-				"dotenv": {
-					"version": "6.2.0",
-					"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz",
-					"integrity": "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w=="
-				},
 				"mkdirp": {
 					"version": "1.0.4",
 					"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
@@ -6123,9 +6251,9 @@
 			"integrity": "sha512-W3kLbx+ML9PBl5Bzso/lTvVxk4BCveSNAtQeht59FEtxCdGThmn6wSHA4Xq3eQYAK24NHdisMM4JmsK0GFy/pg=="
 		},
 		"uglify-js": {
-			"version": "3.10.2",
-			"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.2.tgz",
-			"integrity": "sha512-GXCYNwqoo0MbLARghYjxVBxDCnU0tLqN7IPLdHHbibCb1NI5zBkU2EPcy/GaVxc0BtTjqyGXJCINe6JMR2Dpow==",
+			"version": "3.11.0",
+			"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.11.0.tgz",
+			"integrity": "sha512-e1KQFRCpOxnrJsJVqDUCjURq+wXvIn7cK2sRAx9XL3HYLL9aezOP4Pb1+Y3/o693EPk111Yj2Q+IUXxcpHlygQ==",
 			"dev": true
 		},
 		"unicode-canonical-property-names-ecmascript": {
@@ -6179,9 +6307,9 @@
 			"dev": true
 		},
 		"uri-js": {
-			"version": "4.2.2",
-			"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
-			"integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+			"version": "4.4.0",
+			"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz",
+			"integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==",
 			"dev": true,
 			"requires": {
 				"punycode": "^2.1.0"

+ 19 - 19
web/package.json

@@ -18,9 +18,9 @@
 		"easymde": "^2.11.0",
 		"express": "^4.17.1",
 		"google-protobuf": "^3.13.0",
-		"got": "^11.5.2",
+		"got": "^11.7.0",
 		"make-error": "^1.3.6",
-		"node-fetch": "^2.6.0",
+		"node-fetch": "^2.6.1",
 		"nodemailer": "^6.4.11",
 		"pg": "^8.3.3",
 		"postcss-nested": "^4.2.3",
@@ -28,21 +28,21 @@
 		"showdown": "^1.9.1",
 		"sirv": "^1.0.5",
 		"svelte-awesome": "^2.3.0",
-		"typeorm": "^0.2.25",
+		"typeorm": "^0.2.26",
 		"vanilla-hcaptcha": "0.0.5",
 		"winston": "^3.3.3",
 		"winston-transport": "^4.4.0"
 	},
 	"devDependencies": {
-		"@babel/core": "^7.11.1",
+		"@babel/core": "^7.11.6",
 		"@babel/plugin-syntax-dynamic-import": "^7.8.3",
-		"@babel/plugin-transform-runtime": "^7.11.0",
-		"@babel/preset-env": "^7.11.0",
+		"@babel/plugin-transform-runtime": "^7.11.5",
+		"@babel/preset-env": "^7.11.5",
 		"@babel/runtime": "^7.11.2",
 		"@fortawesome/free-brands-svg-icons": "^5.14.0",
 		"@fortawesome/free-solid-svg-icons": "^5.14.0",
 		"@rollup/plugin-alias": "^3.1.1",
-		"@rollup/plugin-babel": "^5.1.0",
+		"@rollup/plugin-babel": "^5.2.1",
 		"@rollup/plugin-commonjs": "^14.0.0",
 		"@rollup/plugin-json": "^4.1.0",
 		"@rollup/plugin-node-resolve": "^8.4.0",
@@ -50,7 +50,7 @@
 		"@rollup/plugin-typescript": "^5.0.2",
 		"@types/compression": "^1.7.0",
 		"@types/cookie-session": "^2.0.41",
-		"@types/express": "^4.17.7",
+		"@types/express": "^4.17.8",
 		"@types/node-fetch": "^2.5.7",
 		"@types/nodemailer": "^6.4.0",
 		"@types/showdown": "^1.9.3",
@@ -60,23 +60,23 @@
 		"bufferutil": "^4.0.1",
 		"class-validator": "^0.12.2",
 		"cross-env": "^7.0.2",
-		"eslint": "^7.6.0",
+		"eslint": "^7.10.0",
 		"eslint-config-airbnb-base": "^14.2.0",
-		"eslint-import-resolver-typescript": "^2.2.1",
-		"eslint-plugin-import": "^2.22.0",
+		"eslint-import-resolver-typescript": "^2.3.0",
+		"eslint-plugin-import": "^2.22.1",
 		"eslint-plugin-svelte3": "^2.7.3",
-		"postcss": "^7.0.32",
+		"postcss": "^7.0.34",
 		"postcss-import": "^12.0.1",
-		"postcss-load-config": "^2.1.0",
+		"postcss-load-config": "^2.1.2",
 		"postcss-preset-env": "^6.7.0",
 		"reflect-metadata": "^0.1.13",
-		"rollup": "^2.26.7",
+		"rollup": "^2.28.2",
 		"rollup-plugin-svelte": "^5.2.3",
-		"rollup-plugin-terser": "^7.0.0",
-		"sapper": "^0.28.0",
-		"svelte": "^3.24.1",
-		"svelte-preprocess": "^4.0.10",
-		"tailwindcss": "^1.6.2",
+		"rollup-plugin-terser": "^7.0.2",
+		"sapper": "^0.28.9",
+		"svelte": "^3.28.0",
+		"svelte-preprocess": "^4.3.2",
+		"tailwindcss": "^1.8.10",
 		"tslib": "^2.0.1",
 		"typescript": "^3.9.7",
 		"utf-8-validate": "^5.0.2"