2025-10-25 22:04:41 +02:00
|
|
|
import * as sitemap from "super-sitemap";
|
|
|
|
|
import { getArticles, getModels, getVideos } from "$lib/services";
|
|
|
|
|
|
|
|
|
|
export const GET = async () => {
|
2026-03-04 22:27:54 +01:00
|
|
|
return await sitemap.response({
|
|
|
|
|
origin: "https://sexy.pivoine.art",
|
|
|
|
|
excludeRoutePatterns: ["^/signup/verify", "^/password/reset", "^/me", "^/play", "^/tags/.+"],
|
|
|
|
|
paramValues: {
|
|
|
|
|
"/magazine/[slug]": (await getArticles(fetch)).map((a) => a.slug),
|
feat: add shared @sexy.pivoine.art/types package and fix type safety across frontend/backend
- Create packages/types with shared TypeScript domain model interfaces (User, Video, Model, Article, Comment, Recording, etc.)
- Wire both frontend and backend packages to use @sexy.pivoine.art/types via workspace:*
- Update backend Pothos objectRef types to use shared interfaces instead of inline types
- Update frontend $lib/types.ts to re-export from shared package
- Fix all type errors introduced by more accurate nullable types (avatar/banner as string|null UUIDs, author nullable, events/device_info as object[])
- Add artist_name to comment user select in backend resolver
- Widen utility function signatures (getAssetUrl, getUserInitials, calcReadingTime) to accept null/undefined
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 11:01:11 +01:00
|
|
|
"/models/[slug]": (await getModels(fetch)).map((a) => a.slug).filter((s): s is string => s !== null),
|
2026-03-04 22:27:54 +01:00
|
|
|
"/videos/[slug]": (await getVideos(fetch)).map((a) => a.slug),
|
|
|
|
|
},
|
|
|
|
|
defaultChangefreq: "always",
|
|
|
|
|
defaultPriority: 0.7,
|
|
|
|
|
sort: "alpha", // default is false; 'alpha' sorts all paths alphabetically.
|
|
|
|
|
});
|
2025-10-25 22:04:41 +02:00
|
|
|
};
|