// `createGatewayClient` builds a typed Connect-Web client for the // gateway's authenticated edge surface. It speaks the Connect protocol // over HTTP/1.1 (or HTTP/2 if the host upgrades the connection) — the // gateway listener built in Phase 4 natively serves Connect, gRPC, and // gRPC-Web on the same h2c port. // // The factory is intentionally thin: callers provide the Connect base // URL (the same-origin `/rpc` prefix from `gatewayRpcBaseUrl`), and // receive a typed // `GatewayClient`. Authentication, signing, and response // verification live one layer up, in `GalaxyClient`. import { createClient, type Client } from "@connectrpc/connect"; import { createConnectTransport } from "@connectrpc/connect-web"; import { Gateway } from "../proto/edge/v1/edge_gateway_pb"; export type GatewayClient = Client; export function createGatewayClient(baseUrl: string): GatewayClient { return createClient(Gateway, createConnectTransport({ baseUrl })); }