/* * 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 { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { WebhookPayloadBatch, WebhookPayloadBatch$inboundSchema, WebhookPayloadBatch$Outbound, WebhookPayloadBatch$outboundSchema, } from "./webhookpayloadbatch.js"; import { WebhookPayloadTrack, WebhookPayloadTrack$inboundSchema, WebhookPayloadTrack$Outbound, WebhookPayloadTrack$outboundSchema, } from "./webhookpayloadtrack.js"; import { WebhookPayloadTransaction, WebhookPayloadTransaction$inboundSchema, WebhookPayloadTransaction$Outbound, WebhookPayloadTransaction$outboundSchema, } from "./webhookpayloadtransaction.js"; export type WebhookPayload = | (WebhookPayloadTrack & { event: "track_updated" }) | (WebhookPayloadBatch & { event: "batch_created" }) | (WebhookPayloadBatch & { event: "batch_purchased" }) | (WebhookPayloadTransaction & { event: "transaction_created" }) | (WebhookPayloadTransaction & { event: "transaction_updated" }); /** @internal */ export const WebhookPayload$inboundSchema: z.ZodMiniType< WebhookPayload, unknown > = z.union([ z.intersection( WebhookPayloadTrack$inboundSchema, z.object({ event: z.literal("track_updated") }), ), z.intersection( WebhookPayloadBatch$inboundSchema, z.object({ event: z.literal("batch_created") }), ), z.intersection( WebhookPayloadBatch$inboundSchema, z.object({ event: z.literal("batch_purchased") }), ), z.intersection( WebhookPayloadTransaction$inboundSchema, z.object({ event: z.literal("transaction_created") }), ), z.intersection( WebhookPayloadTransaction$inboundSchema, z.object({ event: z.literal("transaction_updated") }), ), ]); /** @internal */ export type WebhookPayload$Outbound = | (WebhookPayloadTrack$Outbound & { event: "track_updated" }) | (WebhookPayloadBatch$Outbound & { event: "batch_created" }) | (WebhookPayloadBatch$Outbound & { event: "batch_purchased" }) | (WebhookPayloadTransaction$Outbound & { event: "transaction_created" }) | (WebhookPayloadTransaction$Outbound & { event: "transaction_updated" }); /** @internal */ export const WebhookPayload$outboundSchema: z.ZodMiniType< WebhookPayload$Outbound, WebhookPayload > = z.union([ z.intersection( WebhookPayloadTrack$outboundSchema, z.object({ event: z.literal("track_updated") }), ), z.intersection( WebhookPayloadBatch$outboundSchema, z.object({ event: z.literal("batch_created") }), ), z.intersection( WebhookPayloadBatch$outboundSchema, z.object({ event: z.literal("batch_purchased") }), ), z.intersection( WebhookPayloadTransaction$outboundSchema, z.object({ event: z.literal("transaction_created") }), ), z.intersection( WebhookPayloadTransaction$outboundSchema, z.object({ event: z.literal("transaction_updated") }), ), ]); export function webhookPayloadToJSON(webhookPayload: WebhookPayload): string { return JSON.stringify(WebhookPayload$outboundSchema.parse(webhookPayload)); } export function webhookPayloadFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => WebhookPayload$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'WebhookPayload' from JSON`, ); }