@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.
- package/dist/cjs/src/FormoAnalytics.d.ts +10 -0
- package/dist/cjs/src/FormoAnalytics.d.ts.map +1 -1
- package/dist/cjs/src/FormoAnalytics.js +181 -102
- package/dist/cjs/src/FormoAnalytics.js.map +1 -1
- package/dist/cjs/src/FormoAnalyticsProvider.d.ts.map +1 -1
- package/dist/cjs/src/FormoAnalyticsProvider.js +6 -5
- package/dist/cjs/src/FormoAnalyticsProvider.js.map +1 -1
- package/dist/cjs/src/constants/base.d.ts +3 -1
- package/dist/cjs/src/constants/base.d.ts.map +1 -1
- package/dist/cjs/src/constants/base.js +7 -3
- package/dist/cjs/src/constants/base.js.map +1 -1
- package/dist/cjs/src/constants/config.d.ts +6 -1
- package/dist/cjs/src/constants/config.d.ts.map +1 -1
- package/dist/cjs/src/constants/config.js +9 -3
- package/dist/cjs/src/constants/config.js.map +1 -1
- package/dist/cjs/src/lib/fetch.d.ts +3 -0
- package/dist/cjs/src/lib/fetch.d.ts.map +1 -0
- package/dist/cjs/src/lib/fetch.js +8 -0
- package/dist/cjs/src/lib/fetch.js.map +1 -0
- package/dist/cjs/src/lib/index.d.ts +4 -2
- package/dist/cjs/src/lib/index.d.ts.map +1 -1
- package/dist/cjs/src/lib/index.js +6 -4
- package/dist/cjs/src/lib/index.js.map +1 -1
- package/dist/cjs/src/lib/logger.d.ts +22 -0
- package/dist/cjs/src/lib/logger.d.ts.map +1 -0
- package/dist/cjs/src/lib/logger.js +114 -0
- package/dist/cjs/src/lib/logger.js.map +1 -0
- package/dist/cjs/src/lib/queue.d.ts +2 -3
- package/dist/cjs/src/lib/queue.d.ts.map +1 -1
- package/dist/cjs/src/lib/queue.js +42 -64
- package/dist/cjs/src/lib/queue.js.map +1 -1
- package/dist/cjs/src/lib/storage/index.d.ts +3 -0
- package/dist/cjs/src/lib/storage/index.d.ts.map +1 -0
- package/dist/cjs/src/lib/storage/index.js +11 -0
- package/dist/cjs/src/lib/storage/index.js.map +1 -0
- package/dist/cjs/src/lib/storage/local.d.ts +4 -0
- package/dist/cjs/src/lib/storage/local.d.ts.map +1 -0
- package/dist/cjs/src/lib/storage/local.js +8 -0
- package/dist/cjs/src/lib/storage/local.js.map +1 -0
- package/dist/cjs/src/lib/storage/native.d.ts +15 -0
- package/dist/cjs/src/lib/storage/native.d.ts.map +1 -0
- package/dist/cjs/src/lib/storage/native.js +83 -0
- package/dist/cjs/src/lib/storage/native.js.map +1 -0
- package/dist/cjs/src/lib/storage/session.d.ts +4 -0
- package/dist/cjs/src/lib/storage/session.d.ts.map +1 -0
- package/dist/cjs/src/lib/storage/session.js +8 -0
- package/dist/cjs/src/lib/storage/session.js.map +1 -0
- package/dist/cjs/src/types/base.d.ts +5 -0
- package/dist/cjs/src/types/base.d.ts.map +1 -1
- package/dist/cjs/src/types/events.d.ts +6 -0
- package/dist/cjs/src/types/events.d.ts.map +1 -1
- package/dist/cjs/src/types/events.js.map +1 -1
- package/dist/cjs/src/{lib/utils.d.ts → utils/base.d.ts} +4 -3
- package/dist/cjs/src/utils/base.d.ts.map +1 -0
- package/dist/cjs/src/utils/base.js +113 -0
- package/dist/cjs/src/utils/base.js.map +1 -0
- package/dist/cjs/src/utils/index.d.ts +3 -0
- package/dist/cjs/src/utils/index.d.ts.map +1 -0
- package/dist/cjs/src/utils/index.js +19 -0
- package/dist/cjs/src/utils/index.js.map +1 -0
- package/dist/cjs/src/utils/is.d.ts +3 -0
- package/dist/cjs/src/utils/is.d.ts.map +1 -0
- package/dist/cjs/src/utils/is.js +11 -0
- package/dist/cjs/src/utils/is.js.map +1 -0
- package/dist/cjs/test/lib.spec.js +5 -5
- package/dist/cjs/test/lib.spec.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/src/FormoAnalytics.d.ts +10 -0
- package/dist/esm/src/FormoAnalytics.d.ts.map +1 -1
- package/dist/esm/src/FormoAnalytics.js +179 -100
- package/dist/esm/src/FormoAnalytics.js.map +1 -1
- package/dist/esm/src/FormoAnalyticsProvider.d.ts.map +1 -1
- package/dist/esm/src/FormoAnalyticsProvider.js +6 -5
- package/dist/esm/src/FormoAnalyticsProvider.js.map +1 -1
- package/dist/esm/src/constants/base.d.ts +3 -1
- package/dist/esm/src/constants/base.d.ts.map +1 -1
- package/dist/esm/src/constants/base.js +6 -2
- package/dist/esm/src/constants/base.js.map +1 -1
- package/dist/esm/src/constants/config.d.ts +6 -1
- package/dist/esm/src/constants/config.d.ts.map +1 -1
- package/dist/esm/src/constants/config.js +7 -2
- package/dist/esm/src/constants/config.js.map +1 -1
- package/dist/esm/src/lib/fetch.d.ts +3 -0
- package/dist/esm/src/lib/fetch.d.ts.map +1 -0
- package/dist/esm/src/lib/fetch.js +3 -0
- package/dist/esm/src/lib/fetch.js.map +1 -0
- package/dist/esm/src/lib/index.d.ts +4 -2
- package/dist/esm/src/lib/index.d.ts.map +1 -1
- package/dist/esm/src/lib/index.js +4 -2
- package/dist/esm/src/lib/index.js.map +1 -1
- package/dist/esm/src/lib/logger.d.ts +22 -0
- package/dist/esm/src/lib/logger.d.ts.map +1 -0
- package/dist/esm/src/lib/logger.js +111 -0
- package/dist/esm/src/lib/logger.js.map +1 -0
- package/dist/esm/src/lib/queue.d.ts +2 -3
- package/dist/esm/src/lib/queue.d.ts.map +1 -1
- package/dist/esm/src/lib/queue.js +42 -64
- package/dist/esm/src/lib/queue.js.map +1 -1
- package/dist/esm/src/lib/storage/index.d.ts +3 -0
- package/dist/esm/src/lib/storage/index.d.ts.map +1 -0
- package/dist/esm/src/lib/storage/index.js +3 -0
- package/dist/esm/src/lib/storage/index.js.map +1 -0
- package/dist/esm/src/lib/storage/local.d.ts +4 -0
- package/dist/esm/src/lib/storage/local.d.ts.map +1 -0
- package/dist/esm/src/lib/storage/local.js +3 -0
- package/dist/esm/src/lib/storage/local.js.map +1 -0
- package/dist/esm/src/lib/storage/native.d.ts +15 -0
- package/dist/esm/src/lib/storage/native.d.ts.map +1 -0
- package/dist/esm/src/lib/storage/native.js +80 -0
- package/dist/esm/src/lib/storage/native.js.map +1 -0
- package/dist/esm/src/lib/storage/session.d.ts +4 -0
- package/dist/esm/src/lib/storage/session.d.ts.map +1 -0
- package/dist/esm/src/lib/storage/session.js +3 -0
- package/dist/esm/src/lib/storage/session.js.map +1 -0
- package/dist/esm/src/types/base.d.ts +5 -0
- package/dist/esm/src/types/base.d.ts.map +1 -1
- package/dist/esm/src/types/events.d.ts +6 -0
- package/dist/esm/src/types/events.d.ts.map +1 -1
- package/dist/esm/src/types/events.js.map +1 -1
- package/dist/esm/src/{lib/utils.d.ts → utils/base.d.ts} +4 -3
- package/dist/esm/src/utils/base.d.ts.map +1 -0
- package/dist/esm/src/{lib/fingerprint.js → utils/base.js} +66 -23
- package/dist/esm/src/utils/base.js.map +1 -0
- package/dist/esm/src/utils/index.d.ts +3 -0
- package/dist/esm/src/utils/index.d.ts.map +1 -0
- package/dist/esm/src/utils/index.js +3 -0
- package/dist/esm/src/utils/index.js.map +1 -0
- package/dist/esm/src/utils/is.d.ts +3 -0
- package/dist/esm/src/utils/is.d.ts.map +1 -0
- package/dist/esm/src/utils/is.js +6 -0
- package/dist/esm/src/utils/is.js.map +1 -0
- package/dist/esm/test/lib.spec.js +1 -1
- package/dist/esm/test/lib.spec.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/index.umd.min.js +1 -1
- package/dist/index.umd.min.js.map +1 -1
- package/package.json +1 -2
- package/src/FormoAnalytics.ts +176 -89
- package/src/FormoAnalyticsProvider.tsx +6 -5
- package/src/constants/base.ts +12 -2
- package/src/constants/config.ts +9 -2
- package/src/lib/fetch.ts +3 -0
- package/src/lib/index.ts +4 -2
- package/src/lib/logger.ts +93 -0
- package/src/lib/queue.ts +27 -48
- package/src/lib/storage/index.ts +2 -0
- package/src/lib/storage/local.ts +3 -0
- package/src/lib/storage/native.ts +93 -0
- package/src/lib/storage/session.ts +3 -0
- package/src/types/base.ts +5 -0
- package/src/types/events.ts +8 -0
- package/src/{lib/utils.ts → utils/base.ts} +16 -8
- package/src/utils/index.ts +2 -0
- package/src/utils/is.ts +8 -0
- package/test/lib.spec.ts +1 -1
- package/dist/cjs/src/lib/fingerprint.d.ts +0 -4
- package/dist/cjs/src/lib/fingerprint.d.ts.map +0 -1
- package/dist/cjs/src/lib/fingerprint.js +0 -63
- package/dist/cjs/src/lib/fingerprint.js.map +0 -1
- package/dist/cjs/src/lib/session-storage.d.ts +0 -11
- package/dist/cjs/src/lib/session-storage.d.ts.map +0 -1
- package/dist/cjs/src/lib/session-storage.js +0 -52
- package/dist/cjs/src/lib/session-storage.js.map +0 -1
- package/dist/cjs/src/lib/utils.d.ts.map +0 -1
- package/dist/cjs/src/lib/utils.js +0 -63
- package/dist/cjs/src/lib/utils.js.map +0 -1
- package/dist/esm/src/lib/fingerprint.d.ts +0 -4
- package/dist/esm/src/lib/fingerprint.d.ts.map +0 -1
- package/dist/esm/src/lib/fingerprint.js.map +0 -1
- package/dist/esm/src/lib/session-storage.d.ts +0 -11
- package/dist/esm/src/lib/session-storage.d.ts.map +0 -1
- package/dist/esm/src/lib/session-storage.js +0 -49
- package/dist/esm/src/lib/session-storage.js.map +0 -1
- package/dist/esm/src/lib/utils.d.ts.map +0 -1
- package/dist/esm/src/lib/utils.js +0 -53
- package/dist/esm/src/lib/utils.js.map +0 -1
- package/src/lib/fingerprint.ts +0 -9
- 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":"
|
|
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
|
-
|
|
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
|
-
|
|
157
|
+
lib_1.logger.warn("Connect: Chain ID cannot be empty");
|
|
144
158
|
}
|
|
145
159
|
if (!address) {
|
|
146
|
-
|
|
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*/,
|
|
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
|
-
|
|
313
|
-
|
|
314
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
448
|
-
|
|
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 (
|
|
533
|
-
switch (
|
|
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*/,
|
|
553
|
+
if (!!this.currentConnectedAddress) return [3 /*break*/, 3];
|
|
537
554
|
if (!this.provider) {
|
|
538
|
-
|
|
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 =
|
|
560
|
+
address = _b.sent();
|
|
544
561
|
if (!address) {
|
|
545
|
-
|
|
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
|
|
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
|
-
|
|
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.
|
|
570
|
-
lib_1.session.set(constants_1.
|
|
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.
|
|
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.
|
|
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,
|
|
625
|
-
return
|
|
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:
|
|
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,
|
|
653
|
-
case
|
|
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
|
-
|
|
686
|
+
lib_1.logger.error("Error sending events:", err);
|
|
659
687
|
}
|
|
660
688
|
else
|
|
661
|
-
|
|
689
|
+
lib_1.logger.info("Events sent successfully: ".concat(data.length, " events"));
|
|
662
690
|
})];
|
|
663
|
-
case
|
|
691
|
+
case 4:
|
|
664
692
|
_b.sent();
|
|
665
|
-
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 =
|
|
711
|
+
providers = store.getProviders();
|
|
679
712
|
// TODO: consider using store.subscribe to detect changes to providers list
|
|
680
|
-
|
|
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*/,
|
|
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,
|
|
692
|
-
return __generator(this, function (
|
|
693
|
-
switch (
|
|
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
|
-
|
|
728
|
+
_b.trys.push([0, 11, , 12]);
|
|
696
729
|
_i = 0, providers_1 = providers;
|
|
697
|
-
|
|
730
|
+
_b.label = 1;
|
|
698
731
|
case 1:
|
|
699
732
|
if (!(_i < providers_1.length)) return [3 /*break*/, 10];
|
|
700
|
-
|
|
701
|
-
|
|
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 =
|
|
738
|
+
accounts = _b.sent();
|
|
704
739
|
if (!(accounts && accounts.length > 0)) return [3 /*break*/, 7];
|
|
705
|
-
|
|
706
|
-
|
|
740
|
+
_a = 0, accounts_1 = accounts;
|
|
741
|
+
_b.label = 3;
|
|
707
742
|
case 3:
|
|
708
|
-
if (!(
|
|
709
|
-
address = accounts_1[
|
|
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
|
-
|
|
717
|
-
|
|
751
|
+
_b.sent();
|
|
752
|
+
_b.label = 5;
|
|
718
753
|
case 5:
|
|
719
|
-
|
|
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
|
-
|
|
732
|
-
|
|
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 =
|
|
739
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
943
|
+
lib_1.logger.error("Error resolving language:", error);
|
|
865
944
|
return "en";
|
|
866
945
|
}
|
|
867
946
|
};
|