diff --git a/domains/_dmarc.abdelkarimaityahia.json b/domains/_dmarc.abdelkarimaityahia.json new file mode 100644 index 0000000000..679fab4fbe --- /dev/null +++ b/domains/_dmarc.abdelkarimaityahia.json @@ -0,0 +1,11 @@ +{ + "owner": { + "username": "karimait12", + "email": "karimaityahia98@gmail.com" + }, + "records": { + "TXT": [ + "v=DMARC1; p=none;" + ] + } +} diff --git a/domains/_vercel.aaftab.json b/domains/_vercel.aaftab.json new file mode 100644 index 0000000000..bbe0235917 --- /dev/null +++ b/domains/_vercel.aaftab.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "aaftab-vijapura", + "email": "aaftabvijapura@gmail.com" + }, + "records": { + "TXT": "vc-domain-verify=aaftab.is-a.dev,4db5a2fc5cdbd9e4a045" + } +} diff --git a/domains/_vercel.adityanair.json b/domains/_vercel.adityanair.json new file mode 100644 index 0000000000..ede78cd370 --- /dev/null +++ b/domains/_vercel.adityanair.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "AdityaNair-jpg", + "email": "adityanair807@gmail.com" + }, + "records": { + "TXT": "vc-domain-verify=adityanair.is-a.dev,82901b06a9d9e42a9d58" + } +} diff --git a/domains/_vercel.agustinmenchon.json b/domains/_vercel.agustinmenchon.json new file mode 100644 index 0000000000..63130cc165 --- /dev/null +++ b/domains/_vercel.agustinmenchon.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "agusmenchon", + "email": "agus.menchon@gmail.com" + }, + "records": { + "TXT": "vc-domain-verify=agustinmenchon.is-a.dev,6345b37e49e6d437f4dc" + } +} diff --git a/domains/_vercel.ameensajeed.json b/domains/_vercel.ameensajeed.json new file mode 100644 index 0000000000..dac9b89597 --- /dev/null +++ b/domains/_vercel.ameensajeed.json @@ -0,0 +1,8 @@ +{ + "owner": { + "username": "Ameen-Sajeed" + }, + "records": { + "TXT": "vc-domain-verify=ameensajeed.is-a.dev,8762be537ff1be023bed" + } +} diff --git a/domains/_vercel.ayuuu.json b/domains/_vercel.ayuuu.json new file mode 100644 index 0000000000..708c54ddac --- /dev/null +++ b/domains/_vercel.ayuuu.json @@ -0,0 +1,8 @@ +{ + "owner": { + "username": "ayuuXploits" + }, + "records": { + "TXT": "vc-domain-verify=ayuuu.is-a.dev,bac52cc6825a4b7f5482" + } +} diff --git a/domains/_vercel.bailex.json b/domains/_vercel.bailex.json new file mode 100644 index 0000000000..8b4eccfff7 --- /dev/null +++ b/domains/_vercel.bailex.json @@ -0,0 +1,8 @@ +{ + "owner": { + "username": "iLionL" + }, + "records": { + "TXT": "vc-domain-verify=bailex.is-a.dev,1b7c92da55a6210740ed" + } +} diff --git a/domains/_vercel.code-with-ryz.json b/domains/_vercel.code-with-ryz.json new file mode 100644 index 0000000000..c11c77fee2 --- /dev/null +++ b/domains/_vercel.code-with-ryz.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "Ryu2804", + "email": "everyrelativity@gmail.com" + }, + "records": { + "TXT": "vc-domain-verify=code-with-ryz.is-a.dev,8717f43b8cac48115ae8" + } +} diff --git a/domains/_vercel.graxya.json b/domains/_vercel.graxya.json index 219e0b3ba6..7d94883c7f 100644 --- a/domains/_vercel.graxya.json +++ b/domains/_vercel.graxya.json @@ -4,6 +4,6 @@ "email": "felixmanullang81@gmail.com" }, "records": { - "TXT": "vc-domain-verify=graxya.is-a.dev,f57c22ab53c078ea60ce" + "TXT": "vc-domain-verify=www.graxya.is-a.dev,b34ba055111eef3957ed" } } diff --git a/domains/_vercel.joseph05.json b/domains/_vercel.joseph05.json new file mode 100644 index 0000000000..be6d1729c7 --- /dev/null +++ b/domains/_vercel.joseph05.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "ApxllxCartxr", + "email": "josephfernando05@proton.me" + }, + "records": { + "TXT": "vc-domain-verify=joseph05.is-a.dev,3809e0d0805b10605835" + } +} diff --git a/domains/_vercel.lovedeepchani.json b/domains/_vercel.lovedeepchani.json new file mode 100644 index 0000000000..ee13788bc8 --- /dev/null +++ b/domains/_vercel.lovedeepchani.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "LovedeepChani", + "email": "chanilovedeep@gmail.com" + }, + "records": { + "TXT": "vc-domain-verify=lovedeepchani.is-a.dev,a2e2097c4d06fc1d728b" + } +} diff --git a/domains/_vercel.nyannix.json b/domains/_vercel.nyannix.json index 48241406ff..ca41b82f16 100644 --- a/domains/_vercel.nyannix.json +++ b/domains/_vercel.nyannix.json @@ -1,8 +1,8 @@ { "owner": { - "username": "nixxlte", + "username": "nixpanqueca", "email": "iamthenix@yahoo.com", - "discord": "nixxlte", + "discord": "rushpanqueca", "twitter": "nixxlte" }, "records": { diff --git a/domains/_vercel.oussamaelasri.json b/domains/_vercel.oussamaelasri.json index dfd3188dee..c30d6f7310 100644 --- a/domains/_vercel.oussamaelasri.json +++ b/domains/_vercel.oussamaelasri.json @@ -4,6 +4,6 @@ "email": "oussamaasri80@gmail.com" }, "records": { - "TXT": "vc-domain-verify=oussamaelasri.is-a.dev,083628f95e59275703f6" + "TXT": "vc-domain-verify=oussamaelasri.is-a.dev,a356888bd9eccbd337dc" } } diff --git a/domains/_vercel.ronna.json b/domains/_vercel.ronna.json new file mode 100644 index 0000000000..6bd3cfb01c --- /dev/null +++ b/domains/_vercel.ronna.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "ronnaf", + "twitter": "https://twitter.com/ronnaf_" + }, + "records": { + "TXT": "vc-domain-verify=ronna.is-a.dev,cd0e75c1bac00158a008" + } +} diff --git a/domains/_vercel.vanshagarwal.json b/domains/_vercel.vanshagarwal.json new file mode 100644 index 0000000000..08b4b2db57 --- /dev/null +++ b/domains/_vercel.vanshagarwal.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "imVansh2010", + "email": "agrwlvansh@gmail.com" + }, + "records": { + "TXT": "vc-domain-verify=vanshagarwal.is-a.dev,4817b746b9a0e778ffa6" + } +} diff --git a/domains/_vercel.woodapples.json b/domains/_vercel.woodapples.json new file mode 100644 index 0000000000..38f3d00d65 --- /dev/null +++ b/domains/_vercel.woodapples.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "woodapplesstudio", + "email": "woodapplessoftware@gmail.com" + }, + "records": { + "TXT": "vc-domain-verify=woodapples.is-a.dev,94385bacb3755a9b2ea6" + } +} diff --git a/domains/aaftab.json b/domains/aaftab.json new file mode 100644 index 0000000000..5ed39271eb --- /dev/null +++ b/domains/aaftab.json @@ -0,0 +1,11 @@ +{ + "owner": { + "username": "aaftab-vijapura", + "email": "aaftabvijapura@gmail.com" + }, + "records": { + "A": [ + "216.198.79.1" + ] + } +} diff --git a/domains/adityanair.json b/domains/adityanair.json new file mode 100644 index 0000000000..2d2713bf9b --- /dev/null +++ b/domains/adityanair.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "AdityaNair-jpg", + "email": "adityanair807@gmail.com" + }, + "records": { + "A": ["216.198.79.1"] + } +} diff --git a/domains/agustinmenchon.json b/domains/agustinmenchon.json new file mode 100644 index 0000000000..19ca1ded95 --- /dev/null +++ b/domains/agustinmenchon.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "agusmenchon", + "email": "agus.menchon@gmail.com" + }, + "records": { + "A": ["216.198.79.1"] + } +} diff --git a/domains/ameensajeed.json b/domains/ameensajeed.json new file mode 100644 index 0000000000..7fae0c4c66 --- /dev/null +++ b/domains/ameensajeed.json @@ -0,0 +1,8 @@ +{ + "owner": { + "username": "Ameen-Sajeed" + }, + "records": { + "A": ["216.198.79.1"] + } +} diff --git a/domains/ayuuu.json b/domains/ayuuu.json index 5cc51b1659..5a1d42abee 100644 --- a/domains/ayuuu.json +++ b/domains/ayuuu.json @@ -6,3 +6,4 @@ "CNAME": "portfolio-ayuuxploits.vercel.app" } } + diff --git a/domains/bailex.json b/domains/bailex.json new file mode 100644 index 0000000000..d64818304c --- /dev/null +++ b/domains/bailex.json @@ -0,0 +1,8 @@ +{ + "owner": { + "username": "iLionL" + }, + "records": { + "A": ["216.198.79.1"] + } +} diff --git a/domains/calvincrehencia.json b/domains/calvincrehencia.json new file mode 100644 index 0000000000..dc3ee35935 --- /dev/null +++ b/domains/calvincrehencia.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "MizukiSuzu", + "email": "calvinjohn0604@gmail.com" + }, + "records": { + "CNAME": "portfolio-bay-tau-ws5vij895l.vercel.app" + } +} diff --git a/domains/code-with-ryz.json b/domains/code-with-ryz.json new file mode 100644 index 0000000000..3786bb4b63 --- /dev/null +++ b/domains/code-with-ryz.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "Ryu2804", + "email": "everyrelativity@gmail.com" + }, + "records": { + "A": ["216.198.79.1"] + } +} diff --git a/domains/code.satyajit.json b/domains/code.satyajit.json index e4d29942c5..272e87712d 100644 --- a/domains/code.satyajit.json +++ b/domains/code.satyajit.json @@ -4,8 +4,6 @@ "discord": "seesatya" }, "records": { - "AAAA": [ - "2a0e:97c0:3ea:3bb::19" - ] + "URL": "https://code.satya.indevs.in" } } diff --git a/domains/dulvk.json b/domains/dulvk.json index 0d84e5e472..7f19a3ba8c 100644 --- a/domains/dulvk.json +++ b/domains/dulvk.json @@ -1,8 +1,9 @@ { "owner": { - "username": "levankydu" + "username": "levankydu", + "email": "levankydu94@gmail.com" }, "records": { - "CNAME": "levankydu.github.io" + "A": ["140.245.46.195"] } } diff --git a/domains/graxya.json b/domains/graxya.json index e6aa5d56de..ae4f07ca0b 100644 --- a/domains/graxya.json +++ b/domains/graxya.json @@ -4,6 +4,6 @@ "email": "felixmanullang81@gmail.com" }, "records": { - "CNAME": "gratiaportofolio.vercel.app" + "A": ["216.198.79.1"] } } diff --git a/domains/itsavery.json b/domains/itsavery.json new file mode 100644 index 0000000000..6796c2e3ed --- /dev/null +++ b/domains/itsavery.json @@ -0,0 +1,8 @@ +{ + "owner": { + "username": "MaseDev33" + }, + "records": { + "NS": ["hera.ns.cloudflare.com", "kip.ns.cloudflare.com"] + } +} diff --git a/domains/jagmohan.json b/domains/jagmohan.json new file mode 100644 index 0000000000..ff60f63bc9 --- /dev/null +++ b/domains/jagmohan.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "git-jagmohan", + "email": "letsmailjagmohan@gmail.com" + }, + "records": { + "CNAME": "git-jagmohan.github.io" + } +} diff --git a/domains/joseph05.json b/domains/joseph05.json new file mode 100644 index 0000000000..31afdcc06d --- /dev/null +++ b/domains/joseph05.json @@ -0,0 +1,11 @@ +{ + "owner": { + "username": "ApxllxCartxr", + "email": "josephfernando05@proton.me" + }, + "records": { + "A": [ + "216.198.79.1" + ] + } +} diff --git a/domains/khoadoan.json b/domains/khoadoan.json new file mode 100644 index 0000000000..7b328b219a --- /dev/null +++ b/domains/khoadoan.json @@ -0,0 +1,9 @@ + { + "owner": { + "username": "khoadoan2008", + "email": "doancongkhoa2008@gmail.com" + }, + "records": { + "CNAME": "khoadoan2008.github.io" + } + } diff --git a/domains/lab.dustfree.json b/domains/lab.dustfree.json deleted file mode 100644 index a897000424..0000000000 --- a/domains/lab.dustfree.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "owner": { - "username": "dustfree999", - "email": "2149563945@qq.com" - }, - "records": { - "A": ["43.138.126.226"] - } -} diff --git a/domains/lovedeepchani.json b/domains/lovedeepchani.json new file mode 100644 index 0000000000..992c99924a --- /dev/null +++ b/domains/lovedeepchani.json @@ -0,0 +1,8 @@ +{ + "owner": { + "username": "LovedeepChani" + }, + "records": { + "A": ["216.198.79.1"] + } +} diff --git a/domains/magaji.json b/domains/magaji.json new file mode 100644 index 0000000000..3c47e941a8 --- /dev/null +++ b/domains/magaji.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "Topaz-code", + "email": "erabo65@gmail.com" + }, + "records": { + "CNAME": "cname.vercel-dns.com" + } +} diff --git a/domains/masood.json b/domains/masood.json new file mode 100644 index 0000000000..d58bb76c2c --- /dev/null +++ b/domains/masood.json @@ -0,0 +1,8 @@ +{ + "owner": { + "username": "masood-01" + }, + "records": { + "CNAME": "masood-01.github.io" + } +} diff --git a/domains/mc.nyannix.json b/domains/mc.nyannix.json new file mode 100644 index 0000000000..fdfdd17717 --- /dev/null +++ b/domains/mc.nyannix.json @@ -0,0 +1,19 @@ +{ + "owner": { + "username": "nixpanqueca", + "email": "iamthenix@yahoo.com", + "discord": "rushpanqueca", + "twitter": "nixxlte" + }, + "records": { + "A": ["147.185.221.213"], + "SRV": [ + { + "priority": 1, + "weight": 1, + "port": 52638, + "target": "practicing-heavily.tun.ply.gg" + } + ] + } +} \ No newline at end of file diff --git a/domains/mytechpeople.json b/domains/mytechpeople.json new file mode 100644 index 0000000000..45d3a41bdb --- /dev/null +++ b/domains/mytechpeople.json @@ -0,0 +1,8 @@ +{ + "owner": { + "username": "sajitpanta03" + }, + "records": { + "CNAME": "cname.vercel-dns.com" + } +} diff --git a/domains/nyannix.json b/domains/nyannix.json index 2273c79961..f2c9f2cc6e 100644 --- a/domains/nyannix.json +++ b/domains/nyannix.json @@ -1,8 +1,8 @@ { "owner": { - "username": "nixxlte", + "username": "nixpanqueca", "email": "iamthenix@yahoo.com", - "discord": "nixxlte", + "discord": "rushpanqueca", "twitter": "nixxlte" }, "records": { diff --git a/domains/oussamaelasri.json b/domains/oussamaelasri.json index 1065db8027..c94ceac17c 100644 --- a/domains/oussamaelasri.json +++ b/domains/oussamaelasri.json @@ -4,6 +4,6 @@ "email": "oussamaasri80@gmail.com" }, "records": { - "A": ["216.198.79.1"] + "CNAME": "portfolio-gray-two-93.vercel.app" } } diff --git a/domains/resend._domainkey.magaji.json b/domains/resend._domainkey.magaji.json new file mode 100644 index 0000000000..f72cf7703b --- /dev/null +++ b/domains/resend._domainkey.magaji.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "Topaz-code", + "email": "erabo65@gmail.com" + }, + "records": { + "TXT": "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDZMUmuibxM0pVjlomrqRVHiG9AZzojyJ+Stenuj0HuubEGOcqsiKOJx8JTaR0USr8G0vGWc1xSkab/izjh5ik3P3sqYWwJYNuKRgXZG97z/YZ3/okq8illKsaQRTO43/pcMBdVS+3tSH4mvcZFQ5WS6q3fZ/vaMyKLa9v3eVQODwIDAQAB" + } +} diff --git a/domains/ronna.json b/domains/ronna.json new file mode 100644 index 0000000000..eb4809e09b --- /dev/null +++ b/domains/ronna.json @@ -0,0 +1,11 @@ +{ + "owner": { + "username": "ronnaf", + "twitter": "https://twitter.com/ronnaf_" + }, + "records": { + "A": [ + "216.198.79.1" + ] + } +} diff --git a/domains/sudarshan.json b/domains/sudarshan.json new file mode 100644 index 0000000000..3e8df7630e --- /dev/null +++ b/domains/sudarshan.json @@ -0,0 +1,9 @@ +{ + "owner": { + "username": "Sudarshan-veera", + "email": "sudarshan060617@gmail.com" + }, + "records": { + "CNAME": "sudarshan-veera.github.io" + } +} diff --git a/domains/vanshagarwal.json b/domains/vanshagarwal.json index 6e6d5d5286..7c32ed9a61 100644 --- a/domains/vanshagarwal.json +++ b/domains/vanshagarwal.json @@ -4,6 +4,8 @@ "email": "agrwlvansh@gmail.com" }, "records": { - "CNAME": "cname.vercel-dns.com" + "A": [ + "216.198.79.1" + ] } } diff --git a/package.json b/package.json index 18e2a8b0a2..2b5d1b81b9 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,9 @@ { "type": "module", "scripts": { - "test": "npx ava tests/*.test.js" + "test": "npx ava tests/*.test.js", + "check:reserved-order": "node util/check-reserved-order.cjs", + "add:reserved": "node util/add-reserved-subdomain.cjs" }, "devDependencies": { "ava": "^8.0.1", diff --git a/tests/records.test.js b/tests/records.test.js index 196bce876a..d75758da33 100644 --- a/tests/records.test.js +++ b/tests/records.test.js @@ -310,6 +310,11 @@ t("All files should have valid records", (t) => { `${file}: Files starting with '_vercel' must have format '_vercel..json'` ); + t.true( + recordKeys.includes("TXT") && recordKeys.length === 1, + `${file}: Files starting with '_vercel' can only have TXT records` + ); + const txtRecords = data.records.TXT; const txtList = Array.isArray(txtRecords) ? txtRecords : [txtRecords]; diff --git a/util/add-reserved-subdomain.cjs b/util/add-reserved-subdomain.cjs new file mode 100644 index 0000000000..500759cd3b --- /dev/null +++ b/util/add-reserved-subdomain.cjs @@ -0,0 +1,57 @@ +const { readFileSync, writeFileSync } = require("node:fs"); +const { join } = require("node:path"); +const readline = require("node:readline"); + +const filePath = join(__dirname, "reserved.json"); +const prompt = "What subdomain would you want to add to the reserved.json list: "; + +const interface = readline.createInterface({ + input: process.stdin, + output: process.stdout, +}); + +interface.question(prompt, (input) => { + const subdomain = input.trim(); + + if (!subdomain) { + console.error("Subdomain cannot be empty."); + interface.close(); + process.exitCode = 1; + return; + } + + if (subdomain !== subdomain.toLowerCase() || /\s/.test(subdomain)) { + console.error("Subdomain must be lowercase and cannot contain whitespace."); + interface.close(); + process.exitCode = 1; + return; + } + + const fileContents = readFileSync(filePath, "utf8"); + const reserved = JSON.parse(fileContents); + + if (reserved.includes(subdomain)) { + console.error(`"${subdomain}" is already in reserved.json.`); + interface.close(); + process.exitCode = 1; + return; + } + + const insertionIndex = reserved.findIndex( + (entry) => entry > subdomain, + ); + const index = insertionIndex === -1 ? reserved.length : insertionIndex; + reserved.splice(index, 0, subdomain); + + const newline = fileContents.includes("\r\n") ? "\r\n" : "\n"; + const output = `${JSON.stringify(reserved, null, 4)}${newline}`; + writeFileSync(filePath, output); + + const lineNumber = index + 2; + const precedingEntry = index > 0 ? reserved[index - 1] : "["; + const followingEntry = index < reserved.length - 1 ? reserved[index + 1] : "]"; + console.log( + `Added "${subdomain}" on line ${lineNumber}, after "${precedingEntry}" and before "${followingEntry}".`, + ); + interface.close(); +}); \ No newline at end of file diff --git a/util/check-reserved-order.cjs b/util/check-reserved-order.cjs new file mode 100644 index 0000000000..5456ee6c05 --- /dev/null +++ b/util/check-reserved-order.cjs @@ -0,0 +1,31 @@ +const { readFileSync } = require("node:fs"); +const { join } = require("node:path"); + +const filePath = join(__dirname, "reserved.json"); +const fileContents = readFileSync(filePath, "utf8"); +const reserved = JSON.parse(fileContents); + +for (let index = 1; index < reserved.length; index += 1) { + if (reserved[index - 1] > reserved[index]) { + let precedingIndex = index - 1; + + while ( + precedingIndex >= 0 && + reserved[precedingIndex] > reserved[index] + ) { + precedingIndex -= 1; + } + + const precedingLine = precedingIndex + 2; + + console.error( + `reserved.json is not in alphabetical order: line ${index + 2} ("${reserved[index]}") should go after line ${precedingLine} ("${precedingIndex >= 0 ? reserved[precedingIndex] : "["}") and before line ${index + 1} ("${reserved[index - 1]}").`, + ); + process.exitCode = 1; + break; + } +} + +if (process.exitCode !== 1) { + console.log("reserved.json is in alphabetical order."); +} \ No newline at end of file diff --git a/util/reserved.json b/util/reserved.json index a007df5b1b..47e083ea7c 100644 --- a/util/reserved.json +++ b/util/reserved.json @@ -17,6 +17,8 @@ "blog", "bot", "cdn", + "cert", + "certs", "chat", "checkout", "cname", @@ -38,6 +40,7 @@ "example", "file", "files", + "ftp", "get", "git", "github", @@ -51,6 +54,7 @@ "http", "https", "iad", + "imap", "info", "int", "internal", @@ -58,18 +62,21 @@ "is-a-dev", "isa", "isadev", + "legal", "link", "links", + "log", "login", + "logs", "m", "mail", "mailbox", "maintainer", "maintainers", "manage", - "metrics", "mc", "media", + "metrics", "mobile", "net", "network", @@ -84,24 +91,27 @@ "ns8", "ns9", "oauth", + "open", "org", "organisation", "organisations", "organization", "organizations", - "open", "panel", "pay", "payment", "payments", + "pop", + "pop3", "portal", "preview", - "public", + "privacy", "private", "prod", "production", "proxied", "proxy", + "public", "rdap", "redirect", "register", @@ -109,28 +119,36 @@ "registry", "reserved", "root", + "rsync", "secure", "security", + "server", + "servers", "service", "services", + "sftp", "shop", + "smtp", + "srv", + "ssl", "sso", "staff", "staging", "static", "stats", "status", - "server", - "srv", "store", "subdomain", "subdomains", "support", "sys", + "syslog", + "syslogs", "system", "team", "test", "testing", + "tls", "tools", "uptime", "url",