summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.gitignore3
-rw-r--r--api/.swcrc17
-rw-r--r--api/package-lock.json2
-rw-r--r--bundle/.swcrc12
-rw-r--r--bundle/package-lock.json240
-rw-r--r--bundle/scripts/build.js56
-rw-r--r--bundle/tsconfig.json3
-rw-r--r--cdn/tsconfig.json4
-rw-r--r--gateway/.swcrc5
-rw-r--r--gateway/package-lock.json2
-rw-r--r--gateway/tsconfig.json4
-rw-r--r--util/.swcrc18
-rw-r--r--webrtc/.swcrc12
13 files changed, 252 insertions, 126 deletions
diff --git a/.gitignore b/.gitignore
index c302ad40..f67723af 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,4 +4,5 @@ dist/
 node_modules
 api/assets/*.js
 api/assets/*.css
-database.db
\ No newline at end of file
+database.db
+tsconfig.tsbuildinfo
\ No newline at end of file
diff --git a/api/.swcrc b/api/.swcrc
deleted file mode 100644
index 794efbd7..00000000
--- a/api/.swcrc
+++ /dev/null
@@ -1,17 +0,0 @@
-{
-	"module": {
-		"type": "commonjs"
-	},
-	"jsc": {
-		"parser": {
-			"syntax": "typescript",
-			"decorators": true
-		},
-		"target": "es2021",
-		"baseUrl": "./",
-		"paths": {
-			"@fosscord/api": ["src/index.ts"],
-			"@fosscord/api/*": ["src/*"]
-		}
-	}
-}
diff --git a/api/package-lock.json b/api/package-lock.json
index 2af8c7b9..f4e7506c 100644
--- a/api/package-lock.json
+++ b/api/package-lock.json
@@ -104,7 +104,6 @@
 				"pg": "^8.7.1",
 				"reflect-metadata": "^0.1.13",
 				"sqlite3": "^5.0.2",
-				"swc": "^1.0.11",
 				"tsconfig-paths": "^3.11.0",
 				"typeorm": "^0.2.37",
 				"typescript": "^4.4.2",
@@ -18403,7 +18402,6 @@
 				"pg": "^8.7.1",
 				"reflect-metadata": "^0.1.13",
 				"sqlite3": "^5.0.2",
-				"swc": "^1.0.11",
 				"tsconfig-paths": "^3.11.0",
 				"typeorm": "^0.2.37",
 				"typescript": "^4.4.2",
diff --git a/bundle/.swcrc b/bundle/.swcrc
deleted file mode 100644
index 9a89b49d..00000000
--- a/bundle/.swcrc
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-	"module": {
-		"type": "commonjs"
-	},
-	"jsc": {
-		"parser": {
-			"syntax": "typescript",
-			"decorators": true
-		},
-		"target": "es2021"
-	}
-}
diff --git a/bundle/package-lock.json b/bundle/package-lock.json
index dd80d787..cb8078de 100644
--- a/bundle/package-lock.json
+++ b/bundle/package-lock.json
@@ -9,6 +9,7 @@
 			"version": "1.0.0",
 			"license": "AGPLV3",
 			"dependencies": {
+				"@esbuild-plugins/tsconfig-paths": "^0.0.4",
 				"@fosscord/api": "file:../api",
 				"@fosscord/cdn": "file:../cdn",
 				"@fosscord/gateway": "file:../gateway",
@@ -152,7 +153,6 @@
 				"nanocolors": "^0.2.12",
 				"node-fetch": "^2.6.1",
 				"supertest": "^6.1.6",
-				"swc": "^1.0.11",
 				"typescript": "^4.1.2",
 				"uuid": "^8.3.2"
 			},
@@ -192,7 +192,6 @@
 				"missing-native-js-functions": "^1.2.17",
 				"mongoose-autopopulate": "^0.12.3",
 				"node-fetch": "^2.6.1",
-				"swc": "^1.0.11",
 				"typeorm": "^0.2.37",
 				"uuid": "^8.3.2",
 				"ws": "^7.4.2"
@@ -239,7 +238,6 @@
 				"pg": "^8.7.1",
 				"reflect-metadata": "^0.1.13",
 				"sqlite3": "^5.0.2",
-				"swc": "^1.0.11",
 				"tsconfig-paths": "^3.11.0",
 				"typeorm": "^0.2.37",
 				"typescript": "^4.4.2",
@@ -290,6 +288,41 @@
 				"node": ">=12"
 			}
 		},
+		"node_modules/@esbuild-plugins/tsconfig-paths": {
+			"version": "0.0.4",
+			"resolved": "https://registry.npmjs.org/@esbuild-plugins/tsconfig-paths/-/tsconfig-paths-0.0.4.tgz",
+			"integrity": "sha512-/86k8BmhfJOFoFLR2oKtoxUVUpIYBtJy29QSM5TXzZP8vdjuMPtXSUeCL+8Aa2GZ3to2k6VD9WLBE9OU+j1yQQ==",
+			"dependencies": {
+				"debug": "^4.3.1",
+				"find-up": "^5.0.0",
+				"strip-json-comments": "^3.1.1"
+			},
+			"peerDependencies": {
+				"esbuild": "*",
+				"typescript": "*"
+			}
+		},
+		"node_modules/@esbuild-plugins/tsconfig-paths/node_modules/debug": {
+			"version": "4.3.2",
+			"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
+			"integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
+			"dependencies": {
+				"ms": "2.1.2"
+			},
+			"engines": {
+				"node": ">=6.0"
+			},
+			"peerDependenciesMeta": {
+				"supports-color": {
+					"optional": true
+				}
+			}
+		},
+		"node_modules/@esbuild-plugins/tsconfig-paths/node_modules/ms": {
+			"version": "2.1.2",
+			"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+			"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+		},
 		"node_modules/@fosscord/api": {
 			"resolved": "../api",
 			"link": true
@@ -1230,7 +1263,6 @@
 			"version": "0.13.4",
 			"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.13.4.tgz",
 			"integrity": "sha512-wMA5eUwpavTBiNl+It6j8OQuKVh69l6z4DKDLzoTIqC+gChnPpcmqdA8WNHptUHRnfyML+mKEQPlW7Mybj8gHg==",
-			"dev": true,
 			"hasInstallScript": true,
 			"bin": {
 				"esbuild": "bin/esbuild"
@@ -1261,7 +1293,6 @@
 			"cpu": [
 				"arm64"
 			],
-			"dev": true,
 			"optional": true,
 			"os": [
 				"android"
@@ -1274,7 +1305,6 @@
 			"cpu": [
 				"x64"
 			],
-			"dev": true,
 			"optional": true,
 			"os": [
 				"darwin"
@@ -1287,7 +1317,6 @@
 			"cpu": [
 				"arm64"
 			],
-			"dev": true,
 			"optional": true,
 			"os": [
 				"darwin"
@@ -1300,7 +1329,6 @@
 			"cpu": [
 				"x64"
 			],
-			"dev": true,
 			"optional": true,
 			"os": [
 				"freebsd"
@@ -1313,7 +1341,6 @@
 			"cpu": [
 				"arm64"
 			],
-			"dev": true,
 			"optional": true,
 			"os": [
 				"freebsd"
@@ -1326,7 +1353,6 @@
 			"cpu": [
 				"ia32"
 			],
-			"dev": true,
 			"optional": true,
 			"os": [
 				"linux"
@@ -1339,7 +1365,6 @@
 			"cpu": [
 				"x64"
 			],
-			"dev": true,
 			"optional": true,
 			"os": [
 				"linux"
@@ -1352,7 +1377,6 @@
 			"cpu": [
 				"arm"
 			],
-			"dev": true,
 			"optional": true,
 			"os": [
 				"linux"
@@ -1365,7 +1389,6 @@
 			"cpu": [
 				"arm64"
 			],
-			"dev": true,
 			"optional": true,
 			"os": [
 				"linux"
@@ -1378,7 +1401,6 @@
 			"cpu": [
 				"mips64el"
 			],
-			"dev": true,
 			"optional": true,
 			"os": [
 				"linux"
@@ -1391,7 +1413,6 @@
 			"cpu": [
 				"ppc64"
 			],
-			"dev": true,
 			"optional": true,
 			"os": [
 				"linux"
@@ -1404,7 +1425,6 @@
 			"cpu": [
 				"x64"
 			],
-			"dev": true,
 			"optional": true,
 			"os": [
 				"openbsd"
@@ -1429,7 +1449,6 @@
 			"cpu": [
 				"x64"
 			],
-			"dev": true,
 			"optional": true,
 			"os": [
 				"sunos"
@@ -1442,7 +1461,6 @@
 			"cpu": [
 				"ia32"
 			],
-			"dev": true,
 			"optional": true,
 			"os": [
 				"win32"
@@ -1455,7 +1473,6 @@
 			"cpu": [
 				"x64"
 			],
-			"dev": true,
 			"optional": true,
 			"os": [
 				"win32"
@@ -1468,7 +1485,6 @@
 			"cpu": [
 				"arm64"
 			],
-			"dev": true,
 			"optional": true,
 			"os": [
 				"win32"
@@ -1581,6 +1597,21 @@
 				"node": ">= 0.8"
 			}
 		},
+		"node_modules/find-up": {
+			"version": "5.0.0",
+			"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+			"integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+			"dependencies": {
+				"locate-path": "^6.0.0",
+				"path-exists": "^4.0.0"
+			},
+			"engines": {
+				"node": ">=10"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
+		},
 		"node_modules/form-data": {
 			"version": "3.0.1",
 			"resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
@@ -1852,6 +1883,20 @@
 				"node": ">=0.10.0"
 			}
 		},
+		"node_modules/locate-path": {
+			"version": "6.0.0",
+			"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+			"integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+			"dependencies": {
+				"p-locate": "^5.0.0"
+			},
+			"engines": {
+				"node": ">=10"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
+		},
 		"node_modules/make-error": {
 			"version": "1.3.6",
 			"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
@@ -1997,6 +2042,34 @@
 				"wrappy": "1"
 			}
 		},
+		"node_modules/p-limit": {
+			"version": "3.1.0",
+			"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+			"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+			"dependencies": {
+				"yocto-queue": "^0.1.0"
+			},
+			"engines": {
+				"node": ">=10"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
+		},
+		"node_modules/p-locate": {
+			"version": "5.0.0",
+			"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+			"integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+			"dependencies": {
+				"p-limit": "^3.0.2"
+			},
+			"engines": {
+				"node": ">=10"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
+		},
 		"node_modules/parseurl": {
 			"version": "1.3.3",
 			"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
@@ -2005,6 +2078,14 @@
 				"node": ">= 0.8"
 			}
 		},
+		"node_modules/path-exists": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+			"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+			"engines": {
+				"node": ">=8"
+			}
+		},
 		"node_modules/path-is-absolute": {
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
@@ -2298,6 +2379,17 @@
 				"node": ">=10"
 			}
 		},
+		"node_modules/strip-json-comments": {
+			"version": "3.1.1",
+			"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+			"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+			"engines": {
+				"node": ">=8"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
+		},
 		"node_modules/supports-color": {
 			"version": "7.2.0",
 			"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -2423,7 +2515,6 @@
 			"version": "4.4.3",
 			"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.3.tgz",
 			"integrity": "sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==",
-			"dev": true,
 			"bin": {
 				"tsc": "bin/tsc",
 				"tsserver": "bin/tsserver"
@@ -2482,6 +2573,17 @@
 			"engines": {
 				"node": ">=6"
 			}
+		},
+		"node_modules/yocto-queue": {
+			"version": "0.1.0",
+			"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+			"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+			"engines": {
+				"node": ">=10"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/sindresorhus"
+			}
 		}
 	},
 	"dependencies": {
@@ -2509,6 +2611,31 @@
 				"@cspotcode/source-map-consumer": "0.8.0"
 			}
 		},
+		"@esbuild-plugins/tsconfig-paths": {
+			"version": "0.0.4",
+			"resolved": "https://registry.npmjs.org/@esbuild-plugins/tsconfig-paths/-/tsconfig-paths-0.0.4.tgz",
+			"integrity": "sha512-/86k8BmhfJOFoFLR2oKtoxUVUpIYBtJy29QSM5TXzZP8vdjuMPtXSUeCL+8Aa2GZ3to2k6VD9WLBE9OU+j1yQQ==",
+			"requires": {
+				"debug": "^4.3.1",
+				"find-up": "^5.0.0",
+				"strip-json-comments": "^3.1.1"
+			},
+			"dependencies": {
+				"debug": {
+					"version": "4.3.2",
+					"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
+					"integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
+					"requires": {
+						"ms": "2.1.2"
+					}
+				},
+				"ms": {
+					"version": "2.1.2",
+					"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+					"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+				}
+			}
+		},
 		"@fosscord/api": {
 			"version": "file:../api",
 			"requires": {
@@ -2622,7 +2749,6 @@
 				"nanocolors": "^0.2.12",
 				"node-fetch": "^2.6.1",
 				"supertest": "^6.1.6",
-				"swc": "^1.0.11",
 				"ts-patch": "^1.4.4",
 				"typescript": "^4.1.2",
 				"uuid": "^8.3.2"
@@ -2653,7 +2779,6 @@
 				"missing-native-js-functions": "^1.2.17",
 				"mongoose-autopopulate": "^0.12.3",
 				"node-fetch": "^2.6.1",
-				"swc": "^1.0.11",
 				"ts-node-dev": "^1.1.6",
 				"ts-patch": "^1.4.4",
 				"typeorm": "^0.2.37",
@@ -2689,7 +2814,6 @@
 				"pg": "^8.7.1",
 				"reflect-metadata": "^0.1.13",
 				"sqlite3": "^5.0.2",
-				"swc": "^1.0.11",
 				"tsconfig-paths": "^3.11.0",
 				"typeorm": "^0.2.37",
 				"typescript": "^4.4.2",
@@ -3368,7 +3492,6 @@
 			"version": "0.13.4",
 			"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.13.4.tgz",
 			"integrity": "sha512-wMA5eUwpavTBiNl+It6j8OQuKVh69l6z4DKDLzoTIqC+gChnPpcmqdA8WNHptUHRnfyML+mKEQPlW7Mybj8gHg==",
-			"dev": true,
 			"requires": {
 				"esbuild-android-arm64": "0.13.4",
 				"esbuild-darwin-64": "0.13.4",
@@ -3392,84 +3515,72 @@
 			"version": "0.13.4",
 			"resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.13.4.tgz",
 			"integrity": "sha512-elDJt+jNyoHFId0/dKsuVYUPke3EcquIyUwzJCH17a3ERglN3A9aMBI5zbz+xNZ+FbaDNdpn0RaJHCFLbZX+fA==",
-			"dev": true,
 			"optional": true
 		},
 		"esbuild-darwin-64": {
 			"version": "0.13.4",
 			"resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.4.tgz",
 			"integrity": "sha512-zJQGyHRAdZUXlRzbN7W+7ykmEiGC+bq3Gc4GxKYjjWTgDRSEly98ym+vRNkDjXwXYD3gGzSwvH35+MiHAtWvLA==",
-			"dev": true,
 			"optional": true
 		},
 		"esbuild-darwin-arm64": {
 			"version": "0.13.4",
 			"resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.4.tgz",
 			"integrity": "sha512-r8oYvAtqSGq8HNTZCAx4TdLE7jZiGhX9ooGi5AQAey37MA6XNaP8ZNlw9OCpcgpx3ryU2WctXwIqPzkHO7a8dg==",
-			"dev": true,
 			"optional": true
 		},
 		"esbuild-freebsd-64": {
 			"version": "0.13.4",
 			"resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.4.tgz",
 			"integrity": "sha512-u9DRGkn09EN8+lCh6z7FKle7awi17PJRBuAKdRNgSo5ZrH/3m+mYaJK2PR2URHMpAfXiwJX341z231tSdVe3Yw==",
-			"dev": true,
 			"optional": true
 		},
 		"esbuild-freebsd-arm64": {
 			"version": "0.13.4",
 			"resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.4.tgz",
 			"integrity": "sha512-q3B2k68Uf6gfjATjcK16DqxvjqRQkHL8aPoOfj4op+lSqegdXvBacB1d8jw8PxbWJ8JHpdTLdAVUYU80kotQXA==",
-			"dev": true,
 			"optional": true
 		},
 		"esbuild-linux-32": {
 			"version": "0.13.4",
 			"resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.13.4.tgz",
 			"integrity": "sha512-UUYJPHSiKAO8KoN3Ls/iZtgDLZvK5HarES96aolDPWZnq9FLx4dIHM/x2z4Rxv9IYqQ/DxlPoE2Co1UPBIYYeA==",
-			"dev": true,
 			"optional": true
 		},
 		"esbuild-linux-64": {
 			"version": "0.13.4",
 			"resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.13.4.tgz",
 			"integrity": "sha512-+RnohAKiiUW4UHLGRkNR1AnENW1gCuDWuygEtd4jxTNPIoeC7lbXGor7rtgjj9AdUzFgOEvAXyNNX01kJ8NueQ==",
-			"dev": true,
 			"optional": true
 		},
 		"esbuild-linux-arm": {
 			"version": "0.13.4",
 			"resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.13.4.tgz",
 			"integrity": "sha512-BH5gKve4jglS7UPSsfwHSX79I5agC/lm4eKoRUEyo8lwQs89frQSRp2Xup+6SFQnxt3md5EsKcd2Dbkqeb3gPA==",
-			"dev": true,
 			"optional": true
 		},
 		"esbuild-linux-arm64": {
 			"version": "0.13.4",
 			"resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.4.tgz",
 			"integrity": "sha512-+A188cAdd6QuSRxMIwRrWLjgphQA0LDAQ/ECVlrPVJwnx+1i64NjDZivoqPYLOTkSPIKntiWwMhhf0U5/RrPHQ==",
-			"dev": true,
 			"optional": true
 		},
 		"esbuild-linux-mips64le": {
 			"version": "0.13.4",
 			"resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.4.tgz",
 			"integrity": "sha512-0xkwtPaUkG5xMTFGaQPe1AadSe5QAiQuD4Gix1O9k5Xo/U8xGIkw9UFUTvfEUeu71vFb6ZgsIacfP1NLoFjWNw==",
-			"dev": true,
 			"optional": true
 		},
 		"esbuild-linux-ppc64le": {
 			"version": "0.13.4",
 			"resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.4.tgz",
 			"integrity": "sha512-E1+oJPP7A+j23GPo3CEpBhGwG1bni4B8IbTA3/3rvzjURwUMZdcN3Fhrz24rnjzdLSHmULtOE4VsbT42h1Om4Q==",
-			"dev": true,
 			"optional": true
 		},
 		"esbuild-openbsd-64": {
 			"version": "0.13.4",
 			"resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.4.tgz",
 			"integrity": "sha512-xEkI1o5HYxDzbv9jSox0EsDxpwraG09SRiKKv0W8pH6O3bt+zPSlnoK7+I7Q69tkvONkpIq5n2o+c55uq0X7cw==",
-			"dev": true,
 			"optional": true
 		},
 		"esbuild-plugin-tsc": {
@@ -3485,28 +3596,24 @@
 			"version": "0.13.4",
 			"resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.13.4.tgz",
 			"integrity": "sha512-bjXUMcODMnB6hQicLBBmmnBl7OMDyVpFahKvHGXJfDChIi5udiIRKCmFUFIRn+AUAKVlfrofRKdyPC7kBsbvGQ==",
-			"dev": true,
 			"optional": true
 		},
 		"esbuild-windows-32": {
 			"version": "0.13.4",
 			"resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.13.4.tgz",
 			"integrity": "sha512-z4CH07pfyVY0XF98TCsGmLxKCl0kyvshKDbdpTekW9f2d+dJqn5mmoUyWhpSVJ0SfYWJg86FoD9nMbbaMVyGdg==",
-			"dev": true,
 			"optional": true
 		},
 		"esbuild-windows-64": {
 			"version": "0.13.4",
 			"resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.13.4.tgz",
 			"integrity": "sha512-uVL11vORRPjocGLYam67rwFLd0LvkrHEs+JG+1oJN4UD9MQmNGZPa4gBHo6hDpF+kqRJ9kXgQSeDqUyRy0tj/Q==",
-			"dev": true,
 			"optional": true
 		},
 		"esbuild-windows-arm64": {
 			"version": "0.13.4",
 			"resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.4.tgz",
 			"integrity": "sha512-vA6GLvptgftRcDcWngD5cMlL4f4LbL8JjU2UMT9yJ0MT5ra6hdZNFWnOeOoEtY4GtJ6OjZ0i+81sTqhAB0fMkg==",
-			"dev": true,
 			"optional": true
 		},
 		"escape-html": {
@@ -3601,6 +3708,15 @@
 				"unpipe": "~1.0.0"
 			}
 		},
+		"find-up": {
+			"version": "5.0.0",
+			"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+			"integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+			"requires": {
+				"locate-path": "^6.0.0",
+				"path-exists": "^4.0.0"
+			}
+		},
 		"form-data": {
 			"version": "3.0.1",
 			"resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
@@ -3801,6 +3917,14 @@
 			"integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
 			"dev": true
 		},
+		"locate-path": {
+			"version": "6.0.0",
+			"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+			"integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+			"requires": {
+				"p-locate": "^5.0.0"
+			}
+		},
 		"make-error": {
 			"version": "1.3.6",
 			"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
@@ -3913,11 +4037,32 @@
 				"wrappy": "1"
 			}
 		},
+		"p-limit": {
+			"version": "3.1.0",
+			"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+			"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+			"requires": {
+				"yocto-queue": "^0.1.0"
+			}
+		},
+		"p-locate": {
+			"version": "5.0.0",
+			"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+			"integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+			"requires": {
+				"p-limit": "^3.0.2"
+			}
+		},
 		"parseurl": {
 			"version": "1.3.3",
 			"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
 			"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
 		},
+		"path-exists": {
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+			"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
+		},
 		"path-is-absolute": {
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
@@ -4124,6 +4269,11 @@
 			"integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==",
 			"dev": true
 		},
+		"strip-json-comments": {
+			"version": "3.1.1",
+			"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+			"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="
+		},
 		"supports-color": {
 			"version": "7.2.0",
 			"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -4206,8 +4356,7 @@
 		"typescript": {
 			"version": "4.4.3",
 			"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.3.tgz",
-			"integrity": "sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==",
-			"dev": true
+			"integrity": "sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA=="
 		},
 		"unpipe": {
 			"version": "1.0.0",
@@ -4244,6 +4393,11 @@
 			"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
 			"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
 			"dev": true
+		},
+		"yocto-queue": {
+			"version": "0.1.0",
+			"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+			"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="
 		}
 	}
 }
diff --git a/bundle/scripts/build.js b/bundle/scripts/build.js
index ba559ecf..9939558d 100644
--- a/bundle/scripts/build.js
+++ b/bundle/scripts/build.js
@@ -1,8 +1,7 @@
 const { spawn } = require("child_process");
 const path = require("path");
-const { performance } = require("perf_hooks");
 const fs = require("fs");
-const esbuildPluginTsc = require("esbuild-plugin-tsc");
+const { performance } = require("perf_hooks");
 
 let parts = "api,cdn,gateway,bundle".split(",");
 const tscBin = path.join(__dirname, "..", "..", "util", "node_modules", "typescript", "bin", "tsc");
@@ -13,17 +12,49 @@ const swcBin = path.join(__dirname, "..", "..", "util", "node_modules", "@swc",
 function buildPackage(dir) {
 	const element = path.basename(dir);
 
-	require("esbuild").build({
+	return require("esbuild").build({
 		entryPoints: walk(path.join(dir, "src")),
 		bundle: false,
 		outdir: path.join(dir, "dist"),
 		target: "es2021",
-		format: "cjs",
-		plugins: [esbuildPluginTsc({})],
-		keepNames: true,
+		// plugins don't really work because bundle is false
+		keepNames: false,
+		tsconfig: path.join(dir, "tsconfig.json"),
 	});
 }
 
+const importPart = /import (\* as )?(({[^}]+})|(\w+)) from ("[.\w-/@q]+")/g;
+const importMod = /import ("[\w-/@q.]+")/g;
+const exportDefault = /export default/g;
+const exportAllAs = /export \* from (".+")/g;
+const exportMod = /export ({[\w, ]+})/g;
+const exportConst = /export (const|var|let) (\w+)/g;
+const exportPart = /export ((async )?\w+) (\w+)/g;
+
+// resolves tsconfig paths + rewrites es6 imports/exports to require (because esbuild/swc doesn't work properly)
+function transpileFiles() {
+	for (const part of ["gateway", "api", "cdn", "bundle"]) {
+		const files = walk(path.join(__dirname, "..", "..", part, "dist"));
+		for (const file of files) {
+			let content = fs.readFileSync(file, { encoding: "utf8" });
+			console.log(file);
+			content = content
+				.replaceAll(
+					`@fosscord/${part}`,
+					path.relative(file, path.join(__dirname, "..", "..", part, "dist")).slice(3)
+				)
+				.replace(importPart, `const $2 = require($5)`)
+				.replace(importMod, `require($1)`)
+				.replace(exportDefault, `module.exports =`)
+				.replace(exportAllAs, `module.exports = {...(module.exports)||{}, ...require($1)}`)
+				.replace(exportMod, "module.exports = $1")
+				.replace(exportConst, `let $2 = {};\nmodule.exports.$2 = $2`)
+				.replace(exportPart, `module.exports.$3 = $1 $3`);
+			fs.writeFileSync(file, content);
+		}
+	}
+}
+
 function util() {
 	// const child = spawn("node", `${swcBin}  src --out-dir dist --sync`.split(" "), {
 	const child = spawn("node", `${tscBin} -b .`.split(" "), {
@@ -41,13 +72,16 @@ function util() {
 }
 
 const start = performance.now();
-console.log("[Build] starting ...");
 
-util();
-for (const part of parts) {
-	buildPackage(path.join(__dirname, "..", "..", part));
+async function main() {
+	console.log("[Build] starting ...");
+	util();
+	await Promise.all(parts.map((part) => buildPackage(path.join(__dirname, "..", "..", part))));
+	transpileFiles();
 }
 
+main();
+
 process.on("exit", () => {
 	console.log("[Build] took " + Math.round(performance.now() - start) + "ms");
 });
@@ -61,7 +95,7 @@ function walk(dir) {
 		if (stat && stat.isDirectory()) {
 			/* Recurse into a subdirectory */
 			results = results.concat(walk(file));
