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