Prechádzať zdrojové kódy

Merge tag 'v3.7.0' into staging

Owen Diffey 2 rokov pred
rodič
commit
34a85f1a6f

+ 1 - 1
.markdownlint.json

@@ -3,5 +3,5 @@
         "tables": false
     },
     "MD024": false,
-    "MD041": false 
+    "MD041": false
 }

+ 1 - 1
.wiki/Configuration.md

@@ -139,7 +139,7 @@ application within the container is listening on `21017`.
 ## Docker-compose override
 
 You may want to override the docker-compose files in some specific cases.
-For this, you can create a `docker-compose.override.yml` file.  
+For this, you can create a `docker-compose.override.yml` file.
 
 ### Run backend on its own domain
 

+ 12 - 0
CHANGELOG.md

@@ -1,5 +1,17 @@
 # Changelog
 
+## [v3.7.0] - 2022-08-27
+
+This release contains mostly internal refactors, and includes all
+changes from v3.7.0-rc1 and v3.7.0-rc2, in addition to the following.
+Upgrade instructions can be found at [.wiki/Upgrading](.wiki/Upgrading.md).
+
+### Fixed
+
+- fix: Unable to login with username if it contains uppercase characters
+- fix: Profile page not responsive
+- fix: Don't use npx within package scripts
+
 ## [v3.7.0-rc2] - 2022-08-21
 
 This release includes all changes from v3.7.0-rc1, in addition to the following.

+ 125 - 125
backend/package-lock.json

@@ -1,12 +1,12 @@
 {
   "name": "musare-backend",
-  "version": "3.7.0-rc2",
+  "version": "3.7.0",
   "lockfileVersion": 2,
   "requires": true,
   "packages": {
     "": {
       "name": "musare-backend",
-      "version": "3.7.0-rc2",
+      "version": "3.7.0",
       "license": "GPL-3.0",
       "dependencies": {
         "async": "^3.2.4",
@@ -19,10 +19,10 @@
         "cors": "^2.8.5",
         "express": "^4.18.1",
         "moment": "^2.29.4",
-        "mongoose": "^6.5.2",
+        "mongoose": "^6.5.3",
         "nodemailer": "^6.7.8",
         "oauth": "^0.10.0",
-        "redis": "^4.2.0",
+        "redis": "^4.3.0",
         "retry-axios": "^3.0.0",
         "sha256": "^0.2.0",
         "socks": "^2.7.0",
@@ -30,8 +30,8 @@
         "ws": "^8.8.1"
       },
       "devDependencies": {
-        "@typescript-eslint/eslint-plugin": "^5.33.1",
-        "@typescript-eslint/parser": "^5.33.1",
+        "@typescript-eslint/eslint-plugin": "^5.35.1",
+        "@typescript-eslint/parser": "^5.35.1",
         "eslint": "^8.22.0",
         "eslint-config-airbnb-base": "^15.0.0",
         "eslint-config-prettier": "^8.5.0",
@@ -42,7 +42,7 @@
         "prettier": "2.7.1",
         "trace-unhandled": "^2.0.1",
         "ts-node": "^10.9.1",
-        "typescript": "^4.7.4"
+        "typescript": "^4.8.2"
       }
     },
     "node_modules/@cspotcode/source-map-support": {
@@ -255,9 +255,9 @@
       }
     },
     "node_modules/@redis/client": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/@redis/client/-/client-1.2.0.tgz",
-      "integrity": "sha512-a8Nlw5fv2EIAFJxTDSSDVUT7yfBGpZO96ybZXzQpgkyLg/dxtQ1uiwTc0EGfzg1mrPjZokeBSEGTbGXekqTNOg==",
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/@redis/client/-/client-1.3.0.tgz",
+      "integrity": "sha512-XCFV60nloXAefDsPnYMjHGtvbtHR8fV5Om8cQ0JYqTNbWcQo/4AryzJ2luRj4blveWazRK/j40gES8M7Cp6cfQ==",
       "dependencies": {
         "cluster-key-slot": "1.1.0",
         "generic-pool": "3.8.2",
@@ -284,9 +284,9 @@
       }
     },
     "node_modules/@redis/search": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/@redis/search/-/search-1.0.6.tgz",
-      "integrity": "sha512-pP+ZQRis5P21SD6fjyCeLcQdps+LuTzp2wdUbzxEmNhleighDDTD5ck8+cYof+WLec4csZX7ks+BuoMw0RaZrA==",
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/@redis/search/-/search-1.1.0.tgz",
+      "integrity": "sha512-NyFZEVnxIJEybpy+YskjgOJRNsfTYqaPbK/Buv6W2kmFNaRk85JiqjJZA5QkRmWvGbyQYwoO5QfDi2wHskKrQQ==",
       "peerDependencies": {
         "@redis/client": "^1.0.0"
       }
@@ -336,9 +336,9 @@
       "dev": true
     },
     "node_modules/@types/node": {
-      "version": "17.0.40",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.40.tgz",
-      "integrity": "sha512-UXdBxNGqTMtm7hCwh9HtncFVLrXoqA3oJW30j6XWp5BH/wu3mVeaxo7cq5benFdBw34HB3XDT2TRPI7rXZ+mDg=="
+      "version": "18.7.13",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.13.tgz",
+      "integrity": "sha512-46yIhxSe5xEaJZXWdIBP7GU4HDTG8/eo0qd9atdiL+lFpA03y8KS+lkTN834TWJj5767GbWv4n/P6efyTFt1Dw=="
     },
     "node_modules/@types/webidl-conversions": {
       "version": "6.1.1",
@@ -355,14 +355,14 @@
       }
     },
     "node_modules/@typescript-eslint/eslint-plugin": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.33.1.tgz",
-      "integrity": "sha512-S1iZIxrTvKkU3+m63YUOxYPKaP+yWDQrdhxTglVDVEVBf+aCSw85+BmJnyUaQQsk5TXFG/LpBu9fa+LrAQ91fQ==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.35.1.tgz",
+      "integrity": "sha512-RBZZXZlI4XCY4Wzgy64vB+0slT9+yAPQRjj/HSaRwUot33xbDjF1oN9BLwOLTewoOI0jothIltZRe9uJCHf8gg==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/scope-manager": "5.33.1",
-        "@typescript-eslint/type-utils": "5.33.1",
-        "@typescript-eslint/utils": "5.33.1",
+        "@typescript-eslint/scope-manager": "5.35.1",
+        "@typescript-eslint/type-utils": "5.35.1",
+        "@typescript-eslint/utils": "5.35.1",
         "debug": "^4.3.4",
         "functional-red-black-tree": "^1.0.1",
         "ignore": "^5.2.0",
@@ -411,14 +411,14 @@
       "dev": true
     },
     "node_modules/@typescript-eslint/parser": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.33.1.tgz",
-      "integrity": "sha512-IgLLtW7FOzoDlmaMoXdxG8HOCByTBXrB1V2ZQYSEV1ggMmJfAkMWTwUjjzagS6OkfpySyhKFkBw7A9jYmcHpZA==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.35.1.tgz",
+      "integrity": "sha512-XL2TBTSrh3yWAsMYpKseBYTVpvudNf69rPOWXWVBI08My2JVT5jR66eTt4IgQFHA/giiKJW5dUD4x/ZviCKyGg==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/scope-manager": "5.33.1",
-        "@typescript-eslint/types": "5.33.1",
-        "@typescript-eslint/typescript-estree": "5.33.1",
+        "@typescript-eslint/scope-manager": "5.35.1",
+        "@typescript-eslint/types": "5.35.1",
+        "@typescript-eslint/typescript-estree": "5.35.1",
         "debug": "^4.3.4"
       },
       "engines": {
@@ -461,13 +461,13 @@
       "dev": true
     },
     "node_modules/@typescript-eslint/scope-manager": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.33.1.tgz",
