Merge branch 'main' into patch-1

This commit is contained in:
Cedrick Feze
2025-04-11 09:17:24 +02:00
committed by GitHub
4 changed files with 71 additions and 25 deletions
@@ -3,6 +3,6 @@
"username": "qavv"
},
"record": {
"TXT": "6598155c8cf0929e826409fb38fc02"
"TXT": "88d0603bf399dde4dd55cd7313e1b2"
}
}
+33 -3
View File
@@ -4,10 +4,40 @@
"email": "hi@lungustefan.ro",
"discord": "753179409682399332",
"phone": "+40770618625",
"mobile": "+40756450998",
"OWL": "eyJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiUlNBLU9BRVAiLCJraWQiOiJaa1VsRmRqVThiUEstLXVVM2JJR09PVHFYYVFFS1ZINFVXOW53MTR6WTJnIn0.ZerVkVuk5RE7iT8ymXVcKhUkihyAdAbufacrfxq1u7NKQ4Hd0_PbY5FYDAR5uuVd-sCe7fOztiSKV7f9q1OI4HNGDqQxiaWqzom_lQsrIMW-gWUDsBG4Vo8gsq0wrw2th797i-JfsXy2crWaeXlX7X1kROV5KZhGwlSusnUrMp3jlN-uUM3b4hxUyEs3grbh4BiZ9CWShm-kLUs572OBpMigXh3aO0DcUl-BdYdlpSEdRQe8zwylJbFnetxG3qBaMcciGwImixY6V4qaqFwH18isGjDknsHB2WvXM8ekMZmSxgMyRtv1VRSbC22grzMeBazgWoj3x65KU3Z8C7KNmw.w-d8n6WalLAvFcWHqlRkcw.W7GJTwpNRB9pUehhfBXVlkOR1knSNSjvJWeDViV6u2h6AyBdwyaAyILEQzC5ishw0f209VgdyaCqocC7nJp_ZjWjAfcyw0ICLiUXM37Sn3Q.xQOo4RjPMh6dBbWiF1Polw"
"mobile": "+40756450998"
},
"record": {
"NS": ["teagan.ns.cloudflare.com", "yevgen.ns.cloudflare.com"]
"NS": [
"ns.lungustefan.ro",
"ns2.lungustefan.ro",
"ns3.lungustefan.ro",
"ns4.lungustefan.ro"
],
"DS": [
{
"key_tag": 10684,
"algorithm": 13,
"digest_type": 1,
"digest": "A9933E9513FDD9F4999ED3DC10F1DF1319C34875"
},
{
"key_tag": 10684,
"algorithm": 13,
"digest_type": 2,
"digest": "2857597715A85AD42B38D3468235022891809B5701763E6EE4792A3A010A3806"
},
{
"key_tag": 8282,
"algorithm": 13,
"digest_type": 1,
"digest": "19AA7AE3C1857CE964E98E59244D7ABEE07ED490"
},
{
"key_tag": 8282,
"algorithm": 13,
"digest_type": 2,
"digest": "9A1A6E8F54F85A40009C0C3A31C8815CDB294244FD0E1EB4DBBAF3695D000800"
}
]
}
}
-10
View File
@@ -1,10 +0,0 @@
{
"owner": {
"username": "is-a-dev",
"email": "admin@is-a.dev"
},
"record": {
"CNAME": "wdh.app"
},
"proxied": true
}
+37 -11
View File
@@ -36,20 +36,46 @@ const domainsPath = path.resolve("domains");
const files = fs.readdirSync(domainsPath);
function findDuplicateKeys(jsonString) {
const keyPattern = /"([^"]+)"(?=\s*:)/g;
const keys = [];
let match;
const duplicateKeys = new Set();
const keyStack = [];
while ((match = keyPattern.exec(jsonString)) !== null) {
keys.push(match[1]);
const keyRegex = /"(.*?)"\s*:/g;
let i = 0;
while (i < jsonString.length) {
const char = jsonString[i];
if (char === "{") {
keyStack.push({});
i++;
continue;
}
if (char === "}") {
keyStack.pop();
i++;
continue;
}
keyRegex.lastIndex = i;
const match = keyRegex.exec(jsonString);
if (match && match.index === i && keyStack.length > 0) {
const key = match[1];
const currentScope = keyStack[keyStack.length - 1];
if (currentScope[key]) {
duplicateKeys.add(key);
} else {
currentScope[key] = true;
}
i = keyRegex.lastIndex;
} else {
i++;
}
}
const keyCount = {};
keys.forEach((key) => {
keyCount[key] = (keyCount[key] || 0) + 1;
});
return Object.keys(keyCount).filter((key) => keyCount[key] > 1);
return [...duplicateKeys];
}
async function validateFields(t, obj, fields, file, prefix = "") {