diff --git a/domains/_discord.jes.json b/domains/_discord.jes.json new file mode 100644 index 000000000..9ee8137b9 --- /dev/null +++ b/domains/_discord.jes.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "Jesgran", + "email": "calzdani20@libero.it" + }, + "record": { + "TXT": "dh=4b2e5de25234f6ff12194b5a3c98ff0b5edea64e" + } +} diff --git a/domains/_github-pages-challenge-voidkeishi.keishi.json b/domains/_github-pages-challenge-voidkeishi.keishi.json new file mode 100644 index 000000000..115aae60e --- /dev/null +++ b/domains/_github-pages-challenge-voidkeishi.keishi.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "VoidKeishi", + "email": "phananha4@gmail.com" + }, + "record": { + "TXT": "24873b574f17ea257bd32d1f505781" + } +} diff --git a/domains/_minecraft._tcp.mrdiamond.json b/domains/_minecraft._tcp.mrdiamond.json index 56d1464da..54e8979fe 100644 --- a/domains/_minecraft._tcp.mrdiamond.json +++ b/domains/_minecraft._tcp.mrdiamond.json @@ -9,9 +9,8 @@ "priority": 0, "weight": 5, "port": 28225, - "target": "mrdiamond.is-a.dev" + "target": "minecraft.mrdiamond.is-a.dev" } - ], - "A": ["129.146.51.207"] + ] } } diff --git a/domains/_vercel.alora.json b/domains/_vercel.alora.json index 87384fd58..2b03d12c0 100644 --- a/domains/_vercel.alora.json +++ b/domains/_vercel.alora.json @@ -9,7 +9,8 @@ "vc-domain-verify=drive.alora.is-a.dev,395400702612ae6db6a8", "vc-domain-verify=profile.alora.is-a.dev,71bd18cc5db61dc75f91", "vc-domain-verify=blog.alora.is-a.dev,39b11f87634c4710b9ab", - "vc-domain-verify=verify.alora.is-a.dev,df9b78e72bc7a2889bc8" + "vc-domain-verify=verify.alora.is-a.dev,df9b78e72bc7a2889bc8", + "vc-domain-verify=share.alora.is-a.dev,abbc2694ca2401b3a842" ] } } diff --git a/domains/imnahn.json b/domains/imnahn.json index 4b3764ee7..af5d48131 100644 --- a/domains/imnahn.json +++ b/domains/imnahn.json @@ -7,6 +7,6 @@ "discord": "nowim.nhan" }, "record": { - "CNAME": "myportfolio-omega-liard.vercel.app" + "CNAME": "myportfolio-2y4.pages.dev" } } diff --git a/domains/lhycerie.json b/domains/lhycerie.json new file mode 100644 index 000000000..b38d10278 --- /dev/null +++ b/domains/lhycerie.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "lhycerie", + "email": "lhycerie@gmail.com" + }, + "record": { + "CNAME": "lhycerie.github.io" + } +} diff --git a/domains/minecraft.mrdiamond.json b/domains/minecraft.mrdiamond.json new file mode 100644 index 000000000..c5a4758b6 --- /dev/null +++ b/domains/minecraft.mrdiamond.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "MrDiamondDog", + "email": "drewratner27@gmail.com" + }, + "record": { + "A": ["129.146.51.207"] + } +} diff --git a/domains/register-bot.json b/domains/register-bot.json deleted file mode 100644 index c1ee8caa7..000000000 --- a/domains/register-bot.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "owner": { - "username": "is-a-dev", - "email": "admin@is-a.dev" - }, - "record": { - "CNAME": "wdh.app" - }, - "proxied": true -} diff --git a/domains/share.alora.json b/domains/share.alora.json new file mode 100644 index 000000000..6eeb74d82 --- /dev/null +++ b/domains/share.alora.json @@ -0,0 +1,11 @@ +{ + "description": "An open-source file sharing application with a cyberpunk dystopian interface. Built with Next.js, Supabase, and Tailwind CSS.", + "repo": "https://github.com/aloramiaa/fileshare", + "owner": { + "username": "aloramiaa", + "email": "xaloramia@gmail.com" + }, + "record": { + "CNAME": "fileshare-snowy.vercel.app" + } +} diff --git a/domains/shin.json b/domains/shin.json new file mode 100644 index 000000000..eecde04a7 --- /dev/null +++ b/domains/shin.json @@ -0,0 +1,15 @@ +{ + "description": "Email forward Tachibana Shin (@tachib_shin)", + "owner": { + "username": "tachibana-shin", + "email": "", + "twitter": "tachib_shin" + }, + "record": { + "MX": [ + "mx1.forwardemail.net", + "mx2.forwardemail.net" + ], + "TXT": "forward-email=tachibshin@duck.com" + } +} diff --git a/tests/json.test.js b/tests/json.test.js index 1b40b75d5..2ebd3bace 100644 --- a/tests/json.test.js +++ b/tests/json.test.js @@ -36,20 +36,30 @@ const domainsPath = path.resolve("domains"); const files = fs.readdirSync(domainsPath); function findDuplicateKeys(jsonString) { - const keyPattern = /"([^"]+)"(?=\s*:)/g; - const keys = []; - let match; + const duplicateKeys = []; - while ((match = keyPattern.exec(jsonString)) !== null) { - keys.push(match[1]); - } + const stack = []; - const keyCount = {}; - keys.forEach((key) => { - keyCount[key] = (keyCount[key] || 0) + 1; + const obj = JSON.parse(jsonString, (key, value) => { + if (typeof key === "string") { + const current = stack[stack.length - 1]; + if (current) { + if (current[key]) { + duplicateKeys.push(key); + } else { + current[key] = true; + } + } + } + + if (typeof value === "object" && value !== null) { + stack.push({}); + } + + return value; }); - return Object.keys(keyCount).filter((key) => keyCount[key] > 1); + return [...new Set(duplicateKeys)]; } async function validateFields(t, obj, fields, file, prefix = "") {