-      "integrity": "sha512-8ibcZSqy4c5m69QpzJn8XQq9NnqAToC8OdH/W6IXPXv83vRyEDPYLdjAlUx8h/rbusq6MkW4YdQzURGOqsn3CA==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.35.1.tgz",
+      "integrity": "sha512-kCYRSAzIW9ByEIzmzGHE50NGAvAP3wFTaZevgWva7GpquDyFPFcmvVkFJGWJJktg/hLwmys/FZwqM9EKr2u24Q==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/types": "5.33.1",
-        "@typescript-eslint/visitor-keys": "5.33.1"
+        "@typescript-eslint/types": "5.35.1",
+        "@typescript-eslint/visitor-keys": "5.35.1"
       },
       "engines": {
         "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -478,12 +478,12 @@
       }
     },
     "node_modules/@typescript-eslint/type-utils": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.33.1.tgz",
-      "integrity": "sha512-X3pGsJsD8OiqhNa5fim41YtlnyiWMF/eKsEZGsHID2HcDqeSC5yr/uLOeph8rNF2/utwuI0IQoAK3fpoxcLl2g==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.35.1.tgz",
+      "integrity": "sha512-8xT8ljvo43Mp7BiTn1vxLXkjpw8wS4oAc00hMSB4L1/jIiYbjjnc3Qp2GAUOG/v8zsNCd1qwcqfCQ0BuishHkw==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/utils": "5.33.1",
+        "@typescript-eslint/utils": "5.35.1",
         "debug": "^4.3.4",
         "tsutils": "^3.21.0"
       },
@@ -527,9 +527,9 @@
       "dev": true
     },
     "node_modules/@typescript-eslint/types": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.33.1.tgz",
-      "integrity": "sha512-7K6MoQPQh6WVEkMrMW5QOA5FO+BOwzHSNd0j3+BlBwd6vtzfZceJ8xJ7Um2XDi/O3umS8/qDX6jdy2i7CijkwQ==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.35.1.tgz",
+      "integrity": "sha512-FDaujtsH07VHzG0gQ6NDkVVhi1+rhq0qEvzHdJAQjysN+LHDCKDKCBRlZFFE0ec0jKxiv0hN63SNfExy0KrbQQ==",
       "dev": true,
       "engines": {
         "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -540,13 +540,13 @@
       }
     },
     "node_modules/@typescript-eslint/typescript-estree": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.33.1.tgz",
-      "integrity": "sha512-JOAzJ4pJ+tHzA2pgsWQi4804XisPHOtbvwUyqsuuq8+y5B5GMZs7lI1xDWs6V2d7gE/Ez5bTGojSK12+IIPtXA==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.35.1.tgz",
+      "integrity": "sha512-JUqE1+VRTGyoXlDWWjm6MdfpBYVq+hixytrv1oyjYIBEOZhBCwtpp5ZSvBt4wIA1MKWlnaC2UXl2XmYGC3BoQA==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/types": "5.33.1",
-        "@typescript-eslint/visitor-keys": "5.33.1",
+        "@typescript-eslint/types": "5.35.1",
+        "@typescript-eslint/visitor-keys": "5.35.1",
         "debug": "^4.3.4",
         "globby": "^11.1.0",
         "is-glob": "^4.0.3",
@@ -590,15 +590,15 @@
       "dev": true
     },
     "node_modules/@typescript-eslint/utils": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.33.1.tgz",
-      "integrity": "sha512-uphZjkMaZ4fE8CR4dU7BquOV6u0doeQAr8n6cQenl/poMaIyJtBu8eys5uk6u5HiDH01Mj5lzbJ5SfeDz7oqMQ==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.35.1.tgz",
+      "integrity": "sha512-v6F8JNXgeBWI4pzZn36hT2HXXzoBBBJuOYvoQiaQaEEjdi5STzux3Yj8v7ODIpx36i/5s8TdzuQ54TPc5AITQQ==",
       "dev": true,
       "dependencies": {
         "@types/json-schema": "^7.0.9",
-        "@typescript-eslint/scope-manager": "5.33.1",
-        "@typescript-eslint/types": "5.33.1",
-        "@typescript-eslint/typescript-estree": "5.33.1",
+        "@typescript-eslint/scope-manager": "5.35.1",
+        "@typescript-eslint/types": "5.35.1",
+        "@typescript-eslint/typescript-estree": "5.35.1",
         "eslint-scope": "^5.1.1",
         "eslint-utils": "^3.0.0"
       },
@@ -636,12 +636,12 @@
       }
     },
     "node_modules/@typescript-eslint/visitor-keys": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.33.1.tgz",
-      "integrity": "sha512-nwIxOK8Z2MPWltLKMLOEZwmfBZReqUdbEoHQXeCpa+sRVARe5twpJGHCB4dk9903Yaf0nMAlGbQfaAH92F60eg==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.35.1.tgz",
+      "integrity": "sha512-cEB1DvBVo1bxbW/S5axbGPE6b7FIMAbo3w+AGq6zNDA7+NYJOIkKj/sInfTv4edxd4PxJSgdN4t6/pbvgA+n5g==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/types": "5.33.1",
+        "@typescript-eslint/types": "5.35.1",
         "eslint-visitor-keys": "^3.3.0"
       },
       "engines": {
@@ -3136,9 +3136,9 @@
       }
     },
     "node_modules/mongoose": {
-      "version": "6.5.2",
-      "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.5.2.tgz",
-      "integrity": "sha512-3CFDrSLtK2qjM1pZeZpLTUyqPRkc11Iuh74ZrwS4IwEJ3K2PqGnmyPLw7ex4Kzu37ujIMp3MAuiBlUjfrcb6hw==",
+      "version": "6.5.3",
+      "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.5.3.tgz",
+      "integrity": "sha512-0L2ZOPzNQ7kcIgpdfpmVXc+/SypdhzcTlaHXYa983u1lrVp7/i3ekwHpPiTXxYBvV6FwBAsFoHI7+Ovf8tp3Mg==",
       "dependencies": {
         "bson": "^4.6.5",
         "kareem": "2.4.1",
@@ -3749,15 +3749,15 @@
       }
     },
     "node_modules/redis": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/redis/-/redis-4.2.0.tgz",
-      "integrity": "sha512-bCR0gKVhIXFg8zCQjXEANzgI01DDixtPZgIUZHBCmwqixnu+MK3Tb2yqGjh+HCLASQVVgApiwhNkv+FoedZOGQ==",
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/redis/-/redis-4.3.0.tgz",
+      "integrity": "sha512-RXRUor0iU1vizu4viHoUyLpe1ZO/RngZp0V9DyXBHTI+7tC7rEz6Wzn4Sv9v0tTJeqGAzdJ+q5YVbNKKQ5hX9A==",
       "dependencies": {
         "@redis/bloom": "1.0.2",
-        "@redis/client": "1.2.0",
+        "@redis/client": "1.3.0",
         "@redis/graph": "1.0.1",
         "@redis/json": "1.0.3",
-        "@redis/search": "1.0.6",
+        "@redis/search": "1.1.0",
         "@redis/time-series": "1.0.3"
       }
     },
