import * as z from "zod/mini"; import { clientMetaSchema } from "../client-meta.js"; import { publicCommandPayloadSchema } from "../widget-commands.js"; const requestIdSchema = z.string().check(z.trim(), z.minLength(1)); const idempotencyKeySchema = z.string().check(z.trim(), z.minLength(1)); const versionSchema = z.literal("1"); const instanceIdSchema = z.string().check(z.trim(), z.minLength(1)); export const commandEnvelopeSchema = z.object({ version: versionSchema, instanceId: z.optional(z.string()), requestId: requestIdSchema, idempotencyKey: idempotencyKeySchema, clientMeta: z.optional(clientMetaSchema), command: publicCommandPayloadSchema, }); export const commandEnvelopeWithInstanceIdSchema = z.extend( commandEnvelopeSchema, { instanceId: instanceIdSchema, }, );