shopkit-analytics 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +258 -3
  2. package/dist/adapters/index.d.mts +2 -2
  3. package/dist/adapters/index.d.ts +2 -2
  4. package/dist/adapters/index.js +1039 -600
  5. package/dist/adapters/index.js.map +1 -1
  6. package/dist/adapters/index.mjs +2 -2
  7. package/dist/{chunk-3TQR5DOP.mjs → chunk-3NR2AKE4.mjs} +1 -31
  8. package/dist/chunk-3NR2AKE4.mjs.map +1 -0
  9. package/dist/{chunk-P4OJDCEZ.mjs → chunk-BNV3EVHH.mjs} +3 -3
  10. package/dist/{chunk-JVEGG6JV.mjs → chunk-HCA4E2RA.mjs} +19 -13
  11. package/dist/chunk-HCA4E2RA.mjs.map +1 -0
  12. package/dist/{chunk-4MZH5OLR.mjs → chunk-U3UOXFS4.mjs} +1040 -603
  13. package/dist/chunk-U3UOXFS4.mjs.map +1 -0
  14. package/dist/events/index.d.mts +9 -41
  15. package/dist/events/index.d.ts +9 -41
  16. package/dist/events/index.js +801 -490
  17. package/dist/events/index.js.map +1 -1
  18. package/dist/events/index.mjs +5 -7
  19. package/dist/{index-GODWc1s6.d.mts → index-Bym1_EAp.d.mts} +74 -17
  20. package/dist/{index-BnNRgdUv.d.ts → index-DS9OI5Mz.d.ts} +74 -17
  21. package/dist/index.d.mts +6 -6
  22. package/dist/index.d.ts +6 -6
  23. package/dist/index.js +1057 -645
  24. package/dist/index.js.map +1 -1
  25. package/dist/index.mjs +4 -6
  26. package/dist/index.mjs.map +1 -1
  27. package/dist/{subscriber-43gnCKWe.d.ts → subscriber-BDAm_BAi.d.ts} +38 -2
  28. package/dist/{subscriber-sWesj_5p.d.mts → subscriber-BoyOlh9t.d.mts} +38 -2
  29. package/dist/subscriber-VF3IYUCU.mjs +8 -0
  30. package/dist/types.d.mts +4 -340
  31. package/dist/types.d.ts +4 -340
  32. package/dist/types.js +0 -30
  33. package/dist/types.js.map +1 -1
  34. package/dist/types.mjs +1 -1
  35. package/package.json +2 -3
  36. package/dist/chunk-3TQR5DOP.mjs.map +0 -1
  37. package/dist/chunk-4MZH5OLR.mjs.map +0 -1
  38. package/dist/chunk-JVEGG6JV.mjs.map +0 -1
  39. package/dist/subscriber-IFZJU57V.mjs +0 -8
  40. /package/dist/{chunk-P4OJDCEZ.mjs.map → chunk-BNV3EVHH.mjs.map} +0 -0
  41. /package/dist/{subscriber-IFZJU57V.mjs.map → subscriber-VF3IYUCU.mjs.map} +0 -0
@@ -1,7 +1,14 @@
1
1
  "use client";
2
2
 
3
3
  // src/logger/index.ts
4
- import pino from "pino";
4
+ var LOG_LEVELS = {
5
+ trace: 10,
6
+ debug: 20,
7
+ info: 30,
8
+ warn: 40,
9
+ error: 50,
10
+ fatal: 60
11
+ };
5
12
  var NoOpLogger = class _NoOpLogger {
6
13
  trace() {
7
14
  }
@@ -19,92 +26,109 @@ var NoOpLogger = class _NoOpLogger {
19
26
  return new _NoOpLogger();
20
27
  }
21
28
  };
