summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--api/package.json6
-rw-r--r--bundle/package-lock.json209
-rw-r--r--bundle/package.json6
-rw-r--r--bundle/tsconfig.json2
-rw-r--r--cdn/package.json6
-rw-r--r--gateway/package.json6
-rw-r--r--package-lock.json242
-rw-r--r--util/package-lock.json1022
-rw-r--r--util/package.json9
-rw-r--r--util/src/fetch.js1
-rw-r--r--util/src/index.ts1
-rw-r--r--util/src/util/AutoUpdate.ts2
-rw-r--r--util/src/util/cdn.ts3
13 files changed, 259 insertions, 1256 deletions
diff --git a/api/package.json b/api/package.json
index 8f9d1c8f..f8d8376e 100644
--- a/api/package.json
+++ b/api/package.json
@@ -39,6 +39,7 @@
 		"@babel/core": "^7.18.9",
 		"@babel/preset-env": "^7.18.9",
 		"@babel/preset-typescript": "^7.15.0",
+		"@ovos-media/ts-transform-paths": "^1.7.18-1",
 		"@types/amqplib": "^0.8.1",
 		"@types/bcrypt": "^5.0.0",
 		"@types/express": "^4.17.9",
@@ -48,10 +49,8 @@
 		"@types/jsonwebtoken": "^8.5.0",
 		"@types/morgan": "^1.9.3",
 		"@types/multer": "^1.4.5",
-		"@types/node": "^14.18.22",
-		"@types/node-fetch": "^2.5.5",
+		"@types/node": "^18.0.6",
 		"@types/supertest": "^2.0.11",
-		"@ovos-media/ts-transform-paths": "^1.7.18-1",
 		"jest": "^28.1.3",
 		"jest-expect-message": "^1.0.2",
 		"jest-runtime": "^28.1.3",
@@ -86,7 +85,6 @@
 		"morgan": "^1.10.0",
 		"multer": "^1.4.5-lts.1",
 		"node-2fa": "^2.0.3",
-		"node-fetch": "^3.2.9",
 		"patch-package": "^6.4.7",
 		"picocolors": "^1.0.0",
 		"proxy-agent": "^5.0.0",
diff --git a/bundle/package-lock.json b/bundle/package-lock.json
index fd388bd2..5078696f 100644
--- a/bundle/package-lock.json
+++ b/bundle/package-lock.json
@@ -48,7 +48,6 @@
 				"nan": "^2.15.0",
 				"nanocolors": "^0.2.12",
 				"node-2fa": "^2.0.3",
-				"node-fetch": "^3.2.9",
 				"node-os-utils": "^1.3.5",
 				"patch-package": "^6.4.7",
 				"pg": "^8.7.3",
@@ -82,8 +81,7 @@
 				"@types/jsonwebtoken": "^8.5.0",
 				"@types/morgan": "^1.9.3",
 				"@types/multer": "^1.4.7",
-				"@types/node": "^14.17.9",
-				"@types/node-fetch": "^2.5.12",
+				"@types/node": "^18.0.6",
 				"@types/node-os-utils": "^1.2.0",
 				"@types/supertest": "^2.0.11",
 				"@types/ws": "^8.5.3",
@@ -128,7 +126,6 @@
 				"morgan": "^1.10.0",
 				"multer": "^1.4.5-lts.1",
 				"node-2fa": "^2.0.3",
-				"node-fetch": "^3.2.9",
 				"patch-package": "^6.4.7",
 				"picocolors": "^1.0.0",
 				"proxy-agent": "^5.0.0",
@@ -149,8 +146,7 @@
 				"@types/jsonwebtoken": "^8.5.0",
 				"@types/morgan": "^1.9.3",
 				"@types/multer": "^1.4.5",
-				"@types/node": "^14.18.22",
-				"@types/node-fetch": "^2.5.5",
+				"@types/node": "^18.0.6",
 				"@types/supertest": "^2.0.11",
 				"jest": "^28.1.3",
 				"jest-expect-message": "^1.0.2",
@@ -186,7 +182,6 @@
 				"missing-native-js-functions": "^1.2.17",
 				"multer": "^1.4.5-lts.1",
 				"nanocolors": "^0.2.12",
-				"node-fetch": "^3.2.9",
 				"supertest": "^6.1.6",
 				"typescript": "^4.1.2"
 			},
@@ -200,8 +195,7 @@
 				"@types/fs-extra": "^9.0.12",
 				"@types/jsonwebtoken": "^8.5.0",
 				"@types/multer": "^1.4.7",
-				"@types/node": "^14.17.0",
-				"@types/node-fetch": "^2.5.7",
+				"@types/node": "^18.0.6",
 				"ts-patch": "^2.0.1"
 			}
 		},
@@ -217,7 +211,6 @@
 				"jsonwebtoken": "^8.5.1",
 				"lambert-server": "^1.2.11",
 				"missing-native-js-functions": "^1.2.18",
-				"node-fetch": "^3.2.9",
 				"proxy-agent": "^5.0.0",
 				"typeorm": "^0.3.7",
 				"ws": "^8.8.1"
@@ -226,8 +219,7 @@
 				"@ovos-media/ts-transform-paths": "^1.7.18-1",
 				"@types/amqplib": "^0.8.1",
 				"@types/jsonwebtoken": "^8.5.0",
-				"@types/node": "^14.17.9",
-				"@types/node-fetch": "^2.5.12",
+				"@types/node": "^18.0.6",
 				"@types/ws": "^8.5.3",
 				"ts-node-dev": "^2.0.0",
 				"ts-patch": "^2.0.1",
@@ -3889,31 +3881,9 @@
 			}
 		},
 		"node_modules/@types/node": {
-			"version": "14.18.22",
-			"resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.22.tgz",
-			"integrity": "sha512-qzaYbXVzin6EPjghf/hTdIbnVW1ErMx8rPzwRNJhlbyJhu2SyqlvjGOY/tbUt6VFyzg56lROcOeSQRInpt63Yw=="
-		},
-		"node_modules/@types/node-fetch": {
-			"version": "2.5.12",
-			"integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==",
-			"dev": true,
-			"dependencies": {
-				"@types/node": "*",
-				"form-data": "^3.0.0"
-			}
-		},
-		"node_modules/@types/node-fetch/node_modules/form-data": {
-			"version": "3.0.1",
-			"integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
-			"dev": true,
-			"dependencies": {
-				"asynckit": "^0.4.0",
-				"combined-stream": "^1.0.8",
-				"mime-types": "^2.1.12"
-			},
-			"engines": {
-				"node": ">= 6"
-			}
+			"version": "18.0.6",
+			"resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.6.tgz",
+			"integrity": "sha512-/xUq6H2aQm261exT6iZTMifUySEt4GR5KX8eYyY+C4MSNPqSh9oNIP7tz2GLKTlFaiBbgZNxffoR3CVRG+cljw=="
 		},
 		"node_modules/@types/node-os-utils": {
 			"version": "1.2.0",
@@ -5091,14 +5061,6 @@
 				"url": "https://github.com/sponsors/fb55"
 			}
 		},
-		"node_modules/data-uri-to-buffer": {
-			"version": "4.0.0",
-			"resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz",
-			"integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==",
-			"engines": {
-				"node": ">= 12"
-			}
-		},
 		"node_modules/date-fns": {
 			"version": "2.28.0",
 			"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz",
@@ -5615,28 +5577,6 @@
 				"bser": "2.1.1"
 			}
 		},
-		"node_modules/fetch-blob": {
-			"version": "3.2.0",
-			"resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz",
-			"integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/jimmywarting"
-				},
-				{
-					"type": "paypal",
-					"url": "https://paypal.me/jimmywarting"
-				}
-			],
-			"dependencies": {
-				"node-domexception": "^1.0.0",
-				"web-streams-polyfill": "^3.0.3"
-			},
-			"engines": {
-				"node": "^12.20 || >= 14.13"
-			}
-		},
 		"node_modules/file-type": {
 			"version": "17.1.2",
 			"resolved": "https://registry.npmjs.org/file-type/-/file-type-17.1.2.tgz",
@@ -5725,17 +5665,6 @@
 				"node": ">= 6"
 			}
 		},
-		"node_modules/formdata-polyfill": {
-			"version": "4.0.10",
-			"resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
-			"integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
-			"dependencies": {
-				"fetch-blob": "^3.1.2"
-			},
-			"engines": {
-				"node": ">=12.20.0"
-			}
-		},
 		"node_modules/formidable": {
 			"version": "1.2.2",
 			"integrity": "sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==",
@@ -8140,41 +8069,6 @@
 			"version": "3.2.1",
 			"integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A=="
 		},
-		"node_modules/node-domexception": {
-			"version": "1.0.0",
-			"resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
-			"integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/jimmywarting"
-				},
-				{
-					"type": "github",
-					"url": "https://paypal.me/jimmywarting"
-				}
-			],
-			"engines": {
-				"node": ">=10.5.0"
-			}
-		},
-		"node_modules/node-fetch": {
-			"version": "3.2.9",
-			"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.9.tgz",
-			"integrity": "sha512-/2lI+DBecVvVm9tDhjziTVjo2wmTsSxSk58saUYP0P/fRJ3xxtfMDY24+CKTkfm0Dlhyn3CSXNL0SoRiCZ8Rzg==",
-			"dependencies": {
-				"data-uri-to-buffer": "^4.0.0",
-				"fetch-blob": "^3.1.4",
-				"formdata-polyfill": "^4.0.10"
-			},
-			"engines": {
-				"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
-			},
-			"funding": {
-				"type": "opencollective",
-				"url": "https://opencollective.com/node-fetch"
-			}
-		},
 		"node_modules/node-int64": {
 			"version": "0.4.0",
 			"resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
@@ -11317,14 +11211,6 @@
 				"makeerror": "1.0.12"
 			}
 		},