-		} else if (file.endsWith(".ts")) {
+		} else if (file.endsWith(".ts") || file.endsWith(".js")) {
 			/* Is a file */
 			results.push(file);
 		}
diff --git a/bundle/tsconfig.json b/bundle/tsconfig.json
index b300a426..69725244 100644
--- a/bundle/tsconfig.json
+++ b/bundle/tsconfig.json
@@ -65,6 +65,7 @@
 		"skipLibCheck": true /* Skip type checking of declaration files. */,
 		"forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */,
 		"emitDecoratorMetadata": true,
-		"experimentalDecorators": true
+		"experimentalDecorators": true,
+		"baseUrl": "."
 	}
 }
diff --git a/cdn/tsconfig.json b/cdn/tsconfig.json
index c80d16fd..249dffff 100644
--- a/cdn/tsconfig.json
+++ b/cdn/tsconfig.json
@@ -4,7 +4,7 @@
 		/* Visit https://aka.ms/tsconfig.json to read more about this file */
 
 		/* Basic Options */
-		"incremental": true,                   /* Enable incremental compilation */
+		"incremental": true /* Enable incremental compilation */,
 		"target": "ES6" /* 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": ["ES2015", "dom"] /* Specify library files to be included in the compilation. */,
@@ -68,7 +68,7 @@
 		"forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */,
 		"baseUrl": ".",
 		"paths": {
-			"@fosscord/cdn/": ["src/index"],
+			"@fosscord/cdn": ["src/index"],
 			"@fosscord/cdn/*": ["src/*"]
 		},
 		"plugins": [{ "transform": "@zerollup/ts-transform-paths" }]
