@formo/analytics 1.11.12 → 1.11.14

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 (82) hide show
  1. package/README.md +1 -1
  2. package/dist/387.index.umd.min.js +125 -0
  3. package/dist/387.index.umd.min.js.map +1 -0
  4. package/dist/cjs/src/FormoAnalytics.d.ts +100 -0
  5. package/dist/cjs/src/FormoAnalytics.d.ts.map +1 -0
  6. package/dist/cjs/src/FormoAnalytics.js +622 -0
  7. package/dist/cjs/src/FormoAnalytics.js.map +1 -0
  8. package/dist/cjs/src/FormoAnalyticsProvider.d.ts +7 -0
  9. package/dist/cjs/src/FormoAnalyticsProvider.d.ts.map +1 -0
  10. package/dist/cjs/src/FormoAnalyticsProvider.js +127 -0
  11. package/dist/cjs/src/FormoAnalyticsProvider.js.map +1 -0
  12. package/dist/cjs/src/constants/config.d.ts +559 -0
  13. package/dist/cjs/src/constants/config.d.ts.map +1 -0
  14. package/dist/cjs/src/constants/config.js +570 -0
  15. package/dist/cjs/src/constants/config.js.map +1 -0
  16. package/dist/cjs/src/constants/events.d.ts +8 -0
  17. package/dist/cjs/src/constants/events.d.ts.map +1 -0
  18. package/dist/cjs/src/constants/events.js +12 -0
  19. package/dist/cjs/src/constants/events.js.map +1 -0
  20. package/dist/cjs/src/constants/index.d.ts +3 -0
  21. package/dist/cjs/src/constants/index.d.ts.map +1 -0
  22. package/dist/cjs/src/constants/index.js +19 -0
  23. package/dist/cjs/src/constants/index.js.map +1 -0
  24. package/dist/cjs/src/index.d.ts +4 -0
  25. package/dist/cjs/src/index.d.ts.map +1 -0
  26. package/dist/cjs/src/index.js.map +1 -0
  27. package/dist/cjs/src/types/base.d.ts +12 -0
  28. package/dist/cjs/src/types/base.d.ts.map +1 -0
  29. package/dist/cjs/src/types/base.js +3 -0
  30. package/dist/cjs/src/types/base.js.map +1 -0
  31. package/dist/cjs/src/types/index.d.ts +3 -0
  32. package/dist/cjs/src/types/index.d.ts.map +1 -0
  33. package/dist/cjs/src/types/index.js +19 -0
  34. package/dist/cjs/src/types/index.js.map +1 -0
  35. package/dist/cjs/src/types/wallet.d.ts +11 -0
  36. package/dist/cjs/src/types/wallet.d.ts.map +1 -0
  37. package/dist/cjs/src/types/wallet.js +3 -0
  38. package/dist/cjs/src/types/wallet.js.map +1 -0
  39. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  40. package/dist/esm/src/FormoAnalytics.d.ts +100 -0
  41. package/dist/esm/src/FormoAnalytics.d.ts.map +1 -0
  42. package/dist/esm/src/FormoAnalytics.js +616 -0
  43. package/dist/esm/src/FormoAnalytics.js.map +1 -0
  44. package/dist/esm/src/FormoAnalyticsProvider.d.ts +7 -0
  45. package/dist/esm/src/FormoAnalyticsProvider.d.ts.map +1 -0
  46. package/dist/esm/src/FormoAnalyticsProvider.js +122 -0
  47. package/dist/esm/src/FormoAnalyticsProvider.js.map +1 -0
  48. package/dist/esm/src/constants/config.d.ts +559 -0
  49. package/dist/esm/src/constants/config.d.ts.map +1 -0
  50. package/dist/esm/src/constants/config.js +567 -0
  51. package/dist/esm/src/constants/config.js.map +1 -0
  52. package/dist/esm/src/constants/events.d.ts +8 -0
  53. package/dist/esm/src/constants/events.d.ts.map +1 -0
  54. package/dist/esm/src/constants/events.js +9 -0
  55. package/dist/esm/src/constants/events.js.map +1 -0
  56. package/dist/esm/src/constants/index.d.ts +3 -0
  57. package/dist/esm/src/constants/index.d.ts.map +1 -0
  58. package/dist/esm/src/constants/index.js +3 -0
  59. package/dist/esm/src/constants/index.js.map +1 -0
  60. package/dist/esm/src/index.d.ts +4 -0
  61. package/dist/esm/src/index.d.ts.map +1 -0
  62. package/dist/esm/src/index.js +4 -0
  63. package/dist/esm/src/index.js.map +1 -0
  64. package/dist/esm/src/types/base.d.ts +12 -0
  65. package/dist/esm/src/types/base.d.ts.map +1 -0
  66. package/dist/esm/src/types/base.js +2 -0
  67. package/dist/esm/src/types/base.js.map +1 -0
  68. package/dist/esm/src/types/index.d.ts +3 -0
  69. package/dist/esm/src/types/index.d.ts.map +1 -0
  70. package/dist/esm/src/types/index.js +3 -0
  71. package/dist/esm/src/types/index.js.map +1 -0
  72. package/dist/esm/src/types/wallet.d.ts +11 -0
  73. package/dist/esm/src/types/wallet.d.ts.map +1 -0
  74. package/dist/esm/src/types/wallet.js +2 -0
  75. package/dist/esm/src/types/wallet.js.map +1 -0
  76. package/dist/esm/tsconfig.tsbuildinfo +1 -0
  77. package/dist/index.umd.min.js +3 -0
  78. package/dist/index.umd.min.js.LICENSE.txt +31 -0
  79. package/dist/index.umd.min.js.map +1 -0
  80. package/package.json +2 -2
  81. package/src/FormoAnalytics.ts +158 -61
  82. package/src/types/base.ts +1 -1