@@ -4462,9 +4462,9 @@
       }
     },
     "node_modules/typescript": {
-      "version": "4.7.4",
-      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
-      "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
+      "version": "4.8.2",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz",
+      "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==",
       "dev": true,
       "bin": {
         "tsc": "bin/tsc",
@@ -4836,9 +4836,9 @@
       "requires": {}
     },
     "@redis/client": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/@redis/client/-/client-1.2.0.tgz",
-      "integrity": "sha512-a8Nlw5fv2EIAFJxTDSSDVUT7yfBGpZO96ybZXzQpgkyLg/dxtQ1uiwTc0EGfzg1mrPjZokeBSEGTbGXekqTNOg==",
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/@redis/client/-/client-1.3.0.tgz",
+      "integrity": "sha512-XCFV60nloXAefDsPnYMjHGtvbtHR8fV5Om8cQ0JYqTNbWcQo/4AryzJ2luRj4blveWazRK/j40gES8M7Cp6cfQ==",
       "requires": {
         "cluster-key-slot": "1.1.0",
         "generic-pool": "3.8.2",
@@ -4858,9 +4858,9 @@
       "requires": {}
     },
     "@redis/search": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/@redis/search/-/search-1.0.6.tgz",
-      "integrity": "sha512-pP+ZQRis5P21SD6fjyCeLcQdps+LuTzp2wdUbzxEmNhleighDDTD5ck8+cYof+WLec4csZX7ks+BuoMw0RaZrA==",
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/@redis/search/-/search-1.1.0.tgz",
+      "integrity": "sha512-NyFZEVnxIJEybpy+YskjgOJRNsfTYqaPbK/Buv6W2kmFNaRk85JiqjJZA5QkRmWvGbyQYwoO5QfDi2wHskKrQQ==",
       "requires": {}
     },
     "@redis/time-series": {
@@ -4906,9 +4906,9 @@
       "dev": true
     },
     "@types/node": {
-      "version": "17.0.40",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.40.tgz",
-      "integrity": "sha512-UXdBxNGqTMtm7hCwh9HtncFVLrXoqA3oJW30j6XWp5BH/wu3mVeaxo7cq5benFdBw34HB3XDT2TRPI7rXZ+mDg=="
+      "version": "18.7.13",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.13.tgz",
+      "integrity": "sha512-46yIhxSe5xEaJZXWdIBP7GU4HDTG8/eo0qd9atdiL+lFpA03y8KS+lkTN834TWJj5767GbWv4n/P6efyTFt1Dw=="
     },
     "@types/webidl-conversions": {
       "version": "6.1.1",
@@ -4925,14 +4925,14 @@
       }
     },
     "@typescript-eslint/eslint-plugin": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.33.1.tgz",
-      "integrity": "sha512-S1iZIxrTvKkU3+m63YUOxYPKaP+yWDQrdhxTglVDVEVBf+aCSw85+BmJnyUaQQsk5TXFG/LpBu9fa+LrAQ91fQ==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.35.1.tgz",
+      "integrity": "sha512-RBZZXZlI4XCY4Wzgy64vB+0slT9+yAPQRjj/HSaRwUot33xbDjF1oN9BLwOLTewoOI0jothIltZRe9uJCHf8gg==",
       "dev": true,
       "requires": {
-        "@typescript-eslint/scope-manager": "5.33.1",
-        "@typescript-eslint/type-utils": "5.33.1",
-        "@typescript-eslint/utils": "5.33.1",
+        "@typescript-eslint/scope-manager": "5.35.1",
+        "@typescript-eslint/type-utils": "5.35.1",
+        "@typescript-eslint/utils": "5.35.1",
         "debug": "^4.3.4",
         "functional-red-black-tree": "^1.0.1",
         "ignore": "^5.2.0",
@@ -4959,14 +4959,14 @@
       }
     },
     "@typescript-eslint/parser": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.33.1.tgz",
-      "integrity": "sha512-IgLLtW7FOzoDlmaMoXdxG8HOCByTBXrB1V2ZQYSEV1ggMmJfAkMWTwUjjzagS6OkfpySyhKFkBw7A9jYmcHpZA==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.35.1.tgz",
+      "integrity": "sha512-XL2TBTSrh3yWAsMYpKseBYTVpvudNf69rPOWXWVBI08My2JVT5jR66eTt4IgQFHA/giiKJW5dUD4x/ZviCKyGg==",
       "dev": true,
       "requires": {
-        "@typescript-eslint/scope-manager": "5.33.1",
-        "@typescript-eslint/types": "5.33.1",
-        "@typescript-eslint/typescript-estree": "5.33.1",
+        "@typescript-eslint/scope-manager": "5.35.1",
+        "@typescript-eslint/types": "5.35.1",
+        "@typescript-eslint/typescript-estree": "5.35.1",
         "debug": "^4.3.4"
       },
       "dependencies": {
@@ -4988,22 +4988,22 @@
       }
     },
     "@typescript-eslint/scope-manager": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.33.1.tgz",
-      "integrity": "sha512-8ibcZSqy4c5m69QpzJn8XQq9NnqAToC8OdH/W6IXPXv83vRyEDPYLdjAlUx8h/rbusq6MkW4YdQzURGOqsn3CA==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.35.1.tgz",
+      "integrity": "sha512-kCYRSAzIW9ByEIzmzGHE50NGAvAP3wFTaZevgWva7GpquDyFPFcmvVkFJGWJJktg/hLwmys/FZwqM9EKr2u24Q==",
       "dev": true,
       "requires": {
-        "@typescript-eslint/types": "5.33.1",
-        "@typescript-eslint/visitor-keys": "5.33.1"
+        "@typescript-eslint/types": "5.35.1",
+        "@typescript-eslint/visitor-keys": "5.35.1"
       }
     },
     "@typescript-eslint/type-utils": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.33.1.tgz",
-      "integrity": "sha512-X3pGsJsD8OiqhNa5fim41YtlnyiWMF/eKsEZGsHID2HcDqeSC5yr/uLOeph8rNF2/utwuI0IQoAK3fpoxcLl2g==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.35.1.tgz",
+      "integrity": "sha512-8xT8ljvo43Mp7BiTn1vxLXkjpw8wS4oAc00hMSB4L1/jIiYbjjnc3Qp2GAUOG/v8zsNCd1qwcqfCQ0BuishHkw==",
       "dev": true,
       "requires": {
-        "@typescript-eslint/utils": "5.33.1",
+        "@typescript-eslint/utils": "5.35.1",
         "debug": "^4.3.4",
         "tsutils": "^3.21.0"
       },
@@ -5026,19 +5026,19 @@
       }
     },
     "@typescript-eslint/types": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.33.1.tgz",
-      "integrity": "sha512-7K6MoQPQh6WVEkMrMW5QOA5FO+BOwzHSNd0j3+BlBwd6vtzfZceJ8xJ7Um2XDi/O3umS8/qDX6jdy2i7CijkwQ==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.35.1.tgz",
+      "integrity": "sha512-FDaujtsH07VHzG0gQ6NDkVVhi1+rhq0qEvzHdJAQjysN+LHDCKDKCBRlZFFE0ec0jKxiv0hN63SNfExy0KrbQQ==",
       "dev": true
     },
     "@typescript-eslint/typescript-estree": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.33.1.tgz",