diff --git a/gateway/.swcrc b/gateway/.swcrc
index 3079a89f..e8cbb8a1 100644
--- a/gateway/.swcrc
+++ b/gateway/.swcrc
@@ -7,11 +7,10 @@
 			"syntax": "typescript",
 			"decorators": true
 		},
-		"target": "es2021",
+		"target": "es5",
 		"baseUrl": ".",
 		"paths": {
-			"@fosscord/gateway": ["src/index"],
-			"@fosscord/gateway/*": ["src/*"]
+			"@fosscord/gateway": ["src/index"]
 		}
 	}
 }
diff --git a/gateway/package-lock.json b/gateway/package-lock.json
index 38962a2a..07ae02f9 100644
--- a/gateway/package-lock.json
+++ b/gateway/package-lock.json
@@ -65,7 +65,6 @@
 				"pg": "^8.7.1",
 				"reflect-metadata": "^0.1.13",
 				"sqlite3": "^5.0.2",
-				"swc": "^1.0.11",
 				"tsconfig-paths": "^3.11.0",
 				"typeorm": "^0.2.37",
 				"typescript": "^4.4.2",
@@ -10094,7 +10093,6 @@
 				"pg": "^8.7.1",
 				"reflect-metadata": "^0.1.13",
 				"sqlite3": "^5.0.2",
