@formo/analytics 1.17.9 → 1.18.0

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 (52) hide show
  1. package/README.md +0 -1
  2. package/dist/cjs/src/FormoAnalytics.d.ts +16 -12
  3. package/dist/cjs/src/FormoAnalytics.d.ts.map +1 -1
  4. package/dist/cjs/src/FormoAnalytics.js +208 -153
  5. package/dist/cjs/src/FormoAnalytics.js.map +1 -1
  6. package/dist/cjs/src/lib/event/EventFactory.d.ts +1 -0
  7. package/dist/cjs/src/lib/event/EventFactory.d.ts.map +1 -1
  8. package/dist/cjs/src/lib/event/EventFactory.js +15 -3
  9. package/dist/cjs/src/lib/event/EventFactory.js.map +1 -1
  10. package/dist/cjs/src/types/base.d.ts +15 -8
  11. package/dist/cjs/src/types/base.d.ts.map +1 -1
  12. package/dist/cjs/src/types/events.d.ts +1 -0
  13. package/dist/cjs/src/types/events.d.ts.map +1 -1
  14. package/dist/cjs/src/types/events.js.map +1 -1
  15. package/dist/cjs/src/types/provider.d.ts +3 -0
  16. package/dist/cjs/src/types/provider.d.ts.map +1 -1
  17. package/dist/cjs/src/utils/chain.d.ts +7 -0
  18. package/dist/cjs/src/utils/chain.d.ts.map +1 -0
  19. package/dist/cjs/src/utils/chain.js +17 -0
  20. package/dist/cjs/src/utils/chain.js.map +1 -0
  21. package/dist/cjs/src/validators/address.d.ts +2 -2
  22. package/dist/cjs/src/validators/address.d.ts.map +1 -1
  23. package/dist/cjs/src/validators/address.js +6 -6
  24. package/dist/cjs/src/validators/address.js.map +1 -1
  25. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  26. package/dist/esm/src/FormoAnalytics.d.ts +16 -12
  27. package/dist/esm/src/FormoAnalytics.d.ts.map +1 -1
  28. package/dist/esm/src/FormoAnalytics.js +208 -153
  29. package/dist/esm/src/FormoAnalytics.js.map +1 -1
  30. package/dist/esm/src/lib/event/EventFactory.d.ts +1 -0
  31. package/dist/esm/src/lib/event/EventFactory.d.ts.map +1 -1
  32. package/dist/esm/src/lib/event/EventFactory.js +15 -3
  33. package/dist/esm/src/lib/event/EventFactory.js.map +1 -1
  34. package/dist/esm/src/types/base.d.ts +15 -8
  35. package/dist/esm/src/types/base.d.ts.map +1 -1
  36. package/dist/esm/src/types/events.d.ts +1 -0
  37. package/dist/esm/src/types/events.d.ts.map +1 -1
  38. package/dist/esm/src/types/events.js.map +1 -1
  39. package/dist/esm/src/types/provider.d.ts +3 -0
  40. package/dist/esm/src/types/provider.d.ts.map +1 -1
  41. package/dist/esm/src/utils/chain.d.ts +7 -0
  42. package/dist/esm/src/utils/chain.d.ts.map +1 -0
  43. package/dist/esm/src/utils/chain.js +14 -0
  44. package/dist/esm/src/utils/chain.js.map +1 -0
  45. package/dist/esm/src/validators/address.d.ts +2 -2
  46. package/dist/esm/src/validators/address.d.ts.map +1 -1
  47. package/dist/esm/src/validators/address.js +4 -4
  48. package/dist/esm/src/validators/address.js.map +1 -1
  49. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  50. package/dist/index.umd.min.js +1 -1
  51. package/dist/index.umd.min.js.map +1 -1
  52. package/package.json +1 -1
package/README.md CHANGED
@@ -5,4 +5,3 @@ The Formo Analytics SDK is a Javascript library that allows you to track and ana
5
5
  ## Installation
6
6
 
7
7
  Please visit Formo's [Developer Docs](https://docs.formo.so) for detailed guides and installation instructions.
