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"; //@ts-ignore 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"; import { BrotliWasmType } from "brotli-wasm"; type SingleRoute = { url: string; args: string[]; fn: (...arg: any[]) => Promise; path: string; raw: any; }; export const g = global as unknown as { status: "init" | "ready"; server_main_handler: any; server_handle_timeout: Record; server_hook?: (arg: { url: URL; req: Request; server: Server; handle: (req: Request) => Promise; wsHandler: Record>; serveStatic?: any; serveAPI?: any; prasi: { page_id?: string }; }) => Promise; server_runtime: Record< string, null | { 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; static_cache: any; route_cache_compressing: Set; route_cache: Record; main_cache: Record; br: BrotliWasmType; };