import { Server, Subprocess, WebSocketHandler } from "bun"; import { Logger } from "pino"; import { RadixRouter } from "radix3"; import { syncronize } from "y-pojo"; import type * as Y from "yjs"; import { PrismaClient } from "../../../app/db/db"; import { WSData } from "../server/create"; import { ApiProxy, apiProxy, } from "../../../app/web/src/base/load/api/api-proxy"; import { dbProxy } from "../../../app/web/src/base/load/db/db-proxy"; type SingleRoute = { url: string; args: string[]; raw: boolean; fn: (...arg: any[]) => Promise; path: string; }; export const g = global as unknown as { status: "init" | "ready"; server_hook?: (arg: { url: URL; req: Request; server: Server; handle: (req: Request) => Promise; wsHandler: Record>; }) => Promise; server_runtime: Record< string, { api: ReturnType; db: ReturnType; } >; createServerRuntime: (site_id: string) => Promise; ws_hook?: WebSocketHandler; _db: PrismaClient; dburl: string; mode: "dev" | "prod"; server: Server; log: Logger; _api: Record; domains: null | Record; router: RadixRouter; port: number; frm: { js: string; etag: string; }; parcel: Subprocess; apiPrepared: boolean; Y: typeof Y; syncronize: typeof syncronize; };