/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v4-mini"; import { safeParse } from "../../lib/schemas.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { smartUnion } from "../../types/smartUnion.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { FilterClause, FilterClause$inboundSchema, FilterClause$Outbound, FilterClause$outboundSchema, } from "./filterclause.js"; import { FilterConjunction, FilterConjunction$inboundSchema, FilterConjunction$outboundSchema, } from "./filterconjunction.js"; export type Filter = { conjunction: FilterConjunction; clauses: Array; }; export type Clauses = FilterClause | Filter; /** @internal */ export const Filter$inboundSchema: z.ZodMiniType = z.object({ conjunction: FilterConjunction$inboundSchema, clauses: z.array( smartUnion([ FilterClause$inboundSchema, z.lazy(() => Filter$inboundSchema), ]), ), }); /** @internal */ export type Filter$Outbound = { conjunction: string; clauses: Array; }; /** @internal */ export const Filter$outboundSchema: z.ZodMiniType = z .object({ conjunction: FilterConjunction$outboundSchema, clauses: z.array( smartUnion([ FilterClause$outboundSchema, z.lazy(() => Filter$outboundSchema), ]), ), }); export function filterToJSON(filter: Filter): string { return JSON.stringify(Filter$outboundSchema.parse(filter)); } export function filterFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => Filter$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'Filter' from JSON`, ); } /** @internal */ export const Clauses$inboundSchema: z.ZodMiniType = smartUnion([FilterClause$inboundSchema, z.lazy(() => Filter$inboundSchema)]); /** @internal */ export type Clauses$Outbound = FilterClause$Outbound | Filter$Outbound; /** @internal */ export const Clauses$outboundSchema: z.ZodMiniType = smartUnion([ FilterClause$outboundSchema, z.lazy(() => Filter$outboundSchema), ]); export function clausesToJSON(clauses: Clauses): string { return JSON.stringify(Clauses$outboundSchema.parse(clauses)); } export function clausesFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => Clauses$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'Clauses' from JSON`, ); }