* perf(protocol): generate inbound ws validators * perf(client): use generated ws validation * docs(protocol): document generated validation * fix(protocol): make validator generation source-only * test(protocol): cover explicit provider model normalization * fix(protocol): preserve inbound compat defaults * fix(protocol): make validator import rewrite portable * fix(protocol): harden validation safety checks * fix(protocol): guard generated validator boundaries * fix(protocol): normalize legacy inbound defaults * fix(protocol): simplify generated validation safety net * fix(protocol): keep cold typecheck source-only * fix(protocol): encapsulate validator codegen * fix(protocol): bootstrap source-alias typechecks * fix(app): keep source aliases out of bundler config * fix(protocol): harden validator codegen packaging * fix(protocol): own zod-aot patches in generator * fix(protocol): trim validator safety net * fix(client): normalize provider updates before dispatch * fix(protocol): keep validator generation out of install
20 lines
804 B
TypeScript
20 lines
804 B
TypeScript
import type { z } from "zod";
|
|
import { WSOutboundMessageSchema } from "../generated/validation/ws-outbound.aot.js";
|
|
import type { WSOutboundMessage } from "../messages.js";
|
|
|
|
type WSOutboundValidationResult =
|
|
| { success: true; data: WSOutboundMessage }
|
|
| { success: false; error: z.ZodError };
|
|
|
|
interface WSOutboundGeneratedValidator {
|
|
safeParse(input: unknown): WSOutboundValidationResult;
|
|
}
|
|
|
|
// zod-aot emits runtime JavaScript from WSOutboundMessageSchema but not its TypeScript surface.
|
|
// Protocol regression tests cover the patched compiler cases behind this boundary.
|
|
const wsOutboundValidator = WSOutboundMessageSchema as WSOutboundGeneratedValidator;
|
|
|
|
export function validateWSOutboundMessage(input: unknown): WSOutboundValidationResult {
|
|
return wsOutboundValidator.safeParse(input);
|
|
}
|