-      "integrity": "sha512-JOAzJ4pJ+tHzA2pgsWQi4804XisPHOtbvwUyqsuuq8+y5B5GMZs7lI1xDWs6V2d7gE/Ez5bTGojSK12+IIPtXA==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.35.1.tgz",
+      "integrity": "sha512-JUqE1+VRTGyoXlDWWjm6MdfpBYVq+hixytrv1oyjYIBEOZhBCwtpp5ZSvBt4wIA1MKWlnaC2UXl2XmYGC3BoQA==",
       "dev": true,
       "requires": {
-        "@typescript-eslint/types": "5.33.1",
-        "@typescript-eslint/visitor-keys": "5.33.1",
+        "@typescript-eslint/types": "5.35.1",
+        "@typescript-eslint/visitor-keys": "5.35.1",
         "debug": "^4.3.4",
         "globby": "^11.1.0",
         "is-glob": "^4.0.3",
@@ -5064,15 +5064,15 @@
       }
     },
     "@typescript-eslint/utils": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.33.1.tgz",
-      "integrity": "sha512-uphZjkMaZ4fE8CR4dU7BquOV6u0doeQAr8n6cQenl/poMaIyJtBu8eys5uk6u5HiDH01Mj5lzbJ5SfeDz7oqMQ==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.35.1.tgz",
+      "integrity": "sha512-v6F8JNXgeBWI4pzZn36hT2HXXzoBBBJuOYvoQiaQaEEjdi5STzux3Yj8v7ODIpx36i/5s8TdzuQ54TPc5AITQQ==",
       "dev": true,
       "requires": {
         "@types/json-schema": "^7.0.9",
-        "@typescript-eslint/scope-manager": "5.33.1",
-        "@typescript-eslint/types": "5.33.1",
-        "@typescript-eslint/typescript-estree": "5.33.1",
+        "@typescript-eslint/scope-manager": "5.35.1",
+        "@typescript-eslint/types": "5.35.1",
+        "@typescript-eslint/typescript-estree": "5.35.1",
         "eslint-scope": "^5.1.1",
         "eslint-utils": "^3.0.0"
       },
@@ -5096,12 +5096,12 @@
       }
     },
     "@typescript-eslint/visitor-keys": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.33.1.tgz",
-      "integrity": "sha512-nwIxOK8Z2MPWltLKMLOEZwmfBZReqUdbEoHQXeCpa+sRVARe5twpJGHCB4dk9903Yaf0nMAlGbQfaAH92F60eg==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.35.1.tgz",
+      "integrity": "sha512-cEB1DvBVo1bxbW/S5axbGPE6b7FIMAbo3w+AGq6zNDA7+NYJOIkKj/sInfTv4edxd4PxJSgdN4t6/pbvgA+n5g==",
       "dev": true,
       "requires": {
-        "@typescript-eslint/types": "5.33.1",
+        "@typescript-eslint/types": "5.35.1",
         "eslint-visitor-keys": "^3.3.0"
       }
     },
@@ -6916,9 +6916,9 @@
       }
     },
     "mongoose": {
-      "version": "6.5.2",
-      "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.5.2.tgz",
-      "integrity": "sha512-3CFDrSLtK2qjM1pZeZpLTUyqPRkc11Iuh74ZrwS4IwEJ3K2PqGnmyPLw7ex4Kzu37ujIMp3MAuiBlUjfrcb6hw==",
+      "version": "6.5.3",
+      "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-6.5.3.tgz",
+      "integrity": "sha512-0L2ZOPzNQ7kcIgpdfpmVXc+/SypdhzcTlaHXYa983u1lrVp7/i3ekwHpPiTXxYBvV6FwBAsFoHI7+Ovf8tp3Mg==",
       "requires": {
         "bson": "^4.6.5",
         "kareem": "2.4.1",
@@ -7354,15 +7354,15 @@
       }
     },
     "redis": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/redis/-/redis-4.2.0.tgz",
-      "integrity": "sha512-bCR0gKVhIXFg8zCQjXEANzgI01DDixtPZgIUZHBCmwqixnu+MK3Tb2yqGjh+HCLASQVVgApiwhNkv+FoedZOGQ==",
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/redis/-/redis-4.3.0.tgz",
+      "integrity": "sha512-RXRUor0iU1vizu4viHoUyLpe1ZO/RngZp0V9DyXBHTI+7tC7rEz6Wzn4Sv9v0tTJeqGAzdJ+q5YVbNKKQ5hX9A==",
       "requires": {
         "@redis/bloom": "1.0.2",
-        "@redis/client": "1.2.0",
+        "@redis/client": "1.3.0",
         "@redis/graph": "1.0.1",
         "@redis/json": "1.0.3",
-        "@redis/search": "1.0.6",
+        "@redis/search": "1.1.0",
         "@redis/time-series": "1.0.3"
       }
     },