8
-
@@ -20,9 +20,10 @@ export declare class FormoAnalytics implements IFormoAnalytics {
20
20
  * @param {string} name - The name of the page
21
21
  * @param {Record<string, any>} properties - Additional properties to include
22
22
  * @param {Record<string, any>} context - Additional context to include
23
+ * @param {(...args: unknown[]) => void} callback - Optional callback function
23
24
  * @returns {Promise<void>}
24
25
  */
25
- page(category?: string, name?: string, properties?: IFormoEventProperties, context?: IFormoEventContext): Promise<void>;
26
+ page(category?: string, name?: string, properties?: IFormoEventProperties, context?: IFormoEventContext, callback?: (...args: unknown[]) => void): Promise<void>;
26
27
  /**
27
28
  * Reset the current user session.
28
29
  * @returns {void}
@@ -43,9 +44,9 @@ export declare class FormoAnalytics implements IFormoAnalytics {
43
44
  address: Address;
44
45
  }, properties?: IFormoEventProperties, context?: IFormoEventContext, callback?: (...args: unknown[]) => void): Promise<void>;
45
46
  /**
46
- * Emits a wallet disconnect event.
47
- * @param {ChainID} params.chainId
48
- * @param {Address} params.address
47
+ * Emits a disconnect wallet event.
48
+ * @param {ChainID} [params.chainId]
49
+ * @param {Address} [params.address]
49
50
  * @param {IFormoEventProperties} properties
50
51
  * @param {IFormoEventContext} context
51
52
  * @param {(...args: unknown[]) => void} callback
@@ -152,19 +153,22 @@ export declare class FormoAnalytics implements IFormoAnalytics {
152
153
  */
153
154
  track(event: string, properties?: IFormoEventProperties, context?: IFormoEventContext, callback?: (...args: unknown[]) => void): Promise<void>;
154
155
  private trackProvider;
155
- private registerAddressChangedListener;
156
+ private registerAccountsChangedListener;
157
+ private onAccountsChanged;
156
158
  private registerChainChangedListener;
157
- private registerRequestListeners;
158
- private onAddressChanged;
159
- private onAddressConnected;
160
- private handleDisconnect;
161
- private onAddressDisconnected;
162
159
  private onChainChanged;
163
- private trackFirstPageHit;
164
- private trackPageHits;
160
+ private registerConnectListener;
161
+ private onConnected;
162
+ private registerRequestListeners;
165
163
  private onLocationChange;
164
+ private trackPageHits;
166
165
  private trackPageHit;
167
166
  private trackEvent;
167
+ /**
168
+ * Determines if tracking should be enabled based on configuration
169
+ * @returns {boolean} True if tracking should be enabled
170
+ */
171
+ private shouldTrack;
168
172
  private getProviders;
169
173
  get providers(): readonly EIP6963ProviderDetail[];
170
174
  private detectWallets;
@@ -1 +1 @@
1
- {"version":3,"file":"FormoAnalytics.d.ts","sourceRoot":"","sources":["../../../src/FormoAnalytics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FormoAnalytics.d.ts","sourceRoot":"","sources":["../../../src/FormoAnalytics.ts"],"names":[],"mappings":"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"}
@@ -53,6 +53,7 @@ var constants_1 = require("./constants");
53
53
  var lib_1 = require("./lib");
54
54
  var types_1 = require("./types");
55
55
  var validators_1 = require("./validators");
56
+ var chain_1 = require("./utils/chain");
56
57
  var FormoAnalytics = /** @class */ (function () {
57
58
  function FormoAnalytics(writeKey, options) {
58
59
  if (options === void 0) { options = {}; }
@@ -65,8 +66,8 @@ var FormoAnalytics = /** @class */ (function () {
65
66
  this.currentUserId = "";
66
67
  this.config = {
67
68
  writeKey: writeKey,
68
- trackLocalhost: options.trackLocalhost || false,
69
69
  };
70
+ this.options = options;
70
71
  this.session = new FormoAnalyticsSession();
71
72
  this.currentUserId =
72
73
  (0, lib_1.cookie)().get(constants_1.SESSION_USER_ID_KEY) || undefined;
@@ -95,7 +96,7 @@ var FormoAnalytics = /** @class */ (function () {
95
96
  if (provider) {
96
97
  this.trackProvider(provider);
97
98
  }
98
- this.trackFirstPageHit();
99
+ this.trackPageHit();
99
100
  this.trackPageHits();
100
101
  }
101
102
  FormoAnalytics.init = function (writeKey, options) {
@@ -129,13 +130,14 @@ var FormoAnalytics = /** @class */ (function () {
129
130
  * @param {string} name - The name of the page
130
131
  * @param {Record<string, any>} properties - Additional properties to include
131
132
  * @param {Record<string, any>} context - Additional context to include
133
+ * @param {(...args: unknown[]) => void} callback - Optional callback function
132
134
  * @returns {Promise<void>}
133
135
  */
134
- FormoAnalytics.prototype.page = function (category, name, properties, context) {
136
+ FormoAnalytics.prototype.page = function (category, name, properties, context, callback) {
135
137
  return __awaiter(this, void 0, void 0, function () {
136
138
  return __generator(this, function (_a) {
137
139
  switch (_a.label) {
138
- case 0: return [4 /*yield*/, this.trackPageHit(category, name, properties, context)];
140
+ case 0: return [4 /*yield*/, this.trackPageHit(category, name, properties, context, callback)];
139
141
  case 1:
140
142
  _a.sent();
141
143
  return [2 /*return*/];
@@ -188,9 +190,9 @@ var FormoAnalytics = /** @class */ (function () {
188
190
  });
189
191
  };
190
192
  /**
191
- * Emits a wallet disconnect event.
192
- * @param {ChainID} params.chainId
193
- * @param {Address} params.address
193
+ * Emits a disconnect wallet event.
194
+ * @param {ChainID} [params.chainId]
195
+ * @param {Address} [params.address]
194
196
  * @param {IFormoEventProperties} properties
195
197
  * @param {IFormoEventContext} context
196
198
  * @param {(...args: unknown[]) => void} callback
@@ -198,15 +200,21 @@ var FormoAnalytics = /** @class */ (function () {
198
200
  */
199
201
  FormoAnalytics.prototype.disconnect = function (params, properties, context, callback) {
200
202
  return __awaiter(this, void 0, void 0, function () {
201
- var address, chainId;
203
+ var chainId, address;
202
204
  return __generator(this, function (_a) {
203
205
  switch (_a.label) {
204
206
  case 0:
205
- address = (params === null || params === void 0 ? void 0 : params.address) || this.currentAddress;
206
207
  chainId = (params === null || params === void 0 ? void 0 : params.chainId) || this.currentChainId;
207
- return [4 /*yield*/, this.handleDisconnect(chainId, address, properties, context, callback)];
208
+ address = (params === null || params === void 0 ? void 0 : params.address) || this.currentAddress;
209
+ return [4 /*yield*/, this.trackEvent(constants_1.EventType.DISCONNECT, {
210
+ chainId: chainId,
211
+ address: address,
212
+ }, properties, context, callback)];
208
213
  case 1:
209
214
  _a.sent();
215
+ this.currentAddress = undefined;
216
+ this.currentChainId = undefined;
217
+ lib_1.logger.info("Wallet disconnected: Cleared currentAddress and currentChainId");
210
218
  return [2 /*return*/];
211
219
  }
212
220
  });
@@ -360,7 +368,7 @@ var FormoAnalytics = /** @class */ (function () {
360
368
  case 8: return [2 /*return*/];
361
369
  case 9:
362
370
  userId = params.userId, address = params.address, providerName = params.providerName, rdns = params.rdns;
363
- lib_1.logger.debug("Identify", address, userId, providerName, rdns);
371
+ lib_1.logger.info("Identify", address, userId, providerName, rdns);
364
372
  if (address)
365
373
  this.currentAddress = address;
366
374
  if (userId) {
@@ -438,6 +446,7 @@ var FormoAnalytics = /** @class */ (function () {
438
446
  SDK tracking and event listener functions
439
447
  */
440
448
  FormoAnalytics.prototype.trackProvider = function (provider) {
449
+ lib_1.logger.info("trackProvider", provider);
441
450
  try {
442
451
  if (provider === this._provider) {
443
452
  lib_1.logger.warn("TrackProvider: Provider already tracked.");
@@ -455,33 +464,65 @@ var FormoAnalytics = /** @class */ (function () {
455
464
  }
456
465
  this._provider = provider;
457
466
  // Register listeners for web3 provider events
458
- this.registerAddressChangedListener();
467
+ this.registerAccountsChangedListener();
459
468
  this.registerChainChangedListener();
469
+ this.registerConnectListener();
460
470
  this.registerRequestListeners();
461
471
  }
462
472
  catch (error) {
463
473
  lib_1.logger.error("Error tracking provider:", error);
464
474
  }
465
475
  };
466
- FormoAnalytics.prototype.registerAddressChangedListener = function () {
476
+ FormoAnalytics.prototype.registerAccountsChangedListener = function () {
467
477
  var _this = this;
468
- var _a, _b;
478
+ var _a;
479
+ lib_1.logger.info("registerAccountsChangedListener");
469
480
  var listener = function () {
470
481
  var args = [];
471
482
  for (var _i = 0; _i < arguments.length; _i++) {
472
483
  args[_i] = arguments[_i];
473
484
  }
474
- return _this.onAddressChanged(args[0]);
485
+ return _this.onAccountsChanged(args[0]);
475
486
  };
476
487
  (_a = this._provider) === null || _a === void 0 ? void 0 : _a.on("accountsChanged", listener);
477
488
  this._providerListeners["accountsChanged"] = listener;
478
- var onAddressDisconnected = this.onAddressDisconnected.bind(this);
479
- (_b = this._provider) === null || _b === void 0 ? void 0 : _b.on("disconnect", onAddressDisconnected);
480
- this._providerListeners["disconnect"] = onAddressDisconnected;
489
+ };
490
+ FormoAnalytics.prototype.onAccountsChanged = function (accounts) {
491
+ return __awaiter(this, void 0, void 0, function () {
492
+ var address, _a;
493
+ return __generator(this, function (_b) {
494
+ switch (_b.label) {
495
+ case 0:
496
+ lib_1.logger.info("onAccountsChanged", accounts);
497
+ if (!(accounts.length === 0)) return [3 /*break*/, 2];
498
+ // Handle wallet disconnect
499
+ return [4 /*yield*/, this.disconnect()];
500
+ case 1:
501
+ // Handle wallet disconnect
502
+ _b.sent();
503
+ return [2 /*return*/];
504
+ case 2:
505
+ address = accounts[0];
506
+ if (address === this.currentAddress) {
507
+ // We have already reported this address
508
+ return [2 /*return*/];
509
+ }
510
+ // Handle wallet connect
511
+ this.currentAddress = address;
512
+ _a = this;
513
+ return [4 /*yield*/, this.getCurrentChainId()];
514
+ case 3:
515
+ _a.currentChainId = _b.sent();
516
+ this.connect({ chainId: this.currentChainId, address: address });
517
+ return [2 /*return*/];
518
+ }
519
+ });
520
+ });
481
521
  };
482
522
  FormoAnalytics.prototype.registerChainChangedListener = function () {
483
523
  var _this = this;
484
524
  var _a;
525
+ lib_1.logger.info("registerChainChangedListener");
485
526
  var listener = function () {
486
527
  var args = [];
487
528
  for (var _i = 0; _i < arguments.length; _i++) {
@@ -492,10 +533,92 @@ var FormoAnalytics = /** @class */ (function () {
492
533
  (_a = this.provider) === null || _a === void 0 ? void 0 : _a.on("chainChanged", listener);
493
534
  this._providerListeners["chainChanged"] = listener;
494
535
  };
536
+ FormoAnalytics.prototype.onChainChanged = function (chainIdHex) {
537
+ return __awaiter(this, void 0, void 0, function () {
538
+ var address;
539
+ return __generator(this, function (_a) {
540
+ switch (_a.label) {
541
+ case 0:
542
+ lib_1.logger.info("onChainChanged", chainIdHex);
543
+ this.currentChainId = (0, chain_1.parseChainId)(chainIdHex);
544
+ if (!!this.currentAddress) return [3 /*break*/, 2];
545
+ if (!this.provider) {
546
+ lib_1.logger.info("OnChainChanged: Provider not found. CHAIN_CHANGED not reported");
547
+ return [2 /*return*/, Promise.resolve()];
548
+ }
549
+ return [4 /*yield*/, this.getAddress()];
550
+ case 1:
551
+ address = _a.sent();
552
+ if (!address) {
553
+ lib_1.logger.info("OnChainChanged: Unable to fetch or store connected address");
554
+ return [2 /*return*/, Promise.resolve()];
555
+ }
556
+ this.currentAddress = address;
557
+ _a.label = 2;
558
+ case 2:
559
+ // Proceed only if the address exists
560
+ if (this.currentAddress) {
561
+ return [2 /*return*/, this.chain({
562
+ chainId: this.currentChainId,
563
+ address: this.currentAddress,
564
+ })];
565
+ }
566
+ else {
567
+ lib_1.logger.info("OnChainChanged: Current connected address is null despite fetch attempt");
568
+ }
569
+ return [2 /*return*/];
570
+ }
571
+ });
572
+ });
573
+ };
574
+ FormoAnalytics.prototype.registerConnectListener = function () {
575
+ var _this = this;
576
+ var _a;
577
+ lib_1.logger.info("registerConnectListener");
578
+ var listener = function () {
579
+ var args = [];
580
+ for (var _i = 0; _i < arguments.length; _i++) {
581
+ args[_i] = arguments[_i];
582
+ }
583
+ var connection = args[0];
584
+ _this.onConnected(connection);
585
+ };
586
+ (_a = this._provider) === null || _a === void 0 ? void 0 : _a.on("connect", listener);
587
+ this._providerListeners["connect"] = listener;
588
+ };
589
+ FormoAnalytics.prototype.onConnected = function (connection) {
590
+ return __awaiter(this, void 0, void 0, function () {
591
+ var chainId, address, e_2;
592
+ return __generator(this, function (_a) {
593
+ switch (_a.label) {
594
+ case 0:
595
+ lib_1.logger.info("onConnected", connection);
596
+ _a.label = 1;
597
+ case 1:
598
+ _a.trys.push([1, 3, , 4]);
599
+ if (!connection || typeof connection.chainId !== 'string')
600
+ return [2 /*return*/];
601
+ chainId = (0, chain_1.parseChainId)(connection.chainId);
602
+ return [4 /*yield*/, this.getAddress()];
603
+ case 2:
604
+ address = _a.sent();
605
+ if (chainId !== null && chainId !== undefined && address) {
606
+ this.connect({ chainId: chainId, address: address });
607
+ }
608
+ return [3 /*break*/, 4];
609
+ case 3:
610
+ e_2 = _a.sent();
611
+ lib_1.logger.error("Error handling connect event", e_2);
612
+ return [3 /*break*/, 4];
613
+ case 4: return [2 /*return*/];
614
+ }
615
+ });
616
+ });
617
+ };
495
618
  FormoAnalytics.prototype.registerRequestListeners = function () {
496
619
  var _this = this;
497
620
  var _a;
498
- lib_1.logger.debug("registerRequestListeners");
621
+ lib_1.logger.info("registerRequestListeners");
499
622
  if (!this.provider) {
500
623
  lib_1.logger.error("Provider not found for request (signature, transaction) tracking");
501
624
  return;
@@ -570,7 +693,7 @@ var FormoAnalytics = /** @class */ (function () {
570
693
  method === "eth_sendTransaction" &&
571
694
  params[0])) return [3 /*break*/, 8];
572
695
  (function () { return __awaiter(_this, void 0, void 0, function () {
573
- var payload, e_2;
696
+ var payload, e_3;
574
697
  return __generator(this, function (_a) {
575
698
  switch (_a.label) {
576
699
  case 0:
@@ -581,8 +704,8 @@ var FormoAnalytics = /** @class */ (function () {
581
704
  this.transaction(__assign({ status: types_1.TransactionStatus.STARTED }, payload));
582
705
  return [3 /*break*/, 3];
583
706
  case 2:
584
- e_2 = _a.sent();
585
- lib_1.logger.error("Formo: Failed to track transaction start", e_2);
707
+ e_3 = _a.sent();
708
+ lib_1.logger.error("Formo: Failed to track transaction start", e_3);
586
709
  return [3 /*break*/, 3];
587
710
  case 3: return [2 /*return*/];
588
711
  }
@@ -598,7 +721,7 @@ var FormoAnalytics = /** @class */ (function () {
598
721
  case 6:
599
722
  transactionHash_1 = (_c.sent());
600
723
  (function () { return __awaiter(_this, void 0, void 0, function () {
601
- var payload, e_3;
724
+ var payload, e_4;
602
725
  return __generator(this, function (_a) {
603
726
  switch (_a.label) {
604
727
  case 0:
@@ -611,8 +734,8 @@ var FormoAnalytics = /** @class */ (function () {
611
734
  this.pollTransactionReceipt(transactionHash_1, payload);
612
735
  return [3 /*break*/, 3];
613
736
  case 2:
614
- e_3 = _a.sent();
615
- lib_1.logger.error("Formo: Failed to track transaction broadcast", e_3);
737
+ e_4 = _a.sent();
738
+ lib_1.logger.error("Formo: Failed to track transaction broadcast", e_4);
616
739
  return [3 /*break*/, 3];
617
740
  case 3: return [2 /*return*/];
618
741
  }
@@ -622,7 +745,7 @@ var FormoAnalytics = /** @class */ (function () {
622
745
  case 7:
623
746
  error_2 = _c.sent();
624
747
  (function () { return __awaiter(_this, void 0, void 0, function () {
625
- var rpcError, payload, e_4;
748
+ var rpcError, payload, e_5;
626
749
  return __generator(this, function (_a) {
627
750
  switch (_a.label) {
628
751
  case 0:
@@ -636,8 +759,8 @@ var FormoAnalytics = /** @class */ (function () {
636
759
  _a.label = 2;
637
760
  case 2: return [3 /*break*/, 4];
638
761
  case 3:
639
- e_4 = _a.sent();
640
- lib_1.logger.error("Formo: Failed to track transaction rejection", e_4);
762
+ e_5 = _a.sent();
763
+ lib_1.logger.error("Formo: Failed to track transaction rejection", e_5);
641
764
  return [3 /*break*/, 4];
642
765
  case 4: return [2 /*return*/];
643
766
  }
@@ -649,116 +772,16 @@ var FormoAnalytics = /** @class */ (function () {
649
772
  });
650
773
  }); };
651
774
  };
652
- FormoAnalytics.prototype.onAddressChanged = function (addresses) {
653
- return __awaiter(this, void 0, void 0, function () {
654
- return __generator(this, function (_a) {
655
- if (addresses.length > 0) {
656
- this.onAddressConnected(addresses[0]);
657
- }
658
- else {
659
- this.onAddressDisconnected();
660
- }
661
- return [2 /*return*/];
662
- });
663
- });
664
- };
665
- FormoAnalytics.prototype.onAddressConnected = function (address) {
666
- return __awaiter(this, void 0, void 0, function () {
667
- var _a;
668
- return __generator(this, function (_b) {
669
- switch (_b.label) {
670
- case 0:
671
- if (address === this.currentAddress)
672
- // We have already reported this address
673
- return [2 /*return*/];
674
- this.currentAddress = address;
675
- _a = this;
676
- return [4 /*yield*/, this.getCurrentChainId()];
677
- case 1:
678
- _a.currentChainId = _b.sent();
679
- this.connect({ chainId: this.currentChainId, address: address });
680
- return [2 /*return*/];
681
- }
682
- });
683
- });
684
- };
685
- FormoAnalytics.prototype.handleDisconnect = function (chainId, address, properties, context, callback) {
686
- return __awaiter(this, void 0, void 0, function () {
687
- var payload;
688
- return __generator(this, function (_a) {
689
- switch (_a.label) {
690
- case 0:
691
- payload = {
692
- chainId: chainId || this.currentChainId,
693
- address: address || this.currentAddress,
694
- };
695
- this.currentChainId = undefined;
696
- this.currentAddress = undefined;
697
- (0, lib_1.cookie)().remove(constants_1.SESSION_USER_ID_KEY);
698
- return [4 /*yield*/, this.trackEvent(constants_1.EventType.DISCONNECT, payload, properties, context, callback)];
699
- case 1:
700
- _a.sent();
701
- return [2 /*return*/];
702
- }
703
- });
704
- });
705
- };
706
- FormoAnalytics.prototype.onAddressDisconnected = function () {
707
- return __awaiter(this, void 0, void 0, function () {
708
- return __generator(this, function (_a) {
709
- switch (_a.label) {
710
- case 0: return [4 /*yield*/, this.handleDisconnect(this.currentChainId, this.currentAddress)];
711
- case 1:
712
- _a.sent();
713
- return [2 /*return*/];
714
- }
715
- });
716
- });
717
- };
718
- FormoAnalytics.prototype.onChainChanged = function (chainIdHex) {
719
- return __awaiter(this, void 0, void 0, function () {
720
- var address;
721
- return __generator(this, function (_a) {
722
- switch (_a.label) {
723
- case 0:
724
- this.currentChainId = parseInt(chainIdHex);
725
- if (!!this.currentAddress) return [3 /*break*/, 2];
726
- if (!this.provider) {
727
- lib_1.logger.info("OnChainChanged: Provider not found. CHAIN_CHANGED not reported");
728
- return [2 /*return*/, Promise.resolve()];
729
- }
730
- return [4 /*yield*/, this.getAddress()];
731
- case 1:
732
- address = _a.sent();
733
- if (!address) {
734
- lib_1.logger.info("OnChainChanged: Unable to fetch or store connected address");
735
- return [2 /*return*/, Promise.resolve()];
736
- }
737
- this.currentAddress = address;
738
- _a.label = 2;
739
- case 2:
740
- // Proceed only if the address exists
741
- if (this.currentAddress) {
742
- return [2 /*return*/, this.chain({
743
- chainId: this.currentChainId,
744
- address: this.currentAddress,
745
- })];
746
- }
747
- else {
748
- lib_1.logger.info("OnChainChanged: Current connected address is null despite fetch attempt");
749
- }
750
- return [2 /*return*/];
751
- }
752
- });
753
- });
754
- };
755
- FormoAnalytics.prototype.trackFirstPageHit = function () {
775
+ FormoAnalytics.prototype.onLocationChange = function () {
756
776
  return __awaiter(this, void 0, void 0, function () {
777
+ var currentUrl;
757
778
  return __generator(this, function (_a) {
758
- if ((0, lib_1.cookie)().get(constants_1.SESSION_CURRENT_URL_KEY) === null) {
779
+ currentUrl = (0, lib_1.cookie)().get(constants_1.SESSION_CURRENT_URL_KEY);
780
+ if (currentUrl !== window.location.href) {
759
781
  (0, lib_1.cookie)().set(constants_1.SESSION_CURRENT_URL_KEY, window.location.href);
782
+ this.trackPageHit();
760
783
  }
761
- return [2 /*return*/, this.trackPageHit()];
784
+ return [2 /*return*/];
762
785
  });
763
786
  });
764
787
  };
@@ -793,25 +816,13 @@ var FormoAnalytics = /** @class */ (function () {
793
816
  });
794
817
  });
795
818
  };
796
- FormoAnalytics.prototype.onLocationChange = function () {
797
- return __awaiter(this, void 0, void 0, function () {
798
- var currentUrl;
799
- return __generator(this, function (_a) {
800
- currentUrl = (0, lib_1.cookie)().get(constants_1.SESSION_CURRENT_URL_KEY);
801
- if (currentUrl !== window.location.href) {
802
- (0, lib_1.cookie)().set(constants_1.SESSION_CURRENT_URL_KEY, window.location.href);
803
- this.trackPageHit();
804
- }
805
- return [2 /*return*/];
806
- });
807
- });
808
- };
809
819
  FormoAnalytics.prototype.trackPageHit = function (category, name, properties, context, callback) {
810
820
  return __awaiter(this, void 0, void 0, function () {
811
821
  var _this = this;
812
822
  return __generator(this, function (_a) {
813
- if (!this.config.trackLocalhost && (0, validators_1.isLocalhost)()) {
814
- return [2 /*return*/, lib_1.logger.warn("Track page hit: Ignoring event because website is running locally")];
823
+ if (!this.shouldTrack()) {
824
+ lib_1.logger.info("Track page hit: Skipping event due to tracking configuration");
825
+ return [2 /*return*/];
815
826
  }
816
827
  setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {
817
828
  return __generator(this, function (_a) {
@@ -830,6 +841,10 @@ var FormoAnalytics = /** @class */ (function () {
830
841
  return __awaiter(this, void 0, void 0, function () {
831
842
  return __generator(this, function (_a) {
832
843
  try {
844
+ if (!this.shouldTrack()) {
845
+ lib_1.logger.info("Skipping ".concat(type, " event due to tracking configuration"));
846
+ return [2 /*return*/];
847
+ }
833
848
  this.eventManager.addEvent(__assign(__assign({ type: type }, payload), { properties: properties, context: context, callback: callback }), this.currentAddress, this.currentUserId);
834
849
  }
835
850
  catch (error) {
@@ -839,6 +854,46 @@ var FormoAnalytics = /** @class */ (function () {
839
854
  });
840
855
  });
841
856
  };
857
+ /**
858
+ * Determines if tracking should be enabled based on configuration
859
+ * @returns {boolean} True if tracking should be enabled
860
+ */
861
+ FormoAnalytics.prototype.shouldTrack = function () {
862
+ // Check if tracking is explicitly provided as a boolean
863
+ if (typeof this.options.tracking === 'boolean') {
864
+ return this.options.tracking;
865
+ }
866
+ // Handle object configuration with exclusion rules
867
+ if (this.options.tracking !== null &&
868
+ typeof this.options.tracking === 'object' &&
869
+ !Array.isArray(this.options.tracking)) {
870
+ var _a = this.options.tracking, _b = _a.excludeHosts, excludeHosts = _b === void 0 ? [] : _b, _c = _a.excludePaths, excludePaths = _c === void 0 ? [] : _c, _d = _a.excludeChains, excludeChains = _d === void 0 ? [] : _d;
871
+ // Check hostname exclusions - use exact matching
872
+ if (excludeHosts.length > 0 && typeof window !== 'undefined') {
873
+ var hostname = window.location.hostname;
874
+ if (excludeHosts.includes(hostname)) {
875
+ return false;
876
+ }
877
+ }
878
+ // Check path exclusions - use exact matching
879
+ if (excludePaths.length > 0 && typeof window !== 'undefined') {
880
+ var pathname = window.location.pathname;
881
+ if (excludePaths.includes(pathname)) {
882
+ return false;
883
+ }
884
+ }
885
+ // Check chainId exclusions
886
+ if (excludeChains.length > 0 &&
887
+ this.currentChainId &&
888
+ excludeChains.includes(this.currentChainId)) {
889
+ return false;
890
+ }
891
+ // If nothing is excluded, tracking is enabled
892
+ return true;
893
+ }
894
+ // Default behavior: track everywhere except localhost
895
+ return !(0, validators_1.isLocalhost)();
896
+ };
842
897
  /*
843
898
  Utility functions
844
899
  */
@@ -994,7 +1049,7 @@ var FormoAnalytics = /** @class */ (function () {
994
1049
  lib_1.logger.info("Chain id not found");
995
1050
  return [2 /*return*/, 0];
996
1051
  }
997
- return [2 /*return*/, parseInt(chainIdHex, 16)];
1052
+ return [2 /*return*/, (0, chain_1.parseChainId)(chainIdHex)];
998
1053
  case 3:
999
1054
  err_5 = _b.sent();
1000
1055
  lib_1.logger.error("eth_chainId threw an error:", err_5);
@@ -1057,7 +1112,7 @@ var FormoAnalytics = /** @class */ (function () {
1057
1112
  if (!provider)
1058
1113
  return [2 /*return*/];
1059
1114
  poll = function () { return __awaiter(_this, void 0, void 0, function () {
1060
- var receipt, e_5;
1115
+ var receipt, e_6;
1061
1116
  return __generator(this, function (_a) {
1062
1117
  switch (_a.label) {
1063
1118
  case 0:
@@ -1081,8 +1136,8 @@ var FormoAnalytics = /** @class */ (function () {
1081
1136
  }
1082
1137
  return [3 /*break*/, 3];
1083
1138
  case 2:
1084
- e_5 = _a.sent();
1085
- lib_1.logger.error("Error polling transaction receipt", e_5);
1139
+ e_6 = _a.sent();
1140
+ lib_1.logger.error("Error polling transaction receipt", e_6);
1086
1141
  return [3 /*break*/, 3];
1087
1142
  case 3:
1088
1143
  attempts++;