{"version":3,"sources":["../../src/contexts/UserEvents/Context.ts","../../src/contexts/UserEvents/Provider.tsx","../../src/lib/Tracking/Drip/BaseEvent.ts","../../src/lib/Tracking/Drip/CustomEvent.ts","../../src/lib/Tracking/Drip/StandardEvents.ts","../../src/lib/Tracking/Facebook/BaseEvent.ts","../../src/lib/Tracking/Facebook/Fbq.ts","../../src/lib/Tracking/Facebook/CustomEvent.ts","../../src/lib/Tracking/Facebook/StandardEvent.ts","../../src/lib/Tracking/Facebook/StandardEvents.ts","../../src/lib/Tracking/Facebook/UserEventHandler.ts","../../src/lib/Tracking/Google/BaseEvent.ts","../../src/lib/Tracking/Google/Gtag.ts","../../src/lib/Tracking/Google/Gtm.ts","../../src/lib/Tracking/Google/CustomEvent.ts","../../src/lib/Tracking/Google/StandardEvent.ts","../../src/lib/Tracking/Google/StandardEvents.ts","../../src/lib/Tracking/Google/UserEventHandler.ts","../../src/lib/Tracking/Mixpanel/BaseEvent.ts","../../src/lib/Tracking/Mixpanel/CustomEvent.ts","../../src/lib/Tracking/Mixpanel/PageViewEvent.ts","../../src/lib/Tracking/Mixpanel/UserEventHandler.ts","../../src/lib/Tracking/Reddit/BaseEvent.ts","../../src/lib/Tracking/Reddit/Rdt.ts","../../src/lib/Tracking/Reddit/CustomEvent.ts","../../src/lib/Tracking/Reddit/StandardEvent.ts","../../src/lib/Tracking/Reddit/StandardEvents.ts","../../src/lib/Tracking/Referrer.ts","../../src/lib/Tracking/Snapchat/BaseEvent.ts","../../src/lib/Tracking/Snapchat/Snaptr.ts","../../src/lib/Tracking/Snapchat/StandardEvent.ts","../../src/lib/Tracking/Snapchat/StandardEvents.ts","../../src/lib/Tracking/Tapjoy/EF.ts","../../src/lib/Tracking/Tapjoy/StandardEvent.ts","../../src/lib/Tracking/Tapjoy/BaseEvent.ts","../../src/lib/Tracking/Tapjoy/StandardEvents.ts","../../src/lib/Tracking/Tiktok/BaseEvent.ts","../../src/lib/Tracking/Tiktok/Ttq.ts","../../src/lib/Tracking/Tiktok/CustomEvent.ts","../../src/lib/Tracking/Tiktok/StandardEvent.ts","../../src/lib/Tracking/Tiktok/StandardEvents.ts","../../src/lib/Tracking/Xy/BaseEvent.ts","../../src/lib/Tracking/Xy/CustomEvent.ts","../../src/lib/Tracking/Xy/UserEventHandler.ts","../../src/lib/Tracking/XyoUserEventHandler.ts","../../src/hooks/useUserEvents.ts"],"sourcesContent":["import type { UserEventHandler } from '@xylabs/pixel'\nimport type { EmptyObject } from '@xylabs/sdk-js'\nimport { createContext } from 'react'\n\nexport interface UserEventsProps<T extends EmptyObject = EmptyObject> {\n  userEvents?: UserEventHandler<T>\n}\nexport const UserEventsContext = createContext<UserEventsProps>({})\n\nexport interface DebugUserEventsProps {\n  isDebugging: boolean\n  setIsDebugging: (value: boolean) => void\n}\n\nexport const DebugUserEventsContext = createContext<DebugUserEventsProps>({\n  isDebugging: false,\n  setIsDebugging: (value) => {\n    console.warn('set is debugging is not set', value)\n  },\n})\n","import type { UserEventHandler } from '@xylabs/pixel'\nimport type { EmptyObject } from '@xylabs/sdk-js'\nimport type { PropsWithChildren } from 'react'\nimport React, { useMemo } from 'react'\n\nimport { XyoUserEventHandler } from '../../lib/index.ts'\nimport { UserEventsContext } from './Context.ts'\n\nexport interface UserEventsProviderProps<T extends EmptyObject = EmptyObject> {\n  userEvents: UserEventHandler<T>\n}\n\nexport const UserEventsProvider: React.FC<PropsWithChildren<UserEventsProviderProps>> = ({ userEvents, children }) => {\n  const value = useMemo(() => ({ userEvents: userEvents ?? XyoUserEventHandler.get() }), [userEvents])\n  return <UserEventsContext value={value}>{children}</UserEventsContext>\n}\n","import { delay } from '@xylabs/sdk-js'\n\nexport type DripEvent<T extends Record<string, unknown>> = (string | T)[]\n\nexport class DripBaseEvent<T extends Record<string, unknown>> {\n  dcq: DripEvent<T>[]\n  dcs: unknown\n  name: string\n  param?: string\n\n  constructor(name: string, param?: string) {\n    this.name = name\n    this.param = param\n    this.dcq = this.getDcq()\n    this.dcs = this.getDcs()\n  }\n\n  async send(data: T) {\n    const payload: (string | T)[] = [this.name]\n    if (this.param) {\n      payload.push(this.param)\n    }\n    payload.push(data)\n    console.log('sdk-react', payload)\n    this.dcq.push(payload)\n    await delay(0)\n  }\n\n  private getDcq() {\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    const global = globalThis as any\n    if (!global._dcq) {\n      throw new Error('DCQ not found')\n    }\n    return global._dcq as DripEvent<T>[]\n  }\n\n  private getDcs() {\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    const global = globalThis as any\n    if (!global._dcs) {\n      throw new Error('DCS not found')\n    }\n    return global._dcs as DripEvent<T>[]\n  }\n}\n","import { DripBaseEvent } from './BaseEvent.ts'\n\nclass DripCustomEvent<T extends Record<string, unknown>> extends DripBaseEvent<T> {}\n\nexport { DripCustomEvent }\n","import { DripBaseEvent } from './BaseEvent.ts'\nimport type { DripIdentifyData } from './Data/index.ts'\n\nclass DripStandardEvents<T extends Record<string, unknown>> {\n  identify() {\n    return new DripBaseEvent<DripIdentifyData | T>('identify')\n  }\n}\n\nexport { DripStandardEvents }\n","import type { EmptyObject } from '@xylabs/sdk-js'\nimport { delay } from '@xylabs/sdk-js'\n\nimport type { FbqCaller } from './Fbq.ts'\nimport { Fbq } from './Fbq.ts'\n\nclass FacebookBaseEvent<TData extends EmptyObject = EmptyObject, TName extends string = string> {\n  fbq: FbqCaller\n  name: TName\n\n  constructor(name: TName, fbq?: FbqCaller) {\n    this.name = name\n    this.fbq = fbq ?? Fbq\n  }\n\n  async send<T extends TData>(_data: T) {\n    await delay(0) // force async to increase reporting odds\n  }\n}\n\nexport { FacebookBaseEvent }\n","import type { JsonObject } from '@xylabs/sdk-js'\n\nexport type FacebookStandardEventNames\n  = | 'PageView'\n    | 'ViewContent'\n    | 'Search'\n    | 'AddToCart'\n    | 'AddToWishlist'\n    | 'InitiateCheckout'\n    | 'AddPaymentInfo'\n    | 'Purchase'\n    | 'Lead'\n    | 'CompleteRegistration'\n    | 'Contact'\n    | 'CustomizeProduct'\n    | 'Donate'\n    | 'FindLocation'\n    | 'Schedule'\n    | 'StartTrial'\n    | 'SubmitApplication'\n    | 'Subscribe'\n\ntype FbqFunction = {\n  (command: 'init', pixelId: string): void\n  (command: 'track',\n    eventName: FacebookStandardEventNames,\n    parameters?: JsonObject,\n    options?: { eventID?: string }\n  ): void\n  (command: 'trackCustom', eventName: string, parameters?: JsonObject, options?: { eventID?: string }): void\n  (command: 'trackSingle',\n    pixelId: string,\n    eventName: FacebookStandardEventNames,\n    parameters?: JsonObject,\n    options?: { eventID?: string }\n  ): void\n  (command: 'trackSingleCustom',\n    pixelId: string,\n    eventName: string,\n    parameters?: JsonObject,\n    options?: { eventID?: string }\n  ): void\n}\n\ndeclare global {\n  var fbq: FbqFunction\n}\n\nexport interface FbqCaller {\n  track(event: FacebookStandardEventNames, data: JsonObject, eventID?: string): void\n  trackCustom(event: string, data: JsonObject, eventID?: string): void\n}\n\nexport class Fbq implements FbqCaller {\n  protected pixelId: string\n\n  private constructor(pixelId: string) {\n    this.pixelId = pixelId\n    this.fbq('init', pixelId)\n    this.track('PageView')\n  }\n\n  /**\n   * Gets the instance of the Facebook Pixel (fbq).\n   *\n   * @returns {FbqFunction} The global fbq instance.\n   * @throws Will throw an error if the Fbq instance is not initialized.\n   */\n  static get fbq(): FbqFunction {\n    if (!globalThis.fbq) {\n      throw new Error('Fbq instance not initialized')\n    }\n    return globalThis.fbq\n  }\n\n  /**\n   * Gets the instance of the Facebook Pixel (fbq).\n   *\n   * @returns {FbqFunction} The global fbq instance.\n   * @throws Will throw an error if the Fbq instance is not initialized.\n   */\n  get fbq(): FbqFunction {\n    return Fbq.fbq\n  }\n\n  /**\n   * Initializes the Fbq instance with the given pixel ID.\n   *\n   * @param pixelId - The Facebook Pixel ID to initialize the Fbq instance with.\n   * @returns A new instance of Fbq.\n   * @throws Will throw an error if the Fbq instance is not initialized.\n   */\n  static init(pixelId: string) {\n    if (!globalThis.fbq) {\n      throw new Error('Fbq instance not initialized')\n    }\n    return new Fbq(pixelId)\n  }\n\n  /**\n   * Tracks a Facebook standard event using the Facebook Pixel.\n   * This will call all initialized pixels.\n   *\n   * @param event - The Facebook standard event to track.\n   * @param data - Optional additional data to send with the event.\n   * @param eventID - An optional unique identifier for the event.\n   */\n  static track(event: FacebookStandardEventNames, data?: JsonObject, eventID?: string) {\n    this.fbq(\n      'track',\n      event,\n      data,\n      { eventID },\n    )\n  }\n\n  /**\n   * Tracks a custom event using Facebook's tracking pixel.\n   * This will call all initialized pixels.\n   *\n   * @param event - The name of the custom event to track.\n   * @param data - An object containing additional data to send with the event.\n   * @param eventID - An optional unique identifier for the event.\n   */\n  static trackCustom(event: string, data: JsonObject, eventID?: string) {\n    this.fbq(\n      'trackCustom',\n      event,\n      data,\n      { eventID },\n    )\n  }\n\n  /**\n   * Tracks a specified Facebook standard event using the Facebook Pixel.\n   * This will only call the pixel with the specified eventID.\n   *\n   * @param event - The Facebook standard event to track.\n   * @param data - Optional additional data to send with the event.\n   * @param eventID - An optional unique identifier for the event.\n   */\n  track(event: FacebookStandardEventNames, data?: JsonObject, eventID?: string) {\n    this.fbq(\n      'trackSingle',\n      this.pixelId,\n      event,\n      data,\n      { eventID },\n    )\n  }\n\n  /**\n   * Tracks a custom event using Facebook's tracking pixel.\n   * This will only call the pixel with the specified eventID.\n   *\n   * @param event - The name of the custom event to track.\n   * @param data - An object containing additional data to send with the event.\n   * @param eventID - An optional unique identifier for the event.\n   */\n  trackCustom(event: string, data: JsonObject, eventID?: string) {\n    this.fbq(\n      'trackSingleCustom',\n      this.pixelId,\n      event,\n      data,\n      { eventID },\n    )\n  }\n}\n","import { delay } from '@xylabs/sdk-js'\nimport { type EmptyObject, toSafeJsonObject } from '@xylabs/sdk-js'\n\nimport { FacebookBaseEvent } from './BaseEvent.ts'\n\nclass FacebookCustomEvent<TData extends EmptyObject> extends FacebookBaseEvent<TData> {\n  override async send<T extends TData>(data: T, eventId?: string) {\n    this.fbq.trackCustom(this.name, toSafeJsonObject(data, undefined, 10), eventId)\n    await delay(0) // force async to increase reporting odds\n  }\n}\n\nexport { FacebookCustomEvent }\n","import { delay } from '@xylabs/sdk-js'\nimport { type EmptyObject, toSafeJsonObject } from '@xylabs/sdk-js'\n\nimport { FacebookBaseEvent } from './BaseEvent.ts'\nimport type { FacebookStandardEventNames } from './Fbq.ts'\n\nclass FacebookStandardEvent<T extends EmptyObject> extends FacebookBaseEvent<T, FacebookStandardEventNames> {\n  override async send(data: T, eventId?: string) {\n    this.fbq.track(this.name, toSafeJsonObject(data, undefined, 10), eventId)\n    await delay(0) // force async to increase reporting odds\n  }\n}\n\nexport { FacebookStandardEvent }\n","import type { EmptyObject } from '@xylabs/sdk-js'\n\nimport { FacebookStandardEvent } from './StandardEvent.ts'\n\nexport interface FacebookContentsItem {\n  currency?: string\n  id: string\n  price?: number\n  quantity: number\n}\n\nexport interface FacebookContentProperties extends Record<string, unknown> {\n  content_category?: string\n  content_name?: string\n  content_type?: 'product' | 'product_group'\n}\n\nexport interface FacebookValueProperties extends Record<string, unknown> {\n  currency?: string\n  value?: number\n}\n\nexport interface FacebookCartProperties extends FacebookValueProperties, FacebookContentProperties {\n  content_ids?: (string | number)[]\n  contents?: FacebookContentsItem[]\n  num_items?: number\n}\n\nexport interface FacebookExternalId extends Record<string, string[] | undefined> {\n  external_id?: string[]\n}\n\nexport type FacebookAddPaymentInfo = FacebookCartProperties\n\nexport type FacebookAddToCart = FacebookCartProperties\n\nexport type FacebookAddToWishList = FacebookCartProperties\n\nexport interface FacebookCompleteRegistration extends FacebookValueProperties, FacebookContentProperties {\n  status?: boolean\n}\n\nexport type FacebookInitiateCheckout = FacebookCartProperties\n\nexport interface FacebookLead extends FacebookContentProperties, FacebookValueProperties {}\n\nexport type FacebookPurchase = FacebookCartProperties\n\nexport interface FacebookSearch extends FacebookContentProperties, FacebookValueProperties {\n  search_string?: string\n}\n\nexport interface FacebookStartTrial extends FacebookValueProperties {\n  predicted_ltv?: string\n}\n\nexport interface FacebookSubscribe extends FacebookValueProperties {\n  predicted_ltv?: string\n  subscription_id?: string\n}\n\nexport type FacebookViewContent = FacebookCartProperties\n\nexport class FacebookStandardEvents<T extends EmptyObject> {\n  addPaymentInfo() {\n    return new FacebookStandardEvent<FacebookAddPaymentInfo | T>('AddPaymentInfo')\n  }\n\n  addToCart() {\n    return new FacebookStandardEvent<FacebookAddToCart | T>('AddToCart')\n  }\n\n  addToWishlist() {\n    return new FacebookStandardEvent<FacebookAddToWishList | T>('AddToWishlist')\n  }\n\n  completedRegistration() {\n    return new FacebookStandardEvent<FacebookCompleteRegistration | T>('CompleteRegistration')\n  }\n\n  contact() {\n    return new FacebookStandardEvent<T>('Contact')\n  }\n\n  customizeProduct() {\n    return new FacebookStandardEvent<T>('CustomizeProduct')\n  }\n\n  donate() {\n    return new FacebookStandardEvent<T>('Donate')\n  }\n\n  findLocation() {\n    return new FacebookStandardEvent<T>('FindLocation')\n  }\n\n  initiateCheckout() {\n    return new FacebookStandardEvent<FacebookInitiateCheckout | T>('InitiateCheckout')\n  }\n\n  lead() {\n    return new FacebookStandardEvent<FacebookLead | T>('Lead')\n  }\n\n  pageView() {\n    return new FacebookStandardEvent<T>('PageView')\n  }\n\n  purchase() {\n    return new FacebookStandardEvent<FacebookPurchase | T>('Purchase')\n  }\n\n  schedule() {\n    return new FacebookStandardEvent<T>('Schedule')\n  }\n\n  search() {\n    return new FacebookStandardEvent<FacebookSearch | T>('Search')\n  }\n\n  startTrial() {\n    return new FacebookStandardEvent<FacebookStartTrial | T>('StartTrial')\n  }\n\n  submitApplication() {\n    return new FacebookStandardEvent<T>('SubmitApplication')\n  }\n\n  subscribe() {\n    return new FacebookStandardEvent<FacebookSubscribe | T>('Subscribe')\n  }\n\n  viewContent() {\n    return new FacebookStandardEvent<FacebookViewContent | T>('ViewContent')\n  }\n}\n","import type {\n  FunnelStartedFields, TestStartedFields, UserClickFields, UserEventHandler, ViewContentFields,\n} from '@xylabs/pixel'\nimport type { EmptyObject } from '@xylabs/sdk-js'\n\nimport { FacebookCustomEvent } from './CustomEvent.ts'\n\nclass FacebookUserEventHandler<T extends EmptyObject> implements UserEventHandler<T> {\n  async funnelStarted(data: FunnelStartedFields | T) {\n    const event = new FacebookCustomEvent<FunnelStartedFields | T>('FunnelStarted')\n    return await event.send(data)\n  }\n\n  async testStarted(data: TestStartedFields | T) {\n    const event = new FacebookCustomEvent<TestStartedFields | T>('TestStarted')\n    return await event.send(data)\n  }\n\n  async userClick(data: UserClickFields | T) {\n    const event = new FacebookCustomEvent<UserClickFields | T>('UserClick')\n    return await event.send(data)\n  }\n\n  async viewContent(data: ViewContentFields | T) {\n    const event = new FacebookCustomEvent<ViewContentFields | T>('ViewContent')\n    return await event.send(data)\n  }\n}\n\nexport { FacebookUserEventHandler }\n","import { assertEx } from '@xylabs/sdk-js'\nimport { type EmptyObject, toSafeJsonObject } from '@xylabs/sdk-js'\n\nimport { Gtag } from './Gtag.ts'\nimport { Gtm } from './Gtm.ts'\n\nexport class GoogleBaseEvent<TData extends EmptyObject = EmptyObject> {\n  name: string\n  protected adwordConversionId?: string\n  constructor(name: string, adwordConversionId?: string) {\n    this.name = name\n    this.adwordConversionId = adwordConversionId\n  }\n\n  gtag() {\n    return assertEx(Gtag.instance, () => 'Missing/uninitialized gtag')\n  }\n\n  gtm() {\n    return assertEx(Gtm.instance, () => 'Missing/uninitialized gtm')\n  }\n\n  async send<T extends TData>(data: T) {\n    return await this.sendGtag(data)\n  }\n\n  async sendGtag<T extends TData>(data: T) {\n    const dataJson = toSafeJsonObject(data, undefined, 10)\n    await this.gtag().sendAnalytics(this.name, dataJson)\n    if (this.adwordConversionId) {\n      await this.gtag().sendAdwords(this.adwordConversionId, dataJson)\n    }\n  }\n\n  async sendGtm<T extends TData>(data: T) {\n    await this.gtm().send(this.name, toSafeJsonObject(data, undefined, 10))\n  }\n}\n","import { assertEx } from '@xylabs/sdk-js'\nimport queryString from 'query-string'\n\ndeclare global {\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  var gtag: any\n  var dataLayer: unknown[]\n}\n\nclass Gtag {\n  // disabling since this is a singleton\n  // eslint-disable-next-line sonarjs/public-static-readonly\n  static instance: Gtag\n  awid?: string\n  domains?: string[]\n  ga4id?: string\n\n  private constructor(ga4id: string, awid: string, domains?: string[]) {\n    this.gtag('init', ga4id)\n    this.gtag('init', awid)\n    this.gtag('domains', domains)\n    this.gtag('event', 'page_view')\n\n    // this.gtag('config', awid) - this is configured in the Data Stream in Google Analytics\n    const parsedQueryString = queryString.parse(document.location.search)\n    // we handle the utm_referrer here incase a referrer was forwarded (special.coinapp.co does this)\n    sessionStorage.setItem('initialReferrer', decodeURIComponent(parsedQueryString['utm_referrer']?.toString() ?? document.referrer))\n    delete parsedQueryString['utm_referrer']\n    const remainingSearch = parsedQueryString ? queryString.stringify(parsedQueryString) : ''\n    sessionStorage.setItem('initialQuery', remainingSearch)\n    sessionStorage.setItem('initialPage', document.location.href)\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  static get gtag(): any {\n    if (!globalThis.gtag) {\n      throw new Error('Gtag instance not initialized')\n    }\n    return globalThis.gtag\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  get gtag(): any {\n    return Gtag.gtag\n  }\n\n  static clearDataLayer() {\n    const dataLayer = globalThis.dataLayer\n    dataLayer.length = 0\n  }\n\n  static getInitialPage() {\n    return sessionStorage.getItem('initialPage') || ''\n  }\n\n  static getInitialQuery() {\n    return sessionStorage.getItem('initialQuery') || ''\n  }\n\n  static getInitialReferrer() {\n    return sessionStorage.getItem('initialReferrer') || ''\n  }\n\n  static init(ga4id: string, awid: string, domains?: string[]) {\n    if (!this.instance) {\n      return this.reinit(ga4id, awid, domains)\n    }\n    return this.instance\n  }\n\n  static reinit(ga4id: string, awid: string, domains?: string[]) {\n    this.instance = new Gtag(ga4id, awid, domains)\n    return this.instance\n  }\n\n  static updatePagePath(page_path: string) {\n    const instance = assertEx(this.instance, () => 'Not initialized')\n    return instance.updatePagePath(page_path)\n  }\n\n  sendAdwords(event: string, data: Record<string, unknown>) {\n    return new Promise<void>((resolve) => {\n      this.gtag('event', 'conversion', {\n        ...data,\n        event_timeout: 2000,\n        send_to: `${this.awid}/${event}`,\n      })\n      resolve()\n    })\n  }\n\n  sendAnalytics(event: string, data: Record<string, unknown>) {\n    return new Promise<void>((resolve) => {\n      this.gtag('event', event, {\n        ...data,\n        event_timeout: 2000,\n        page_location: Gtag.getInitialPage(),\n        page_referrer: Gtag.getInitialReferrer(),\n        send_to: this.ga4id,\n      })\n      resolve()\n    })\n  }\n\n  updatePagePath(page_path: string) {\n    const ga4id = assertEx(this.ga4id, () => 'Missing GA4ID')\n    const pathOnly = page_path.split('?')[0]\n    const search = Gtag.getInitialQuery()\n    this.gtag('config', ga4id, { page_path: `${pathOnly}${search}` })\n  }\n}\n\nexport { Gtag }\n","import type { WithDataLayer } from './DataLayer.ts'\n\nclass Gtm {\n  // disabling sonarjs rule since this is a singleton\n  // eslint-disable-next-line sonarjs/public-static-readonly\n  static instance: Gtm\n\n  containerId?: string\n\n  private constructor(containerId: string) {\n    this.containerId = containerId\n    const global = globalThis as WithDataLayer\n    global.dataLayer = global.dataLayer || []\n    global.dataLayer.push({ 'event': 'gtm.ts', 'gtm.start': Date.now() })\n  }\n\n  static clearDataLayer() {\n    const global = globalThis as WithDataLayer\n    const dataLayer = global.dataLayer as []\n    dataLayer.length = 0\n  }\n\n  static getInitialQuery() {\n    return sessionStorage.getItem('initialQuery') || ''\n  }\n\n  static init(containerId: string) {\n    if (!this.instance) {\n      this.instance = new Gtm(containerId)\n    }\n    return this.instance\n  }\n\n  send(event: string, data: Record<string, unknown>, eventTimeout = 500) {\n    return new Promise<void>((resolve) => {\n      const global = globalThis as WithDataLayer\n      global.dataLayer?.push({\n        event,\n        ...data,\n        eventCallback: () => {\n          resolve()\n        },\n        eventTimeout,\n      })\n    })\n  }\n}\n\nexport { Gtm }\n","import type { EmptyObject } from '@xylabs/sdk-js'\n\nimport { GoogleBaseEvent } from './BaseEvent.ts'\n\nclass GoogleCustomEvent<T extends EmptyObject> extends GoogleBaseEvent<T> {}\n\nexport { GoogleCustomEvent }\n","import type { EmptyObject } from '@xylabs/sdk-js'\n\nimport { GoogleBaseEvent } from './BaseEvent.ts'\n\nexport class GoogleStandardEvent<T extends EmptyObject> extends GoogleBaseEvent<T> {}\n","import type { EmptyObject } from '@xylabs/sdk-js'\n\nimport { GoogleStandardEvent } from './StandardEvent.ts'\n\nexport interface GoogleBaseProperties extends Record<string, unknown> {\n  lib: 'xyga'\n}\n\nexport interface GoogleAnalyticsItem {\n  affiliation?: string\n  coupon?: string\n  currency?: string\n  discount?: number\n  item_brand?: string\n  item_category?: string\n  item_id: string\n  item_name: string\n  item_variant?: string\n  price?: number\n  quantity?: number\n}\n\nexport interface GoogleAdwordsItem {\n  google_business_vertical: 'retail'\n  id: string\n}\n\nexport interface GoogleItem extends GoogleAdwordsItem, GoogleAnalyticsItem {}\n\nexport interface GoogleValueProperties extends Record<string, unknown> {\n  currency?: string\n  value?: number\n}\n\nexport interface GoogleItemsProperties extends Record<string, unknown> {\n  items?: GoogleItem[]\n}\n\nexport interface GoogleAddPaymentInfoProperties extends GoogleValueProperties, GoogleItemsProperties {\n  coupon?: string\n  payment_type?: string\n}\n\nexport interface GoogleAddShippingInfoProperties extends GoogleValueProperties, GoogleItemsProperties {\n  coupon?: string\n  shipping_tier?: string\n}\n\nexport interface GoogleCartProperties extends GoogleValueProperties, GoogleItemsProperties {}\n\nexport type GoogleAddToCartProperties = GoogleCartProperties\nexport type GoogleRemoveFromCartProperties = GoogleCartProperties\nexport type GoogleViewCartProperties = GoogleCartProperties\nexport type GoogleViewItemProperties = GoogleCartProperties\n\nexport interface GoogleAddToWishlistProperties extends GoogleValueProperties, GoogleItemsProperties {}\n\nexport interface GoogleEarnVirtualCurrencyProperties extends Record<string, unknown> {\n  value?: number\n  virtual_currency_name?: string\n}\n\nexport interface GoogleSpendVirtualCurrencyProperties extends GoogleEarnVirtualCurrencyProperties {\n  item_name?: string\n}\n\nexport interface GoogleBeginCheckoutProperties extends GoogleValueProperties, GoogleItemsProperties {\n  coupon?: string\n}\n\nexport interface GoogleJoinGroupProperties extends Record<string, unknown> {\n  group_id?: string\n}\n\nexport interface GoogleSelectItemProperties extends GoogleItemsProperties {\n  item_list_id?: string\n  item_list_name?: string\n}\n\nexport interface GoogleViewItemListProperties extends GoogleItemsProperties {\n  item_list_id?: string\n  item_list_name?: string\n}\n\nexport interface GooglePromotionProperties {\n  creative_name?: string\n  creative_slot?: string\n  location_id?: string\n  promotion_id?: string\n  promotion_name?: string\n}\n\nexport interface GoogleSelectPromotionProperties extends GoogleItemsProperties, GooglePromotionProperties {}\n\nexport interface GoogleViewPromotionProperties extends GoogleItemsProperties, GooglePromotionProperties {}\n\nexport interface GooglePurchaseProperties extends GoogleValueProperties, GoogleItemsProperties {\n  affiliation?: string\n  coupon?: string\n  shipping?: number\n  tax?: number\n  transaction_id?: string\n}\n\nexport interface GoogleRefundProperties extends GoogleValueProperties, GoogleItemsProperties {\n  affiliation?: string\n  coupon?: string\n  shipping?: number\n  tax?: number\n  transaction_id?: string\n}\n\nexport class GoogleStandardEvents<T extends EmptyObject> {\n  addPaymentInfo() {\n    return new GoogleStandardEvent<GoogleBaseProperties | GoogleAddPaymentInfoProperties | T>('add_paymennt_info')\n  }\n\n  addShippingInfo() {\n    return new GoogleStandardEvent<GoogleBaseProperties | GoogleAddShippingInfoProperties | T>('add_shipping_info')\n  }\n\n  addToCart() {\n    return new GoogleStandardEvent<GoogleBaseProperties | GoogleAddToCartProperties | T>('add_to_cart')\n  }\n\n  addToWishList() {\n    return new GoogleStandardEvent<GoogleBaseProperties | GoogleAddToWishlistProperties | T>('add_to_wishlist')\n  }\n\n  beginCheckout() {\n    return new GoogleStandardEvent<GoogleBaseProperties | GoogleBeginCheckoutProperties | T>('begin_checkout')\n  }\n\n  earnVirtualCurrency() {\n    return new GoogleStandardEvent<GoogleBaseProperties | GoogleEarnVirtualCurrencyProperties | T>('earn_virtual_currency')\n  }\n\n  generateLead() {\n    return new GoogleStandardEvent<GoogleBaseProperties | GoogleValueProperties | T>('generate_lead')\n  }\n\n  joinGroup() {\n    return new GoogleStandardEvent<GoogleBaseProperties | GoogleJoinGroupProperties | T>('join_group')\n  }\n\n  levelEnd() {\n    return new GoogleStandardEvent<GoogleBaseProperties | { level_name?: string; success?: boolean } | T>('level_end')\n  }\n\n  levelStart() {\n    return new GoogleStandardEvent<GoogleBaseProperties | { level_name?: string } | T>('level_start')\n  }\n\n  levelUp() {\n    return new GoogleStandardEvent<GoogleBaseProperties | { character?: string; level?: number } | T>('level_up')\n  }\n\n  login() {\n    return new GoogleStandardEvent<GoogleBaseProperties | { method?: string } | T>('login')\n  }\n\n  postScore() {\n    return new GoogleStandardEvent<GoogleBaseProperties | { character?: string; level?: number; score: number } | T>('post_score')\n  }\n\n  purchase() {\n    return new GoogleStandardEvent<GoogleBaseProperties | GooglePurchaseProperties | T>('purchase')\n  }\n\n  refund() {\n    return new GoogleStandardEvent<GoogleBaseProperties | GoogleRefundProperties | T>('refund')\n  }\n\n  removeFromCart() {\n    return new GoogleStandardEvent<GoogleBaseProperties | GoogleRemoveFromCartProperties | T>('remove_from_cart')\n  }\n\n  search() {\n    return new GoogleStandardEvent<GoogleBaseProperties | { search_term?: string } | T>('search')\n  }\n\n  selectContent() {\n    return new GoogleStandardEvent<GoogleBaseProperties | { content_type?: string; item_id?: string } | T>('select_content')\n  }\n\n  selectItem() {\n    return new GoogleStandardEvent<GoogleBaseProperties | GoogleSelectItemProperties | T>('select_item')\n  }\n\n  selectPromotion() {\n    return new GoogleStandardEvent<GoogleBaseProperties | GoogleSelectPromotionProperties | T>('select_promotion')\n  }\n\n  share() {\n    return new GoogleStandardEvent<GoogleBaseProperties | { content_is?: string; content_type?: string; method?: string } | T>('share')\n  }\n\n  signUp() {\n    return new GoogleStandardEvent<GoogleBaseProperties | { method?: string } | T>('sign_up')\n  }\n\n  spendVirtualCurrency() {\n    return new GoogleStandardEvent<GoogleBaseProperties | GoogleSpendVirtualCurrencyProperties | T>('spend_virtual_currency')\n  }\n\n  tutorialBegin() {\n    return new GoogleStandardEvent<GoogleBaseProperties | T>('tutorial_begin')\n  }\n\n  tutorialComplete() {\n    return new GoogleStandardEvent<GoogleBaseProperties | T>('tutorial_complete')\n  }\n\n  unlockAchievement() {\n    return new GoogleStandardEvent<GoogleBaseProperties | { achievement_id: string } | T>('unlock_achievement')\n  }\n\n  viewCart() {\n    return new GoogleStandardEvent<GoogleBaseProperties | GoogleViewCartProperties | T>('view_cart')\n  }\n\n  viewItem() {\n    return new GoogleStandardEvent<GoogleBaseProperties | GoogleViewItemProperties | T>('view_item')\n  }\n\n  viewItemList() {\n    return new GoogleStandardEvent<GoogleBaseProperties | GoogleViewItemListProperties | T>('view_item_list')\n  }\n\n  viewPromotion() {\n    return new GoogleStandardEvent<GoogleBaseProperties | GoogleViewPromotionProperties | T>('view_promotion')\n  }\n}\n","import type {\n  FunnelStartedFields, TestStartedFields, UserClickFields, UserEventHandler, ViewContentFields,\n} from '@xylabs/pixel'\nimport { type EmptyObject } from '@xylabs/sdk-js'\n\nimport { GoogleCustomEvent } from './CustomEvent.ts'\n\nclass GoogleUserEventHandler<T extends EmptyObject> implements UserEventHandler<T> {\n  async funnelStarted(data: FunnelStartedFields | T) {\n    const event = new GoogleCustomEvent<FunnelStartedFields | T>('FunnelStarted')\n    return await event.send(data)\n  }\n\n  async testStarted(data: TestStartedFields | T) {\n    const event = new GoogleCustomEvent<TestStartedFields | T>('TestStarted')\n    return await event.send(data)\n  }\n\n  async userClick(data: UserClickFields | T) {\n    const event = new GoogleCustomEvent<UserClickFields | T>('UserClick')\n    return await event.send(data)\n  }\n\n  async viewContent(data: ViewContentFields | T) {\n    const event = new GoogleCustomEvent<ViewContentFields | T>('ViewContent')\n    return await event.send(data)\n  }\n}\n\nexport { GoogleUserEventHandler }\n","import { type EmptyObject, toSafeJsonObject } from '@xylabs/sdk-js'\nimport type { Mixpanel } from 'mixpanel-browser'\n\nclass MixpanelBaseEvent<T extends EmptyObject> {\n  protected mixpanel: Mixpanel\n  protected name: string\n\n  constructor(name: string, mixpanel: Mixpanel) {\n    this.name = name\n    this.mixpanel = mixpanel\n  }\n\n  send(fields: T) {\n    this.mixpanel.track(this.name, toSafeJsonObject(fields, undefined, 10))\n  }\n}\n\nexport { MixpanelBaseEvent }\n","import type { EmptyObject } from '@xylabs/sdk-js'\n\nimport { MixpanelBaseEvent } from './BaseEvent.ts'\n\nexport class MixpanelCustomEvent<T extends EmptyObject> extends MixpanelBaseEvent<T> {}\n","import { type EmptyObject, toSafeJsonObject } from '@xylabs/sdk-js'\nimport type { Mixpanel } from 'mixpanel-browser'\n\nclass MixpanelPageViewEvent<T extends EmptyObject> {\n  protected mixpanel: Mixpanel\n\n  constructor(mixpanel: Mixpanel) {\n    this.mixpanel = mixpanel\n  }\n\n  send(fields: T) {\n    this.mixpanel.track_pageview(toSafeJsonObject(fields, undefined, 10))\n  }\n}\n\nexport { MixpanelPageViewEvent }\n","import type {\n  FunnelStartedFields, PurchaseFields,\n  TestStartedFields,\n  UserClickFields, UserEventHandler, ViewContentFields,\n} from '@xylabs/pixel'\nimport { type EmptyObject } from '@xylabs/sdk-js'\nimport type { Mixpanel } from 'mixpanel-browser'\n\nimport { MixpanelCustomEvent } from './CustomEvent.ts'\n\nexport class MixpanelUserEventHandler<T extends EmptyObject> implements UserEventHandler<T> {\n  private mixpanel: Mixpanel\n  constructor(mixpanel: Mixpanel) {\n    this.mixpanel = mixpanel\n  }\n\n  async funnelStarted(data: FunnelStartedFields | T) {\n    const event = new MixpanelCustomEvent<FunnelStartedFields | T>('FunnelStarted', this.mixpanel)\n    return await event.send(data)\n  }\n\n  async purchase(data: PurchaseFields | T) {\n    const event = new MixpanelCustomEvent<PurchaseFields | T>('Purchase', this.mixpanel)\n    return await event.send(data)\n  }\n\n  async testStarted(data: TestStartedFields | T) {\n    const event = new MixpanelCustomEvent<TestStartedFields | T>('TestStarted', this.mixpanel)\n    return await event.send(data)\n  }\n\n  async userClick(data: UserClickFields | T) {\n    const event = new MixpanelCustomEvent<UserClickFields | T>('UserClick', this.mixpanel)\n    return await event.send(data)\n  }\n\n  async viewContent(data: ViewContentFields | T) {\n    const event = new MixpanelCustomEvent<ViewContentFields | T>('ViewContent', this.mixpanel)\n    return await event.send(data)\n  }\n}\n","import { assertEx, delay } from '@xylabs/sdk-js'\n\nimport { Rdt } from './Rdt.ts'\n\nclass RedditBaseEvent<T> {\n  name: string\n  rdt: Rdt\n  constructor(name: string) {\n    this.name = name\n    this.rdt = assertEx(Rdt.instance, () => 'Missing Rdt')\n  }\n\n  async send(_data: T) {\n    await delay(0) // force async to increase reporting odds\n  }\n}\n\nexport { RedditBaseEvent }\n","class Rdt {\n  // disabling sonarjs rule since this is a singleton\n  // eslint-disable-next-line sonarjs/public-static-readonly\n  static instance: Rdt\n  static init(pixelId: string) {\n    try {\n      Rdt.instance = new Rdt()\n      Rdt.instance.load(pixelId)\n      Rdt.instance.track('PageVisit')\n    } catch (ex) {\n      console.error(ex)\n    }\n  }\n\n  private static getRdt() {\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    const global = globalThis as any\n    if (global.rdt) {\n      return global.rdt\n    }\n    console.warn('Missing rdt')\n  }\n\n  load(id: string) {\n    try {\n      Rdt.getRdt()('init', id)\n    } catch (ex) {\n      console.error(ex)\n    }\n  }\n\n  track(event: string, data?: Record<string, unknown>) {\n    try {\n      Rdt.getRdt()('track', event, { ...data })\n    } catch (ex) {\n      console.error(ex)\n    }\n  }\n}\n\nexport { Rdt }\n","import { delay } from '@xylabs/sdk-js'\n\nimport { RedditBaseEvent } from './BaseEvent.ts'\n\nclass RedditCustomEvent<T extends Record<string, unknown>> extends RedditBaseEvent<T> {\n  override async send(data: T) {\n    this.rdt.track(this.name, data)\n    await delay(0) // force async to increase reporting odds\n  }\n}\n\nexport { RedditCustomEvent }\n","import { delay } from '@xylabs/sdk-js'\n\nimport { RedditBaseEvent } from './BaseEvent.ts'\n\nclass RedditStandardEvent<T extends Record<string, unknown>> extends RedditBaseEvent<T> {\n  override async send(data: T) {\n    this.rdt.track(this.name, data)\n    await delay(0) // force async to increase reporting odds\n  }\n}\n\nexport { RedditStandardEvent }\n","import { RedditStandardEvent } from './StandardEvent.ts'\n\nclass RedditStandardEvents<T extends Record<string, unknown>> {\n  addToCart() {\n    return new RedditStandardEvent<T>('AddToCart')\n  }\n\n  addToWishlist() {\n    return new RedditStandardEvent<T>('AddToWishlist')\n  }\n\n  lead() {\n    return new RedditStandardEvent<T>('Lead')\n  }\n\n  pageView() {\n    return new RedditStandardEvent<T>('PageView')\n  }\n\n  purchase() {\n    return new RedditStandardEvent<T>('Purchase')\n  }\n\n  search() {\n    return new RedditStandardEvent<T>('Search')\n  }\n\n  signup() {\n    return new RedditStandardEvent<T>('SignUp')\n  }\n\n  viewContent() {\n    return new RedditStandardEvent<T>('ViewContent')\n  }\n}\n\nexport { RedditStandardEvents }\n","export class Referrer {\n  private static storageId = '_coin_referrer'\n  local: string\n  session: string\n  constructor() {\n    this.session = this.getFromSession() ?? document.referrer\n    sessionStorage.setItem(Referrer.storageId, this.session)\n    this.local = this.getFromLocal() ?? document.referrer\n    localStorage.setItem(Referrer.storageId, this.local)\n  }\n\n  toJson() {\n    if ((this.local && this.local.length > 0) || (this.session && this.session.length > 0)) {\n      return {\n        local: this.local,\n        session: this.session,\n      }\n    }\n  }\n\n  private getFromLocal() {\n    const value = localStorage.getItem(Referrer.storageId)\n    if (value && value.length > 0) {\n      return value\n    }\n  }\n\n  private getFromSession() {\n    const value = sessionStorage.getItem(Referrer.storageId)\n    if (value && value.length > 0) {\n      return value\n    }\n  }\n}\n","import { delay } from '@xylabs/sdk-js'\n\nclass SnapchatBaseEvent<T> {\n  name: string\n  constructor(name: string) {\n    this.name = name\n  }\n\n  async send(_data: T) {\n    await delay(0) // force async to increase reporting odds\n  }\n}\n\nexport { SnapchatBaseEvent }\n","import { delay } from '@xylabs/sdk-js'\n\nclass SnapTr {\n  static readonly instance: SnapTr\n  static getSnapTr() {\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    const global = globalThis as any\n    if (global.snaptr) {\n      return global.snaptr\n    }\n    console.warn('Missing snaptr')\n  }\n\n  static async track<T>(event: string, data?: T) {\n    this.getSnapTr()('track', event, data)\n    await delay(0)\n  }\n}\n\nexport { SnapTr }\n","import { SnapchatBaseEvent } from './BaseEvent.ts'\nimport { SnapTr } from './Snaptr.ts'\nimport type { SnapchatStandardProperties } from './StandardProperties.ts'\n\nexport class SnapchatStandardEvent<T extends SnapchatStandardProperties> extends SnapchatBaseEvent<T> {\n  override async send(data: T) {\n    await SnapTr.track(this.name, data)\n  }\n}\n","import { SnapchatStandardEvent } from './StandardEvent.ts'\nimport type { SnapchatStandardProperties } from './StandardProperties.ts'\n\nexport class SnapchatStandardEvents<T extends SnapchatStandardProperties> {\n  achievementUnlocked() {\n    return new SnapchatStandardEvent<T>('ACHIEVEMENT_UNLOCKED')\n  }\n\n  adClick() {\n    return new SnapchatStandardEvent<T>('AD_CLICK')\n  }\n\n  adView() {\n    return new SnapchatStandardEvent<T>('AD_VIEW')\n  }\n\n  addBilling() {\n    return new SnapchatStandardEvent<T>('ADD_BILLING')\n  }\n\n  addCart() {\n    return new SnapchatStandardEvent<T>('ADD_CART')\n  }\n\n  addToWishlist() {\n    return new SnapchatStandardEvent<T>('ADD_TO_WISHLIST')\n  }\n\n  completeTutorial() {\n    return new SnapchatStandardEvent<T>('COMPLETE_TUTORIAL')\n  }\n\n  custom1() {\n    return new SnapchatStandardEvent<T>('CUSTOM_EVENT_1')\n  }\n\n  custom2() {\n    return new SnapchatStandardEvent<T>('CUSTOM_EVENT_2')\n  }\n\n  custom3() {\n    return new SnapchatStandardEvent<T>('CUSTOM_EVENT_3')\n  }\n\n  custom4() {\n    return new SnapchatStandardEvent<T>('CUSTOM_EVENT_4')\n  }\n\n  custom5() {\n    return new SnapchatStandardEvent<T>('CUSTOM_EVENT_5')\n  }\n\n  invite() {\n    return new SnapchatStandardEvent<T>('INVITE')\n  }\n\n  listView() {\n    return new SnapchatStandardEvent<T>('LIST_VIEW')\n  }\n\n  login() {\n    return new SnapchatStandardEvent<T>('LOGIN')\n  }\n\n  openApp() {\n    return new SnapchatStandardEvent<T>('OPEN_APP')\n  }\n\n  pageView() {\n    return new SnapchatStandardEvent<T>('PAGE_VIEW')\n  }\n\n  purchase() {\n    return new SnapchatStandardEvent<T>('PURCHASE')\n  }\n\n  rate() {\n    return new SnapchatStandardEvent<T>('RATE')\n  }\n\n  reserve() {\n    return new SnapchatStandardEvent<T>('RESERVE')\n  }\n\n  save() {\n    return new SnapchatStandardEvent<T>('SAVE')\n  }\n\n  search() {\n    return new SnapchatStandardEvent<T>('SEARCH')\n  }\n\n  share() {\n    return new SnapchatStandardEvent<T>('SHARE')\n  }\n\n  signUp() {\n    return new SnapchatStandardEvent<T>('SIGN_UP')\n  }\n\n  spentCredits() {\n    return new SnapchatStandardEvent<T>('SPENT_CREDITS')\n  }\n\n  startCheckout() {\n    return new SnapchatStandardEvent<T>('START_CHECKOUT')\n  }\n\n  startTrial() {\n    return new SnapchatStandardEvent<T>('START_TRIAL')\n  }\n\n  subscribe() {\n    return new SnapchatStandardEvent<T>('SUBSCRIBE')\n  }\n\n  viewContent() {\n    return new SnapchatStandardEvent<T>('VIEW_CONTENT')\n  }\n}\n","class EF {\n  // disable since we want a singleton\n  // eslint-disable-next-line sonarjs/public-static-readonly\n  static instance: EF\n\n  static getEF() {\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    const global = globalThis as any\n    if (global.EF) {\n      return global.EF\n    }\n    console.warn('Missing EF')\n  }\n\n  static init() {\n    try {\n      EF.instance = new EF()\n    } catch (ex) {\n      console.error(`EF.init: ${ex}`)\n    }\n  }\n\n  track(event: string, data?: Record<string, unknown>) {\n    switch (event) {\n      case 'Purchase': {\n        this.sendConversion(data)\n        break\n      }\n      default: {\n        console.error(`EF.track: missing event ${event}`)\n      }\n    }\n  }\n\n  private sendConversion(data?: Record<string, unknown>) {\n    try {\n      // data: have session_id, tracking_id, order_id, amount\n      const ef = EF.getEF()\n      ef.conversion({ ...data })\n    } catch (ex) {\n      console.error(`EF.conversion: ${ex}`)\n    }\n  }\n}\n\nexport { EF }\n","import { delay } from '@xylabs/sdk-js'\n\nimport { TapjoyBaseEvent } from './BaseEvent.ts'\nclass TapjoyStandardEvent<T extends Record<string, unknown>> extends TapjoyBaseEvent<T> {\n  override async send(data: T) {\n    this.ef.track(this.name, data)\n    await delay(0)\n  }\n}\n\nexport { TapjoyStandardEvent }\n","import { assertEx, delay } from '@xylabs/sdk-js'\n\nimport { EF } from './EF.ts'\n\nclass TapjoyBaseEvent<T> {\n  ef: EF\n  name: string\n\n  constructor(name: string) {\n    this.name = name\n    this.ef = assertEx(EF.instance, () => 'Missing Tapjoy Eventflow')\n  }\n\n  async send(_data: T) {\n    await delay(0)\n  }\n}\n\nexport { TapjoyBaseEvent }\n","import { TapjoyStandardEvent } from './StandardEvent.ts'\n\nclass TapjoyStandardEvents<T extends Record<string, unknown>> {\n  accountCreated() {\n    return new TapjoyStandardEvent<T>('Conversion')\n  }\n}\n\nexport { TapjoyStandardEvents }\n","import { assertEx, delay } from '@xylabs/sdk-js'\n\nimport { Ttq } from './Ttq.ts'\n\nexport class TiktokBaseEvent<T> {\n  name: string\n  ttq: Ttq\n  constructor(name: string) {\n    this.name = name\n    this.ttq = assertEx(Ttq.instance, () => 'Missing Ttq')\n  }\n\n  async send(_data: T) {\n    await delay(0) // force async to increase reporting odds\n  }\n}\n","class Ttq {\n  // disabling sonarjs rule because we want to have a singleton\n  // eslint-disable-next-line sonarjs/public-static-readonly\n  static instance: Ttq\n\n  static getTtq() {\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    const global = globalThis as any\n    if (global.ttq) {\n      return global.ttq\n    }\n    console.warn('Missing ttq')\n  }\n\n  static init(pixelId: string) {\n    try {\n      Ttq.instance = new Ttq()\n      Ttq.getTtq().load(pixelId)\n      Ttq.page()\n    } catch (ex) {\n      console.error(`Ttq.init: ${ex}`)\n    }\n  }\n\n  static page() {\n    try {\n      Ttq.getTtq().page()\n    } catch (ex) {\n      console.error(`Ttq.page: ${ex}`)\n    }\n  }\n\n  track(event: string, data?: Record<string, unknown>) {\n    try {\n      Ttq.getTtq().track(event, { ...data })\n    } catch (ex) {\n      console.error(`Ttq.track: ${ex}`)\n    }\n  }\n}\n\nexport { Ttq }\n","import { delay } from '@xylabs/sdk-js'\n\nimport { TiktokBaseEvent } from './BaseEvent.ts'\n\nclass TiktokCustomEvent<T extends Record<string, unknown>> extends TiktokBaseEvent<T> {\n  override async send(data: T) {\n    this.ttq.track(this.name, data)\n    await delay(0) // force async to increase reporting odds\n  }\n}\n\nexport { TiktokCustomEvent }\n","import { delay } from '@xylabs/sdk-js'\n\nimport { TiktokBaseEvent } from './BaseEvent.ts'\n\nexport class TiktokStandardEvent<T extends Record<string, unknown>> extends TiktokBaseEvent<T> {\n  override async send(data: T) {\n    this.ttq.track(this.name, data)\n    await delay(0) // force async to increase reporting odds\n  }\n}\n","import { TiktokStandardEvent } from './StandardEvent.ts'\n\nexport class TiktokStandardEvents<T extends Record<string, unknown>> {\n  addBilling() {\n    return new TiktokStandardEvent<T>('AddBilling')\n  }\n\n  addToCart() {\n    return new TiktokStandardEvent<T>('AddToCart')\n  }\n\n  checkout() {\n    return new TiktokStandardEvent<T>('Checkout')\n  }\n\n  clickButton() {\n    return new TiktokStandardEvent<T>('ClickButton')\n  }\n\n  clickForm() {\n    return new TiktokStandardEvent<T>('ClickForm')\n  }\n\n  clickInDownloadPage() {\n    return new TiktokStandardEvent<T>('ClickInDownloadPage')\n  }\n\n  clickToDownload() {\n    return new TiktokStandardEvent<T>('ClickToDownload')\n  }\n\n  pageView() {\n    return new TiktokStandardEvent<T>('Browse')\n  }\n\n  purchase() {\n    return new TiktokStandardEvent<T>('Purchase')\n  }\n\n  registration() {\n    return new TiktokStandardEvent<T>('Registration')\n  }\n\n  search() {\n    return new TiktokStandardEvent<T>('Search')\n  }\n\n  startCheckout() {\n    return new TiktokStandardEvent<T>('StartCheckout')\n  }\n\n  submitForm() {\n    return new TiktokStandardEvent<T>('SubmitForm')\n  }\n\n  viewContent() {\n    return new TiktokStandardEvent<T>('ViewContent')\n  }\n\n  viewDownloadPage() {\n    return new TiktokStandardEvent<T>('ViewDownloadPage')\n  }\n\n  viewForm() {\n    return new TiktokStandardEvent<T>('ViewForm')\n  }\n}\n","import { XyPixel } from '@xylabs/pixel'\nimport { type EmptyObject, toSafeJsonObject } from '@xylabs/sdk-js'\n\nclass XyBaseEvent<T extends EmptyObject> {\n  private name: string\n  constructor(name: string) {\n    this.name = name\n  }\n\n  async send(fields: T, eventId?: string) {\n    await XyPixel.instance.send(this.name, toSafeJsonObject(fields, undefined, 10), eventId)\n  }\n}\n\nexport { XyBaseEvent }\n","import type { EmptyObject } from '@xylabs/sdk-js'\n\nimport { XyBaseEvent } from './BaseEvent.ts'\n\nclass XyCustomEvent<T extends EmptyObject> extends XyBaseEvent<T> {}\n\nexport { XyCustomEvent }\n","import type {\n  FunnelStartedFields, PurchaseFields,\n  TestStartedFields,\n  UserClickFields, UserEventHandler, ViewContentFields,\n} from '@xylabs/pixel'\nimport { type EmptyObject } from '@xylabs/sdk-js'\n\nimport { XyCustomEvent } from './CustomEvent.ts'\n\nclass XyUserEventHandler<T extends EmptyObject> implements UserEventHandler<T> {\n  async funnelStarted(data: FunnelStartedFields | T) {\n    const event = new XyCustomEvent<FunnelStartedFields | T>('FunnelStarted')\n    return await event.send(data)\n  }\n\n  async purchase(data: PurchaseFields | T) {\n    const event = new XyCustomEvent<PurchaseFields | T>('TestStarted')\n    return await event.send(data)\n  }\n\n  async testStarted(data: TestStartedFields | T) {\n    const event = new XyCustomEvent<TestStartedFields | T>('TestStarted')\n    return await event.send(data)\n  }\n\n  async userClick(data: UserClickFields | T) {\n    const event = new XyCustomEvent<UserClickFields | T>('UserClick')\n    return await event.send(data)\n  }\n\n  async viewContent(data: ViewContentFields | T) {\n    const event = new XyCustomEvent<ViewContentFields | T>('ViewContent')\n    return await event.send(data)\n  }\n}\n\nexport { XyUserEventHandler }\n","import type {\n  FunnelStartedFields, TestStartedFields, UserClickFields, ViewContentFields,\n} from '@xylabs/pixel'\nimport { UserEventHandler } from '@xylabs/pixel'\nimport type { EmptyObject } from '@xylabs/sdk-js'\n\nimport { FacebookUserEventHandler } from './Facebook/index.ts'\nimport { GoogleUserEventHandler } from './Google/index.ts'\n\nclass XyoUserEventHandler<T extends EmptyObject> extends UserEventHandler<T> {\n  // disabling since we are using singleton pattern\n  // eslint-disable-next-line sonarjs/public-static-readonly\n  static instance: XyoUserEventHandler<EmptyObject>\n\n  protected handlers: UserEventHandler<T>[]\n\n  private constructor(handlers: UserEventHandler<T>[] = []) {\n    super()\n    this.handlers = handlers ?? [new FacebookUserEventHandler<T>(), new GoogleUserEventHandler<T>()]\n  }\n\n  static get() {\n    this.instance = this.instance ?? new XyoUserEventHandler()\n    return this.instance\n  }\n\n  async funnelStarted(data: T | FunnelStartedFields) {\n    await Promise.allSettled(this.handlers.map(handler => handler.funnelStarted(data)))\n  }\n\n  async testStarted(data: T | TestStartedFields) {\n    await Promise.allSettled(this.handlers.map(handler => handler.testStarted(data)))\n  }\n\n  async userClick(data: T | UserClickFields) {\n    await Promise.allSettled(this.handlers.map(handler => handler.userClick(data)))\n  }\n\n  async viewContent(data: T | ViewContentFields) {\n    await Promise.allSettled(this.handlers.map(handler => handler.viewContent(data)))\n  }\n}\n\nexport { XyoUserEventHandler }\n","import type { UserEventHandler } from '@xylabs/pixel'\nimport type { EmptyObject } from '@xylabs/sdk-js'\nimport { use } from 'react'\n\nimport { UserEventsContext } from '../contexts/index.ts'\n\nexport function useUserEvents<T extends EmptyObject>(): UserEventHandler<T> | undefined\nexport function useUserEvents<T extends EmptyObject>(required: true): UserEventHandler<T>\nexport function useUserEvents<T extends EmptyObject>(required?: false | 'warn'): UserEventHandler<T> | undefined\nexport function useUserEvents<T extends EmptyObject>(required: boolean | 'warn' = 'warn'): UserEventHandler<T> | undefined {\n  const { userEvents } = use(UserEventsContext)\n  if (!userEvents) {\n    if (required === 'warn') {\n      console.warn('No UserEvents instance found in context')\n    } else if (required === true) {\n      throw new Error('No UserEvents instance found in context')\n    }\n  }\n  return userEvents\n}\n"],"mappings":"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","names":["delay","delay","delay","delay","delay","toSafeJsonObject","toSafeJsonObject","delay","assertEx","toSafeJsonObject","assertEx","toSafeJsonObject","toSafeJsonObject","toSafeJsonObject","assertEx","delay","assertEx","delay","delay","delay","delay","delay","delay","delay","delay","assertEx","delay","assertEx","delay","delay","assertEx","delay","assertEx","delay","delay","delay","delay","delay","toSafeJsonObject"]}