@formo/analytics 1.14.2 → 1.15.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 (178) hide show
  1. package/dist/cjs/src/FormoAnalytics.d.ts +10 -0
  2. package/dist/cjs/src/FormoAnalytics.d.ts.map +1 -1
  3. package/dist/cjs/src/FormoAnalytics.js +181 -102
  4. package/dist/cjs/src/FormoAnalytics.js.map +1 -1
  5. package/dist/cjs/src/FormoAnalyticsProvider.d.ts.map +1 -1
  6. package/dist/cjs/src/FormoAnalyticsProvider.js +6 -5
  7. package/dist/cjs/src/FormoAnalyticsProvider.js.map +1 -1
  8. package/dist/cjs/src/constants/base.d.ts +3 -1
  9. package/dist/cjs/src/constants/base.d.ts.map +1 -1
  10. package/dist/cjs/src/constants/base.js +7 -3
  11. package/dist/cjs/src/constants/base.js.map +1 -1
  12. package/dist/cjs/src/constants/config.d.ts +6 -1
  13. package/dist/cjs/src/constants/config.d.ts.map +1 -1
  14. package/dist/cjs/src/constants/config.js +9 -3
  15. package/dist/cjs/src/constants/config.js.map +1 -1
  16. package/dist/cjs/src/lib/fetch.d.ts +3 -0
  17. package/dist/cjs/src/lib/fetch.d.ts.map +1 -0
  18. package/dist/cjs/src/lib/fetch.js +8 -0
  19. package/dist/cjs/src/lib/fetch.js.map +1 -0
  20. package/dist/cjs/src/lib/index.d.ts +4 -2
  21. package/dist/cjs/src/lib/index.d.ts.map +1 -1
  22. package/dist/cjs/src/lib/index.js +6 -4
  23. package/dist/cjs/src/lib/index.js.map +1 -1
  24. package/dist/cjs/src/lib/logger.d.ts +22 -0
  25. package/dist/cjs/src/lib/logger.d.ts.map +1 -0
  26. package/dist/cjs/src/lib/logger.js +114 -0
  27. package/dist/cjs/src/lib/logger.js.map +1 -0
  28. package/dist/cjs/src/lib/queue.d.ts +2 -3
  29. package/dist/cjs/src/lib/queue.d.ts.map +1 -1
  30. package/dist/cjs/src/lib/queue.js +42 -64
  31. package/dist/cjs/src/lib/queue.js.map +1 -1
  32. package/dist/cjs/src/lib/storage/index.d.ts +3 -0
  33. package/dist/cjs/src/lib/storage/index.d.ts.map +1 -0
  34. package/dist/cjs/src/lib/storage/index.js +11 -0
  35. package/dist/cjs/src/lib/storage/index.js.map +1 -0
  36. package/dist/cjs/src/lib/storage/local.d.ts +4 -0
  37. package/dist/cjs/src/lib/storage/local.d.ts.map +1 -0
  38. package/dist/cjs/src/lib/storage/local.js +8 -0
  39. package/dist/cjs/src/lib/storage/local.js.map +1 -0
  40. package/dist/cjs/src/lib/storage/native.d.ts +15 -0
  41. package/dist/cjs/src/lib/storage/native.d.ts.map +1 -0
  42. package/dist/cjs/src/lib/storage/native.js +83 -0
  43. package/dist/cjs/src/lib/storage/native.js.map +1 -0
  44. package/dist/cjs/src/lib/storage/session.d.ts +4 -0
  45. package/dist/cjs/src/lib/storage/session.d.ts.map +1 -0
  46. package/dist/cjs/src/lib/storage/session.js +8 -0
  47. package/dist/cjs/src/lib/storage/session.js.map +1 -0
  48. package/dist/cjs/src/types/base.d.ts +5 -0
  49. package/dist/cjs/src/types/base.d.ts.map +1 -1
  50. package/dist/cjs/src/types/events.d.ts +6 -0
  51. package/dist/cjs/src/types/events.d.ts.map +1 -1
  52. package/dist/cjs/src/types/events.js.map +1 -1
  53. package/dist/cjs/src/{lib/utils.d.ts → utils/base.d.ts} +4 -3
  54. package/dist/cjs/src/utils/base.d.ts.map +1 -0
  55. package/dist/cjs/src/utils/base.js +113 -0
  56. package/dist/cjs/src/utils/base.js.map +1 -0
  57. package/dist/cjs/src/utils/index.d.ts +3 -0
  58. package/dist/cjs/src/utils/index.d.ts.map +1 -0
  59. package/dist/cjs/src/utils/index.js +19 -0
  60. package/dist/cjs/src/utils/index.js.map +1 -0
  61. package/dist/cjs/src/utils/is.d.ts +3 -0
  62. package/dist/cjs/src/utils/is.d.ts.map +1 -0
  63. package/dist/cjs/src/utils/is.js +11 -0
  64. package/dist/cjs/src/utils/is.js.map +1 -0
  65. package/dist/cjs/test/lib.spec.js +5 -5
  66. package/dist/cjs/test/lib.spec.js.map +1 -1
  67. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  68. package/dist/esm/src/FormoAnalytics.d.ts +10 -0
  69. package/dist/esm/src/FormoAnalytics.d.ts.map +1 -1
  70. package/dist/esm/src/FormoAnalytics.js +179 -100
  71. package/dist/esm/src/FormoAnalytics.js.map +1 -1
  72. package/dist/esm/src/FormoAnalyticsProvider.d.ts.map +1 -1
  73. package/dist/esm/src/FormoAnalyticsProvider.js +6 -5
  74. package/dist/esm/src/FormoAnalyticsProvider.js.map +1 -1
  75. package/dist/esm/src/constants/base.d.ts +3 -1
  76. package/dist/esm/src/constants/base.d.ts.map +1 -1
  77. package/dist/esm/src/constants/base.js +6 -2
  78. package/dist/esm/src/constants/base.js.map +1 -1
  79. package/dist/esm/src/constants/config.d.ts +6 -1
  80. package/dist/esm/src/constants/config.d.ts.map +1 -1
  81. package/dist/esm/src/constants/config.js +7 -2
  82. package/dist/esm/src/constants/config.js.map +1 -1
  83. package/dist/esm/src/lib/fetch.d.ts +3 -0
  84. package/dist/esm/src/lib/fetch.d.ts.map +1 -0
  85. package/dist/esm/src/lib/fetch.js +3 -0
  86. package/dist/esm/src/lib/fetch.js.map +1 -0
  87. package/dist/esm/src/lib/index.d.ts +4 -2
  88. package/dist/esm/src/lib/index.d.ts.map +1 -1
  89. package/dist/esm/src/lib/index.js +4 -2
  90. package/dist/esm/src/lib/index.js.map +1 -1
  91. package/dist/esm/src/lib/logger.d.ts +22 -0
  92. package/dist/esm/src/lib/logger.d.ts.map +1 -0
  93. package/dist/esm/src/lib/logger.js +111 -0
  94. package/dist/esm/src/lib/logger.js.map +1 -0
  95. package/dist/esm/src/lib/queue.d.ts +2 -3
  96. package/dist/esm/src/lib/queue.d.ts.map +1 -1
  97. package/dist/esm/src/lib/queue.js +42 -64
  98. package/dist/esm/src/lib/queue.js.map +1 -1
  99. package/dist/esm/src/lib/storage/index.d.ts +3 -0
  100. package/dist/esm/src/lib/storage/index.d.ts.map +1 -0
  101. package/dist/esm/src/lib/storage/index.js +3 -0
  102. package/dist/esm/src/lib/storage/index.js.map +1 -0
  103. package/dist/esm/src/lib/storage/local.d.ts +4 -0
  104. package/dist/esm/src/lib/storage/local.d.ts.map +1 -0
  105. package/dist/esm/src/lib/storage/local.js +3 -0
  106. package/dist/esm/src/lib/storage/local.js.map +1 -0
  107. package/dist/esm/src/lib/storage/native.d.ts +15 -0
  108. package/dist/esm/src/lib/storage/native.d.ts.map +1 -0
  109. package/dist/esm/src/lib/storage/native.js +80 -0
  110. package/dist/esm/src/lib/storage/native.js.map +1 -0
  111. package/dist/esm/src/lib/storage/session.d.ts +4 -0
  112. package/dist/esm/src/lib/storage/session.d.ts.map +1 -0
  113. package/dist/esm/src/lib/storage/session.js +3 -0
  114. package/dist/esm/src/lib/storage/session.js.map +1 -0
  115. package/dist/esm/src/types/base.d.ts +5 -0
  116. package/dist/esm/src/types/base.d.ts.map +1 -1
  117. package/dist/esm/src/types/events.d.ts +6 -0
  118. package/dist/esm/src/types/events.d.ts.map +1 -1
  119. package/dist/esm/src/types/events.js.map +1 -1
  120. package/dist/esm/src/{lib/utils.d.ts → utils/base.d.ts} +4 -3
  121. package/dist/esm/src/utils/base.d.ts.map +1 -0
  122. package/dist/esm/src/{lib/fingerprint.js → utils/base.js} +66 -23
  123. package/dist/esm/src/utils/base.js.map +1 -0
  124. package/dist/esm/src/utils/index.d.ts +3 -0
  125. package/dist/esm/src/utils/index.d.ts.map +1 -0
  126. package/dist/esm/src/utils/index.js +3 -0
  127. package/dist/esm/src/utils/index.js.map +1 -0
  128. package/dist/esm/src/utils/is.d.ts +3 -0
  129. package/dist/esm/src/utils/is.d.ts.map +1 -0
  130. package/dist/esm/src/utils/is.js +6 -0
  131. package/dist/esm/src/utils/is.js.map +1 -0
  132. package/dist/esm/test/lib.spec.js +1 -1
  133. package/dist/esm/test/lib.spec.js.map +1 -1
  134. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  135. package/dist/index.umd.min.js +1 -1
  136. package/dist/index.umd.min.js.map +1 -1
  137. package/package.json +1 -2
  138. package/src/FormoAnalytics.ts +176 -89
  139. package/src/FormoAnalyticsProvider.tsx +6 -5
  140. package/src/constants/base.ts +12 -2
  141. package/src/constants/config.ts +9 -2
  142. package/src/lib/fetch.ts +3 -0
  143. package/src/lib/index.ts +4 -2
  144. package/src/lib/logger.ts +93 -0
  145. package/src/lib/queue.ts +27 -48
  146. package/src/lib/storage/index.ts +2 -0
  147. package/src/lib/storage/local.ts +3 -0
  148. package/src/lib/storage/native.ts +93 -0
  149. package/src/lib/storage/session.ts +3 -0
  150. package/src/types/base.ts +5 -0
  151. package/src/types/events.ts +8 -0
  152. package/src/{lib/utils.ts → utils/base.ts} +16 -8
  153. package/src/utils/index.ts +2 -0
  154. package/src/utils/is.ts +8 -0
  155. package/test/lib.spec.ts +1 -1
  156. package/dist/cjs/src/lib/fingerprint.d.ts +0 -4
  157. package/dist/cjs/src/lib/fingerprint.d.ts.map +0 -1
  158. package/dist/cjs/src/lib/fingerprint.js +0 -63
  159. package/dist/cjs/src/lib/fingerprint.js.map +0 -1
  160. package/dist/cjs/src/lib/session-storage.d.ts +0 -11
  161. package/dist/cjs/src/lib/session-storage.d.ts.map +0 -1
  162. package/dist/cjs/src/lib/session-storage.js +0 -52
  163. package/dist/cjs/src/lib/session-storage.js.map +0 -1
  164. package/dist/cjs/src/lib/utils.d.ts.map +0 -1
  165. package/dist/cjs/src/lib/utils.js +0 -63
  166. package/dist/cjs/src/lib/utils.js.map +0 -1
  167. package/dist/esm/src/lib/fingerprint.d.ts +0 -4
  168. package/dist/esm/src/lib/fingerprint.d.ts.map +0 -1
  169. package/dist/esm/src/lib/fingerprint.js.map +0 -1
  170. package/dist/esm/src/lib/session-storage.d.ts +0 -11
  171. package/dist/esm/src/lib/session-storage.d.ts.map +0 -1
  172. package/dist/esm/src/lib/session-storage.js +0 -49
  173. package/dist/esm/src/lib/session-storage.js.map +0 -1
  174. package/dist/esm/src/lib/utils.d.ts.map +0 -1
  175. package/dist/esm/src/lib/utils.js +0 -53
  176. package/dist/esm/src/lib/utils.js.map +0 -1
  177. package/src/lib/fingerprint.ts +0 -9
  178. package/src/lib/session-storage.ts +0 -53