-				"swc": "^1.0.11",
 				"tsconfig-paths": "^3.11.0",
 				"typeorm": "^0.2.37",
 				"typescript": "^4.4.2",
diff --git a/gateway/tsconfig.json b/gateway/tsconfig.json
index e2ac5b0b..2ad38f93 100644
--- a/gateway/tsconfig.json
+++ b/gateway/tsconfig.json
@@ -5,7 +5,7 @@
 		/* Visit https://aka.ms/tsconfig.json to read more about this file */
 
 		/* Basic Options */
-		"incremental": true,                   /* Enable incremental compilation */
+		"incremental": true /* Enable incremental compilation */,
 		"target": "ES2020" /* 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": ["ES2015", "ES2020.BigInt", "DOM"] /* Specify library files to be included in the compilation. */,
@@ -70,7 +70,7 @@
 		"resolveJsonModule": true,
 		"baseUrl": ".",
 		"paths": {
-			"@fosscord/gateway": ["src/index"],
+			"@fosscord/gateway": ["src/index.ts"],
 			"@fosscord/gateway/*": ["src/*"]
 		},
 		"plugins": [{ "transform": "@zerollup/ts-transform-paths" }]
diff --git a/util/.swcrc b/util/.swcrc
deleted file mode 100644
index a723d37f..00000000
--- a/util/.swcrc
+++ /dev/null
@@ -1,18 +0,0 @@
-{
-	"module": {
-		"type": "commonjs"
-	},
-	"jsc": {
-		"parser": {
-			"syntax": "typescript",
-			"decorators": true
-		},
-		"target": "es2021",
-		"transform": {
-			"legacyDecorator": true,
-			"decoratorMetadata": true
-		},
-		"keepClassNames": true,
-		"loose": true
-	}
-}
diff --git a/webrtc/.swcrc b/webrtc/.swcrc
deleted file mode 100644
index 9a89b49d..00000000
--- a/webrtc/.swcrc
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-	"module": {
-		"type": "commonjs"
-	},
-	"jsc": {
-		"parser": {
-			"syntax": "typescript",
-			"decorators": true
-		},
-		"target": "es2021"
-	}
-}