@@ -7864,9 +7864,9 @@
       }
     },
     "typescript": {
-      "version": "4.7.4",
-      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
-      "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
+      "version": "4.8.2",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz",
+      "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==",
       "dev": true
     },
     "unbox-primitive": {

+ 10 - 10
backend/package.json

@@ -1,7 +1,7 @@
 {
   "name": "musare-backend",
   "private": true,
-  "version": "3.7.0-rc2",
+  "version": "3.7.0",
   "type": "module",
   "description": "An open-source collaborative music listening and catalogue curation application. Currently supporting YouTube based content.",
   "main": "index.js",
@@ -9,11 +9,11 @@
   "license": "GPL-3.0",
   "repository": "https://github.com/Musare/Musare",
   "scripts": {
-    "dev": "npx nodemon --es-module-specifier-resolution=node",
-    "docker:dev": "npx nodemon --es-module-specifier-resolution=node --legacy-watch --no-stdin /opt/app",
+    "dev": "nodemon --es-module-specifier-resolution=node",
+    "docker:dev": "nodemon --es-module-specifier-resolution=node --legacy-watch --no-stdin /opt/app",
     "docker:prod": "node --es-module-specifier-resolution=node /opt/app",
-    "lint": "npx eslint --cache logic",
-    "typescript": "npx tsc --noEmit --skipLibCheck"
+    "lint": "eslint --cache logic",
+    "typescript": "tsc --noEmit --skipLibCheck"
   },
   "dependencies": {
     "async": "^3.2.4",
@@ -26,10 +26,10 @@
     "cors": "^2.8.5",
     "express": "^4.18.1",
     "moment": "^2.29.4",
-    "mongoose": "^6.5.2",
+    "mongoose": "^6.5.3",
     "nodemailer": "^6.7.8",
     "oauth": "^0.10.0",
-    "redis": "^4.2.0",
+    "redis": "^4.3.0",
     "retry-axios": "^3.0.0",
     "sha256": "^0.2.0",
     "socks": "^2.7.0",
@@ -37,8 +37,8 @@
     "ws": "^8.8.1"
   },
   "devDependencies": {
-    "@typescript-eslint/eslint-plugin": "^5.33.1",
-    "@typescript-eslint/parser": "^5.33.1",
+    "@typescript-eslint/eslint-plugin": "^5.35.1",
+    "@typescript-eslint/parser": "^5.35.1",
     "eslint": "^8.22.0",
     "eslint-config-airbnb-base": "^15.0.0",
     "eslint-config-prettier": "^8.5.0",
@@ -49,6 +49,6 @@
     "prettier": "2.7.1",
     "trace-unhandled": "^2.0.1",
     "ts-node": "^10.9.1",
-    "typescript": "^4.7.4"
+    "typescript": "^4.8.2"
   }
 }

+ 124 - 124
frontend/package-lock.json

@@ -1,12 +1,12 @@
 {
   "name": "musare-frontend",
-  "version": "3.7.0-rc2",
+  "version": "3.7.0",
   "lockfileVersion": 2,
   "requires": true,
   "packages": {
     "": {
       "name": "musare-frontend",
-      "version": "3.7.0-rc2",
+      "version": "3.7.0",
       "license": "GPL-3.0",
       "dependencies": {
         "@vitejs/plugin-vue": "^3.0.3",
@@ -14,31 +14,31 @@
         "chart.js": "^3.9.1",
         "config": "^3.3.7",
         "date-fns": "^2.29.2",
-        "dompurify": "^2.3.10",
+        "dompurify": "^2.4.0",
         "eslint-config-airbnb-base": "^15.0.0",
         "lofig": "^1.3.4",
-        "marked": "^4.0.18",
+        "marked": "^4.0.19",
         "normalize.css": "^8.0.1",
-        "pinia": "^2.0.19",
+        "pinia": "^2.0.21",
         "toasters": "^2.3.1",
-        "typescript": "^4.7.4",
+        "typescript": "^4.8.2",
         "vite": "^3.0.9",
         "vue": "^3.2.36",
         "vue-chartjs": "^4.1.1",
         "vue-content-loader": "^2.0.1",
         "vue-draggable-list": "^0.1.1",
         "vue-json-pretty": "^2.2.0",
-        "vue-router": "^4.1.3",
+        "vue-router": "^4.1.5",
         "vue-tippy": "^6.0.0-alpha.63"
       },
       "devDependencies": {
-        "@typescript-eslint/eslint-plugin": "^5.33.1",
-        "@typescript-eslint/parser": "^5.33.1",
+        "@typescript-eslint/eslint-plugin": "^5.35.1",
+        "@typescript-eslint/parser": "^5.35.1",
         "eslint": "^8.22.0",
         "eslint-config-prettier": "^8.5.0",
         "eslint-plugin-import": "^2.26.0",
         "eslint-plugin-prettier": "^4.2.1",
-        "eslint-plugin-vue": "^9.3.0",
+        "eslint-plugin-vue": "^9.4.0",
         "less": "^4.1.3",
         "prettier": "^2.7.1",
         "vite-plugin-dynamic-import": "^1.1.1",
@@ -695,14 +695,14 @@
       "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
     },
     "node_modules/@typescript-eslint/eslint-plugin": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.33.1.tgz",
-      "integrity": "sha512-S1iZIxrTvKkU3+m63YUOxYPKaP+yWDQrdhxTglVDVEVBf+aCSw85+BmJnyUaQQsk5TXFG/LpBu9fa+LrAQ91fQ==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.35.1.tgz",
+      "integrity": "sha512-RBZZXZlI4XCY4Wzgy64vB+0slT9+yAPQRjj/HSaRwUot33xbDjF1oN9BLwOLTewoOI0jothIltZRe9uJCHf8gg==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/scope-manager": "5.33.1",
-        "@typescript-eslint/type-utils": "5.33.1",
-        "@typescript-eslint/utils": "5.33.1",
+        "@typescript-eslint/scope-manager": "5.35.1",
+        "@typescript-eslint/type-utils": "5.35.1",
+        "@typescript-eslint/utils": "5.35.1",
         "debug": "^4.3.4",
         "functional-red-black-tree": "^1.0.1",
         "ignore": "^5.2.0",
@@ -743,14 +743,14 @@
       }
     },
     "node_modules/@typescript-eslint/parser": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.33.1.tgz",
-      "integrity": "sha512-IgLLtW7FOzoDlmaMoXdxG8HOCByTBXrB1V2ZQYSEV1ggMmJfAkMWTwUjjzagS6OkfpySyhKFkBw7A9jYmcHpZA==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.35.1.tgz",
+      "integrity": "sha512-XL2TBTSrh3yWAsMYpKseBYTVpvudNf69rPOWXWVBI08My2JVT5jR66eTt4IgQFHA/giiKJW5dUD4x/ZviCKyGg==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/scope-manager": "5.33.1",
-        "@typescript-eslint/types": "5.33.1",
-        "@typescript-eslint/typescript-estree": "5.33.1",
+        "@typescript-eslint/scope-manager": "5.35.1",
+        "@typescript-eslint/types": "5.35.1",
+        "@typescript-eslint/typescript-estree": "5.35.1",
         "debug": "^4.3.4"
       },
       "engines": {
@@ -770,13 +770,13 @@
       }
     },
     "node_modules/@typescript-eslint/scope-manager": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.33.1.tgz",
-      "integrity": "sha512-8ibcZSqy4c5m69QpzJn8XQq9NnqAToC8OdH/W6IXPXv83vRyEDPYLdjAlUx8h/rbusq6MkW4YdQzURGOqsn3CA==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.35.1.tgz",
+      "integrity": "sha512-kCYRSAzIW9ByEIzmzGHE50NGAvAP3wFTaZevgWva7GpquDyFPFcmvVkFJGWJJktg/hLwmys/FZwqM9EKr2u24Q==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/types": "5.33.1",
-        "@typescript-eslint/visitor-keys": "5.33.1"
+        "@typescript-eslint/types": "5.35.1",
+        "@typescript-eslint/visitor-keys": "5.35.1"
       },
       "engines": {
         "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -787,12 +787,12 @@
       }
     },
     "node_modules/@typescript-eslint/type-utils": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.33.1.tgz",
-      "integrity": "sha512-X3pGsJsD8OiqhNa5fim41YtlnyiWMF/eKsEZGsHID2HcDqeSC5yr/uLOeph8rNF2/utwuI0IQoAK3fpoxcLl2g==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.35.1.tgz",
+      "integrity": "sha512-8xT8ljvo43Mp7BiTn1vxLXkjpw8wS4oAc00hMSB4L1/jIiYbjjnc3Qp2GAUOG/v8zsNCd1qwcqfCQ0BuishHkw==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/utils": "5.33.1",
+        "@typescript-eslint/utils": "5.35.1",
         "debug": "^4.3.4",
         "tsutils": "^3.21.0"
       },
@@ -813,9 +813,9 @@
       }
     },
     "node_modules/@typescript-eslint/types": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.33.1.tgz",
-      "integrity": "sha512-7K6MoQPQh6WVEkMrMW5QOA5FO+BOwzHSNd0j3+BlBwd6vtzfZceJ8xJ7Um2XDi/O3umS8/qDX6jdy2i7CijkwQ==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.35.1.tgz",
+      "integrity": "sha512-FDaujtsH07VHzG0gQ6NDkVVhi1+rhq0qEvzHdJAQjysN+LHDCKDKCBRlZFFE0ec0jKxiv0hN63SNfExy0KrbQQ==",
       "dev": true,
       "engines": {
         "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -826,13 +826,13 @@
       }
     },
     "node_modules/@typescript-eslint/typescript-estree": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.33.1.tgz",
-      "integrity": "sha512-JOAzJ4pJ+tHzA2pgsWQi4804XisPHOtbvwUyqsuuq8+y5B5GMZs7lI1xDWs6V2d7gE/Ez5bTGojSK12+IIPtXA==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.35.1.tgz",
+      "integrity": "sha512-JUqE1+VRTGyoXlDWWjm6MdfpBYVq+hixytrv1oyjYIBEOZhBCwtpp5ZSvBt4wIA1MKWlnaC2UXl2XmYGC3BoQA==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/types": "5.33.1",
-        "@typescript-eslint/visitor-keys": "5.33.1",
+        "@typescript-eslint/types": "5.35.1",
+        "@typescript-eslint/visitor-keys": "5.35.1",
         "debug": "^4.3.4",
         "globby": "^11.1.0",
         "is-glob": "^4.0.3",
@@ -868,15 +868,15 @@
       }
     },
     "node_modules/@typescript-eslint/utils": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.33.1.tgz",
