From e5f35fbdf901387d82b285f41ec87b1d1d2b3a69 Mon Sep 17 00:00:00 2001 From: Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> Date: Fri, 1 Jan 2021 22:26:20 +0100 Subject: [PATCH] :bug: fix --- .DS_Store | Bin 6148 -> 6148 bytes .gitignore | 2 + package-lock.json | Bin 46367 -> 102237 bytes package.json | 60 +++++++++++++++-------------- src/Server.ts | 5 +-- src/Utils.ts | 11 +----- src/exampleFetch.ts | 52 +++++++++++++++++++++++++ src/routes/api/v8/auth/login.ts | 0 src/routes/api/v8/auth/register.ts | 0 9 files changed, 88 insertions(+), 42 deletions(-) create mode 100644 src/exampleFetch.ts create mode 100644 src/routes/api/v8/auth/login.ts create mode 100644 src/routes/api/v8/auth/register.ts diff --git a/.DS_Store b/.DS_Store index 348b5e54cf4a7f040e0e76f2b9cbeffd7a4cd976..7daf908b1893dfa12298e2692abd1bf221dd3a8c 100644 GIT binary patch delta 78 zcmZoMXffEJ&cyh0vIf&i1DWb-T|;vN3mpYR3-ekXg=#}%6B8iEz}&F5mXm`+Qr#^m iuC%Fd*6bxqmn}bbeDXggdBzi)<(QwbY-Z>9%MSpoZWCHGM1~dp9>QEFd&9Hhp~w2nZP` gMp9mNf{vP-q@|{(!^D#T10Mm!vmpcK1fv895Ked(egFUf diff --git a/.gitignore b/.gitignore index 67045665..89c4f375 100644 --- a/.gitignore +++ b/.gitignore @@ -102,3 +102,5 @@ dist # TernJS port file .tern-port + +.DS_STORE \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 2b13235caeeb74774056337d7af6006f0246f6e5..fb92cdeab458208653ff82435773e4d2939d84cc 100644 GIT binary patch literal 102237 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 TPd-31wANo^{N-Q%_Lu(;72T)C diff --git a/package.json b/package.json index 0e3eca53..6b70725e 100644 --- a/package.json +++ b/package.json @@ -1,31 +1,33 @@ { - "name": "discord-server-opensource", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/Trenite/discord-server-opensource.git" - }, - "keywords": [], - "author": "", - "license": "ISC", - "bugs": { - "url": "https://github.com/Trenite/discord-server-opensource/issues" - }, - "homepage": "https://github.com/Trenite/discord-server-opensource#readme", - "devDependencies": { - "@types/node": "^14.14.10", - "typescript": "^4.1.2" - }, - "dependencies": { - "@types/express": "^4.17.9", - "@types/node-fetch": "^2.5.7", - "express": "^4.17.1", - "express-cache-middleware": "^1.0.1", - "node-fetch": "^2.6.1" - } + "name": "discord-server-opensource", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/Trenite/discord-server-opensource.git" + }, + "keywords": [], + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/Trenite/discord-server-opensource/issues" + }, + "homepage": "https://github.com/Trenite/discord-server-opensource#readme", + "dependencies": { + "@types/express": "^4.17.9", + "@types/node-fetch": "^2.5.7", + "express": "^4.17.1", + "express-cache-middleware": "^1.0.1", + "lambert-db": "^1.0.3", + "missing-native-js-functions": "^1.0.8", + "node-fetch": "^2.6.1" + }, + "devDependencies": { + "@types/node": "^14.14.10", + "typescript": "^4.1.2" + } } diff --git a/src/Server.ts b/src/Server.ts index ca03e0d2..92c73a35 100644 --- a/src/Server.ts +++ b/src/Server.ts @@ -1,7 +1,6 @@ import express, { Application, Router } from "express"; import { traverseDirectory } from "./Utils"; import { Server as HTTPServer } from "http"; -import fetch from "node-fetch"; import fs from "fs/promises"; export type ServerOptions = { @@ -56,13 +55,13 @@ export class Server { var router = require(file); if (router.router) router = router.router; if (router.default) router = router.default; - if (!router || router.prototype.constructor.name !== "router") + if (!router || router?.prototype?.constructor?.name !== "router") throw `File doesn't export any default router`; this.app.use(path, router); console.log(`[Server] Route ${path} registerd`); return router; } catch (error) { - console.error(new Error(`[Server] Failed to register route ${file}: ${error}`)); + console.error(new Error(`[Server] Failed to register route ${path}: ${error}`)); } } diff --git a/src/Utils.ts b/src/Utils.ts index 09d8e8c6..291372c1 100644 --- a/src/Utils.ts +++ b/src/Utils.ts @@ -1,14 +1,5 @@ import fs from "fs/promises"; - -declare global { - interface Array { - flat(): T; - } -} - -Array.prototype.flat = function () { - return this.reduce((acc, val) => (Array.isArray(val) ? acc.concat(val.flat()) : acc.concat(val)), []); -}; +import "missing-native-js-functions"; export interface traverseDirectoryOptions { dirname: string; diff --git a/src/exampleFetch.ts b/src/exampleFetch.ts new file mode 100644 index 00000000..9c433e4b --- /dev/null +++ b/src/exampleFetch.ts @@ -0,0 +1,52 @@ +import fetch from "node-fetch"; + +fetch("https://discord.com/api/v8/auth/login", { + headers: { + authorization: "undefined", + "content-type": "application/json", + "x-fingerprint": "782364413927751692.ex9RorNkBsGynrJCe5Brxtc3Ytc", + "x-super-properties": + "eyJvcyI6Ik1hYyBPUyBYIiwiYnJvd3NlciI6IkNocm9tZSIsImRldmljZSI6IiIsImJyb3dzZXJfdXNlcl9hZ2VudCI6Ik1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzE1XzcpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS84Ny4wLjQyODAuNjcgU2FmYXJpLzUzNy4zNiIsImJyb3dzZXJfdmVyc2lvbiI6Ijg3LjAuNDI4MC42NyIsIm9zX3ZlcnNpb24iOiIxMC4xNS43IiwicmVmZXJyZXIiOiIiLCJyZWZlcnJpbmdfZG9tYWluIjoiIiwicmVmZXJyZXJfY3VycmVudCI6IiIsInJlZmVycmluZ19kb21haW5fY3VycmVudCI6IiIsInJlbGVhc2VfY2hhbm5lbCI6InN0YWJsZSIsImNsaWVudF9idWlsZF9udW1iZXIiOjcyMzc2LCJjbGllbnRfZXZlbnRfc291cmNlIjpudWxsfQ==", + }, + body: JSON.stringify({ + login: "email@gmail.com", + password: "cleartextpassword", + undelete: false, + captcha_key: null, + login_source: null, + gift_code_sku_id: null, + }), + method: "POST", +}); +/** + * @returns {"token": null, "mfa": true, "sms": true, "ticket": "WzMxMTEyOTM1NzM2MjEzNTA0MSwibG9naW4iXQ.X8LHqg.vTwtZBaLu5W_XMMSvKad1OAaEoA"} + */ + +fetch("https://discord.com/api/v8/auth/mfa/totp", { + headers: { + authorization: "undefined", + "content-type": "application/json", + }, + body: JSON.stringify({ + code: "722608", + ticket: "WzMxMTEyOTM1NzM2MjEzNTA0MSwibG9naW4iXQ.X8LHqg.vTwtZBaLu5W_XMMSvKad1OAaEoA", + login_source: null, + gift_code_sku_id: null, + }), + method: "POST", +}); +/** + * @returns {"token": "mfa.-Rg2AwyP06YdTPmIDt0sqA92T8fBVITLTcXjP7zO_Uhgkg1FA0WERGjJXJyN_dyVDeBnxIWr0w3XiXW8YxVw", "user_settings": {"locale": "en-GB", "theme": "dark"}} + */ + +// token: mfa.-Rg2AwyP06YdTPmIDt0sqA92T8fBVITLTcXjP7zO_Uhgkg1FA0WERGjJXJyN_dyVDeBnxIWr0w3XiXW8YxVw + +fetch("https://discord.com/api/v8/gateway", { + headers: { + authorization: "token", + }, + method: "GET", +}); +/** + * @returns {"url": "wss://gateway.discord.gg"} + */ diff --git a/src/routes/api/v8/auth/login.ts b/src/routes/api/v8/auth/login.ts new file mode 100644 index 00000000..e69de29b diff --git a/src/routes/api/v8/auth/register.ts b/src/routes/api/v8/auth/register.ts new file mode 100644 index 00000000..e69de29b