-		"node_modules/web-streams-polyfill": {
-			"version": "3.2.1",
-			"resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz",
-			"integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==",
-			"engines": {
-				"node": ">= 8"
-			}
-		},
 		"node_modules/webidl-conversions": {
 			"version": "3.0.1",
 			"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
@@ -13711,8 +13597,7 @@
 				"@types/jsonwebtoken": "^8.5.0",
 				"@types/morgan": "^1.9.3",
 				"@types/multer": "^1.4.5",
-				"@types/node": "^14.18.22",
-				"@types/node-fetch": "^2.5.5",
+				"@types/node": "^18.0.6",
 				"@types/supertest": "^2.0.11",
 				"ajv": "8.6.2",
 				"ajv-formats": "^2.1.1",
@@ -13737,7 +13622,6 @@
 				"morgan": "^1.10.0",
 				"multer": "^1.4.5-lts.1",
 				"node-2fa": "^2.0.3",
-				"node-fetch": "^3.2.9",
 				"patch-package": "^6.4.7",
 				"picocolors": "^1.0.0",
 				"proxy-agent": "^5.0.0",
@@ -13765,8 +13649,7 @@
 				"@types/fs-extra": "^9.0.12",
 				"@types/jsonwebtoken": "^8.5.0",
 				"@types/multer": "^1.4.7",
-				"@types/node": "^14.17.0",
-				"@types/node-fetch": "^2.5.7",
+				"@types/node": "^18.0.6",
 				"body-parser": "^1.19.0",
 				"btoa": "^1.2.1",
 				"dotenv": "^16.0.1",
@@ -13783,7 +13666,6 @@
 				"missing-native-js-functions": "^1.2.17",
 				"multer": "^1.4.5-lts.1",
 				"nanocolors": "^0.2.12",
-				"node-fetch": "^3.2.9",
 				"supertest": "^6.1.6",
 				"ts-patch": "^2.0.1",
 				"typescript": "^4.1.2"
@@ -13796,8 +13678,7 @@
 				"@ovos-media/ts-transform-paths": "^1.7.18-1",
 				"@types/amqplib": "^0.8.1",
 				"@types/jsonwebtoken": "^8.5.0",
-				"@types/node": "^14.17.9",
-				"@types/node-fetch": "^2.5.12",
+				"@types/node": "^18.0.6",
 				"@types/ws": "^8.5.3",
 				"@yukikaze-bot/erlpack": "^1.0.1",
 				"amqplib": "^0.10.0",
@@ -13805,7 +13686,6 @@
 				"jsonwebtoken": "^8.5.1",
 				"lambert-server": "^1.2.11",
 				"missing-native-js-functions": "^1.2.18",
-				"node-fetch": "^3.2.9",
 				"proxy-agent": "^5.0.0",
 				"ts-node-dev": "^2.0.0",
 				"ts-patch": "^2.0.1",
@@ -14572,30 +14452,9 @@
 			}
 		},
 		"@types/node": {
-			"version": "14.18.22",
-			"resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.22.tgz",
-			"integrity": "sha512-qzaYbXVzin6EPjghf/hTdIbnVW1ErMx8rPzwRNJhlbyJhu2SyqlvjGOY/tbUt6VFyzg56lROcOeSQRInpt63Yw=="
-		},
-		"@types/node-fetch": {
-			"version": "2.5.12",
-			"integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==",
-			"dev": true,
-			"requires": {
-				"@types/node": "*",
-				"form-data": "^3.0.0"
-			},
-			"dependencies": {
-				"form-data": {
-					"version": "3.0.1",
-					"integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
-					"dev": true,
-					"requires": {
-						"asynckit": "^0.4.0",
-						"combined-stream": "^1.0.8",
-						"mime-types": "^2.1.12"
-					}
-				}
-			}
+			"version": "18.0.6",
+			"resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.6.tgz",
+			"integrity": "sha512-/xUq6H2aQm261exT6iZTMifUySEt4GR5KX8eYyY+C4MSNPqSh9oNIP7tz2GLKTlFaiBbgZNxffoR3CVRG+cljw=="
 		},
 		"@types/node-os-utils": {
 			"version": "1.2.0",
@@ -15507,11 +15366,6 @@
 			"version": "5.0.1",
 			"integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg=="
 		},
-		"data-uri-to-buffer": {
-			"version": "4.0.0",
-			"resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz",
-			"integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA=="
-		},
 		"date-fns": {
 			"version": "2.28.0",
 			"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz",
@@ -15888,15 +15742,6 @@
 				"bser": "2.1.1"
 			}
 		},
-		"fetch-blob": {
-			"version": "3.2.0",
-			"resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz",
-			"integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
-			"requires": {
-				"node-domexception": "^1.0.0",
-				"web-streams-polyfill": "^3.0.3"
-			}
-		},
 		"file-type": {
 			"version": "17.1.2",
 			"resolved": "https://registry.npmjs.org/file-type/-/file-type-17.1.2.tgz",
@@ -15967,14 +15812,6 @@
 				"mime-types": "^2.1.12"
 			}
 		},
-		"formdata-polyfill": {
-			"version": "4.0.10",
-			"resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
-			"integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
-			"requires": {
-				"fetch-blob": "^3.1.2"
-			}
-		},
 		"formidable": {
 			"version": "1.2.2",
 			"integrity": "sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q=="
@@ -17710,21 +17547,6 @@
 			"version": "3.2.1",
 			"integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A=="
 		},
-		"node-domexception": {
-			"version": "1.0.0",
-			"resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
-			"integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ=="
-		},
-		"node-fetch": {
-			"version": "3.2.9",
-			"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.9.tgz",
-			"integrity": "sha512-/2lI+DBecVvVm9tDhjziTVjo2wmTsSxSk58saUYP0P/fRJ3xxtfMDY24+CKTkfm0Dlhyn3CSXNL0SoRiCZ8Rzg==",
-			"requires": {
-				"data-uri-to-buffer": "^4.0.0",
-				"fetch-blob": "^3.1.4",
-				"formdata-polyfill": "^4.0.10"
-			}
-		},
 		"node-int64": {
 			"version": "0.4.0",
 			"resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
@@ -19990,11 +19812,6 @@
 				"makeerror": "1.0.12"
 			}
 		},
-		"web-streams-polyfill": {
-			"version": "3.2.1",
-			"resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz",
-			"integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q=="
-		},
 		"webidl-conversions": {
 			"version": "3.0.1",
 			"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
diff --git a/bundle/package.json b/bundle/package.json
index 670569e5..002ed7f9 100644
--- a/bundle/package.json
+++ b/bundle/package.json
@@ -29,6 +29,7 @@
 		"@babel/core": "^7.18.9",
 		"@babel/preset-env": "^7.18.9",
 		"@babel/preset-typescript": "^7.15.0",
+		"@ovos-media/ts-transform-paths": "^1.7.18-1",
 		"@types/amqplib": "^0.8.1",
 		"@types/bcrypt": "^5.0.0",
 		"@types/body-parser": "^1.19.0",
@@ -42,12 +43,10 @@
 		"@types/jsonwebtoken": "^8.5.0",
 		"@types/morgan": "^1.9.3",
 		"@types/multer": "^1.4.7",
-		"@types/node": "^14.17.9",
-		"@types/node-fetch": "^2.5.12",
+		"@types/node": "^18.0.6",
 		"@types/node-os-utils": "^1.2.0",
 		"@types/supertest": "^2.0.11",
 		"@types/ws": "^8.5.3",
-		"@ovos-media/ts-transform-paths": "^1.7.18-1",
 		"jest": "^28.1.3",
 		"jest-expect-message": "^1.0.2",
 		"jest-runtime": "^28.1.3",
@@ -98,7 +97,6 @@
 		"nan": "^2.15.0",
 		"nanocolors": "^0.2.12",
 		"node-2fa": "^2.0.3",
-		"node-fetch": "^3.2.9",
 		"node-os-utils": "^1.3.5",
 		"patch-package": "^6.4.7",
 		"pg": "^8.7.3",
diff --git a/bundle/tsconfig.json b/bundle/tsconfig.json
index 5fa81174..87f6578a 100644
--- a/bundle/tsconfig.json
+++ b/bundle/tsconfig.json
@@ -8,7 +8,7 @@
 		"target": "ESNext" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */,

 		"module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */,

 		"lib": [

-			"ES2021"

+			"ESNext"

 		] /* Specify library files to be included in the compilation. */,

 		"allowJs": true /* Allow javascript files to be compiled. */,

 		"checkJs": true /* Report errors in .js files. */,

diff --git a/cdn/package.json b/cdn/package.json
index b9aaea69..2b2866cb 100644
--- a/cdn/package.json
+++ b/cdn/package.json
@@ -21,6 +21,7 @@
 	},
 	"homepage": "https://github.com/fosscord/fosscord-server#readme",
 	"devDependencies": {
+		"@ovos-media/ts-transform-paths": "^1.7.18-1",
 		"@types/amqplib": "^0.8.1",
 		"@types/body-parser": "^1.19.0",
 		"@types/btoa": "^1.2.3",
@@ -29,9 +30,7 @@
 		"@types/fs-extra": "^9.0.12",
 		"@types/jsonwebtoken": "^8.5.0",
 		"@types/multer": "^1.4.7",
-		"@types/node": "^14.17.0",
-		"@types/node-fetch": "^2.5.7",
-		"@ovos-media/ts-transform-paths": "^1.7.18-1",
+		"@types/node": "^18.0.6",
 		"ts-patch": "^2.0.1"
 	},
 	"dependencies": {
@@ -54,7 +53,6 @@
 		"missing-native-js-functions": "^1.2.17",
 		"multer": "^1.4.5-lts.1",
 		"nanocolors": "^0.2.12",
-		"node-fetch": "^3.2.9",
 		"supertest": "^6.1.6",
 		"typescript": "^4.1.2"
 	},
diff --git a/gateway/package.json b/gateway/package.json
index fe59527f..05ef5c55 100644
--- a/gateway/package.json
+++ b/gateway/package.json
@@ -15,12 +15,11 @@
 	"author": "Fosscord",
 	"license": "AGPL-3.0-only",
 	"devDependencies": {
+		"@ovos-media/ts-transform-paths": "^1.7.18-1",
 		"@types/amqplib": "^0.8.1",
 		"@types/jsonwebtoken": "^8.5.0",
-		"@types/node": "^14.17.9",
-		"@types/node-fetch": "^2.5.12",
+		"@types/node": "^18.0.6",
 		"@types/ws": "^8.5.3",
-		"@ovos-media/ts-transform-paths": "^1.7.18-1",
 		"ts-node-dev": "^2.0.0",
 		"ts-patch": "^2.0.1",
 		"typescript": "^4.2.3"
@@ -32,7 +31,6 @@
 		"jsonwebtoken": "^8.5.1",
 		"lambert-server": "^1.2.11",
 		"missing-native-js-functions": "^1.2.18",
-		"node-fetch": "^3.2.9",
 		"proxy-agent": "^5.0.0",
 		"typeorm": "^0.3.7",
 		"ws": "^8.8.1"
diff --git a/package-lock.json b/package-lock.json
index 6de2acb6..18a82aab 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -44,7 +44,6 @@
 				"morgan": "^1.10.0",
 				"multer": "^1.4.5-lts.1",
 				"node-2fa": "^2.0.3",
-				"node-fetch": "^3.2.9",
 				"patch-package": "^6.4.7",
 				"picocolors": "^1.0.0",
 				"proxy-agent": "^5.0.0",
@@ -55,6 +54,7 @@
 				"@babel/core": "^7.18.9",
 				"@babel/preset-env": "^7.18.9",
 				"@babel/preset-typescript": "^7.15.0",
+				"@ovos-media/ts-transform-paths": "^1.7.18-1",
 				"@types/amqplib": "^0.8.1",
 				"@types/bcrypt": "^5.0.0",
 				"@types/express": "^4.17.9",
@@ -64,10 +64,8 @@
 				"@types/jsonwebtoken": "^8.5.0",
 				"@types/morgan": "^1.9.3",
 				"@types/multer": "^1.4.5",
-				"@types/node": "^14.18.22",
-				"@types/node-fetch": "^2.5.5",
+				"@types/node": "^18.0.6",
 				"@types/supertest": "^2.0.11",
-				"@zerollup/ts-transform-paths": "^1.7.18",
 				"jest": "^28.1.3",
 				"jest-expect-message": "^1.0.2",
 				"jest-runtime": "^28.1.3",
@@ -78,6 +76,12 @@
 				"typescript-json-schema": "^0.54.0"
 			}
 		},
+		"api/node_modules/@types/node": {
+			"version": "18.0.6",
+			"resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.6.tgz",
+			"integrity": "sha512-/xUq6H2aQm261exT6iZTMifUySEt4GR5KX8eYyY+C4MSNPqSh9oNIP7tz2GLKTlFaiBbgZNxffoR3CVRG+cljw==",
+			"dev": true
+		},
 		"api/node_modules/ansi-styles": {
 			"version": "4.3.0",
 			"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -128,14 +132,6 @@
 			"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
 			"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
 		},
-		"api/node_modules/data-uri-to-buffer": {
-			"version": "4.0.0",
-			"resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz",
-			"integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==",
-			"engines": {
-				"node": ">= 12"
-			}
-		},
 		"api/node_modules/form-data": {
 			"version": "4.0.0",
 			"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
@@ -179,23 +175,6 @@
 				"node": ">=10"
 			}
 		},
