import { allPublishedForFeeds, listSeries, listTopics } from "@autoscholar/core"; import type { MetadataRoute } from "next"; import { db } from "@/lib/server/db"; export const dynamic = "force-dynamic"; export default async function sitemap(): Promise { const base = process.env.APP_BASE_URL ?? "http://localhost:8470"; if (process.env.STAGING_MODE === "1") return []; const d = db(); const statics = [ "", "/research", "/topics", "/series", "/about", "/methodology", "/infrastructure", "/transparency", "/legal/privacy", "/legal/terms", "/legal/research-disclaimer", ].map((p) => ({ url: `${base}${p}`, changeFrequency: "weekly" as const, priority: p === "" ? 1 : 0.6 })); const papers = (await allPublishedForFeeds(d, 5000)).map((r) => ({ url: `${base}/research/${r.p.slug}`, lastModified: r.p.updatedAt, changeFrequency: "monthly" as const, priority: 0.8, })); const topics = (await listTopics(d)).map((t) => ({ url: `${base}/topics/${t.slug}`, changeFrequency: "weekly" as const, priority: 0.5, })); const series = (await listSeries(d)) .map(() => ({ url: `${base}/series`, changeFrequency: "weekly" as const, priority: 0.4 })) .slice(0, 1); return [...statics, ...papers, ...topics, ...series]; }