declare global {
namespace App {
interface PageData {
// per-page og overrides; the repo layout merges these over its
// repo-level defaults and renders the one
meta?: {
title?: string;
description?: string;
type?: "website" | "profile" | "article";
image?: string;
noindex?: boolean;
};
publicConfig?: {
bobbinUrl: string;
knotMirrorUrl: string;
apiUrl: string;
deliberiUrl: string;
sitesDomain: string;
moderationServiceDid: string;
turnstileSiteKey: string;
camoEnabled: boolean;
// when the server defers the diff fetch to the browser
ssrDiffMaxBytes: number;
ogreUrl: string;
};
}
interface Platform {
// worker service bindings, only present when running on Cloudflare
env?: {
// diff payloads above this many bytes are not buffered through the
// ssr worker; the page refetches them from the browser instead.
// "0" disables. defaults to 5 MiB
SSR_DIFF_MAX_BYTES?: string;
BOBBIN?: { fetch(request: Request): Promise };
SITEMAP?: { fetch(request: Request): Promise };
// verified email → did lookup, populated once by cmd/email-did-migrate
EMAIL_DID?: { get(key: string): Promise };
};
}
}
}
export {};