summary refs log tree commit diff
path: root/bundle/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'bundle/scripts')
-rw-r--r--bundle/scripts/benchmark/connections.js64
-rw-r--r--bundle/scripts/benchmark/index.js4
-rw-r--r--bundle/scripts/benchmark/users.js25
-rw-r--r--bundle/scripts/build.js93
-rwxr-xr-xbundle/scripts/db_migrations.sh32
-rw-r--r--bundle/scripts/depcheck.js56
-rw-r--r--bundle/scripts/depclean.js65
-rw-r--r--bundle/scripts/install.js23
-rw-r--r--bundle/scripts/rights.js34
-rw-r--r--bundle/scripts/utils.js53
10 files changed, 0 insertions, 449 deletions
diff --git a/bundle/scripts/benchmark/connections.js b/bundle/scripts/benchmark/connections.js
deleted file mode 100644

index 661548c3..00000000 --- a/bundle/scripts/benchmark/connections.js +++ /dev/null
@@ -1,64 +0,0 @@ -require("dotenv").config(); -const cluster = require("cluster"); -const WebSocket = require("ws"); -const endpoint = process.env.GATEWAY || "ws://localhost:3001"; -const connections = Number(process.env.CONNECTIONS) || 50; -const token = process.env.TOKEN; -let cores = 1; -try { - cores = Number(process.env.THREADS) || os.cpus().length; -} catch { - console.log("[Bundle] Failed to get thread count! Using 1...") -} - -if (!token) { - console.error("TOKEN env var missing"); - process.exit(); -} - -if (cluster.isMaster) { - for (let i = 0; i < threads; i++) { - cluster.fork(); - } - - cluster.on("exit", (worker, code, signal) => { - console.log(`worker ${worker.process.pid} died`); - }); -} else { - for (let i = 0; i < connections; i++) { - connect(); - } -} - -function connect() { - const client = new WebSocket(endpoint); - client.on("message", (data) => { - data = JSON.parse(data); - - switch (data.op) { - case 10: - client.interval = setInterval(() => { - client.send(JSON.stringify({ op: 1 })); - }, data.d.heartbeat_interval); - - client.send( - JSON.stringify({ - op: 2, - d: { - token, - properties: {}, - }, - }) - ); - - break; - } - }); - client.once("close", (code, reason) => { - clearInterval(client.interval); - connect(); - }); - client.on("error", (err) => { - // console.log(err); - }); -} diff --git a/bundle/scripts/benchmark/index.js b/bundle/scripts/benchmark/index.js deleted file mode 100644
index 37ac5633..00000000 --- a/bundle/scripts/benchmark/index.js +++ /dev/null
@@ -1,4 +0,0 @@ -require("dotenv").config(); - -require("./connections"); -require("./messages"); diff --git a/bundle/scripts/benchmark/users.js b/bundle/scripts/benchmark/users.js deleted file mode 100644
index bce67bf4..00000000 --- a/bundle/scripts/benchmark/users.js +++ /dev/null
@@ -1,25 +0,0 @@ -require("dotenv").config(); -const fetch = require("node-fetch"); -const count = Number(process.env.COUNT) || 50; -const endpoint = process.env.API || "http://localhost:3001"; - -async function main() { - for (let i = 0; i < count; i++) { - fetch(`${endpoint}/api/auth/register`, { - method: "POST", - body: JSON.stringify({ - fingerprint: `${i}.wR8vi8lGlFBJerErO9LG5NViJFw`, - username: `test${i}`, - invite: null, - consent: true, - date_of_birth: "2000-01-01", - gift_code_sku_id: null, - captcha_key: null, - }), - headers: { "content-type": "application/json" }, - }); - console.log(i); - } -} - -main(); diff --git a/bundle/scripts/build.js b/bundle/scripts/build.js deleted file mode 100644
index f53a2223..00000000 --- a/bundle/scripts/build.js +++ /dev/null
@@ -1,93 +0,0 @@ -const { execSync } = require("child_process"); -const path = require("path"); -const fs = require("fs"); -const { getSystemErrorMap } = require("util"); -const { argv, stdout, exit } = require("process"); -const { copyRecursiveSync, execIn, parts } = require('./utils'); - -if(argv.includes("help")) { - console.log(`Fosscord build script help: -Arguments: - clean Cleans up previous builds - copyonly Only copy source files, don't build (useful for updating assets) - verbose Enable verbose logging - logerrors Log build errors to console - pretty-errors Pretty-print build errors - silent No output to console or files.`); - exit(0); -} - -let steps = 3, i = 0; -if (argv.includes("clean")) steps++; -if (argv.includes("copyonly")) steps--; - -const verbose = argv.includes("verbose") || argv.includes("v"); -const logerr = argv.includes("logerrors"); -const pretty = argv.includes("pretty-errors"); -const silent = argv.includes("silent"); - -if(silent) console.error = console.log = function(){} - -if (argv.includes("clean")) { - console.log(`[${++i}/${steps}] Cleaning...`); - parts.forEach((a) => { - let d = "../" + a + "/dist"; - if (fs.existsSync(d)) { - fs.rmSync(d, { recursive: true }); - if (verbose) console.log(`Deleted ${d}!`); - } - }); -} - -console.log(`[${++i}/${steps}] Checking if dependencies were installed correctly...`); -//exif-be-gone v1.3.0 doesnt build js, known bug -if(!fs.existsSync(path.join(__dirname, "..", "node_modules", "exif-be-gone", "index.js"))) - execIn("npm run build", path.join(__dirname, "..", "node_modules", "exif-be-gone")); - -console.log(`[${++i}/${steps}] Copying src files...`); -copyRecursiveSync(path.join(__dirname, "..", "..", "api", "assets"), path.join(__dirname, "..", "dist", "api", "assets")); -copyRecursiveSync(path.join(__dirname, "..", "..", "api", "client_test"), path.join(__dirname, "..", "dist", "api", "client_test")); -copyRecursiveSync(path.join(__dirname, "..", "..", "api", "locales"), path.join(__dirname, "..", "dist", "api", "locales")); -parts.forEach((a) => { - copyRecursiveSync("../" + a + "/src", "dist/" + a + "/src"); - if (verbose) console.log(`Copied ${"../" + a + "/dist"} -> ${"dist/" + a + "/src"}!`); -}); - -if (!argv.includes("copyonly")) { - console.log(`[${++i}/${steps}] Compiling src files ...`); - - let buildFlags = '' - if(pretty) buildFlags += '--pretty ' - - try { - execSync( - 'node "' + - path.join(__dirname, "..", "node_modules", "typescript", "lib", "tsc.js") + - '" -p "' + - path.join(__dirname, "..") + - '" ' + buildFlags, - { - cwd: path.join(__dirname, ".."), - shell: true, - env: process.env, - encoding: "utf8" - } - ) - } catch (error) { - if(verbose || logerr) { - error.stdout.split(/\r?\n/).forEach((line) => { - let _line = line.replace('dist/','',1); - if(!pretty && _line.includes('.ts(')) { - //reformat file path for easy jumping - _line = _line.replace('(',':',1).replace(',',':',1).replace(')','',1) - } - console.error(_line); - }) - } - console.error(`Build failed! Please check build.log for info!`); - if(!silent){ - if(pretty) fs.writeFileSync("build.log.ansi", error.stdout); - fs.writeFileSync("build.log", error.stdout.replaceAll(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, '')); - } - } -} \ No newline at end of file diff --git a/bundle/scripts/db_migrations.sh b/bundle/scripts/db_migrations.sh deleted file mode 100755
index b0e1131c..00000000 --- a/bundle/scripts/db_migrations.sh +++ /dev/null
@@ -1,32 +0,0 @@ -#!/bin/sh -read -p "Enter migration filename: " FILENAME -[ -f ".env" ] && ( - mv .env .env.tmp - source .env.tmp -) - -make_migration() { - echo "Creating migrations for $2" - mkdir "../util/src/migrations/$2" - npm run build clean logerrors pretty-errors - THREADS=1 DATABASE="$1" DB_MIGRATE=a npm run start:bundle - THREADS=1 DATABASE="$1" DB_MIGRATE=a npx typeorm-ts-node-commonjs migration:generate "../util/src/migrations/$2/$FILENAME" -d ../util/src/util/Database.ts -p - npm run build clean logerrors pretty-errors - THREADS=1 DATABASE="$1" DB_MIGRATE=a npm run start:bundle -} - -npm i sqlite3 -make_migration "database.db" "sqlite" - -[ -z "$FC_DB_POSTGRES" ] || ( - npm i pg - make_migration "$FC_DB_POSTGRES" "postgres" -) - -[ -z "$FC_DB_MARIADB" ] || ( - npm i mysql2 - make_migration "$FC_DB_MARIADB" "mariadb" -) - -[ -f ".env.tmp" ] && mv .env.tmp .env - diff --git a/bundle/scripts/depcheck.js b/bundle/scripts/depcheck.js deleted file mode 100644
index 1957f794..00000000 --- a/bundle/scripts/depcheck.js +++ /dev/null
@@ -1,56 +0,0 @@ -const path = require("path"); -const fs = require("fs"); -const { env } = require("process"); -const { execSync } = require("child_process"); -const { argv, stdout, exit } = require("process"); - -const { execIn, getLines, parts } = require("./utils"); - -let npmi_extra_flags = ""; - -const resolveminor = argv.includes("resolveminor"); -if(argv.includes("nobuild")) npmi_extra_flags += "--ignore-scripts "; - -parts.forEach((part) => { - let partDir = path.join(__dirname, "..", "..", part); - let distDir = path.join(partDir, "dist"); - console.log(`Checking updates for ${part} (${partDir})`); - if(part == "bundle") { - execIn(`npm run syncdeps`, partDir) - } - if(resolveminor) { - fs.rmSync(path.join(partDir, "node_modules"), { - recursive: true, - force: true, - }); - execIn(`npm i --save --no-fund --no-audit --no-package-lock ${npmi_extra_flags}`, partDir) - } - let x = [ - [ - "pkg", - { - current: "1.0", - wanted: "2.0", - latest: "2.0", - dependent: "cdn", - location: "/usr/src/fosscord/bundle/node_packages/pkg", - }, - ], - ]; - x = Object.entries( - JSON.parse(execIn("npm outdated --json", partDir)) - ); - x.forEach((a) => { - let pkgname = a[0]; - let pkginfo = a[1]; - if(!pkginfo.current) - console.log(`MISSING ${pkgname}: ${pkginfo.current} -> ${pkginfo.wanted} (latest: ${pkginfo.latest})`); - else if(pkginfo.latest != pkginfo.wanted){ - if(pkginfo.current != pkginfo.wanted) - console.log(`MINOR ${pkgname}: ${pkginfo.current} -> ${pkginfo.wanted}`); - console.log(`MAJOR ${pkgname}: ${pkginfo.current} -> ${pkginfo.latest}`); - } - else - console.log(`MINOR ${pkgname}: ${pkginfo.current} -> ${pkginfo.wanted}`); - }); -}); diff --git a/bundle/scripts/depclean.js b/bundle/scripts/depclean.js deleted file mode 100644
index 830081b9..00000000 --- a/bundle/scripts/depclean.js +++ /dev/null
@@ -1,65 +0,0 @@ -const path = require("path"); -const fs = require("fs"); -const { env } = require("process"); -const { execSync } = require("child_process"); -const { argv, stdout, exit } = require("process"); - -const { execIn, getLines, parts } = require('./utils'); - -const bundleRequired = ["@ovos-media/ts-transform-paths"]; -const removeModules = argv.includes("cleanup"); - -parts.forEach((part) => { - console.log(`Installing all packages for ${part}...`); - execIn("npm i", path.join(__dirname, "..", "..", part)); -}); - -parts.forEach((part) => { - let partDir = path.join(__dirname, "..", "..", part); - let distDir = path.join(partDir, "dist"); - let start = 0; - start = getLines( - execIn("npm ls --parseable --package-lock-only -a", partDir) - ); - if (fs.existsSync(distDir)) - fs.rmSync(distDir, { - recursive: true, - force: true, - }); - let x = { - dependencies: [], - devDependencies: [], - invalidDirs: [], - invalidFiles: [], - missing: [], - using: [], - }; - let dcproc = execIn("npx depcheck --json", partDir); - if(dcproc.stdout) x = JSON.parse(dcproc.stdout); - else x = JSON.parse(dcproc); - - fs.writeFileSync( - path.join(__dirname, "..", `depclean.out.${part}.json`), - JSON.stringify(x, null, "\t"), - { encoding: "utf8" } - ); - - let depsToRemove = x.dependencies.join(" "); - if (depsToRemove) execIn(`npm r --save ${depsToRemove}`, partDir); - - depsToRemove = x.devDependencies.join(" "); - if (depsToRemove) execIn(`npm r --save --dev ${depsToRemove}`, partDir); - - if (removeModules && fs.existsSync(path.join(partDir, "node_modules"))) - fs.rmSync(path.join(partDir, "node_modules"), { - recursive: true, - force: true, - }); - let end = getLines( - execIn("npm ls --parseable --package-lock-only -a", partDir) - ); - console.log(`${part}: ${start} -> ${end} (diff: ${start - end})`); -}); -console.log("Installing required packages for bundle..."); - -execIn(`npm i --save ${bundleRequired.join(" ")}`, path.join(__dirname, "..")); diff --git a/bundle/scripts/install.js b/bundle/scripts/install.js deleted file mode 100644
index db9dadbc..00000000 --- a/bundle/scripts/install.js +++ /dev/null
@@ -1,23 +0,0 @@ -const path = require("path"); -const fs = require("fs"); -const parts = ["api", "util", "cdn", "gateway"]; - -const bundle = require("../package.json"); - -for (const part of parts) { - const { devDependencies, dependencies } = require(path.join( - "..", - "..", - part, - "package.json" - )); - bundle.devDependencies = { ...bundle.devDependencies, ...devDependencies }; - bundle.dependencies = { ...bundle.dependencies, ...dependencies }; - delete bundle.dependencies["@fosscord/util"]; -} - -fs.writeFileSync( - path.join(__dirname, "..", "package.json"), - JSON.stringify(bundle, null, "\t"), - { encoding: "utf8" } -); diff --git a/bundle/scripts/rights.js b/bundle/scripts/rights.js deleted file mode 100644
index c363b0c5..00000000 --- a/bundle/scripts/rights.js +++ /dev/null
@@ -1,34 +0,0 @@ -const path = require("path"); -const fs = require("fs"); -const { env } = require("process"); -const { execSync } = require("child_process"); -const { argv, stdout, exit } = require("process"); - -const { execIn, getLines, parts } = require("./utils"); - -let lines = fs.readFileSync(path.join(__dirname, "..", "..", "util", "src","util","Rights.ts")).toString() -let lines2 = lines.split("\n"); -let lines3 = lines2.filter(y=>y.includes(": BitFlag(")); -let lines4 = lines3.map(x=>x.split("//")[0].trim()) - -function BitFlag(int) { - return 1n << eval(`${int}n`); -} - -let rights = [] -let maxRights = 0n; -lines4.forEach(x=>{ - maxRights += eval(`rights.${x.replace(':'," = ").replace(",",";")}`) -}) -//max rights... -console.log(`Maximum rights: ${maxRights}`); -//discord rights... -discordRights = maxRights; -discordRights -= rights.SEND_BACKDATED_EVENTS; -discordRights -= rights.MANAGE_GUILD_DIRECTORY; -discordRights -= rights.CREDITABLE; -discordRights -= rights.BYPASS_RATE_LIMITS; -discordRights -= rights.ADD_MEMBERS; -discordRights -= rights.MANAGE_RATE_LIMITS; -discordRights -= rights.OPERATOR; -console.log(`Discord-like rights: ${discordRights}`); \ No newline at end of file diff --git a/bundle/scripts/utils.js b/bundle/scripts/utils.js deleted file mode 100644
index bf960532..00000000 --- a/bundle/scripts/utils.js +++ /dev/null
@@ -1,53 +0,0 @@ -const path = require("path"); -const fs = require("fs"); -const { env } = require("process"); -const { execSync } = require("child_process"); -const { argv, stdout, exit } = require("process"); - -const parts = ["api", "util", "cdn", "gateway", "bundle"]; - -function copyRecursiveSync(src, dest) { - //if (verbose) console.log(`cpsync: ${src} -> ${dest}`); - let exists = fs.existsSync(src); - if (!exists) { - console.log(src + " doesn't exist, not copying!"); - return; - } - let stats = exists && fs.statSync(src); - let isDirectory = exists && stats.isDirectory(); - if (isDirectory) { - fs.mkdirSync(dest, { recursive: true }); - fs.readdirSync(src).forEach(function (childItemName) { - copyRecursiveSync( - path.join(src, childItemName), - path.join(dest, childItemName) - ); - }); - } else { - fs.copyFileSync(src, dest); - } -} - -function execIn(cmd, workdir) { - try { - return execSync(cmd, { - cwd: workdir, - shell: true, - env: process.env, - encoding: "utf-8", - }); - } catch (error) { - return error.stdout; - } -} - -function getLines(output) { - return output.split("\n").length; -} - -module.exports = { - //consts - parts, - //functions - copyRecursiveSync, execIn, getLines -};