-      "integrity": "sha512-uphZjkMaZ4fE8CR4dU7BquOV6u0doeQAr8n6cQenl/poMaIyJtBu8eys5uk6u5HiDH01Mj5lzbJ5SfeDz7oqMQ==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.35.1.tgz",
+      "integrity": "sha512-v6F8JNXgeBWI4pzZn36hT2HXXzoBBBJuOYvoQiaQaEEjdi5STzux3Yj8v7ODIpx36i/5s8TdzuQ54TPc5AITQQ==",
       "dev": true,
       "dependencies": {
         "@types/json-schema": "^7.0.9",
-        "@typescript-eslint/scope-manager": "5.33.1",
-        "@typescript-eslint/types": "5.33.1",
-        "@typescript-eslint/typescript-estree": "5.33.1",
+        "@typescript-eslint/scope-manager": "5.35.1",
+        "@typescript-eslint/types": "5.35.1",
+        "@typescript-eslint/typescript-estree": "5.35.1",
         "eslint-scope": "^5.1.1",
         "eslint-utils": "^3.0.0"
       },
@@ -892,12 +892,12 @@
       }
     },
     "node_modules/@typescript-eslint/visitor-keys": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.33.1.tgz",
-      "integrity": "sha512-nwIxOK8Z2MPWltLKMLOEZwmfBZReqUdbEoHQXeCpa+sRVARe5twpJGHCB4dk9903Yaf0nMAlGbQfaAH92F60eg==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.35.1.tgz",
+      "integrity": "sha512-cEB1DvBVo1bxbW/S5axbGPE6b7FIMAbo3w+AGq6zNDA7+NYJOIkKj/sInfTv4edxd4PxJSgdN4t6/pbvgA+n5g==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/types": "5.33.1",
+        "@typescript-eslint/types": "5.35.1",
         "eslint-visitor-keys": "^3.3.0"
       },
       "engines": {
@@ -1594,9 +1594,9 @@
       }
     },
     "node_modules/dompurify": {
-      "version": "2.3.10",
-      "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.3.10.tgz",
-      "integrity": "sha512-o7Fg/AgC7p/XpKjf/+RC3Ok6k4St5F7Q6q6+Nnm3p2zGWioAY6dh0CbbuwOhH2UcSzKsdniE/YnE2/92JcsA+g=="
+      "version": "2.4.0",
+      "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.0.tgz",
+      "integrity": "sha512-Be9tbQMZds4a3C6xTmz68NlMfeONA//4dOavl/1rNw50E+/QO0KVpbcU0PcaW0nsQxurXls9ZocqFxk8R2mWEA=="
     },
     "node_modules/electron-to-chromium": {
       "version": "1.4.146",
@@ -2220,9 +2220,9 @@
       }
     },
     "node_modules/eslint-plugin-vue": {
-      "version": "9.3.0",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.3.0.tgz",
-      "integrity": "sha512-iscKKkBZgm6fGZwFt6poRoWC0Wy2dQOlwUPW++CiPoQiw1enctV2Hj5DBzzjJZfyqs+FAXhgzL4q0Ww03AgSmQ==",
+      "version": "9.4.0",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.4.0.tgz",
+      "integrity": "sha512-Nzz2QIJ8FG+rtJaqT/7/ru5ie2XgT9KCudkbN0y3uFYhQ41nuHEaboLAiqwMcK006hZPQv/rVMRhUIwEGhIvfQ==",
       "dev": true,
       "dependencies": {
         "eslint-utils": "^3.0.0",
@@ -3326,9 +3326,9 @@
       }
     },
     "node_modules/marked": {
-      "version": "4.0.18",
-      "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.18.tgz",
-      "integrity": "sha512-wbLDJ7Zh0sqA0Vdg6aqlbT+yPxqLblpAZh1mK2+AO2twQkPywvvqQNfEPVwSSRjZ7dZcdeVBIAgiO7MMp3Dszw==",
+      "version": "4.0.19",
+      "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.19.tgz",
+      "integrity": "sha512-rgQF/OxOiLcvgUAj1Q1tAf4Bgxn5h5JZTp04Fx4XUkVhs7B+7YA9JEWJhJpoO8eJt8MkZMwqLCNeNqj1bCREZQ==",
       "bin": {
         "marked": "bin/marked.js"
       },
@@ -3680,9 +3680,9 @@
       }
     },
     "node_modules/pinia": {
-      "version": "2.0.19",
-      "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.19.tgz",
-      "integrity": "sha512-Q/UQrmFLDMdlCkLfM5rGw1Ug0A7dy0G7NtBusMQSK+TNjf3CV/pO0RqblNIfuurWl42byTjM6HIemCWOfo8KXA==",
+      "version": "2.0.21",
+      "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.21.tgz",
+      "integrity": "sha512-6ol04PtL29O0Z6JHI47O3JUSoyOJ7Og0rstXrHVMZSP4zAldsQBXJCNF0i/H7m8vp/Hjd/CSmuPl7C5QAwpeWQ==",
       "dependencies": {
         "@vue/devtools-api": "^6.2.1",
         "vue-demi": "*"
@@ -4367,9 +4367,9 @@
       }
     },
     "node_modules/typescript": {
-      "version": "4.7.4",
-      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
-      "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
+      "version": "4.8.2",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz",
+      "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==",
       "bin": {
         "tsc": "bin/tsc",
         "tsserver": "bin/tsserver"
@@ -4580,9 +4580,9 @@
       }
     },
     "node_modules/vue-router": {
-      "version": "4.1.3",
-      "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.1.3.tgz",
-      "integrity": "sha512-XvK81bcYglKiayT7/vYAg/f36ExPC4t90R/HIpzrZ5x+17BOWptXLCrEPufGgZeuq68ww4ekSIMBZY1qdUdfjA==",
+      "version": "4.1.5",
+      "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.1.5.tgz",
+      "integrity": "sha512-IsvoF5D2GQ/EGTs/Th4NQms9gd2NSqV+yylxIyp/OYp8xOwxmU8Kj/74E9DTSYAyH5LX7idVUngN3JSj1X4xcQ==",
       "dependencies": {
         "@vue/devtools-api": "^6.1.4"
       },
@@ -5173,14 +5173,14 @@
       "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
     },
     "@typescript-eslint/eslint-plugin": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.33.1.tgz",
-      "integrity": "sha512-S1iZIxrTvKkU3+m63YUOxYPKaP+yWDQrdhxTglVDVEVBf+aCSw85+BmJnyUaQQsk5TXFG/LpBu9fa+LrAQ91fQ==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.35.1.tgz",
+      "integrity": "sha512-RBZZXZlI4XCY4Wzgy64vB+0slT9+yAPQRjj/HSaRwUot33xbDjF1oN9BLwOLTewoOI0jothIltZRe9uJCHf8gg==",
       "dev": true,
       "requires": {
-        "@typescript-eslint/scope-manager": "5.33.1",
-        "@typescript-eslint/type-utils": "5.33.1",
-        "@typescript-eslint/utils": "5.33.1",
+        "@typescript-eslint/scope-manager": "5.35.1",
+        "@typescript-eslint/type-utils": "5.35.1",
+        "@typescript-eslint/utils": "5.35.1",
         "debug": "^4.3.4",
         "functional-red-black-tree": "^1.0.1",
         "ignore": "^5.2.0",
@@ -5201,52 +5201,52 @@
       }
     },
     "@typescript-eslint/parser": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.33.1.tgz",