22
- var PinoLogger = class _PinoLogger {
23
- constructor(logger2) {
24
- this.logger = logger2;
29
+ var UniversalLogger = class _UniversalLogger {
30
+ constructor(config, bindings = {}) {
31
+ this.config = config;
32
+ this.bindings = bindings;
33
+ }
34
+ shouldLog(level) {
35
+ return LOG_LEVELS[level] >= LOG_LEVELS[this.config.level];
36
+ }
37
+ formatMessage(level, message, args, error) {
38
+ const timestamp = (/* @__PURE__ */ new Date()).toISOString();
39
+ const name = this.config.name;
40
+ let logMessage = this.config.prettyPrint ? `[${timestamp}] ${level.toUpperCase()} [${name}]: ${message}` : JSON.stringify({
41
+ timestamp,
42
+ level,
43
+ name,
44
+ message,
45
+ ...this.bindings,
46
+ ...args.length > 0 && { args },
47
+ ...error && {
48
+ error: { message: error.message, stack: error.stack }
49
+ }
50
+ });
51
+ if (this.config.prettyPrint && args.length > 0) {
52
+ logMessage += ` ${args.map(
53
+ (arg) => typeof arg === "object" ? JSON.stringify(arg) : String(arg)
54
+ ).join(" ")}`;
55
+ }
56
+ if (this.config.prettyPrint && error) {
57
+ logMessage += ` Error: ${error.message}`;
58
+ if (error.stack) {
59
+ logMessage += `
60
+ ${error.stack}`;
61
+ }
62
+ }
63
+ return this.redactSensitiveData(logMessage);
64
+ }
65
+ redactSensitiveData(message) {
66
+ let redactedMessage = message;
67
+ for (const field of this.config.redact) {
68
+ const regex = new RegExp(`"${field}"\\s*:\\s*"[^"]*"`, "gi");
69
+ redactedMessage = redactedMessage.replace(
70
+ regex,
71
+ `"${field}":"[REDACTED]"`
72
+ );
73
+ }
74
+ return redactedMessage;
75
+ }
76
+ log(level, message, args, error) {
77
+ if (!this.shouldLog(level)) return;
78
+ const formattedMessage = this.formatMessage(level, message, args, error);
79
+ switch (level) {
80
+ case "trace":
81
+ console.trace(formattedMessage);
82
+ break;
83
+ case "debug":
84
+ console.debug(formattedMessage);
85
+ break;
86
+ case "info":
87
+ console.info(formattedMessage);
88
+ break;
89
+ case "warn":
90
+ console.warn(formattedMessage);
91
+ break;
92
+ case "error":
93
+ case "fatal":
94
+ console.error(formattedMessage);
95
+ break;
96
+ }
25
97
  }
26
98
  trace(message, ...args) {
27
- this.logger.trace({ args }, message);
99
+ this.log("trace", message, args);
28
100
  }
29
101
  debug(message, ...args) {
30
- this.logger.debug({ args }, message);
102
+ this.log("debug", message, args);
31
103
  }
32
104
  info(message, ...args) {
33
- this.logger.info({ args }, message);
105
+ this.log("info", message, args);
34
106
  }
35
107
  warn(message, ...args) {
36
- this.logger.warn({ args }, message);
108
+ this.log("warn", message, args);
37
109
  }
38
110
  error(message, error, ...args) {
39
- this.logger.error({ error, args }, message);
111
+ this.log("error", message, args, error);
40
112
  }
41
113
  fatal(message, error, ...args) {
42
- this.logger.fatal({ error, args }, message);
114
+ this.log("fatal", message, args, error);
43
115
  }
44
116
  child(bindings) {
45
- return new _PinoLogger(this.logger.child(bindings));
117
+ return new _UniversalLogger(this.config, { ...this.bindings, ...bindings });
46
118
  }
47
119
  };
48
120
  function createLogger(config = {}) {
49
- const {
50
- level = "info",
51
- enabled = true,
52
- name = "@shopkit/analytics",
53
- prettyPrint = false,
54
- redact = []
55
- } = config;
56
- if (!enabled) {
57
- return new NoOpLogger();
58
- }
59
- const pinoConfig = {
60
- name,
61
- level,
62
- redact,
63
- browser: {
64
- asObject: true,
65
- serialize: true,
66
- write: {
67
- trace: (o) => console.trace(formatBrowserLog(o)),
68
- debug: (o) => console.debug(formatBrowserLog(o)),
69
- info: (o) => console.info(formatBrowserLog(o)),
70
- warn: (o) => console.warn(formatBrowserLog(o)),
71
- error: (o) => console.error(formatBrowserLog(o)),
72
- fatal: (o) => console.error(formatBrowserLog(o))
73
- }
74
- }
121
+ const fullConfig = {
122
+ level: config.level || "info",
123
+ enabled: config.enabled !== false,
124
+ name: config.name || "@shopkit/analytics",
125
+ prettyPrint: config.prettyPrint || false,
126
+ redact: config.redact || []
75
127
  };
76
- if (prettyPrint && typeof window === "undefined") {
77
- pinoConfig.transport = {
78
- target: "pino-pretty",
79
- options: {
80
- colorize: true,
81
- translateTime: "HH:MM:ss Z",
82
- ignore: "pid,hostname"
83
- }
84
- };
85
- }
86
- const pinoLogger = pino(pinoConfig);
87
- return new PinoLogger(pinoLogger);
88
- }
89
- function formatBrowserLog(logObj) {
90
- const { level, time, msg, name, args, error, ...rest } = logObj;
91
- let message = `[${name}] ${msg}`;
92
- if (args && args.length > 0) {
93
- message += ` ${args.map(
94
- (arg) => typeof arg === "object" ? JSON.stringify(arg) : String(arg)
95
- ).join(" ")}`;
96
- }
97
- if (error) {
98
- message += ` Error: ${error.message}`;
99
- if (error.stack) {
100
- message += `
101
- ${error.stack}`;
102
- }
103
- }
104
- if (Object.keys(rest).length > 0) {
105
- message += ` ${JSON.stringify(rest)}`;
128
+ if (!fullConfig.enabled) {
129
+ return new NoOpLogger();
106
130
  }
107
- return message;
131
+ return new UniversalLogger(fullConfig);
108
132
  }
109
133
  var logger = createLogger({
110
134
  enabled: true,
@@ -153,6 +177,38 @@ var BaseAdapter = class {
153
177
  isEnabled() {
154
178
  return this.initialized;
155
179
  }
180
+ /**
181
+ * Extract adapter-specific parameters for this adapter
182
+ * @param params The adapter parameters object
183
+ * @returns Adapter-specific parameters or empty object
184
+ */
185
+ getAdapterParams(params) {
186
+ return params?.[this.name] || {};
187
+ }
188
+ /**
189
+ * Get custom event name or fall back to default
190
+ * @param params The adapter parameters object
191
+ * @param defaultName The default event name to use
192
+ * @returns Custom event name or default
193
+ */
194
+ getEventName(params, defaultName) {
195
+ const adapterParams = this.getAdapterParams(params);
196
+ return adapterParams.event_name || defaultName;
197
+ }
198
+ /**
199
+ * Merge standard event data with adapter-specific parameters
200
+ * @param params The adapter parameters object
201
+ * @param standardData The standard event data
202
+ * @returns Merged data with adapter-specific overrides
203
+ */
204
+ mergeEventData(standardData, params) {
205
+ const adapterParams = this.getAdapterParams(params);
206
+ const { event_name, ...customParams } = adapterParams;
207
+ return {
208
+ ...standardData,
209
+ ...customParams
210
+ };
211
+ }
156
212
  /**
157
213
  * Get a configuration value
158
214
  * @param key The configuration key
@@ -185,6 +241,57 @@ var BaseAdapter = class {
185
241
  }
186
242
  };
187
243
 
244
+ // src/utils/event-id.ts
245
+ function generateEventId(eventType) {
246
+ const timestamp = Date.now();
247
+ const randomString = Math.random().toString(36).substring(2, 8);
248
+ return `${timestamp}_${randomString}_${eventType}`;
249
+ }
250
+ function getBrowserInfo() {
251
+ if (typeof window === "undefined") {
252
+ return {};
253
+ }
254
+ const userAgent = navigator.userAgent;
255
+ const fbc = getFacebookClickId();
256
+ const fbp = getFacebookBrowserId();
257
+ return {
258
+ clientUserAgent: userAgent,
259
+ fbc,
260
+ fbp
261
+ };
262
+ }
263
+ function getFacebookClickId() {
264
+ if (typeof window === "undefined") {
265
+ return void 0;
266
+ }
267
+ const urlParams = new URLSearchParams(window.location.search);
268
+ const fbclid = urlParams.get("fbclid");
269
+ if (fbclid) {
270
+ return `fb.1.${Date.now()}.${fbclid}`;
271
+ }
272
+ const cookies = document.cookie.split(";");
273
+ for (const cookie of cookies) {
274
+ const [name, value] = cookie.trim().split("=");
275
+ if (name === "_fbc") {
276
+ return value;
277
+ }
278
+ }
279
+ return void 0;
280
+ }
281
+ function getFacebookBrowserId() {
282
+ if (typeof window === "undefined") {
283
+ return void 0;
284
+ }
285
+ const cookies = document.cookie.split(";");
286
+ for (const cookie of cookies) {
287
+ const [name, value] = cookie.trim().split("=");
288
+ if (name === "_fbp") {
289
+ return value;
290
+ }
291
+ }
292
+ return void 0;
293
+ }
294
+
188
295
  // src/adapters/pixel-adapter.ts
189
296
  var PixelAdapter = class extends BaseAdapter {
190
297
  constructor(config) {
@@ -210,18 +317,34 @@ var PixelAdapter = class extends BaseAdapter {
210
317
  );
211
318
  return;
212
319
  }
213
- const pixelId = this.getConfig("pixelId");
214
320
  this.logger.info("Successfully initialized", { pixelId: "***" });
215
321
  this.initialized = true;
216
322
  }
217
323
  /**
218
324
  * Track an event with Facebook Pixel
219
325
  * @param event The event to track
326
+ * @param adapterParams Optional adapter-specific parameters
327
+ */
328
+ async trackEvent(event, adapterParams) {
329
+ if (!event.eventId) {
330
+ event.eventId = generateEventId(event.type);
331
+ }
332
+ this.logger.debug("Tracking event", {
333
+ eventType: event.type,
334
+ eventId: event.eventId
335
+ });
336
+ await this.trackClientSide(event, adapterParams);
337
+ if (this.getConfig("enableCAPI", true)) {
338
+ await this.trackServerSide(event);
339
+ }
340
+ }
341
+ /**
342
+ * Track event on client-side (browser pixel)
220
343
  */
221
- async trackEvent(event) {
344
+ async trackClientSide(event, adapterParams) {
222
345
  if (!this.initialized || typeof window === "undefined" || !window.fbq) {
223
346
  this.logger.warn(
224
- "Cannot track event, adapter not initialized or fbq not available",
347
+ "Cannot track client-side event, adapter not initialized or fbq not available",
225
348
  {
226
349
  eventType: event.type,
227
350
  initialized: this.initialized,
@@ -231,55 +354,95 @@ var PixelAdapter = class extends BaseAdapter {
231
354
  );
232
355
  return;
233
356
  }
234
- this.logger.debug("Tracking event", { eventType: event.type });
235
357
  switch (event.type) {
236
358
  case "page_view" /* PAGE_VIEW */:
237
- this.trackPageView(event);
359
+ this.trackPageView(event, adapterParams);
238
360
  break;
239
361
  case "view_content" /* VIEW_CONTENT */:
240
- this.trackViewContent(event);
362
+ this.trackViewContent(event, adapterParams);
241
363
  break;
242
364
  case "product_view" /* PRODUCT_VIEW */:
243
- this.trackProductView(event);
365
+ this.trackProductView(event, adapterParams);
244
366
  break;
245
367
  case "add_to_cart" /* ADD_TO_CART */:
246
- this.trackAddToCart(event);
368
+ this.trackAddToCart(event, adapterParams);
247
369
  break;
248
370
  case "checkout_started" /* CHECKOUT_STARTED */:
249
- this.trackCheckoutStarted(event);
371
+ this.trackCheckoutStarted(event, adapterParams);
250
372
  break;
251
373
  case "checkout_completed" /* CHECKOUT_COMPLETED */:
252
- this.trackCheckoutCompleted(event);
374
+ this.trackCheckoutCompleted(event, adapterParams);
253
375
  break;
254
376
  case "purchase" /* PURCHASE */:
255
- this.trackPurchase(event);
377
+ this.trackPurchase(event, adapterParams);
256
378
  break;
257
379
  case "add_payment_info" /* ADD_PAYMENT_INFO */:
258
- this.trackAddPaymentInfo(event);
380
+ this.trackAddPaymentInfo(event, adapterParams);
259
381
  break;
260
382
  case "search" /* SEARCH */:
261
- this.trackSearch(event);
383
+ this.trackSearch(event, adapterParams);
262
384
  break;
263
385
  default:
264
386
  this.logger.debug("Unhandled event type", { eventType: event.type });
265
387
  break;
266
388
  }
267
389
  }
390
+ /**
391
+ * Track event on server-side (CAPI) as backup
392
+ */
393
+ async trackServerSide(event) {
394
+ try {
395
+ const browserInfo = getBrowserInfo();
396
+ const payload = {
397
+ events: [event],
398
+ userInfo: browserInfo
399
+ };
400
+ const response = await fetch("/api/events", {
401
+ method: "POST",
402
+ headers: {
403
+ "Content-Type": "application/json"
404
+ },
405
+ body: JSON.stringify(payload)
406
+ });
407
+ if (!response.ok) {
408
+ throw new Error(`Server-side tracking failed: ${response.status}`);
409
+ }
410
+ this.logger.debug(
411
+ `FB Pixel: Server-side backup sent for event ${event.type}`
412
+ );
413
+ } catch (error) {
414
+ this.logger.error(
415
+ `FB Pixel: Server-side backup failed for event ${event.type}: ${error instanceof Error ? error.message : String(error)}`
416
+ );
417
+ }
418
+ }
268
419
  /**
269
420
  * Track a page view event
270
421
  * @param event The page view event
271
422
  */
272
- trackPageView(event) {
273
- const params = this.enhanceWithAffiliateParams({});
274
- window.fbq?.("track", "PageView", params);
275
- this.logger.debug("PageView event tracked", { params });
423
+ trackPageView(event, adapterParams) {
424
+ const eventName = this.getEventName(adapterParams, "PageView");
425
+ const baseParams = this.enhanceWithAffiliateParams({});
426
+ const enhancedParams = this.mergeEventData(baseParams, adapterParams);
427
+ if (event.eventId) {
428
+ window.fbq?.("track", eventName, enhancedParams, {
429
+ eventID: event.eventId
430
+ });
431
+ } else {
432
+ window.fbq?.("track", eventName, enhancedParams);
433
+ }
434
+ this.logger.debug("PageView event tracked", {
435
+ eventName,
436
+ params: enhancedParams
437
+ });
276
438
  }
277
439
  /**
278
440
  * Track a product view event
279
441
  * @param event The product view event
280
442
  */
281
- trackProductView(event) {
282
- const params = {
443
+ trackProductView(event, adapterParams) {
444
+ const eventName = this.getEventName(adapterParams, "ViewContent");
445
+ const baseParams = {
283
446
  content_type: "product_group",
284
447
  content_ids: [event.productId],
285
448
  content_name: event.productName,
@@ -287,34 +450,54 @@ var PixelAdapter = class extends BaseAdapter {
287
450
  value: event.price,
288
451
  currency: event.currency || "INR"
289
452
  };
290
- window.fbq?.(
291
- "track",
292
- "ViewContent",
293
- this.enhanceWithAffiliateParams(params)
294
- );
453
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
454
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
455
+ if (event.eventId) {
456
+ window.fbq?.("track", eventName, enhancedParams, {
457
+ eventID: event.eventId
458
+ });
459
+ } else {
460
+ window.fbq?.("track", eventName, enhancedParams);
461
+ }
462
+ this.logger.debug("ProductView event tracked", {
463
+ eventName,
464
+ params: enhancedParams
465
+ });
295
466
  }
296
467
  /**
297
468
  * Track an add to cart event
298
469
  * @param event The add to cart event
299
470
  */
300
- trackAddToCart(event) {
301
- const params = {
471
+ trackAddToCart(event, adapterParams) {
472
+ const eventName = this.getEventName(adapterParams, "AddToCart");
473
+ const baseParams = {
302
474
  content_type: "product_group",
303
475
  content_ids: [event.productId],
304
476
  content_name: event.productName,
305
477
  value: event.price,
306
478
  currency: event.currency || "INR"
307
479
  };
308
- const enhancedParams = this.enhanceWithAffiliateParams(params);
309
- window.fbq?.("track", "AddToCart", enhancedParams);
310
- this.logger.debug("AddToCart event tracked", { params: enhancedParams });
480
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
481
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
482
+ if (event.eventId) {
483
+ window.fbq?.("track", eventName, enhancedParams, {
484
+ eventID: event.eventId
485
+ });
486
+ } else {
487
+ window.fbq?.("track", eventName, enhancedParams);
488
+ }
489
+ this.logger.debug("AddToCart event tracked", {
490
+ eventName,
491
+ params: enhancedParams
492
+ });
311
493
  }
312
494
  /**
313
495
  * Track a checkout started event
314
496
  * @param event The checkout started event
315
497
  */
316
- trackCheckoutStarted(event) {
317
- const params = {
498
+ trackCheckoutStarted(event, adapterParams) {
499
+ const eventName = this.getEventName(adapterParams, "InitiateCheckout");
500
+ const baseParams = {
318
501
  content_ids: event.items.map((item) => item.productId),
319
502
  content_type: "product_group",
320
503
  value: event.cartValue,
@@ -326,18 +509,27 @@ var PixelAdapter = class extends BaseAdapter {
326
509
  item_price: item.price
327
510
  }))
328
511
  };
329
- window.fbq?.(
330
- "track",
331
- "InitiateCheckout",
332
- this.enhanceWithAffiliateParams(params)
333
- );
512
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
513
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
514
+ if (event.eventId) {
515
+ window.fbq?.("track", eventName, enhancedParams, {
516
+ eventID: event.eventId
517
+ });
518
+ } else {
519
+ window.fbq?.("track", eventName, enhancedParams);
520
+ }
521
+ this.logger.debug("CheckoutStarted event tracked", {
522
+ eventName,
523
+ params: enhancedParams
524
+ });
334
525
  }
335
526
  /**
336
527
  * Track a checkout completed event
337
528
  * @param event The checkout completed event
338
529
  */
339
- trackCheckoutCompleted(event) {
340
- const params = {
530
+ trackCheckoutCompleted(event, adapterParams) {
531
+ const eventName = this.getEventName(adapterParams, "Purchase");
532
+ const baseParams = {
341
533
  value: event.cartValue,
342
534
  currency: event.currency || "INR",
343
535
  content_type: "product_group",
@@ -349,26 +541,52 @@ var PixelAdapter = class extends BaseAdapter {
349
541
  item_price: item.price
350
542
  }))
351
543
  };
352
- window.fbq?.("track", "Purchase", this.enhanceWithAffiliateParams(params));
544
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
545
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
546
+ if (event.eventId) {
547
+ window.fbq?.("track", eventName, enhancedParams, {
548
+ eventID: event.eventId
549
+ });
550
+ } else {
551
+ window.fbq?.("track", eventName, enhancedParams);
552
+ }
553
+ this.logger.debug("CheckoutCompleted event tracked", {
554
+ eventName,
555
+ params: enhancedParams
556
+ });
353
557
  }
354
558
  /**
355
559
  * Track a search event
356
560
  * @param event The search event
357
561
  */
358
- trackSearch(event) {
359
- const params = {
562
+ trackSearch(event, adapterParams) {
563
+ const eventName = this.getEventName(adapterParams, "Search");
564
+ const baseParams = {
360
565
  search_string: event.searchTerm,
361
566
  content_category: "product",
362
567
  content_ids: event.content_ids || []
363
568
  };
364
- window.fbq?.("track", "Search", this.enhanceWithAffiliateParams(params));
569
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
570
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
571
+ if (event.eventId) {
572
+ window.fbq?.("track", eventName, enhancedParams, {
573
+ eventID: event.eventId
574
+ });
575
+ } else {
576
+ window.fbq?.("track", eventName, enhancedParams);
577
+ }
578
+ this.logger.debug("Search event tracked", {
579
+ eventName,
580
+ params: enhancedParams
581
+ });
365
582
  }
366
583
  /**
367
584
  * Track an add payment info event
368
585
  * @param event The add payment info event
369
586
  */
370
- trackAddPaymentInfo(event) {
371
- const params = {
587
+ trackAddPaymentInfo(event, adapterParams) {
588
+ const eventName = this.getEventName(adapterParams, "AddPaymentInfo");
589
+ const baseParams = {
372
590
  value: event.cartValue,
373
591
  currency: event.currency || "INR",
374
592
  content_type: "product_group",
@@ -380,18 +598,27 @@ var PixelAdapter = class extends BaseAdapter {
380
598
  })),
381
599
  payment_type: event.paymentType || ""
382
600
  };
383
- window.fbq?.(
384
- "track",
385
- "AddPaymentInfo",
386
- this.enhanceWithAffiliateParams(params)
387
- );
601
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
602
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
603
+ if (event.eventId) {
604
+ window.fbq?.("track", eventName, enhancedParams, {
605
+ eventID: event.eventId
606
+ });
607
+ } else {
608
+ window.fbq?.("track", eventName, enhancedParams);
609
+ }
610
+ this.logger.debug("AddPaymentInfo event tracked", {
611
+ eventName,
612
+ params: enhancedParams
613
+ });
388
614
  }
389
615
  /**
390
616
  * Track a view content event
391
617
  * @param event The view content event
392
618
  */
393
- trackViewContent(event) {
394
- const params = {
619
+ trackViewContent(event, adapterParams) {
620
+ const eventName = this.getEventName(adapterParams, "ViewContent");
621
+ const baseParams = {
395
622
  content_type: event.content_type || "product",
396
623
  content_ids: event.content_ids || [],
397
624
  content_name: event.content_name || "",
@@ -399,18 +626,27 @@ var PixelAdapter = class extends BaseAdapter {
399
626
  value: event.value || 0,
400
627
  currency: event.currency || "INR"
401
628
  };
402
- window.fbq?.(
403
- "track",
404
- "ViewContent",
405
- this.enhanceWithAffiliateParams(params)
406
- );
629
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
630
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
631
+ if (event.eventId) {
632
+ window.fbq?.("track", eventName, enhancedParams, {
633
+ eventID: event.eventId
634
+ });
635
+ } else {
636
+ window.fbq?.("track", eventName, enhancedParams);
637
+ }
638
+ this.logger.debug("ViewContent event tracked", {
639
+ eventName,
640
+ params: enhancedParams
641
+ });
407
642
  }
408
643
  /**
409
644
  * Track a purchase event
410
645
  * @param event The purchase event
411
646
  */
412
- trackPurchase(event) {
413
- const params = {
647
+ trackPurchase(event, adapterParams) {
648
+ const eventName = this.getEventName(adapterParams, "Purchase");
649
+ const baseParams = {
414
650
  value: event.value,
415
651
  currency: event.currency || "INR",
416
652
  content_type: event.content_type || "product_group",
@@ -418,15 +654,19 @@ var PixelAdapter = class extends BaseAdapter {
418
654
  num_items: event.num_items || 1,
419
655
  contents: event.contents || []
420
656
  };
421
- window.fbq?.("track", "Purchase", this.enhanceWithAffiliateParams(params));
422
- }
423
- /**
424
- * Convert an event to Facebook Pixel parameters
425
- * @param event The event to convert
426
- */
427
- eventToParams(event) {
428
- const { type, timestamp, ...params } = event;
429
- return this.enhanceWithAffiliateParams(params);
657
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
658
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
659
+ if (event.eventId) {
660
+ window.fbq?.("track", eventName, enhancedParams, {
661
+ eventID: event.eventId
662
+ });
663
+ } else {
664
+ window.fbq?.("track", eventName, enhancedParams);
665
+ }
666
+ this.logger.debug("Purchase event tracked", {
667
+ eventName,
668
+ params: enhancedParams
669
+ });
430
670
  }
431
671
  };
432
672
 
@@ -475,8 +715,9 @@ var GoogleAdapter = class extends BaseAdapter {
475
715
  /**
476
716
  * Track an event with Google Analytics
477
717
  * @param event The event to track
718
+ * @param adapterParams Optional adapter-specific parameters
478
719
  */
479
- async trackEvent(event) {
720
+ async trackEvent(event, adapterParams) {
480
721
  this.logger.debug("Attempting to track event", {
481
722
  initialized: this.initialized,
482
723
  hasWindow: typeof window !== "undefined",
@@ -502,76 +743,93 @@ var GoogleAdapter = class extends BaseAdapter {
502
743
  });
503
744
  switch (event.type) {
504
745
  case "page_view" /* PAGE_VIEW */:
505
- this.trackPageView(event, measurementId);
746
+ this.trackPageView(
747
+ event,
748
+ measurementId,
749
+ adapterParams
750
+ );
506
751
  break;
507
752
  case "user_engagement" /* USER_ENGAGEMENT */:
508
- this.trackUserEngagement();
753
+ this.trackUserEngagement(adapterParams);
509
754
  break;
510
755
  case "session_start" /* SESSION_START */:
511
- this.trackSessionStart();
756
+ this.trackSessionStart(adapterParams);
512
757
  break;
513
758
  case "first_visit" /* FIRST_VISIT */:
514
- this.trackFirstVisit();
759
+ this.trackFirstVisit(adapterParams);
515
760
  break;
516
761
  case "view_item" /* VIEW_ITEM */:
517
- this.trackViewItem(event);
762
+ this.trackViewItem(event, adapterParams);
518
763
  break;
519
764
  case "viewed_product" /* VIEWED_PRODUCT */:
520
- this.trackViewedProduct(event);
765
+ this.trackViewedProduct(event, adapterParams);
521
766
  break;
522
767
  case "checkout_payment" /* CHECKOUT_PAYMENT */:
523
- this.trackCheckoutPayment(event);
768
+ this.trackCheckoutPayment(
769
+ event,
770
+ adapterParams
771
+ );
524
772
  break;
525
773
  case "scroll" /* SCROLL */:
526
- this.trackScroll();
774
+ this.trackScroll(adapterParams);
527
775
  break;
528
776
  case "add_to_cart" /* ADD_TO_CART */:
529
- case "shopify_add_to_cart" /* SHOPIFY_ADD_TO_CART */:
530
- this.trackAddToCart(event);
777
+ this.trackAddToCart(event, adapterParams);
531
778
  break;
532
779
  case "form_start" /* FORM_START */:
533
- this.trackFormStart();
780
+ this.trackFormStart(adapterParams);
534
781
  break;
535
782
  case "checkout_started" /* CHECKOUT_STARTED */:
536
- this.trackCheckoutStarted(event);
783
+ this.trackCheckoutStarted(
784
+ event,
785
+ adapterParams
786
+ );
537
787
  break;
538
788
  case "form_submission" /* FORM_SUBMISSION */:
539
- this.trackFormSubmission(event);
789
+ this.trackFormSubmission(event, adapterParams);
540
790
  break;
541
791
  case "search" /* SEARCH */:
542
- this.trackSearch(event);
792
+ this.trackSearch(event, adapterParams);
543
793
  break;
544
794
  case "checkout_completed" /* CHECKOUT_COMPLETED */:
545
- this.trackCheckoutCompleted(event);
795
+ this.trackCheckoutCompleted(
796
+ event,
797
+ adapterParams
798
+ );
546
799
  break;
547
800
  case "add_payment_info" /* ADD_PAYMENT_INFO */:
548
- this.trackAddPaymentInfo(event);
801
+ this.trackAddPaymentInfo(event, adapterParams);
549
802
  break;
550
803
  case "view_content" /* VIEW_CONTENT */:
551
- this.trackViewContent(event);
804
+ this.trackViewContent(event, adapterParams);
552
805
  break;
553
806
  case "purchase" /* PURCHASE */:
554
- this.trackPurchase(event);
807
+ this.trackPurchase(event, adapterParams);
555
808
  break;
556
809
  case "view_search_results" /* VIEW_SEARCH_RESULTS */:
557
- this.trackViewSearchResults(event);
810
+ this.trackViewSearchResults(
811
+ event,
812
+ adapterParams
813
+ );
558
814
  break;
559
815
  case "order_placed" /* ORDER_PLACED */:
560
- this.trackOrderPlaced(event);
816
+ this.trackOrderPlaced(event, adapterParams);
561
817
  break;
562
818
  case "begin_checkout" /* BEGIN_CHECKOUT */:
563
- this.trackBeginCheckout(event);
819
+ this.trackBeginCheckout(event, adapterParams);
564
820
  break;
565
821
  case "custom" /* CUSTOM */:
566
- this.trackCustomEvent(event);
822
+ this.trackCustomEvent(event, adapterParams);
567
823
  break;
568
824
  default: {
569
- const params = this.eventToParams(event);
570
- window.gtag(
571
- "event",
572
- event.type,
573
- this.enhanceWithAffiliateParams(params)
825
+ const eventName = this.getEventName(adapterParams, event.type);
826
+ const baseParams = this.eventToParams(event);
827
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
828
+ const enhancedParams = this.mergeEventData(
829
+ affiliateParams,
830
+ adapterParams
574
831
  );
832
+ window.gtag("event", eventName, enhancedParams);
575
833
  break;
576
834
  }
577
835
  }
@@ -581,8 +839,9 @@ var GoogleAdapter = class extends BaseAdapter {
581
839
  * @param event The page view event
582
840
  * @param measurementId The Google Analytics measurement ID
583
841
  */
584
- trackPageView(event, measurementId) {
585
- const params = {
842
+ trackPageView(event, measurementId, adapterParams) {
843
+ const eventName = this.getEventName(adapterParams, "page_view");
844
+ const baseParams = {
586
845
  page_path: event.path,
587
846
  page_title: event.title || document.title,
588
847
  page_location: event.page_location || window.location.href,
@@ -605,14 +864,13 @@ var GoogleAdapter = class extends BaseAdapter {
605
864
  user_properties: event.user_properties,
606
865
  session_engaged: event.session_engaged
607
866
  };
608
- window.gtag?.(
609
- "event",
610
- "page_view",
611
- this.enhanceWithAffiliateParams(params)
612
- );
867
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
868
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
869
+ window.gtag?.("event", eventName, enhancedParams);
613
870
  }
614
- trackUserEngagement() {
615
- const params = {
871
+ trackUserEngagement(adapterParams) {
872
+ const eventName = this.getEventName(adapterParams, "user_engagement");
873
+ const baseParams = {
616
874
  batch_ordering_id: "",
617
875
  batch_page_id: "",
618
876
  campaign: "",
@@ -629,14 +887,13 @@ var GoogleAdapter = class extends BaseAdapter {
629
887
  srsltid: "",
630
888
  term: ""
631
889
  };
632
- window.gtag?.(
633
- "event",
634
- "user_engagement",
635
- this.enhanceWithAffiliateParams(params)
636
- );
890
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
891
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
892
+ window.gtag?.("event", eventName, enhancedParams);
637
893
  }
638
- trackSessionStart() {
639
- const params = {
894
+ trackSessionStart(adapterParams) {
895
+ const eventName = this.getEventName(adapterParams, "session_start");
896
+ const baseParams = {
640
897
  batch_ordering_id: "",
641
898
  batch_page_id: "",
642
899
  campaign: "",
@@ -655,14 +912,13 @@ var GoogleAdapter = class extends BaseAdapter {
655
912
  srsltid: "",
656
913
  term: ""
657
914
  };
658
- window.gtag?.(
659
- "event",
660
- "session_start",
661
- this.enhanceWithAffiliateParams(params)
662
- );
915
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
916
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
917
+ window.gtag?.("event", eventName, enhancedParams);
663
918
  }
664
- trackFirstVisit() {
665
- const params = {
919
+ trackFirstVisit(adapterParams) {
920
+ const eventName = this.getEventName(adapterParams, "first_visit");
921
+ const baseParams = {
666
922
  batch_ordering_id: "",
667
923
  batch_page_id: "",
668
924
  campaign: "",
@@ -683,25 +939,24 @@ var GoogleAdapter = class extends BaseAdapter {
683
939
  page_source: "",
684
940
  page_term: ""
685
941
  };
686
- window.gtag?.(
687
- "event",
688
- "first_visit",
689
- this.enhanceWithAffiliateParams(params)
690
- );
942
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
943
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
944
+ window.gtag?.("event", eventName, enhancedParams);
691
945
  }
692
- trackViewItem(event) {
693
- window.gtag?.(
694
- "event",
695
- "view_item",
696
- this.enhanceWithAffiliateParams({
697
- currency: event.currency,
698
- value: event.value,
699
- items: event.items
700
- })
701
- );
946
+ trackViewItem(event, adapterParams) {
947
+ const eventName = this.getEventName(adapterParams, "view_item");
948
+ const baseParams = {
949
+ currency: event.currency,
950
+ value: event.value,
951
+ items: event.items
952
+ };
953
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
954
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
955
+ window.gtag?.("event", eventName, enhancedParams);
702
956
  }
703
- trackScroll() {
704
- const params = {
957
+ trackScroll(adapterParams) {
958
+ const eventName = this.getEventName(adapterParams, "scroll");
959
+ const baseParams = {
705
960
  batch_ordering_id: "",
706
961
  batch_page_id: "",
707
962
  engagement_time_msec: void 0,
@@ -715,46 +970,49 @@ var GoogleAdapter = class extends BaseAdapter {
715
970
  percent_scrolled: 90
716
971
  // or dynamically captured
717
972
  };
718
- window.gtag?.("event", "scroll", this.enhanceWithAffiliateParams(params));
973
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
974
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
975
+ window.gtag?.("event", eventName, enhancedParams);
719
976
  }
720
- trackCheckoutPayment(event) {
721
- window.gtag?.(
722
- "event",
723
- "checkout_payment",
724
- this.enhanceWithAffiliateParams({
725
- currency: event.currency,
726
- value: event.cartValue,
727
- items: event.items.map((item) => ({
728
- item_id: item.productId,
729
- item_name: item.productName,
730
- price: item.price,
731
- quantity: item.quantity
732
- }))
733
- })
734
- );
977
+ trackCheckoutPayment(event, adapterParams) {
978
+ const eventName = this.getEventName(adapterParams, "checkout_payment");
979
+ const baseParams = {
980
+ currency: event.currency,
981
+ value: event.cartValue,
982
+ items: event.items.map((item) => ({
983
+ item_id: item.productId,
984
+ item_name: item.productName,
985
+ price: item.price,
986
+ quantity: item.quantity
987
+ }))
988
+ };
989
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
990
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
991
+ window.gtag?.("event", eventName, enhancedParams);
735
992
  }
736
- trackViewedProduct(event) {
737
- window.gtag?.(
738
- "event",
739
- "viewed_product",
740
- this.enhanceWithAffiliateParams({
741
- currency: event.currency,
742
- value: event.price,
743
- items: [
744
- {
745
- item_id: event.productId,
746
- item_name: event.productName,
747
- price: event.price,
748
- currency: event.currency
749
- }
750
- ],
751
- view_duration: event.viewDuration
752
- })
753
- );
993
+ trackViewedProduct(event, adapterParams) {
994
+ const eventName = this.getEventName(adapterParams, "viewed_product");
995
+ const baseParams = {
996
+ currency: event.currency,
997
+ value: event.price,
998
+ items: [
999
+ {
1000
+ item_id: event.productId,
1001
+ item_name: event.productName,
1002
+ price: event.price,
1003
+ currency: event.currency
1004
+ }
1005
+ ],
1006
+ view_duration: event.viewDuration
1007
+ };
1008
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1009
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1010
+ window.gtag?.("event", eventName, enhancedParams);
754
1011
  }
755
- trackAddToCart(event) {
1012
+ trackAddToCart(event, adapterParams) {
756
1013
  this.logger.debug("Processing add_to_cart event", { event });
757
- const params = {
1014
+ const eventName = this.getEventName(adapterParams, "add_to_cart");
1015
+ const baseParams = {
758
1016
  currency: event.currency || "INR",
759
1017
  value: event.price * (event.quantity || 1),
760
1018
  // Calculate total value
@@ -780,14 +1038,17 @@ var GoogleAdapter = class extends BaseAdapter {
780
1038
  user_id: event.user_id,
781
1039
  user_properties: event.user_properties
782
1040
  };
783
- const enhancedParams = this.enhanceWithAffiliateParams(params);
1041
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1042
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
784
1043
  this.logger.debug("Sending add_to_cart event to gtag", {
1044
+ eventName,
785
1045
  params: enhancedParams
786
1046
  });
787
- window.gtag?.("event", "add_to_cart", enhancedParams);
1047
+ window.gtag?.("event", eventName, enhancedParams);
788
1048
  }
789
- trackFormStart() {
790
- const params = {
1049
+ trackFormStart(adapterParams) {
1050
+ const eventName = this.getEventName(adapterParams, "form_start");
1051
+ const baseParams = {
791
1052
  batch_ordering_id: "",
792
1053
  batch_page_id: "",
793
1054
  engagement_time_msec: void 0,
@@ -805,14 +1066,13 @@ var GoogleAdapter = class extends BaseAdapter {
805
1066
  page_referrer: document.referrer,
806
1067
  page_title: document.title
807
1068
  };
808
- window.gtag?.(
809
- "event",
810
- "form_start",
811
- this.enhanceWithAffiliateParams(params)
812
- );
1069
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1070
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1071
+ window.gtag?.("event", eventName, enhancedParams);
813
1072
  }
814
- trackCheckoutStarted(event) {
815
- const params = {
1073
+ trackCheckoutStarted(event, adapterParams) {
1074
+ const eventName = this.getEventName(adapterParams, "begin_checkout");
1075
+ const baseParams = {
816
1076
  batch_ordering_id: "",
817
1077
  batch_page_id: "",
818
1078
  currency: event.currency || "INR",
@@ -835,14 +1095,13 @@ var GoogleAdapter = class extends BaseAdapter {
835
1095
  item_variant: item.variant
836
1096
  }))
837
1097
  };
838
- window.gtag?.(
839
- "event",
840
- "begin_checkout",
841
- this.enhanceWithAffiliateParams(params)
842
- );
1098
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1099
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1100
+ window.gtag?.("event", eventName, enhancedParams);
843
1101
  }
844
- trackFormSubmission(event) {
845
- const params = {
1102
+ trackFormSubmission(event, adapterParams) {
1103
+ const eventName = this.getEventName(adapterParams, "form_submit");
1104
+ const baseParams = {
846
1105
  batch_ordering_id: "",
847
1106
  batch_page_id: "",
848
1107
  engagement_time_msec: void 0,
@@ -856,14 +1115,13 @@ var GoogleAdapter = class extends BaseAdapter {
856
1115
  page_referrer: document.referrer,
857
1116
  page_title: document.title
858
1117
  };
859
- window.gtag?.(
860
- "event",
861
- "form_submit",
862
- this.enhanceWithAffiliateParams(params)
863
- );
1118
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1119
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1120
+ window.gtag?.("event", eventName, enhancedParams);
864
1121
  }
865
- trackSearch(event) {
866
- const params = {
1122
+ trackSearch(event, adapterParams) {
1123
+ const eventName = this.getEventName(adapterParams, "search");
1124
+ const baseParams = {
867
1125
  batch_ordering_id: "",
868
1126
  batch_page_id: "",
869
1127
  engagement_time_msec: void 0,
@@ -875,14 +1133,17 @@ var GoogleAdapter = class extends BaseAdapter {
875
1133
  page_title: document.title,
876
1134
  search_term: event.searchTerm
877
1135
  };
878
- window.gtag?.("event", "search", this.enhanceWithAffiliateParams(params));
1136
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1137
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1138
+ window.gtag?.("event", eventName, enhancedParams);
879
1139
  }
880
1140
  /**
881
1141
  * Track a checkout completed event
882
1142
  * @param event The checkout completed event
883
1143
  */
884
- trackCheckoutCompleted(event) {
885
- const params = {
1144
+ trackCheckoutCompleted(event, adapterParams) {
1145
+ const eventName = this.getEventName(adapterParams, "purchase");
1146
+ const baseParams = {
886
1147
  transaction_id: event.orderId,
887
1148
  currency: event.currency || "INR",
888
1149
  value: event.cartValue,
@@ -894,22 +1155,28 @@ var GoogleAdapter = class extends BaseAdapter {
894
1155
  item_variant: item.variant
895
1156
  }))
896
1157
  };
897
- window.gtag?.("event", "purchase", this.enhanceWithAffiliateParams(params));
1158
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1159
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1160
+ window.gtag?.("event", eventName, enhancedParams);
898
1161
  }
899
1162
  /**
900
1163
  * Track a custom event
901
1164
  * @param event The custom event
902
1165
  */
903
- trackCustomEvent(event) {
904
- const params = event.properties || {};
905
- window.gtag?.("event", event.name, this.enhanceWithAffiliateParams(params));
1166
+ trackCustomEvent(event, adapterParams) {
1167
+ const eventName = this.getEventName(adapterParams, event.name);
1168
+ const baseParams = event.properties || {};
1169
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1170
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1171
+ window.gtag?.("event", eventName, enhancedParams);
906
1172
  }
907
1173
  /**
908
1174
  * Track an add payment info event
909
1175
  * @param event The add payment info event
910
1176
  */
911
- trackAddPaymentInfo(event) {
912
- const params = {
1177
+ trackAddPaymentInfo(event, adapterParams) {
1178
+ const eventName = this.getEventName(adapterParams, "add_payment_info");
1179
+ const baseParams = {
913
1180
  currency: event.currency || "INR",
914
1181
  value: event.cartValue,
915
1182
  payment_type: event.paymentType || "",
@@ -921,18 +1188,17 @@ var GoogleAdapter = class extends BaseAdapter {
921
1188
  item_variant: item.variant
922
1189
  }))
923
1190
  };
924
- window.gtag?.(
925
- "event",
926
- "add_payment_info",
927
- this.enhanceWithAffiliateParams(params)
928
- );
1191
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1192
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1193
+ window.gtag?.("event", eventName, enhancedParams);
929
1194
  }
930
1195
  /**
931
1196
  * Track a view content event
932
1197
  * @param event The view content event
933
1198
  */
934
- trackViewContent(event) {
935
- const params = {
1199
+ trackViewContent(event, adapterParams) {
1200
+ const eventName = this.getEventName(adapterParams, "view_item");
1201
+ const baseParams = {
936
1202
  currency: event.currency || "USD",
937
1203
  value: event.value || 0,
938
1204
  items: event.items?.map((item) => ({
@@ -961,18 +1227,17 @@ var GoogleAdapter = class extends BaseAdapter {
961
1227
  user_id: event.user_id,
962
1228
  user_properties: event.user_properties
963
1229
  };
964
- window.gtag?.(
965
- "event",
966
- "view_item",
967
- this.enhanceWithAffiliateParams(params)
968
- );
1230
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1231
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1232
+ window.gtag?.("event", eventName, enhancedParams);
969
1233
  }
970
1234
  /**
971
1235
  * Track a purchase event
972
1236
  * @param event The purchase event
973
1237
  */
974
- trackPurchase(event) {
975
- const params = {
1238
+ trackPurchase(event, adapterParams) {
1239
+ const eventName = this.getEventName(adapterParams, "purchase");
1240
+ const baseParams = {
976
1241
  transaction_id: event.transaction_id,
977
1242
  value: event.value,
978
1243
  currency: event.currency || "USD",
@@ -1005,14 +1270,17 @@ var GoogleAdapter = class extends BaseAdapter {
1005
1270
  user_id: event.user_id,
1006
1271
  user_properties: event.user_properties
1007
1272
  };
1008
- window.gtag?.("event", "purchase", this.enhanceWithAffiliateParams(params));
1273
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1274
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1275
+ window.gtag?.("event", eventName, enhancedParams);
1009
1276
  }
1010
1277
  /**
1011
1278
  * Track a view search results event
1012
1279
  * @param event The view search results event
1013
1280
  */
1014
- trackViewSearchResults(event) {
1015
- const params = {
1281
+ trackViewSearchResults(event, adapterParams) {
1282
+ const eventName = this.getEventName(adapterParams, "view_search_results");
1283
+ const baseParams = {
1016
1284
  search_term: event.search_term,
1017
1285
  // GA4-specific parameters
1018
1286
  batch_ordering_id: event.batch_ordering_id || "",
@@ -1027,18 +1295,17 @@ var GoogleAdapter = class extends BaseAdapter {
1027
1295
  user_id: event.user_id,
1028
1296
  user_properties: event.user_properties
1029
1297
  };
1030
- window.gtag?.(
1031
- "event",
1032
- "view_search_results",
1033
- this.enhanceWithAffiliateParams(params)
1034
- );
1298
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1299
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1300
+ window.gtag?.("event", eventName, enhancedParams);
1035
1301
  }
1036
1302
  /**
1037
1303
  * Track an order placed event
1038
1304
  * @param event The order placed event
1039
1305
  */
1040
- trackOrderPlaced(event) {
1041
- const params = {
1306
+ trackOrderPlaced(event, adapterParams) {
1307
+ const eventName = this.getEventName(adapterParams, "purchase");
1308
+ const baseParams = {
1042
1309
  transaction_id: event.order_id,
1043
1310
  value: event.total_amount,
1044
1311
  currency: event.currency || "USD",
@@ -1064,14 +1331,17 @@ var GoogleAdapter = class extends BaseAdapter {
1064
1331
  user_id: event.user_id,
1065
1332
  user_properties: event.user_properties
1066
1333
  };
1067
- window.gtag?.("event", "purchase", this.enhanceWithAffiliateParams(params));
1334
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1335
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1336
+ window.gtag?.("event", eventName, enhancedParams);
1068
1337
  }
1069
1338
  /**
1070
1339
  * Track a begin checkout event
1071
1340
  * @param event The begin checkout event
1072
1341
  */
1073
- trackBeginCheckout(event) {
1074
- const params = {
1342
+ trackBeginCheckout(event, adapterParams) {
1343
+ const eventName = this.getEventName(adapterParams, "begin_checkout");
1344
+ const baseParams = {
1075
1345
  currency: event.currency || "USD",
1076
1346
  value: event.value || 0,
1077
1347
  coupon: event.coupon,
@@ -1101,11 +1371,9 @@ var GoogleAdapter = class extends BaseAdapter {
1101
1371
  user_id: event.user_id,
1102
1372
  user_properties: event.user_properties
1103
1373
  };
1104
- window.gtag?.(
1105
- "event",
1106
- "begin_checkout",
1107
- this.enhanceWithAffiliateParams(params)
1108
- );
1374
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1375
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1376
+ window.gtag?.("event", eventName, enhancedParams);
1109
1377
  }
1110
1378
  /**
1111
1379
  * Convert an event to Google Analytics parameters
@@ -1135,44 +1403,9 @@ var EventNames = {
1135
1403
  SEARCH: "Search",
1136
1404
  // User events
1137
1405
  USER_SIGNED_UP: "User Signed Up",
1138
- USER_LOGGED_IN: "User Logged In",
1139
- // MoEngage events
1140
- ITEM_PURCHASED: "Item Purchased",
1141
- UPDATE_CART: "Update Cart",
1142
- CUSTOMER_REGISTERED: "Customer Registered",
1143
- CUSTOMER_LOGGED_IN: "Customer Logged In",
1144
- SHOPIFY_CHECKOUT_UPDATED: "Shopify - Checkout Updated",
1145
- SHOPIFY_ABANDONED_CHECKOUT: "Shopify - Abandoned Checkout",
1146
- SHOPIFY_ORDER_FULFILLED: "Shopify - Order Fulfilled",
1147
- SHOPIFY_CHECKOUT_STARTED: "Shopify - Checkout Started",
1148
- SHOPIFY_ADD_TO_CART: "Shopify - Add To Cart",
1149
- SHOPIFY_REMOVED_FROM_CART: "Shopify - Removed From Cart",
1150
- SHOPIFY_UPDATE_CART: "Shopify - Update Cart",
1151
- SPINFORM_RESULT: "Spinform Result",
1152
- COUPON_COPIED: "Coupon Copied",
1153
- STARTED_CHECKOUT_GK: "Started Checkout GK",
1154
- MOBILE_ADDED_GK: "Mobile Added GK",
1155
- ADDRESS_SELECTED_GK: "Address Selected GK",
1156
- ADDRESS_COMPLETED_GK: "Address Completed GK",
1157
- PAYMENT_METHOD_SELECTED_GK: "Payment Method Selected GK",
1158
- PAYMENT_COMPLETED_GK: "Payment Completed GK",
1159
- ORDER_SUCCESS: "Order Success",
1160
- ORDER_COMPLETED: "Order Completed",
1161
- PIN_CODE_ADDED_GK: "PIN Code Added GK",
1162
- ADDRESS_ADDED_GK: "Address Added GK",
1163
- KP_MP_PHONE_NUMBER_LOGGED_IN: "KP MP Phone Number Logged In",
1164
- KP_PHONE_NUMBER_LOGGED_IN: "KP Phone Number Logged In",
1165
- KP_MP_SHOPIFY_LOGGED_IN: "KP MP Shopify Logged In",
1166
- KP_MP_SUCCESSFULLY_LOGGED_OUT: "KP MP Successfully Logged Out",
1167
- KP_WHATSAPP_LOGGED_IN: "KP Whatsapp Logged In",
1168
- KP_MP_TRUECALLER_LOGGED_IN: "KP MP Truecaller Logged In",
1169
- KP_MP_WHATSAPP_LOGGED_IN: "KP MP Whatsapp Logged In",
1170
- KP_TRUECALLER_LOGGED_IN: "KP Truecaller Logged In",
1171
- KP_SHOPIFY_LOGGED_IN: "KP Shopify Logged In",
1172
- KP_SUCCESSFULLY_LOGGED_OUT: "KP Successfully Logged Out"
1406
+ USER_LOGGED_IN: "User Logged In"
1173
1407
  };
1174
1408
  var DEFAULT_CURRENCY = "INR";
1175
- var HARDCODED_HANDLE = "ryze-gums";
1176
1409
 
1177
1410
  // src/adapters/moengage-adapter.ts
1178
1411
  import moengage from "@moengage/web-sdk";
@@ -1224,8 +1457,9 @@ var MoengageAdapter = class extends BaseAdapter {
1224
1457
  /**
1225
1458
  * Track an event with MoenGage SDK
1226
1459
  * @param event The event to track
1460
+ * @param adapterParams Optional adapter-specific parameters
1227
1461
  */
1228
- async trackEvent(event) {
1462
+ async trackEvent(event, adapterParams) {
1229
1463
  if (!this.initialized || typeof window === "undefined" || !this.sdk) {
1230
1464
  this.logger.warn(
1231
1465
  "Cannot track event, adapter not initialized or SDK not available",
@@ -1241,106 +1475,147 @@ var MoengageAdapter = class extends BaseAdapter {
1241
1475
  this.logger.debug("Tracking event", { eventType: event.type });
1242
1476
  switch (event.type) {
1243
1477
  case "page_view" /* PAGE_VIEW */:
1244
- this.trackPageView(event);
1478
+ this.trackPageView(event, adapterParams);
1245
1479
  break;
1246
1480
  case "button_click" /* BUTTON_CLICK */:
1247
- this.trackButtonClick(event);
1481
+ this.trackButtonClick(event, adapterParams);
1248
1482
  break;
1249
1483
  case "form_submission" /* FORM_SUBMISSION */:
1250
- this.trackFormSubmission(event);
1484
+ this.trackFormSubmission(event, adapterParams);
1251
1485
  break;
1252
1486
  case "product_view" /* PRODUCT_VIEW */:
1253
- this.trackProductView(event);
1487
+ this.trackProductView(event, adapterParams);
1254
1488
  break;
1255
1489
  case "add_to_cart" /* ADD_TO_CART */:
1256
- this.trackAddToCart(event);
1490
+ this.trackAddToCart(event, adapterParams);
1257
1491
  break;
1258
1492
  case "remove_from_cart" /* REMOVE_FROM_CART */:
1259
- this.trackRemoveFromCart(event);
1493
+ this.trackRemoveFromCart(event, adapterParams);
1260
1494
  break;
1261
1495
  case "checkout_started" /* CHECKOUT_STARTED */:
1262
- this.trackCheckoutStarted(event);
1496
+ this.trackCheckoutStarted(
1497
+ event,
1498
+ adapterParams
1499
+ );
1263
1500
  break;
1264
1501
  case "checkout_completed" /* CHECKOUT_COMPLETED */:
1265
- this.trackCheckoutCompleted(event);
1502
+ this.trackCheckoutCompleted(
1503
+ event,
1504
+ adapterParams
1505
+ );
1266
1506
  break;
1267
1507
  case "search" /* SEARCH */:
1268
- this.trackSearch(event);
1508
+ this.trackSearch(event, adapterParams);
1269
1509
  break;
1270
1510
  case "user_signup" /* USER_SIGNUP */:
1271
- this.trackUserSignup(event);
1511
+ this.trackUserSignup(event, adapterParams);
1272
1512
  break;
1273
1513
  case "user_login" /* USER_LOGIN */:
1274
- this.trackUserLogin(event);
1514
+ this.trackUserLogin(event, adapterParams);
1275
1515
  break;
1276
1516
  case "custom" /* CUSTOM */:
1277
- this.trackCustomEvent(event);
1517
+ this.trackCustomEvent(event, adapterParams);
1278
1518
  break;
1279
1519
  default:
1280
- this.sdk.track_event(event.type, this.eventToParams(event));
1520
+ const eventName = this.getEventName(adapterParams, event.type);
1521
+ const baseParams = this.eventToParams(event);
1522
+ const enhancedParams = this.mergeEventData(baseParams, adapterParams);
1523
+ this.sdk.track_event(eventName, enhancedParams);
1281
1524
  break;
1282
1525
  }
1283
1526
  }
1284
1527
  /**
1285
1528
  * Track a page view event
1286
1529
  * @param event The page view event
1530
+ * @param adapterParams Optional adapter-specific parameters
1287
1531
  */
1288
- trackPageView(event) {
1532
+ trackPageView(event, adapterParams) {
1289
1533
  if (!this.sdk?.track_event) {
1290
1534
  this.logger.warn("track_event not available for PageView event");
1291
1535
  return;
1292
1536
  }
1293
- const eventData = {
1537
+ const eventName = this.getEventName(adapterParams, EventNames.PAGE_VIEWED);
1538
+ const baseEventData = {
1294
1539
  page_path: event.path,
1295
1540
  page_title: event.title,
1296
1541
  page_url: window.location.href,
1297
1542
  referrer: event.referrer || document.referrer
1298
1543
  };
1299
- this.sdk.track_event(EventNames.PAGE_VIEWED, eventData);
1300
- this.logger.debug("PageView event tracked", { eventData });
1544
+ const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
1545
+ this.sdk.track_event(eventName, enhancedEventData);
1546
+ this.logger.debug("PageView event tracked", {
1547
+ eventName,
1548
+ eventData: enhancedEventData
1549
+ });
1301
1550
  }
1302
1551
  /**
1303
1552
  * Track a button click event
1304
1553
  * @param event The button click event
1554
+ * @param adapterParams Optional adapter-specific parameters
1305
1555
  */
1306
- trackButtonClick(event) {
1307
- this.sdk?.track_event(EventNames.BUTTON_CLICKED, {
1556
+ trackButtonClick(event, adapterParams) {
1557
+ const eventName = this.getEventName(
1558
+ adapterParams,
1559
+ EventNames.BUTTON_CLICKED
1560
+ );
1561
+ const baseEventData = {
1308
1562
  button_id: event.buttonId,
1309
1563
  button_text: event.buttonText,
1310
1564
  location: event.location
1311
- });
1565
+ };
1566
+ const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
1567
+ this.sdk?.track_event(eventName, enhancedEventData);
1312
1568
  }
1313
1569
  /**
1314
1570
  * Track a form submission event
1315
1571
  * @param event The form submission event
1572
+ * @param adapterParams Optional adapter-specific parameters
1316
1573
  */
1317
- trackFormSubmission(event) {
1318
- this.sdk?.track_event(EventNames.FORM_SUBMITTED, {
1574
+ trackFormSubmission(event, adapterParams) {
1575
+ const eventName = this.getEventName(
1576
+ adapterParams,
1577
+ EventNames.FORM_SUBMITTED
1578
+ );
1579
+ const baseEventData = {
1319
1580
  form_id: event.formId,
1320
1581
  form_name: event.formName,
1321
1582
  success: event.success
1322
- });
1583
+ };
1584
+ const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
1585
+ this.sdk?.track_event(eventName, enhancedEventData);
1323
1586
  }
1324
1587
  /**
1325
1588
  * Track a product view event
1326
1589
  * @param event The product view event
1590
+ * @param adapterParams Optional adapter-specific parameters
1327
1591
  */
1328
- trackProductView(event) {
1329
- this.sdk?.track_event(EventNames.PRODUCT_VIEWED, {
1592
+ trackProductView(event, adapterParams) {
1593
+ const eventName = this.getEventName(
1594
+ adapterParams,
1595
+ EventNames.PRODUCT_VIEWED
1596
+ );
1597
+ const baseEventData = {
1330
1598
  product_id: event.productId,
1331
1599
  product_name: event.productName,
1332
1600
  price: event.price,
1333
1601
  currency: event.currency || DEFAULT_CURRENCY,
1334
1602
  category: event.category
1335
- });
1603
+ };
1604
+ const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
1605
+ this.sdk?.track_event(eventName, enhancedEventData);
1336
1606
  }
1337
1607
  /**
1338
1608
  * Track an add to cart event
1339
1609
  * @param event The add to cart event
1610
+ * @param adapterParams Optional adapter-specific parameters
1340
1611
  */
1341
- trackAddToCart(event) {
1612
+ trackAddToCart(event, adapterParams) {
1342
1613
  const quantity = event.quantity ?? 1;
1343
- this.sdk?.track_event(EventNames.ADDED_TO_CART, {
1614
+ const eventName = this.getEventName(
1615
+ adapterParams,
1616
+ EventNames.ADDED_TO_CART
1617
+ );
1618
+ const baseEventData = {
1344
1619
  product_id: event.productId,
1345
1620
  product_name: event.productName,
1346
1621
  price: event.price,
@@ -1348,14 +1623,21 @@ var MoengageAdapter = class extends BaseAdapter {
1348
1623
  quantity,
1349
1624
  variant: event.variant,
1350
1625
  total_value: event.price * quantity
1351
- });
1626
+ };
1627
+ const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
1628
+ this.sdk?.track_event(eventName, enhancedEventData);
1352
1629
  }
1353
1630
  /**
1354
1631
  * Track a remove from cart event
1355
1632
  * @param event The remove from cart event
1633
+ * @param adapterParams Optional adapter-specific parameters
1356
1634
  */
1357
- trackRemoveFromCart(event) {
1358
- this.sdk?.track_event(EventNames.REMOVED_FROM_CART, {
1635
+ trackRemoveFromCart(event, adapterParams) {
1636
+ const eventName = this.getEventName(
1637
+ adapterParams,
1638
+ EventNames.REMOVED_FROM_CART
1639
+ );
1640
+ const baseEventData = {
1359
1641
  product_id: event.productId,
1360
1642
  product_name: event.productName,
1361
1643
  price: event.price,
@@ -1363,14 +1645,21 @@ var MoengageAdapter = class extends BaseAdapter {
1363
1645
  quantity: event.quantity,
1364
1646
  variant: event.variant,
1365
1647
  total_value: event.price * event.quantity
1366
- });
1648
+ };
1649
+ const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
1650
+ this.sdk?.track_event(eventName, enhancedEventData);
1367
1651
  }
1368
1652
  /**
1369
1653
  * Track a checkout started event
1370
1654
  * @param event The checkout started event
1655
+ * @param adapterParams Optional adapter-specific parameters
1371
1656
  */
1372
- trackCheckoutStarted(event) {
1373
- this.sdk?.track_event(EventNames.CHECKOUT_STARTED, {
1657
+ trackCheckoutStarted(event, adapterParams) {
1658
+ const eventName = this.getEventName(
1659
+ adapterParams,
1660
+ EventNames.CHECKOUT_STARTED
1661
+ );
1662
+ const baseEventData = {
1374
1663
  cart_value: event.cartValue,
1375
1664
  currency: event.currency || DEFAULT_CURRENCY,
1376
1665
  item_count: event.itemCount,
@@ -1381,14 +1670,21 @@ var MoengageAdapter = class extends BaseAdapter {
1381
1670
  quantity: item.quantity,
1382
1671
  variant: item.variant
1383
1672
  }))
1384
- });
1673
+ };
1674
+ const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
1675
+ this.sdk?.track_event(eventName, enhancedEventData);
1385
1676
  }
1386
1677
  /**
1387
1678
  * Track a checkout completed event
1388
1679
  * @param event The checkout completed event
1680
+ * @param adapterParams Optional adapter-specific parameters
1389
1681
  */
1390
- trackCheckoutCompleted(event) {
1391
- this.sdk?.track_event(EventNames.PURCHASE_COMPLETED, {
1682
+ trackCheckoutCompleted(event, adapterParams) {
1683
+ const eventName = this.getEventName(
1684
+ adapterParams,
1685
+ EventNames.PURCHASE_COMPLETED
1686
+ );
1687
+ const baseEventData = {
1392
1688
  order_id: event.orderId,
1393
1689
  cart_value: event.cartValue,
1394
1690
  currency: event.currency || DEFAULT_CURRENCY,
@@ -1400,28 +1696,41 @@ var MoengageAdapter = class extends BaseAdapter {
1400
1696
  quantity: item.quantity,
1401
1697
  variant: item.variant
1402
1698
  }))
1403
- });
1699
+ };
1700
+ const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
1701
+ this.sdk?.track_event(eventName, enhancedEventData);
1404
1702
  }
1405
1703
  /**
1406
1704
  * Track a search event
1407
1705
  * @param event The search event
1706
+ * @param adapterParams Optional adapter-specific parameters
1408
1707
  */
1409
- trackSearch(event) {
1410
- this.sdk?.track_event(EventNames.SEARCH, {
1708
+ trackSearch(event, adapterParams) {
1709
+ const eventName = this.getEventName(adapterParams, EventNames.SEARCH);
1710
+ const baseEventData = {
1411
1711
  search_term: event.searchTerm,
1412
1712
  results_count: event.resultsCount
1413
- });
1713
+ };
1714
+ const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
1715
+ this.sdk?.track_event(eventName, enhancedEventData);
1414
1716
  }
1415
1717
  /**
1416
1718
  * Track a user signup event
1417
1719
  * @param event The user signup event
1720
+ * @param adapterParams Optional adapter-specific parameters
1418
1721
  */
1419
- trackUserSignup(event) {
1420
- this.sdk?.track_event(EventNames.USER_SIGNED_UP, {
1722
+ trackUserSignup(event, adapterParams) {
1723
+ const eventName = this.getEventName(
1724
+ adapterParams,
1725
+ EventNames.USER_SIGNED_UP
1726
+ );
1727
+ const baseEventData = {
1421
1728
  user_id: event.userId,
1422
1729
  method: event.method,
1423
1730
  success: event.success
1424
- });
1731
+ };
1732
+ const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
1733
+ this.sdk?.track_event(eventName, enhancedEventData);
1425
1734
  if (event.userId && this.getConfig("enableUserIdentification", true)) {
1426
1735
  this.sdk?.add_unique_user_id(event.userId);
1427
1736
  }
@@ -1429,13 +1738,20 @@ var MoengageAdapter = class extends BaseAdapter {
1429
1738
  /**
1430
1739
  * Track a user login event
1431
1740
  * @param event The user login event
1741
+ * @param adapterParams Optional adapter-specific parameters
1432
1742
  */
1433
- trackUserLogin(event) {
1434
- this.sdk?.track_event(EventNames.USER_LOGGED_IN, {
1743
+ trackUserLogin(event, adapterParams) {
1744
+ const eventName = this.getEventName(
1745
+ adapterParams,
1746
+ EventNames.USER_LOGGED_IN
1747
+ );
1748
+ const baseEventData = {
1435
1749
  user_id: event.userId,
1436
1750
  method: event.method,
1437
1751
  success: event.success
1438
- });
1752
+ };
1753
+ const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
1754
+ this.sdk?.track_event(eventName, enhancedEventData);
1439
1755
  if (event.userId && this.getConfig("enableUserIdentification", true)) {
1440
1756
  this.sdk?.add_unique_user_id(event.userId);
1441
1757
  }
@@ -1443,9 +1759,13 @@ var MoengageAdapter = class extends BaseAdapter {
1443
1759
  /**
1444
1760
  * Track a custom event
1445
1761
  * @param event The custom event
1762
+ * @param adapterParams Optional adapter-specific parameters
1446
1763
  */
1447
- trackCustomEvent(event) {
1448
- this.sdk?.track_event(event.name, event.properties);
1764
+ trackCustomEvent(event, adapterParams) {
1765
+ const eventName = this.getEventName(adapterParams, event.name);
1766
+ const baseEventData = event.properties || {};
1767
+ const enhancedEventData = this.mergeEventData(baseEventData, adapterParams);
1768
+ this.sdk?.track_event(eventName, enhancedEventData);
1449
1769
  }
1450
1770
  /**
1451
1771
  * Convert an event to MoenGage parameters
@@ -1532,8 +1852,9 @@ var PostHogAdapter = class extends BaseAdapter {
1532
1852
  /**
1533
1853
  * Track an event with PostHog
1534
1854
  * @param event The event to track
1855
+ * @param adapterParams Optional adapter-specific parameters
1535
1856
  */
1536
- async trackEvent(event) {
1857
+ async trackEvent(event, adapterParams) {
1537
1858
  if (!this.initialized || typeof window === "undefined" || !window.posthog) {
1538
1859
  this.logger.warn(
1539
1860
  "Cannot track event, adapter not initialized or posthog not available",
@@ -1549,74 +1870,81 @@ var PostHogAdapter = class extends BaseAdapter {
1549
1870
  this.logger.debug("Tracking event", { eventType: event.type });
1550
1871
  switch (event.type) {
1551
1872
  case "page_view" /* PAGE_VIEW */:
1552
- this.trackPageView(event);
1873
+ this.trackPageView(event, adapterParams);
1553
1874
  break;
1554
1875
  case "product_view" /* PRODUCT_VIEW */:
1555
- this.trackProductView(event);
1876
+ this.trackProductView(event, adapterParams);
1556
1877
  break;
1557
1878
  case "add_to_cart" /* ADD_TO_CART */:
1558
- this.trackAddToCart(event);
1879
+ this.trackAddToCart(event, adapterParams);
1559
1880
  break;
1560
1881
  case "checkout_started" /* CHECKOUT_STARTED */:
1561
- this.trackCheckoutStarted(event);
1882
+ this.trackCheckoutStarted(event, adapterParams);
1562
1883
  break;
1563
1884
  case "checkout_completed" /* CHECKOUT_COMPLETED */:
1564
- this.trackCheckoutCompleted(event);
1885
+ this.trackCheckoutCompleted(event, adapterParams);
1565
1886
  break;
1566
1887
  case "add_payment_info" /* ADD_PAYMENT_INFO */:
1567
- this.trackAddPaymentInfo(event);
1888
+ this.trackAddPaymentInfo(event, adapterParams);
1568
1889
  break;
1569
1890
  case "search" /* SEARCH */:
1570
- this.trackSearch(event);
1891
+ this.trackSearch(event, adapterParams);
1571
1892
  break;
1572
1893
  default:
1573
- const params = this.eventToParams(event);
1574
- window.posthog?.capture(
1575
- event.type,
1576
- this.enhanceWithAffiliateParams(params)
1894
+ const eventName = this.getEventName(adapterParams, event.type);
1895
+ const baseParams = this.eventToParams(event);
1896
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1897
+ const enhancedParams = this.mergeEventData(
1898
+ affiliateParams,
1899
+ adapterParams
1577
1900
  );
1901
+ window.posthog?.capture(eventName, enhancedParams);
1578
1902
  break;
1579
1903
  }
1580
1904
  }
1581
1905
  /**
1582
1906
  * Track a page view event
1583
1907
  * @param event The page view event
1908
+ * @param adapterParams Optional adapter-specific parameters
1584
1909
  */
1585
- trackPageView(event) {
1586
- const params = {
1910
+ trackPageView(event, adapterParams) {
1911
+ const eventName = this.getEventName(adapterParams, "$pageview");
1912
+ const baseParams = {
1587
1913
  path: event.path,
1588
1914
  title: event.title,
1589
1915
  referrer: event.referrer
1590
1916
  };
1591
- window.posthog?.capture(
1592
- "$pageview",
1593
- this.enhanceWithAffiliateParams(params)
1594
- );
1917
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1918
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1919
+ window.posthog?.capture(eventName, enhancedParams);
1595
1920
  }
1596
1921
  /**
1597
1922
  * Track a product view event
1598
1923
  * @param event The product view event
1924
+ * @param adapterParams Optional adapter-specific parameters
1599
1925
  */
1600
- trackProductView(event) {
1601
- const params = {
1926
+ trackProductView(event, adapterParams) {
1927
+ const eventName = this.getEventName(adapterParams, "product_viewed");
1928
+ const baseParams = {
1602
1929
  product_id: event.productId,
1603
1930
  product_name: event.productName,
1604
1931
  category: event.category,
1605
1932
  price: event.price,
1606
1933
  currency: event.currency || "INR"
1607
1934
  };
1608
- window.posthog?.capture(
1609
- "product_viewed",
1610
- this.enhanceWithAffiliateParams(params)
1611
- );
1935
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1936
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1937
+ window.posthog?.capture(eventName, enhancedParams);
1612
1938
  }
1613
1939
  /**
1614
1940
  * Track an add to cart event
1615
1941
  * @param event The add to cart event
1942
+ * @param adapterParams Optional adapter-specific parameters
1616
1943
  */
1617
- trackAddToCart(event) {
1944
+ trackAddToCart(event, adapterParams) {
1618
1945
  this.logger.debug("Handling ADD_TO_CART event", { event });
1619
- const params = {
1946
+ const eventName = this.getEventName(adapterParams, "add_to_cart");
1947
+ const baseParams = {
1620
1948
  product_id: event.productId,
1621
1949
  product_name: event.productName,
1622
1950
  price: event.price,
@@ -1624,23 +1952,27 @@ var PostHogAdapter = class extends BaseAdapter {
1624
1952
  quantity: event.quantity,
1625
1953
  variant: event.variant
1626
1954
  };
1627
- this.logger.debug("Sending to PostHog with params", { params });
1955
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1956
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1957
+ this.logger.debug("Sending to PostHog with params", {
1958
+ eventName,
1959
+ params: enhancedParams
1960
+ });
1628
1961
  if (!window.posthog) {
1629
1962
  this.logger.error("window.posthog is not available");
1630
1963
  return;
1631
1964
  }
1632
- window.posthog.capture(
1633
- "add_to_cart",
1634
- this.enhanceWithAffiliateParams(params)
1635
- );
1965
+ window.posthog.capture(eventName, enhancedParams);
1636
1966
  this.logger.debug("Event sent to PostHog successfully");
1637
1967
  }
1638
1968
  /**
1639
1969
  * Track a checkout started event
1640
1970
  * @param event The checkout started event
1971
+ * @param adapterParams Optional adapter-specific parameters
1641
1972
  */
1642
- trackCheckoutStarted(event) {
1643
- const params = {
1973
+ trackCheckoutStarted(event, adapterParams) {
1974
+ const eventName = this.getEventName(adapterParams, "checkout_started");
1975
+ const baseParams = {
1644
1976
  cart_value: event.cartValue,
1645
1977
  currency: event.currency || "INR",
1646
1978
  item_count: event.itemCount,
@@ -1652,17 +1984,18 @@ var PostHogAdapter = class extends BaseAdapter {
1652
1984
  variant: item.variant
1653
1985
  }))
1654
1986
  };
1655
- window.posthog?.capture(
1656
- "checkout_started",
1657
- this.enhanceWithAffiliateParams(params)
1658
- );
1987
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
1988
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
1989
+ window.posthog?.capture(eventName, enhancedParams);
1659
1990
  }
1660
1991
  /**
1661
1992
  * Track a checkout completed event
1662
1993
  * @param event The checkout completed event
1994
+ * @param adapterParams Optional adapter-specific parameters
1663
1995
  */
1664
- trackCheckoutCompleted(event) {
1665
- const params = {
1996
+ trackCheckoutCompleted(event, adapterParams) {
1997
+ const eventName = this.getEventName(adapterParams, "purchase");
1998
+ const baseParams = {
1666
1999
  order_id: event.orderId,
1667
2000
  cart_value: event.cartValue,
1668
2001
  currency: event.currency || "INR",
@@ -1675,29 +2008,34 @@ var PostHogAdapter = class extends BaseAdapter {
1675
2008
  variant: item.variant
1676
2009
  }))
1677
2010
  };
1678
- window.posthog?.capture(
1679
- "purchase",
1680
- this.enhanceWithAffiliateParams(params)
1681
- );
2011
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
2012
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
2013
+ window.posthog?.capture(eventName, enhancedParams);
1682
2014
  }
1683
2015
  /**
1684
2016
  * Track a search event
1685
2017
  * @param event The search event
2018
+ * @param adapterParams Optional adapter-specific parameters
1686
2019
  */
1687
- trackSearch(event) {
1688
- const params = {
2020
+ trackSearch(event, adapterParams) {
2021
+ const eventName = this.getEventName(adapterParams, "search");
2022
+ const baseParams = {
1689
2023
  search_term: event.searchTerm,
1690
2024
  results_count: event.resultsCount,
1691
2025
  content_ids: event.content_ids
1692
2026
  };
1693
- window.posthog?.capture("search", this.enhanceWithAffiliateParams(params));
2027
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
2028
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
2029
+ window.posthog?.capture(eventName, enhancedParams);
1694
2030
  }
1695
2031
  /**
1696
2032
  * Track an add payment info event
1697
2033
  * @param event The add payment info event
2034
+ * @param adapterParams Optional adapter-specific parameters
1698
2035
  */
1699
- trackAddPaymentInfo(event) {
1700
- const params = {
2036
+ trackAddPaymentInfo(event, adapterParams) {
2037
+ const eventName = this.getEventName(adapterParams, "add_payment_info");
2038
+ const baseParams = {
1701
2039
  cart_value: event.cartValue,
1702
2040
  currency: event.currency || "INR",
1703
2041
  payment_type: event.paymentType,
@@ -1710,10 +2048,9 @@ var PostHogAdapter = class extends BaseAdapter {
1710
2048
  variant: item.variant
1711
2049
  }))
1712
2050
  };
1713
- window.posthog?.capture(
1714
- "add_payment_info",
1715
- this.enhanceWithAffiliateParams(params)
1716
- );
2051
+ const affiliateParams = this.enhanceWithAffiliateParams(baseParams);
2052
+ const enhancedParams = this.mergeEventData(affiliateParams, adapterParams);
2053
+ window.posthog?.capture(eventName, enhancedParams);
1717
2054
  }
1718
2055
  /**
1719
2056
  * Convert an event to PostHog parameters
@@ -1843,37 +2180,56 @@ var ShopifyAdapter = class extends BaseAdapter {
1843
2180
  /**
1844
2181
  * Track an event using Shopify Analytics
1845
2182
  */
1846
- async trackEvent(event) {
2183
+ async trackEvent(event, adapterParams) {
1847
2184
  if (!this.initialized || typeof window === "undefined") {
1848
2185
  this.logger.warn(
1849
2186
  "Shopify Analytics not initialized or not in browser environment"
1850
2187
  );
1851
2188
  return;
1852
2189
  }
2190
+ const params = this.getAdapterParams(adapterParams);
2191
+ const customEventName = this.getEventName(params, event.type);
1853
2192
  this.logger.debug("Processing Shopify Analytics event", {
1854
2193
  eventType: event.type,
1855
- eventData: event
2194
+ customEventName,
2195
+ eventData: event,
2196
+ adapterParams: params
1856
2197
  });
1857
2198
  try {
1858
2199
  switch (event.type) {
1859
2200
  case "page_view" /* PAGE_VIEW */:
1860
- this.sendPageView(AnalyticsEventName.PAGE_VIEW);
1861
- this.logger.debug("Sent PAGE_VIEW event to Shopify Analytics");
2201
+ const pageViewPayload = this.mergeEventData({}, params);
2202
+ this.sendPageView(AnalyticsEventName.PAGE_VIEW, pageViewPayload);
2203
+ this.logger.debug("Sent PAGE_VIEW event to Shopify Analytics", {
2204
+ payload: pageViewPayload
2205
+ });
1862
2206
  break;
1863
2207
  case "view_content" /* VIEW_CONTENT */:
1864
- this.sendPageView(AnalyticsEventName.PRODUCT_VIEW);
1865
- this.logger.debug("Sent PRODUCT_VIEW event to Shopify Analytics");
2208
+ const viewContentPayload = this.mergeEventData({}, params);
2209
+ this.sendPageView(
2210
+ AnalyticsEventName.PRODUCT_VIEW,
2211
+ viewContentPayload
2212
+ );
2213
+ this.logger.debug("Sent PRODUCT_VIEW event to Shopify Analytics", {
2214
+ payload: viewContentPayload
2215
+ });
1866
2216
  break;
1867
2217
  case "add_to_cart" /* ADD_TO_CART */:
1868
- this.trackAddToCart(event);
2218
+ const enhancedEvent = this.mergeEventData(event, params);
2219
+ this.trackAddToCart(enhancedEvent);
1869
2220
  break;
1870
2221
  case "checkout_started" /* CHECKOUT_STARTED */:
1871
2222
  case "begin_checkout" /* BEGIN_CHECKOUT */:
1872
- this.sendPageView(AnalyticsEventName.PAGE_VIEW, {
1873
- pageType: "checkout"
1874
- });
2223
+ const checkoutPayload = this.mergeEventData(
2224
+ {
2225
+ pageType: "checkout"
2226
+ },
2227
+ params
2228
+ );
2229
+ this.sendPageView(AnalyticsEventName.PAGE_VIEW, checkoutPayload);
1875
2230
  this.logger.debug(
1876
- "Sent checkout PAGE_VIEW event to Shopify Analytics"
2231
+ "Sent checkout PAGE_VIEW event to Shopify Analytics",
2232
+ { payload: checkoutPayload }
1877
2233
  );
1878
2234
  break;
1879
2235
  default:
@@ -1999,8 +2355,10 @@ var KwikPassAdapter = class extends BaseAdapter {
1999
2355
  }
2000
2356
  /**
2001
2357
  * Track an event using KwikPass
2358
+ * @param event The event to track
2359
+ * @param adapterParams Optional adapter-specific parameters
2002
2360
  */
2003
- async trackEvent(event) {
2361
+ async trackEvent(event, adapterParams) {
2004
2362
  if (!this.initialized || typeof window === "undefined") {
2005
2363
  this.logger.warn(
2006
2364
  "KwikPass adapter not initialized or not in browser environment"
@@ -2018,13 +2376,13 @@ var KwikPassAdapter = class extends BaseAdapter {
2018
2376
  const enhancedEvent = this.enhanceWithAffiliateParams(event);
2019
2377
  switch (event.type) {
2020
2378
  case "product_view" /* PRODUCT_VIEW */:
2021
- this.trackProductView(enhancedEvent);
2379
+ this.trackProductView(enhancedEvent, adapterParams);
2022
2380
  break;
2023
2381
  case "collection_view" /* COLLECTION_VIEW */:
2024
- this.trackCollectionView(enhancedEvent);
2382
+ this.trackCollectionView(enhancedEvent, adapterParams);
2025
2383
  break;
2026
2384
  case "page_view" /* PAGE_VIEW */:
2027
- this.trackPageView(enhancedEvent);
2385
+ this.trackPageView(enhancedEvent, adapterParams);
2028
2386
  break;
2029
2387
  default:
2030
2388
  this.logger.debug("Event not supported", { eventType: event.type });
@@ -2039,55 +2397,71 @@ var KwikPassAdapter = class extends BaseAdapter {
2039
2397
  /**
2040
2398
  * Send event to KwikPass platform
2041
2399
  */
2042
- sendKwikPassEvent(type, eventData) {
2043
- this.logger.debug(`Sending ${type}`, { eventData });
2400
+ sendKwikPassEvent(type, eventData, adapterParams) {
2401
+ const customEventType = this.getEventName(adapterParams, type);
2402
+ const enhancedEventData = this.mergeEventData(eventData, adapterParams);
2403
+ this.logger.debug(`Sending ${customEventType}`, {
2404
+ eventData: enhancedEventData
2405
+ });
2044
2406
  if (typeof window !== "undefined") {
2045
2407
  const customEvent = new CustomEvent(`page_view_kp`, {
2046
2408
  detail: {
2047
- type,
2048
- detail: eventData
2409
+ type: customEventType,
2410
+ detail: enhancedEventData
2049
2411
  }
2050
2412
  });
2051
2413
  window.dispatchEvent(customEvent);
2052
- this.logger.debug(`${type} sent successfully`);
2414
+ this.logger.debug(`${customEventType} sent successfully`);
2053
2415
  }
2054
2416
  }
2055
2417
  /**
2056
- * Track product view event
2418
+ * Track collection view event
2057
2419
  */
2058
- trackCollectionView(event) {
2059
- this.sendKwikPassEvent("collection", {
2060
- product_id: event.productId,
2061
- product_name: event.productName,
2062
- price: event.price,
2063
- currency: event.currency,
2064
- category: event.category,
2065
- timestamp: event.timestamp || Date.now()
2066
- });
2420
+ trackCollectionView(event, adapterParams) {
2421
+ this.sendKwikPassEvent(
2422
+ "collection",
2423
+ {
2424
+ product_id: event.productId,
2425
+ product_name: event.productName,
2426
+ price: event.price,
2427
+ currency: event.currency,
2428
+ category: event.category,
2429
+ timestamp: event.timestamp || Date.now()
2430
+ },
2431
+ adapterParams
2432
+ );
2067
2433
  }
2068
2434
  /**
2069
- * Track collection view event
2435
+ * Track product view event
2070
2436
  */
2071
- trackProductView(event) {
2072
- this.sendKwikPassEvent("product", {
2073
- product_id: event.productId,
2074
- product_name: event.productName,
2075
- price: event.price,
2076
- currency: event.currency,
2077
- category: event.category,
2078
- timestamp: event.timestamp || Date.now()
2079
- });
2437
+ trackProductView(event, adapterParams) {
2438
+ this.sendKwikPassEvent(
2439
+ "product",
2440
+ {
2441
+ product_id: event.productId,
2442
+ product_name: event.productName,
2443
+ price: event.price,
2444
+ currency: event.currency,
2445
+ category: event.category,
2446
+ timestamp: event.timestamp || Date.now()
2447
+ },
2448
+ adapterParams
2449
+ );
2080
2450
  }
2081
2451
  /**
2082
2452
  * Track page view event
2083
2453
  */
2084
- trackPageView(event) {
2085
- this.sendKwikPassEvent("other", {
2086
- path: event.path,
2087
- title: event.title,
2088
- referrer: event.referrer,
2089
- timestamp: event.timestamp || Date.now()
2090
- });
2454
+ trackPageView(event, adapterParams) {
2455
+ this.sendKwikPassEvent(
2456
+ "other",
2457
+ {
2458
+ path: event.path,
2459
+ title: event.title,
2460
+ referrer: event.referrer,
2461
+ timestamp: event.timestamp || Date.now()
2462
+ },
2463
+ adapterParams
2464
+ );
2091
2465
  }
2092
2466
  };
2093
2467
 
@@ -2121,8 +2495,10 @@ var KwikCheckoutAdapter = class extends BaseAdapter {
2121
2495
  }
2122
2496
  /**
2123
2497
  * Track an event using GoKwik
2498
+ * @param event The event to track
2499
+ * @param adapterParams Optional adapter-specific parameters
2124
2500
  */
2125
- async trackEvent(event) {
2501
+ async trackEvent(event, adapterParams) {
2126
2502
  if (!this.initialized || typeof window === "undefined") {
2127
2503
  this.logger.warn(
2128
2504
  "GoKwik adapter not initialized or not in browser environment"
@@ -2134,46 +2510,46 @@ var KwikCheckoutAdapter = class extends BaseAdapter {
2134
2510
  const enhancedEvent = this.enhanceWithAffiliateParams(event);
2135
2511
  switch (event.type) {
2136
2512
  case "started_checkout_gk" /* STARTED_CHECKOUT_GK */:
2137
- this.trackStartedCheckoutGK(enhancedEvent);
2513
+ this.trackStartedCheckoutGK(enhancedEvent, adapterParams);
2138
2514
  break;
2139
2515
  case "mobile_added_gk" /* MOBILE_ADDED_GK */:
2140
- this.trackMobileAddedGK(enhancedEvent);
2516
+ this.trackMobileAddedGK(enhancedEvent, adapterParams);
2141
2517
  break;
2142
2518
  case "address_selected_gk" /* ADDRESS_SELECTED_GK */:
2143
- this.trackAddressSelectedGK(enhancedEvent);
2519
+ this.trackAddressSelectedGK(enhancedEvent, adapterParams);
2144
2520
  break;
2145
2521
  case "address_completed_gk" /* ADDRESS_COMPLETED_GK */:
2146
- this.trackAddressCompletedGK(enhancedEvent);
2522
+ this.trackAddressCompletedGK(enhancedEvent, adapterParams);
2147
2523
  break;
2148
2524
  case "address_added_gk" /* ADDRESS_ADDED_GK */:
2149
- this.trackAddressAddedGK(enhancedEvent);
2525
+ this.trackAddressAddedGK(enhancedEvent, adapterParams);
2150
2526
  break;
2151
2527
  case "pin_code_added_gk" /* PIN_CODE_ADDED_GK */:
2152
- this.trackPinCodeAddedGK(enhancedEvent);
2528
+ this.trackPinCodeAddedGK(enhancedEvent, adapterParams);
2153
2529
  break;
2154
2530
  case "payment_method_selected_gk" /* PAYMENT_METHOD_SELECTED_GK */:
2155
- this.trackPaymentMethodSelectedGK(enhancedEvent);
2531
+ this.trackPaymentMethodSelectedGK(enhancedEvent, adapterParams);
2156
2532
  break;
2157
2533
  case "payment_completed_gk" /* PAYMENT_COMPLETED_GK */:
2158
- this.trackPaymentCompletedGK(enhancedEvent);
2534
+ this.trackPaymentCompletedGK(enhancedEvent, adapterParams);
2159
2535
  break;
2160
2536
  case "order_success" /* ORDER_SUCCESS */:
2161
- this.trackOrderSuccess(enhancedEvent);
2537
+ this.trackOrderSuccess(enhancedEvent, adapterParams);
2162
2538
  break;
2163
2539
  case "order_completed" /* ORDER_COMPLETED */:
2164
- this.trackOrderCompleted(enhancedEvent);
2540
+ this.trackOrderCompleted(enhancedEvent, adapterParams);
2165
2541
  break;
2166
2542
  case "cart_viewed" /* CART_VIEWED */:
2167
- this.trackCartViewed(enhancedEvent);
2543
+ this.trackCartViewed(enhancedEvent, adapterParams);
2168
2544
  break;
2169
2545
  case "checkout_started" /* CHECKOUT_STARTED */:
2170
- this.trackCheckoutStarted(enhancedEvent);
2546
+ this.trackCheckoutStarted(enhancedEvent, adapterParams);
2171
2547
  break;
2172
2548
  case "checkout_completed" /* CHECKOUT_COMPLETED */:
2173
- this.trackCheckoutCompleted(enhancedEvent);
2549
+ this.trackCheckoutCompleted(enhancedEvent, adapterParams);
2174
2550
  break;
2175
2551
  case "add_payment_info" /* ADD_PAYMENT_INFO */:
2176
- this.trackAddPaymentInfo(enhancedEvent);
2552
+ this.trackAddPaymentInfo(enhancedEvent, adapterParams);
2177
2553
  break;
2178
2554
  default:
2179
2555
  this.logger.debug("Event not supported", { eventType: event.type });
@@ -2188,171 +2564,233 @@ var KwikCheckoutAdapter = class extends BaseAdapter {
2188
2564
  /**
2189
2565
  * Send event to GoKwik platform
2190
2566
  */
2191
- sendGoKwikEvent(eventName, eventData) {
2192
- this.logger.debug(`Sending ${eventName}`, { eventData });
2567
+ sendGoKwikEvent(eventName, eventData, adapterParams) {
2568
+ const customEventName = this.getEventName(adapterParams, eventName);
2569
+ const enhancedEventData = this.mergeEventData(eventData, adapterParams);
2570
+ this.logger.debug(`Sending ${customEventName}`, {
2571
+ eventData: enhancedEventData
2572
+ });
2193
2573
  if (typeof window !== "undefined" && window.gokwikSdk) {
2194
2574
  try {
2195
- window.gokwikSdk.track?.(eventName, eventData);
2196
- this.logger.debug(`${eventName} sent via SDK successfully`);
2575
+ window.gokwikSdk.track?.(customEventName, enhancedEventData);
2576
+ this.logger.debug(`${customEventName} sent via SDK successfully`);
2197
2577
  } catch (error) {
2198
2578
  this.logger.error(
2199
- `Error sending GoKwik event ${eventName} via SDK`,
2579
+ `Error sending GoKwik event ${customEventName} via SDK`,
2200
2580
  error
2201
2581
  );
2202
2582
  }
2203
2583
  } else {
2204
2584
  if (typeof window !== "undefined") {
2205
- const customEvent = new CustomEvent(`gokwik_${eventName}`, {
2206
- detail: eventData
2585
+ const customEvent = new CustomEvent(`gokwik_${customEventName}`, {
2586
+ detail: enhancedEventData
2207
2587
  });
2208
2588
  window.dispatchEvent(customEvent);
2209
- this.logger.debug(`${eventName} sent via custom event successfully`);
2589
+ this.logger.debug(
2590
+ `${customEventName} sent via custom event successfully`
2591
+ );
2210
2592
  }
2211
2593
  }
2212
2594
  }
2213
2595
  /**
2214
2596
  * Track started checkout GK event
2215
2597
  */
2216
- trackStartedCheckoutGK(event) {
2217
- this.sendGoKwikEvent("started_checkout", {
2218
- cart_value: event.cartValue,
2219
- currency: event.currency,
2220
- timestamp: event.timestamp || Date.now()
2221
- });
2598
+ trackStartedCheckoutGK(event, adapterParams) {
2599
+ this.sendGoKwikEvent(
2600
+ "started_checkout",
2601
+ {
2602
+ cart_value: event.cartValue,
2603
+ currency: event.currency,
2604
+ timestamp: event.timestamp || Date.now()
2605
+ },
2606
+ adapterParams
2607
+ );
2222
2608
  }
2223
2609
  /**
2224
2610
  * Track mobile added GK event
2225
2611
  */
2226
- trackMobileAddedGK(event) {
2227
- this.sendGoKwikEvent("mobile_added", {
2228
- mobile: event.mobile,
2229
- timestamp: event.timestamp || Date.now()
2230
- });
2612
+ trackMobileAddedGK(event, adapterParams) {
2613
+ this.sendGoKwikEvent(
2614
+ "mobile_added",
2615
+ {
2616
+ mobile: event.mobile,
2617
+ timestamp: event.timestamp || Date.now()
2618
+ },
2619
+ adapterParams
2620
+ );
2231
2621
  }
2232
2622
  /**
2233
2623
  * Track address selected GK event
2234
2624
  */
2235
- trackAddressSelectedGK(event) {
2236
- this.sendGoKwikEvent("address_selected", {
2237
- address_id: event.addressId,
2238
- timestamp: event.timestamp || Date.now()
2239
- });
2625
+ trackAddressSelectedGK(event, adapterParams) {
2626
+ this.sendGoKwikEvent(
2627
+ "address_selected",
2628
+ {
2629
+ address_id: event.addressId,
2630
+ timestamp: event.timestamp || Date.now()
2631
+ },
2632
+ adapterParams
2633
+ );
2240
2634
  }
2241
2635
  /**
2242
2636
  * Track address completed GK event
2243
2637
  */
2244
- trackAddressCompletedGK(event) {
2245
- this.sendGoKwikEvent("address_completed", {
2246
- address_id: event.addressId,
2247
- timestamp: event.timestamp || Date.now()
2248
- });
2638
+ trackAddressCompletedGK(event, adapterParams) {
2639
+ this.sendGoKwikEvent(
2640
+ "address_completed",
2641
+ {
2642
+ address_id: event.addressId,
2643
+ timestamp: event.timestamp || Date.now()
2644
+ },
2645
+ adapterParams
2646
+ );
2249
2647
  }
2250
2648
  /**
2251
2649
  * Track address added GK event
2252
2650
  */
2253
- trackAddressAddedGK(event) {
2254
- this.sendGoKwikEvent("address_added", {
2255
- address_id: event.addressId,
2256
- timestamp: event.timestamp || Date.now()
2257
- });
2651
+ trackAddressAddedGK(event, adapterParams) {
2652
+ this.sendGoKwikEvent(
2653
+ "address_added",
2654
+ {
2655
+ address_id: event.addressId,
2656
+ timestamp: event.timestamp || Date.now()
2657
+ },
2658
+ adapterParams
2659
+ );
2258
2660
  }
2259
2661
  /**
2260
2662
  * Track PIN code added GK event
2261
2663
  */
2262
- trackPinCodeAddedGK(event) {
2263
- this.sendGoKwikEvent("pin_code_added", {
2264
- pin_code: event.pinCode,
2265
- timestamp: event.timestamp || Date.now()
2266
- });
2664
+ trackPinCodeAddedGK(event, adapterParams) {
2665
+ this.sendGoKwikEvent(
2666
+ "pin_code_added",
2667
+ {
2668
+ pin_code: event.pinCode,
2669
+ timestamp: event.timestamp || Date.now()
2670
+ },
2671
+ adapterParams
2672
+ );
2267
2673
  }
2268
2674
  /**
2269
2675
  * Track payment method selected GK event
2270
2676
  */
2271
- trackPaymentMethodSelectedGK(event) {
2272
- this.sendGoKwikEvent("payment_method_selected", {
2273
- payment_method: event.paymentMethod,
2274
- timestamp: event.timestamp || Date.now()
2275
- });
2677
+ trackPaymentMethodSelectedGK(event, adapterParams) {
2678
+ this.sendGoKwikEvent(
2679
+ "payment_method_selected",
2680
+ {
2681
+ payment_method: event.paymentMethod,
2682
+ timestamp: event.timestamp || Date.now()
2683
+ },
2684
+ adapterParams
2685
+ );
2276
2686
  }
2277
2687
  /**
2278
2688
  * Track payment completed GK event
2279
2689
  */
2280
- trackPaymentCompletedGK(event) {
2281
- this.sendGoKwikEvent("payment_completed", {
2282
- amount: event.amount,
2283
- currency: event.currency,
2284
- timestamp: event.timestamp || Date.now()
2285
- });
2690
+ trackPaymentCompletedGK(event, adapterParams) {
2691
+ this.sendGoKwikEvent(
2692
+ "payment_completed",
2693
+ {
2694
+ amount: event.amount,
2695
+ currency: event.currency,
2696
+ timestamp: event.timestamp || Date.now()
2697
+ },
2698
+ adapterParams
2699
+ );
2286
2700
  }
2287
2701
  /**
2288
2702
  * Track order success event
2289
2703
  */
2290
- trackOrderSuccess(event) {
2291
- this.sendGoKwikEvent("order_success", {
2292
- order_id: event.orderId,
2293
- amount: event.amount,
2294
- currency: event.currency,
2295
- timestamp: event.timestamp || Date.now()
2296
- });
2704
+ trackOrderSuccess(event, adapterParams) {
2705
+ this.sendGoKwikEvent(
2706
+ "order_success",
2707
+ {
2708
+ order_id: event.orderId,
2709
+ amount: event.amount,
2710
+ currency: event.currency,
2711
+ timestamp: event.timestamp || Date.now()
2712
+ },
2713
+ adapterParams
2714
+ );
2297
2715
  }
2298
2716
  /**
2299
2717
  * Track order completed event
2300
2718
  */
2301
- trackOrderCompleted(event) {
2302
- this.sendGoKwikEvent("order_completed", {
2303
- order_id: event.orderId,
2304
- amount: event.amount,
2305
- currency: event.currency,
2306
- timestamp: event.timestamp || Date.now()
2307
- });
2719
+ trackOrderCompleted(event, adapterParams) {
2720
+ this.sendGoKwikEvent(
2721
+ "order_completed",
2722
+ {
2723
+ order_id: event.orderId,
2724
+ amount: event.amount,
2725
+ currency: event.currency,
2726
+ timestamp: event.timestamp || Date.now()
2727
+ },
2728
+ adapterParams
2729
+ );
2308
2730
  }
2309
2731
  /**
2310
2732
  * Track cart viewed event
2311
2733
  */
2312
- trackCartViewed(event) {
2313
- this.sendGoKwikEvent("cart_viewed", {
2314
- cart_id: event.cartId,
2315
- products: event.products,
2316
- timestamp: event.timestamp || Date.now()
2317
- });
2734
+ trackCartViewed(event, adapterParams) {
2735
+ this.sendGoKwikEvent(
2736
+ "cart_viewed",
2737
+ {
2738
+ cart_id: event.cartId,
2739
+ products: event.products,
2740
+ timestamp: event.timestamp || Date.now()
2741
+ },
2742
+ adapterParams
2743
+ );
2318
2744
  }
2319
2745
  /**
2320
2746
  * Track checkout started event
2321
2747
  */
2322
- trackCheckoutStarted(event) {
2323
- this.sendGoKwikEvent("checkout_started", {
2324
- cart_value: event.cartValue,
2325
- currency: event.currency,
2326
- item_count: event.itemCount,
2327
- items: event.items,
2328
- timestamp: event.timestamp || Date.now()
2329
- });
2748
+ trackCheckoutStarted(event, adapterParams) {
2749
+ this.sendGoKwikEvent(
2750
+ "checkout_started",
2751
+ {
2752
+ cart_value: event.cartValue,
2753
+ currency: event.currency,
2754
+ item_count: event.itemCount,
2755
+ items: event.items,
2756
+ timestamp: event.timestamp || Date.now()
2757
+ },
2758
+ adapterParams
2759
+ );
2330
2760
  }
2331
2761
  /**
2332
2762
  * Track checkout completed event
2333
2763
  */
2334
- trackCheckoutCompleted(event) {
2335
- this.sendGoKwikEvent("checkout_completed", {
2336
- order_id: event.orderId,
2337
- cart_value: event.cartValue,
2338
- currency: event.currency,
2339
- item_count: event.itemCount,
2340
- items: event.items,
2341
- timestamp: event.timestamp || Date.now()
2342
- });
2764
+ trackCheckoutCompleted(event, adapterParams) {
2765
+ this.sendGoKwikEvent(
2766
+ "checkout_completed",
2767
+ {
2768
+ order_id: event.orderId,
2769
+ cart_value: event.cartValue,
2770
+ currency: event.currency,
2771
+ item_count: event.itemCount,
2772
+ items: event.items,
2773
+ timestamp: event.timestamp || Date.now()
2774
+ },
2775
+ adapterParams
2776
+ );
2343
2777
  }
2344
2778
  /**
2345
2779
  * Track add payment info event
2346
2780
  */
2347
- trackAddPaymentInfo(event) {
2348
- this.sendGoKwikEvent("add_payment_info", {
2349
- cart_value: event.cartValue,
2350
- currency: event.currency,
2351
- item_count: event.itemCount,
2352
- payment_type: event.paymentType,
2353
- items: event.items,
2354
- timestamp: event.timestamp || Date.now()
2355
- });
2781
+ trackAddPaymentInfo(event, adapterParams) {
2782
+ this.sendGoKwikEvent(
2783
+ "add_payment_info",
2784
+ {
2785
+ cart_value: event.cartValue,
2786
+ currency: event.currency,
2787
+ item_count: event.itemCount,
2788
+ payment_type: event.paymentType,
2789
+ items: event.items,
2790
+ timestamp: event.timestamp || Date.now()
2791
+ },
2792
+ adapterParams
2793
+ );
2356
2794
  }
2357
2795
  };
2358
2796
 
@@ -2365,11 +2803,10 @@ export {
2365
2803
  GoogleAdapter,
2366
2804
  EventNames,
2367
2805
  DEFAULT_CURRENCY,
2368
- HARDCODED_HANDLE,
2369
2806
  MoengageAdapter,
2370
2807
  PostHogAdapter,
2371
2808
  ShopifyAdapter,
2372
2809
  KwikPassAdapter,
2373
2810
  KwikCheckoutAdapter
2374
2811
  };
2375
- //# sourceMappingURL=chunk-4MZH5OLR.mjs.map
2812
+ //# sourceMappingURL=chunk-U3UOXFS4.mjs.map