One Hat Cyber Team
Your IP :
10.30.1.1
Server IP :
103.148.201.5
Server :
Linux web-olt 5.15.0-161-generic #171-Ubuntu SMP Sat Oct 11 08:17:01 UTC 2025 x86_64
Server Software :
Apache/2.4.52 (Ubuntu)
PHP Version :
8.1.29
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
proc
/
4518
/
root
/
usr
/
share
/
nodejs
/
data-urls
/
lib
/
View File Name :
parser.js
"use strict"; const MIMEType = require("whatwg-mimetype"); const { parseURL, serializeURL, percentDecodeString } = require("whatwg-url"); const { stripLeadingAndTrailingASCIIWhitespace, isomorphicDecode, forgivingBase64Decode } = require("./utils.js"); module.exports = stringInput => { const urlRecord = parseURL(stringInput); if (urlRecord === null) { return null; } return module.exports.fromURLRecord(urlRecord); }; module.exports.fromURLRecord = urlRecord => { if (urlRecord.scheme !== "data") { return null; } const input = serializeURL(urlRecord, true).substring("data:".length); let position = 0; let mimeType = ""; while (position < input.length && input[position] !== ",") { mimeType += input[position]; ++position; } mimeType = stripLeadingAndTrailingASCIIWhitespace(mimeType); if (position === input.length) { return null; } ++position; const encodedBody = input.substring(position); let body = percentDecodeString(encodedBody); // Can't use /i regexp flag because it isn't restricted to ASCII. const mimeTypeBase64MatchResult = /(.*); *[Bb][Aa][Ss][Ee]64$/u.exec(mimeType); if (mimeTypeBase64MatchResult) { const stringBody = isomorphicDecode(body); body = forgivingBase64Decode(stringBody); if (body === null) { return null; } mimeType = mimeTypeBase64MatchResult[1]; } if (mimeType.startsWith(";")) { mimeType = `text/plain${mimeType}`; } let mimeTypeRecord; try { mimeTypeRecord = new MIMEType(mimeType); } catch (e) { mimeTypeRecord = new MIMEType("text/plain;charset=US-ASCII"); } return { mimeType: mimeTypeRecord, body }; };