This commit is contained in:
2023-03-08 16:49:10 +01:00
parent 35c7459cb0
commit 35b0cae644
11 changed files with 377 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
class Garlic {
static clove(element) {
// if the element is a text node
if (element.nodeType === 3) {
// convert the text to base64
element.textContent = btoa(element.textContent);
}
// if the element has children
if (element.childNodes) {
// loop through the children
for (let i = 0; i < element.childNodes.length; i++) {
// recursively call the function on the child
Garlic.clove(element.childNodes[i]);
}
}
// return the element
return element;
}
static addSalt(salt) {
// set a static variable to the salt
this.salt = "_yummy_" + salt;
document.salt = salt;
}
static encode(string) {
return btoa(string+(this.salt || ""));
}
static decodeBase64(root) {
for (let i = 0; i < root.childNodes.length; i++) {
const child = root.childNodes[i];
if (child.childNodes.length === 1 && child.childNodes[0].nodeType === 3) {
const decoded = atob(child.childNodes[0].nodeValue).split("_yummy_")[0];
child.innerHTML = decoded;
console.log(child);
} else {
this.decodeBase64(child);
}
}
}
static peal(document, id) {
document.addEventListener("DOMContentLoaded", function() {
Garlic.decodeBase64(document.getElementById(id));
});
}
}
export default Garlic;