-      "integrity": "sha512-IgLLtW7FOzoDlmaMoXdxG8HOCByTBXrB1V2ZQYSEV1ggMmJfAkMWTwUjjzagS6OkfpySyhKFkBw7A9jYmcHpZA==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.35.1.tgz",
+      "integrity": "sha512-XL2TBTSrh3yWAsMYpKseBYTVpvudNf69rPOWXWVBI08My2JVT5jR66eTt4IgQFHA/giiKJW5dUD4x/ZviCKyGg==",
       "dev": true,
       "requires": {
-        "@typescript-eslint/scope-manager": "5.33.1",
-        "@typescript-eslint/types": "5.33.1",
-        "@typescript-eslint/typescript-estree": "5.33.1",
+        "@typescript-eslint/scope-manager": "5.35.1",
+        "@typescript-eslint/types": "5.35.1",
+        "@typescript-eslint/typescript-estree": "5.35.1",
         "debug": "^4.3.4"
       }
     },
     "@typescript-eslint/scope-manager": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.33.1.tgz",
-      "integrity": "sha512-8ibcZSqy4c5m69QpzJn8XQq9NnqAToC8OdH/W6IXPXv83vRyEDPYLdjAlUx8h/rbusq6MkW4YdQzURGOqsn3CA==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.35.1.tgz",
+      "integrity": "sha512-kCYRSAzIW9ByEIzmzGHE50NGAvAP3wFTaZevgWva7GpquDyFPFcmvVkFJGWJJktg/hLwmys/FZwqM9EKr2u24Q==",
       "dev": true,
       "requires": {
-        "@typescript-eslint/types": "5.33.1",
-        "@typescript-eslint/visitor-keys": "5.33.1"
+        "@typescript-eslint/types": "5.35.1",
+        "@typescript-eslint/visitor-keys": "5.35.1"
       }
     },
     "@typescript-eslint/type-utils": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.33.1.tgz",
-      "integrity": "sha512-X3pGsJsD8OiqhNa5fim41YtlnyiWMF/eKsEZGsHID2HcDqeSC5yr/uLOeph8rNF2/utwuI0IQoAK3fpoxcLl2g==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.35.1.tgz",
+      "integrity": "sha512-8xT8ljvo43Mp7BiTn1vxLXkjpw8wS4oAc00hMSB4L1/jIiYbjjnc3Qp2GAUOG/v8zsNCd1qwcqfCQ0BuishHkw==",
       "dev": true,
       "requires": {
-        "@typescript-eslint/utils": "5.33.1",
+        "@typescript-eslint/utils": "5.35.1",
         "debug": "^4.3.4",
         "tsutils": "^3.21.0"
       }
     },
     "@typescript-eslint/types": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.33.1.tgz",
-      "integrity": "sha512-7K6MoQPQh6WVEkMrMW5QOA5FO+BOwzHSNd0j3+BlBwd6vtzfZceJ8xJ7Um2XDi/O3umS8/qDX6jdy2i7CijkwQ==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.35.1.tgz",
+      "integrity": "sha512-FDaujtsH07VHzG0gQ6NDkVVhi1+rhq0qEvzHdJAQjysN+LHDCKDKCBRlZFFE0ec0jKxiv0hN63SNfExy0KrbQQ==",
       "dev": true
     },
     "@typescript-eslint/typescript-estree": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.33.1.tgz",
-      "integrity": "sha512-JOAzJ4pJ+tHzA2pgsWQi4804XisPHOtbvwUyqsuuq8+y5B5GMZs7lI1xDWs6V2d7gE/Ez5bTGojSK12+IIPtXA==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.35.1.tgz",
+      "integrity": "sha512-JUqE1+VRTGyoXlDWWjm6MdfpBYVq+hixytrv1oyjYIBEOZhBCwtpp5ZSvBt4wIA1MKWlnaC2UXl2XmYGC3BoQA==",
       "dev": true,
       "requires": {
-        "@typescript-eslint/types": "5.33.1",
-        "@typescript-eslint/visitor-keys": "5.33.1",
+        "@typescript-eslint/types": "5.35.1",
+        "@typescript-eslint/visitor-keys": "5.35.1",
         "debug": "^4.3.4",
         "globby": "^11.1.0",
         "is-glob": "^4.0.3",
@@ -5266,26 +5266,26 @@
       }
     },
     "@typescript-eslint/utils": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.33.1.tgz",
