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