-		"api/node_modules/node-fetch": {
-			"version": "3.2.9",
-			"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.9.tgz",
-			"integrity": "sha512-/2lI+DBecVvVm9tDhjziTVjo2wmTsSxSk58saUYP0P/fRJ3xxtfMDY24+CKTkfm0Dlhyn3CSXNL0SoRiCZ8Rzg==",
-			"dependencies": {
-				"data-uri-to-buffer": "^4.0.0",
-				"fetch-blob": "^3.1.4",
-				"formdata-polyfill": "^4.0.10"
-			},
-			"engines": {
-				"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
-			},
-			"funding": {
-				"type": "opencollective",
-				"url": "https://opencollective.com/node-fetch"
-			}
-		},
 		"api/node_modules/supports-color": {
 			"version": "7.2.0",
 			"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -363,11 +342,11 @@
 				"missing-native-js-functions": "^1.2.17",
 				"multer": "^1.4.5-lts.1",
 				"nanocolors": "^0.2.12",
-				"node-fetch": "^3.2.9",
 				"supertest": "^6.1.6",
 				"typescript": "^4.1.2"
 			},
 			"devDependencies": {
+				"@ovos-media/ts-transform-paths": "^1.7.18-1",
 				"@types/amqplib": "^0.8.1",
 				"@types/body-parser": "^1.19.0",
 				"@types/btoa": "^1.2.3",
@@ -376,19 +355,15 @@
 				"@types/fs-extra": "^9.0.12",
 				"@types/jsonwebtoken": "^8.5.0",
 				"@types/multer": "^1.4.7",
-				"@types/node": "^14.17.0",
-				"@types/node-fetch": "^2.5.7",
-				"@zerollup/ts-transform-paths": "^1.7.18",
+				"@types/node": "^18.0.6",
 				"ts-patch": "^2.0.1"
 			}
 		},
-		"cdn/node_modules/data-uri-to-buffer": {
-			"version": "4.0.0",
-			"resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz",
-			"integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==",
-			"engines": {
-				"node": ">= 12"
-			}
+		"cdn/node_modules/@types/node": {
+			"version": "18.0.6",
+			"resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.6.tgz",
+			"integrity": "sha512-/xUq6H2aQm261exT6iZTMifUySEt4GR5KX8eYyY+C4MSNPqSh9oNIP7tz2GLKTlFaiBbgZNxffoR3CVRG+cljw==",
+			"dev": true
 		},
 		"cdn/node_modules/form-data": {
 			"version": "4.0.0",
@@ -403,23 +378,6 @@
 				"node": ">= 6"
 			}
 		},
-		"cdn/node_modules/node-fetch": {
-			"version": "3.2.9",
-			"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.9.tgz",
-			"integrity": "sha512-/2lI+DBecVvVm9tDhjziTVjo2wmTsSxSk58saUYP0P/fRJ3xxtfMDY24+CKTkfm0Dlhyn3CSXNL0SoRiCZ8Rzg==",
-			"dependencies": {
-				"data-uri-to-buffer": "^4.0.0",
-				"fetch-blob": "^3.1.4",
-				"formdata-polyfill": "^4.0.10"
-			},
-			"engines": {
-				"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
-			},
-			"funding": {
-				"type": "opencollective",
-				"url": "https://opencollective.com/node-fetch"
-			}
-		},
 		"gateway": {
 			"name": "@fosscord/gateway",
 			"version": "1.0.0",
@@ -432,18 +390,16 @@
 				"jsonwebtoken": "^8.5.1",
 				"lambert-server": "^1.2.11",
 				"missing-native-js-functions": "^1.2.18",
-				"node-fetch": "^3.2.9",
 				"proxy-agent": "^5.0.0",
 				"typeorm": "^0.3.7",
 				"ws": "^8.8.1"
 			},
 			"devDependencies": {
+				"@ovos-media/ts-transform-paths": "^1.7.18-1",
 				"@types/amqplib": "^0.8.1",
 				"@types/jsonwebtoken": "^8.5.0",
-				"@types/node": "^14.17.9",
-				"@types/node-fetch": "^2.5.12",
+				"@types/node": "^18.0.6",
 				"@types/ws": "^8.5.3",
-				"@zerollup/ts-transform-paths": "^1.7.18",
 				"ts-node-dev": "^2.0.0",
 				"ts-patch": "^2.0.1",
 				"typescript": "^4.2.3"
@@ -452,6 +408,12 @@
 				"@yukikaze-bot/erlpack": "^1.0.1"
 			}
 		},
+		"gateway/node_modules/@types/node": {
+			"version": "18.0.6",
+			"resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.6.tgz",
+			"integrity": "sha512-/xUq6H2aQm261exT6iZTMifUySEt4GR5KX8eYyY+C4MSNPqSh9oNIP7tz2GLKTlFaiBbgZNxffoR3CVRG+cljw==",
+			"dev": true
+		},
 		"gateway/node_modules/ansi-styles": {
 			"version": "4.3.0",
 			"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -502,14 +464,6 @@
 			"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
 			"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
 		},
-		"gateway/node_modules/data-uri-to-buffer": {
-			"version": "4.0.0",
-			"resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz",
-			"integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==",
-			"engines": {
-				"node": ">= 12"
-			}
-		},
 		"gateway/node_modules/has-flag": {
 			"version": "4.0.0",
 			"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -540,23 +494,6 @@
 				"node": ">=10"
 			}
 		},
-		"gateway/node_modules/node-fetch": {
-			"version": "3.2.9",
-			"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.9.tgz",
-			"integrity": "sha512-/2lI+DBecVvVm9tDhjziTVjo2wmTsSxSk58saUYP0P/fRJ3xxtfMDY24+CKTkfm0Dlhyn3CSXNL0SoRiCZ8Rzg==",
-			"dependencies": {
-				"data-uri-to-buffer": "^4.0.0",
-				"fetch-blob": "^3.1.4",
-				"formdata-polyfill": "^4.0.10"
-			},
-			"engines": {
-				"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
-			},
-			"funding": {
-				"type": "opencollective",
-				"url": "https://opencollective.com/node-fetch"
-			}
-		},
 		"gateway/node_modules/supports-color": {
 			"version": "7.2.0",
 			"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -4267,6 +4204,18 @@
 			"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
 			"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
 		},
+		"node_modules/@ovos-media/ts-transform-paths": {
+			"version": "1.7.18-1",
+			"resolved": "https://registry.npmjs.org/@ovos-media/ts-transform-paths/-/ts-transform-paths-1.7.18-1.tgz",
+			"integrity": "sha512-5uYtraYSWg1klaMYus3ouCOUUNzcI40pS0NCaw0PhoaPTimVfT3MV061ZLYR/4F14THqyofMjmCNcHgFrBX3AA==",
+			"dev": true,
+			"dependencies": {
+				"@zerollup/ts-helpers": "^1.7.18"
+			},
+			"peerDependencies": {
+				"typescript": ">=3.7.2"
+			}
+		},
 		"node_modules/@sentry/core": {
 			"version": "7.7.0",
 			"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.7.0.tgz",
@@ -4822,18 +4771,6 @@
 				"typescript": ">=3.7.2"
 			}
 		},
-		"node_modules/@zerollup/ts-transform-paths": {
-			"version": "1.7.18",
-			"resolved": "https://registry.npmjs.org/@zerollup/ts-transform-paths/-/ts-transform-paths-1.7.18.tgz",
-			"integrity": "sha512-YPVUxvWQVzRx1OBN0Pmkd58+R9FcfUJuwTaPUSoi5rKxuXMtxevTXdfi0w5mEaIH8b0DfL+wg0wFDHiJE+S2zA==",
-			"dev": true,
-			"dependencies": {
-				"@zerollup/ts-helpers": "^1.7.18"
-			},
-			"peerDependencies": {
-				"typescript": ">=3.7.2"
-			}
-		},
 		"node_modules/abbrev": {
 			"version": "1.1.1",
 			"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
@@ -15321,6 +15258,7 @@
 				"@babel/preset-env": "^7.18.9",
 				"@babel/preset-typescript": "^7.15.0",
 				"@fosscord/util": "file:../util",
+				"@ovos-media/ts-transform-paths": "^1.7.18-1",
 				"@sentry/node": "^7.7.0",
 				"@sentry/tracing": "^7.7.0",
 				"@types/amqplib": "^0.8.1",
@@ -15332,10 +15270,8 @@
 				"@types/jsonwebtoken": "^8.5.0",
 				"@types/morgan": "^1.9.3",
 				"@types/multer": "^1.4.5",
-				"@types/node": "^14.18.22",
-				"@types/node-fetch": "^2.5.5",
+				"@types/node": "^18.0.6",
 				"@types/supertest": "^2.0.11",
-				"@zerollup/ts-transform-paths": "^1.7.18",
 				"ajv": "8.6.2",
 				"ajv-formats": "^2.1.1",
 				"amqplib": "^0.10.0",
@@ -15359,7 +15295,6 @@
 				"morgan": "^1.10.0",
 				"multer": "^1.4.5-lts.1",
 				"node-2fa": "^2.0.3",
-				"node-fetch": "^3.2.9",
 				"patch-package": "^6.4.7",
 				"picocolors": "^1.0.0",
 				"proxy-agent": "^5.0.0",
@@ -15372,6 +15307,12 @@
 				"typescript-json-schema": "^0.54.0"
 			},
 			"dependencies": {
+				"@types/node": {
+					"version": "18.0.6",
+					"resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.6.tgz",
+					"integrity": "sha512-/xUq6H2aQm261exT6iZTMifUySEt4GR5KX8eYyY+C4MSNPqSh9oNIP7tz2GLKTlFaiBbgZNxffoR3CVRG+cljw==",
+					"dev": true
+				},
 				"ansi-styles": {
 					"version": "4.3.0",
 					"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -15407,11 +15348,6 @@
 					"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
 					"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
 				},
-				"data-uri-to-buffer": {
-					"version": "4.0.0",
-					"resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz",
-					"integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA=="
-				},
 				"form-data": {
 					"version": "4.0.0",
 					"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
@@ -15440,16 +15376,6 @@
 					"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
 					"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
 				},
-				"node-fetch": {
-					"version": "3.2.9",
-					"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.9.tgz",
-					"integrity": "sha512-/2lI+DBecVvVm9tDhjziTVjo2wmTsSxSk58saUYP0P/fRJ3xxtfMDY24+CKTkfm0Dlhyn3CSXNL0SoRiCZ8Rzg==",
-					"requires": {
-						"data-uri-to-buffer": "^4.0.0",
-						"fetch-blob": "^3.1.4",
-						"formdata-polyfill": "^4.0.10"
-					}
-				},
 				"supports-color": {
 					"version": "7.2.0",
 					"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -15509,6 +15435,7 @@
 				"@aws-sdk/client-s3": "^3.36.1",
 				"@aws-sdk/node-http-handler": "^3.36.0",
 				"@fosscord/util": "file:../util",
+				"@ovos-media/ts-transform-paths": "^1.7.18-1",
 				"@types/amqplib": "^0.8.1",
 				"@types/body-parser": "^1.19.0",
 				"@types/btoa": "^1.2.3",
@@ -15517,9 +15444,7 @@
 				"@types/fs-extra": "^9.0.12",
 				"@types/jsonwebtoken": "^8.5.0",
 				"@types/multer": "^1.4.7",
-				"@types/node": "^14.17.0",
-				"@types/node-fetch": "^2.5.7",
-				"@zerollup/ts-transform-paths": "^1.7.18",
+				"@types/node": "^18.0.6",
 				"body-parser": "^1.19.0",
 				"btoa": "^1.2.1",
 				"dotenv": "^16.0.1",
@@ -15536,16 +15461,16 @@
 				"missing-native-js-functions": "^1.2.17",
 				"multer": "^1.4.5-lts.1",
 				"nanocolors": "^0.2.12",
-				"node-fetch": "^3.2.9",
 				"supertest": "^6.1.6",
 				"ts-patch": "^2.0.1",
 				"typescript": "^4.1.2"
 			},
 			"dependencies": {
-				"data-uri-to-buffer": {
-					"version": "4.0.0",
-					"resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz",
-					"integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA=="
+				"@types/node": {
+					"version": "18.0.6",
+					"resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.6.tgz",
+					"integrity": "sha512-/xUq6H2aQm261exT6iZTMifUySEt4GR5KX8eYyY+C4MSNPqSh9oNIP7tz2GLKTlFaiBbgZNxffoR3CVRG+cljw==",
+					"dev": true
 				},
 				"form-data": {
 					"version": "4.0.0",
@@ -15556,16 +15481,6 @@
 						"combined-stream": "^1.0.8",
 						"mime-types": "^2.1.12"
 					}
-				},
-				"node-fetch": {
-					"version": "3.2.9",
-					"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.9.tgz",
-					"integrity": "sha512-/2lI+DBecVvVm9tDhjziTVjo2wmTsSxSk58saUYP0P/fRJ3xxtfMDY24+CKTkfm0Dlhyn3CSXNL0SoRiCZ8Rzg==",
-					"requires": {
-						"data-uri-to-buffer": "^4.0.0",
-						"fetch-blob": "^3.1.4",
-						"formdata-polyfill": "^4.0.10"
-					}
 				}
 			}
 		},
