@formo/analytics 1.16.4 → 1.16.5
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 +69 -38
- package/dist/cjs/src/FormoAnalytics.d.ts.map +1 -1
- package/dist/cjs/src/FormoAnalytics.js +143 -198
- package/dist/cjs/src/FormoAnalytics.js.map +1 -1
- package/dist/cjs/src/FormoAnalyticsProvider.js +5 -5
- package/dist/cjs/src/FormoAnalyticsProvider.js.map +1 -1
- package/dist/cjs/src/constants/config.d.ts +1 -1
- package/dist/cjs/src/constants/config.d.ts.map +1 -1
- package/dist/cjs/src/constants/config.js +1 -1
- package/dist/cjs/src/constants/config.js.map +1 -1
- package/dist/cjs/src/constants/events.d.ts +14 -5
- package/dist/cjs/src/constants/events.d.ts.map +1 -1
- package/dist/cjs/src/constants/events.js +20 -12
- package/dist/cjs/src/constants/events.js.map +1 -1
- package/dist/cjs/src/lib/event/EventFactory.d.ts +22 -54
- package/dist/cjs/src/lib/event/EventFactory.d.ts.map +1 -1
- package/dist/cjs/src/lib/event/EventFactory.js +187 -116
- package/dist/cjs/src/lib/event/EventFactory.js.map +1 -1
- package/dist/cjs/src/lib/event/EventManager.d.ts +22 -0
- package/dist/cjs/src/lib/event/EventManager.d.ts.map +1 -0
- package/dist/cjs/src/lib/event/EventManager.js +48 -0
- package/dist/cjs/src/lib/event/EventManager.js.map +1 -0
- package/dist/cjs/src/lib/event/constants.d.ts +4 -0
- package/dist/cjs/src/lib/event/constants.d.ts.map +1 -0
- package/dist/cjs/src/lib/event/constants.js +8 -0
- package/dist/cjs/src/lib/event/constants.js.map +1 -0
- package/dist/cjs/src/lib/event/index.d.ts +1 -0
- package/dist/cjs/src/lib/event/index.d.ts.map +1 -1
- package/dist/cjs/src/lib/event/index.js +1 -0
- package/dist/cjs/src/lib/event/index.js.map +1 -1
- package/dist/cjs/src/lib/event/type.d.ts +5 -3
- package/dist/cjs/src/lib/event/type.d.ts.map +1 -1
- package/dist/cjs/src/lib/event/utils.d.ts +4 -0
- package/dist/cjs/src/lib/event/utils.d.ts.map +1 -0
- package/dist/cjs/src/lib/event/utils.js +16 -0
- package/dist/cjs/src/lib/event/utils.js.map +1 -0
- package/dist/cjs/src/lib/fetch.d.ts +1 -1
- package/dist/cjs/src/lib/queue/EventQueue.d.ts +1 -0
- package/dist/cjs/src/lib/queue/EventQueue.d.ts.map +1 -1
- package/dist/cjs/src/lib/queue/EventQueue.js +20 -12
- package/dist/cjs/src/lib/queue/EventQueue.js.map +1 -1
- package/dist/cjs/src/lib/ramda/internal/_curry1.d.ts +10 -0
- package/dist/cjs/src/lib/ramda/internal/_curry1.d.ts.map +1 -0
- package/dist/cjs/src/lib/ramda/internal/_curry1.js +26 -0
- package/dist/cjs/src/lib/ramda/internal/_curry1.js.map +1 -0
- package/dist/cjs/src/lib/ramda/internal/_curry2.d.ts +10 -0
- package/dist/cjs/src/lib/ramda/internal/_curry2.d.ts.map +1 -0
- package/dist/cjs/src/lib/ramda/internal/_curry2.js +43 -0
- package/dist/cjs/src/lib/ramda/internal/_curry2.js.map +1 -0
- package/dist/cjs/src/lib/ramda/internal/_curry3.d.ts +10 -0
- package/dist/cjs/src/lib/ramda/internal/_curry3.d.ts.map +1 -0
- package/dist/cjs/src/lib/ramda/internal/_curry3.js +74 -0
- package/dist/cjs/src/lib/ramda/internal/_curry3.js.map +1 -0
- package/dist/cjs/src/lib/ramda/internal/_has.d.ts +2 -0
- package/dist/cjs/src/lib/ramda/internal/_has.d.ts.map +1 -0
- package/dist/cjs/src/lib/ramda/internal/_has.js +7 -0
- package/dist/cjs/src/lib/ramda/internal/_has.js.map +1 -0
- package/dist/cjs/src/lib/ramda/internal/_isObject.d.ts +2 -0
- package/dist/cjs/src/lib/ramda/internal/_isObject.d.ts.map +1 -0
- package/dist/cjs/src/lib/ramda/internal/_isObject.js +7 -0
- package/dist/cjs/src/lib/ramda/internal/_isObject.js.map +1 -0
- package/dist/cjs/src/lib/ramda/internal/_isPlaceholder.d.ts +2 -0
- package/dist/cjs/src/lib/ramda/internal/_isPlaceholder.d.ts.map +1 -0
- package/dist/cjs/src/lib/ramda/internal/_isPlaceholder.js +7 -0
- package/dist/cjs/src/lib/ramda/internal/_isPlaceholder.js.map +1 -0
- package/dist/cjs/src/lib/ramda/mergeDeepRight.d.ts +3 -0
- package/dist/cjs/src/lib/ramda/mergeDeepRight.d.ts.map +1 -0
- package/dist/cjs/src/lib/ramda/mergeDeepRight.js +14 -0
- package/dist/cjs/src/lib/ramda/mergeDeepRight.js.map +1 -0
- package/dist/cjs/src/lib/ramda/mergeDeepWithKey.d.ts +3 -0
- package/dist/cjs/src/lib/ramda/mergeDeepWithKey.d.ts.map +1 -0
- package/dist/cjs/src/lib/ramda/mergeDeepWithKey.js +20 -0
- package/dist/cjs/src/lib/ramda/mergeDeepWithKey.js.map +1 -0
- package/dist/cjs/src/lib/ramda/mergeWithKey.d.ts +3 -0
- package/dist/cjs/src/lib/ramda/mergeWithKey.d.ts.map +1 -0
- package/dist/cjs/src/lib/ramda/mergeWithKey.js +26 -0
- package/dist/cjs/src/lib/ramda/mergeWithKey.js.map +1 -0
- package/dist/cjs/src/lib/storage/native.d.ts +1 -0
- package/dist/cjs/src/lib/storage/native.d.ts.map +1 -1
- package/dist/cjs/src/lib/storage/native.js +3 -0
- package/dist/cjs/src/lib/storage/native.js.map +1 -1
- package/dist/cjs/src/lib/version.d.ts +2 -0
- package/dist/cjs/src/lib/version.d.ts.map +1 -0
- package/dist/cjs/src/lib/version.js +6 -0
- package/dist/cjs/src/lib/version.js.map +1 -0
- package/dist/cjs/src/types/base.d.ts +1 -0
- package/dist/cjs/src/types/base.d.ts.map +1 -1
- package/dist/cjs/src/types/events.d.ts +55 -27
- 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/utils/base.d.ts +1 -1
- package/dist/cjs/src/utils/base.d.ts.map +1 -1
- package/dist/cjs/src/utils/base.js +2 -2
- package/dist/cjs/src/utils/base.js.map +1 -1
- package/dist/cjs/src/utils/timestamp.d.ts +8 -0
- package/dist/cjs/src/utils/timestamp.d.ts.map +1 -0
- package/dist/cjs/src/utils/timestamp.js +12 -0
- package/dist/cjs/src/utils/timestamp.js.map +1 -0
- package/dist/cjs/src/validators/checks.d.ts +77 -0
- package/dist/cjs/src/validators/checks.d.ts.map +1 -0
- package/dist/cjs/src/validators/checks.js +141 -0
- package/dist/cjs/src/validators/checks.js.map +1 -0
- package/dist/cjs/src/validators/index.d.ts +1 -1
- package/dist/cjs/src/validators/index.d.ts.map +1 -1
- package/dist/cjs/src/validators/index.js +1 -1
- package/dist/cjs/src/validators/index.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/src/FormoAnalytics.d.ts +69 -38
- package/dist/esm/src/FormoAnalytics.d.ts.map +1 -1
- package/dist/esm/src/FormoAnalytics.js +146 -201
- package/dist/esm/src/FormoAnalytics.js.map +1 -1
- package/dist/esm/src/FormoAnalyticsProvider.js +5 -5
- package/dist/esm/src/FormoAnalyticsProvider.js.map +1 -1
- package/dist/esm/src/constants/config.d.ts +1 -1
- package/dist/esm/src/constants/config.d.ts.map +1 -1
- package/dist/esm/src/constants/config.js +1 -1
- package/dist/esm/src/constants/config.js.map +1 -1
- package/dist/esm/src/constants/events.d.ts +14 -5
- package/dist/esm/src/constants/events.d.ts.map +1 -1
- package/dist/esm/src/constants/events.js +19 -11
- package/dist/esm/src/constants/events.js.map +1 -1
- package/dist/esm/src/lib/event/EventFactory.d.ts +22 -54
- package/dist/esm/src/lib/event/EventFactory.d.ts.map +1 -1
- package/dist/esm/src/lib/event/EventFactory.js +185 -117
- package/dist/esm/src/lib/event/EventFactory.js.map +1 -1
- package/dist/esm/src/lib/event/EventManager.d.ts +22 -0
- package/dist/esm/src/lib/event/EventManager.d.ts.map +1 -0
- package/dist/esm/src/lib/event/EventManager.js +45 -0
- package/dist/esm/src/lib/event/EventManager.js.map +1 -0
- package/dist/esm/src/lib/event/constants.d.ts +4 -0
- package/dist/esm/src/lib/event/constants.d.ts.map +1 -0
- package/dist/esm/src/lib/event/constants.js +4 -0
- package/dist/esm/src/lib/event/constants.js.map +1 -0
- package/dist/esm/src/lib/event/index.d.ts +1 -0
- package/dist/esm/src/lib/event/index.d.ts.map +1 -1
- package/dist/esm/src/lib/event/index.js +1 -0
- package/dist/esm/src/lib/event/index.js.map +1 -1
- package/dist/esm/src/lib/event/type.d.ts +5 -3
- package/dist/esm/src/lib/event/type.d.ts.map +1 -1
- package/dist/esm/src/lib/event/utils.d.ts +4 -0
- package/dist/esm/src/lib/event/utils.d.ts.map +1 -0
- package/dist/esm/src/lib/event/utils.js +13 -0
- package/dist/esm/src/lib/event/utils.js.map +1 -0
- package/dist/esm/src/lib/queue/EventQueue.d.ts +1 -0
- package/dist/esm/src/lib/queue/EventQueue.d.ts.map +1 -1
- package/dist/esm/src/lib/queue/EventQueue.js +20 -12
- package/dist/esm/src/lib/queue/EventQueue.js.map +1 -1
- package/dist/esm/src/lib/ramda/internal/_curry1.d.ts +10 -0
- package/dist/esm/src/lib/ramda/internal/_curry1.d.ts.map +1 -0
- package/dist/esm/src/lib/ramda/internal/_curry1.js +20 -0
- package/dist/esm/src/lib/ramda/internal/_curry1.js.map +1 -0
- package/dist/esm/src/lib/ramda/internal/_curry2.d.ts +10 -0
- package/dist/esm/src/lib/ramda/internal/_curry2.d.ts.map +1 -0
- package/dist/esm/src/lib/ramda/internal/_curry2.js +37 -0
- package/dist/esm/src/lib/ramda/internal/_curry2.js.map +1 -0
- package/dist/esm/src/lib/ramda/internal/_curry3.d.ts +10 -0
- package/dist/esm/src/lib/ramda/internal/_curry3.d.ts.map +1 -0
- package/dist/esm/src/lib/ramda/internal/_curry3.js +68 -0
- package/dist/esm/src/lib/ramda/internal/_curry3.js.map +1 -0
- package/dist/esm/src/lib/ramda/internal/_has.d.ts +2 -0
- package/dist/esm/src/lib/ramda/internal/_has.d.ts.map +1 -0
- package/dist/esm/src/lib/ramda/internal/_has.js +4 -0
- package/dist/esm/src/lib/ramda/internal/_has.js.map +1 -0
- package/dist/esm/src/lib/ramda/internal/_isObject.d.ts +2 -0
- package/dist/esm/src/lib/ramda/internal/_isObject.d.ts.map +1 -0
- package/dist/esm/src/lib/ramda/internal/_isObject.js +4 -0
- package/dist/esm/src/lib/ramda/internal/_isObject.js.map +1 -0
- package/dist/esm/src/lib/ramda/internal/_isPlaceholder.d.ts +2 -0
- package/dist/esm/src/lib/ramda/internal/_isPlaceholder.d.ts.map +1 -0
- package/dist/esm/src/lib/ramda/internal/_isPlaceholder.js +4 -0
- package/dist/esm/src/lib/ramda/internal/_isPlaceholder.js.map +1 -0
- package/dist/esm/src/lib/ramda/mergeDeepRight.d.ts +3 -0
- package/dist/esm/src/lib/ramda/mergeDeepRight.d.ts.map +1 -0
- package/dist/esm/src/lib/ramda/mergeDeepRight.js +9 -0
- package/dist/esm/src/lib/ramda/mergeDeepRight.js.map +1 -0
- package/dist/esm/src/lib/ramda/mergeDeepWithKey.d.ts +3 -0
- package/dist/esm/src/lib/ramda/mergeDeepWithKey.d.ts.map +1 -0
- package/dist/esm/src/lib/ramda/mergeDeepWithKey.js +15 -0
- package/dist/esm/src/lib/ramda/mergeDeepWithKey.js.map +1 -0
- package/dist/esm/src/lib/ramda/mergeWithKey.d.ts +3 -0
- package/dist/esm/src/lib/ramda/mergeWithKey.d.ts.map +1 -0
- package/dist/esm/src/lib/ramda/mergeWithKey.js +21 -0
- package/dist/esm/src/lib/ramda/mergeWithKey.js.map +1 -0
- package/dist/esm/src/lib/storage/native.d.ts +1 -0
- package/dist/esm/src/lib/storage/native.d.ts.map +1 -1
- package/dist/esm/src/lib/storage/native.js +3 -0
- package/dist/esm/src/lib/storage/native.js.map +1 -1
- package/dist/esm/src/lib/version.d.ts +2 -0
- package/dist/esm/src/lib/version.d.ts.map +1 -0
- package/dist/esm/src/lib/version.js +3 -0
- package/dist/esm/src/lib/version.js.map +1 -0
- package/dist/esm/src/types/base.d.ts +1 -0
- package/dist/esm/src/types/base.d.ts.map +1 -1
- package/dist/esm/src/types/events.d.ts +55 -27
- 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/utils/base.d.ts +1 -1
- package/dist/esm/src/utils/base.d.ts.map +1 -1
- package/dist/esm/src/utils/base.js +2 -2
- package/dist/esm/src/utils/base.js.map +1 -1
- package/dist/esm/src/utils/timestamp.d.ts +8 -0
- package/dist/esm/src/utils/timestamp.d.ts.map +1 -0
- package/dist/esm/src/utils/timestamp.js +8 -0
- package/dist/esm/src/utils/timestamp.js.map +1 -0
- package/dist/esm/src/validators/checks.d.ts +77 -0
- package/dist/esm/src/validators/checks.d.ts.map +1 -0
- package/dist/esm/src/validators/checks.js +119 -0
- package/dist/esm/src/validators/checks.js.map +1 -0
- package/dist/esm/src/validators/index.d.ts +1 -1
- package/dist/esm/src/validators/index.d.ts.map +1 -1
- package/dist/esm/src/validators/index.js +1 -1
- package/dist/esm/src/validators/index.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 +3 -2
- package/src/FormoAnalytics.ts +380 -242
- package/src/FormoAnalyticsProvider.tsx +5 -5
- package/src/constants/config.ts +1 -1
- package/src/constants/events.ts +15 -4
- package/src/lib/event/EventFactory.ts +358 -162
- package/src/lib/event/EventManager.ts +39 -0
- package/src/lib/event/constants.ts +4 -0
- package/src/lib/event/index.ts +1 -0
- package/src/lib/event/type.ts +6 -8
- package/src/lib/event/utils.ts +15 -0
- package/src/lib/queue/EventQueue.ts +22 -10
- package/src/lib/ramda/internal/_curry1.ts +19 -0
- package/src/lib/ramda/internal/_curry2.ts +37 -0
- package/src/lib/ramda/internal/_curry3.ts +68 -0
- package/src/lib/ramda/internal/_has.ts +3 -0
- package/src/lib/ramda/internal/_isObject.ts +3 -0
- package/src/lib/ramda/internal/_isPlaceholder.ts +5 -0
- package/src/lib/ramda/mergeDeepRight.ts +13 -0
- package/src/lib/ramda/mergeDeepWithKey.ts +22 -0
- package/src/lib/ramda/mergeWithKey.ts +28 -0
- package/src/lib/storage/native.ts +4 -0
- package/src/lib/version.ts +2 -0
- package/src/types/base.ts +1 -0
- package/src/types/events.ts +93 -58
- package/src/utils/base.ts +2 -2
- package/src/utils/timestamp.ts +9 -0
- package/src/validators/checks.ts +160 -0
- package/src/validators/index.ts +1 -1
- package/tsconfig.json +1 -1
- package/dist/cjs/src/validators/type-check.d.ts +0 -14
- package/dist/cjs/src/validators/type-check.d.ts.map +0 -1
- package/dist/cjs/src/validators/type-check.js +0 -61
- package/dist/cjs/src/validators/type-check.js.map +0 -1
- package/dist/esm/src/validators/type-check.d.ts +0 -14
- package/dist/esm/src/validators/type-check.d.ts.map +0 -1
- package/dist/esm/src/validators/type-check.js +0 -46
- package/dist/esm/src/validators/type-check.js.map +0 -1
- package/src/validators/type-check.ts +0 -61
|
@@ -46,11 +46,10 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
46
46
|
}
|
|
47
47
|
};
|
|
48
48
|
import { createStore } from "mipd";
|
|
49
|
-
import {
|
|
50
|
-
import {
|
|
49
|
+
import { EVENTS_API_URL, EventType, LOCAL_ANONYMOUS_ID_KEY, SESSION_CURRENT_URL_KEY, SESSION_USER_ID_KEY, SESSION_WALLET_DETECTED_KEY, } from "./constants";
|
|
50
|
+
import { EventManager, EventQueue, local, logger, Logger, session, } from "./lib";
|
|
51
51
|
import { SignatureStatus, TransactionStatus, } from "./types";
|
|
52
|
-
import {
|
|
53
|
-
import { isAddress, isArray, isLocalhost } from "./validators";
|
|
52
|
+
import { isAddress, isLocalhost } from "./validators";
|
|
54
53
|
var FormoAnalytics = /** @class */ (function () {
|
|
55
54
|
function FormoAnalytics(writeKey, options) {
|
|
56
55
|
if (options === void 0) { options = {}; }
|
|
@@ -58,28 +57,25 @@ var FormoAnalytics = /** @class */ (function () {
|
|
|
58
57
|
this.writeKey = writeKey;
|
|
59
58
|
this.options = options;
|
|
60
59
|
this._providerListeners = {};
|
|
61
|
-
this.anonymousId = null;
|
|
62
|
-
this.userId = null;
|
|
63
60
|
this.config = {
|
|
64
61
|
writeKey: writeKey,
|
|
65
62
|
trackLocalhost: options.trackLocalhost || false,
|
|
66
63
|
};
|
|
67
64
|
this.session = new FormoAnalyticsSession();
|
|
65
|
+
this.currentUserId =
|
|
66
|
+
session.get(SESSION_USER_ID_KEY) || undefined;
|
|
68
67
|
// Initialize logger with configuration from options
|
|
69
68
|
Logger.init({
|
|
70
69
|
enabled: ((_a = options.logger) === null || _a === void 0 ? void 0 : _a.enabled) || false,
|
|
71
70
|
enabledLevels: ((_b = options.logger) === null || _b === void 0 ? void 0 : _b.levels) || [],
|
|
72
71
|
});
|
|
73
|
-
this.
|
|
74
|
-
this.eventQueue = new EventQueue(this.config.writeKey, {
|
|
72
|
+
this.eventManager = new EventManager(new EventQueue(this.config.writeKey, {
|
|
75
73
|
url: EVENTS_API_URL,
|
|
76
74
|
flushAt: options.flushAt,
|
|
77
75
|
retryCount: options.retryCount,
|
|
78
76
|
maxQueueSize: options.maxQueueSize,
|
|
79
77
|
flushInterval: options.flushInterval,
|
|
80
|
-
});
|
|
81
|
-
this.anonymousId = this.getAnonymousId();
|
|
82
|
-
this.userId = session.get(SESSION_USER_ID_KEY);
|
|
78
|
+
}));
|
|
83
79
|
// TODO: replace with eip6963
|
|
84
80
|
var provider = options.provider || (window === null || window === void 0 ? void 0 : window.ethereum);
|
|
85
81
|
if (provider) {
|
|
@@ -98,7 +94,7 @@ var FormoAnalytics = /** @class */ (function () {
|
|
|
98
94
|
return [4 /*yield*/, analytics.getProviders()];
|
|
99
95
|
case 1:
|
|
100
96
|
providers = _a.sent();
|
|
101
|
-
return [4 /*yield*/, analytics.
|
|
97
|
+
return [4 /*yield*/, analytics.detectWallets(providers)];
|
|
102
98
|
case 2:
|
|
103
99
|
_a.sent();
|
|
104
100
|
return [2 /*return*/, analytics];
|
|
@@ -111,13 +107,17 @@ var FormoAnalytics = /** @class */ (function () {
|
|
|
111
107
|
*/
|
|
112
108
|
/**
|
|
113
109
|
* Emits a page visit event with the current URL information, fire on page change.
|
|
110
|
+
* @param {string} category - The category of the page
|
|
111
|
+
* @param {string} name - The name of the page
|
|
112
|
+
* @param {Record<string, any>} properties - Additional properties to include
|
|
113
|
+
* @param {Record<string, any>} context - Additional context to include
|
|
114
114
|
* @returns {Promise<void>}
|
|
115
115
|
*/
|
|
116
|
-
FormoAnalytics.prototype.page = function () {
|
|
116
|
+
FormoAnalytics.prototype.page = function (category, name, properties, context) {
|
|
117
117
|
return __awaiter(this, void 0, void 0, function () {
|
|
118
118
|
return __generator(this, function (_a) {
|
|
119
119
|
switch (_a.label) {
|
|
120
|
-
case 0: return [4 /*yield*/, this.trackPageHit()];
|
|
120
|
+
case 0: return [4 /*yield*/, this.trackPageHit(category, name, properties, context)];
|
|
121
121
|
case 1:
|
|
122
122
|
_a.sent();
|
|
123
123
|
return [2 /*return*/];
|
|
@@ -130,20 +130,22 @@ var FormoAnalytics = /** @class */ (function () {
|
|
|
130
130
|
* @returns {void}
|
|
131
131
|
*/
|
|
132
132
|
FormoAnalytics.prototype.reset = function () {
|
|
133
|
-
this.
|
|
134
|
-
this.userId = null;
|
|
133
|
+
this.currentUserId = undefined;
|
|
135
134
|
local.remove(LOCAL_ANONYMOUS_ID_KEY);
|
|
136
135
|
session.remove(SESSION_USER_ID_KEY);
|
|
137
136
|
};
|
|
138
137
|
/**
|
|
139
|
-
* Emits a wallet
|
|
138
|
+
* Emits a connect wallet event.
|
|
140
139
|
* @param {ChainID} params.chainId
|
|
141
140
|
* @param {Address} params.address
|
|
141
|
+
* @param {IFormoEventProperties} properties
|
|
142
|
+
* @param {IFormoEventContext} context
|
|
143
|
+
* @param {(...args: unknown[]) => void} callback
|
|
142
144
|
* @throws {Error} If chainId or address is empty
|
|
143
145
|
* @returns {Promise<void>}
|
|
144
146
|
*/
|
|
145
|
-
FormoAnalytics.prototype.connect = function (_a) {
|
|
146
|
-
return __awaiter(this, arguments, void 0, function (_b) {
|
|
147
|
+
FormoAnalytics.prototype.connect = function (_a, properties_1, context_1, callback_1) {
|
|
148
|
+
return __awaiter(this, arguments, void 0, function (_b, properties, context, callback) {
|
|
147
149
|
var chainId = _b.chainId, address = _b.address;
|
|
148
150
|
return __generator(this, function (_c) {
|
|
149
151
|
switch (_c.label) {
|
|
@@ -155,11 +157,11 @@ var FormoAnalytics = /** @class */ (function () {
|
|
|
155
157
|
logger.warn("Connect: Address cannot be empty");
|
|
156
158
|
}
|
|
157
159
|
this.currentChainId = chainId;
|
|
158
|
-
this.
|
|
159
|
-
return [4 /*yield*/, this.trackEvent(
|
|
160
|
+
this.currentAddress = address;
|
|
161
|
+
return [4 /*yield*/, this.trackEvent(EventType.CONNECT, {
|
|
160
162
|
chainId: chainId,
|
|
161
163
|
address: address,
|
|
162
|
-
})];
|
|
164
|
+
}, properties, context, callback)];
|
|
163
165
|
case 1:
|
|
164
166
|
_c.sent();
|
|
165
167
|
return [2 /*return*/];
|
|
@@ -171,17 +173,20 @@ var FormoAnalytics = /** @class */ (function () {
|
|
|
171
173
|
* Emits a wallet disconnect event.
|
|
172
174
|
* @param {ChainID} params.chainId
|
|
173
175
|
* @param {Address} params.address
|
|
176
|
+
* @param {IFormoEventProperties} properties
|
|
177
|
+
* @param {IFormoEventContext} context
|
|
178
|
+
* @param {(...args: unknown[]) => void} callback
|
|
174
179
|
* @returns {Promise<void>}
|
|
175
180
|
*/
|
|
176
|
-
FormoAnalytics.prototype.disconnect = function (params) {
|
|
181
|
+
FormoAnalytics.prototype.disconnect = function (params, properties, context, callback) {
|
|
177
182
|
return __awaiter(this, void 0, void 0, function () {
|
|
178
183
|
var address, chainId;
|
|
179
184
|
return __generator(this, function (_a) {
|
|
180
185
|
switch (_a.label) {
|
|
181
186
|
case 0:
|
|
182
|
-
address = (params === null || params === void 0 ? void 0 : params.address) || this.
|
|
187
|
+
address = (params === null || params === void 0 ? void 0 : params.address) || this.currentAddress;
|
|
183
188
|
chainId = (params === null || params === void 0 ? void 0 : params.chainId) || this.currentChainId;
|
|
184
|
-
return [4 /*yield*/, this.handleDisconnect(chainId, address)];
|
|
189
|
+
return [4 /*yield*/, this.handleDisconnect(chainId, address, properties, context, callback)];
|
|
185
190
|
case 1:
|
|
186
191
|
_a.sent();
|
|
187
192
|
return [2 /*return*/];
|
|
@@ -193,12 +198,15 @@ var FormoAnalytics = /** @class */ (function () {
|
|
|
193
198
|
* Emits a chain network change event.
|
|
194
199
|
* @param {ChainID} params.chainId
|
|
195
200
|
* @param {Address} params.address
|
|
201
|
+
* @param {IFormoEventProperties} properties
|
|
202
|
+
* @param {IFormoEventContext} context
|
|
203
|
+
* @param {(...args: unknown[]) => void} callback
|
|
196
204
|
* @throws {Error} If chainId is empty, zero, or not a valid number
|
|
197
205
|
* @throws {Error} If no address is provided and no previous address is recorded
|
|
198
206
|
* @returns {Promise<void>}
|
|
199
207
|
*/
|
|
200
|
-
FormoAnalytics.prototype.chain = function (_a) {
|
|
201
|
-
return __awaiter(this, arguments, void 0, function (_b) {
|
|
208
|
+
FormoAnalytics.prototype.chain = function (_a, properties_1, context_1, callback_1) {
|
|
209
|
+
return __awaiter(this, arguments, void 0, function (_b, properties, context, callback) {
|
|
202
210
|
var chainId = _b.chainId, address = _b.address;
|
|
203
211
|
return __generator(this, function (_c) {
|
|
204
212
|
switch (_c.label) {
|
|
@@ -209,14 +217,14 @@ var FormoAnalytics = /** @class */ (function () {
|
|
|
209
217
|
if (isNaN(Number(chainId))) {
|
|
210
218
|
throw new Error("FormoAnalytics::chain: chainId must be a valid decimal number");
|
|
211
219
|
}
|
|
212
|
-
if (!address && !this.
|
|
220
|
+
if (!address && !this.currentAddress) {
|
|
213
221
|
throw new Error("FormoAnalytics::chain: address was empty and no previous address has been recorded");
|
|
214
222
|
}
|
|
215
223
|
this.currentChainId = chainId;
|
|
216
|
-
return [4 /*yield*/, this.trackEvent(
|
|
224
|
+
return [4 /*yield*/, this.trackEvent(EventType.CHAIN, {
|
|
217
225
|
chainId: chainId,
|
|
218
|
-
address: address || this.
|
|
219
|
-
})];
|
|
226
|
+
address: address || this.currentAddress,
|
|
227
|
+
}, properties, context, callback)];
|
|
220
228
|
case 1:
|
|
221
229
|
_c.sent();
|
|
222
230
|
return [2 /*return*/];
|
|
@@ -231,14 +239,17 @@ var FormoAnalytics = /** @class */ (function () {
|
|
|
231
239
|
* @param {Address} params.address
|
|
232
240
|
* @param {string} params.message
|
|
233
241
|
* @param {string} params.signatureHash - only provided if status is confirmed
|
|
242
|
+
* @param {IFormoEventProperties} properties
|
|
243
|
+
* @param {IFormoEventContext} context
|
|
244
|
+
* @param {(...args: unknown[]) => void} callback
|
|
234
245
|
* @returns {Promise<void>}
|
|
235
246
|
*/
|
|
236
|
-
FormoAnalytics.prototype.signature = function (_a) {
|
|
237
|
-
return __awaiter(this, arguments, void 0, function (_b) {
|
|
247
|
+
FormoAnalytics.prototype.signature = function (_a, properties_1, context_1, callback_1) {
|
|
248
|
+
return __awaiter(this, arguments, void 0, function (_b, properties, context, callback) {
|
|
238
249
|
var status = _b.status, chainId = _b.chainId, address = _b.address, message = _b.message, signatureHash = _b.signatureHash;
|
|
239
250
|
return __generator(this, function (_c) {
|
|
240
251
|
switch (_c.label) {
|
|
241
|
-
case 0: return [4 /*yield*/, this.trackEvent(
|
|
252
|
+
case 0: return [4 /*yield*/, this.trackEvent(EventType.SIGNATURE, __assign({ status: status, chainId: chainId, address: address, message: message }, (signatureHash && { signatureHash: signatureHash })), properties, context, callback)];
|
|
242
253
|
case 1:
|
|
243
254
|
_c.sent();
|
|
244
255
|
return [2 /*return*/];
|
|
@@ -255,14 +266,17 @@ var FormoAnalytics = /** @class */ (function () {
|
|
|
255
266
|
* @param {string} params.to
|
|
256
267
|
* @param {string} params.value
|
|
257
268
|
* @param {string} params.transactionHash - only provided if status is broadcasted
|
|
269
|
+
* @param {IFormoEventProperties} properties
|
|
270
|
+
* @param {IFormoEventContext} context
|
|
271
|
+
* @param {(...args: unknown[]) => void} callback
|
|
258
272
|
* @returns {Promise<void>}
|
|
259
273
|
*/
|
|
260
|
-
FormoAnalytics.prototype.transaction = function (_a) {
|
|
261
|
-
return __awaiter(this, arguments, void 0, function (_b) {
|
|
274
|
+
FormoAnalytics.prototype.transaction = function (_a, properties_1, context_1, callback_1) {
|
|
275
|
+
return __awaiter(this, arguments, void 0, function (_b, properties, context, callback) {
|
|
262
276
|
var status = _b.status, chainId = _b.chainId, address = _b.address, data = _b.data, to = _b.to, value = _b.value, transactionHash = _b.transactionHash;
|
|
263
277
|
return __generator(this, function (_c) {
|
|
264
278
|
switch (_c.label) {
|
|
265
|
-
case 0: return [4 /*yield*/, this.trackEvent(
|
|
279
|
+
case 0: return [4 /*yield*/, this.trackEvent(EventType.TRANSACTION, __assign({ status: status, chainId: chainId, address: address, data: data, to: to, value: value }, (transactionHash && { transactionHash: transactionHash })), properties, context, callback)];
|
|
266
280
|
case 1:
|
|
267
281
|
_c.sent();
|
|
268
282
|
return [2 /*return*/];
|
|
@@ -271,116 +285,63 @@ var FormoAnalytics = /** @class */ (function () {
|
|
|
271
285
|
});
|
|
272
286
|
};
|
|
273
287
|
/**
|
|
274
|
-
* Emits an
|
|
288
|
+
* Emits an identify event with current wallet address and provider info.
|
|
275
289
|
* @param {string} params.providerName
|
|
276
290
|
* @param {string} params.rdns
|
|
277
291
|
* @param {string} params.userId
|
|
278
292
|
* @param {string} params.address
|
|
279
|
-
*
|
|
293
|
+
* @param {IFormoEventProperties} properties
|
|
294
|
+
* @param {IFormoEventContext} context
|
|
295
|
+
* @param {(...args: unknown[]) => void} callback
|
|
280
296
|
* @returns {Promise<void>}
|
|
281
297
|
*/
|
|
282
|
-
FormoAnalytics.prototype.identify = function (params) {
|
|
298
|
+
FormoAnalytics.prototype.identify = function (params, properties, context, callback) {
|
|
283
299
|
return __awaiter(this, void 0, void 0, function () {
|
|
284
|
-
var
|
|
285
|
-
return __generator(this, function (
|
|
286
|
-
switch (
|
|
300
|
+
var userId, address, providerName, rdns;
|
|
301
|
+
return __generator(this, function (_a) {
|
|
302
|
+
switch (_a.label) {
|
|
287
303
|
case 0:
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
_d.label = 3;
|
|
296
|
-
case 3:
|
|
297
|
-
providers = _a;
|
|
298
|
-
_d.label = 4;
|
|
299
|
-
case 4:
|
|
300
|
-
_d.trys.push([4, 15, , 16]);
|
|
301
|
-
_i = 0, providers_1 = providers;
|
|
302
|
-
_d.label = 5;
|
|
303
|
-
case 5:
|
|
304
|
-
if (!(_i < providers_1.length)) return [3 /*break*/, 14];
|
|
305
|
-
eip6963ProviderDetail = providers_1[_i];
|
|
306
|
-
if (!eip6963ProviderDetail)
|
|
307
|
-
return [3 /*break*/, 13];
|
|
308
|
-
return [4 /*yield*/, this.getAccounts(eip6963ProviderDetail === null || eip6963ProviderDetail === void 0 ? void 0 : eip6963ProviderDetail.provider)];
|
|
309
|
-
case 6:
|
|
310
|
-
accounts = _d.sent();
|
|
311
|
-
if (!(accounts && accounts.length > 0)) return [3 /*break*/, 11];
|
|
312
|
-
_b = 0, accounts_1 = accounts;
|
|
313
|
-
_d.label = 7;
|
|
314
|
-
case 7:
|
|
315
|
-
if (!(_b < accounts_1.length)) return [3 /*break*/, 10];
|
|
316
|
-
address = accounts_1[_b];
|
|
317
|
-
return [4 /*yield*/, this.identify({
|
|
318
|
-
address: address,
|
|
319
|
-
providerName: eip6963ProviderDetail === null || eip6963ProviderDetail === void 0 ? void 0 : eip6963ProviderDetail.info.name,
|
|
320
|
-
rdns: eip6963ProviderDetail === null || eip6963ProviderDetail === void 0 ? void 0 : eip6963ProviderDetail.info.rdns,
|
|
321
|
-
})];
|
|
322
|
-
case 8:
|
|
323
|
-
_d.sent();
|
|
324
|
-
_d.label = 9;
|
|
325
|
-
case 9:
|
|
326
|
-
_b++;
|
|
327
|
-
return [3 /*break*/, 7];
|
|
328
|
-
case 10: return [3 /*break*/, 13];
|
|
329
|
-
case 11:
|
|
330
|
-
// Identify without accounts
|
|
331
|
-
return [4 /*yield*/, this.identify({
|
|
332
|
-
address: null,
|
|
333
|
-
providerName: eip6963ProviderDetail === null || eip6963ProviderDetail === void 0 ? void 0 : eip6963ProviderDetail.info.name,
|
|
334
|
-
rdns: eip6963ProviderDetail === null || eip6963ProviderDetail === void 0 ? void 0 : eip6963ProviderDetail.info.rdns,
|
|
335
|
-
})];
|
|
336
|
-
case 12:
|
|
337
|
-
// Identify without accounts
|
|
338
|
-
_d.sent();
|
|
339
|
-
_d.label = 13;
|
|
340
|
-
case 13:
|
|
341
|
-
_i++;
|
|
342
|
-
return [3 /*break*/, 5];
|
|
343
|
-
case 14: return [3 /*break*/, 16];
|
|
344
|
-
case 15:
|
|
345
|
-
err_1 = _d.sent();
|
|
346
|
-
logger.error("Error identifying all:", err_1);
|
|
347
|
-
return [3 /*break*/, 16];
|
|
348
|
-
case 16: return [3 /*break*/, 19];
|
|
349
|
-
case 17:
|
|
350
|
-
_c = params, userId = _c.userId, address = _c.address, providerName = _c.providerName, rdns = _c.rdns;
|
|
351
|
-
if (userId)
|
|
352
|
-
this.userId = userId || null;
|
|
353
|
-
return [4 /*yield*/, this.trackEvent(Event.IDENTIFY, {
|
|
304
|
+
userId = params.userId, address = params.address, providerName = params.providerName, rdns = params.rdns;
|
|
305
|
+
this.currentAddress = address;
|
|
306
|
+
if (userId) {
|
|
307
|
+
this.currentUserId = userId;
|
|
308
|
+
session.set(SESSION_USER_ID_KEY, userId);
|
|
309
|
+
}
|
|
310
|
+
return [4 /*yield*/, this.trackEvent(EventType.IDENTIFY, {
|
|
354
311
|
address: address,
|
|
355
312
|
providerName: providerName,
|
|
313
|
+
userId: userId,
|
|
356
314
|
rdns: rdns,
|
|
357
|
-
})];
|
|
358
|
-
case
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
case 19: return [2 /*return*/];
|
|
315
|
+
}, properties, context, callback)];
|
|
316
|
+
case 1:
|
|
317
|
+
_a.sent();
|
|
318
|
+
return [2 /*return*/];
|
|
362
319
|
}
|
|
363
320
|
});
|
|
364
321
|
});
|
|
365
322
|
};
|
|
366
323
|
/**
|
|
367
|
-
* Emits
|
|
368
|
-
* @param {
|
|
324
|
+
* Emits a detect wallet event with current wallet provider info.
|
|
325
|
+
* @param {string} params.providerName
|
|
326
|
+
* @param {string} params.rdns
|
|
327
|
+
* @param {IFormoEventProperties} properties
|
|
328
|
+
* @param {IFormoEventContext} context
|
|
329
|
+
* @param {(...args: unknown[]) => void} callback
|
|
369
330
|
* @returns {Promise<void>}
|
|
370
331
|
*/
|
|
371
|
-
FormoAnalytics.prototype.detect = function (_a) {
|
|
372
|
-
return __awaiter(this, arguments, void 0, function (_b) {
|
|
332
|
+
FormoAnalytics.prototype.detect = function (_a, properties_1, context_1, callback_1) {
|
|
333
|
+
return __awaiter(this, arguments, void 0, function (_b, properties, context, callback) {
|
|
373
334
|
var providerName = _b.providerName, rdns = _b.rdns;
|
|
374
335
|
return __generator(this, function (_c) {
|
|
375
336
|
switch (_c.label) {
|
|
376
337
|
case 0:
|
|
377
338
|
if (this.session.isWalletDetected(rdns))
|
|
378
|
-
return [2 /*return*/, logger.warn("
|
|
379
|
-
this.session.
|
|
380
|
-
return [4 /*yield*/, this.trackEvent(
|
|
339
|
+
return [2 /*return*/, logger.warn("Detect: Wallet ".concat(providerName, " already detected in this session"))];
|
|
340
|
+
this.session.markWalletDetected(rdns);
|
|
341
|
+
return [4 /*yield*/, this.trackEvent(EventType.DETECT, {
|
|
381
342
|
providerName: providerName,
|
|
382
343
|
rdns: rdns,
|
|
383
|
-
})];
|
|
344
|
+
}, properties, context, callback)];
|
|
384
345
|
case 1:
|
|
385
346
|
_c.sent();
|
|
386
347
|
return [2 /*return*/];
|
|
@@ -389,16 +350,18 @@ var FormoAnalytics = /** @class */ (function () {
|
|
|
389
350
|
});
|
|
390
351
|
};
|
|
391
352
|
/**
|
|
392
|
-
* Emits a custom event with custom
|
|
393
|
-
* @param {string}
|
|
394
|
-
* @param {
|
|
353
|
+
* Emits a custom user event with custom properties.
|
|
354
|
+
* @param {string} event The name of the tracked event
|
|
355
|
+
* @param {IFormoEventProperties} properties
|
|
356
|
+
* @param {IFormoEventContext} context
|
|
357
|
+
* @param {(...args: unknown[]) => void} callback
|
|
395
358
|
* @returns {Promise<void>}
|
|
396
359
|
*/
|
|
397
|
-
FormoAnalytics.prototype.track = function (
|
|
360
|
+
FormoAnalytics.prototype.track = function (event, properties, context, callback) {
|
|
398
361
|
return __awaiter(this, void 0, void 0, function () {
|
|
399
362
|
return __generator(this, function (_a) {
|
|
400
363
|
switch (_a.label) {
|
|
401
|
-
case 0: return [4 /*yield*/, this.trackEvent(
|
|
364
|
+
case 0: return [4 /*yield*/, this.trackEvent(EventType.TRACK, { event: event }, properties, context, callback)];
|
|
402
365
|
case 1:
|
|
403
366
|
_a.sent();
|
|
404
367
|
return [2 /*return*/];
|
|
@@ -416,7 +379,7 @@ var FormoAnalytics = /** @class */ (function () {
|
|
|
416
379
|
return;
|
|
417
380
|
}
|
|
418
381
|
this.currentChainId = undefined;
|
|
419
|
-
this.
|
|
382
|
+
this.currentAddress = undefined;
|
|
420
383
|
if (this._provider) {
|
|
421
384
|
var actions = Object.keys(this._providerListeners);
|
|
422
385
|
for (var _i = 0, actions_1 = actions; _i < actions_1.length; _i++) {
|
|
@@ -582,10 +545,10 @@ var FormoAnalytics = /** @class */ (function () {
|
|
|
582
545
|
return __generator(this, function (_b) {
|
|
583
546
|
switch (_b.label) {
|
|
584
547
|
case 0:
|
|
585
|
-
if (address === this.
|
|
548
|
+
if (address === this.currentAddress)
|
|
586
549
|
// We have already reported this address
|
|
587
550
|
return [2 /*return*/];
|
|
588
|
-
this.
|
|
551
|
+
this.currentAddress = address;
|
|
589
552
|
_a = this;
|
|
590
553
|
return [4 /*yield*/, this.getCurrentChainId()];
|
|
591
554
|
case 1:
|
|
@@ -596,20 +559,20 @@ var FormoAnalytics = /** @class */ (function () {
|
|
|
596
559
|
});
|
|
597
560
|
});
|
|
598
561
|
};
|
|
599
|
-
FormoAnalytics.prototype.handleDisconnect = function (chainId, address) {
|
|
562
|
+
FormoAnalytics.prototype.handleDisconnect = function (chainId, address, properties, context, callback) {
|
|
600
563
|
return __awaiter(this, void 0, void 0, function () {
|
|
601
564
|
var payload;
|
|
602
565
|
return __generator(this, function (_a) {
|
|
603
566
|
switch (_a.label) {
|
|
604
567
|
case 0:
|
|
605
568
|
payload = {
|
|
606
|
-
|
|
607
|
-
address: address || this.
|
|
569
|
+
chainId: chainId || this.currentChainId,
|
|
570
|
+
address: address || this.currentAddress,
|
|
608
571
|
};
|
|
609
572
|
this.currentChainId = undefined;
|
|
610
|
-
this.
|
|
573
|
+
this.currentAddress = undefined;
|
|
611
574
|
session.remove(SESSION_USER_ID_KEY);
|
|
612
|
-
return [4 /*yield*/, this.trackEvent(
|
|
575
|
+
return [4 /*yield*/, this.trackEvent(EventType.DISCONNECT, payload, properties, context, callback)];
|
|
613
576
|
case 1:
|
|
614
577
|
_a.sent();
|
|
615
578
|
return [2 /*return*/];
|
|
@@ -621,7 +584,7 @@ var FormoAnalytics = /** @class */ (function () {
|
|
|
621
584
|
return __awaiter(this, void 0, void 0, function () {
|
|
622
585
|
return __generator(this, function (_a) {
|
|
623
586
|
switch (_a.label) {
|
|
624
|
-
case 0: return [4 /*yield*/, this.handleDisconnect(this.currentChainId, this.
|
|
587
|
+
case 0: return [4 /*yield*/, this.handleDisconnect(this.currentChainId, this.currentAddress)];
|
|
625
588
|
case 1:
|
|
626
589
|
_a.sent();
|
|
627
590
|
return [2 /*return*/];
|
|
@@ -636,7 +599,7 @@ var FormoAnalytics = /** @class */ (function () {
|
|
|
636
599
|
switch (_a.label) {
|
|
637
600
|
case 0:
|
|
638
601
|
this.currentChainId = parseInt(chainIdHex);
|
|
639
|
-
if (!!this.
|
|
602
|
+
if (!!this.currentAddress) return [3 /*break*/, 2];
|
|
640
603
|
if (!this.provider) {
|
|
641
604
|
logger.info("OnChainChanged: Provider not found. CHAIN_CHANGED not reported");
|
|
642
605
|
return [2 /*return*/, Promise.resolve()];
|
|
@@ -648,14 +611,14 @@ var FormoAnalytics = /** @class */ (function () {
|
|
|
648
611
|
logger.info("OnChainChanged: Unable to fetch or store connected address");
|
|
649
612
|
return [2 /*return*/, Promise.resolve()];
|
|
650
613
|
}
|
|
651
|
-
this.
|
|
614
|
+
this.currentAddress = address;
|
|
652
615
|
_a.label = 2;
|
|
653
616
|
case 2:
|
|
654
617
|
// Proceed only if the address exists
|
|
655
|
-
if (this.
|
|
618
|
+
if (this.currentAddress) {
|
|
656
619
|
return [2 /*return*/, this.chain({
|
|
657
620
|
chainId: this.currentChainId,
|
|
658
|
-
address: this.
|
|
621
|
+
address: this.currentAddress,
|
|
659
622
|
})];
|
|
660
623
|
}
|
|
661
624
|
else {
|
|
@@ -720,46 +683,36 @@ var FormoAnalytics = /** @class */ (function () {
|
|
|
720
683
|
});
|
|
721
684
|
});
|
|
722
685
|
};
|
|
723
|
-
FormoAnalytics.prototype.trackPageHit = function () {
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
return logger.warn("Track page hit: Ignoring event because website is running locally");
|
|
727
|
-
}
|
|
728
|
-
setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
686
|
+
FormoAnalytics.prototype.trackPageHit = function (category, name, properties, context, callback) {
|
|
687
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
688
|
+
var _this = this;
|
|
729
689
|
return __generator(this, function (_a) {
|
|
730
|
-
this.
|
|
690
|
+
if (!this.config.trackLocalhost && isLocalhost()) {
|
|
691
|
+
return [2 /*return*/, logger.warn("Track page hit: Ignoring event because website is running locally")];
|
|
692
|
+
}
|
|
693
|
+
setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
694
|
+
return __generator(this, function (_a) {
|
|
695
|
+
this.trackEvent(EventType.PAGE, {
|
|
696
|
+
category: category,
|
|
697
|
+
name: name,
|
|
698
|
+
}, properties, context, callback);
|
|
699
|
+
return [2 /*return*/];
|
|
700
|
+
});
|
|
701
|
+
}); }, 300);
|
|
731
702
|
return [2 /*return*/];
|
|
732
703
|
});
|
|
733
|
-
});
|
|
704
|
+
});
|
|
734
705
|
};
|
|
735
|
-
FormoAnalytics.prototype.trackEvent = function (
|
|
706
|
+
FormoAnalytics.prototype.trackEvent = function (type, payload, properties, context, callback) {
|
|
736
707
|
return __awaiter(this, void 0, void 0, function () {
|
|
737
|
-
var address, user_id, requestData, error_3;
|
|
738
708
|
return __generator(this, function (_a) {
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
_a.trys.push([0, 3, , 4]);
|
|
742
|
-
return [4 /*yield*/, this.getAddress()];
|
|
743
|
-
case 1:
|
|
744
|
-
address = _a.sent();
|
|
745
|
-
user_id = this.userId;
|
|
746
|
-
requestData = this.eventFactory.create(this.anonymousId, user_id, address, __assign({ action: action }, payload));
|
|
747
|
-
return [4 /*yield*/, this.eventQueue.enqueue(requestData, function (err, _, data) {
|
|
748
|
-
if (err) {
|
|
749
|
-
logger.error("Error sending events:", err);
|
|
750
|
-
}
|
|
751
|
-
else
|
|
752
|
-
logger.info("Events sent successfully: ".concat(data.length, " events"));
|
|
753
|
-
})];
|
|
754
|
-
case 2:
|
|
755
|
-
_a.sent();
|
|
756
|
-
return [3 /*break*/, 4];
|
|
757
|
-
case 3:
|
|
758
|
-
error_3 = _a.sent();
|
|
759
|
-
logger.error("Error tracking event:", error_3);
|
|
760
|
-
return [3 /*break*/, 4];
|
|
761
|
-
case 4: return [2 /*return*/];
|
|
709
|
+
try {
|
|
710
|
+
this.eventManager.addEvent(__assign(__assign({ type: type }, payload), { properties: properties, context: context, callback: callback }), this.currentAddress, this.currentUserId);
|
|
762
711
|
}
|
|
712
|
+
catch (error) {
|
|
713
|
+
logger.error("Error tracking event:", error);
|
|
714
|
+
}
|
|
715
|
+
return [2 /*return*/];
|
|
763
716
|
});
|
|
764
717
|
});
|
|
765
718
|
};
|
|
@@ -782,18 +735,18 @@ var FormoAnalytics = /** @class */ (function () {
|
|
|
782
735
|
});
|
|
783
736
|
});
|
|
784
737
|
};
|
|
785
|
-
FormoAnalytics.prototype.
|
|
738
|
+
FormoAnalytics.prototype.detectWallets = function (providers) {
|
|
786
739
|
return __awaiter(this, void 0, void 0, function () {
|
|
787
|
-
var _i,
|
|
740
|
+
var _i, providers_1, eip6963ProviderDetail, err_1;
|
|
788
741
|
return __generator(this, function (_a) {
|
|
789
742
|
switch (_a.label) {
|
|
790
743
|
case 0:
|
|
791
744
|
_a.trys.push([0, 5, , 6]);
|
|
792
|
-
_i = 0,
|
|
745
|
+
_i = 0, providers_1 = providers;
|
|
793
746
|
_a.label = 1;
|
|
794
747
|
case 1:
|
|
795
|
-
if (!(_i <
|
|
796
|
-
eip6963ProviderDetail =
|
|
748
|
+
if (!(_i < providers_1.length)) return [3 /*break*/, 4];
|
|
749
|
+
eip6963ProviderDetail = providers_1[_i];
|
|
797
750
|
return [4 /*yield*/, this.detect({
|
|
798
751
|
providerName: eip6963ProviderDetail === null || eip6963ProviderDetail === void 0 ? void 0 : eip6963ProviderDetail.info.name,
|
|
799
752
|
rdns: eip6963ProviderDetail === null || eip6963ProviderDetail === void 0 ? void 0 : eip6963ProviderDetail.info.rdns,
|
|
@@ -806,8 +759,8 @@ var FormoAnalytics = /** @class */ (function () {
|
|
|
806
759
|
return [3 /*break*/, 1];
|
|
807
760
|
case 4: return [3 /*break*/, 6];
|
|
808
761
|
case 5:
|
|
809
|
-
|
|
810
|
-
logger.error("Error detect all wallets:",
|
|
762
|
+
err_1 = _a.sent();
|
|
763
|
+
logger.error("Error detect all wallets:", err_1);
|
|
811
764
|
return [3 /*break*/, 6];
|
|
812
765
|
case 6: return [2 /*return*/];
|
|
813
766
|
}
|
|
@@ -821,22 +774,14 @@ var FormoAnalytics = /** @class */ (function () {
|
|
|
821
774
|
enumerable: false,
|
|
822
775
|
configurable: true
|
|
823
776
|
});
|
|
824
|
-
FormoAnalytics.prototype.getAnonymousId = function () {
|
|
825
|
-
var storedAnonymousId = local.get(LOCAL_ANONYMOUS_ID_KEY);
|
|
826
|
-
if (storedAnonymousId && typeof storedAnonymousId === "string")
|
|
827
|
-
return storedAnonymousId;
|
|
828
|
-
var newAnonymousId = generateNativeUUID();
|
|
829
|
-
local.set(LOCAL_ANONYMOUS_ID_KEY, newAnonymousId);
|
|
830
|
-
return newAnonymousId;
|
|
831
|
-
};
|
|
832
777
|
FormoAnalytics.prototype.getAddress = function () {
|
|
833
778
|
return __awaiter(this, void 0, void 0, function () {
|
|
834
|
-
var accounts,
|
|
779
|
+
var accounts, err_2;
|
|
835
780
|
return __generator(this, function (_a) {
|
|
836
781
|
switch (_a.label) {
|
|
837
782
|
case 0:
|
|
838
|
-
if (this.
|
|
839
|
-
return [2 /*return*/, this.
|
|
783
|
+
if (this.currentAddress)
|
|
784
|
+
return [2 /*return*/, this.currentAddress];
|
|
840
785
|
if (!(this === null || this === void 0 ? void 0 : this.provider)) {
|
|
841
786
|
logger.info("The provider is not set");
|
|
842
787
|
return [2 /*return*/, null];
|
|
@@ -854,8 +799,8 @@ var FormoAnalytics = /** @class */ (function () {
|
|
|
854
799
|
}
|
|
855
800
|
return [3 /*break*/, 4];
|
|
856
801
|
case 3:
|
|
857
|
-
|
|
858
|
-
logger.error("Failed to fetch accounts from provider:",
|
|
802
|
+
err_2 = _a.sent();
|
|
803
|
+
logger.error("Failed to fetch accounts from provider:", err_2);
|
|
859
804
|
return [2 /*return*/, null];
|
|
860
805
|
case 4: return [2 /*return*/, null];
|
|
861
806
|
}
|
|
@@ -864,7 +809,7 @@ var FormoAnalytics = /** @class */ (function () {
|
|
|
864
809
|
};
|
|
865
810
|
FormoAnalytics.prototype.getAccounts = function (provider) {
|
|
866
811
|
return __awaiter(this, void 0, void 0, function () {
|
|
867
|
-
var p, res,
|
|
812
|
+
var p, res, err_3;
|
|
868
813
|
return __generator(this, function (_a) {
|
|
869
814
|
switch (_a.label) {
|
|
870
815
|
case 0:
|
|
@@ -881,9 +826,9 @@ var FormoAnalytics = /** @class */ (function () {
|
|
|
881
826
|
return [2 /*return*/, null];
|
|
882
827
|
return [2 /*return*/, res.filter(function (e) { return isAddress(e); })];
|
|
883
828
|
case 3:
|
|
884
|
-
|
|
885
|
-
if (
|
|
886
|
-
logger.error("FormoAnalytics::getAccounts: eth_accounts threw an error",
|
|
829
|
+
err_3 = _a.sent();
|
|
830
|
+
if (err_3.code !== 4001) {
|
|
831
|
+
logger.error("FormoAnalytics::getAccounts: eth_accounts threw an error", err_3);
|
|
887
832
|
}
|
|
888
833
|
return [2 /*return*/, null];
|
|
889
834
|
case 4: return [2 /*return*/];
|
|
@@ -893,7 +838,7 @@ var FormoAnalytics = /** @class */ (function () {
|
|
|
893
838
|
};
|
|
894
839
|
FormoAnalytics.prototype.getCurrentChainId = function () {
|
|
895
840
|
return __awaiter(this, void 0, void 0, function () {
|
|
896
|
-
var chainIdHex,
|
|
841
|
+
var chainIdHex, err_4;
|
|
897
842
|
var _a;
|
|
898
843
|
return __generator(this, function (_b) {
|
|
899
844
|
switch (_b.label) {
|
|
@@ -915,8 +860,8 @@ var FormoAnalytics = /** @class */ (function () {
|
|
|
915
860
|
}
|
|
916
861
|
return [2 /*return*/, parseInt(chainIdHex, 16)];
|
|
917
862
|
case 3:
|
|
918
|
-
|
|
919
|
-
logger.error("eth_chainId threw an error:",
|
|
863
|
+
err_4 = _b.sent();
|
|
864
|
+
logger.error("eth_chainId threw an error:", err_4);
|
|
920
865
|
return [2 /*return*/, 0];
|
|
921
866
|
case 4: return [2 /*return*/];
|
|
922
867
|
}
|
|
@@ -971,7 +916,7 @@ var FormoAnalyticsSession = /** @class */ (function () {
|
|
|
971
916
|
var rdnses = session.get(SESSION_WALLET_DETECTED_KEY) || [];
|
|
972
917
|
return rdnses.includes(rdns);
|
|
973
918
|
};
|
|
974
|
-
FormoAnalyticsSession.prototype.
|
|
919
|
+
FormoAnalyticsSession.prototype.markWalletDetected = function (rdns) {
|
|
975
920
|
var rdnses = session.get(SESSION_WALLET_DETECTED_KEY) || [];
|
|
976
921
|
rdnses.push(rdns);
|
|
977
922
|
session.set(SESSION_WALLET_DETECTED_KEY, rdnses);
|