@chordcommerce/analytics
Version:
Chord Commerce event tracking
129 lines (128 loc) • 5.19 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.cartSchema = exports.checkoutSchema = exports.orderSchema = exports.lineItemSchema = exports.productSchema = exports.identifyTraitsSchema = void 0;
// Generated by ts-to-zod
var zod_1 = require("zod");
exports.identifyTraitsSchema = zod_1.z.record(zod_1.z.any()).and(zod_1.z.object({
address: zod_1.z
.record(zod_1.z.any())
.and(zod_1.z.object({
city: zod_1.z.string().optional(),
country: zod_1.z.string().optional(),
postalCode: zod_1.z.string().optional(),
state: zod_1.z.string().optional(),
street: zod_1.z.string().optional(),
}))
.optional(),
age: zod_1.z.number().optional(),
avatar: zod_1.z.string().optional(),
birthday: zod_1.z.string().optional(),
company: zod_1.z
.record(zod_1.z.any())
.and(zod_1.z.object({
name: zod_1.z.string().optional(),
id: zod_1.z.union([zod_1.z.string(), zod_1.z.number()]).optional(),
industry: zod_1.z.string().optional(),
employeeCount: zod_1.z.number().optional(),
plan: zod_1.z.string().optional(),
}))
.optional(),
createdAt: zod_1.z.string().optional(),
description: zod_1.z.string().optional(),
email: zod_1.z.string().optional(),
firstName: zod_1.z.string().optional(),
gender: zod_1.z.string().optional(),
id: zod_1.z.string().optional(),
lastName: zod_1.z.string().optional(),
name: zod_1.z.string().optional(),
phone: zod_1.z.string().optional(),
title: zod_1.z.string().optional(),
username: zod_1.z.string().optional(),
website: zod_1.z.string().optional(),
}));
exports.productSchema = zod_1.z.object({
affiliation: zod_1.z.string().optional(),
brand: zod_1.z.string().optional(),
bundle: zod_1.z.boolean().optional(),
category: zod_1.z.string().optional(),
description: zod_1.z.string().optional(),
image_url: zod_1.z.string().optional(),
name: zod_1.z.string(),
option_values: zod_1.z.array(zod_1.z.string()).optional(),
position: zod_1.z.number().optional(),
price: zod_1.z.number(),
product_id: zod_1.z.string(),
sku: zod_1.z.string(),
slug: zod_1.z.string().optional(),
url: zod_1.z.string().optional(),
variant: zod_1.z.string().optional(),
});
exports.lineItemSchema = exports.productSchema.extend({
coupon: zod_1.z.string().optional(),
line_item_id: zod_1.z.string().optional(),
quantity: zod_1.z.number(),
});
exports.orderSchema = zod_1.z.object({
affiliation: zod_1.z.string().optional(),
campaign_id: zod_1.z.number().optional(),
channel: zod_1.z.string().optional(),
checkout_type: zod_1.z.string().optional(),
coupon: zod_1.z.string().optional(),
currency: zod_1.z.string().optional(),
discount: zod_1.z.number().optional(),
email: zod_1.z.string().optional(),
first_name: zod_1.z.string().optional(),
has_subscription: zod_1.z.boolean().optional(),
is_recurring: zod_1.z.boolean().optional(),
last_name: zod_1.z.string().optional(),
metadata: zod_1.z.record(zod_1.z.unknown()).optional(),
order_date: zod_1.z.string().optional(),
order_id: zod_1.z.string().optional(),
phone: zod_1.z.string().optional(),
products: zod_1.z
.array(exports.lineItemSchema.and(zod_1.z.object({
bundle_size: zod_1.z.number().optional(),
cross_sold_quantity: zod_1.z.number().optional(),
variant_metadata: zod_1.z.record(zod_1.z.unknown()).optional(),
})))
.optional(),
purl_link: zod_1.z.string().optional(),
referral_identifier_id: zod_1.z.string().optional(),
revenue: zod_1.z.number().optional(),
shipping: zod_1.z.number().optional(),
shipping_city: zod_1.z.string().optional(),
shipping_country: zod_1.z.string().optional(),
shipping_method_details: zod_1.z
.object({
shipping_code: zod_1.z.string().optional(),
shipping_method: zod_1.z.string().optional(),
})
.optional(),
shipping_state: zod_1.z.string().optional(),
shipping_zipcode: zod_1.z.string().optional(),
tax: zod_1.z.number().optional(),
template_id: zod_1.z.number().optional(),
total: zod_1.z.number().optional(),
tracking_ids: zod_1.z.record(zod_1.z.unknown()).optional(),
});
exports.checkoutSchema = zod_1.z.object({
affiliation: zod_1.z.string().optional(),
checkout_type: zod_1.z.string().optional(),
coupon: zod_1.z.string().optional(),
currency: zod_1.z.string().optional(),
discount: zod_1.z.number().optional(),
order_id: zod_1.z.string().optional(),
order_name: zod_1.z.string().optional(),
products: zod_1.z.array(exports.lineItemSchema),
revenue: zod_1.z.number().optional(),
shipping: zod_1.z.number().optional(),
tax: zod_1.z.number().optional(),
value: zod_1.z.number().optional(),
step: zod_1.z.number().optional(),
});
exports.cartSchema = zod_1.z.object({
cart_id: zod_1.z.string().optional(),
currency: zod_1.z.string().optional(),
products: zod_1.z.array(exports.lineItemSchema),
value: zod_1.z.number().optional(),
});