@@ -15573,27 +15488,31 @@
 			"version": "file:gateway",
 			"requires": {
 				"@fosscord/util": "file:../util",
+				"@ovos-media/ts-transform-paths": "^1.7.18-1",
 				"@types/amqplib": "^0.8.1",
 				"@types/jsonwebtoken": "^8.5.0",
-				"@types/node": "^14.17.9",
-				"@types/node-fetch": "^2.5.12",
-				"@types/ws": "8.5.3",
+				"@types/node": "^18.0.6",
+				"@types/ws": "^8.5.3",
 				"@yukikaze-bot/erlpack": "^1.0.1",
-				"@zerollup/ts-transform-paths": "^1.7.18",
-				"amqplib": "0.10.0",
-				"dotenv": "16.0.1",
+				"amqplib": "^0.10.0",
+				"dotenv": "^16.0.1",
 				"jsonwebtoken": "^8.5.1",
 				"lambert-server": "^1.2.11",
 				"missing-native-js-functions": "^1.2.18",
-				"node-fetch": "3.2.9",
 				"proxy-agent": "^5.0.0",
-				"ts-node-dev": "2.0.0",
-				"ts-patch": "2.0.1",
+				"ts-node-dev": "^2.0.0",
+				"ts-patch": "^2.0.1",
 				"typeorm": "^0.3.7",
 				"typescript": "^4.2.3",
-				"ws": "8.8.1"
+				"ws": "^8.8.1"
 			},
 			"dependencies": {
+				"@types/node": {
+					"version": "18.0.6",
+					"resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.6.tgz",
+					"integrity": "sha512-/xUq6H2aQm261exT6iZTMifUySEt4GR5KX8eYyY+C4MSNPqSh9oNIP7tz2GLKTlFaiBbgZNxffoR3CVRG+cljw==",
+					"dev": true
+				},
 				"ansi-styles": {
 					"version": "4.3.0",
 					"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -15629,11 +15548,6 @@
 					"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
 					"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
 				},
-				"data-uri-to-buffer": {
-					"version": "4.0.0",
-					"resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz",
-					"integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA=="
-				},
 				"has-flag": {
 					"version": "4.0.0",
 					"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -15652,16 +15566,6 @@
 					"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
 					"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
 				},
-				"node-fetch": {
-					"version": "3.2.9",
-					"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.9.tgz",
-					"integrity": "sha512-/2lI+DBecVvVm9tDhjziTVjo2wmTsSxSk58saUYP0P/fRJ3xxtfMDY24+CKTkfm0Dlhyn3CSXNL0SoRiCZ8Rzg==",
-					"requires": {
-						"data-uri-to-buffer": "^4.0.0",
-						"fetch-blob": "^3.1.4",
-						"formdata-polyfill": "^4.0.10"
-					}
-				},
 				"supports-color": {
 					"version": "7.2.0",
 					"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -16396,6 +16300,15 @@
 				}
 			}
 		},
+		"@ovos-media/ts-transform-paths": {
+			"version": "1.7.18-1",
+			"resolved": "https://registry.npmjs.org/@ovos-media/ts-transform-paths/-/ts-transform-paths-1.7.18-1.tgz",
+			"integrity": "sha512-5uYtraYSWg1klaMYus3ouCOUUNzcI40pS0NCaw0PhoaPTimVfT3MV061ZLYR/4F14THqyofMjmCNcHgFrBX3AA==",
+			"dev": true,
+			"requires": {
+				"@zerollup/ts-helpers": "^1.7.18"
+			}
+		},
 		"@sentry/core": {
 			"version": "7.7.0",
 			"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.7.0.tgz",
@@ -16937,15 +16850,6 @@
 				"resolve": "^1.12.0"
 			}
 		},
-		"@zerollup/ts-transform-paths": {
-			"version": "1.7.18",
-			"resolved": "https://registry.npmjs.org/@zerollup/ts-transform-paths/-/ts-transform-paths-1.7.18.tgz",
-			"integrity": "sha512-YPVUxvWQVzRx1OBN0Pmkd58+R9FcfUJuwTaPUSoi5rKxuXMtxevTXdfi0w5mEaIH8b0DfL+wg0wFDHiJE+S2zA==",
-			"dev": true,
-			"requires": {
-				"@zerollup/ts-helpers": "^1.7.18"
-			}
-		},
 		"abbrev": {
 			"version": "1.1.1",
 			"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
diff --git a/util/package-lock.json b/util/package-lock.json
index 51b6016c..e56a5f1b 100644
--- a/util/package-lock.json
+++ b/util/package-lock.json
@@ -16,22 +16,17 @@
 				"lambert-server": "^1.2.12",
 				"missing-native-js-functions": "^1.2.18",
 				"multer": "^1.4.5-lts.1",
-				"node-fetch": "^3.2.9",
-				"patch-package": "^6.4.7",
-				"pg": "^8.7.3",
 				"picocolors": "^1.0.0",
 				"proxy-agent": "^5.0.0",
 				"reflect-metadata": "^0.1.13",
 				"typeorm": "^0.3.7",
-				"typescript": "^4.7.4",
-				"typescript-json-schema": "^0.54.0"
+				"typescript": "^4.7.4"
 			},
 			"devDependencies": {
 				"@types/amqplib": "^0.8.1",
 				"@types/jsonwebtoken": "^8.5.8",
 				"@types/multer": "^1.4.7",
-				"@types/node": "^14.18.22",
-				"@types/node-fetch": "^2.6.2",
+				"@types/node": "^18.0.6",
 				"jest": "^28.1.3",
 				"ts-node": "^10.2.1"
 			}
@@ -639,6 +634,7 @@
 			"version": "0.8.1",
 			"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
 			"integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
+			"devOptional": true,
 			"dependencies": {
 				"@jridgewell/trace-mapping": "0.3.9"
 			},
@@ -1004,6 +1000,7 @@
 			"version": "3.1.0",
 			"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
 			"integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
+			"devOptional": true,
 			"engines": {
 				"node": ">=6.0.0"
 			}
@@ -1020,12 +1017,14 @@
 		"node_modules/@jridgewell/sourcemap-codec": {
 			"version": "1.4.14",
 			"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
-			"integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
+			"integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
+			"devOptional": true
 		},
 		"node_modules/@jridgewell/trace-mapping": {
 			"version": "0.3.9",
 			"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
 			"integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
+			"devOptional": true,
 			"dependencies": {
 				"@jridgewell/resolve-uri": "^3.0.3",
 				"@jridgewell/sourcemap-codec": "^1.4.10"
@@ -1316,22 +1315,26 @@
 		"node_modules/@tsconfig/node10": {
 			"version": "1.0.8",
 			"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz",
-			"integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg=="
+			"integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==",
+			"devOptional": true
 		},
 		"node_modules/@tsconfig/node12": {
 			"version": "1.0.9",
 			"resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz",
-			"integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw=="
+			"integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==",
+			"devOptional": true
 		},
 		"node_modules/@tsconfig/node14": {
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz",
-			"integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg=="
+			"integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==",
+			"devOptional": true
 		},
 		"node_modules/@tsconfig/node16": {
 			"version": "1.0.2",
 			"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz",
-			"integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA=="
+			"integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==",
+			"devOptional": true
 		},
 		"node_modules/@types/amqplib": {
 			"version": "0.8.2",
@@ -1465,11 +1468,6 @@
 				"@types/istanbul-lib-report": "*"
 			}
 		},
-		"node_modules/@types/json-schema": {
-			"version": "7.0.9",
-			"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz",
-			"integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ=="
-		},
 		"node_modules/@types/jsonwebtoken": {
 			"version": "8.5.8",
 			"resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.8.tgz",
@@ -1495,33 +1493,10 @@
 			}
 		},
 		"node_modules/@types/node": {
-			"version": "14.18.22",
-			"resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.22.tgz",
-			"integrity": "sha512-qzaYbXVzin6EPjghf/hTdIbnVW1ErMx8rPzwRNJhlbyJhu2SyqlvjGOY/tbUt6VFyzg56lROcOeSQRInpt63Yw=="
-		},
-		"node_modules/@types/node-fetch": {
-			"version": "2.6.2",
-			"resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz",
-			"integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==",
-			"dev": true,
-			"dependencies": {
-				"@types/node": "*",
-				"form-data": "^3.0.0"
-			}
-		},
-		"node_modules/@types/node-fetch/node_modules/form-data": {
-			"version": "3.0.1",
-			"resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
-			"integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
-			"dev": true,
-			"dependencies": {
-				"asynckit": "^0.4.0",
-				"combined-stream": "^1.0.8",
-				"mime-types": "^2.1.12"
-			},
-			"engines": {
-				"node": ">= 6"
-			}
+			"version": "18.0.6",
+			"resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.6.tgz",
+			"integrity": "sha512-/xUq6H2aQm261exT6iZTMifUySEt4GR5KX8eYyY+C4MSNPqSh9oNIP7tz2GLKTlFaiBbgZNxffoR3CVRG+cljw==",
+			"devOptional": true
 		},
 		"node_modules/@types/prettier": {
 			"version": "2.6.3",
@@ -1572,11 +1547,6 @@
 			"integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==",
 			"dev": true
 		},
-		"node_modules/@yarnpkg/lockfile": {
-			"version": "1.1.0",
-			"resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz",
-			"integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ=="
-		},
 		"node_modules/abbrev": {
 			"version": "1.1.1",
 			"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
@@ -1836,7 +1806,8 @@
 		"node_modules/arg": {
 			"version": "4.1.3",
 			"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
-			"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA=="
+			"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
+			"devOptional": true
 		},
 		"node_modules/argparse": {
 			"version": "1.0.10",
@@ -2094,6 +2065,7 @@
 			"version": "3.0.2",
 			"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
 			"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+			"dev": true,
 			"dependencies": {
 				"fill-range": "^7.0.1"
 			},
@@ -2182,6 +2154,8 @@
 			"version": "2.0.0",
 			"resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz",
 			"integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==",
+			"optional": true,
+			"peer": true,
 			"engines": {
 				"node": ">=4"
 			}
@@ -2582,7 +2556,8 @@
 		"node_modules/create-require": {
 			"version": "1.1.1",
 			"resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
-			"integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ=="
+			"integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
+			"devOptional": true
 		},
 		"node_modules/cross-spawn": {
 			"version": "7.0.3",
@@ -2766,6 +2741,7 @@
 			"version": "4.0.2",
 			"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
 			"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+			"devOptional": true,
 			"engines": {
 				"node": ">=0.3.1"
 			}
@@ -3112,6 +3088,7 @@
 			"version": "7.0.1",
 			"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
 			"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+			"dev": true,
 			"dependencies": {
 				"to-regex-range": "^5.0.1"
 			},
@@ -3149,14 +3126,6 @@
 				"node": ">=8"
 			}
 		},
-		"node_modules/find-yarn-workspace-root": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz",
-			"integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==",
-			"dependencies": {
-				"micromatch": "^4.0.2"
-			}
-		},
 		"node_modules/form-data": {
 			"version": "4.0.0",
 			"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
@@ -3170,17 +3139,6 @@
 				"node": ">= 6"
 			}
 		},
