@formo/analytics 1.11.12 → 1.11.13
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/387.index.umd.min.js +125 -0
- package/dist/387.index.umd.min.js.map +1 -0
- package/dist/cjs/src/FormoAnalytics.d.ts +94 -0
- package/dist/cjs/src/FormoAnalytics.d.ts.map +1 -0
- package/dist/cjs/src/FormoAnalytics.js +507 -0
- package/dist/cjs/src/FormoAnalytics.js.map +1 -0
- package/dist/cjs/src/FormoAnalyticsProvider.d.ts +7 -0
- package/dist/cjs/src/FormoAnalyticsProvider.d.ts.map +1 -0
- package/dist/cjs/src/FormoAnalyticsProvider.js +127 -0
- package/dist/cjs/src/FormoAnalyticsProvider.js.map +1 -0
- package/dist/cjs/src/constants/config.d.ts +559 -0
- package/dist/cjs/src/constants/config.d.ts.map +1 -0
- package/dist/cjs/src/constants/config.js +570 -0
- package/dist/cjs/src/constants/config.js.map +1 -0
- package/dist/cjs/src/constants/events.d.ts +8 -0
- package/dist/cjs/src/constants/events.d.ts.map +1 -0
- package/dist/cjs/src/constants/events.js +12 -0
- package/dist/cjs/src/constants/events.js.map +1 -0
- package/dist/cjs/src/constants/index.d.ts +3 -0
- package/dist/cjs/src/constants/index.d.ts.map +1 -0
- package/dist/cjs/src/constants/index.js +19 -0
- package/dist/cjs/src/constants/index.js.map +1 -0
- package/dist/cjs/src/index.d.ts +4 -0
- package/dist/cjs/src/index.d.ts.map +1 -0
- package/dist/cjs/src/index.js.map +1 -0
- package/dist/cjs/src/types/base.d.ts +12 -0
- package/dist/cjs/src/types/base.d.ts.map +1 -0
- package/dist/cjs/src/types/base.js +3 -0
- package/dist/cjs/src/types/base.js.map +1 -0
- package/dist/cjs/src/types/index.d.ts +3 -0
- package/dist/cjs/src/types/index.d.ts.map +1 -0
- package/dist/cjs/src/types/index.js +19 -0
- package/dist/cjs/src/types/index.js.map +1 -0
- package/dist/cjs/src/types/wallet.d.ts +11 -0
- package/dist/cjs/src/types/wallet.d.ts.map +1 -0
- package/dist/cjs/src/types/wallet.js +3 -0
- package/dist/cjs/src/types/wallet.js.map +1 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -0
- package/dist/esm/src/FormoAnalytics.d.ts +94 -0
- package/dist/esm/src/FormoAnalytics.d.ts.map +1 -0
- package/dist/esm/src/FormoAnalytics.js +501 -0
- package/dist/esm/src/FormoAnalytics.js.map +1 -0
- package/dist/esm/src/FormoAnalyticsProvider.d.ts +7 -0
- package/dist/esm/src/FormoAnalyticsProvider.d.ts.map +1 -0
- package/dist/esm/src/FormoAnalyticsProvider.js +122 -0
- package/dist/esm/src/FormoAnalyticsProvider.js.map +1 -0
- package/dist/esm/src/constants/config.d.ts +559 -0
- package/dist/esm/src/constants/config.d.ts.map +1 -0
- package/dist/esm/src/constants/config.js +567 -0
- package/dist/esm/src/constants/config.js.map +1 -0
- package/dist/esm/src/constants/events.d.ts +8 -0
- package/dist/esm/src/constants/events.d.ts.map +1 -0
- package/dist/esm/src/constants/events.js +9 -0
- package/dist/esm/src/constants/events.js.map +1 -0
- package/dist/esm/src/constants/index.d.ts +3 -0
- package/dist/esm/src/constants/index.d.ts.map +1 -0
- package/dist/esm/src/constants/index.js +3 -0
- package/dist/esm/src/constants/index.js.map +1 -0
- package/dist/esm/src/index.d.ts +4 -0
- package/dist/esm/src/index.d.ts.map +1 -0
- package/dist/esm/src/index.js +4 -0
- package/dist/esm/src/index.js.map +1 -0
- package/dist/esm/src/types/base.d.ts +12 -0
- package/dist/esm/src/types/base.d.ts.map +1 -0
- package/dist/esm/src/types/base.js +2 -0
- package/dist/esm/src/types/base.js.map +1 -0
- package/dist/esm/src/types/index.d.ts +3 -0
- package/dist/esm/src/types/index.d.ts.map +1 -0
- package/dist/esm/src/types/index.js +3 -0
- package/dist/esm/src/types/index.js.map +1 -0
- package/dist/esm/src/types/wallet.d.ts +11 -0
- package/dist/esm/src/types/wallet.d.ts.map +1 -0
- package/dist/esm/src/types/wallet.js +2 -0
- package/dist/esm/src/types/wallet.js.map +1 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -0
- package/dist/index.umd.min.js +3 -0
- package/dist/index.umd.min.js.LICENSE.txt +31 -0
- package/dist/index.umd.min.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { ChainID, EIP1193Provider, Options } from "./types";
|
|
2
|
+
interface IFormoAnalytics {
|
|
3
|
+
/**
|
|
4
|
+
* Initializes the FormoAnalytics instance with the provided API key and project ID.
|
|
5
|
+
*/
|
|
6
|
+
init(apiKey: string, options: Options): Promise<FormoAnalytics>;
|
|
7
|
+
/**
|
|
8
|
+
* Tracks page visit events.
|
|
9
|
+
*/
|
|
10
|
+
page(): void;
|
|
11
|
+
/**
|
|
12
|
+
* Connects to a wallet with the specified chain ID and address.
|
|
13
|
+
*/
|
|
14
|
+
connect(params: {
|
|
15
|
+
chainId: ChainID;
|
|
16
|
+
address: string;
|
|
17
|
+
}): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Disconnects the current wallet and clears the session information.
|
|
20
|
+
*/
|
|
21
|
+
disconnect(params?: {
|
|
22
|
+
chainId?: ChainID;
|
|
23
|
+
address?: string;
|
|
24
|
+
}): void;
|
|
25
|
+
/**
|
|
26
|
+
* Switches the blockchain chain context and optionally logs additional params.
|
|
27
|
+
*/
|
|
28
|
+
chain(params: {
|
|
29
|
+
chainId: ChainID;
|
|
30
|
+
address?: string;
|
|
31
|
+
}): void;
|
|
32
|
+
/**
|
|
33
|
+
* Tracks a specific event with a name and associated data.
|
|
34
|
+
*/
|
|
35
|
+
track(eventName: string, eventData: Record<string, any>): void;
|
|
36
|
+
}
|
|
37
|
+
export declare class FormoAnalytics implements IFormoAnalytics {
|
|
38
|
+
readonly apiKey: string;
|
|
39
|
+
options: Options;
|
|
40
|
+
private _provider?;
|
|
41
|
+
private _registeredProviderListeners;
|
|
42
|
+
private walletAddressSessionKey;
|
|
43
|
+
private config;
|
|
44
|
+
private sessionIdKey;
|
|
45
|
+
private timezoneToCountry;
|
|
46
|
+
currentChainId?: string | null;
|
|
47
|
+
currentConnectedAddress?: string;
|
|
48
|
+
private constructor();
|
|
49
|
+
static init(apiKey: string, options: Options): Promise<FormoAnalytics>;
|
|
50
|
+
get provider(): EIP1193Provider | undefined;
|
|
51
|
+
private getSessionId;
|
|
52
|
+
private getOrigin;
|
|
53
|
+
private setSessionCookie;
|
|
54
|
+
private generateSessionId;
|
|
55
|
+
private getCookieValue;
|
|
56
|
+
private trackEvent;
|
|
57
|
+
private getCommonTrackingFields;
|
|
58
|
+
private trackPageHit;
|
|
59
|
+
private trackProvider;
|
|
60
|
+
private getCurrentWallet;
|
|
61
|
+
private getCurrentChainId;
|
|
62
|
+
private registerAddressChangedListener;
|
|
63
|
+
private registerChainChangedListener;
|
|
64
|
+
private onAddressChanged;
|
|
65
|
+
private onAddressConnected;
|
|
66
|
+
private onAddressDisconnected;
|
|
67
|
+
private onChainChanged;
|
|
68
|
+
/**
|
|
69
|
+
* Stores the wallet address in session storage when connected.
|
|
70
|
+
* @param address - The wallet address to store.
|
|
71
|
+
*/
|
|
72
|
+
private storeWalletAddress;
|
|
73
|
+
/**
|
|
74
|
+
* Clears the wallet address from session storage when disconnected.
|
|
75
|
+
*/
|
|
76
|
+
private clearWalletAddress;
|
|
77
|
+
init(apiKey: string, options: Options): Promise<FormoAnalytics>;
|
|
78
|
+
connect({ chainId, address }: {
|
|
79
|
+
chainId: ChainID;
|
|
80
|
+
address: string;
|
|
81
|
+
}): Promise<void>;
|
|
82
|
+
disconnect(params?: {
|
|
83
|
+
chainId?: ChainID;
|
|
84
|
+
address?: string;
|
|
85
|
+
}): Promise<void> | undefined;
|
|
86
|
+
chain({ chainId, address }: {
|
|
87
|
+
chainId: ChainID;
|
|
88
|
+
address?: string;
|
|
89
|
+
}): Promise<void>;
|
|
90
|
+
page(): void;
|
|
91
|
+
track(eventName: string, eventData: any): void;
|
|
92
|
+
}
|
|
93
|
+
export {};
|
|
94
|
+
//# sourceMappingURL=FormoAnalytics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormoAnalytics.d.ts","sourceRoot":"","sources":["../../../src/FormoAnalytics.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAE5D,UAAU,eAAe;IACvB;;OAEG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEhE;;OAEG;IACH,IAAI,IAAI,IAAI,CAAC;IAEb;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtE;;OAEG;IACH,UAAU,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAEnE;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAE5D;;OAEG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;CAChE;AAID,qBAAa,cAAe,YAAW,eAAe;aAgBlC,MAAM,EAAE,MAAM;IACvB,OAAO,EAAE,OAAO;IAhBzB,OAAO,CAAC,SAAS,CAAC,CAAkB;IACpC,OAAO,CAAC,4BAA4B,CAG7B;IAEP,OAAO,CAAC,uBAAuB,CAAmB;IAClD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,iBAAiB,CAAwC;IAEjE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC,OAAO;WAeM,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;IAU5E,IAAI,QAAQ,IAAI,eAAe,GAAG,SAAS,CAE1C;IAED,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,cAAc;YAUR,UAAU;IAgExB,OAAO,CAAC,uBAAuB;IA6B/B,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,aAAa;YA0BP,gBAAgB;YAwBhB,iBAAiB;IAiB/B,OAAO,CAAC,8BAA8B;IAYtC,OAAO,CAAC,4BAA4B;YAOtB,gBAAgB;YAWhB,kBAAkB;IAchC,OAAO,CAAC,qBAAqB;YAgBf,cAAc;IA4C5B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAI1B,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;IAK/D,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAiBnE,UAAU,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAkB3D,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAuBlE,IAAI;IAIJ,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG;CAGxC"}
|
|
@@ -0,0 +1,507 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
24
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
|
+
};
|
|
52
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
|
+
exports.FormoAnalytics = void 0;
|
|
54
|
+
var axios_1 = __importDefault(require("axios"));
|
|
55
|
+
var constants_1 = require("./constants");
|
|
56
|
+
var highlight_run_1 = require("highlight.run");
|
|
57
|
+
var FormoAnalytics = /** @class */ (function () {
|
|
58
|
+
function FormoAnalytics(apiKey, options) {
|
|
59
|
+
if (options === void 0) { options = {}; }
|
|
60
|
+
var _a;
|
|
61
|
+
this.apiKey = apiKey;
|
|
62
|
+
this.options = options;
|
|
63
|
+
this._registeredProviderListeners = {};
|
|
64
|
+
this.walletAddressSessionKey = "walletAddress";
|
|
65
|
+
this.sessionIdKey = constants_1.SESSION_STORAGE_ID_KEY;
|
|
66
|
+
this.timezoneToCountry = constants_1.COUNTRY_LIST;
|
|
67
|
+
this.config = {
|
|
68
|
+
token: this.apiKey,
|
|
69
|
+
};
|
|
70
|
+
var provider = (window === null || window === void 0 ? void 0 : window.ethereum) || ((_a = window.web3) === null || _a === void 0 ? void 0 : _a.currentProvider) || (options === null || options === void 0 ? void 0 : options.provider);
|
|
71
|
+
if (provider) {
|
|
72
|
+
this.trackProvider(provider);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
FormoAnalytics.init = function (apiKey, options) {
|
|
76
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
77
|
+
var config, instance;
|
|
78
|
+
return __generator(this, function (_a) {
|
|
79
|
+
config = {
|
|
80
|
+
token: apiKey,
|
|
81
|
+
};
|
|
82
|
+
instance = new FormoAnalytics(apiKey, options);
|
|
83
|
+
instance.config = config;
|
|
84
|
+
return [2 /*return*/, instance];
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
};
|
|
88
|
+
Object.defineProperty(FormoAnalytics.prototype, "provider", {
|
|
89
|
+
get: function () {
|
|
90
|
+
return this._provider;
|
|
91
|
+
},
|
|
92
|
+
enumerable: false,
|
|
93
|
+
configurable: true
|
|
94
|
+
});
|
|
95
|
+
FormoAnalytics.prototype.getSessionId = function () {
|
|
96
|
+
var existingSessionId = this.getCookieValue(this.sessionIdKey);
|
|
97
|
+
if (existingSessionId) {
|
|
98
|
+
return existingSessionId;
|
|
99
|
+
}
|
|
100
|
+
var newSessionId = this.generateSessionId();
|
|
101
|
+
return newSessionId;
|
|
102
|
+
};
|
|
103
|
+
FormoAnalytics.prototype.getOrigin = function () {
|
|
104
|
+
return window.location.origin || "ORIGIN_NOT_FOUND";
|
|
105
|
+
};
|
|
106
|
+
// Function to set the session cookie
|
|
107
|
+
FormoAnalytics.prototype.setSessionCookie = function () {
|
|
108
|
+
var sessionId = this.getSessionId();
|
|
109
|
+
var cookieValue = "".concat(this.sessionIdKey, "=").concat(sessionId, "; Max-Age=1800; path=/; secure; domain=").concat(this.getOrigin());
|
|
110
|
+
document.cookie = cookieValue;
|
|
111
|
+
};
|
|
112
|
+
// Function to generate a new session ID
|
|
113
|
+
FormoAnalytics.prototype.generateSessionId = function () {
|
|
114
|
+
return crypto.randomUUID();
|
|
115
|
+
};
|
|
116
|
+
// Function to get a cookie value by name
|
|
117
|
+
FormoAnalytics.prototype.getCookieValue = function (name) {
|
|
118
|
+
var cookies = document.cookie.split(";").reduce(function (acc, cookie) {
|
|
119
|
+
var _a = cookie.split("="), key = _a[0], value = _a[1];
|
|
120
|
+
acc[key.trim()] = value;
|
|
121
|
+
return acc;
|
|
122
|
+
}, {});
|
|
123
|
+
return cookies[name];
|
|
124
|
+
};
|
|
125
|
+
// Function to send tracking data
|
|
126
|
+
FormoAnalytics.prototype.trackEvent = function (action, payload) {
|
|
127
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
128
|
+
var maxRetries, attempt, address, requestData, sendRequest;
|
|
129
|
+
var _this = this;
|
|
130
|
+
return __generator(this, function (_a) {
|
|
131
|
+
switch (_a.label) {
|
|
132
|
+
case 0:
|
|
133
|
+
maxRetries = 3;
|
|
134
|
+
attempt = 0;
|
|
135
|
+
this.setSessionCookie();
|
|
136
|
+
return [4 /*yield*/, this.getCurrentWallet()];
|
|
137
|
+
case 1:
|
|
138
|
+
address = _a.sent();
|
|
139
|
+
requestData = {
|
|
140
|
+
address: address,
|
|
141
|
+
session_id: this.getSessionId(),
|
|
142
|
+
timestamp: new Date().toISOString(),
|
|
143
|
+
action: action,
|
|
144
|
+
version: "1",
|
|
145
|
+
payload: __assign(__assign({}, this.getCommonTrackingFields()), payload),
|
|
146
|
+
};
|
|
147
|
+
sendRequest = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
148
|
+
var response, error_1, retryDelay;
|
|
149
|
+
return __generator(this, function (_a) {
|
|
150
|
+
switch (_a.label) {
|
|
151
|
+
case 0:
|
|
152
|
+
_a.trys.push([0, 2, , 3]);
|
|
153
|
+
return [4 /*yield*/, axios_1.default.post(constants_1.EVENTS_API_URL, JSON.stringify(requestData), {
|
|
154
|
+
headers: {
|
|
155
|
+
"Content-Type": "application/json",
|
|
156
|
+
Authorization: "Bearer ".concat(this.apiKey),
|
|
157
|
+
},
|
|
158
|
+
})];
|
|
159
|
+
case 1:
|
|
160
|
+
response = _a.sent();
|
|
161
|
+
if (response.status >= 200 && response.status < 300) {
|
|
162
|
+
console.log("Event sent successfully:", action);
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
throw new Error("Failed with status: ".concat(response.status));
|
|
166
|
+
}
|
|
167
|
+
return [3 /*break*/, 3];
|
|
168
|
+
case 2:
|
|
169
|
+
error_1 = _a.sent();
|
|
170
|
+
attempt++;
|
|
171
|
+
if (attempt <= maxRetries) {
|
|
172
|
+
retryDelay = Math.pow(2, attempt) * 1000;
|
|
173
|
+
console.error("Attempt ".concat(attempt, ": Retrying event \"").concat(action, "\" in ").concat(retryDelay / 1000, " seconds..."));
|
|
174
|
+
setTimeout(sendRequest, retryDelay);
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
highlight_run_1.H.consumeError(error_1, "Request data: ".concat(JSON.stringify(requestData)));
|
|
178
|
+
console.error("Event \"".concat(action, "\" failed after ").concat(maxRetries, " attempts. Error: ").concat(error_1));
|
|
179
|
+
}
|
|
180
|
+
return [3 /*break*/, 3];
|
|
181
|
+
case 3: return [2 /*return*/];
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
}); };
|
|
185
|
+
return [4 /*yield*/, sendRequest()];
|
|
186
|
+
case 2:
|
|
187
|
+
_a.sent();
|
|
188
|
+
return [2 /*return*/];
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
});
|
|
192
|
+
};
|
|
193
|
+
FormoAnalytics.prototype.getCommonTrackingFields = function () {
|
|
194
|
+
var location;
|
|
195
|
+
var language = "en";
|
|
196
|
+
try {
|
|
197
|
+
var timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
198
|
+
location = this.timezoneToCountry[timezone];
|
|
199
|
+
language =
|
|
200
|
+
navigator.languages && navigator.languages.length
|
|
201
|
+
? navigator.languages[0]
|
|
202
|
+
: navigator.language || "en";
|
|
203
|
+
}
|
|
204
|
+
catch (error) {
|
|
205
|
+
console.error("Error resolving timezone or language:", error);
|
|
206
|
+
}
|
|
207
|
+
var url = new URL(window.location.href);
|
|
208
|
+
var params = new URLSearchParams(url.search);
|
|
209
|
+
return {
|
|
210
|
+
"user-agent": window.navigator.userAgent,
|
|
211
|
+
locale: language,
|
|
212
|
+
location: location,
|
|
213
|
+
referrer: document.referrer,
|
|
214
|
+
utm_source: params.get("utm_source"),
|
|
215
|
+
utm_medium: params.get("utm_medium"),
|
|
216
|
+
utm_campaign: params.get("utm_campaign"),
|
|
217
|
+
ref: params.get("ref"),
|
|
218
|
+
};
|
|
219
|
+
};
|
|
220
|
+
// Function to track page hits
|
|
221
|
+
FormoAnalytics.prototype.trackPageHit = function () {
|
|
222
|
+
var _this = this;
|
|
223
|
+
if (window.__nightmare || window.navigator.webdriver || window.Cypress)
|
|
224
|
+
return;
|
|
225
|
+
setTimeout(function () {
|
|
226
|
+
_this.trackEvent(constants_1.Event.PAGE, {
|
|
227
|
+
pathname: window.location.pathname,
|
|
228
|
+
href: window.location.href,
|
|
229
|
+
});
|
|
230
|
+
}, 300);
|
|
231
|
+
};
|
|
232
|
+
FormoAnalytics.prototype.trackProvider = function (provider) {
|
|
233
|
+
if (provider === this._provider) {
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
this.currentChainId = undefined;
|
|
237
|
+
this.currentConnectedAddress = undefined;
|
|
238
|
+
if (this._provider) {
|
|
239
|
+
var eventNames = Object.keys(this._registeredProviderListeners);
|
|
240
|
+
for (var _i = 0, eventNames_1 = eventNames; _i < eventNames_1.length; _i++) {
|
|
241
|
+
var eventName = eventNames_1[_i];
|
|
242
|
+
this._provider.removeListener(eventName, this._registeredProviderListeners[eventName]);
|
|
243
|
+
delete this._registeredProviderListeners[eventName];
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
this._provider = provider;
|
|
247
|
+
this.getCurrentWallet();
|
|
248
|
+
this.registerAddressChangedListener();
|
|
249
|
+
this.registerChainChangedListener();
|
|
250
|
+
};
|
|
251
|
+
FormoAnalytics.prototype.getCurrentWallet = function () {
|
|
252
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
253
|
+
var sessionData, parsedData, sessionExpiry, currentTime;
|
|
254
|
+
return __generator(this, function (_a) {
|
|
255
|
+
if (!this.provider) {
|
|
256
|
+
console.warn("FormoAnalytics::getCurrentWallet: the provider is not set");
|
|
257
|
+
return [2 /*return*/];
|
|
258
|
+
}
|
|
259
|
+
sessionData = sessionStorage.getItem(this.walletAddressSessionKey);
|
|
260
|
+
if (!sessionData) {
|
|
261
|
+
return [2 /*return*/, null];
|
|
262
|
+
}
|
|
263
|
+
parsedData = JSON.parse(sessionData);
|
|
264
|
+
sessionExpiry = 30 * 60 * 1000;
|
|
265
|
+
currentTime = Date.now();
|
|
266
|
+
if (currentTime - parsedData.timestamp > sessionExpiry) {
|
|
267
|
+
console.warn("Session expired. Ignoring wallet address.");
|
|
268
|
+
sessionStorage.removeItem(this.walletAddressSessionKey); // Clear expired session data
|
|
269
|
+
return [2 /*return*/, ""];
|
|
270
|
+
}
|
|
271
|
+
this.onAddressConnected(parsedData.address);
|
|
272
|
+
return [2 /*return*/, parsedData.address || ""];
|
|
273
|
+
});
|
|
274
|
+
});
|
|
275
|
+
};
|
|
276
|
+
FormoAnalytics.prototype.getCurrentChainId = function () {
|
|
277
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
278
|
+
var chainIdHex;
|
|
279
|
+
var _a;
|
|
280
|
+
return __generator(this, function (_b) {
|
|
281
|
+
switch (_b.label) {
|
|
282
|
+
case 0:
|
|
283
|
+
if (!this.provider) {
|
|
284
|
+
console.error("FormoAnalytics::getCurrentChainId: provider not set");
|
|
285
|
+
}
|
|
286
|
+
return [4 /*yield*/, ((_a = this.provider) === null || _a === void 0 ? void 0 : _a.request({
|
|
287
|
+
method: "eth_chainId",
|
|
288
|
+
}))];
|
|
289
|
+
case 1:
|
|
290
|
+
chainIdHex = _b.sent();
|
|
291
|
+
// Because we're connected, the chainId cannot be null
|
|
292
|
+
if (!chainIdHex) {
|
|
293
|
+
console.error("FormoAnalytics::getCurrentChainId: chainIdHex is: ".concat(chainIdHex));
|
|
294
|
+
}
|
|
295
|
+
return [2 /*return*/, parseInt(chainIdHex, 16).toString()];
|
|
296
|
+
}
|
|
297
|
+
});
|
|
298
|
+
});
|
|
299
|
+
};
|
|
300
|
+
FormoAnalytics.prototype.registerAddressChangedListener = function () {
|
|
301
|
+
var _this = this;
|
|
302
|
+
var _a, _b;
|
|
303
|
+
var listener = function () {
|
|
304
|
+
var args = [];
|
|
305
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
306
|
+
args[_i] = arguments[_i];
|
|
307
|
+
}
|
|
308
|
+
return _this.onAddressChanged(args[0]);
|
|
309
|
+
};
|
|
310
|
+
(_a = this._provider) === null || _a === void 0 ? void 0 : _a.on("accountsChanged", listener);
|
|
311
|
+
this._registeredProviderListeners["accountsChanged"] = listener;
|
|
312
|
+
var onAddressDisconnected = this.onAddressDisconnected.bind(this);
|
|
313
|
+
(_b = this._provider) === null || _b === void 0 ? void 0 : _b.on("disconnect", onAddressDisconnected);
|
|
314
|
+
this._registeredProviderListeners["disconnect"] = onAddressDisconnected;
|
|
315
|
+
};
|
|
316
|
+
FormoAnalytics.prototype.registerChainChangedListener = function () {
|
|
317
|
+
var _this = this;
|
|
318
|
+
var _a;
|
|
319
|
+
var listener = function () {
|
|
320
|
+
var args = [];
|
|
321
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
322
|
+
args[_i] = arguments[_i];
|
|
323
|
+
}
|
|
324
|
+
return _this.onChainChanged(args[0]);
|
|
325
|
+
};
|
|
326
|
+
(_a = this.provider) === null || _a === void 0 ? void 0 : _a.on("chainChanged", listener);
|
|
327
|
+
this._registeredProviderListeners["chainChanged"] = listener;
|
|
328
|
+
};
|
|
329
|
+
FormoAnalytics.prototype.onAddressChanged = function (addresses) {
|
|
330
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
331
|
+
var newAccount;
|
|
332
|
+
return __generator(this, function (_a) {
|
|
333
|
+
if (addresses.length > 0) {
|
|
334
|
+
newAccount = addresses[0];
|
|
335
|
+
if (newAccount !== this.currentConnectedAddress) {
|
|
336
|
+
this.onAddressConnected(newAccount);
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
else {
|
|
340
|
+
this.onAddressDisconnected();
|
|
341
|
+
}
|
|
342
|
+
return [2 /*return*/];
|
|
343
|
+
});
|
|
344
|
+
});
|
|
345
|
+
};
|
|
346
|
+
FormoAnalytics.prototype.onAddressConnected = function (address) {
|
|
347
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
348
|
+
var _a;
|
|
349
|
+
return __generator(this, function (_b) {
|
|
350
|
+
switch (_b.label) {
|
|
351
|
+
case 0:
|
|
352
|
+
if (address === this.currentConnectedAddress) {
|
|
353
|
+
// We have already reported this address
|
|
354
|
+
return [2 /*return*/];
|
|
355
|
+
}
|
|
356
|
+
else {
|
|
357
|
+
this.currentConnectedAddress = address;
|
|
358
|
+
}
|
|
359
|
+
_a = this;
|
|
360
|
+
return [4 /*yield*/, this.getCurrentChainId()];
|
|
361
|
+
case 1:
|
|
362
|
+
_a.currentChainId = _b.sent();
|
|
363
|
+
this.connect({ chainId: this.currentChainId, address: address });
|
|
364
|
+
this.storeWalletAddress(address);
|
|
365
|
+
return [2 /*return*/];
|
|
366
|
+
}
|
|
367
|
+
});
|
|
368
|
+
});
|
|
369
|
+
};
|
|
370
|
+
FormoAnalytics.prototype.onAddressDisconnected = function () {
|
|
371
|
+
if (!this.currentConnectedAddress) {
|
|
372
|
+
return;
|
|
373
|
+
}
|
|
374
|
+
var payload = {
|
|
375
|
+
chain_id: this.currentChainId,
|
|
376
|
+
address: this.currentConnectedAddress,
|
|
377
|
+
};
|
|
378
|
+
this.currentChainId = undefined;
|
|
379
|
+
this.currentConnectedAddress = undefined;
|
|
380
|
+
this.clearWalletAddress();
|
|
381
|
+
return this.trackEvent(constants_1.Event.DISCONNECT, payload);
|
|
382
|
+
};
|
|
383
|
+
FormoAnalytics.prototype.onChainChanged = function (chainIdHex) {
|
|
384
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
385
|
+
var res, err_1;
|
|
386
|
+
return __generator(this, function (_a) {
|
|
387
|
+
switch (_a.label) {
|
|
388
|
+
case 0:
|
|
389
|
+
this.currentChainId = parseInt(chainIdHex).toString();
|
|
390
|
+
if (!!this.currentConnectedAddress) return [3 /*break*/, 4];
|
|
391
|
+
if (!this.provider) {
|
|
392
|
+
console.error("error", "FormoAnalytics::onChainChanged: provider not found. CHAIN_CHANGED not reported");
|
|
393
|
+
return [2 /*return*/];
|
|
394
|
+
}
|
|
395
|
+
_a.label = 1;
|
|
396
|
+
case 1:
|
|
397
|
+
_a.trys.push([1, 3, , 4]);
|
|
398
|
+
return [4 /*yield*/, this.provider.request({
|
|
399
|
+
method: "eth_accounts",
|
|
400
|
+
})];
|
|
401
|
+
case 2:
|
|
402
|
+
res = _a.sent();
|
|
403
|
+
if (!res || res.length === 0) {
|
|
404
|
+
console.error("error", "FormoAnalytics::onChainChanged: unable to get account. eth_accounts returned empty");
|
|
405
|
+
return [2 /*return*/];
|
|
406
|
+
}
|
|
407
|
+
this.currentConnectedAddress = res[0];
|
|
408
|
+
return [3 /*break*/, 4];
|
|
409
|
+
case 3:
|
|
410
|
+
err_1 = _a.sent();
|
|
411
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
412
|
+
if (err_1.code !== 4001) {
|
|
413
|
+
// 4001: The request is rejected by the user , see https://docs.metamask.io/wallet/reference/provider-api/#errors
|
|
414
|
+
console.error("error", "FormoAnalytics::onChainChanged: unable to get account. eth_accounts threw an error", err_1);
|
|
415
|
+
return [2 /*return*/];
|
|
416
|
+
}
|
|
417
|
+
return [3 /*break*/, 4];
|
|
418
|
+
case 4: return [2 /*return*/, this.chain({
|
|
419
|
+
chainId: this.currentChainId,
|
|
420
|
+
address: this.currentConnectedAddress,
|
|
421
|
+
})];
|
|
422
|
+
}
|
|
423
|
+
});
|
|
424
|
+
});
|
|
425
|
+
};
|
|
426
|
+
/**
|
|
427
|
+
* Stores the wallet address in session storage when connected.
|
|
428
|
+
* @param address - The wallet address to store.
|
|
429
|
+
*/
|
|
430
|
+
FormoAnalytics.prototype.storeWalletAddress = function (address) {
|
|
431
|
+
if (!address) {
|
|
432
|
+
console.error("No wallet address provided to store.");
|
|
433
|
+
return;
|
|
434
|
+
}
|
|
435
|
+
var sessionData = {
|
|
436
|
+
address: address,
|
|
437
|
+
timestamp: Date.now(),
|
|
438
|
+
};
|
|
439
|
+
sessionStorage.setItem(this.walletAddressSessionKey, JSON.stringify(sessionData));
|
|
440
|
+
};
|
|
441
|
+
/**
|
|
442
|
+
* Clears the wallet address from session storage when disconnected.
|
|
443
|
+
*/
|
|
444
|
+
FormoAnalytics.prototype.clearWalletAddress = function () {
|
|
445
|
+
sessionStorage.removeItem(this.walletAddressSessionKey);
|
|
446
|
+
};
|
|
447
|
+
FormoAnalytics.prototype.init = function (apiKey, options) {
|
|
448
|
+
var instance = new FormoAnalytics(apiKey, options);
|
|
449
|
+
return Promise.resolve(instance);
|
|
450
|
+
};
|
|
451
|
+
FormoAnalytics.prototype.connect = function (_a) {
|
|
452
|
+
var chainId = _a.chainId, address = _a.address;
|
|
453
|
+
if (!chainId) {
|
|
454
|
+
throw new Error("FormoAnalytics::connect: chain ID cannot be empty");
|
|
455
|
+
}
|
|
456
|
+
if (!address) {
|
|
457
|
+
throw new Error("FormoAnalytics::connect: address cannot be empty");
|
|
458
|
+
}
|
|
459
|
+
this.currentChainId = chainId.toString();
|
|
460
|
+
this.currentConnectedAddress = address;
|
|
461
|
+
return this.trackEvent(constants_1.Event.CONNECT, {
|
|
462
|
+
chain_id: chainId,
|
|
463
|
+
address: address,
|
|
464
|
+
});
|
|
465
|
+
};
|
|
466
|
+
FormoAnalytics.prototype.disconnect = function (params) {
|
|
467
|
+
var address = (params === null || params === void 0 ? void 0 : params.address) || this.currentConnectedAddress;
|
|
468
|
+
if (!address) {
|
|
469
|
+
// We have most likely already reported this disconnection with the automatic
|
|
470
|
+
// `disconnect` detection
|
|
471
|
+
return;
|
|
472
|
+
}
|
|
473
|
+
var payload = {
|
|
474
|
+
chain_id: (params === null || params === void 0 ? void 0 : params.chainId) || this.currentChainId,
|
|
475
|
+
address: address,
|
|
476
|
+
};
|
|
477
|
+
this.currentChainId = undefined;
|
|
478
|
+
this.currentConnectedAddress = undefined;
|
|
479
|
+
return this.trackEvent(constants_1.Event.DISCONNECT, payload);
|
|
480
|
+
};
|
|
481
|
+
FormoAnalytics.prototype.chain = function (_a) {
|
|
482
|
+
var chainId = _a.chainId, address = _a.address;
|
|
483
|
+
if (!chainId || Number(chainId) === 0) {
|
|
484
|
+
throw new Error("FormoAnalytics::chain: chainId cannot be empty or 0");
|
|
485
|
+
}
|
|
486
|
+
if (!address && !this.currentConnectedAddress) {
|
|
487
|
+
throw new Error("FormoAnalytics::chain: address was empty and no previous address has been recorded. You can either pass an address or call connect() first");
|
|
488
|
+
}
|
|
489
|
+
if (isNaN(Number(chainId))) {
|
|
490
|
+
throw new Error("FormoAnalytics::chain: chainId must be a valid hex or decimal number");
|
|
491
|
+
}
|
|
492
|
+
this.currentChainId = chainId.toString();
|
|
493
|
+
return this.trackEvent(constants_1.Event.CHAIN_CHANGED, {
|
|
494
|
+
chain_id: chainId,
|
|
495
|
+
address: address || this.currentConnectedAddress,
|
|
496
|
+
});
|
|
497
|
+
};
|
|
498
|
+
FormoAnalytics.prototype.page = function () {
|
|
499
|
+
this.trackPageHit();
|
|
500
|
+
};
|
|
501
|
+
FormoAnalytics.prototype.track = function (eventName, eventData) {
|
|
502
|
+
this.trackEvent(eventName, eventData);
|
|
503
|
+
};
|
|
504
|
+
return FormoAnalytics;
|
|
505
|
+
}());
|
|
506
|
+
exports.FormoAnalytics = FormoAnalytics;
|
|
507
|
+
//# sourceMappingURL=FormoAnalytics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormoAnalytics.js","sourceRoot":"","sources":["../../../src/FormoAnalytics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { FormoAnalytics } from './FormoAnalytics';
|
|
3
|
+
import { FormoAnalyticsProviderProps } from './types';
|
|
4
|
+
export declare const FormoAnalyticsContext: React.Context<FormoAnalytics | undefined>;
|
|
5
|
+
export declare const FormoAnalyticsProvider: ({ apiKey, options, disabled, children, }: FormoAnalyticsProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export declare const useFormoAnalytics: () => FormoAnalytics | undefined;
|
|
7
|
+
//# sourceMappingURL=FormoAnalyticsProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormoAnalyticsProvider.d.ts","sourceRoot":"","sources":["../../../src/FormoAnalyticsProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAMtD,eAAO,MAAM,qBAAqB,2CAEjC,CAAC;AAEF,eAAO,MAAM,sBAAsB,6CAKhC,2BAA2B,4CAiE7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,kCAQ7B,CAAC"}
|