@@ -0,0 +1,622 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
24
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __importDefault = (this && this.__importDefault) || function (mod) {
50
+ return (mod && mod.__esModule) ? mod : { "default": mod };
51
+ };
52
+ Object.defineProperty(exports, "__esModule", { value: true });
53
+ exports.FormoAnalytics = void 0;
54
+ var axios_1 = __importDefault(require("axios"));
55
+ var constants_1 = require("./constants");
56
+ var highlight_run_1 = require("highlight.run");
57
+ var FormoAnalytics = /** @class */ (function () {
58
+ function FormoAnalytics(apiKey, options) {
59
+ if (options === void 0) { options = {}; }
60
+ var _a;
61
+ this.apiKey = apiKey;
62
+ this.options = options;
63
+ this._registeredProviderListeners = {};
64
+ this.walletAddressSessionKey = "walletAddress";
65
+ this.sessionIdKey = constants_1.SESSION_STORAGE_ID_KEY;
66
+ this.timezoneToCountry = constants_1.COUNTRY_LIST;
67
+ this.config = {
68
+ token: this.apiKey,
69
+ };
70
+ var provider = (window === null || window === void 0 ? void 0 : window.ethereum) || ((_a = window.web3) === null || _a === void 0 ? void 0 : _a.currentProvider) || (options === null || options === void 0 ? void 0 : options.provider);
71
+ if (provider) {
72
+ this.trackProvider(provider);
73
+ }
74
+ }
75
+ FormoAnalytics.init = function (apiKey, options) {
76
+ return __awaiter(this, void 0, void 0, function () {
77
+ var config, instance;
78
+ return __generator(this, function (_a) {
79
+ config = {
80
+ token: apiKey,
81
+ };
82
+ instance = new FormoAnalytics(apiKey, options);
83
+ instance.config = config;
84
+ return [2 /*return*/, instance];
85
+ });
86
+ });
87
+ };
88
+ Object.defineProperty(FormoAnalytics.prototype, "provider", {
89
+ get: function () {
90
+ return this._provider;
91
+ },
92
+ enumerable: false,
93
+ configurable: true
94
+ });
95
+ FormoAnalytics.prototype.getSessionId = function () {
96
+ var existingSessionId = this.getCookieValue(this.sessionIdKey);
97
+ if (existingSessionId) {
98
+ return existingSessionId;
99
+ }
100
+ var newSessionId = this.generateSessionId();
101
+ return newSessionId;
102
+ };
103
+ FormoAnalytics.prototype.getOrigin = function () {
104
+ return window.location.origin || "ORIGIN_NOT_FOUND";
105
+ };
106
+ // Function to set the session cookie
107
+ FormoAnalytics.prototype.setSessionCookie = function () {
108
+ var sessionId = this.getSessionId();
109
+ var cookieValue = "".concat(this.sessionIdKey, "=").concat(sessionId, "; Max-Age=1800; path=/; secure; domain=").concat(this.getOrigin());
110
+ document.cookie = cookieValue;
111
+ };
112
+ // Function to generate a new session ID
113
+ FormoAnalytics.prototype.generateSessionId = function () {
114
+ return crypto.randomUUID();
115
+ };
116
+ // Function to get a cookie value by name
117
+ FormoAnalytics.prototype.getCookieValue = function (name) {
118
+ var cookies = document.cookie.split(";").reduce(function (acc, cookie) {
119
+ var _a = cookie.split("="), key = _a[0], value = _a[1];
120
+ acc[key.trim()] = value;
121
+ return acc;
122
+ }, {});
123
+ return cookies[name];
124
+ };
125
+ // Function to send tracking data
126
+ FormoAnalytics.prototype.trackEvent = function (action, payload) {
127
+ return __awaiter(this, void 0, void 0, function () {
128
+ var maxRetries, attempt, address, requestData, sendRequest;
129
+ var _a;
130
+ var _this = this;
131
+ return __generator(this, function (_b) {
132
+ switch (_b.label) {
133
+ case 0:
134
+ maxRetries = 3;
135
+ attempt = 0;
136
+ this.setSessionCookie();
137
+ return [4 /*yield*/, this.getCurrentWallet()];
138
+ case 1:
139
+ address = _b.sent();
140
+ _a = {
141
+ address: address,
142
+ session_id: this.getSessionId(),
143
+ timestamp: new Date().toISOString(),
144
+ action: action,
145
+ version: "1"
146
+ };
147
+ return [4 /*yield*/, this.buildEventPayload.apply(this, payload)];
148
+ case 2:
149
+ requestData = (_a.payload = _b.sent(),
150
+ _a);
151
+ sendRequest = function () { return __awaiter(_this, void 0, void 0, function () {
152
+ var response, error_1, retryDelay;
153
+ return __generator(this, function (_a) {
154
+ switch (_a.label) {
155
+ case 0:
156
+ _a.trys.push([0, 2, , 3]);
157
+ return [4 /*yield*/, axios_1.default.post(constants_1.EVENTS_API_URL, JSON.stringify(requestData), {
158
+ headers: {
159
+ "Content-Type": "application/json",
160
+ Authorization: "Bearer ".concat(this.apiKey),
161
+ },
162
+ })];
163
+ case 1:
164
+ response = _a.sent();
165
+ if (response.status >= 200 && response.status < 300) {
166
+ console.log("Event sent successfully:", action);
167
+ }
168
+ else {
169
+ throw new Error("Failed with status: ".concat(response.status));
170
+ }
171
+ return [3 /*break*/, 3];
172
+ case 2:
173
+ error_1 = _a.sent();
174
+ attempt++;
175
+ if (attempt <= maxRetries) {
176
+ retryDelay = Math.pow(2, attempt) * 1000;
177
+ console.error("Attempt ".concat(attempt, ": Retrying event \"").concat(action, "\" in ").concat(retryDelay / 1000, " seconds..."));
178
+ setTimeout(sendRequest, retryDelay);
179
+ }
180
+ else {
181
+ highlight_run_1.H.consumeError(error_1, "Request data: ".concat(JSON.stringify(requestData)));
182
+ console.error("Event \"".concat(action, "\" failed after ").concat(maxRetries, " attempts. Error: ").concat(error_1));
183
+ }
184
+ return [3 /*break*/, 3];
185
+ case 3: return [2 /*return*/];
186
+ }
187
+ });
188
+ }); };
189
+ return [4 /*yield*/, sendRequest()];
190
+ case 3:
191
+ _b.sent();
192
+ return [2 /*return*/];
193
+ }
194
+ });
195
+ });
196
+ };
197
+ // Function to track page hits
198
+ FormoAnalytics.prototype.trackPageHit = function () {
199
+ var _this = this;
200
+ if (this.isAutomationEnvironment())
201
+ return;
202
+ var pathname = window.location.pathname;
203
+ var href = window.location.href;
204
+ setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {
205
+ return __generator(this, function (_a) {
206
+ this.trackEvent(constants_1.Event.PAGE, {
207
+ pathname: pathname,
208
+ href: href,
209
+ });
210
+ return [2 /*return*/];
211
+ });
212
+ }); }, 300);
213
+ };
214
+ FormoAnalytics.prototype.isAutomationEnvironment = function () {
215
+ return (window.__nightmare ||
216
+ window.navigator.webdriver ||
217
+ window.Cypress ||
218
+ false);
219
+ };
220
+ FormoAnalytics.prototype.getUserLocation = function () {
221
+ try {
222
+ var timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
223
+ return this.timezoneToCountry[timezone];
224
+ }
225
+ catch (error) {
226
+ console.error("Error resolving timezone:", error);
227
+ return undefined;
228
+ }
229
+ };
230
+ FormoAnalytics.prototype.getUserLanguage = function () {
231
+ try {
232
+ return ((navigator.languages && navigator.languages.length
233
+ ? navigator.languages[0]
234
+ : navigator.language) || "en");
235
+ }
236
+ catch (error) {
237
+ console.error("Error resolving language:", error);
238
+ return "en";
239
+ }
240
+ };
241
+ FormoAnalytics.prototype.buildEventPayload = function () {
242
+ return __awaiter(this, arguments, void 0, function (eventSpecificPayload) {
243
+ var url, params, location, language, address;
244
+ if (eventSpecificPayload === void 0) { eventSpecificPayload = {}; }
245
+ return __generator(this, function (_a) {
246
+ switch (_a.label) {
247
+ case 0:
248
+ url = new URL(window.location.href);
249
+ params = new URLSearchParams(url.search);
250
+ location = this.getUserLocation();
251
+ language = this.getUserLanguage();
252
+ return [4 /*yield*/, this.getAndStoreConnectedAddress()];
253
+ case 1:
254
+ address = _a.sent();
255
+ if (address === null) {
256
+ console.warn("Wallet address could not be retrieved.");
257
+ }
258
+ // common fields
259
+ return [2 /*return*/, __assign({ "user-agent": window.navigator.userAgent, address: address, locale: language, location: location, referrer: document.referrer, utm_source: params.get("utm_source"), utm_medium: params.get("utm_medium"), utm_campaign: params.get("utm_campaign"), ref: params.get("ref") }, eventSpecificPayload)];
260
+ }
261
+ });
262
+ });
263
+ };
264
+ FormoAnalytics.prototype.trackProvider = function (provider) {
265
+ if (provider === this._provider) {
266
+ console.log("Provider already tracked.");
267
+ return;
268
+ }
269
+ this.currentChainId = undefined;
270
+ this.currentConnectedAddress = undefined;
271
+ if (this._provider) {
272
+ var eventNames = Object.keys(this._registeredProviderListeners);
273
+ for (var _i = 0, eventNames_1 = eventNames; _i < eventNames_1.length; _i++) {
274
+ var eventName = eventNames_1[_i];
275
+ this._provider.removeListener(eventName, this._registeredProviderListeners[eventName]);
276
+ delete this._registeredProviderListeners[eventName];
277
+ }
278
+ }
279
+ console.log("Tracking new provider:", provider);
280
+ this._provider = provider;
281
+ this.getCurrentWallet();
282
+ this.registerAddressChangedListener();
283
+ this.registerChainChangedListener();
284
+ };
285
+ FormoAnalytics.prototype.getAndStoreConnectedAddress = function () {
286
+ return __awaiter(this, void 0, void 0, function () {
287
+ var accounts, address, err_1;
288
+ return __generator(this, function (_a) {
289
+ switch (_a.label) {
290
+ case 0:
291
+ console.log("Session data missing. Attempting to fetch address from provider.");
292
+ _a.label = 1;
293
+ case 1:
294
+ _a.trys.push([1, 3, , 4]);
295
+ return [4 /*yield*/, this.fetchAccounts()];
296
+ case 2:
297
+ accounts = _a.sent();
298
+ if (accounts && accounts.length > 0) {
299
+ address = accounts[0];
300
+ this.storeWalletAddress(address);
301
+ return [2 /*return*/, address];
302
+ }
303
+ return [3 /*break*/, 4];
304
+ case 3:
305
+ err_1 = _a.sent();
306
+ console.error("Failed to fetch accounts from provider:", err_1);
307
+ return [3 /*break*/, 4];
308
+ case 4: return [2 /*return*/, null];
309
+ }
310
+ });
311
+ });
312
+ };
313
+ FormoAnalytics.prototype.getCurrentWallet = function () {
314
+ return __awaiter(this, void 0, void 0, function () {
315
+ var sessionData, parsedData, sessionExpiry, currentTime;
316
+ return __generator(this, function (_a) {
317
+ switch (_a.label) {
318
+ case 0:
319
+ if (!this.provider) {
320
+ console.warn("FormoAnalytics::getCurrentWallet: the provider is not set");
321
+ return [2 /*return*/];
322
+ }
323
+ sessionData = sessionStorage.getItem(this.walletAddressSessionKey);
324
+ if (!!sessionData) return [3 /*break*/, 2];
325
+ return [4 /*yield*/, this.getAndStoreConnectedAddress()];
326
+ case 1: return [2 /*return*/, _a.sent()];
327
+ case 2:
328
+ parsedData = JSON.parse(sessionData);
329
+ sessionExpiry = 30 * 60 * 1000;
330
+ currentTime = Date.now();
331
+ if (currentTime - parsedData.timestamp > sessionExpiry) {
332
+ console.warn("Session expired. Ignoring wallet address.");
333
+ sessionStorage.removeItem(this.walletAddressSessionKey); // Clear expired session data
334
+ return [2 /*return*/, ""];
335
+ }
336
+ this.onAddressConnected(parsedData.address);
337
+ return [2 /*return*/, parsedData.address || ""];
338
+ }
339
+ });
340
+ });
341
+ };
342
+ // Utility to fetch accounts
343
+ FormoAnalytics.prototype.fetchAccounts = function () {
344
+ return __awaiter(this, void 0, void 0, function () {
345
+ var res, err_2;
346
+ var _a;
347
+ return __generator(this, function (_b) {
348
+ switch (_b.label) {
349
+ case 0:
350
+ _b.trys.push([0, 2, , 3]);
351
+ return [4 /*yield*/, ((_a = this.provider) === null || _a === void 0 ? void 0 : _a.request({
352
+ method: "eth_accounts",
353
+ }))];
354
+ case 1:
355
+ res = _b.sent();
356
+ if (!res || res.length === 0) {
357
+ console.error("error", "FormoAnalytics::fetchAccounts: unable to get account. eth_accounts returned empty");
358
+ return [2 /*return*/, null];
359
+ }
360
+ return [2 /*return*/, res];
361
+ case 2:
362
+ err_2 = _b.sent();
363
+ if (err_2.code !== 4001) {
364
+ console.error("error", "FormoAnalytics::fetchAccounts: eth_accounts threw an error", err_2);
365
+ }
366
+ return [2 /*return*/, null];
367
+ case 3: return [2 /*return*/];
368
+ }
369
+ });
370
+ });
371
+ };
372
+ // Utility to fetch chain ID
373
+ FormoAnalytics.prototype.fetchChainId = function () {
374
+ return __awaiter(this, void 0, void 0, function () {
375
+ var chainIdHex, err_3;
376
+ var _a;
377
+ return __generator(this, function (_b) {
378
+ switch (_b.label) {
379
+ case 0:
380
+ _b.trys.push([0, 2, , 3]);
381
+ return [4 /*yield*/, ((_a = this.provider) === null || _a === void 0 ? void 0 : _a.request({
382
+ method: "eth_chainId",
383
+ }))];
384
+ case 1:
385
+ chainIdHex = _b.sent();
386
+ if (!chainIdHex) {
387
+ console.error("FormoAnalytics::fetchChainId: chainIdHex is null or undefined");
388
+ return [2 /*return*/, null];
389
+ }
390
+ return [2 /*return*/, chainIdHex];
391
+ case 2:
392
+ err_3 = _b.sent();
393
+ console.error("error", "FormoAnalytics::fetchChainId: eth_chainId threw an error", err_3);
394
+ return [2 /*return*/, null];
395
+ case 3: return [2 /*return*/];
396
+ }
397
+ });
398
+ });
399
+ };
400
+ FormoAnalytics.prototype.getCurrentChainId = function () {
401
+ return __awaiter(this, void 0, void 0, function () {
402
+ var chainIdHex;
403
+ return __generator(this, function (_a) {
404
+ switch (_a.label) {
405
+ case 0:
406
+ if (!this.provider) {
407
+ console.error("FormoAnalytics::getCurrentChainId: provider not set");
408
+ }
409
+ return [4 /*yield*/, this.fetchChainId()];
410
+ case 1:
411
+ chainIdHex = _a.sent();
412
+ // Because we're connected, the chainId cannot be null
413
+ if (!chainIdHex) {
414
+ console.error("FormoAnalytics::getCurrentChainId: chainIdHex is: ".concat(chainIdHex));
415
+ }
416
+ return [2 /*return*/, parseInt(chainIdHex, 16).toString()];
417
+ }
418
+ });
419
+ });
420
+ };
421
+ FormoAnalytics.prototype.registerAddressChangedListener = function () {
422
+ var _this = this;
423
+ var _a, _b;
424
+ var listener = function () {
425
+ var args = [];
426
+ for (var _i = 0; _i < arguments.length; _i++) {
427
+ args[_i] = arguments[_i];
428
+ }
429
+ return _this.onAddressChanged(args[0]);
430
+ };
431
+ (_a = this._provider) === null || _a === void 0 ? void 0 : _a.on("accountsChanged", listener);
432
+ this._registeredProviderListeners["accountsChanged"] = listener;
433
+ var onAddressDisconnected = this.onAddressDisconnected.bind(this);
434
+ (_b = this._provider) === null || _b === void 0 ? void 0 : _b.on("disconnect", onAddressDisconnected);
435
+ this._registeredProviderListeners["disconnect"] = onAddressDisconnected;
436
+ };
437
+ FormoAnalytics.prototype.registerChainChangedListener = function () {
438
+ var _this = this;
439
+ var _a;
440
+ var listener = function () {
441
+ var args = [];
442
+ for (var _i = 0; _i < arguments.length; _i++) {
443
+ args[_i] = arguments[_i];
444
+ }
445
+ return _this.onChainChanged(args[0]);
446
+ };
447
+ (_a = this.provider) === null || _a === void 0 ? void 0 : _a.on("chainChanged", listener);
448
+ this._registeredProviderListeners["chainChanged"] = listener;
449
+ };
450
+ FormoAnalytics.prototype.onAddressChanged = function (addresses) {
451
+ return __awaiter(this, void 0, void 0, function () {
452
+ var newAccount;
453
+ return __generator(this, function (_a) {
454
+ if (addresses.length > 0) {
455
+ newAccount = addresses[0];
456
+ if (newAccount !== this.currentConnectedAddress) {
457
+ this.onAddressConnected(newAccount);
458
+ }
459
+ }
460
+ else {
461
+ this.onAddressDisconnected();
462
+ }
463
+ return [2 /*return*/];
464
+ });
465
+ });
466
+ };
467
+ FormoAnalytics.prototype.onAddressConnected = function (address) {
468
+ return __awaiter(this, void 0, void 0, function () {
469
+ var _a;
470
+ return __generator(this, function (_b) {
471
+ switch (_b.label) {
472
+ case 0:
473
+ if (address === this.currentConnectedAddress) {
474
+ // We have already reported this address
475
+ return [2 /*return*/];
476
+ }
477
+ else {
478
+ this.currentConnectedAddress = address;
479
+ }
480
+ _a = this;
481
+ return [4 /*yield*/, this.getCurrentChainId()];
482
+ case 1:
483
+ _a.currentChainId = _b.sent();
484
+ this.connect({ chainId: this.currentChainId, address: address });
485
+ this.storeWalletAddress(address);
486
+ return [2 /*return*/];
487
+ }
488
+ });
489
+ });
490
+ };
491
+ FormoAnalytics.prototype.onAddressDisconnected = function () {
492
+ if (!this.currentConnectedAddress) {
493
+ return;
494
+ }
495
+ var payload = {
496
+ chain_id: this.currentChainId,
497
+ address: this.getAndStoreConnectedAddress(),
498
+ };
499
+ this.currentChainId = undefined;
500
+ this.currentConnectedAddress = undefined;
501
+ this.clearWalletAddress();
502
+ return this.trackEvent(constants_1.Event.DISCONNECT, payload);
503
+ };
504
+ FormoAnalytics.prototype.onChainChanged = function (chainIdHex) {
505
+ return __awaiter(this, void 0, void 0, function () {
506
+ var address;
507
+ return __generator(this, function (_a) {
508
+ switch (_a.label) {
509
+ case 0:
510
+ this.currentChainId = parseInt(chainIdHex).toString();
511
+ if (!!this.currentConnectedAddress) return [3 /*break*/, 2];
512
+ if (!this.provider) {
513
+ console.error("error", "FormoAnalytics::onChainChanged: provider not found. CHAIN_CHANGED not reported");
514
+ return [2 /*return*/];
515
+ }
516
+ return [4 /*yield*/, this.getAndStoreConnectedAddress()];
517
+ case 1:
518
+ address = _a.sent();
519
+ if (!address) {
520
+ console.error("error", "FormoAnalytics::onChainChanged: Unable to fetch or store connected address");
521
+ return [2 /*return*/];
522
+ }
523
+ this.currentConnectedAddress = address[0];
524
+ _a.label = 2;
525
+ case 2:
526
+ // Proceed only if the address exists
527
+ if (this.currentConnectedAddress) {
528
+ return [2 /*return*/, this.chain({
529
+ chainId: this.currentChainId,
530
+ address: this.currentConnectedAddress,
531
+ })];
532
+ }
533
+ else {
534
+ console.error("error", "FormoAnalytics::onChainChanged: currentConnectedAddress is null despite fetch attempt");
535
+ }
536
+ return [2 /*return*/];
537
+ }
538
+ });
539
+ });
540
+ };
541
+ /**
542
+ * Stores the wallet address in session storage when connected.
543
+ * @param address - The wallet address to store.
544
+ */
545
+ FormoAnalytics.prototype.storeWalletAddress = function (address) {
546
+ if (!address) {
547
+ console.error("No wallet address provided to store.");
548
+ return;
549
+ }
550
+ var sessionData = {
551
+ address: address,
552
+ timestamp: Date.now(),
553
+ };
554
+ sessionStorage.setItem(this.walletAddressSessionKey, JSON.stringify(sessionData));
555
+ };
556
+ /**
557
+ * Clears the wallet address from session storage when disconnected.
558
+ */
559
+ FormoAnalytics.prototype.clearWalletAddress = function () {
560
+ sessionStorage.removeItem(this.walletAddressSessionKey);
561
+ };
562
+ FormoAnalytics.prototype.init = function (apiKey, options) {
563
+ var instance = new FormoAnalytics(apiKey, options);
564
+ return Promise.resolve(instance);
565
+ };
566
+ FormoAnalytics.prototype.connect = function (_a) {
567
+ var chainId = _a.chainId, address = _a.address;
568
+ if (!chainId) {
569
+ throw new Error("FormoAnalytics::connect: chain ID cannot be empty");
570
+ }
571
+ if (!address) {
572
+ throw new Error("FormoAnalytics::connect: address cannot be empty");
573
+ }
574
+ this.currentChainId = chainId.toString();
575
+ this.currentConnectedAddress = address;
576
+ return this.trackEvent(constants_1.Event.CONNECT, {
577
+ chain_id: chainId,
578
+ address: address,
579
+ });
580
+ };
581
+ FormoAnalytics.prototype.disconnect = function (params) {
582
+ var address = (params === null || params === void 0 ? void 0 : params.address) || this.currentConnectedAddress;
583
+ if (!address) {
584
+ // We have most likely already reported this disconnection with the automatic
585
+ // `disconnect` detection
586
+ return;
587
+ }
588
+ var payload = {
589
+ chain_id: (params === null || params === void 0 ? void 0 : params.chainId) || this.currentChainId,
590
+ address: address,
591
+ };
592
+ this.currentChainId = undefined;
593
+ this.currentConnectedAddress = undefined;
594
+ return this.trackEvent(constants_1.Event.DISCONNECT, payload);
595
+ };
596
+ FormoAnalytics.prototype.chain = function (_a) {
597
+ var chainId = _a.chainId, address = _a.address;
598
+ if (!chainId || Number(chainId) === 0) {
599
+ throw new Error("FormoAnalytics::chain: chainId cannot be empty or 0");
600
+ }
601
+ if (!address && !this.currentConnectedAddress) {
602
+ throw new Error("FormoAnalytics::chain: address was empty and no previous address has been recorded. You can either pass an address or call connect() first");
603
+ }
604
+ if (isNaN(Number(chainId))) {
605
+ throw new Error("FormoAnalytics::chain: chainId must be a valid hex or decimal number");
606
+ }
607
+ this.currentChainId = chainId.toString();
608
+ return this.trackEvent(constants_1.Event.CHAIN_CHANGED, {
609
+ chain_id: chainId,
610
+ address: address || this.currentConnectedAddress,
611
+ });
612
+ };
613
+ FormoAnalytics.prototype.page = function () {
614
+ this.trackPageHit();
615
+ };
616
+ FormoAnalytics.prototype.track = function (eventName, eventData) {
617
+ this.trackEvent(eventName, eventData);
618
+ };
619
+ return FormoAnalytics;
620
+ }());
621
+ exports.FormoAnalytics = FormoAnalytics;
622
+ //# sourceMappingURL=FormoAnalytics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormoAnalytics.js","sourceRoot":"","sources":["../../../src/FormoAnalytics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { FormoAnalytics } from './FormoAnalytics';
3
+ import { FormoAnalyticsProviderProps } from './types';
4
+ export declare const FormoAnalyticsContext: React.Context<FormoAnalytics | undefined>;
5
+ export declare const FormoAnalyticsProvider: ({ apiKey, options, disabled, children, }: FormoAnalyticsProviderProps) => import("react/jsx-runtime").JSX.Element;
6
+ export declare const useFormoAnalytics: () => FormoAnalytics | undefined;
7
+ //# sourceMappingURL=FormoAnalyticsProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormoAnalyticsProvider.d.ts","sourceRoot":"","sources":["../../../src/FormoAnalyticsProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAMtD,eAAO,MAAM,qBAAqB,2CAEjC,CAAC;AAEF,eAAO,MAAM,sBAAsB,6CAKhC,2BAA2B,4CAiE7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,kCAQ7B,CAAC"}