-		"node_modules/formdata-polyfill": {
-			"version": "4.0.10",
-			"resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
-			"integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
-			"dependencies": {
-				"fetch-blob": "^3.1.2"
-			},
-			"engines": {
-				"node": ">=12.20.0"
-			}
-		},
 		"node_modules/forwarded": {
 			"version": "0.2.0",
 			"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
@@ -3204,19 +3162,6 @@
 			"optional": true,
 			"peer": true
 		},
-		"node_modules/fs-extra": {
-			"version": "7.0.1",
-			"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
-			"integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
-			"dependencies": {
-				"graceful-fs": "^4.1.2",
-				"jsonfile": "^4.0.0",
-				"universalify": "^0.1.0"
-			},
-			"engines": {
-				"node": ">=6 <7 || >=8"
-			}
-		},
 		"node_modules/fs-minipass": {
 			"version": "2.1.0",
 			"resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
@@ -3751,20 +3696,6 @@
 				"url": "https://github.com/sponsors/ljharb"
 			}
 		},
-		"node_modules/is-docker": {
-			"version": "2.2.1",
-			"resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
-			"integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
-			"bin": {
-				"is-docker": "cli.js"
-			},
-			"engines": {
-				"node": ">=8"
-			},
-			"funding": {
-				"url": "https://github.com/sponsors/sindresorhus"
-			}
-		},
 		"node_modules/is-fullwidth-code-point": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
@@ -3798,6 +3729,7 @@
 			"version": "7.0.0",
 			"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
 			"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+			"dev": true,
 			"engines": {
 				"node": ">=0.12.0"
 			}
@@ -3814,17 +3746,6 @@
 				"url": "https://github.com/sponsors/sindresorhus"
 			}
 		},
-		"node_modules/is-wsl": {
-			"version": "2.2.0",
-			"resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
-			"integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
-			"dependencies": {
-				"is-docker": "^2.0.0"
-			},
-			"engines": {
-				"node": ">=8"
-			}
-		},
 		"node_modules/isarray": {
 			"version": "0.0.1",
 			"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
@@ -3833,7 +3754,8 @@
 		"node_modules/isexe": {
 			"version": "2.0.0",
 			"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
-			"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
+			"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+			"devOptional": true
 		},
 		"node_modules/istanbul-lib-coverage": {
 			"version": "3.2.0",
@@ -4666,14 +4588,6 @@
 				"safe-buffer": "^5.0.1"
 			}
 		},
-		"node_modules/klaw-sync": {
-			"version": "6.0.0",
-			"resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz",
-			"integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==",
-			"dependencies": {
-				"graceful-fs": "^4.1.11"
-			}
-		},
 		"node_modules/kleur": {
 			"version": "3.0.3",
 			"resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
@@ -4800,7 +4714,8 @@
 		"node_modules/make-error": {
 			"version": "1.3.6",
 			"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
-			"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="
+			"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
+			"devOptional": true
 		},
 		"node_modules/make-fetch-happen": {
 			"version": "9.1.0",
@@ -4910,6 +4825,7 @@
 			"version": "4.0.4",
 			"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
 			"integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
+			"dev": true,
 			"dependencies": {
 				"braces": "^3.0.1",
 				"picomatch": "^2.2.3"
@@ -5167,11 +5083,6 @@
 				"node": ">= 0.4.0"
 			}
 		},
-		"node_modules/nice-try": {
-			"version": "1.0.5",
-			"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
-			"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
-		},
 		"node_modules/node-abi": {
 			"version": "2.30.1",
 			"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz",
@@ -5199,49 +5110,6 @@
 			"optional": true,
 			"peer": true
 		},
-		"node_modules/node-domexception": {
-			"version": "1.0.0",
-			"resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
-			"integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/jimmywarting"
-				},
-				{
-					"type": "github",
-					"url": "https://paypal.me/jimmywarting"
-				}
-			],
-			"engines": {
-				"node": ">=10.5.0"
-			}
-		},
-		"node_modules/node-fetch": {
-			"version": "3.2.9",
-			"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.9.tgz",
-			"integrity": "sha512-/2lI+DBecVvVm9tDhjziTVjo2wmTsSxSk58saUYP0P/fRJ3xxtfMDY24+CKTkfm0Dlhyn3CSXNL0SoRiCZ8Rzg==",
-			"dependencies": {
-				"data-uri-to-buffer": "^4.0.0",
-				"fetch-blob": "^3.1.4",
-				"formdata-polyfill": "^4.0.10"
-			},
-			"engines": {
-				"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
-			},
-			"funding": {
-				"type": "opencollective",
-				"url": "https://opencollective.com/node-fetch"
-			}
-		},
-		"node_modules/node-fetch/node_modules/data-uri-to-buffer": {
-			"version": "4.0.0",
-			"resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz",
-			"integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==",
-			"engines": {
-				"node": ">= 12"
-			}
-		},
 		"node_modules/node-gyp": {
 			"version": "8.4.1",
 			"resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz",
@@ -5497,21 +5365,6 @@
 				"url": "https://github.com/sponsors/sindresorhus"
 			}
 		},
-		"node_modules/open": {
-			"version": "7.4.2",
-			"resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
-			"integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
-			"dependencies": {
-				"is-docker": "^2.0.0",
-				"is-wsl": "^2.1.1"
-			},
-			"engines": {
-				"node": ">=8"
-			},
-			"funding": {
-				"url": "https://github.com/sponsors/sindresorhus"
-			}
-		},
 		"node_modules/optionator": {
 			"version": "0.8.3",
 			"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
@@ -5528,14 +5381,6 @@
 				"node": ">= 0.8.0"
 			}
 		},
-		"node_modules/os-tmpdir": {
-			"version": "1.0.2",
-			"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
-			"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
-			"engines": {
-				"node": ">=0.10.0"
-			}
-		},
 		"node_modules/p-limit": {
 			"version": "3.1.0",
 			"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
@@ -5659,7 +5504,9 @@
 		"node_modules/packet-reader": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz",
-			"integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ=="
+			"integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==",
+			"optional": true,
+			"peer": true
 		},
 		"node_modules/parse-json": {
 			"version": "5.2.0",
@@ -5708,198 +5555,6 @@
 				"node": ">= 0.8"
 			}
 		},
