/** * 请求流水线(S-147 切片:`http/server.ts` 的 `handle()` 与它的模块级词表搬家;S-146 再把「这是什么路由」 * 整件事交给 `./route-table.ts`)。 * * 住在这里的是**一条请求从进门到落地**的全过程,一件事一遍:admission 计数 / 附着登记 / CORS / /health / * /metrics / 鉴权桥 / 全局服务凭据门 / 无凭据写门 / drain 与 roster-pending 两道 503 / 破坏性会话写门 / * 两段分派 / 全局 404。 * * 🔴 S-146 之后本文件**不再持有任何一份路由名单**:分派序、门侧、标签、三只门的判据全部读 * `ROUTES` / `ROUTE_DECLARATIONS`(见 route-table.ts 头注)。三道门也不再「按行号插在 37 只 if 中间」—— * 它们在门前段与门后段之间**恒定一处**执行,三段代码逐字未动,只是不再被域调用夹着。 * * ctx 字段 4 只(`deps` / `counters` / `noteActivity` / `routeCtxBase`),机器算(closure-free-vars)与手抄一致。 * `openResponses` / `lastAttachEndedAt` 是 handle 自己写的外层 `let`/`Set`,随它一起进工厂 —— 这样那两行赋值 * 正文一个字都不用改(装盒改写会把 `lastAttachEndedAt = …` 改成 `box.x = …`,那就不是 move 了)。 */ import type { IncomingMessage, ServerResponse } from "node:http"; import type { ServiceConfig } from "../config-types.js"; import type { RouteCtxBase, RunRegistry } from "./route-ctx.js"; import type { FlatServiceDeps } from "./server.js"; /** 「这台部署配了任何一把 service 凭证吗」—— fail-closed 写门族的真值源。**单一属主**:`handle()` 的 * 凭证门、[ref] 的 parked 赎回席、以及 [ref] 的 consolidation 阀门启动期告警读同一句(手抄迟早 * 只改一处,而这条判据决定的是「无凭证部署上写口开不开」)。导出仅为最后一个消费点(main.ts)。 */ export declare function hasServiceAuth(config: ServiceConfig): boolean; export declare function createDispatch(ctx: { deps: FlatServiceDeps; noteActivity: (url: string) => void; routeCtxBase: RouteCtxBase; } & Pick): { handle: (req: IncomingMessage, res: ServerResponse) => Promise; }; //# sourceMappingURL=dispatch.d.ts.map