import { gzipSync } from 'node:zlib' import { Code, ConnectError, ServiceImpl } from '@connectrpc/connect' import { Service } from '../../../proto/bsky_connect.js' import { GetSitemapPageRequest } from '../../../proto/bsky_pb.js' const MOCK_SITEMAP_INDEX = ` https://bsky.app/sitemap/users/2025-01-01/1.xml.gz ` const MOCK_SITEMAP_PAGE = ` https://bsky.app/profile/test.bsky.social ` export default (): Partial> => ({ async getSitemapIndex() { return { sitemap: gzipSync(Buffer.from(MOCK_SITEMAP_INDEX)), } }, async getSitemapPage(req: GetSitemapPageRequest) { const date = req.date?.toDate() const isExpectedDate = date && date.getFullYear() === 2025 && date.getMonth() === 0 && date.getDate() === 1 const isExpectedBucket = req.bucket === 1 if (!isExpectedDate || !isExpectedBucket) { throw new ConnectError('Sitemap page not found', Code.NotFound) } return { sitemap: gzipSync(Buffer.from(MOCK_SITEMAP_PAGE)), } }, })