UNPKG

@chordcommerce/analytics

Version:

Chord Commerce event tracking

1,337 lines (1,336 loc) 63.8 kB
// Generated by ts-to-zod import { z } from 'zod'; export const cartSharedProductSchema = z.record(z.any()).and(z.object({ name: z.string(), product_id: z.string(), })); export const cartViewedProductSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), category: z.string().optional(), coupon: z.string().optional(), description: z.string().optional(), image_url: z.string().optional(), line_item_id: z.string().optional(), name: z.string(), option_values: z.array(z.string()).optional(), position: z.number().optional(), price: z.number().optional(), product_id: z.string(), quantity: z.number().optional(), sku: z.string().optional(), slug: z.string().optional(), url: z.string().optional(), variant: z.string().optional(), })); export const checkoutAbandonedProductSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), category: z.string().optional(), coupon: z.string().optional(), description: z.string().optional(), image_url: z.string().optional(), line_item_id: z.string().optional(), name: z.string().optional(), option_values: z.array(z.string()).optional(), position: z.number().optional(), price: z.number().optional(), product_id: z.string().optional(), quantity: z.number().optional(), sku: z.string().optional(), slug: z.string().optional(), url: z.string().optional(), variant: z.string().optional(), })); export const checkoutStartedProductSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), category: z.string().optional(), coupon: z.string().optional(), description: z.string().optional(), image_url: z.string().optional(), line_item_id: z.string().optional(), name: z.string(), option_values: z.array(z.string()).optional(), position: z.number().optional(), price: z.number().optional(), product_id: z.string(), quantity: z.number().optional(), sku: z.string().optional(), slug: z.string().optional(), url: z.string().optional(), variant: z.string().optional(), })); export const checkoutStepCompletedSchema = z.record(z.any()).and(z.object({ checkout_id: z.string().optional(), payment_method: z.string().optional(), shipping_method: z.string().optional(), step: z.number(), })); export const checkoutStepViewedSchema = z.record(z.any()).and(z.object({ checkout_id: z.string().optional(), payment_method: z.string().optional(), shipping_method: z.string().optional(), step: z.number(), })); export const collectionClickedSchema = z.record(z.any()).and(z.object({ brand: z.string().optional(), collection_id: z.string().optional(), description: z.string().optional(), image_url: z.string().optional(), slug: z.string().optional(), title: z.string().optional(), url: z.string().optional(), })); export const couponAppliedSchema = z.record(z.any()).and(z.object({ cart_id: z.string().optional(), coupon_id: z.string().optional(), coupon_name: z.string().optional(), discount: z.number().optional(), order_id: z.string().optional(), })); export const couponDeniedSchema = z.record(z.any()).and(z.object({ cart_id: z.string().optional(), coupon_id: z.string().optional(), coupon_name: z.string().optional(), order_id: z.string().optional(), reason: z.string().optional(), })); export const couponEnteredSchema = z.record(z.any()).and(z.object({ cart_id: z.string().optional(), coupon_id: z.string().optional(), coupon_name: z.string().optional(), order_id: z.string().optional(), })); export const couponRemovedSchema = z.record(z.any()).and(z.object({ cart_id: z.string().optional(), coupon_id: z.string().optional(), coupon_name: z.string().optional(), discount: z.number().optional(), order_id: z.string().optional(), })); export const emailCapturedSchema = z.record(z.any()).and(z.object({ email: z.string().optional(), placement_component: z.string().optional(), placement_page: z.string().optional(), })); export const giftCardAppliedSchema = z.record(z.any()).and(z.object({ gift_card_id: z.string().optional(), gift_card_last_characters: z.string().optional(), })); export const giftCardDeniedSchema = z.record(z.any()).and(z.object({ gift_card_last_characters: z.string().optional(), reason: z.string().optional(), })); export const giftCardEnteredSchema = z.record(z.any()).and(z.object({ gift_card_last_characters: z.string().optional(), })); export const giftCardRemovedSchema = z.record(z.any()).and(z.object({ gift_card_id: z.string().optional(), gift_card_last_characters: z.string().optional(), })); export const itemRestockedSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), backorderable: z.boolean().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), category: z.string().optional(), coupon: z.string().optional(), currency: z.string().optional(), description: z.string().optional(), email: z.string().optional(), image_url: z.string().optional(), name: z.string().optional(), option_values: z.array(z.string()).optional(), position: z.number().optional(), price: z.number().optional(), product_id: z.string().optional(), quantity: z.number().optional(), sku: z.string().optional(), slug: z.string().optional(), stock_request_id: z.string().optional(), total_on_hand: z.number().optional(), url: z.string().optional(), variant: z.string().optional(), variant_id: z.string().optional(), })); export const loginStartedSchema = z.record(z.any()).and(z.object({ email: z.string().optional(), })); export const navigationClickedSchema = z.record(z.any()).and(z.object({ category: z.string().optional(), label: z.string().optional(), navigation_placement: z.string().optional(), navigation_title: z.string().optional(), navigation_url: z.string().optional(), })); export const orderCancelledProductSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), bundle_size: z.number().optional(), category: z.string().optional(), coupon: z.string().optional(), cross_sold_quantity: z.number().optional(), description: z.string().optional(), image_url: z.string().optional(), line_item_id: z.string().optional(), name: z.string(), option_values: z.array(z.string()).optional(), position: z.number().optional(), price: z.number(), product_id: z.string(), quantity: z.number(), sku: z.string(), slug: z.string().optional(), url: z.string().optional(), variant: z.string().optional(), variant_metadata: z.record(z.any()).optional(), })); export const orderCancelledShippingMethodDetailsSchema = z.record(z.any()).and(z.object({ shipping_code: z.string().optional(), shipping_method: z.string().optional(), })); export const orderCompletedProductSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), bundle_size: z.number().optional(), category: z.string().optional(), coupon: z.string().optional(), cross_sold_quantity: z.number().optional(), description: z.string().optional(), image_url: z.string().optional(), line_item_id: z.string().optional(), name: z.string(), option_values: z.array(z.string()).optional(), position: z.number().optional(), price: z.number(), product_id: z.string(), quantity: z.number(), revenue: z.number(), sku: z.string(), slug: z.string().optional(), url: z.string().optional(), variant: z.string().optional(), variant_metadata: z.record(z.any()).optional(), })); export const orderCompletedShippingMethodDetailsSchema = z.record(z.any()).and(z.object({ shipping_code: z.string().optional(), shipping_method: z.string().optional(), })); export const orderRefundedProductSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), bundle_size: z.number().optional(), category: z.string().optional(), coupon: z.string().optional(), cross_sold_quantity: z.number().optional(), description: z.string().optional(), image_url: z.string().optional(), line_item_id: z.string().optional(), name: z.string(), option_values: z.array(z.string()).optional(), position: z.number().optional(), price: z.number(), product_id: z.string(), quantity: z.number(), sku: z.string(), slug: z.string().optional(), url: z.string().optional(), variant: z.string().optional(), variant_metadata: z.record(z.any()).optional(), })); export const orderRefundedShippingMethodDetailsSchema = z.record(z.any()).and(z.object({ shipping_code: z.string().optional(), shipping_method: z.string().optional(), })); export const orderUpdatedProductSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), bundle_size: z.number().optional(), category: z.string().optional(), coupon: z.string().optional(), cross_sold_quantity: z.number().optional(), description: z.string().optional(), image_url: z.string().optional(), line_item_id: z.string().optional(), name: z.string(), option_values: z.array(z.string()).optional(), position: z.number().optional(), price: z.number(), product_id: z.string(), quantity: z.number(), sku: z.string(), slug: z.string().optional(), url: z.string().optional(), variant: z.string().optional(), variant_metadata: z.record(z.any()).optional(), })); export const orderUpdatedShippingMethodDetailsSchema = z.record(z.any()).and(z.object({ shipping_code: z.string().optional(), shipping_method: z.string().optional(), })); export const passwordResetCompletedSchema = z.record(z.any()).and(z.object({ email: z.string().optional(), user_id: z.string().optional(), })); export const passwordResetStartedSchema = z.record(z.any()).and(z.object({ email: z.string().optional(), })); export const paymentInfoEnteredProductSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), category: z.string().optional(), coupon: z.string().optional(), description: z.string().optional(), image_url: z.string().optional(), line_item_id: z.string().optional(), name: z.string().optional(), option_values: z.array(z.string()).optional(), position: z.number().optional(), price: z.number().optional(), product_id: z.string().optional(), quantity: z.number().optional(), sku: z.string().optional(), slug: z.string().optional(), url: z.string().optional(), variant: z.string().optional(), })); export const productAddedProductSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), category: z.string().optional(), coupon: z.string().optional(), description: z.string().optional(), image_url: z.string().optional(), line_item_id: z.string().optional(), name: z.string(), option_values: z.array(z.string()).optional(), position: z.number().optional(), price: z.number(), product_id: z.string(), quantity: z.number(), sku: z.string().optional(), slug: z.string().optional(), url: z.string().optional(), variant: z.string().optional(), })); export const productAddedToWishlistSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), category: z.string().optional(), coupon: z.string().optional(), currency: z.string().optional(), description: z.string().optional(), image_url: z.string().optional(), name: z.string(), option_values: z.array(z.string()).optional(), position: z.number().optional(), price: z.number().optional(), product_id: z.string(), quantity: z.number().optional(), sku: z.string().optional(), slug: z.string().optional(), url: z.string().optional(), value: z.number().optional(), variant: z.string().optional(), wishlist_id: z.string().optional(), wishlist_name: z.string().optional(), })); export const productClickedProductSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), category: z.string().optional(), coupon: z.string().optional(), description: z.string().optional(), image_url: z.string().optional(), line_item_id: z.string().optional(), name: z.string(), option_values: z.array(z.string()).optional(), position: z.number().optional(), price: z.number().optional(), product_id: z.string(), quantity: z.number().optional(), sku: z.string().optional(), slug: z.string().optional(), url: z.string().optional(), variant: z.string().optional(), })); export const productDetailsClickedSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), category: z.string().optional(), coupon: z.string().optional(), description: z.string().optional(), image_url: z.string().optional(), name: z.string().optional(), option_values: z.array(z.string()).optional(), position: z.number().optional(), price: z.number().optional(), product_id: z.string().optional(), quantity: z.number().optional(), sku: z.string().optional(), slug: z.string().optional(), title: z.string().optional(), url: z.string().optional(), variant: z.string().optional(), })); export const filterSchema = z.record(z.any()).and(z.object({ type: z.string().optional(), value: z.string().optional(), })); export const productListFilteredProductSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), category: z.string().optional(), coupon: z.string().optional(), currency: z.string().optional(), description: z.string().optional(), image_url: z.string().optional(), name: z.string(), option_values: z.array(z.string()).optional(), position: z.number().optional(), price: z.number().optional(), product_id: z.string(), quantity: z.number().optional(), sku: z.string().optional(), slug: z.string().optional(), url: z.string().optional(), variant: z.string().optional(), })); export const sortSchema = z.record(z.any()).and(z.object({ type: z.string().optional(), value: z.string().optional(), })); export const productListViewedProductSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), category: z.string().optional(), coupon: z.string().optional(), currency: z.string().optional(), description: z.string().optional(), image_url: z.string().optional(), name: z.string(), option_values: z.array(z.string()).optional(), position: z.number().optional(), price: z.number().optional(), product_id: z.string(), quantity: z.number().optional(), sku: z.string().optional(), slug: z.string().optional(), url: z.string().optional(), variant: z.string().optional(), })); export const productRemovedProductSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), category: z.string().optional(), coupon: z.string().optional(), description: z.string().optional(), image_url: z.string().optional(), line_item_id: z.string().optional(), name: z.string(), option_values: z.array(z.string()).optional(), position: z.number().optional(), price: z.number(), product_id: z.string(), quantity: z.number(), sku: z.string().optional(), slug: z.string().optional(), url: z.string().optional(), variant: z.string().optional(), })); export const productRemovedFromWishlistSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), category: z.string().optional(), coupon: z.string().optional(), description: z.string().optional(), image_url: z.string().optional(), name: z.string(), option_values: z.array(z.string()).optional(), position: z.number().optional(), price: z.number().optional(), product_id: z.string(), quantity: z.number().optional(), sku: z.string().optional(), slug: z.string().optional(), url: z.string().optional(), variant: z.string().optional(), wishlist_id: z.string().optional(), wishlist_name: z.string().optional(), })); export const productReviewedSchema = z.record(z.any()).and(z.object({ product_id: z.string(), rating: z.string().optional(), review_body: z.string().optional(), review_id: z.string().optional(), })); export const productSharedSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), category: z.string().optional(), coupon: z.string().optional(), description: z.string().optional(), image_url: z.string().optional(), name: z.string(), option_values: z.array(z.string()).optional(), position: z.number().optional(), price: z.number().optional(), product_id: z.string(), quantity: z.number().optional(), recipient: z.string().optional(), share_message: z.string().optional(), share_via: z.string().optional(), sku: z.string().optional(), slug: z.string().optional(), url: z.string().optional(), variant: z.string().optional(), })); export const productViewedProductSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), category: z.string().optional(), coupon: z.string().optional(), description: z.string().optional(), image_url: z.string().optional(), line_item_id: z.string().optional(), name: z.string(), option_values: z.array(z.string()).optional(), position: z.number().optional(), price: z.number().optional(), product_id: z.string(), quantity: z.number().optional(), sku: z.string().optional(), slug: z.string().optional(), url: z.string().optional(), variant: z.string().optional(), })); export const productsSearchedSchema = z.record(z.any()).and(z.object({ currency: z.string().optional(), price: z.number().optional(), product_id: z.string().optional(), quantity: z.number().optional(), query: z.any().optional(), })); export const promotionClickedSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), category: z.string().optional(), coupon: z.string().optional(), creative: z.string().optional(), currency: z.string().optional(), description: z.string().optional(), name: z.string(), option_values: z.array(z.string()).optional(), position: z.string().optional(), price: z.number().optional(), product_id: z.string().optional(), promotion_id: z.string(), quantity: z.number().optional(), slug: z.string().optional(), variant: z.string().optional(), })); export const promotionViewedSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), category: z.string().optional(), coupon: z.string().optional(), creative: z.string().optional(), currency: z.string().optional(), description: z.string().optional(), name: z.string(), option_values: z.array(z.string()).optional(), position: z.string().optional(), price: z.number().optional(), product_id: z.string().optional(), promotion_id: z.string(), quantity: z.number().optional(), slug: z.string().optional(), variant: z.string().optional(), })); export const purpleAddressSchema = z.record(z.any()).and(z.object({ address1: z.string().optional(), address2: z.string().optional(), city: z.string().optional(), company: z.string().optional(), country: z.string().optional(), name: z.string().optional(), phone: z.string().optional(), state: z.string().optional(), zipcode: z.string().optional(), })); export const purpleProductSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), category: z.string().optional(), coupon: z.string().optional(), description: z.string().optional(), image_url: z.string().optional(), line_item_id: z.string().optional(), name: z.string().optional(), option_values: z.array(z.string()).optional(), position: z.number().optional(), price: z.number().optional(), product_id: z.string().optional(), quantity: z.number().optional(), sku: z.string().optional(), slug: z.string().optional(), url: z.string().optional(), variant: z.string().optional(), variant_metadata: z.record(z.any()).optional(), })); export const fluffyAddressSchema = z.record(z.any()).and(z.object({ address1: z.string().optional(), address2: z.string().optional(), city: z.string().optional(), company: z.string().optional(), country: z.string().optional(), name: z.string().optional(), phone: z.string().optional(), state: z.string().optional(), zipcode: z.string().optional(), })); export const fluffyProductSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), category: z.string().optional(), coupon: z.string().optional(), description: z.string().optional(), image_url: z.string().optional(), line_item_id: z.string().optional(), name: z.string().optional(), option_values: z.array(z.string()).optional(), position: z.number().optional(), price: z.number().optional(), product_id: z.string().optional(), quantity: z.number().optional(), sku: z.string().optional(), slug: z.string().optional(), url: z.string().optional(), variant: z.string().optional(), variant_metadata: z.record(z.any()).optional(), })); export const signedInSchema = z.record(z.any()).and(z.object({ email: z.string().optional(), method: z.string().optional(), })); export const signedOutSchema = z.record(z.any()).and(z.object({ email: z.string().optional(), })); export const signedUpSchema = z.record(z.any()).and(z.object({ email: z.string().optional(), method: z.string().optional(), })); export const stockRequestCreatedSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), cart_id: z.string().optional(), category: z.string().optional(), coupon: z.string().optional(), currency: z.string().optional(), description: z.string().optional(), email: z.string().optional(), image_url: z.string().optional(), name: z.string().optional(), option_values: z.array(z.string()).optional(), position: z.number().optional(), price: z.number().optional(), product_id: z.string().optional(), quantity: z.number().optional(), sku: z.string().optional(), slug: z.string().optional(), url: z.string().optional(), variant: z.string().optional(), })); export const subscriptionAddressUpdatedAddressSchema = z.record(z.any()).and(z.object({ address1: z.string().optional(), address2: z.string().optional(), city: z.string().optional(), company: z.string().optional(), country: z.string().optional(), name: z.string().optional(), phone: z.string().optional(), state: z.string().optional(), zipcode: z.string().optional(), })); export const purplePartSchema = z.record(z.any()).and(z.object({ name: z.string().optional(), options_text: z.string().optional(), })); export const subscriptionAutoRenewedAddressSchema = z.record(z.any()).and(z.object({ address1: z.string().optional(), address2: z.string().optional(), city: z.string().optional(), company: z.string().optional(), country: z.string().optional(), name: z.string().optional(), phone: z.string().optional(), state: z.string().optional(), zipcode: z.string().optional(), })); export const fluffyPartSchema = z.record(z.any()).and(z.object({ name: z.string().optional(), options_text: z.string().optional(), })); export const subscriptionCancelledAddressSchema = z.record(z.any()).and(z.object({ address1: z.string().optional(), address2: z.string().optional(), city: z.string().optional(), company: z.string().optional(), country: z.string().optional(), name: z.string().optional(), phone: z.string().optional(), state: z.string().optional(), zipcode: z.string().optional(), })); export const tentacledPartSchema = z.record(z.any()).and(z.object({ name: z.string().optional(), options_text: z.string().optional(), })); export const subscriptionCreatedAddressSchema = z.record(z.any()).and(z.object({ address1: z.string().optional(), address2: z.string().optional(), city: z.string().optional(), company: z.string().optional(), country: z.string().optional(), name: z.string().optional(), phone: z.string().optional(), state: z.string().optional(), zipcode: z.string().optional(), })); export const stickyPartSchema = z.record(z.any()).and(z.object({ name: z.string().optional(), options_text: z.string().optional(), })); export const subscriptionExpiredAddressSchema = z.record(z.any()).and(z.object({ address1: z.string().optional(), address2: z.string().optional(), city: z.string().optional(), company: z.string().optional(), country: z.string().optional(), name: z.string().optional(), phone: z.string().optional(), state: z.string().optional(), zipcode: z.string().optional(), })); export const indigoPartSchema = z.record(z.any()).and(z.object({ name: z.string().optional(), options_text: z.string().optional(), })); export const subscriptionOrderSkippedAddressSchema = z.record(z.any()).and(z.object({ address1: z.string().optional(), address2: z.string().optional(), city: z.string().optional(), company: z.string().optional(), country: z.string().optional(), name: z.string().optional(), phone: z.string().optional(), state: z.string().optional(), zipcode: z.string().optional(), })); export const indecentPartSchema = z.record(z.any()).and(z.object({ name: z.string().optional(), options_text: z.string().optional(), })); export const subscriptionPausedAddressSchema = z.record(z.any()).and(z.object({ address1: z.string().optional(), address2: z.string().optional(), city: z.string().optional(), company: z.string().optional(), country: z.string().optional(), name: z.string().optional(), phone: z.string().optional(), state: z.string().optional(), zipcode: z.string().optional(), })); export const hilariousPartSchema = z.record(z.any()).and(z.object({ name: z.string().optional(), options_text: z.string().optional(), })); export const subscriptionPaymentFailedAddressSchema = z.record(z.any()).and(z.object({ address1: z.string().optional(), address2: z.string().optional(), city: z.string().optional(), company: z.string().optional(), country: z.string().optional(), name: z.string().optional(), phone: z.string().optional(), state: z.string().optional(), zipcode: z.string().optional(), })); export const ambitiousPartSchema = z.record(z.any()).and(z.object({ name: z.string().optional(), options_text: z.string().optional(), })); export const subscriptionReminderSentAddressSchema = z.record(z.any()).and(z.object({ address1: z.string().optional(), address2: z.string().optional(), city: z.string().optional(), company: z.string().optional(), country: z.string().optional(), name: z.string().optional(), phone: z.string().optional(), state: z.string().optional(), zipcode: z.string().optional(), })); export const cunningPartSchema = z.record(z.any()).and(z.object({ name: z.string().optional(), options_text: z.string().optional(), })); export const subscriptionResumedAddressSchema = z.record(z.any()).and(z.object({ address1: z.string().optional(), address2: z.string().optional(), city: z.string().optional(), company: z.string().optional(), country: z.string().optional(), name: z.string().optional(), phone: z.string().optional(), state: z.string().optional(), zipcode: z.string().optional(), })); export const magentaPartSchema = z.record(z.any()).and(z.object({ name: z.string().optional(), options_text: z.string().optional(), })); export const userAddressAddedSchema = z.record(z.any()).and(z.object({ address1: z.string().optional(), address2: z.string().optional(), address_id: z.string().optional(), city: z.string().optional(), company: z.string().optional(), country: z.string().optional(), email: z.string().optional(), name: z.string().optional(), phone: z.string().optional(), state: z.string().optional(), zipcode: z.string().optional(), })); export const userAddressRemovedSchema = z.record(z.any()).and(z.object({ address1: z.string().optional(), address2: z.string().optional(), address_id: z.string().optional(), city: z.string().optional(), company: z.string().optional(), country: z.string().optional(), email: z.string().optional(), name: z.string().optional(), phone: z.string().optional(), state: z.string().optional(), zipcode: z.string().optional(), })); export const userAddressUpdatedSchema = z.record(z.any()).and(z.object({ address1: z.string().optional(), address2: z.string().optional(), address_id: z.string().optional(), city: z.string().optional(), company: z.string().optional(), country: z.string().optional(), email: z.string().optional(), name: z.string().optional(), phone: z.string().optional(), state: z.string().optional(), zipcode: z.string().optional(), })); export const userCreatedBillAddressSchema = z.record(z.any()).and(z.object({ address1: z.string().optional(), address2: z.string().optional(), alternative_phone: z.string().optional(), city: z.string().optional(), company: z.string().optional(), country: z.string().optional(), created_at: z.string().optional(), name: z.string().optional(), phone: z.string().optional(), state: z.string().optional(), updated_at: z.string().optional(), zipcode: z.string().optional(), })); export const userCreatedShipAddressSchema = z.record(z.any()).and(z.object({ address1: z.string().optional(), address2: z.string().optional(), alternative_phone: z.string().optional(), city: z.string().optional(), company: z.string().optional(), country: z.string().optional(), created_at: z.string().optional(), name: z.string().optional(), phone: z.string().optional(), state: z.string().optional(), updated_at: z.string().optional(), zipcode: z.string().optional(), })); export const userUpdatedBillAddressSchema = z.record(z.any()).and(z.object({ address1: z.string().optional(), address2: z.string().optional(), alternative_phone: z.string().optional(), city: z.string().optional(), company: z.string().optional(), country: z.string().optional(), created_at: z.string().optional(), name: z.string().optional(), phone: z.string().optional(), state: z.string().optional(), updated_at: z.string().optional(), zipcode: z.string().optional(), })); export const userUpdatedShipAddressSchema = z.record(z.any()).and(z.object({ address1: z.string().optional(), address2: z.string().optional(), alternative_phone: z.string().optional(), city: z.string().optional(), company: z.string().optional(), country: z.string().optional(), created_at: z.string().optional(), name: z.string().optional(), phone: z.string().optional(), state: z.string().optional(), updated_at: z.string().optional(), zipcode: z.string().optional(), })); export const variantClickedSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), cart_id: z.string().optional(), category: z.string().optional(), coupon: z.string().optional(), currency: z.string().optional(), description: z.string().optional(), image_url: z.string().optional(), line_item_id: z.string().optional(), name: z.string().optional(), option_values: z.array(z.string()).optional(), position: z.number().optional(), price: z.number().optional(), product_id: z.string().optional(), quantity: z.number().optional(), sku: z.string().optional(), slug: z.string().optional(), url: z.string().optional(), variant: z.string().optional(), variant_id: z.string().optional(), })); export const wishlistProductAddedToCartSchema = z.record(z.any()).and(z.object({ brand: z.string().optional(), bundle: z.boolean().optional(), category: z.string().optional(), coupon: z.string().optional(), description: z.string().optional(), image_url: z.string().optional(), name: z.string(), option_values: z.array(z.string()).optional(), position: z.number().optional(), price: z.number().optional(), product_id: z.string(), quantity: z.number().optional(), sku: z.string().optional(), slug: z.string().optional(), url: z.string().optional(), variant: z.string().optional(), wishlist_id: z.string().optional(), wishlist_name: z.string().optional(), })); export const callbackSchema = z.function().args().returns(z.void()); export const violationHandlerSchema = z .function() .args(z.record(z.any()), z.array(z.any())) .returns(z.void()); export const cartSharedSchema = z.record(z.any()).and(z.object({ cart_id: z.string().optional(), products: z.array(cartSharedProductSchema).optional(), recipient: z.string().optional(), share_message: z.string().optional(), share_via: z.string().optional(), })); export const cartViewedSchema = z.record(z.any()).and(z.object({ cart_id: z.string().optional(), currency: z.string().optional(), products: z.array(cartViewedProductSchema), value: z.number().optional(), })); export const checkoutAbandonedSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), checkout_type: z.string().optional(), coupon: z.string().optional(), currency: z.string().optional(), discount: z.number().optional(), discounted_order_cart_url: z.string().optional(), email: z.string().optional(), order_cart_url: z.string().optional(), order_id: z.string().optional(), order_name: z.string().optional(), phone: z.string().optional(), products: z.array(checkoutAbandonedProductSchema).optional(), revenue: z.number().optional(), shipping: z.number().optional(), tax: z.number().optional(), value: z.number().optional(), })); export const checkoutStartedSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), checkout_type: z.string().optional(), coupon: z.string().optional(), currency: z.string().optional(), discount: z.number().optional(), order_id: z.string().optional(), order_name: z.string().optional(), products: z.array(checkoutStartedProductSchema), revenue: z.number().optional(), shipping: z.number().optional(), tax: z.number().optional(), value: z.number().optional(), })); export const orderCancelledSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), campaign_id: z.number().optional(), channel: z.string().optional(), checkout_type: z.string().optional(), coupon: z.string().optional(), currency: z.string().optional(), discount: z.number().optional(), email: z.string().optional(), first_name: z.string().optional(), has_subscription: z.boolean().optional(), is_recurring: z.boolean().optional(), last_name: z.string().optional(), metadata: z.record(z.any()).optional(), order_date: z.string().optional(), order_id: z.string(), phone: z.string().optional(), products: z.array(orderCancelledProductSchema), purl_link: z.string().optional(), referral_identifier_id: z.string().optional(), revenue: z.number(), shipping: z.number().optional(), shipping_city: z.string().optional(), shipping_country: z.string().optional(), shipping_method_details: orderCancelledShippingMethodDetailsSchema.optional(), shipping_state: z.string().optional(), shipping_zipcode: z.string().optional(), tax: z.number().optional(), template_id: z.number().optional(), total: z.number(), tracking_ids: z.record(z.any()).optional(), })); export const orderCompletedSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), campaign_id: z.number().optional(), category: z.string().optional(), channel: z.string().optional(), checkout_id: z.string().optional(), checkout_type: z.string().optional(), coupon: z.string().optional(), currency: z.string(), discount: z.number().optional(), email: z.string().optional(), first_name: z.string().optional(), has_subscription: z.boolean().optional(), is_recurring: z.boolean().optional(), last_name: z.string().optional(), metadata: z.record(z.any()).optional(), order_date: z.string(), order_id: z.string(), phone: z.string().optional(), products: z.array(orderCompletedProductSchema), purl_link: z.string().optional(), referral_identifier_id: z.string().optional(), repeat: z.boolean().optional(), revenue: z.number(), shipping: z.number().optional(), shipping_city: z.string().optional(), shipping_country: z.string().optional(), shipping_method_details: orderCompletedShippingMethodDetailsSchema.optional(), shipping_state: z.string().optional(), shipping_zipcode: z.string().optional(), subtotal: z.number().optional(), tax: z.number().optional(), template_id: z.number().optional(), total: z.number(), tracking_ids: z.record(z.any()).optional(), })); export const orderRefundedSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), campaign_id: z.number().optional(), channel: z.string().optional(), checkout_type: z.string().optional(), coupon: z.string().optional(), currency: z.string().optional(), discount: z.number().optional(), email: z.string().optional(), first_name: z.string().optional(), has_subscription: z.boolean().optional(), is_recurring: z.boolean().optional(), last_name: z.string().optional(), metadata: z.record(z.any()).optional(), order_date: z.string().optional(), order_id: z.string(), phone: z.string().optional(), products: z.array(orderRefundedProductSchema), purl_link: z.string().optional(), referral_identifier_id: z.string().optional(), revenue: z.number().optional(), shipping: z.number().optional(), shipping_city: z.string().optional(), shipping_country: z.string().optional(), shipping_method_details: orderRefundedShippingMethodDetailsSchema.optional(), shipping_state: z.string().optional(), shipping_zipcode: z.string().optional(), tax: z.number().optional(), template_id: z.number().optional(), total: z.number(), tracking_ids: z.record(z.any()).optional(), })); export const orderUpdatedSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), campaign_id: z.number().optional(), channel: z.string().optional(), checkout_type: z.string().optional(), coupon: z.string().optional(), currency: z.string().optional(), discount: z.number().optional(), email: z.string().optional(), first_name: z.string().optional(), has_subscription: z.boolean().optional(), is_recurring: z.boolean().optional(), last_name: z.string().optional(), metadata: z.record(z.any()).optional(), order_date: z.string().optional(), order_id: z.string(), phone: z.string().optional(), products: z.array(orderUpdatedProductSchema), purl_link: z.string().optional(), referral_identifier_id: z.string().optional(), revenue: z.number().optional(), shipping: z.number().optional(), shipping_city: z.string().optional(), shipping_country: z.string().optional(), shipping_method_details: orderUpdatedShippingMethodDetailsSchema.optional(), shipping_state: z.string().optional(), shipping_zipcode: z.string().optional(), tax: z.number().optional(), template_id: z.number().optional(), total: z.number(), tracking_ids: z.record(z.any()).optional(), })); export const paymentInfoEnteredSchema = z.record(z.any()).and(z.object({ checkout_id: z.string().optional(), coupon: z.string().optional(), currency: z.string().optional(), order_id: z.string().optional(), payment_method: z.string().optional(), products: z.array(paymentInfoEnteredProductSchema), shipping_method: z.string().optional(), step: z.number(), value: z.number().optional(), })); export const productAddedSchema = z.record(z.any()).and(z.object({ actionable_date: z.string().optional(), affiliation: z.string().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), cart_id: z.string().optional(), category: z.string().optional(), coupon: z.string().optional(), currency: z.string().optional(), description: z.string().optional(), end_date: z.string().optional(), image_url: z.string().optional(), installment_count: z.number().optional(), interval_length: z.number().optional(), interval_units: z.string().optional(), line_item_id: z.string().optional(), name: z.string(), option_values: z.array(z.string()).optional(), position: z.number().optional(), prepaid: z.boolean().optional(), price: z.number(), product_id: z.string(), products: z.array(productAddedProductSchema), quantity: z.number().optional(), sku: z.string(), slug: z.string().optional(), total: z.number(), url: z.string().optional(), value: z.number(), variant: z.string().optional(), })); export const productClickedSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), cart_id: z.string().optional(), category: z.string().optional(), coupon: z.string().optional(), currency: z.string().optional(), description: z.string().optional(), image_url: z.string().optional(), item_list_id: z.string().optional(), item_list_name: z.string().optional(), line_item_id: z.string().optional(), name: z.string(), option_values: z.array(z.string()).optional(), position: z.number().optional(), price: z.number().optional(), product_id: z.string(), products: z.array(productClickedProductSchema).optional(), quantity: z.number().optional(), sku: z.string().optional(), slug: z.string().optional(), url: z.string().optional(), variant: z.string().optional(), })); export const productListFilteredSchema = z.record(z.any()).and(z.object({ category: z.string().optional(), filters: z.array(filterSchema).optional(), item_list_id: z.string().optional(), item_list_name: z.string().optional(), list_id: z.string().optional(), products: z.array(productListFilteredProductSchema).optional(), sorts: z.array(sortSchema).optional(), })); export const productListViewedSchema = z.record(z.any()).and(z.object({ category: z.string().optional(), item_list_id: z.string().optional(), item_list_name: z.string().optional(), list_id: z.string().optional(), products: z.array(productListViewedProductSchema), })); export const productRemovedSchema = z.record(z.any()).and(z.object({ actionable_date: z.string().optional(), affiliation: z.string().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), cart_id: z.string().optional(), category: z.string().optional(), coupon: z.string().optional(), currency: z.string().optional(), description: z.string().optional(), end_date: z.string().optional(), image_url: z.string().optional(), installment_count: z.number().optional(), interval_length: z.number().optional(), interval_units: z.string().optional(), line_item_id: z.string().optional(), name: z.string(), option_values: z.array(z.string()).optional(), position: z.number().optional(), prepaid: z.boolean().optional(), price: z.number().optional(), product_id: z.string(), products: z.array(productRemovedProductSchema), quantity: z.number().optional(), sku: z.string().optional(), slug: z.string().optional(), total: z.number(), url: z.string().optional(), value: z.number().optional(), variant: z.string().optional(), })); export const productViewedSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), cart_id: z.string().optional(), category: z.string().optional(), coupon: z.string().optional(), currency: z.string().optional(), description: z.string().optional(), image_url: z.string().optional(), item_list_id: z.string().optional(), item_list_name: z.string().optional(), line_item_id: z.string().optional(), name: z.string(), option_values: z.array(z.string()).optional(), position: z.number().optional(), price: z.number(), product_id: z.string(), products: z.array(productViewedProductSchema).optional(), quantity: z.number().optional(), sku: z.string(), slug: z.string().optional(), url: z.string().optional(), value: z.number().optional(), variant: z.string().optional(), })); export const shipmentDeliveredShipmentSchema = z.record(z.any()).and(z.object({ additional_tax_total: z.number().optional(), address: purpleAddressSchema.optional(), adjustment_total: z.number().optional(), carrier: z.string().optional(), cost: z.number().optional(), external_tracking_url: z.string().optional(), fulfilled_by: z.string().optional(), included_tax_total: z.number().optional(), label_url: z.string().optional(), number: z.string().optional(), products: z.array(purpleProductSchema).optional(), promo_total: z.number().optional(), pushed: z.boolean().optional(), state: z.string().optional(), tracking: z.string().optional(), tracking_detail: z.string().optional(), })); export const shipmentShippedShipmentSchema = z.record(z.any()).and(z.object({ additional_tax_total: z.number().optional(), address: fluffyAddressSchema.optional(), adjustment_total: z.number().optional(), carrier: z.string().optional(), cost: z.number().optional(), external_tracking_url: z.string().optional(), fulfilled_by: z.string().optional(), included_tax_total: z.number().optional(), label_url: z.string().optional(), number: z.string().optional(), products: z.array(fluffyProductSchema).optional(), promo_total: z.number().optional(), pushed: z.boolean().optional(), state: z.string().optional(), tracking: z.string().optional(), tracking_detail: z.string().optional(), })); export const subscriptionAddressUpdatedProductSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(), brand: z.string().optional(), bundle: z.boolean().optional(), category: z.string().optional(), coupon: z.string().optional(), description: z.string().optional(), image_url: z.string().optional(), line_item_id: z.string().optional(), name: z.string().optional(), option_values: z.array(z.string()).optional(), parts: z.array(purplePartSchema).optional(), position: z.number().optional(), price: z.number().optional(), product_id: z.string().optional(), quantity: z.number().optional(), sku: z.string().optional(), slug: z.string().optional(), url: z.string().optional(), variant: z.string().optional(), })); export const subscriptionAutoRenewedProductSchema = z.record(z.any()).and(z.object({ affiliation: z.string().optional(),