import { createServerFn } from "@tanstack/react-start";
import { kickRepoInsights } from "~/server/insights/repo-insights-do";
import { assertBelowCap, CAPS, limitWrite, withinRateLimit, MAX_PAGE } from "~/server/limits";
import { z } from "zod";
import { requireViewer, viewerMiddleware } from "./middleware";
import { all, batch, first, run } from "~/server/db";
import { addCounter } from "~/server/counters";
import { REPO_STARS } from "~/server/counter-keys";
import { repoMoveStatements } from "~/server/redirects";
import { syncHostingForRepo } from "~/server/sites/sync";
import { isScratchRepo } from "~/server/sites/config";
import { siteUrl as pagesSiteUrl } from "~/server/pages/config";
import {
assertOwnerNotDisabled,
assertNotArchived,
canCreateInAccount,
hasPermission,
hasPrivateForkAncestor,
requireRepoAccess,
toRepoSummaries,
toRepoSummary,
visibleReposClause,
} from "~/server/repos";
import {
createRepository,
deleteRepository,
forkRepository,
importRepository,
refreshRepoStatus,
reindexRepo,
} from "~/server/repo-ops";
import { listRefs } from "~/server/git/refs";
import { containersEnabled } from "~/server/editor/container-config";
import { containersAllowedFor } from "~/server/editor/container-meter";
import { ownerAccount, setCollaborator as setRepoCollaborator } from "~/server/collaborators";
import { assertCanFork } from "~/server/fork-policy";
import { purgeRepoCaches } from "~/server/git/cache-purge";
import { dropHiddenRefsForRepo, requestHiddenRefCleanup } from "~/server/git/pull-bridge";
import { purgeInaccessibleFollowers } from "~/server/access-revocation";
import { waitUntil } from "cloudflare:workers";