vercel verify services key support

This commit is contained in:
William Harrison committed 2025-05-13 14:56:18 +08:00
1 parent 8efc2ca86e
commit da7646b8ae
5 files changed
+63 -8

No files matched your search

+10
View File
@@ -145,6 +145,16 @@ for (var subdomain in domains) {
records.push(TXT("_discord." + subdomainName, "\"" + data.services.discord + "\""));
}
}
if (data.services.vercel) {
if (Array.isArray(data.services.vercel)) {
for (var txt in data.services.vercel) {
records.push(TXT("_vercel." + subdomainName, "\"" + data.services.vercel[txt] + "\""));
}
} else {
records.push(TXT("_vercel." + subdomainName, "\"" + data.services.vercel + "\""));
}
}
}
}
+13 -6
View File
@@ -30,10 +30,7 @@ t("Nested subdomains should not exist without a parent subdomain", (t) => {
const parent = parts.slice(i).join(".");
if (parent.startsWith("_")) continue;
t.true(
files.includes(`${parent}.json`),
`${file}: Parent subdomain "${parent}" does not exist`
);
t.true(files.includes(`${parent}.json`), `${file}: Parent subdomain "${parent}" does not exist`);
}
});
});
@@ -111,8 +108,18 @@ t("Disallow nested subdomains when parent has specific service records", (t) =>
const subdomain = file.replace(/\.json$/, "");
const data = getDomainData(subdomain);
if(data?.services?.discord) {
t.false(files.includes(`_discord.${file}`), `${file}: Nested subdomain "_discord.${subdomain}" should not exist when services.discord is present`);
if (data?.services?.discord) {
t.false(
files.includes(`_discord.${file}`),
`${file}: Nested subdomain "_discord.${subdomain}" should not exist when services.discord is present`
);
}
if (data?.services?.vercel) {
t.false(
files.includes(`_vercel.${file}`),
`${file}: Nested subdomain "_vercel.${subdomain}" should not exist when services.vercel is present`
);
}
});
+8 -1
View File
@@ -154,7 +154,14 @@ async function processFile(file, t) {
if (data.services.discord) {
t.true(
Array.isArray(data.services.discord) || typeof data.services.discord === "string",
`${file}: Discord service should be an array or string`
`${file}: services.discord should be an array or string`
);
}
if (data.services.vercel) {
t.true(
Array.isArray(data.services.vercel) || typeof data.services.vercel === "string",
`${file}: services.vercel should be an array or string`
);
}
}
+10 -1
View File
@@ -339,7 +339,7 @@ t("All files should have valid service records", (t) => {
discord.forEach((value) => {
const token = value.split("=")[1];
t.true(value.startsWith("dh="), `${file}: Discord service record should start with "dh="`);
t.true(value.startsWith("dh="), `${file}: Invalid Discord service record format`);
t.true(token.length === 40, `${file}: Discord service token should be 40 characters long`);
t.true(
isValidHexadecimal(token),
@@ -347,6 +347,15 @@ t("All files should have valid service records", (t) => {
);
});
}
if (data?.services?.vercel) {
const vercel = Array.isArray(data.services.vercel) ? data.services.vercel : [data.services.vercel];
vercel.forEach((value) => {
t.true(value.startsWith("vc-domain-verify="), `${file}: Invalid Vercel service record format`);
t.true(value.length > 48, `${file}: Vercel service token should be longer than 48 characters`);
});
}
});
t.pass();
+22
View File
@@ -134,6 +134,28 @@ fs.readdir(directoryPath, function (err, files) {
}
});
}
if (item.services.vercel) {
const vercel = Array.isArray(item.services.vercel) ? item.services.vercel : [item.services.vercel];
v1.push({
domain: `_vercel.${item.domain}`,
subdomain: `_vercel.${item.subdomain}`,
owner: item.owner,
record: {
TXT: vercel
}
});
v2.push({
domain: `_vercel.${item.domain}`,
subdomain: `_vercel.${item.subdomain}`,
owner: item.owner,
records: {
TXT: vercel
}
});
}
}
processedCount++;