EaglercraftX-Site/js/obfuscateScripts.js

29 lines
1.0 KiB
JavaScript

import jscrewit from 'jscrewit';
const { scripts } = window.document;
const { encode: obfuscate } = jscrewit;
function getTextAfterLastSlash(string) {
return string.slice(string.lastIndexOf('/') + 1);
}
(async function() {
for (const script of scripts) {
const { src, type } = script;
if (
!['fuse.js', 'bowser', 'es-module-shims'].includes(getTextAfterLastSlash(src)) &&
!['importmap', 'module-shim'].includes(type.toLowerCase())
) {
try {
const response = await fetch(src);
const textContent = await response.text();
const obfuscated = obfuscate(textContent);
const base64Obfuscated = btoa(obfuscated);
script.setAttribute('src', `data:text/javascript;base64,${base64Obfuscated}`);
console.log('Obfuscated script successfully.');
} catch (error) {
console.error('Failed to obfuscate script:', error);
}
}
}
})();