minor changes & build

This commit is contained in:
jusax23 2023-03-02 15:34:56 +01:00
parent 3b40cc05c3
commit c3f7b35c99
Signed by: jusax23
GPG key ID: 499E2AA870C1CD41
7 changed files with 17 additions and 14 deletions

3
.gitignore vendored
View file

@ -2,4 +2,5 @@ node_modules
dist dist
config.juml config.juml
.vscode .vscode
test test
build

8
package-lock.json generated
View file

@ -12,7 +12,7 @@
"auth-header": "^1.0.0", "auth-header": "^1.0.0",
"commander": "^10.0.0", "commander": "^10.0.0",
"cors": "^2.8.5", "cors": "^2.8.5",
"dblang": "https://jusax.de/git/attachments/c13552b7-c9f0-4f50-bcce-96a124c1c286", "dblang": "https://jusax.de/git/attachments/f23f8128-4fde-4ec6-a8cd-cfc5068b2cfd",
"express": "^4.18.2", "express": "^4.18.2",
"juml": "https://jusax.de/git/attachments/208913c5-2851-4b86-a53d-ca99fed168cc", "juml": "https://jusax.de/git/attachments/208913c5-2851-4b86-a53d-ca99fed168cc",
"nman": "https://jusax.de/git/attachments/5333948b-fe6b-45d2-9230-ca388f6a89bc", "nman": "https://jusax.de/git/attachments/5333948b-fe6b-45d2-9230-ca388f6a89bc",
@ -1101,9 +1101,9 @@
} }
}, },
"node_modules/dblang": { "node_modules/dblang": {
"version": "0.7.0", "version": "0.8.0",
"resolved": "https://jusax.de/git/attachments/c13552b7-c9f0-4f50-bcce-96a124c1c286", "resolved": "https://jusax.de/git/attachments/f23f8128-4fde-4ec6-a8cd-cfc5068b2cfd",
"integrity": "sha512-NU4INAcpQKMWcBE59wGO+4BRsJqEYHA+IbsQhr6OYqNUPw5a+LSAEr4coAZ9UHqewZaX10+20oJ1dkIADzzeCQ==", "integrity": "sha512-hHfxa5iHD3fumMzH/LvVwB2kPUfs1TsxRdOS1veIppfgsJNUxqxPdEljd+EluWpHrPklfO3AJr2vWiZe4N0NBg==",
"license": "UNLICENSED", "license": "UNLICENSED",
"dependencies": { "dependencies": {
"gitea-release": "git+https://jusax.de/git/jusax23/gitea-release.git", "gitea-release": "git+https://jusax.de/git/jusax23/gitea-release.git",

View file

@ -7,7 +7,9 @@
"scripts": { "scripts": {
"main": "tsc && node . -c config.juml", "main": "tsc && node . -c config.juml",
"debug": "tsc && node . -c config.juml -d", "debug": "tsc && node . -c config.juml -d",
"setup": "tsc && node . -c config.juml -s" "setup": "tsc && node . -c config.juml -s",
"bundleRelease": "mkdir build/bundle & esbuild src/main.ts --platform=node --bundle --minify --outfile=build/bundle/main.js",
"build-linux-x64": "npm run bundleRelease && mkdir build/bin & pkg -t node18-linux-x64 -o build/bin/outbag-linux-x64 build/bundle/main.js"
}, },
"repository": { "repository": {
"type": "git", "type": "git",
@ -34,7 +36,7 @@
"auth-header": "^1.0.0", "auth-header": "^1.0.0",
"commander": "^10.0.0", "commander": "^10.0.0",
"cors": "^2.8.5", "cors": "^2.8.5",
"dblang": "https://jusax.de/git/attachments/c13552b7-c9f0-4f50-bcce-96a124c1c286", "dblang": "https://jusax.de/git/attachments/f23f8128-4fde-4ec6-a8cd-cfc5068b2cfd",
"express": "^4.18.2", "express": "^4.18.2",
"juml": "https://jusax.de/git/attachments/208913c5-2851-4b86-a53d-ca99fed168cc", "juml": "https://jusax.de/git/attachments/208913c5-2851-4b86-a53d-ca99fed168cc",
"nman": "https://jusax.de/git/attachments/5333948b-fe6b-45d2-9230-ca388f6a89bc", "nman": "https://jusax.de/git/attachments/5333948b-fe6b-45d2-9230-ca388f6a89bc",

0
src/api/helper.ts Normal file
View file

View file

@ -103,9 +103,9 @@ export function checktype(data: any, type: string) {
return true; return true;
} else if (type == "name" && typeof data == "string" && /^[a-zA-Z0-9\-_.]+$/.test(data)) { } else if (type == "name" && typeof data == "string" && /^[a-zA-Z0-9\-_.]+$/.test(data)) {
return true; return true;
} else if (type.startsWith("name-") && typeof data == "string" && /^[a-zA-Z0-9\-_.]+$/.test(data)) { } else if (typeof data == "string" && type.startsWith("name-") && /^[a-zA-Z0-9\-_.]+$/.test(data)) {
return parseInt(type.split("-")[1]) >= data.length; return parseInt(type.split("-")[1]) >= data.length;
} else if (type.startsWith("string-") && typeof data == "string") { } else if (typeof data == "string" && type.startsWith("string-")) {
return parseInt(type.split("-")[1]) >= data.length; return parseInt(type.split("-")[1]) >= data.length;
} else if (type == "any") { } else if (type == "any") {
return true; return true;

View file

@ -299,7 +299,7 @@ const setupFunc = async (func: () => Promise<boolean>, name: string) => {
export const partiellSetup = async () => { export const partiellSetup = async () => {
while (true) { while (true) {
log("Setup", "Slection:"); log("Setup", "Selection:");
const resp = await prompts({ const resp = await prompts({
type: 'select', type: 'select',
name: 'value', name: 'value',

View file

@ -19,11 +19,11 @@ export const addBruteforcePotantial = (ip: string) => {
if (bruteforcedata[ip].n > maxSus) { if (bruteforcedata[ip].n > maxSus) {
log("Bruteforce Protection", "blocking ip: ", ip); log("Bruteforce Protection", "blocking ip: ", ip);
} }
} };
export const bruteforcecheck = (ip: string) => { export const bruteforcecheck = (ip: string) => {
return (bruteforcedata[ip]?.n || 0) <= maxSus || uts() - (bruteforcedata[ip]?.t || uts()) > timeout; return (bruteforcedata[ip]?.n || 0) <= maxSus || uts() - (bruteforcedata[ip]?.t || uts()) > timeout;
} };
var bruteforcedatacleaner = setInterval(async () => { var bruteforcedatacleaner = setInterval(async () => {
var utst = uts(); var utst = uts();
@ -40,7 +40,7 @@ addShutdownTask(() => clearInterval(bruteforcedatacleaner), 5000);
export interface suspectRequest extends express.Request { export interface suspectRequest extends express.Request {
suspect?: () => void suspect?: () => void
} };
export default (req: suspectRequest, res: express.Response, next: express.NextFunction) => { export default (req: suspectRequest, res: express.Response, next: express.NextFunction) => {
if (!bruteforcecheck(req.ip)) return void res.status(400).send("bruteforce"); if (!bruteforcecheck(req.ip)) return void res.status(400).send("bruteforce");
@ -48,4 +48,4 @@ export default (req: suspectRequest, res: express.Response, next: express.NextFu
addBruteforcePotantial(req.ip); addBruteforcePotantial(req.ip);
}; };
next(); next();
} };