@formo/analytics 1.14.1 → 1.14.2
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 +2 -2
- package/dist/cjs/src/FormoAnalytics.d.ts.map +1 -1
- package/dist/cjs/src/FormoAnalytics.js +16 -14
- package/dist/cjs/src/FormoAnalytics.js.map +1 -1
- package/dist/cjs/src/FormoAnalyticsProvider.js +9 -9
- package/dist/cjs/src/FormoAnalyticsProvider.js.map +1 -1
- package/dist/cjs/src/lib/fingerprint.d.ts +4 -0
- package/dist/cjs/src/lib/fingerprint.d.ts.map +1 -0
- package/dist/cjs/src/lib/fingerprint.js +63 -0
- package/dist/cjs/src/lib/fingerprint.js.map +1 -0
- package/dist/cjs/src/{FormoAnalyticsEventQueue.d.ts → lib/queue.d.ts} +7 -9
- package/dist/cjs/src/lib/queue.d.ts.map +1 -0
- package/dist/cjs/src/{FormoAnalyticsEventQueue.js → lib/queue.js} +141 -94
- package/dist/cjs/src/lib/queue.js.map +1 -0
- package/dist/cjs/src/lib/utils.d.ts +4 -0
- package/dist/cjs/src/lib/utils.d.ts.map +1 -1
- package/dist/cjs/src/lib/utils.js +25 -1
- package/dist/cjs/src/lib/utils.js.map +1 -1
- package/dist/cjs/src/types/base.d.ts +2 -2
- package/dist/cjs/src/types/base.d.ts.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/src/FormoAnalytics.d.ts +2 -2
- package/dist/esm/src/FormoAnalytics.d.ts.map +1 -1
- package/dist/esm/src/FormoAnalytics.js +16 -14
- package/dist/esm/src/FormoAnalytics.js.map +1 -1
- package/dist/esm/src/FormoAnalyticsProvider.js +9 -9
- package/dist/esm/src/FormoAnalyticsProvider.js.map +1 -1
- package/dist/esm/src/lib/fingerprint.d.ts +4 -0
- package/dist/esm/src/lib/fingerprint.d.ts.map +1 -0
- package/dist/esm/src/lib/fingerprint.js +60 -0
- package/dist/esm/src/lib/fingerprint.js.map +1 -0
- package/dist/esm/src/{FormoAnalyticsEventQueue.d.ts → lib/queue.d.ts} +7 -9
- package/dist/esm/src/lib/queue.d.ts.map +1 -0
- package/dist/esm/src/{FormoAnalyticsEventQueue.js → lib/queue.js} +140 -93
- package/dist/esm/src/lib/queue.js.map +1 -0
- package/dist/esm/src/lib/utils.d.ts +4 -0
- package/dist/esm/src/lib/utils.d.ts.map +1 -1
- package/dist/esm/src/lib/utils.js +20 -0
- package/dist/esm/src/lib/utils.js.map +1 -1
- package/dist/esm/src/types/base.d.ts +2 -2
- package/dist/esm/src/types/base.d.ts.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/index.umd.min.js +1 -1
- package/dist/index.umd.min.js.map +1 -1
- package/package.json +1 -1
- package/src/FormoAnalytics.ts +8 -8
- package/src/FormoAnalyticsProvider.tsx +9 -9
- package/src/lib/fingerprint.ts +9 -0
- package/src/{FormoAnalyticsEventQueue.ts → lib/queue.ts} +100 -72
- package/src/lib/utils.ts +22 -0
- package/src/types/base.ts +2 -2
- package/dist/cjs/src/FormoAnalyticsEventQueue.d.ts.map +0 -1
- package/dist/cjs/src/FormoAnalyticsEventQueue.js.map +0 -1
- package/dist/esm/src/FormoAnalyticsEventQueue.d.ts.map +0 -1
- package/dist/esm/src/FormoAnalyticsEventQueue.js.map +0 -1
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
+
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);
|
|
12
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
+
function step(op) {
|
|
15
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
+
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;
|
|
18
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
+
switch (op[0]) {
|
|
20
|
+
case 0: case 1: t = op; break;
|
|
21
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
+
default:
|
|
25
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
+
if (t[2]) _.ops.pop();
|
|
30
|
+
_.trys.pop(); continue;
|
|
31
|
+
}
|
|
32
|
+
op = body.call(thisArg, _);
|
|
33
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
import { load } from "@fingerprintjs/fingerprintjs";
|
|
38
|
+
var Fingerprint = /** @class */ (function () {
|
|
39
|
+
function Fingerprint() {
|
|
40
|
+
}
|
|
41
|
+
Fingerprint.getVisitorId = function () {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
43
|
+
var fp, visitorId;
|
|
44
|
+
return __generator(this, function (_a) {
|
|
45
|
+
switch (_a.label) {
|
|
46
|
+
case 0: return [4 /*yield*/, load()];
|
|
47
|
+
case 1:
|
|
48
|
+
fp = _a.sent();
|
|
49
|
+
return [4 /*yield*/, fp.get()];
|
|
50
|
+
case 2:
|
|
51
|
+
visitorId = (_a.sent()).visitorId;
|
|
52
|
+
return [2 /*return*/, visitorId];
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
return Fingerprint;
|
|
58
|
+
}());
|
|
59
|
+
export { Fingerprint };
|
|
60
|
+
//# sourceMappingURL=fingerprint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fingerprint.js","sourceRoot":"","sources":["../../../../src/lib/fingerprint.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAEpD;IAAA;IAMA,CAAC;IALc,wBAAY,GAAzB;;;;;4BACa,qBAAM,IAAI,EAAE,EAAA;;wBAAjB,EAAE,GAAG,SAAY;wBACD,qBAAM,EAAE,CAAC,GAAG,EAAE,EAAA;;wBAA5B,SAAS,GAAK,CAAA,SAAc,CAAA,UAAnB;wBACjB,sBAAO,SAAS,EAAC;;;;KAClB;IACH,kBAAC;AAAD,CAAC,AAND,IAMC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RequestEvent } from "
|
|
1
|
+
import { RequestEvent } from "../types";
|
|
2
2
|
type Options = {
|
|
3
3
|
url: string;
|
|
4
4
|
flushAt?: number;
|
|
@@ -8,7 +8,7 @@ type Options = {
|
|
|
8
8
|
errorHandler?: any;
|
|
9
9
|
maxQueueSize?: number;
|
|
10
10
|
};
|
|
11
|
-
export declare class
|
|
11
|
+
export declare class EventQueue {
|
|
12
12
|
private writeKey;
|
|
13
13
|
private url;
|
|
14
14
|
private queue;
|
|
@@ -20,16 +20,14 @@ export declare class FormoAnalyticsEventQueue {
|
|
|
20
20
|
private errorHandler;
|
|
21
21
|
private retryCount;
|
|
22
22
|
private pendingFlush;
|
|
23
|
+
private payloadHashes;
|
|
23
24
|
constructor(writeKey: string, options: Options);
|
|
24
|
-
enqueue(message: RequestEvent, callback?: (...args: any) => void): void
|
|
25
|
+
enqueue(message: RequestEvent, callback?: (...args: any) => void): Promise<void>;
|
|
25
26
|
flush(callback?: (...args: any) => void): Promise<any>;
|
|
26
|
-
private getVisitorId;
|
|
27
27
|
private isErrorRetryable;
|
|
28
|
-
private millisecondsToSecond;
|
|
29
|
-
private toDateHourMinute;
|
|
30
28
|
private checkDuplicate;
|
|
31
|
-
private
|
|
32
|
-
private
|
|
29
|
+
private hashPayload;
|
|
30
|
+
private onPageLeave;
|
|
33
31
|
}
|
|
34
32
|
export {};
|
|
35
|
-
//# sourceMappingURL=
|
|
33
|
+
//# sourceMappingURL=queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../../src/lib/queue.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAkBxC,KAAK,OAAO,GAAG;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAkBF,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,aAAa,CAA0B;gBAEnC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAuCxC,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,IAAI;IAwChE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,IAAI;IAsE7C,OAAO,CAAC,gBAAgB;YAiBV,cAAc;YAad,WAAW;IAYzB,OAAO,CAAC,WAAW,CAyDjB;CACH"}
|
|
@@ -47,7 +47,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
47
47
|
};
|
|
48
48
|
import fetch from "fetch-retry";
|
|
49
49
|
import isNetworkError from "is-network-error";
|
|
50
|
-
import
|
|
50
|
+
import { clampNumber, getActionDescriptor, millisecondsToSecond, toDateHourMinute, } from "./utils";
|
|
51
|
+
import { Fingerprint } from "./fingerprint";
|
|
51
52
|
var sdkFetch = fetch(global.fetch);
|
|
52
53
|
var noop = function () { };
|
|
53
54
|
var DEFAULT_RETRY = 3;
|
|
@@ -59,65 +60,127 @@ var MIN_FLUSH_AT = 1;
|
|
|
59
60
|
var DEFAULT_QUEUE_SIZE = 1024 * 500; // 500kB
|
|
60
61
|
var MAX_QUEUE_SIZE = 1024 * 500; // 500kB
|
|
61
62
|
var MIN_QUEUE_SIZE = 200; // 200 bytes
|
|
62
|
-
var DEFAULT_FLUSH_INTERVAL = 1000 *
|
|
63
|
+
var DEFAULT_FLUSH_INTERVAL = 1000 * 30; // 1 MINUTE
|
|
63
64
|
var MAX_FLUSH_INTERVAL = 1000 * 300; // 5 MINUTES
|
|
64
65
|
var MIN_FLUSH_INTERVAL = 1000 * 10; // 10 SECONDS
|
|
65
|
-
var
|
|
66
|
-
function
|
|
66
|
+
var EventQueue = /** @class */ (function () {
|
|
67
|
+
function EventQueue(writeKey, options) {
|
|
67
68
|
var _this = this;
|
|
69
|
+
this.payloadHashes = new Set();
|
|
70
|
+
this.onPageLeave = function (callback) {
|
|
71
|
+
// To ensure the callback is only called once even if more than one events
|
|
72
|
+
// are fired at once.
|
|
73
|
+
var pageLeft = false;
|
|
74
|
+
var isAccessible = false;
|
|
75
|
+
function handleOnLeave() {
|
|
76
|
+
if (pageLeft) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
pageLeft = true;
|
|
80
|
+
callback(isAccessible);
|
|
81
|
+
// Reset pageLeft on the next tick
|
|
82
|
+
// to ensure callback executes for other listeners
|
|
83
|
+
// when closing an inactive browser tab.
|
|
84
|
+
setTimeout(function () {
|
|
85
|
+
pageLeft = false;
|
|
86
|
+
}, 0);
|
|
87
|
+
}
|
|
88
|
+
// Catches the unloading of the page (e.g., closing the tab or navigating away).
|
|
89
|
+
// Includes user actions like clicking a link, entering a new URL,
|
|
90
|
+
// refreshing the page, or closing the browser tab
|
|
91
|
+
// Note that 'pagehide' is not supported in IE.
|
|
92
|
+
// So, this is a fallback.
|
|
93
|
+
globalThis.addEventListener("beforeunload", function () {
|
|
94
|
+
isAccessible = false;
|
|
95
|
+
handleOnLeave();
|
|
96
|
+
});
|
|
97
|
+
globalThis.addEventListener("blur", function () {
|
|
98
|
+
isAccessible = true;
|
|
99
|
+
handleOnLeave();
|
|
100
|
+
});
|
|
101
|
+
globalThis.addEventListener("focus", function () {
|
|
102
|
+
pageLeft = false;
|
|
103
|
+
});
|
|
104
|
+
// Catches the page being hidden, including scenarios like closing the tab.
|
|
105
|
+
document.addEventListener("pagehide", function () {
|
|
106
|
+
isAccessible = document.visibilityState === "hidden";
|
|
107
|
+
handleOnLeave();
|
|
108
|
+
});
|
|
109
|
+
// Catches visibility changes, such as switching tabs or minimizing the browser.
|
|
110
|
+
document.addEventListener("visibilitychange", function () {
|
|
111
|
+
isAccessible = true;
|
|
112
|
+
if (document.visibilityState === "hidden") {
|
|
113
|
+
handleOnLeave();
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
pageLeft = false;
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
};
|
|
68
120
|
options = options || {};
|
|
69
121
|
this.queue = [];
|
|
70
122
|
this.writeKey = writeKey;
|
|
71
123
|
this.url = options.url;
|
|
72
|
-
this.retryCount =
|
|
73
|
-
this.flushAt =
|
|
74
|
-
this.maxQueueSize =
|
|
75
|
-
this.flushInterval =
|
|
124
|
+
this.retryCount = clampNumber(options.retryCount || DEFAULT_RETRY, MAX_RETRY, MIN_RETRY);
|
|
125
|
+
this.flushAt = clampNumber(options.flushAt || DEFAULT_FLUSH_AT, MAX_FLUSH_AT, MIN_FLUSH_AT);
|
|
126
|
+
this.maxQueueSize = clampNumber(options.maxQueueSize || DEFAULT_QUEUE_SIZE, MAX_QUEUE_SIZE, MIN_QUEUE_SIZE);
|
|
127
|
+
this.flushInterval = clampNumber(options.flushInterval || DEFAULT_FLUSH_INTERVAL, MAX_FLUSH_INTERVAL, MIN_FLUSH_INTERVAL);
|
|
76
128
|
this.flushed = true;
|
|
77
129
|
this.errorHandler = options.errorHandler;
|
|
78
130
|
this.pendingFlush = null;
|
|
79
131
|
this.timer = null;
|
|
80
|
-
|
|
81
|
-
window.addEventListener("beforeunload", function (e) { return __awaiter(_this, void 0, void 0, function () {
|
|
132
|
+
this.onPageLeave(function (isAccessible) { return __awaiter(_this, void 0, void 0, function () {
|
|
82
133
|
return __generator(this, function (_a) {
|
|
83
134
|
switch (_a.label) {
|
|
84
135
|
case 0:
|
|
85
|
-
|
|
136
|
+
if (!(isAccessible === false)) return [3 /*break*/, 2];
|
|
86
137
|
return [4 /*yield*/, this.flush()];
|
|
87
138
|
case 1:
|
|
88
139
|
_a.sent();
|
|
89
|
-
|
|
140
|
+
_a.label = 2;
|
|
141
|
+
case 2: return [2 /*return*/];
|
|
90
142
|
}
|
|
91
143
|
});
|
|
92
144
|
}); });
|
|
93
145
|
}
|
|
94
146
|
//#region Public functions
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
147
|
+
EventQueue.prototype.enqueue = function (message, callback) {
|
|
148
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
149
|
+
var hasReachedFlushAt, hasReachedQueueSize;
|
|
150
|
+
return __generator(this, function (_a) {
|
|
151
|
+
switch (_a.label) {
|
|
152
|
+
case 0:
|
|
153
|
+
callback = callback || noop;
|
|
154
|
+
return [4 /*yield*/, this.checkDuplicate(message)];
|
|
155
|
+
case 1:
|
|
156
|
+
// check if the message already exists
|
|
157
|
+
if (_a.sent()) {
|
|
158
|
+
console.warn("Event already enqueued, try again after ".concat(millisecondsToSecond(this.flushInterval), " seconds."));
|
|
159
|
+
return [2 /*return*/];
|
|
160
|
+
}
|
|
161
|
+
this.queue.push({ message: message, callback: callback });
|
|
162
|
+
console.log("Event enqueued: ".concat(getActionDescriptor(message.action, message.payload)));
|
|
163
|
+
if (!this.flushed) {
|
|
164
|
+
this.flushed = true;
|
|
165
|
+
this.flush();
|
|
166
|
+
return [2 /*return*/];
|
|
167
|
+
}
|
|
168
|
+
hasReachedFlushAt = this.queue.length >= this.flushAt;
|
|
169
|
+
hasReachedQueueSize = this.queue.reduce(function (acc, item) { return acc + JSON.stringify(item).length; }, 0) >=
|
|
170
|
+
this.maxQueueSize;
|
|
171
|
+
if (hasReachedFlushAt || hasReachedQueueSize) {
|
|
172
|
+
this.flush();
|
|
173
|
+
return [2 /*return*/];
|
|
174
|
+
}
|
|
175
|
+
if (this.flushInterval && !this.timer) {
|
|
176
|
+
this.timer = setTimeout(this.flush.bind(this), this.flushInterval);
|
|
177
|
+
}
|
|
178
|
+
return [2 /*return*/];
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
});
|
|
119
182
|
};
|
|
120
|
-
|
|
183
|
+
EventQueue.prototype.flush = function (callback) {
|
|
121
184
|
return __awaiter(this, void 0, void 0, function () {
|
|
122
185
|
var err_1, items, data, done, req, _a;
|
|
123
186
|
var _b, _c;
|
|
@@ -149,6 +212,7 @@ var FormoAnalyticsEventQueue = /** @class */ (function () {
|
|
|
149
212
|
throw err_1;
|
|
150
213
|
case 5:
|
|
151
214
|
items = this.queue.splice(0, this.flushAt);
|
|
215
|
+
this.payloadHashes.clear();
|
|
152
216
|
data = items.map(function (item) { return item.message; });
|
|
153
217
|
done = function (err) {
|
|
154
218
|
items.forEach(function (_a) {
|
|
@@ -163,12 +227,12 @@ var FormoAnalyticsEventQueue = /** @class */ (function () {
|
|
|
163
227
|
Authorization: "Basic ".concat(this.writeKey)
|
|
164
228
|
};
|
|
165
229
|
_a = "X-Visitor-Id";
|
|
166
|
-
return [4 /*yield*/,
|
|
230
|
+
return [4 /*yield*/, Fingerprint.getVisitorId()];
|
|
167
231
|
case 6:
|
|
168
232
|
req = (_b.headers = (_c[_a] = _d.sent(),
|
|
169
233
|
_c),
|
|
170
234
|
_b);
|
|
171
|
-
return [2 /*return*/, (this.pendingFlush = sdkFetch("".concat(this.url), __assign({ method: "POST", body: JSON.stringify(data), retries: this.retryCount, retryDelay: function (attempt) { return Math.pow(2, attempt) * 1000; }, retryOn: function (_, error) { return _this.isErrorRetryable(error); } }, req))
|
|
235
|
+
return [2 /*return*/, (this.pendingFlush = sdkFetch("".concat(this.url), __assign({ method: "POST", body: JSON.stringify(data), keepalive: true, retries: this.retryCount, retryDelay: function (attempt) { return Math.pow(2, attempt) * 1000; }, retryOn: function (_, error) { return _this.isErrorRetryable(error); } }, req))
|
|
172
236
|
.then(function () {
|
|
173
237
|
done();
|
|
174
238
|
return Promise.resolve(data);
|
|
@@ -190,25 +254,8 @@ var FormoAnalyticsEventQueue = /** @class */ (function () {
|
|
|
190
254
|
});
|
|
191
255
|
});
|
|
192
256
|
};
|
|
193
|
-
//#endregion
|
|
194
257
|
//#region Utility functions
|
|
195
|
-
|
|
196
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
197
|
-
var fp, visitorId;
|
|
198
|
-
return __generator(this, function (_a) {
|
|
199
|
-
switch (_a.label) {
|
|
200
|
-
case 0: return [4 /*yield*/, FingerprintJS.load()];
|
|
201
|
-
case 1:
|
|
202
|
-
fp = _a.sent();
|
|
203
|
-
return [4 /*yield*/, fp.get()];
|
|
204
|
-
case 2:
|
|
205
|
-
visitorId = (_a.sent()).visitorId;
|
|
206
|
-
return [2 /*return*/, visitorId];
|
|
207
|
-
}
|
|
208
|
-
});
|
|
209
|
-
});
|
|
210
|
-
};
|
|
211
|
-
FormoAnalyticsEventQueue.prototype.isErrorRetryable = function (error) {
|
|
258
|
+
EventQueue.prototype.isErrorRetryable = function (error) {
|
|
212
259
|
var _a, _b, _c;
|
|
213
260
|
// Retry Network Errors.
|
|
214
261
|
if (isNetworkError(error))
|
|
@@ -224,43 +271,43 @@ var FormoAnalyticsEventQueue = /** @class */ (function () {
|
|
|
224
271
|
return true;
|
|
225
272
|
return false;
|
|
226
273
|
};
|
|
227
|
-
|
|
228
|
-
return
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
var stringifiedMessage = JSON.stringify(__assign(__assign({}, newMessage), { timestamp: formattedTimestamp }));
|
|
246
|
-
return this.queue.some(function (item) {
|
|
247
|
-
var message = item.message;
|
|
248
|
-
var formattedItemTimestamp = _this.toDateHourMinute(new Date(message.timestamp));
|
|
249
|
-
var stringifiedItem = JSON.stringify(__assign(__assign({}, message), { timestamp: formattedItemTimestamp }));
|
|
250
|
-
return stringifiedItem === stringifiedMessage;
|
|
274
|
+
EventQueue.prototype.checkDuplicate = function (newMessage) {
|
|
275
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
276
|
+
var formattedTimestamp, hash;
|
|
277
|
+
return __generator(this, function (_a) {
|
|
278
|
+
switch (_a.label) {
|
|
279
|
+
case 0:
|
|
280
|
+
formattedTimestamp = toDateHourMinute(new Date(newMessage.timestamp));
|
|
281
|
+
newMessage.timestamp = formattedTimestamp;
|
|
282
|
+
return [4 /*yield*/, this.hashPayload(newMessage)];
|
|
283
|
+
case 1:
|
|
284
|
+
hash = _a.sent();
|
|
285
|
+
if (this.payloadHashes.has(hash)) {
|
|
286
|
+
return [2 /*return*/, true];
|
|
287
|
+
}
|
|
288
|
+
this.payloadHashes.add(hash);
|
|
289
|
+
return [2 /*return*/, false];
|
|
290
|
+
}
|
|
291
|
+
});
|
|
251
292
|
});
|
|
252
293
|
};
|
|
253
|
-
|
|
254
|
-
return
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
294
|
+
EventQueue.prototype.hashPayload = function (payload_1) {
|
|
295
|
+
return __awaiter(this, arguments, void 0, function (payload, algo) {
|
|
296
|
+
var _a, _b, _c;
|
|
297
|
+
if (algo === void 0) { algo = "SHA-1"; }
|
|
298
|
+
return __generator(this, function (_d) {
|
|
299
|
+
switch (_d.label) {
|
|
300
|
+
case 0:
|
|
301
|
+
_b = (_a = Array).from;
|
|
302
|
+
_c = Uint8Array.bind;
|
|
303
|
+
return [4 /*yield*/, crypto.subtle.digest(algo, new TextEncoder().encode(JSON.stringify(payload)))];
|
|
304
|
+
case 1: return [2 /*return*/, _b.apply(_a, [new (_c.apply(Uint8Array, [void 0, _d.sent()]))(),
|
|
305
|
+
function (byte) { return byte.toString(16).padStart(2, "0"); }]).join("")];
|
|
306
|
+
}
|
|
307
|
+
});
|
|
308
|
+
});
|
|
262
309
|
};
|
|
263
|
-
return
|
|
310
|
+
return EventQueue;
|
|
264
311
|
}());
|
|
265
|
-
export {
|
|
266
|
-
//# sourceMappingURL=
|
|
312
|
+
export { EventQueue };
|
|
313
|
+
//# sourceMappingURL=queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../../src/lib/queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
export declare function toSnakeCase(obj: any, omitKeys?: string[]): any;
|
|
2
2
|
export declare const isLocalhost: () => boolean;
|
|
3
3
|
export declare const isAddress: (address: string) => boolean;
|
|
4
|
+
export declare const millisecondsToSecond: (milliseconds: number) => number;
|
|
5
|
+
export declare const toDateHourMinute: (date: Date) => string;
|
|
6
|
+
export declare const clampNumber: (value: number, max: number, min: number) => number;
|
|
7
|
+
export declare const getActionDescriptor: (action: string, payload: any) => string;
|
|
4
8
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils.ts"],"names":[],"mappings":"AASA,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,GAAE,MAAM,EAAO,OAkB5D;AAED,eAAO,MAAM,WAAW,eAGmB,CAAC;AAE5C,eAAO,MAAM,SAAS,YAAa,MAAM,YAAqC,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils.ts"],"names":[],"mappings":"AASA,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,GAAE,MAAM,EAAO,OAkB5D;AAED,eAAO,MAAM,WAAW,eAGmB,CAAC;AAE5C,eAAO,MAAM,SAAS,YAAa,MAAM,YAAqC,CAAC;AAE/E,eAAO,MAAM,oBAAoB,iBAAkB,MAAM,KAAG,MAC3B,CAAC;AAElC,eAAO,MAAM,gBAAgB,SAAU,IAAI,WASH,CAAC;AAEzC,eAAO,MAAM,WAAW,UAAW,MAAM,OAAO,MAAM,OAAO,MAAM,WAElE,CAAC;AAEF,eAAO,MAAM,mBAAmB,WAAY,MAAM,WAAW,GAAG,KAAG,MAElE,CAAC"}
|
|
@@ -30,4 +30,24 @@ export var isLocalhost = function () {
|
|
|
30
30
|
return /^localhost$|^127(?:\.[0-9]+){0,2}\.[0-9]+$|^(?:0*:)*?:?0*1$/.test(window.location.hostname) || window.location.protocol === "file:";
|
|
31
31
|
};
|
|
32
32
|
export var isAddress = function (address) { return REGEX.addressRegex.test(address); };
|
|
33
|
+
export var millisecondsToSecond = function (milliseconds) {
|
|
34
|
+
return Math.ceil(milliseconds / 1000);
|
|
35
|
+
};
|
|
36
|
+
export var toDateHourMinute = function (date) {
|
|
37
|
+
return date.getUTCFullYear() +
|
|
38
|
+
"-" +
|
|
39
|
+
("0" + (date.getUTCMonth() + 1)).slice(-2) +
|
|
40
|
+
"-" +
|
|
41
|
+
("0" + date.getUTCDate()).slice(-2) +
|
|
42
|
+
" " +
|
|
43
|
+
("0" + date.getUTCHours()).slice(-2) +
|
|
44
|
+
":" +
|
|
45
|
+
("0" + date.getUTCMinutes()).slice(-2);
|
|
46
|
+
};
|
|
47
|
+
export var clampNumber = function (value, max, min) {
|
|
48
|
+
return Math.min(Math.max(value, min), max);
|
|
49
|
+
};
|
|
50
|
+
export var getActionDescriptor = function (action, payload) {
|
|
51
|
+
return "".concat(action).concat((payload === null || payload === void 0 ? void 0 : payload.status) ? " ".concat(payload === null || payload === void 0 ? void 0 : payload.status) : "");
|
|
52
|
+
};
|
|
33
53
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,IAAM,OAAO,GAAG,UAAC,GAAW;IAC1B,OAAA,GAAG;SACA,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;SACnC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,WAAW,EAAE;AAHhB,CAGgB,CAAC;AAEnB,0EAA0E;AAC1E,MAAM,UAAU,WAAW,CAAC,GAAQ,EAAE,QAAuB;IAAvB,yBAAA,EAAA,aAAuB;IAC3D,IAAM,OAAO,GAAG,UAAC,IAAS;QACxB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,oCAAoC;QAChE,CAAC;aAAM,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAC,GAAQ,EAAE,GAAG;gBAC5C,8CAA8C;gBAC9C,IAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC9D,GAAG,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;oBACrC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;oBACX,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvB,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,EAAE,CAAC,CAAC;QACT,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,IAAM,WAAW,GAAG;IACzB,OAAA,6DAA6D,CAAC,IAAI,CAChE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CACzB,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,OAAO;AAFzC,CAEyC,CAAC;AAE5C,MAAM,CAAC,IAAM,SAAS,GAAG,UAAC,OAAe,IAAK,OAAA,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAhC,CAAgC,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/lib/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,13 +10,13 @@ export interface Options {
|
|
|
10
10
|
maxQueueSize?: number;
|
|
11
11
|
}
|
|
12
12
|
export interface FormoAnalyticsProviderProps {
|
|
13
|
-
|
|
13
|
+
writeKey: string;
|
|
14
14
|
options?: Options;
|
|
15
15
|
disabled?: boolean;
|
|
16
16
|
children: React.ReactNode;
|
|
17
17
|
}
|
|
18
18
|
export interface Config {
|
|
19
|
-
|
|
19
|
+
writeKey: string;
|
|
20
20
|
trackLocalhost?: boolean;
|
|
21
21
|
}
|
|
22
22
|
//# sourceMappingURL=base.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/types/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG7C,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAG7B,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,2BAA2B;IAC1C,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/types/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG7C,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAG7B,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B"}
|