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)),
}
},
})