export const rewriteToPublicOrigin = (rawUrl: string, publicBaseUrl?: string) => {
  if (!publicBaseUrl) return rawUrl;
  const input = String(rawUrl || "").trim();
  if (!input) return input;

  try {
    const u = new URL(input);
    const pub = new URL(publicBaseUrl);

    // 说明：如果是 Supabase 的典型路径（storage/auth/rest/functions/realtime），即使来源域名不同
    // 也统一改为当前“公网可达”的 Supabase origin，避免历史/旧隧道域名导致不可访问。
    const isSupabasePath =
      u.pathname.startsWith("/storage/v1/") ||
      u.pathname.startsWith("/auth/v1/") ||
      u.pathname.startsWith("/rest/v1/") ||
      u.pathname.startsWith("/functions/v1/") ||
      u.pathname.startsWith("/realtime/v1/");
    if (isSupabasePath && u.host !== pub.host) {
      u.protocol = pub.protocol;
      u.host = pub.host;
      return u.toString();
    }

    const isLocalHost =
      u.hostname === "127.0.0.1" || u.hostname === "localhost" || u.hostname === "host.docker.internal";
    const isLikelyInternalPort = u.port === "18000";

    if (!isLocalHost && !isLikelyInternalPort) {
      return input;
    }

    // 统一改为公网可达的 supabase origin（协议 + host + 端口）
    u.protocol = pub.protocol;
    u.host = pub.host;

    return u.toString();
  } catch {
    return input;
  }
};
