diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index af6f35ee..e0bb5e33 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -65,11 +65,6 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - name: Extract version - id: extract_version - uses: Saionaro/extract-package-version@v1.1.1 - with: - path: api - uses: actions/download-artifact@v2 with: name: fosscord-server-windows.exe diff --git a/api/package-lock.json b/api/package-lock.json index d94e3be0..00af4b5b 100644 --- a/api/package-lock.json +++ b/api/package-lock.json @@ -43,6 +43,7 @@ "@types/i18next-node-fs-backend": "^2.1.0", "@types/jsonwebtoken": "^8.5.0", "@types/mongodb": "^3.6.9", + "@types/mongoose": "^5.10.5", "@types/mongoose-autopopulate": "^0.10.1", "@types/mongoose-lean-virtuals": "^0.5.1", "@types/multer": "^1.4.5", @@ -60,7 +61,8 @@ } }, "../util": { - "version": "1.3.55", + "name": "@fosscord/util", + "version": "1.0.0", "hasInstallScript": true, "license": "GPLV3", "dependencies": { diff --git a/api/src/middlewares/Authentication.ts b/api/src/middlewares/Authentication.ts index 06eeab39..a8bfe196 100644 --- a/api/src/middlewares/Authentication.ts +++ b/api/src/middlewares/Authentication.ts @@ -27,11 +27,12 @@ declare global { export async function Authentication(req: Request, res: Response, next: NextFunction) { if (req.method === "OPTIONS") return res.sendStatus(204); - if (req.url.startsWith("/invites") && req.method === "GET") return next(); // @ts-ignore + const url = req.url.replace(API_PREFIX, ""); + if (url.startsWith("/invites") && req.method === "GET") return next(); // @ts-ignore if ( NO_AUTHORIZATION_ROUTES.some((x) => { - if (typeof x === "string") return req.url.startsWith(x); - return x.test(req.url); + if (typeof x === "string") return url.startsWith(x); + return x.test(url); }) ) return next(); diff --git a/api/src/routes/auth/login.ts b/api/src/routes/auth/login.ts index a7247485..dc970e4c 100644 --- a/api/src/routes/auth/login.ts +++ b/api/src/routes/auth/login.ts @@ -4,7 +4,6 @@ import bcrypt from "bcrypt"; import jwt from "jsonwebtoken"; import { Config, UserModel } from "@fosscord/util"; import { adjustEmail } from "./register"; -import RateLimit from "../../middlewares/RateLimit"; const router: Router = Router(); export default router; diff --git a/bundle/src/Server.ts b/bundle/src/Server.ts index c6acf0ad..e0586601 100644 --- a/bundle/src/Server.ts +++ b/bundle/src/Server.ts @@ -33,9 +33,8 @@ async function main() { }, }); - await api.start(); - await cdn.start(); - await gateway.start(); + await Promise.all([api.start(), cdn.start(), gateway.start()]); + console.log(`[Server] listening on port ${port}`); } main().catch(console.error); diff --git a/bundle/src/stats.ts b/bundle/src/stats.ts index 6413f347..37ddb4e2 100644 --- a/bundle/src/stats.ts +++ b/bundle/src/stats.ts @@ -2,6 +2,7 @@ import os from "os"; import osu from "node-os-utils"; export function initStats() { + console.log(`[Path] running in ${__dirname}`); console.log(`[CPU] ${osu.cpu.model()} Cores x${osu.cpu.count()}`); console.log(`[System] ${os.platform()} ${os.arch()}`); console.log(`[Database] started`); diff --git a/util/src/util/Config.ts b/util/src/util/Config.ts index ec1efc6c..a93e1846 100644 --- a/util/src/util/Config.ts +++ b/util/src/util/Config.ts @@ -211,11 +211,11 @@ export const DefaultOptions: DefaultOptions = { }, webhook: { count: 5, - window: 5, + window: 20, }, channel: { count: 5, - window: 5, + window: 20, }, auth: { login: { diff --git a/util/src/util/Event.ts b/util/src/util/Event.ts index 53e74c5f..0dbddc76 100644 --- a/util/src/util/Event.ts +++ b/util/src/util/Event.ts @@ -6,7 +6,7 @@ const events = new EventEmitter(); export async function emitEvent(payload: Omit) { const id = (payload.channel_id || payload.user_id || payload.guild_id) as string; - if (!id) console.error("event doesn't contain any id", payload); + if (!id) return console.error("event doesn't contain any id", payload); if (RabbitMQ.connection) { const data = typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.data; // use rabbitmq for event transmission @@ -16,7 +16,6 @@ export async function emitEvent(payload: Omit) { const successful = RabbitMQ.channel?.publish(id, "", Buffer.from(`${data}`), { type: payload.event }); if (!successful) throw new Error("failed to send event"); } else { - console.log("emit event", id); events.emit(id, payload); } } @@ -46,10 +45,8 @@ export async function listenEvent(event: string, callback: (event: EventOpts) => return rabbitListen(opts?.channel || RabbitMQ.channel, event, callback, { acknowledge: opts?.acknowledge }); } else { const cancel = () => { - console.log("cancel event", event); events.removeListener(event, callback); }; - console.log("listen event", event); events.addListener(event, (opts) => callback({ ...opts, cancel })); return cancel;