/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v3"; import { remap as remap$ } from "../../lib/primitives.js"; import * as openEnums from "../../types/enums.js"; import { OpenEnum } from "../../types/enums.js"; /** * The platform that is being used to access the website. */ export const UserDevice = { Desktop: "desktop", Mobile: "mobile", } as const; /** * The platform that is being used to access the website. */ export type UserDevice = OpenEnum; /** * Merchant provided browser info */ export type BrowserInfo = { javascriptEnabled: boolean; javaEnabled: boolean; language: string; colorDepth: number; screenHeight: number; screenWidth: number; timeZoneOffset: number; /** * Exact content of the HTTP user-agent header. */ userAgent: string; /** * The platform that is being used to access the website. */ userDevice: UserDevice; /** * The Accept header of the request from the buyer's browser. */ acceptHeader?: string | null | undefined; }; /** @internal */ export const UserDevice$outboundSchema: z.ZodType< string, z.ZodTypeDef, UserDevice > = openEnums.outboundSchema(UserDevice); /** @internal */ export type BrowserInfo$Outbound = { javascript_enabled: boolean; java_enabled: boolean; language: string; color_depth: number; screen_height: number; screen_width: number; time_zone_offset: number; user_agent: string; user_device: string; accept_header?: string | null | undefined; }; /** @internal */ export const BrowserInfo$outboundSchema: z.ZodType< BrowserInfo$Outbound, z.ZodTypeDef, BrowserInfo > = z.object({ javascriptEnabled: z.boolean(), javaEnabled: z.boolean(), language: z.string(), colorDepth: z.number().int(), screenHeight: z.number().int(), screenWidth: z.number().int(), timeZoneOffset: z.number().int(), userAgent: z.string(), userDevice: UserDevice$outboundSchema, acceptHeader: z.nullable(z.string()).optional(), }).transform((v) => { return remap$(v, { javascriptEnabled: "javascript_enabled", javaEnabled: "java_enabled", colorDepth: "color_depth", screenHeight: "screen_height", screenWidth: "screen_width", timeZoneOffset: "time_zone_offset", userAgent: "user_agent", userDevice: "user_device", acceptHeader: "accept_header", }); }); export function browserInfoToJSON(browserInfo: BrowserInfo): string { return JSON.stringify(BrowserInfo$outboundSchema.parse(browserInfo)); }