-      "integrity": "sha512-uphZjkMaZ4fE8CR4dU7BquOV6u0doeQAr8n6cQenl/poMaIyJtBu8eys5uk6u5HiDH01Mj5lzbJ5SfeDz7oqMQ==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.35.1.tgz",
+      "integrity": "sha512-v6F8JNXgeBWI4pzZn36hT2HXXzoBBBJuOYvoQiaQaEEjdi5STzux3Yj8v7ODIpx36i/5s8TdzuQ54TPc5AITQQ==",
       "dev": true,
       "requires": {
         "@types/json-schema": "^7.0.9",
-        "@typescript-eslint/scope-manager": "5.33.1",
-        "@typescript-eslint/types": "5.33.1",
-        "@typescript-eslint/typescript-estree": "5.33.1",
+        "@typescript-eslint/scope-manager": "5.35.1",
+        "@typescript-eslint/types": "5.35.1",
+        "@typescript-eslint/typescript-estree": "5.35.1",
         "eslint-scope": "^5.1.1",
         "eslint-utils": "^3.0.0"
       }
     },
     "@typescript-eslint/visitor-keys": {
-      "version": "5.33.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.33.1.tgz",
-      "integrity": "sha512-nwIxOK8Z2MPWltLKMLOEZwmfBZReqUdbEoHQXeCpa+sRVARe5twpJGHCB4dk9903Yaf0nMAlGbQfaAH92F60eg==",
+      "version": "5.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.35.1.tgz",
+      "integrity": "sha512-cEB1DvBVo1bxbW/S5axbGPE6b7FIMAbo3w+AGq6zNDA7+NYJOIkKj/sInfTv4edxd4PxJSgdN4t6/pbvgA+n5g==",
       "dev": true,
       "requires": {
-        "@typescript-eslint/types": "5.33.1",
+        "@typescript-eslint/types": "5.35.1",
         "eslint-visitor-keys": "^3.3.0"
       },
       "dependencies": {
@@ -5821,9 +5821,9 @@
       }
     },
     "dompurify": {
-      "version": "2.3.10",
-      "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.3.10.tgz",
-      "integrity": "sha512-o7Fg/AgC7p/XpKjf/+RC3Ok6k4St5F7Q6q6+Nnm3p2zGWioAY6dh0CbbuwOhH2UcSzKsdniE/YnE2/92JcsA+g=="
+      "version": "2.4.0",
+      "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.0.tgz",
+      "integrity": "sha512-Be9tbQMZds4a3C6xTmz68NlMfeONA//4dOavl/1rNw50E+/QO0KVpbcU0PcaW0nsQxurXls9ZocqFxk8R2mWEA=="
     },
     "electron-to-chromium": {
       "version": "1.4.146",
@@ -6315,9 +6315,9 @@
       }
     },
     "eslint-plugin-vue": {
-      "version": "9.3.0",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.3.0.tgz",
-      "integrity": "sha512-iscKKkBZgm6fGZwFt6poRoWC0Wy2dQOlwUPW++CiPoQiw1enctV2Hj5DBzzjJZfyqs+FAXhgzL4q0Ww03AgSmQ==",
+      "version": "9.4.0",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.4.0.tgz",
+      "integrity": "sha512-Nzz2QIJ8FG+rtJaqT/7/ru5ie2XgT9KCudkbN0y3uFYhQ41nuHEaboLAiqwMcK006hZPQv/rVMRhUIwEGhIvfQ==",
       "dev": true,
       "requires": {
         "eslint-utils": "^3.0.0",
@@ -6974,9 +6974,9 @@
       }
     },
     "marked": {
-      "version": "4.0.18",
-      "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.18.tgz",
-      "integrity": "sha512-wbLDJ7Zh0sqA0Vdg6aqlbT+yPxqLblpAZh1mK2+AO2twQkPywvvqQNfEPVwSSRjZ7dZcdeVBIAgiO7MMp3Dszw=="
+      "version": "4.0.19",
+      "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.19.tgz",
+      "integrity": "sha512-rgQF/OxOiLcvgUAj1Q1tAf4Bgxn5h5JZTp04Fx4XUkVhs7B+7YA9JEWJhJpoO8eJt8MkZMwqLCNeNqj1bCREZQ=="
     },
     "merge2": {
       "version": "1.4.1",
@@ -7228,9 +7228,9 @@
       "optional": true
     },
     "pinia": {
-      "version": "2.0.19",
-      "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.19.tgz",
-      "integrity": "sha512-Q/UQrmFLDMdlCkLfM5rGw1Ug0A7dy0G7NtBusMQSK+TNjf3CV/pO0RqblNIfuurWl42byTjM6HIemCWOfo8KXA==",
+      "version": "2.0.21",
+      "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.21.tgz",
+      "integrity": "sha512-6ol04PtL29O0Z6JHI47O3JUSoyOJ7Og0rstXrHVMZSP4zAldsQBXJCNF0i/H7m8vp/Hjd/CSmuPl7C5QAwpeWQ==",
       "requires": {
         "@vue/devtools-api": "^6.2.1",
         "vue-demi": "*"
@@ -7695,9 +7695,9 @@
       "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
     },
     "typescript": {
-      "version": "4.7.4",
-      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
-      "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ=="
+      "version": "4.8.2",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz",
+      "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw=="
     },
     "unbox-primitive": {
       "version": "1.0.2",
@@ -7837,9 +7837,9 @@
       "requires": {}
     },
     "vue-router": {
-      "version": "4.1.3",
-      "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.1.3.tgz",
-      "integrity": "sha512-XvK81bcYglKiayT7/vYAg/f36ExPC4t90R/HIpzrZ5x+17BOWptXLCrEPufGgZeuq68ww4ekSIMBZY1qdUdfjA==",
+      "version": "4.1.5",
+      "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.1.5.tgz",
+      "integrity": "sha512-IsvoF5D2GQ/EGTs/Th4NQms9gd2NSqV+yylxIyp/OYp8xOwxmU8Kj/74E9DTSYAyH5LX7idVUngN3JSj1X4xcQ==",
       "requires": {
         "@vue/devtools-api": "^6.1.4"
       }

+ 13 - 13
frontend/package.json

@@ -5,26 +5,26 @@
     "*.vue"
   ],
   "private": true,
-  "version": "3.7.0-rc2",
+  "version": "3.7.0",
   "description": "An open-source collaborative music listening and catalogue curation application. Currently supporting YouTube based content.",
   "main": "main.js",
   "author": "Musare Team",
   "license": "GPL-3.0",
   "repository": "https://github.com/Musare/Musare",
   "scripts": {
-    "lint": "npx eslint --cache src --ext .js,.ts,.vue",
-    "dev": "npx vite",
-    "prod": "npx vite build --emptyOutDir",
-    "typescript": "npx vue-tsc --noEmit --skipLibCheck"
+    "lint": "eslint --cache src --ext .js,.ts,.vue",
+    "dev": "vite",
+    "prod": "vite build --emptyOutDir",
+    "typescript": "vue-tsc --noEmit --skipLibCheck"
   },
   "devDependencies": {
-    "@typescript-eslint/eslint-plugin": "^5.33.1",
-    "@typescript-eslint/parser": "^5.33.1",
+    "@typescript-eslint/eslint-plugin": "^5.35.1",
+    "@typescript-eslint/parser": "^5.35.1",
     "eslint": "^8.22.0",
     "eslint-config-prettier": "^8.5.0",
     "eslint-plugin-import": "^2.26.0",
     "eslint-plugin-prettier": "^4.2.1",
-    "eslint-plugin-vue": "^9.3.0",
+    "eslint-plugin-vue": "^9.4.0",
     "less": "^4.1.3",
     "prettier": "^2.7.1",
     "vite-plugin-dynamic-import": "^1.1.1",
@@ -37,21 +37,21 @@
     "chart.js": "^3.9.1",
     "config": "^3.3.7",
     "date-fns": "^2.29.2",
-    "dompurify": "^2.3.10",
+    "dompurify": "^2.4.0",
     "eslint-config-airbnb-base": "^15.0.0",
     "lofig": "^1.3.4",
-    "marked": "^4.0.18",
+    "marked": "^4.0.19",
     "normalize.css": "^8.0.1",
-    "pinia": "^2.0.19",
+    "pinia": "^2.0.21",
     "toasters": "^2.3.1",
-    "typescript": "^4.7.4",
+    "typescript": "^4.8.2",
     "vite": "^3.0.9",
     "vue": "^3.2.36",
     "vue-chartjs": "^4.1.1",
     "vue-content-loader": "^2.0.1",
     "vue-draggable-list": "^0.1.1",
     "vue-json-pretty": "^2.2.0",
-    "vue-router": "^4.1.3",
+    "vue-router": "^4.1.5",
     "vue-tippy": "^6.0.0-alpha.63"
   }
 }

+ 3 - 0
frontend/src/App.vue

@@ -611,6 +611,7 @@ body {
 
 #root {
 	height: 100%;
+	max-width: 100%;
 }
 
 .content-wrapper {
@@ -782,6 +783,7 @@ textarea {
 
 .upper-container {
 	height: 100%;
+	max-width: 100%;
 }
 
 .main-container {
@@ -789,6 +791,7 @@ textarea {
 	min-height: 100vh;
 	display: flex;
 	flex-direction: column;
+	max-width: 100%;
 
 	&.main-container-modal-active {
 		height: 100% !important;

+ 17 - 9
frontend/src/pages/Profile/index.vue

@@ -166,12 +166,6 @@ onMounted(() => {
 </template>
 
 <style lang="less" scoped>
-@media only screen and (max-width: 1250px) {
-	.bottom-section .content {
-		width: 650px !important;
-	}
-}
-
 @media only screen and (max-width: 900px) {
 	.info-section {
 		margin-top: 0 !important;
@@ -229,8 +223,22 @@ onMounted(() => {
 	}
 }
 
+@media only screen and (max-width: 500px) {
+	.bottom-section {
+		padding: 12px;
+		:deep(.content) {
+			padding: 30px 25px !important;
+			margin-left: 0;
+			margin-right: 0;
+		}
+	}
+}
+
+:deep(.container) {
+	max-width: 100%;
+}
+
 .info-section {
-	width: 912px;
 	max-width: 100%;
 	margin-left: auto;
 	margin-right: auto;
@@ -321,7 +329,7 @@ onMounted(() => {
 	}
 
 	.bio-row {
-		max-width: 608px;
+		max-width: calc(min(608px, 100%));
 		margin-bottom: 24px;
 		margin-left: auto;
 		margin-right: auto;
@@ -330,7 +338,7 @@ onMounted(() => {
 	}
 
 	.date-location-row {
-		max-width: 608px;
+		max-width: calc(min(608px, 100%));
 		margin-left: auto;
 		margin-right: auto;
 		margin-bottom: 24px;