import * as z from "zod/mini"; export const clientMetaSchema = z.object({ loader: z.enum(["sdk", "gtm", "segment", "rudderstack", "tealium", "custom"]), clientName: z.optional(z.string().check(z.trim(), z.minLength(1))), clientVersion: z.optional(z.string().check(z.trim(), z.minLength(1))), protocolCapabilities: z.optional( z.array(z.string().check(z.trim(), z.minLength(1))), ), integrator: z.optional( z.object({ name: z.optional(z.string().check(z.trim(), z.minLength(1))), version: z.optional(z.string().check(z.trim(), z.minLength(1))), }), ), transport: z.optional( z.enum(["script-tag", "esm", "loader", "tag-manager", "snippet"]), ), runtime: z.optional( z.object({ framework: z.optional(z.enum(["next", "vite", "webpack", "plain"])), runtime: z.optional(z.enum(["browser", "edge"])), }), ), notes: z.optional(z.string().check(z.trim(), z.minLength(1))), }); export type ClientMeta = z.output;