@@ -1,6 +1,7 @@
1
1
  import { ChainID, Address, EIP1193Provider, Options, Config, SignatureStatus, TransactionStatus } from "./types";
2
2
  interface IFormoAnalytics {
3
3
  page(): void;
4
+ reset(): void;
4
5
  connect(params: {
5
6
  chainId: ChainID;
6
7
  address: Address;
@@ -41,6 +42,8 @@ export declare class FormoAnalytics implements IFormoAnalytics {
41
42
  private _providerListeners;
42
43
  private session;
43
44
  private eventQueue;
45
+ private anonymousId;
46
+ private userId;
44
47
  config: Config;
45
48
  currentChainId?: ChainID;
46
49
  currentConnectedAddress?: Address;
@@ -51,6 +54,11 @@ export declare class FormoAnalytics implements IFormoAnalytics {
51
54
  * @returns {Promise<void>}
52
55
  */
53
56
  page(): Promise<void>;
57
+ /**
58
+ * Reset the current user session.
59
+ * @returns {void}
60
+ */
61
+ reset(): void;
54
62
  /**
55
63
  * Emits a wallet connect event.
56
64
  * @param {ChainID} params.chainId
@@ -155,6 +163,8 @@ export declare class FormoAnalytics implements IFormoAnalytics {
155
163
  private getProviders;
156
164
  private identifyAll;
157
165
  get provider(): EIP1193Provider | undefined;
166
+ private getAnonymousId;
167
+ private getUserId;
158
168
  private getAddress;
159
169
  private getAccounts;
160
170
  private getCurrentChainId;
@@ -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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"}
@@ -46,41 +46,45 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
46
46
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
47
  }
48
48
  };
49
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
50
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
51
- if (ar || !(i in from)) {
52
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
53
- ar[i] = from[i];
54
- }
55
- }
56
- return to.concat(ar || Array.prototype.slice.call(from));
57
- };
58
49
  Object.defineProperty(exports, "__esModule", { value: true });
59
50
  exports.FormoAnalytics = void 0;
60
51
  var mipd_1 = require("mipd");
61
52
  var constants_1 = require("./constants");
62
53
  var types_1 = require("./types");
63
54
  var lib_1 = require("./lib");
55
+ var utils_1 = require("./utils");
64
56
  var constants_2 = require("./constants");
65
- var queue_1 = require("./lib/queue");
66
57
  var FormoAnalytics = /** @class */ (function () {
67
58
  function FormoAnalytics(writeKey, options) {
68
59
  if (options === void 0) { options = {}; }
60
+ var _this = this;
69
61
  this.writeKey = writeKey;
70
62
  this.options = options;
71
63
  this._providerListeners = {};
64
+ this.anonymousId = null;
65
+ this.userId = null;
72
66
  this.config = {
73
67
  writeKey: writeKey,
74
68
  trackLocalhost: options.trackLocalhost || false,
75
69
  };
76
70
  this.session = new FormoAnalyticsSession();
77
- this.eventQueue = new queue_1.EventQueue(this.config.writeKey, {
71
+ // Initialize logger with configuration from options
72
+ var loggerConfig = options.logger || {
73
+ enabled: false,
74
+ };
75
+ lib_1.logger.setEnabled(loggerConfig.enabled);
76
+ if (loggerConfig.levels) {
77
+ lib_1.logger.setEnabledLevels(loggerConfig.levels);
78
+ }
79
+ this.eventQueue = new lib_1.EventQueue(this.config.writeKey, {
78
80
  url: constants_1.EVENTS_API_URL,
79
81
  flushAt: options.flushAt,
80
82
  retryCount: options.retryCount,
81
83
  maxQueueSize: options.maxQueueSize,
82
84
  flushInterval: options.flushInterval,
83
85
  });
86
+ this.anonymousId = this.getAnonymousId();
87
+ this.getUserId(null).then(function (userId) { return (_this.userId = userId); });
84
88
  // TODO: replace with eip6963
85
89
  var provider = options.provider || (window === null || window === void 0 ? void 0 : window.ethereum);
86
90
  if (provider) {
@@ -126,6 +130,16 @@ var FormoAnalytics = /** @class */ (function () {
126
130
  });
127
131
  });
128
132
  };
133
+ /**
134
+ * Reset the current user session.
135
+ * @returns {void}
136
+ */
137
+ FormoAnalytics.prototype.reset = function () {
138
+ this.anonymousId = this.getAnonymousId();
139
+ this.userId = null;
140
+ lib_1.local.remove(constants_1.LOCAL_ANONYMOUS_ID_KEY);
141
+ lib_1.session.remove(constants_1.SESSION_USER_ID_KEY);
142
+ };
129
143
  /**
130
144
  * Emits a wallet connect event.
131
145
  * @param {ChainID} params.chainId
@@ -140,10 +154,10 @@ var FormoAnalytics = /** @class */ (function () {
140
154
  switch (_c.label) {
141
155
  case 0:
142
156
  if (!chainId) {
143
- throw new Error("FormoAnalytics::connect: chain ID cannot be empty");
157
+ lib_1.logger.warn("Connect: Chain ID cannot be empty");
144
158
  }
145
159
  if (!address) {
146
- throw new Error("FormoAnalytics::connect: address cannot be empty");
160
+ lib_1.logger.warn("Connect: Address cannot be empty");
147
161
  }
148
162
  this.currentChainId = chainId;
149
163
  this.currentConnectedAddress = address;
@@ -273,7 +287,7 @@ var FormoAnalytics = /** @class */ (function () {
273
287
  switch (_c.label) {
274
288
  case 0:
275
289
  if (this.session.isIdentified())
276
- return [2 /*return*/, console.warn("FormoAnalytics::identify: Wallet already identified in this session")];
290
+ return [2 /*return*/, lib_1.logger.warn("Identify: Wallet already identified in this session")];
277
291
  this.session.identify();
278
292
  return [4 /*yield*/, this.trackEvent(constants_1.Event.IDENTIFY, {
279
293
  address: address,
@@ -309,26 +323,31 @@ var FormoAnalytics = /** @class */ (function () {
309
323
  SDK tracking and event listener functions
310
324
  */
311
325
  FormoAnalytics.prototype.trackProvider = function (provider) {
312
- if (provider === this._provider) {
313
- console.warn("FormoAnalytics::trackProvider: Provider already tracked.");
314
- return;
315
- }
316
- this.currentChainId = undefined;
317
- this.currentConnectedAddress = undefined;
318
- if (this._provider) {
319
- var actions = Object.keys(this._providerListeners);
320
- for (var _i = 0, actions_1 = actions; _i < actions_1.length; _i++) {
321
- var action = actions_1[_i];
322
- this._provider.removeListener(action, this._providerListeners[action]);
323
- delete this._providerListeners[action];
326
+ try {
327
+ if (provider === this._provider) {
328
+ lib_1.logger.warn("TrackProvider: Provider already tracked.");
329
+ return;
324
330
  }
331
+ this.currentChainId = undefined;
332
+ this.currentConnectedAddress = undefined;
333
+ if (this._provider) {
334
+ var actions = Object.keys(this._providerListeners);
335
+ for (var _i = 0, actions_1 = actions; _i < actions_1.length; _i++) {
336
+ var action = actions_1[_i];
337
+ this._provider.removeListener(action, this._providerListeners[action]);
338
+ delete this._providerListeners[action];
339
+ }
340
+ }
341
+ this._provider = provider;
342
+ // Register listeners for web3 provider events
343
+ this.registerAddressChangedListener();
344
+ this.registerChainChangedListener();
345
+ this.registerSignatureListener();
346
+ this.registerTransactionListener();
347
+ }
348
+ catch (error) {
349
+ lib_1.logger.error("Error tracking provider:", error);
325
350
  }
326
- this._provider = provider;
327
- // Register listeners for web3 provider events
328
- this.registerAddressChangedListener();
329
- this.registerChainChangedListener();
330
- this.registerSignatureListener();
331
- this.registerTransactionListener();
332
351
  };
333
352
  FormoAnalytics.prototype.registerAddressChangedListener = function () {
334
353
  var _this = this;
@@ -363,12 +382,12 @@ var FormoAnalytics = /** @class */ (function () {
363
382
  var _this = this;
364
383
  var _a;
365
384
  if (!this.provider) {
366
- console.error("_trackSigning: provider not found");
385
+ lib_1.logger.error("Provider not found for signature tracking");
367
386
  return;
368
387
  }
369
388
  if (((_a = Object.getOwnPropertyDescriptor(this.provider, "request")) === null || _a === void 0 ? void 0 : _a.writable) ===
370
389
  false) {
371
- console.warn("_trackSigning: provider.request is not writable");
390
+ lib_1.logger.warn("Provider.request is not writable");
372
391
  return;
373
392
  }
374
393
  var request = this.provider.request.bind(this.provider);
@@ -411,12 +430,12 @@ var FormoAnalytics = /** @class */ (function () {
411
430
  var _this = this;
412
431
  var _a;
413
432
  if (!this.provider) {
414
- console.error("_trackTransactions: provider not found");
433
+ lib_1.logger.error("Provider not found for transaction tracking");
415
434
  return;
416
435
  }
417
436
  if (((_a = Object.getOwnPropertyDescriptor(this.provider, "request")) === null || _a === void 0 ? void 0 : _a.writable) ===
418
437
  false) {
419
- console.warn("_trackTransactions: provider.request is not writable");
438
+ lib_1.logger.warn("Provider.request is not writable");
420
439
  return;
421
440
  }
422
441
  var request = this.provider.request.bind(this.provider);
@@ -444,8 +463,8 @@ var FormoAnalytics = /** @class */ (function () {
444
463
  return [2 /*return*/];
445
464
  case 4:
446
465
  error_2 = _c.sent();
447
- console.log("transaction listener catch");
448
- console.log(error_2);
466
+ lib_1.logger.info("Transaction listener catch");
467
+ lib_1.logger.error("Transaction error:", error_2);
449
468
  rpcError = error_2;
450
469
  if (rpcError && (rpcError === null || rpcError === void 0 ? void 0 : rpcError.code) === 4001) {
451
470
  // Emit transaction rejected event
@@ -477,13 +496,10 @@ var FormoAnalytics = /** @class */ (function () {
477
496
  return __generator(this, function (_b) {
478
497
  switch (_b.label) {
479
498
  case 0:
480
- if (address === this.currentConnectedAddress) {
499
+ if (address === this.currentConnectedAddress)
481
500
  // We have already reported this address
482
501
  return [2 /*return*/];
483
- }
484
- else {
485
- this.currentConnectedAddress = address;
486
- }
502
+ this.currentConnectedAddress = address;
487
503
  _a = this;
488
504
  return [4 /*yield*/, this.getCurrentChainId()];
489
505
  case 1:
@@ -506,6 +522,7 @@ var FormoAnalytics = /** @class */ (function () {
506
522
  };
507
523
  this.currentChainId = undefined;
508
524
  this.currentConnectedAddress = undefined;
525
+ lib_1.session.remove(constants_1.SESSION_USER_ID_KEY);
509
526
  return [4 /*yield*/, this.trackEvent(constants_1.Event.DISCONNECT, payload)];
510
527
  case 1:
511
528
  _a.sent();
@@ -528,26 +545,30 @@ var FormoAnalytics = /** @class */ (function () {
528
545
  };
529
546
  FormoAnalytics.prototype.onChainChanged = function (chainIdHex) {
530
547
  return __awaiter(this, void 0, void 0, function () {
531
- var address;
532
- return __generator(this, function (_a) {
533
- switch (_a.label) {
548
+ var address, _a;
549
+ return __generator(this, function (_b) {
550
+ switch (_b.label) {
534
551
  case 0:
535
552
  this.currentChainId = parseInt(chainIdHex);
536
- if (!!this.currentConnectedAddress) return [3 /*break*/, 2];
553
+ if (!!this.currentConnectedAddress) return [3 /*break*/, 3];
537
554
  if (!this.provider) {
538
- console.log("FormoAnalytics::onChainChanged: provider not found. CHAIN_CHANGED not reported");
555
+ lib_1.logger.info("OnChainChanged: Provider not found. CHAIN_CHANGED not reported");
539
556
  return [2 /*return*/, Promise.resolve()];
540
557
  }
541
558
  return [4 /*yield*/, this.getAddress()];
542
559
  case 1:
543
- address = _a.sent();
560
+ address = _b.sent();
544
561
  if (!address) {
545
- console.log("FormoAnalytics::onChainChanged: Unable to fetch or store connected address");
562
+ lib_1.logger.info("OnChainChanged: Unable to fetch or store connected address");
546
563
  return [2 /*return*/, Promise.resolve()];
547
564
  }
548
565
  this.currentConnectedAddress = address;
549
- _a.label = 2;
566
+ _a = this;
567
+ return [4 /*yield*/, this.getUserId(address)];
550
568
  case 2:
569
+ _a.userId = _b.sent();
570
+ _b.label = 3;
571
+ case 3:
551
572
  // Proceed only if the address exists
552
573
  if (this.currentConnectedAddress) {
553
574
  return [2 /*return*/, this.chain({
@@ -556,7 +577,7 @@ var FormoAnalytics = /** @class */ (function () {
556
577
  })];
557
578
  }
558
579
  else {
559
- console.log("FormoAnalytics::onChainChanged: currentConnectedAddress is null despite fetch attempt");
580
+ lib_1.logger.info("OnChainChanged: Current connected address is null despite fetch attempt");
560
581
  }
561
582
  return [2 /*return*/];
562
583
  }
@@ -566,8 +587,8 @@ var FormoAnalytics = /** @class */ (function () {
566
587
  FormoAnalytics.prototype.trackFirstPageHit = function () {
567
588
  return __awaiter(this, void 0, void 0, function () {
568
589
  return __generator(this, function (_a) {
569
- if (lib_1.session.get(constants_1.CURRENT_URL_KEY) === null) {
570
- lib_1.session.set(constants_1.CURRENT_URL_KEY, window.location.href);
590
+ if (lib_1.session.get(constants_1.SESSION_CURRENT_URL_KEY) === null) {
591
+ lib_1.session.set(constants_1.SESSION_CURRENT_URL_KEY, window.location.href);
571
592
  }
572
593
  return [2 /*return*/, this.trackPageHit()];
573
594
  });
@@ -608,9 +629,9 @@ var FormoAnalytics = /** @class */ (function () {
608
629
  return __awaiter(this, void 0, void 0, function () {
609
630
  var currentUrl;
610
631
  return __generator(this, function (_a) {
611
- currentUrl = lib_1.session.get(constants_1.CURRENT_URL_KEY);
632
+ currentUrl = lib_1.session.get(constants_1.SESSION_CURRENT_URL_KEY);
612
633
  if (currentUrl !== window.location.href) {
613
- lib_1.session.set(constants_1.CURRENT_URL_KEY, window.location.href);
634
+ lib_1.session.set(constants_1.SESSION_CURRENT_URL_KEY, window.location.href);
614
635
  this.trackPageHit();
615
636
  }
616
637
  return [2 /*return*/];
@@ -621,8 +642,8 @@ var FormoAnalytics = /** @class */ (function () {
621
642
  var _this = this;
622
643
  var pathname = window.location.pathname;
623
644
  var hash = window.location.hash;
624
- if (!this.config.trackLocalhost && (0, lib_1.isLocalhost)()) {
625
- return console.warn("FormoAnalytics::trackPageHit: Ignoring event because website is running locally");
645
+ if (!this.config.trackLocalhost && (0, utils_1.isLocalhost)()) {
646
+ return lib_1.logger.warn("Track page hit: Ignoring event because website is running locally");
626
647
  }
627
648
  setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {
628
649
  return __generator(this, function (_a) {
@@ -636,33 +657,45 @@ var FormoAnalytics = /** @class */ (function () {
636
657
  };
637
658
  FormoAnalytics.prototype.trackEvent = function (action, payload) {
638
659
  return __awaiter(this, void 0, void 0, function () {
639
- var address, requestData;
660
+ var address, user_id, requestData, error_3;
640
661
  var _a;
641
662
  return __generator(this, function (_b) {
642
663
  switch (_b.label) {
643
- case 0: return [4 /*yield*/, this.getAddress()];
664
+ case 0:
665
+ _b.trys.push([0, 5, , 6]);
666
+ return [4 /*yield*/, this.getAddress()];
644
667
  case 1:
645
668
  address = _b.sent();
669
+ return [4 /*yield*/, this.getUserId(address)];
670
+ case 2:
671
+ user_id = _b.sent();
646
672
  _a = {
673
+ anonymous_id: this.anonymousId,
674
+ user_id: user_id,
647
675
  address: address,
648
676
  timestamp: new Date().toISOString(),
649
677
  action: action,
650
678
  version: "1"
651
679
  };
652
- return [4 /*yield*/, this.buildEventPayload((0, lib_1.toSnakeCase)(payload))];
653
- case 2:
680
+ return [4 /*yield*/, this.buildEventPayload((0, utils_1.toSnakeCase)(payload))];
681
+ case 3:
654
682
  requestData = (_a.payload = _b.sent(),
655
683
  _a);
656
684
  return [4 /*yield*/, this.eventQueue.enqueue(requestData, function (err, _, data) {
657
685
  if (err) {
658
- console.error(err);
686
+ lib_1.logger.error("Error sending events:", err);
659
687
  }
660
688
  else
661
- console.log("Events sent successfully: ".concat(data.length, " events"));
689
+ lib_1.logger.info("Events sent successfully: ".concat(data.length, " events"));
662
690
  })];
663
- case 3:
691
+ case 4:
664
692
  _b.sent();
665
- return [2 /*return*/];
693
+ return [3 /*break*/, 6];
694
+ case 5:
695
+ error_3 = _b.sent();
696
+ lib_1.logger.error("Error tracking event:", error_3);
697
+ return [3 /*break*/, 6];
698
+ case 6: return [2 /*return*/];
666
699
  }
667
700
  });
668
701
  });
@@ -675,12 +708,12 @@ var FormoAnalytics = /** @class */ (function () {
675
708
  var store, providers;
676
709
  return __generator(this, function (_a) {
677
710
  store = (0, mipd_1.createStore)();
678
- providers = __spreadArray([], store.getProviders(), true);
711
+ providers = store.getProviders();
679
712
  // TODO: consider using store.subscribe to detect changes to providers list
680
- // store.subscribe(providers => (state.providers = providers))
713
+ store.subscribe(function (providerDetails) { return (providers = providerDetails); });
681
714
  // Fallback to injected provider if no providers are found
682
715
  if (providers.length === 0) {
683
- return [2 /*return*/, [window === null || window === void 0 ? void 0 : window.ethereum]];
716
+ return [2 /*return*/, (window === null || window === void 0 ? void 0 : window.ethereum) ? [window.ethereum] : []];
684
717
  }
685
718
  return [2 /*return*/, providers];
686
719
  });
@@ -688,55 +721,57 @@ var FormoAnalytics = /** @class */ (function () {
688
721
  };
689
722
  FormoAnalytics.prototype.identifyAll = function (providers) {
690
723
  return __awaiter(this, void 0, void 0, function () {
691
- var _i, providers_1, _a, provider, info, accounts, _b, accounts_1, address, err_1;
692
- return __generator(this, function (_c) {
693
- switch (_c.label) {
724
+ var _i, providers_1, eip6963ProviderDetail, accounts, _a, accounts_1, address, err_1;
725
+ return __generator(this, function (_b) {
726
+ switch (_b.label) {
694
727
  case 0:
695
- _c.trys.push([0, 11, , 12]);
728
+ _b.trys.push([0, 11, , 12]);
696
729
  _i = 0, providers_1 = providers;
697
- _c.label = 1;
730
+ _b.label = 1;
698
731
  case 1:
699
732
  if (!(_i < providers_1.length)) return [3 /*break*/, 10];
700
- _a = providers_1[_i], provider = _a.provider, info = _a.info;
701
- return [4 /*yield*/, this.getAccounts(provider)];
733
+ eip6963ProviderDetail = providers_1[_i];
734
+ if (!eip6963ProviderDetail)
735
+ return [3 /*break*/, 9];
736
+ return [4 /*yield*/, this.getAccounts(eip6963ProviderDetail === null || eip6963ProviderDetail === void 0 ? void 0 : eip6963ProviderDetail.provider)];
702
737
  case 2:
703
- accounts = _c.sent();
738
+ accounts = _b.sent();
704
739
  if (!(accounts && accounts.length > 0)) return [3 /*break*/, 7];
705
- _b = 0, accounts_1 = accounts;
706
- _c.label = 3;
740
+ _a = 0, accounts_1 = accounts;
741
+ _b.label = 3;
707
742
  case 3:
708
- if (!(_b < accounts_1.length)) return [3 /*break*/, 6];
709
- address = accounts_1[_b];
743
+ if (!(_a < accounts_1.length)) return [3 /*break*/, 6];
744
+ address = accounts_1[_a];
710
745
  return [4 /*yield*/, this.identify({
711
746
  address: address,
712
- providerName: info.name,
713
- rdns: info.rdns,
747
+ providerName: eip6963ProviderDetail === null || eip6963ProviderDetail === void 0 ? void 0 : eip6963ProviderDetail.info.name,
748
+ rdns: eip6963ProviderDetail === null || eip6963ProviderDetail === void 0 ? void 0 : eip6963ProviderDetail.info.rdns,
714
749
  })];
715
750
  case 4:
716
- _c.sent();
717
- _c.label = 5;
751
+ _b.sent();
752
+ _b.label = 5;
718
753
  case 5:
719
- _b++;
754
+ _a++;
720
755
  return [3 /*break*/, 3];
721
756
  case 6: return [3 /*break*/, 9];
722
757
  case 7:
723
758
  // Identify without accounts
724
759
  return [4 /*yield*/, this.identify({
725
760
  address: null,
726
- providerName: info.name,
727
- rdns: info.rdns,
761
+ providerName: eip6963ProviderDetail === null || eip6963ProviderDetail === void 0 ? void 0 : eip6963ProviderDetail.info.name,
762
+ rdns: eip6963ProviderDetail === null || eip6963ProviderDetail === void 0 ? void 0 : eip6963ProviderDetail.info.rdns,
728
763
  })];
729
764
  case 8:
730
765
  // Identify without accounts
731
- _c.sent();
732
- _c.label = 9;
766
+ _b.sent();
767
+ _b.label = 9;
733
768
  case 9:
734
769
  _i++;
735
770
  return [3 /*break*/, 1];
736
771
  case 10: return [3 /*break*/, 12];
737
772
  case 11:
738
- err_1 = _c.sent();
739
- console.log("identifying all => err", err_1);
773
+ err_1 = _b.sent();
774
+ lib_1.logger.error("Error identifying all:", err_1);
740
775
  return [3 /*break*/, 12];
741
776
  case 12: return [2 /*return*/];
742
777
  }
@@ -750,6 +785,47 @@ var FormoAnalytics = /** @class */ (function () {
750
785
  enumerable: false,
751
786
  configurable: true
752
787
  });
788
+ FormoAnalytics.prototype.getAnonymousId = function () {
789
+ var storedAnonymousId = lib_1.local.get(constants_1.LOCAL_ANONYMOUS_ID_KEY);
790
+ if (storedAnonymousId && typeof storedAnonymousId === "string")
791
+ return storedAnonymousId;
792
+ var newAnonymousId = (0, utils_1.generateNativeUUID)();
793
+ lib_1.local.set(constants_1.LOCAL_ANONYMOUS_ID_KEY, newAnonymousId);
794
+ return newAnonymousId;
795
+ };
796
+ FormoAnalytics.prototype.getUserId = function (address) {
797
+ return __awaiter(this, void 0, void 0, function () {
798
+ var storedUserId, res, data, userId, newUserId;
799
+ var _a, _b;
800
+ return __generator(this, function (_c) {
801
+ switch (_c.label) {
802
+ case 0:
803
+ storedUserId = lib_1.session.get(constants_1.SESSION_USER_ID_KEY);
804
+ if (storedUserId && typeof storedUserId === "string")
805
+ return [2 /*return*/, storedUserId];
806
+ if (!address) return [3 /*break*/, 3];
807
+ return [4 /*yield*/, (0, lib_1.fetch)("".concat(constants_1.USER_API_URL, "?address=").concat(address), {
808
+ headers: (0, constants_1.EVENTS_API_REQUEST_HEADER)(this.writeKey),
809
+ method: "GET",
810
+ })];
811
+ case 1:
812
+ res = _c.sent();
813
+ return [4 /*yield*/, res.json()];
814
+ case 2:
815
+ data = _c.sent();
816
+ userId = (_b = (_a = data === null || data === void 0 ? void 0 : data.data) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.user_id;
817
+ if (userId) {
818
+ lib_1.session.set(constants_1.SESSION_USER_ID_KEY, userId);
819
+ return [2 /*return*/, userId];
820
+ }
821
+ newUserId = (0, utils_1.generateNativeUUID)();
822
+ lib_1.session.set(constants_1.SESSION_USER_ID_KEY, newUserId);
823
+ return [2 /*return*/, newUserId];
824
+ case 3: return [2 /*return*/, null];
825
+ }
826
+ });
827
+ });
828
+ };
753
829
  FormoAnalytics.prototype.getAddress = function () {
754
830
  return __awaiter(this, void 0, void 0, function () {
755
831
  var accounts, err_2;
@@ -759,7 +835,7 @@ var FormoAnalytics = /** @class */ (function () {
759
835
  if (this.currentConnectedAddress)
760
836
  return [2 /*return*/, this.currentConnectedAddress];
761
837
  if (!(this === null || this === void 0 ? void 0 : this.provider)) {
762
- console.log("FormoAnalytics::getAddress: the provider is not set");
838
+ lib_1.logger.info("The provider is not set");
763
839
  return [2 /*return*/, null];
764
840
  }
765
841
  _a.label = 1;
@@ -769,12 +845,15 @@ var FormoAnalytics = /** @class */ (function () {
769
845
  case 2:
770
846
  accounts = _a.sent();
771
847
  if (accounts && accounts.length > 0) {
772
- return [2 /*return*/, (0, lib_1.isAddress)(accounts[0]) ? accounts[0] : null];
848
+ // TODO: fetch userId if account is valid, generate userId if no userId matches address from tinybird
849
+ if ((0, utils_1.isAddress)(accounts[0])) {
850
+ return [2 /*return*/, accounts[0]];
851
+ }
773
852
  }
774
853
  return [3 /*break*/, 4];
775
854
  case 3:
776
855
  err_2 = _a.sent();
777
- console.log("Failed to fetch accounts from provider:", err_2);
856
+ lib_1.logger.error("Failed to fetch accounts from provider:", err_2);
778
857
  return [2 /*return*/, null];
779
858
  case 4: return [2 /*return*/, null];
780
859
  }
@@ -798,11 +877,11 @@ var FormoAnalytics = /** @class */ (function () {
798
877
  res = _a.sent();
799
878
  if (!res || res.length === 0)
800
879
  return [2 /*return*/, null];
801
- return [2 /*return*/, res.filter(lib_1.isAddress)];
880
+ return [2 /*return*/, res.filter(utils_1.isAddress)];
802
881
  case 3:
803
882
  err_3 = _a.sent();
804
883
  if (err_3.code !== 4001) {
805
- console.log("FormoAnalytics::getAccounts: eth_accounts threw an error", err_3);
884
+ lib_1.logger.error("FormoAnalytics::getAccounts: eth_accounts threw an error", err_3);
806
885
  }
807
886
  return [2 /*return*/, null];
808
887
  case 4: return [2 /*return*/];
@@ -818,7 +897,7 @@ var FormoAnalytics = /** @class */ (function () {
818
897
  switch (_b.label) {
819
898
  case 0:
820
899
  if (!this.provider) {
821
- console.error("FormoAnalytics::getCurrentChainId: provider not set");
900
+ lib_1.logger.error("Provider not set for chain ID");
822
901
  }
823
902
  _b.label = 1;
824
903
  case 1:
@@ -829,13 +908,13 @@ var FormoAnalytics = /** @class */ (function () {
829
908
  case 2:
830
909
  chainIdHex = _b.sent();
831
910
  if (!chainIdHex) {
832
- console.log("FormoAnalytics::fetchChainId: chain id not found");
911
+ lib_1.logger.info("Chain id not found");
833
912
  return [2 /*return*/, 0];
834
913
  }
835
914
  return [2 /*return*/, parseInt(chainIdHex, 16)];
836
915
  case 3:
837
916
  err_4 = _b.sent();
838
- console.log("FormoAnalytics::fetchChainId: eth_chainId threw an error", err_4);
917
+ lib_1.logger.error("eth_chainId threw an error:", err_4);
839
918
  return [2 /*return*/, 0];
840
919
  case 4: return [2 /*return*/];
841
920
  }
@@ -850,7 +929,7 @@ var FormoAnalytics = /** @class */ (function () {
850
929
  return timezone;
851
930
  }
852
931
  catch (error) {
853
- console.error("Error resolving timezone:", error);
932
+ lib_1.logger.error("Error resolving timezone:", error);
854
933
  return "";
855
934
  }
856
935
  };
@@ -861,7 +940,7 @@ var FormoAnalytics = /** @class */ (function () {
861
940
  : navigator.language) || "en");
862
941
  }
863
942
  catch (error) {
864
- console.error("Error resolving language:", error);
943
+ lib_1.logger.error("Error resolving language:", error);
865
944
  return "en";
866
945
  }
867
946
  };