完成五人团队正式内用最小收口(07-18-small-team-internal-readiness)

这个提交包含在:
2026-07-18 15:46:14 +08:00
父节点 58c8decef9
当前提交 5d0a5f9a38
共修改 134 个文件,包含 10790 行新增和 1413 行删除
+44
查看文件
@@ -0,0 +1,44 @@
#!/usr/bin/env node
import path from "node:path";
import { pathToFileURL } from "node:url";
const LOOPBACK_HOSTS = new Set(["127.0.0.1", "localhost", "::1", "[::1]"]);
export function validateLoopbackHttpUrl(input) {
let url;
try {
url = new URL(String(input ?? ""));
} catch {
throw new Error("base_url_invalid");
}
if (url.protocol !== "http:") throw new Error("base_url_protocol_not_http");
if (url.username || url.password) throw new Error("base_url_credentials_forbidden");
if (!LOOPBACK_HOSTS.has(url.hostname)) throw new Error("base_url_host_not_loopback");
if ((url.pathname && url.pathname !== "/") || url.search || url.hash) {
throw new Error("base_url_must_be_origin_only");
}
return url.origin;
}
export function validateTcpPort(input) {
const raw = String(input ?? "");
if (!/^[1-9][0-9]{0,4}$/u.test(raw)) throw new Error("port_invalid");
const port = Number(raw);
if (!Number.isSafeInteger(port) || port > 65535) throw new Error("port_out_of_range");
return String(port);
}
if (process.argv[1] && import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href) {
try {
console.log(
process.argv[2] === "--port"
? validateTcpPort(process.argv[3])
: validateLoopbackHttpUrl(process.argv[2]),
);
} catch (error) {
console.error(`[local-candidate][ERROR] ${error instanceof Error ? error.message : String(error)}`);
process.exit(1);
}
}