-		"node_modules/patch-package": {
-			"version": "6.4.7",
-			"resolved": "https://registry.npmjs.org/patch-package/-/patch-package-6.4.7.tgz",
-			"integrity": "sha512-S0vh/ZEafZ17hbhgqdnpunKDfzHQibQizx9g8yEf5dcVk3KOflOfdufRXQX8CSEkyOQwuM/bNz1GwKvFj54kaQ==",
-			"dependencies": {
-				"@yarnpkg/lockfile": "^1.1.0",
-				"chalk": "^2.4.2",
-				"cross-spawn": "^6.0.5",
-				"find-yarn-workspace-root": "^2.0.0",
-				"fs-extra": "^7.0.1",
-				"is-ci": "^2.0.0",
-				"klaw-sync": "^6.0.0",
-				"minimist": "^1.2.0",
-				"open": "^7.4.2",
-				"rimraf": "^2.6.3",
-				"semver": "^5.6.0",
-				"slash": "^2.0.0",
-				"tmp": "^0.0.33"
-			},
-			"bin": {
-				"patch-package": "index.js"
-			},
-			"engines": {
-				"npm": ">5"
-			}
-		},
-		"node_modules/patch-package/node_modules/ansi-styles": {
-			"version": "3.2.1",
-			"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
-			"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
-			"dependencies": {
-				"color-convert": "^1.9.0"
-			},
-			"engines": {
-				"node": ">=4"
-			}
-		},
-		"node_modules/patch-package/node_modules/chalk": {
-			"version": "2.4.2",
-			"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
-			"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
-			"dependencies": {
-				"ansi-styles": "^3.2.1",
-				"escape-string-regexp": "^1.0.5",
-				"supports-color": "^5.3.0"
-			},
-			"engines": {
-				"node": ">=4"
-			}
-		},
-		"node_modules/patch-package/node_modules/ci-info": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
-			"integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
-		},
-		"node_modules/patch-package/node_modules/color-convert": {
-			"version": "1.9.3",
-			"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
-			"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
-			"dependencies": {
-				"color-name": "1.1.3"
-			}
-		},
-		"node_modules/patch-package/node_modules/color-name": {
-			"version": "1.1.3",
-			"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
-			"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
-		},
-		"node_modules/patch-package/node_modules/cross-spawn": {
-			"version": "6.0.5",
-			"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
-			"integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
-			"dependencies": {
-				"nice-try": "^1.0.4",
-				"path-key": "^2.0.1",
-				"semver": "^5.5.0",
-				"shebang-command": "^1.2.0",
-				"which": "^1.2.9"
-			},
-			"engines": {
-				"node": ">=4.8"
-			}
-		},
-		"node_modules/patch-package/node_modules/escape-string-regexp": {
-			"version": "1.0.5",
-			"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-			"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
-			"engines": {
-				"node": ">=0.8.0"
-			}
-		},
-		"node_modules/patch-package/node_modules/has-flag": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-			"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
-			"engines": {
-				"node": ">=4"
-			}
-		},
-		"node_modules/patch-package/node_modules/is-ci": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
-			"integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
-			"dependencies": {
-				"ci-info": "^2.0.0"
-			},
-			"bin": {
-				"is-ci": "bin.js"
-			}
-		},
-		"node_modules/patch-package/node_modules/path-key": {
-			"version": "2.0.1",
-			"resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
-			"integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
-			"engines": {
-				"node": ">=4"
-			}
-		},
-		"node_modules/patch-package/node_modules/rimraf": {
-			"version": "2.7.1",
-			"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
-			"integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
-			"dependencies": {
-				"glob": "^7.1.3"
-			},
-			"bin": {
-				"rimraf": "bin.js"
-			}
-		},
-		"node_modules/patch-package/node_modules/semver": {
-			"version": "5.7.1",
-			"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-			"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
-			"bin": {
-				"semver": "bin/semver"
-			}
-		},
-		"node_modules/patch-package/node_modules/shebang-command": {
-			"version": "1.2.0",
-			"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
-			"integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
-			"dependencies": {
-				"shebang-regex": "^1.0.0"
-			},
-			"engines": {
-				"node": ">=0.10.0"
-			}
-		},
-		"node_modules/patch-package/node_modules/shebang-regex": {
-			"version": "1.0.0",
-			"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
-			"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
-			"engines": {
-				"node": ">=0.10.0"
-			}
-		},
-		"node_modules/patch-package/node_modules/slash": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
-			"integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
-			"engines": {
-				"node": ">=6"
-			}
-		},
-		"node_modules/patch-package/node_modules/supports-color": {
-			"version": "5.5.0",
-			"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-			"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-			"dependencies": {
-				"has-flag": "^3.0.0"
-			},
-			"engines": {
-				"node": ">=4"
-			}
-		},
-		"node_modules/patch-package/node_modules/which": {
-			"version": "1.3.1",
-			"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
-			"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
-			"dependencies": {
-				"isexe": "^2.0.0"
-			},
-			"bin": {
-				"which": "bin/which"
-			}
-		},
-		"node_modules/path-equal": {
-			"version": "1.2.2",
-			"resolved": "https://registry.npmjs.org/path-equal/-/path-equal-1.2.2.tgz",
-			"integrity": "sha512-AUJvbcle1Zgb1TgtftHYknlrgrSYyI1ytrYgSbKUHSybwqUDnbD2cw9PIWivuMvsN+GTXmr/DRN4VBXpHG6aGg==",
-			"hasInstallScript": true
-		},
 		"node_modules/path-exists": {
 			"version": "4.0.0",
 			"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@@ -5941,6 +5596,8 @@
 			"version": "8.7.3",
 			"resolved": "https://registry.npmjs.org/pg/-/pg-8.7.3.tgz",
 			"integrity": "sha512-HPmH4GH4H3AOprDJOazoIcpI49XFsHCe8xlrjHkWiapdbHK+HLtbm/GQzXYAZwmPju/kzKhjaSfMACG+8cgJcw==",
+			"optional": true,
+			"peer": true,
 			"dependencies": {
 				"buffer-writer": "2.0.0",
 				"packet-reader": "1.0.0",
@@ -5965,12 +5622,16 @@
 		"node_modules/pg-connection-string": {
 			"version": "2.5.0",
 			"resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz",
-			"integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ=="
+			"integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==",
+			"optional": true,
+			"peer": true
 		},
 		"node_modules/pg-int8": {
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz",
 			"integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==",
+			"optional": true,
+			"peer": true,
 			"engines": {
 				"node": ">=4.0.0"
 			}
@@ -5979,6 +5640,8 @@
 			"version": "3.5.1",
 			"resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.5.1.tgz",
 			"integrity": "sha512-6iCR0wVrro6OOHFsyavV+i6KYL4lVNyYAB9RD18w66xSzN+d8b66HiwuP30Gp1SH5O9T82fckkzsRjlrhD0ioQ==",
+			"optional": true,
+			"peer": true,
 			"peerDependencies": {
 				"pg": ">=8.0"
 			}
@@ -5986,12 +5649,16 @@
 		"node_modules/pg-protocol": {
 			"version": "1.5.0",
 			"resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz",
-			"integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ=="
+			"integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==",
+			"optional": true,
+			"peer": true
 		},
 		"node_modules/pg-types": {
 			"version": "2.2.0",
 			"resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz",
 			"integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==",
+			"optional": true,
+			"peer": true,
 			"dependencies": {
 				"pg-int8": "1.0.1",
 				"postgres-array": "~2.0.0",
@@ -6007,6 +5674,8 @@
 			"version": "1.0.4",
 			"resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz",
 			"integrity": "sha512-YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==",
+			"optional": true,
+			"peer": true,
 			"dependencies": {
 				"split2": "^3.1.1"
 			}
@@ -6020,6 +5689,7 @@
 			"version": "2.3.0",
 			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
 			"integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
+			"dev": true,
 			"engines": {
 				"node": ">=8.6"
 			},
@@ -6052,6 +5722,8 @@
 			"version": "2.0.0",
 			"resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz",
 			"integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==",
+			"optional": true,
+			"peer": true,
 			"engines": {
 				"node": ">=4"
 			}
@@ -6060,6 +5732,8 @@
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz",
 			"integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=",
+			"optional": true,
+			"peer": true,
 			"engines": {
 				"node": ">=0.10.0"
 			}
@@ -6068,6 +5742,8 @@
 			"version": "1.0.7",
 			"resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz",
 			"integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==",
+			"optional": true,
+			"peer": true,
 			"engines": {
 				"node": ">=0.10.0"
 			}
@@ -6076,6 +5752,8 @@
 			"version": "1.2.0",
 			"resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz",
 			"integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==",
+			"optional": true,
+			"peer": true,
 			"dependencies": {
 				"xtend": "^4.0.0"
 			},
@@ -6442,14 +6120,6 @@
 				}
 			]
 		},
-		"node_modules/safe-stable-stringify": {
-			"version": "2.3.1",
-			"resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz",
-			"integrity": "sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==",
-			"engines": {
-				"node": ">=10"
-			}
-		},
 		"node_modules/safer-buffer": {
 			"version": "2.1.2",
 			"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
@@ -6689,6 +6359,8 @@
 			"version": "3.2.2",
 			"resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
 			"integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==",
+			"optional": true,
+			"peer": true,
 			"dependencies": {
 				"readable-stream": "^3.0.0"
 			}
@@ -6697,6 +6369,8 @@
 			"version": "3.6.0",
 			"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
 			"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+			"optional": true,
+			"peer": true,
 			"dependencies": {
 				"inherits": "^2.0.3",
 				"string_decoder": "^1.1.1",
@@ -6710,6 +6384,8 @@
 			"version": "1.3.0",
 			"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
 			"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+			"optional": true,
+			"peer": true,
 			"dependencies": {
 				"safe-buffer": "~5.2.0"
 			}
@@ -7061,17 +6737,6 @@
 				"node": ">=0.8"
 			}
 		},
-		"node_modules/tmp": {
-			"version": "0.0.33",
-			"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
-			"integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
-			"dependencies": {
-				"os-tmpdir": "~1.0.2"
-			},
-			"engines": {
-				"node": ">=0.6.0"
-			}
-		},
 		"node_modules/tmpl": {
 			"version": "1.0.5",
 			"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
@@ -7091,6 +6756,7 @@
 			"version": "5.0.1",
 			"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
 			"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+			"dev": true,
 			"dependencies": {
 				"is-number": "^7.0.0"
 			},
@@ -7110,6 +6776,7 @@
 			"version": "10.9.1",
 			"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
 			"integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
+			"devOptional": true,
 			"dependencies": {
 				"@cspotcode/source-map-support": "^0.8.0",
 				"@tsconfig/node10": "^1.0.7",
@@ -7152,6 +6819,7 @@
 			"version": "8.2.0",
 			"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
 			"integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
+			"devOptional": true,
 			"engines": {
 				"node": ">=0.4.0"
 			}
@@ -7459,87 +7127,6 @@
 				"node": ">=4.2.0"
 			}
 		},
-		"node_modules/typescript-json-schema": {
-			"version": "0.54.0",
-			"resolved": "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.54.0.tgz",
-			"integrity": "sha512-/MNhm1pjdxXiVspjjyRCrQAA1B768cRzHU83aIqN5vQqQEW2NgyyKOfcguiRIMM64lseIZIelegnHOHEu7YDCg==",
-			"dependencies": {
-				"@types/json-schema": "^7.0.9",
-				"@types/node": "^16.9.2",
-				"glob": "^7.1.7",
-				"path-equal": "^1.1.2",
-				"safe-stable-stringify": "^2.2.0",
-				"ts-node": "^10.2.1",
-				"typescript": "~4.6.0",
-				"yargs": "^17.1.1"
-			},
-			"bin": {
-				"typescript-json-schema": "bin/typescript-json-schema"
-			}
-		},
-		"node_modules/typescript-json-schema/node_modules/@types/node": {
-			"version": "16.11.45",
-			"resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.45.tgz",
-			"integrity": "sha512-3rKg/L5x0rofKuuUt5zlXzOnKyIHXmIu5R8A0TuNDMF2062/AOIDBciFIjToLEJ/9F9DzkHNot+BpNsMI1OLdQ=="
-		},
-		"node_modules/typescript-json-schema/node_modules/is-fullwidth-code-point": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
-			"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
-			"engines": {
-				"node": ">=8"
-			}
-		},
-		"node_modules/typescript-json-schema/node_modules/string-width": {
-			"version": "4.2.3",
-			"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
-			"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
-			"dependencies": {
-				"emoji-regex": "^8.0.0",
-				"is-fullwidth-code-point": "^3.0.0",
-				"strip-ansi": "^6.0.1"
-			},
-			"engines": {
-				"node": ">=8"
-			}
-		},
-		"node_modules/typescript-json-schema/node_modules/typescript": {
-			"version": "4.6.4",
-			"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz",
-			"integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==",
-			"bin": {
-				"tsc": "bin/tsc",
-				"tsserver": "bin/tsserver"
-			},
-			"engines": {
-				"node": ">=4.2.0"
-			}
-		},
-		"node_modules/typescript-json-schema/node_modules/yargs": {
-			"version": "17.5.1",
-			"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz",
-			"integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==",
-			"dependencies": {
-				"cliui": "^7.0.2",
-				"escalade": "^3.1.1",
-				"get-caller-file": "^2.0.5",
-				"require-directory": "^2.1.1",
-				"string-width": "^4.2.3",
-				"y18n": "^5.0.5",
-				"yargs-parser": "^21.0.0"
-			},
-			"engines": {
-				"node": ">=12"
-			}
-		},
-		"node_modules/typescript-json-schema/node_modules/yargs-parser": {
-			"version": "21.0.1",
-			"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz",
-			"integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==",
-			"engines": {
-				"node": ">=12"
-			}
-		},
 		"node_modules/unique-filename": {
 			"version": "1.1.1",
 			"resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
@@ -7635,7 +7222,8 @@
 		"node_modules/v8-compile-cache-lib": {
 			"version": "3.0.1",
 			"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
-			"integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg=="
+			"integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
+			"devOptional": true
 		},
 		"node_modules/v8-to-istanbul": {
 			"version": "9.0.1",
@@ -7701,14 +7289,6 @@
 				"makeerror": "1.0.12"
 			}
 		},
-		"node_modules/web-streams-polyfill": {
-			"version": "3.2.1",
-			"resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz",
-			"integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==",
-			"engines": {
-				"node": ">= 8"
-			}
-		},
 		"node_modules/which": {
 			"version": "2.0.2",
 			"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@@ -7965,6 +7545,7 @@
 			"version": "3.1.1",
 			"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
 			"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
+			"devOptional": true,
 			"engines": {
 				"node": ">=6"
 			}
@@ -8439,6 +8020,7 @@
 			"version": "0.8.1",
 			"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
 			"integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
+			"devOptional": true,
 			"requires": {
 				"@jridgewell/trace-mapping": "0.3.9"
 			}
@@ -8739,7 +8321,8 @@
 		"@jridgewell/resolve-uri": {
 			"version": "3.1.0",
 			"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
-			"integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w=="
+			"integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
+			"devOptional": true
 		},
 		"@jridgewell/set-array": {
 			"version": "1.1.2",
@@ -8750,12 +8333,14 @@
 		"@jridgewell/sourcemap-codec": {
 			"version": "1.4.14",
 			"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
-			"integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
+			"integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
+			"devOptional": true
 		},
 		"@jridgewell/trace-mapping": {
 			"version": "0.3.9",
 			"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
 			"integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
+			"devOptional": true,
 			"requires": {
 				"@jridgewell/resolve-uri": "^3.0.3",
 				"@jridgewell/sourcemap-codec": "^1.4.10"
@@ -8996,22 +8581,26 @@
 		"@tsconfig/node10": {
 			"version": "1.0.8",
 			"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz",
-			"integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg=="
+			"integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==",
+			"devOptional": true
 		},
 		"@tsconfig/node12": {
 			"version": "1.0.9",
 			"resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz",
-			"integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw=="
+			"integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==",
+			"devOptional": true
 		},
 		"@tsconfig/node14": {
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz",
-			"integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg=="
+			"integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==",
+			"devOptional": true
 		},
 		"@tsconfig/node16": {
 			"version": "1.0.2",
 			"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz",
-			"integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA=="
+			"integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==",
+			"devOptional": true
 		},
 		"@types/amqplib": {
 			"version": "0.8.2",
@@ -9145,11 +8734,6 @@
 				"@types/istanbul-lib-report": "*"
 			}
 		},
-		"@types/json-schema": {
-			"version": "7.0.9",
-			"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz",
-			"integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ=="
-		},
 		"@types/jsonwebtoken": {
 			"version": "8.5.8",
 			"resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.8.tgz",
@@ -9175,32 +8759,10 @@
 			}
 		},
 		"@types/node": {
-			"version": "14.18.22",
-			"resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.22.tgz",
-			"integrity": "sha512-qzaYbXVzin6EPjghf/hTdIbnVW1ErMx8rPzwRNJhlbyJhu2SyqlvjGOY/tbUt6VFyzg56lROcOeSQRInpt63Yw=="
-		},
-		"@types/node-fetch": {
-			"version": "2.6.2",
-			"resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz",
-			"integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==",
-			"dev": true,
-			"requires": {
-				"@types/node": "*",
-				"form-data": "^3.0.0"
-			},
-			"dependencies": {
-				"form-data": {
-					"version": "3.0.1",
-					"resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
-					"integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
-					"dev": true,
-					"requires": {
-						"asynckit": "^0.4.0",
-						"combined-stream": "^1.0.8",
-						"mime-types": "^2.1.12"
-					}
-				}
-			}
+			"version": "18.0.6",
+			"resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.6.tgz",
+			"integrity": "sha512-/xUq6H2aQm261exT6iZTMifUySEt4GR5KX8eYyY+C4MSNPqSh9oNIP7tz2GLKTlFaiBbgZNxffoR3CVRG+cljw==",
+			"devOptional": true
 		},
 		"@types/prettier": {
 			"version": "2.6.3",
@@ -9251,11 +8813,6 @@
 			"integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==",
 			"dev": true
 		},
-		"@yarnpkg/lockfile": {
-			"version": "1.1.0",
-			"resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz",
-			"integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ=="
-		},
 		"abbrev": {
 			"version": "1.1.1",
 			"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
@@ -9463,7 +9020,8 @@
 		"arg": {
 			"version": "4.1.3",
 			"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
-			"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA=="
+			"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
+			"devOptional": true
 		},
 		"argparse": {
 			"version": "1.0.10",
@@ -9677,6 +9235,7 @@
 			"version": "3.0.2",
 			"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
 			"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+			"dev": true,
 			"requires": {
 				"fill-range": "^7.0.1"
 			}
@@ -9731,7 +9290,9 @@
 		"buffer-writer": {
 			"version": "2.0.0",
 			"resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz",
-			"integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw=="
+			"integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==",
+			"optional": true,
+			"peer": true
 		},
 		"busboy": {
 			"version": "1.6.0",
@@ -10054,7 +9615,8 @@
 		"create-require": {
 			"version": "1.1.1",
 			"resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
-			"integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ=="
+			"integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
+			"devOptional": true
 		},
 		"cross-spawn": {
 			"version": "7.0.3",
@@ -10187,7 +9749,8 @@
 		"diff": {
 			"version": "4.0.2",
 			"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
-			"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A=="
+			"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+			"devOptional": true
 		},
 		"diff-sequences": {
 			"version": "28.1.1",
@@ -10459,6 +10022,7 @@
 			"version": "7.0.1",
 			"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
 			"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+			"dev": true,
 			"requires": {
 				"to-regex-range": "^5.0.1"
 			}
@@ -10487,14 +10051,6 @@
 				"path-exists": "^4.0.0"
 			}
 		},
-		"find-yarn-workspace-root": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz",
-			"integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==",
-			"requires": {
-				"micromatch": "^4.0.2"
-			}
-		},
 		"form-data": {
 			"version": "4.0.0",
 			"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
@@ -10505,14 +10061,6 @@
 				"mime-types": "^2.1.12"
 			}
 		},
-		"formdata-polyfill": {
-			"version": "4.0.10",
-			"resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
-			"integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
-			"requires": {
-				"fetch-blob": "^3.1.2"
-			}
-		},
 		"forwarded": {
 			"version": "0.2.0",
 			"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
@@ -10530,16 +10078,6 @@
 			"optional": true,
 			"peer": true
 		},
-		"fs-extra": {
-			"version": "7.0.1",
-			"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
-			"integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
-			"requires": {
-				"graceful-fs": "^4.1.2",
-				"jsonfile": "^4.0.0",
-				"universalify": "^0.1.0"
-			}
-		},
 		"fs-minipass": {
 			"version": "2.1.0",
 			"resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
@@ -10942,11 +10480,6 @@
 				"has": "^1.0.3"
 			}
 		},
-		"is-docker": {
-			"version": "2.2.1",
-			"resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
-			"integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="
-		},
 		"is-fullwidth-code-point": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
@@ -10973,7 +10506,8 @@
 		"is-number": {
 			"version": "7.0.0",
 			"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
-			"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+			"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+			"dev": true
 		},
 		"is-stream": {
 			"version": "2.0.1",
@@ -10981,14 +10515,6 @@
 			"integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
 			"dev": true
 		},
-		"is-wsl": {
-			"version": "2.2.0",
-			"resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
-			"integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
-			"requires": {
-				"is-docker": "^2.0.0"
-			}
-		},
 		"isarray": {
 			"version": "0.0.1",
 			"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
@@ -10997,7 +10523,8 @@
 		"isexe": {
 			"version": "2.0.0",
 			"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
-			"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
+			"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+			"devOptional": true
 		},
 		"istanbul-lib-coverage": {
 			"version": "3.2.0",
@@ -11642,14 +11169,6 @@
 				"safe-buffer": "^5.0.1"
 			}
 		},
-		"klaw-sync": {
-			"version": "6.0.0",
-			"resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz",
-			"integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==",
-			"requires": {
-				"graceful-fs": "^4.1.11"
-			}
-		},
 		"kleur": {
 			"version": "3.0.3",
 			"resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
@@ -11755,7 +11274,8 @@
 		"make-error": {
 			"version": "1.3.6",
 			"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
-			"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="
+			"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
+			"devOptional": true
 		},
 		"make-fetch-happen": {
 			"version": "9.1.0",
@@ -11847,6 +11367,7 @@
 			"version": "4.0.4",
 			"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
 			"integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
+			"dev": true,
 			"requires": {
 				"braces": "^3.0.1",
 				"picomatch": "^2.2.3"
@@ -12042,11 +11563,6 @@
 			"resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz",
 			"integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg=="
 		},
-		"nice-try": {
-			"version": "1.0.5",
-			"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
-			"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
-		},
 		"node-abi": {
 			"version": "2.30.1",
 			"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz",
@@ -12073,28 +11589,6 @@
 			"optional": true,
 			"peer": true
 		},
-		"node-domexception": {
-			"version": "1.0.0",
-			"resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
-			"integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ=="
-		},
-		"node-fetch": {
-			"version": "3.2.9",
-			"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.9.tgz",
-			"integrity": "sha512-/2lI+DBecVvVm9tDhjziTVjo2wmTsSxSk58saUYP0P/fRJ3xxtfMDY24+CKTkfm0Dlhyn3CSXNL0SoRiCZ8Rzg==",
-			"requires": {
-				"data-uri-to-buffer": "^4.0.0",
-				"fetch-blob": "^3.1.4",
-				"formdata-polyfill": "^4.0.10"
-			},
-			"dependencies": {
-				"data-uri-to-buffer": {
-					"version": "4.0.0",
-					"resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz",
-					"integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA=="
-				}
-			}
-		},
 		"node-gyp": {
 			"version": "8.4.1",
 			"resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz",
@@ -12295,15 +11789,6 @@
 				"mimic-fn": "^2.1.0"
 			}
 		},
-		"open": {
-			"version": "7.4.2",
-			"resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
-			"integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
-			"requires": {
-				"is-docker": "^2.0.0",
-				"is-wsl": "^2.1.1"
-			}
-		},
 		"optionator": {
 			"version": "0.8.3",
 			"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
@@ -12317,11 +11802,6 @@
 				"word-wrap": "~1.2.3"
 			}
 		},
-		"os-tmpdir": {
-			"version": "1.0.2",
-			"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
-			"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
-		},
 		"p-limit": {
 			"version": "3.1.0",
 			"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
@@ -12411,7 +11891,9 @@
 		"packet-reader": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz",
-			"integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ=="
+			"integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==",
+			"optional": true,
+			"peer": true
 		},
 		"parse-json": {
 			"version": "5.2.0",
@@ -12448,151 +11930,6 @@
 			"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
 			"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
 		},
-		"patch-package": {
-			"version": "6.4.7",
-			"resolved": "https://registry.npmjs.org/patch-package/-/patch-package-6.4.7.tgz",
-			"integrity": "sha512-S0vh/ZEafZ17hbhgqdnpunKDfzHQibQizx9g8yEf5dcVk3KOflOfdufRXQX8CSEkyOQwuM/bNz1GwKvFj54kaQ==",
-			"requires": {
-				"@yarnpkg/lockfile": "^1.1.0",
-				"chalk": "^2.4.2",
-				"cross-spawn": "^6.0.5",
-				"find-yarn-workspace-root": "^2.0.0",
-				"fs-extra": "^7.0.1",
-				"is-ci": "^2.0.0",
-				"klaw-sync": "^6.0.0",
-				"minimist": "^1.2.0",
-				"open": "^7.4.2",
-				"rimraf": "^2.6.3",
-				"semver": "^5.6.0",
-				"slash": "^2.0.0",
-				"tmp": "^0.0.33"
-			},
-			"dependencies": {
-				"ansi-styles": {
-					"version": "3.2.1",
-					"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
-					"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
-					"requires": {
-						"color-convert": "^1.9.0"
-					}
-				},
-				"chalk": {
-					"version": "2.4.2",
-					"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
-					"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
-					"requires": {
-						"ansi-styles": "^3.2.1",
-						"escape-string-regexp": "^1.0.5",
-						"supports-color": "^5.3.0"
-					}
-				},
-				"ci-info": {
-					"version": "2.0.0",
-					"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
-					"integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
-				},
-				"color-convert": {
-					"version": "1.9.3",
-					"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
-					"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
-					"requires": {
-						"color-name": "1.1.3"
-					}
-				},
-				"color-name": {
-					"version": "1.1.3",
-					"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
-					"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
-				},
-				"cross-spawn": {
-					"version": "6.0.5",
-					"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
-					"integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
-					"requires": {
-						"nice-try": "^1.0.4",
-						"path-key": "^2.0.1",
-						"semver": "^5.5.0",
-						"shebang-command": "^1.2.0",
-						"which": "^1.2.9"
-					}
-				},
-				"escape-string-regexp": {
-					"version": "1.0.5",
-					"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-					"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
-				},
-				"has-flag": {
-					"version": "3.0.0",
-					"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-					"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
-				},
-				"is-ci": {
-					"version": "2.0.0",
-					"resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
-					"integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
-					"requires": {
-						"ci-info": "^2.0.0"
-					}
-				},
-				"path-key": {
-					"version": "2.0.1",
-					"resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
-					"integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
-				},
-				"rimraf": {
-					"version": "2.7.1",
-					"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
-					"integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
-					"requires": {
-						"glob": "^7.1.3"
-					}
-				},
-				"semver": {
-					"version": "5.7.1",
-					"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-					"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
-				},
-				"shebang-command": {
-					"version": "1.2.0",
-					"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
-					"integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
-					"requires": {
-						"shebang-regex": "^1.0.0"
-					}
-				},
-				"shebang-regex": {
-					"version": "1.0.0",
-					"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
-					"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
-				},
-				"slash": {
-					"version": "2.0.0",
-					"resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
-					"integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A=="
-				},
-				"supports-color": {
-					"version": "5.5.0",
-					"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-					"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-					"requires": {
-						"has-flag": "^3.0.0"
-					}
-				},
-				"which": {
-					"version": "1.3.1",
-					"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
-					"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
-					"requires": {
-						"isexe": "^2.0.0"
-					}
-				}
-			}
-		},
-		"path-equal": {
-			"version": "1.2.2",
-			"resolved": "https://registry.npmjs.org/path-equal/-/path-equal-1.2.2.tgz",
-			"integrity": "sha512-AUJvbcle1Zgb1TgtftHYknlrgrSYyI1ytrYgSbKUHSybwqUDnbD2cw9PIWivuMvsN+GTXmr/DRN4VBXpHG6aGg=="
-		},
 		"path-exists": {
 			"version": "4.0.0",
 			"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@@ -12625,6 +11962,8 @@
 			"version": "8.7.3",
 			"resolved": "https://registry.npmjs.org/pg/-/pg-8.7.3.tgz",
 			"integrity": "sha512-HPmH4GH4H3AOprDJOazoIcpI49XFsHCe8xlrjHkWiapdbHK+HLtbm/GQzXYAZwmPju/kzKhjaSfMACG+8cgJcw==",
+			"optional": true,
+			"peer": true,
 			"requires": {
 				"buffer-writer": "2.0.0",
 				"packet-reader": "1.0.0",
@@ -12638,28 +11977,38 @@
 		"pg-connection-string": {
 			"version": "2.5.0",
 			"resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz",
-			"integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ=="
+			"integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==",
+			"optional": true,
+			"peer": true
 		},
 		"pg-int8": {
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz",
-			"integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw=="
+			"integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==",
+			"optional": true,
+			"peer": true
 		},
 		"pg-pool": {
 			"version": "3.5.1",
 			"resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.5.1.tgz",
 			"integrity": "sha512-6iCR0wVrro6OOHFsyavV+i6KYL4lVNyYAB9RD18w66xSzN+d8b66HiwuP30Gp1SH5O9T82fckkzsRjlrhD0ioQ==",
+			"optional": true,
+			"peer": true,
 			"requires": {}
 		},
 		"pg-protocol": {
 			"version": "1.5.0",
 			"resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz",
-			"integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ=="
+			"integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==",
+			"optional": true,
+			"peer": true
 		},
 		"pg-types": {
 			"version": "2.2.0",
 			"resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz",
 			"integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==",
+			"optional": true,
+			"peer": true,
 			"requires": {
 				"pg-int8": "1.0.1",
 				"postgres-array": "~2.0.0",
@@ -12672,6 +12021,8 @@
 			"version": "1.0.4",
 			"resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz",
 			"integrity": "sha512-YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==",
+			"optional": true,
+			"peer": true,
 			"requires": {
 				"split2": "^3.1.1"
 			}
@@ -12684,7 +12035,8 @@
 		"picomatch": {
 			"version": "2.3.0",
 			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
-			"integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw=="
+			"integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
+			"dev": true
 		},
 		"pirates": {
 			"version": "4.0.5",
@@ -12704,22 +12056,30 @@
 		"postgres-array": {
 			"version": "2.0.0",
 			"resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz",
-			"integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA=="
+			"integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==",
+			"optional": true,
+			"peer": true
 		},
 		"postgres-bytea": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz",
-			"integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU="
+			"integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=",
+			"optional": true,
+			"peer": true
 		},
 		"postgres-date": {
 			"version": "1.0.7",
 			"resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz",
-			"integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q=="
+			"integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==",
+			"optional": true,
+			"peer": true
 		},
 		"postgres-interval": {
 			"version": "1.2.0",
 			"resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz",
 			"integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==",
+			"optional": true,
+			"peer": true,
 			"requires": {
 				"xtend": "^4.0.0"
 			}
@@ -12996,11 +12356,6 @@
 			"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
 			"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
 		},
-		"safe-stable-stringify": {
-			"version": "2.3.1",
-			"resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz",
-			"integrity": "sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg=="
-		},
 		"safer-buffer": {
 			"version": "2.1.2",
 			"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
@@ -13187,6 +12542,8 @@
 			"version": "3.2.2",
 			"resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
 			"integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==",
+			"optional": true,
+			"peer": true,
 			"requires": {
 				"readable-stream": "^3.0.0"
 			},
@@ -13195,6 +12552,8 @@
 					"version": "3.6.0",
 					"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
 					"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+					"optional": true,
+					"peer": true,
 					"requires": {
 						"inherits": "^2.0.3",
 						"string_decoder": "^1.1.1",
@@ -13205,6 +12564,8 @@
 					"version": "1.3.0",
 					"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
 					"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+					"optional": true,
+					"peer": true,
 					"requires": {
 						"safe-buffer": "~5.2.0"
 					}
@@ -13475,14 +12836,6 @@
 				"thenify": ">= 3.1.0 < 4"
 			}
 		},
-		"tmp": {
-			"version": "0.0.33",
-			"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
-			"integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
-			"requires": {
-				"os-tmpdir": "~1.0.2"
-			}
-		},
 		"tmpl": {
 			"version": "1.0.5",
 			"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
@@ -13499,6 +12852,7 @@
 			"version": "5.0.1",
 			"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
 			"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+			"dev": true,
 			"requires": {
 				"is-number": "^7.0.0"
 			}
@@ -13512,6 +12866,7 @@
 			"version": "10.9.1",
 			"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
 			"integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
+			"devOptional": true,
 			"requires": {
 				"@cspotcode/source-map-support": "^0.8.0",
 				"@tsconfig/node10": "^1.0.7",
@@ -13531,7 +12886,8 @@
 				"acorn-walk": {
 					"version": "8.2.0",
 					"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
-					"integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA=="
+					"integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
+					"devOptional": true
 				}
 			}
 		},
@@ -13689,67 +13045,6 @@
 			"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
 			"integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ=="
 		},
-		"typescript-json-schema": {
-			"version": "0.54.0",
-			"resolved": "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.54.0.tgz",
-			"integrity": "sha512-/MNhm1pjdxXiVspjjyRCrQAA1B768cRzHU83aIqN5vQqQEW2NgyyKOfcguiRIMM64lseIZIelegnHOHEu7YDCg==",
-			"requires": {
-				"@types/json-schema": "^7.0.9",
-				"@types/node": "^16.9.2",
-				"glob": "^7.1.7",
-				"path-equal": "^1.1.2",
-				"safe-stable-stringify": "^2.2.0",
-				"ts-node": "^10.2.1",
-				"typescript": "~4.6.0",
-				"yargs": "^17.1.1"
-			},
-			"dependencies": {
-				"@types/node": {
-					"version": "16.11.45",
-					"resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.45.tgz",
-					"integrity": "sha512-3rKg/L5x0rofKuuUt5zlXzOnKyIHXmIu5R8A0TuNDMF2062/AOIDBciFIjToLEJ/9F9DzkHNot+BpNsMI1OLdQ=="
-				},
-				"is-fullwidth-code-point": {
-					"version": "3.0.0",
-					"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
-					"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
-				},
-				"string-width": {
-					"version": "4.2.3",
-					"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
-					"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
-					"requires": {
-						"emoji-regex": "^8.0.0",
-						"is-fullwidth-code-point": "^3.0.0",
-						"strip-ansi": "^6.0.1"
-					}
-				},
-				"typescript": {
-					"version": "4.6.4",
-					"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz",
-					"integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg=="
-				},
-				"yargs": {
-					"version": "17.5.1",
-					"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz",
-					"integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==",
-					"requires": {
-						"cliui": "^7.0.2",
-						"escalade": "^3.1.1",
-						"get-caller-file": "^2.0.5",
-						"require-directory": "^2.1.1",
-						"string-width": "^4.2.3",
-						"y18n": "^5.0.5",
-						"yargs-parser": "^21.0.0"
-					}
-				},
-				"yargs-parser": {
-					"version": "21.0.1",
-					"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz",
-					"integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg=="
-				}
-			}
-		},
 		"unique-filename": {
 			"version": "1.1.1",
 			"resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
@@ -13817,7 +13112,8 @@
 		"v8-compile-cache-lib": {
 			"version": "3.0.1",
 			"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
-			"integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg=="
+			"integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
+			"devOptional": true
 		},
 		"v8-to-istanbul": {
 			"version": "9.0.1",
@@ -13872,11 +13168,6 @@
 				"makeerror": "1.0.12"
 			}
 		},
-		"web-streams-polyfill": {
-			"version": "3.2.1",
-			"resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz",
-			"integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q=="
-		},
 		"which": {
 			"version": "2.0.2",
 			"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@@ -14069,7 +13360,8 @@
 		"yn": {
 			"version": "3.1.1",
 			"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
-			"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q=="
+			"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
+			"devOptional": true
 		},
 		"yocto-queue": {
 			"version": "0.1.0",
diff --git a/util/package.json b/util/package.json
index 55f10106..f9440500 100644
--- a/util/package.json
+++ b/util/package.json
@@ -32,8 +32,7 @@
 		"@types/amqplib": "^0.8.1",
 		"@types/jsonwebtoken": "^8.5.8",
 		"@types/multer": "^1.4.7",
-		"@types/node": "^14.18.22",
-		"@types/node-fetch": "^2.6.2",
+		"@types/node": "^18.0.6",
 		"jest": "^28.1.3",
 		"ts-node": "^10.2.1"
 	},
@@ -44,15 +43,11 @@
 		"lambert-server": "^1.2.12",
 		"missing-native-js-functions": "^1.2.18",
 		"multer": "^1.4.5-lts.1",
-		"node-fetch": "^3.2.9",
-		"patch-package": "^6.4.7",
-		"pg": "^8.7.3",
 		"picocolors": "^1.0.0",
 		"proxy-agent": "^5.0.0",
 		"reflect-metadata": "^0.1.13",
 		"typeorm": "^0.3.7",
-		"typescript": "^4.7.4",
-		"typescript-json-schema": "^0.54.0"
+		"typescript": "^4.7.4"
 	},
 	"jest": {
 		"setupFilesAfterEnv": [
diff --git a/util/src/fetch.js b/util/src/fetch.js
new file mode 100644
index 00000000..709bc440
--- /dev/null
+++ b/util/src/fetch.js
@@ -0,0 +1 @@
+export default fetch;
diff --git a/util/src/index.ts b/util/src/index.ts
index ae0f7e54..0de1e19a 100644
--- a/util/src/index.ts
+++ b/util/src/index.ts
@@ -4,3 +4,4 @@ export * from "./util/index";
 export * from "./interfaces/index";
 export * from "./entities/index";
 export * from "./dtos/index";
+export * from "./fetch.js";
diff --git a/util/src/util/AutoUpdate.ts b/util/src/util/AutoUpdate.ts
index 62ce8d79..7a4af4ff 100644
--- a/util/src/util/AutoUpdate.ts
+++ b/util/src/util/AutoUpdate.ts
@@ -1,5 +1,5 @@
 import "missing-native-js-functions";
-import fetch from "node-fetch";
+import fetch from "../fetch";
 import ProxyAgent from 'proxy-agent';
 import readline from "readline";
 import fs from "fs/promises";
diff --git a/util/src/util/cdn.ts b/util/src/util/cdn.ts
index ea950cd1..ef4ac47d 100644
--- a/util/src/util/cdn.ts
+++ b/util/src/util/cdn.ts
@@ -1,8 +1,9 @@
 import FormData from "form-data";
 import { HTTPError } from "lambert-server";
-import fetch from "node-fetch";
 import { Config } from "./Config";
 import multer from "multer";
+import fetch from "../fetch"
+import { nodeModuleNameResolver } from "typescript";
 
 export async function uploadFile(path: string, file?: Express.Multer.File) {
 	if (!file?.buffer) throw new HTTPError("Missing file in body");