@formo/analytics 1.13.4 → 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.
Files changed (124) hide show
  1. package/.github/workflows/ci.yml +51 -0
  2. package/CONTRIBUTING.md +1 -1
  3. package/dist/cjs/src/FormoAnalytics.d.ts +6 -5
  4. package/dist/cjs/src/FormoAnalytics.d.ts.map +1 -1
  5. package/dist/cjs/src/FormoAnalytics.js +88 -83
  6. package/dist/cjs/src/FormoAnalytics.js.map +1 -1
  7. package/dist/cjs/src/FormoAnalyticsProvider.d.ts +4 -5
  8. package/dist/cjs/src/FormoAnalyticsProvider.d.ts.map +1 -1
  9. package/dist/cjs/src/FormoAnalyticsProvider.js +39 -62
  10. package/dist/cjs/src/FormoAnalyticsProvider.js.map +1 -1
  11. package/dist/cjs/src/constants/base.d.ts +3 -0
  12. package/dist/cjs/src/constants/base.d.ts.map +1 -0
  13. package/dist/cjs/src/constants/base.js +6 -0
  14. package/dist/cjs/src/constants/base.js.map +1 -0
  15. package/dist/cjs/src/constants/config.d.ts +1 -1
  16. package/dist/cjs/src/constants/config.js +58 -58
  17. package/dist/cjs/src/constants/config.js.map +1 -1
  18. package/dist/cjs/src/constants/index.d.ts +4 -2
  19. package/dist/cjs/src/constants/index.d.ts.map +1 -1
  20. package/dist/cjs/src/constants/index.js +2 -0
  21. package/dist/cjs/src/constants/index.js.map +1 -1
  22. package/dist/cjs/src/constants/regex.d.ts +4 -0
  23. package/dist/cjs/src/constants/regex.d.ts.map +1 -0
  24. package/dist/cjs/src/constants/regex.js +7 -0
  25. package/dist/cjs/src/constants/regex.js.map +1 -0
  26. package/dist/cjs/src/lib/fingerprint.d.ts +4 -0
  27. package/dist/cjs/src/lib/fingerprint.d.ts.map +1 -0
  28. package/dist/cjs/src/lib/fingerprint.js +63 -0
  29. package/dist/cjs/src/lib/fingerprint.js.map +1 -0
  30. package/dist/cjs/src/lib/index.d.ts +3 -0
  31. package/dist/cjs/src/lib/index.d.ts.map +1 -0
  32. package/dist/cjs/src/lib/index.js +24 -0
  33. package/dist/cjs/src/lib/index.js.map +1 -0
  34. package/dist/cjs/src/lib/queue.d.ts +33 -0
  35. package/dist/cjs/src/lib/queue.d.ts.map +1 -0
  36. package/dist/cjs/src/lib/queue.js +319 -0
  37. package/dist/cjs/src/lib/queue.js.map +1 -0
  38. package/dist/cjs/src/lib/session-storage.d.ts +11 -0
  39. package/dist/cjs/src/lib/session-storage.d.ts.map +1 -0
  40. package/dist/cjs/src/lib/session-storage.js +52 -0
  41. package/dist/cjs/src/lib/session-storage.js.map +1 -0
  42. package/dist/cjs/src/lib/utils.d.ts +6 -0
  43. package/dist/cjs/src/lib/utils.d.ts.map +1 -1
  44. package/dist/cjs/src/lib/utils.js +32 -0
  45. package/dist/cjs/src/lib/utils.js.map +1 -1
  46. package/dist/cjs/src/types/base.d.ts +8 -2
  47. package/dist/cjs/src/types/base.d.ts.map +1 -1
  48. package/dist/cjs/src/types/events.d.ts +7 -0
  49. package/dist/cjs/src/types/events.d.ts.map +1 -1
  50. package/dist/cjs/src/types/events.js.map +1 -1
  51. package/dist/cjs/test/lib.spec.js +11 -3
  52. package/dist/cjs/test/lib.spec.js.map +1 -1
  53. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  54. package/dist/esm/src/FormoAnalytics.d.ts +6 -5
  55. package/dist/esm/src/FormoAnalytics.d.ts.map +1 -1
  56. package/dist/esm/src/FormoAnalytics.js +87 -79
  57. package/dist/esm/src/FormoAnalytics.js.map +1 -1
  58. package/dist/esm/src/FormoAnalyticsProvider.d.ts +4 -5
  59. package/dist/esm/src/FormoAnalyticsProvider.d.ts.map +1 -1
  60. package/dist/esm/src/FormoAnalyticsProvider.js +40 -63
  61. package/dist/esm/src/FormoAnalyticsProvider.js.map +1 -1
  62. package/dist/esm/src/constants/base.d.ts +3 -0
  63. package/dist/esm/src/constants/base.d.ts.map +1 -0
  64. package/dist/esm/src/constants/base.js +3 -0
  65. package/dist/esm/src/constants/base.js.map +1 -0
  66. package/dist/esm/src/constants/config.d.ts +1 -1
  67. package/dist/esm/src/constants/config.js +58 -58
  68. package/dist/esm/src/constants/config.js.map +1 -1
  69. package/dist/esm/src/constants/index.d.ts +4 -2
  70. package/dist/esm/src/constants/index.d.ts.map +1 -1
  71. package/dist/esm/src/constants/index.js +4 -2
  72. package/dist/esm/src/constants/index.js.map +1 -1
  73. package/dist/esm/src/constants/regex.d.ts +4 -0
  74. package/dist/esm/src/constants/regex.d.ts.map +1 -0
  75. package/dist/esm/src/constants/regex.js +4 -0
  76. package/dist/esm/src/constants/regex.js.map +1 -0
  77. package/dist/esm/src/lib/fingerprint.d.ts +4 -0
  78. package/dist/esm/src/lib/fingerprint.d.ts.map +1 -0
  79. package/dist/esm/src/lib/fingerprint.js +60 -0
  80. package/dist/esm/src/lib/fingerprint.js.map +1 -0
  81. package/dist/esm/src/lib/index.d.ts +3 -0
  82. package/dist/esm/src/lib/index.d.ts.map +1 -0
  83. package/dist/esm/src/lib/index.js +3 -0
  84. package/dist/esm/src/lib/index.js.map +1 -0
  85. package/dist/esm/src/lib/queue.d.ts +33 -0
  86. package/dist/esm/src/lib/queue.d.ts.map +1 -0
  87. package/dist/esm/src/lib/queue.js +313 -0
  88. package/dist/esm/src/lib/queue.js.map +1 -0
  89. package/dist/esm/src/lib/session-storage.d.ts +11 -0
  90. package/dist/esm/src/lib/session-storage.d.ts.map +1 -0
  91. package/dist/esm/src/lib/session-storage.js +49 -0
  92. package/dist/esm/src/lib/session-storage.js.map +1 -0
  93. package/dist/esm/src/lib/utils.d.ts +6 -0
  94. package/dist/esm/src/lib/utils.d.ts.map +1 -1
  95. package/dist/esm/src/lib/utils.js +25 -0
  96. package/dist/esm/src/lib/utils.js.map +1 -1
  97. package/dist/esm/src/types/base.d.ts +8 -2
  98. package/dist/esm/src/types/base.d.ts.map +1 -1
  99. package/dist/esm/src/types/events.d.ts +7 -0
  100. package/dist/esm/src/types/events.d.ts.map +1 -1
  101. package/dist/esm/src/types/events.js.map +1 -1
  102. package/dist/esm/test/lib.spec.js +9 -1
  103. package/dist/esm/test/lib.spec.js.map +1 -1
  104. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  105. package/dist/index.umd.min.js +1 -1
  106. package/dist/index.umd.min.js.LICENSE.txt +0 -12
  107. package/dist/index.umd.min.js.map +1 -1
  108. package/package.json +7 -6
  109. package/src/FormoAnalytics.ts +86 -66
  110. package/src/FormoAnalyticsProvider.tsx +32 -67
  111. package/src/constants/base.ts +2 -0
  112. package/src/constants/config.ts +58 -58
  113. package/src/constants/index.ts +4 -2
  114. package/src/constants/regex.ts +3 -0
  115. package/src/lib/fingerprint.ts +9 -0
  116. package/src/lib/index.ts +2 -0
  117. package/src/lib/queue.ts +310 -0
  118. package/src/lib/session-storage.ts +53 -0
  119. package/src/lib/utils.ts +31 -0
  120. package/src/types/base.ts +12 -5
  121. package/src/types/events.ts +15 -7
  122. package/test/lib.spec.ts +13 -1
  123. package/dist/387.index.umd.min.js +0 -125
  124. package/dist/387.index.umd.min.js.map +0 -1
@@ -0,0 +1,33 @@
1
+ import { RequestEvent } from "../types";
2
+ type Options = {
3
+ url: string;
4
+ flushAt?: number;
5
+ flushInterval?: number;
6
+ host?: string;
7
+ retryCount?: number;
8
+ errorHandler?: any;
9
+ maxQueueSize?: number;
10
+ };
11
+ export declare class EventQueue {
12
+ private writeKey;
13
+ private url;
14
+ private queue;
15
+ private timer;
16
+ private flushAt;
17
+ private flushInterval;
18
+ private flushed;
19
+ private maxQueueSize;
20
+ private errorHandler;
21
+ private retryCount;
22
+ private pendingFlush;
23
+ private payloadHashes;
24
+ constructor(writeKey: string, options: Options);
25
+ enqueue(message: RequestEvent, callback?: (...args: any) => void): Promise<void>;
26
+ flush(callback?: (...args: any) => void): Promise<any>;
27
+ private isErrorRetryable;
28
+ private checkDuplicate;
29
+ private hashPayload;
30
+ private onPageLeave;
31
+ }
32
+ export {};
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"}
@@ -0,0 +1,319 @@
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.EventQueue = void 0;
54
+ var fetch_retry_1 = __importDefault(require("fetch-retry"));
55
+ var is_network_error_1 = __importDefault(require("is-network-error"));
56
+ var utils_1 = require("./utils");
57
+ var fingerprint_1 = require("./fingerprint");
58
+ var sdkFetch = (0, fetch_retry_1.default)(global.fetch);
59
+ var noop = function () { };
60
+ var DEFAULT_RETRY = 3;
61
+ var MAX_RETRY = 5;
62
+ var MIN_RETRY = 1;
63
+ var DEFAULT_FLUSH_AT = 20;
64
+ var MAX_FLUSH_AT = 20;
65
+ var MIN_FLUSH_AT = 1;
66
+ var DEFAULT_QUEUE_SIZE = 1024 * 500; // 500kB
67
+ var MAX_QUEUE_SIZE = 1024 * 500; // 500kB
68
+ var MIN_QUEUE_SIZE = 200; // 200 bytes
69
+ var DEFAULT_FLUSH_INTERVAL = 1000 * 30; // 1 MINUTE
70
+ var MAX_FLUSH_INTERVAL = 1000 * 300; // 5 MINUTES
71
+ var MIN_FLUSH_INTERVAL = 1000 * 10; // 10 SECONDS
72
+ var EventQueue = /** @class */ (function () {
73
+ function EventQueue(writeKey, options) {
74
+ var _this = this;
75
+ this.payloadHashes = new Set();
76
+ this.onPageLeave = function (callback) {
77
+ // To ensure the callback is only called once even if more than one events
78
+ // are fired at once.
79
+ var pageLeft = false;
80
+ var isAccessible = false;
81
+ function handleOnLeave() {
82
+ if (pageLeft) {
83
+ return;
84
+ }
85
+ pageLeft = true;
86
+ callback(isAccessible);
87
+ // Reset pageLeft on the next tick
88
+ // to ensure callback executes for other listeners
89
+ // when closing an inactive browser tab.
90
+ setTimeout(function () {
91
+ pageLeft = false;
92
+ }, 0);
93
+ }
94
+ // Catches the unloading of the page (e.g., closing the tab or navigating away).
95
+ // Includes user actions like clicking a link, entering a new URL,
96
+ // refreshing the page, or closing the browser tab
97
+ // Note that 'pagehide' is not supported in IE.
98
+ // So, this is a fallback.
99
+ globalThis.addEventListener("beforeunload", function () {
100
+ isAccessible = false;
101
+ handleOnLeave();
102
+ });
103
+ globalThis.addEventListener("blur", function () {
104
+ isAccessible = true;
105
+ handleOnLeave();
106
+ });
107
+ globalThis.addEventListener("focus", function () {
108
+ pageLeft = false;
109
+ });
110
+ // Catches the page being hidden, including scenarios like closing the tab.
111
+ document.addEventListener("pagehide", function () {
112
+ isAccessible = document.visibilityState === "hidden";
113
+ handleOnLeave();
114
+ });
115
+ // Catches visibility changes, such as switching tabs or minimizing the browser.
116
+ document.addEventListener("visibilitychange", function () {
117
+ isAccessible = true;
118
+ if (document.visibilityState === "hidden") {
119
+ handleOnLeave();
120
+ }
121
+ else {
122
+ pageLeft = false;
123
+ }
124
+ });
125
+ };
126
+ options = options || {};
127
+ this.queue = [];
128
+ this.writeKey = writeKey;
129
+ this.url = options.url;
130
+ this.retryCount = (0, utils_1.clampNumber)(options.retryCount || DEFAULT_RETRY, MAX_RETRY, MIN_RETRY);
131
+ this.flushAt = (0, utils_1.clampNumber)(options.flushAt || DEFAULT_FLUSH_AT, MAX_FLUSH_AT, MIN_FLUSH_AT);
132
+ this.maxQueueSize = (0, utils_1.clampNumber)(options.maxQueueSize || DEFAULT_QUEUE_SIZE, MAX_QUEUE_SIZE, MIN_QUEUE_SIZE);
133
+ this.flushInterval = (0, utils_1.clampNumber)(options.flushInterval || DEFAULT_FLUSH_INTERVAL, MAX_FLUSH_INTERVAL, MIN_FLUSH_INTERVAL);
134
+ this.flushed = true;
135
+ this.errorHandler = options.errorHandler;
136
+ this.pendingFlush = null;
137
+ this.timer = null;
138
+ this.onPageLeave(function (isAccessible) { return __awaiter(_this, void 0, void 0, function () {
139
+ return __generator(this, function (_a) {
140
+ switch (_a.label) {
141
+ case 0:
142
+ if (!(isAccessible === false)) return [3 /*break*/, 2];
143
+ return [4 /*yield*/, this.flush()];
144
+ case 1:
145
+ _a.sent();
146
+ _a.label = 2;
147
+ case 2: return [2 /*return*/];
148
+ }
149
+ });
150
+ }); });
151
+ }
152
+ //#region Public functions
153
+ EventQueue.prototype.enqueue = function (message, callback) {
154
+ return __awaiter(this, void 0, void 0, function () {
155
+ var hasReachedFlushAt, hasReachedQueueSize;
156
+ return __generator(this, function (_a) {
157
+ switch (_a.label) {
158
+ case 0:
159
+ callback = callback || noop;
160
+ return [4 /*yield*/, this.checkDuplicate(message)];
161
+ case 1:
162
+ // check if the message already exists
163
+ if (_a.sent()) {
164
+ console.warn("Event already enqueued, try again after ".concat((0, utils_1.millisecondsToSecond)(this.flushInterval), " seconds."));
165
+ return [2 /*return*/];
166
+ }
167
+ this.queue.push({ message: message, callback: callback });
168
+ console.log("Event enqueued: ".concat((0, utils_1.getActionDescriptor)(message.action, message.payload)));
169
+ if (!this.flushed) {
170
+ this.flushed = true;
171
+ this.flush();
172
+ return [2 /*return*/];
173
+ }
174
+ hasReachedFlushAt = this.queue.length >= this.flushAt;
175
+ hasReachedQueueSize = this.queue.reduce(function (acc, item) { return acc + JSON.stringify(item).length; }, 0) >=
176
+ this.maxQueueSize;
177
+ if (hasReachedFlushAt || hasReachedQueueSize) {
178
+ this.flush();
179
+ return [2 /*return*/];
180
+ }
181
+ if (this.flushInterval && !this.timer) {
182
+ this.timer = setTimeout(this.flush.bind(this), this.flushInterval);
183
+ }
184
+ return [2 /*return*/];
185
+ }
186
+ });
187
+ });
188
+ };
189
+ EventQueue.prototype.flush = function (callback) {
190
+ return __awaiter(this, void 0, void 0, function () {
191
+ var err_1, items, data, done, req, _a;
192
+ var _b, _c;
193
+ var _this = this;
194
+ return __generator(this, function (_d) {
195
+ switch (_d.label) {
196
+ case 0:
197
+ callback = callback || noop;
198
+ if (this.timer) {
199
+ clearTimeout(this.timer);
200
+ this.timer = null;
201
+ }
202
+ if (!this.queue.length) {
203
+ callback();
204
+ return [2 /*return*/, Promise.resolve()];
205
+ }
206
+ _d.label = 1;
207
+ case 1:
208
+ _d.trys.push([1, 4, , 5]);
209
+ if (!this.pendingFlush) return [3 /*break*/, 3];
210
+ return [4 /*yield*/, this.pendingFlush];
211
+ case 2:
212
+ _d.sent();
213
+ _d.label = 3;
214
+ case 3: return [3 /*break*/, 5];
215
+ case 4:
216
+ err_1 = _d.sent();
217
+ this.pendingFlush = null;
218
+ throw err_1;
219
+ case 5:
220
+ items = this.queue.splice(0, this.flushAt);
221
+ this.payloadHashes.clear();
222
+ data = items.map(function (item) { return item.message; });
223
+ done = function (err) {
224
+ items.forEach(function (_a) {
225
+ var message = _a.message, callback = _a.callback;
226
+ return callback(err, message, data);
227
+ });
228
+ callback(err, data);
229
+ };
230
+ _b = {};
231
+ _c = {
232
+ "Content-Type": "application/json",
233
+ Authorization: "Basic ".concat(this.writeKey)
234
+ };
235
+ _a = "X-Visitor-Id";
236
+ return [4 /*yield*/, fingerprint_1.Fingerprint.getVisitorId()];
237
+ case 6:
238
+ req = (_b.headers = (_c[_a] = _d.sent(),
239
+ _c),
240
+ _b);
241
+ 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))
242
+ .then(function () {
243
+ done();
244
+ return Promise.resolve(data);
245
+ })
246
+ .catch(function (err) {
247
+ if (typeof _this.errorHandler === "function") {
248
+ done(err);
249
+ return _this.errorHandler(err);
250
+ }
251
+ if (err.response) {
252
+ var error = new Error(err.response.statusText);
253
+ done(error);
254
+ throw error;
255
+ }
256
+ done(err);
257
+ throw err;
258
+ }))];
259
+ }
260
+ });
261
+ });
262
+ };
263
+ //#region Utility functions
264
+ EventQueue.prototype.isErrorRetryable = function (error) {
265
+ var _a, _b, _c;
266
+ // Retry Network Errors.
267
+ if ((0, is_network_error_1.default)(error))
268
+ return true;
269
+ // Cannot determine if the request can be retried
270
+ if (!(error === null || error === void 0 ? void 0 : error.response))
271
+ return false;
272
+ // Retry Server Errors (5xx).
273
+ if (((_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.status) >= 500 && ((_b = error === null || error === void 0 ? void 0 : error.response) === null || _b === void 0 ? void 0 : _b.status) <= 599)
274
+ return true;
275
+ // Retry if rate limited.
276
+ if (((_c = error === null || error === void 0 ? void 0 : error.response) === null || _c === void 0 ? void 0 : _c.status) === 429)
277
+ return true;
278
+ return false;
279
+ };
280
+ EventQueue.prototype.checkDuplicate = function (newMessage) {
281
+ return __awaiter(this, void 0, void 0, function () {
282
+ var formattedTimestamp, hash;
283
+ return __generator(this, function (_a) {
284
+ switch (_a.label) {
285
+ case 0:
286
+ formattedTimestamp = (0, utils_1.toDateHourMinute)(new Date(newMessage.timestamp));
287
+ newMessage.timestamp = formattedTimestamp;
288
+ return [4 /*yield*/, this.hashPayload(newMessage)];
289
+ case 1:
290
+ hash = _a.sent();
291
+ if (this.payloadHashes.has(hash)) {
292
+ return [2 /*return*/, true];
293
+ }
294
+ this.payloadHashes.add(hash);
295
+ return [2 /*return*/, false];
296
+ }
297
+ });
298
+ });
299
+ };
300
+ EventQueue.prototype.hashPayload = function (payload_1) {
301
+ return __awaiter(this, arguments, void 0, function (payload, algo) {
302
+ var _a, _b, _c;
303
+ if (algo === void 0) { algo = "SHA-1"; }
304
+ return __generator(this, function (_d) {
305
+ switch (_d.label) {
306
+ case 0:
307
+ _b = (_a = Array).from;
308
+ _c = Uint8Array.bind;
309
+ return [4 /*yield*/, crypto.subtle.digest(algo, new TextEncoder().encode(JSON.stringify(payload)))];
310
+ case 1: return [2 /*return*/, _b.apply(_a, [new (_c.apply(Uint8Array, [void 0, _d.sent()]))(),
311
+ function (byte) { return byte.toString(16).padStart(2, "0"); }]).join("")];
312
+ }
313
+ });
314
+ });
315
+ };
316
+ return EventQueue;
317
+ }());
318
+ exports.EventQueue = EventQueue;
319
+ //# sourceMappingURL=queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../../src/lib/queue.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4DAAgC;AAChC,sEAA8C;AAE9C,iCAKiB;AACjB,6CAA4C;AAE5C,IAAM,QAAQ,GAAG,IAAA,qBAAK,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAErC,IAAM,IAAI,GAAG,cAAO,CAAC,CAAC;AAiBtB,IAAM,aAAa,GAAG,CAAC,CAAC;AACxB,IAAM,SAAS,GAAG,CAAC,CAAC;AACpB,IAAM,SAAS,GAAG,CAAC,CAAC;AAEpB,IAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,IAAM,YAAY,GAAG,EAAE,CAAC;AACxB,IAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,IAAM,kBAAkB,GAAG,IAAK,GAAG,GAAG,CAAC,CAAC,QAAQ;AAChD,IAAM,cAAc,GAAG,IAAK,GAAG,GAAG,CAAC,CAAC,QAAQ;AAC5C,IAAM,cAAc,GAAG,GAAG,CAAC,CAAC,YAAY;AAExC,IAAM,sBAAsB,GAAG,IAAK,GAAG,EAAE,CAAC,CAAC,WAAW;AACtD,IAAM,kBAAkB,GAAG,IAAK,GAAG,GAAG,CAAC,CAAC,YAAY;AACpD,IAAM,kBAAkB,GAAG,IAAK,GAAG,EAAE,CAAC,CAAC,aAAa;AAEpD;IAcE,oBAAY,QAAgB,EAAE,OAAgB;QAA9C,iBAoCC;QAtCO,kBAAa,GAAgB,IAAI,GAAG,EAAE,CAAC;QAiMvC,gBAAW,GAAG,UAAC,QAAyC;YAC9D,0EAA0E;YAC1E,qBAAqB;YACrB,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,IAAI,YAAY,GAAG,KAAK,CAAC;YAEzB,SAAS,aAAa;gBACpB,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO;gBACT,CAAC;gBAED,QAAQ,GAAG,IAAI,CAAC;gBAEhB,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAEvB,kCAAkC;gBAClC,kDAAkD;gBAClD,wCAAwC;gBACxC,UAAU,CAAC;oBACT,QAAQ,GAAG,KAAK,CAAC;gBACnB,CAAC,EAAE,CAAC,CAAC,CAAC;YACR,CAAC;YAED,gFAAgF;YAChF,kEAAkE;YAClE,kDAAkD;YAClD,+CAA+C;YAC/C,0BAA0B;YACzB,UAA4B,CAAC,gBAAgB,CAAC,cAAc,EAAE;gBAC7D,YAAY,GAAG,KAAK,CAAC;gBACrB,aAAa,EAAE,CAAC;YAClB,CAAC,CAAC,CAAC;YAEF,UAA4B,CAAC,gBAAgB,CAAC,MAAM,EAAE;gBACrD,YAAY,GAAG,IAAI,CAAC;gBACpB,aAAa,EAAE,CAAC;YAClB,CAAC,CAAC,CAAC;YAEF,UAA4B,CAAC,gBAAgB,CAAC,OAAO,EAAE;gBACtD,QAAQ,GAAG,KAAK,CAAC;YACnB,CAAC,CAAC,CAAC;YAEH,2EAA2E;YAC3E,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE;gBACpC,YAAY,GAAG,QAAQ,CAAC,eAAe,KAAK,QAAQ,CAAC;gBACrD,aAAa,EAAE,CAAC;YAClB,CAAC,CAAC,CAAC;YAEH,gFAAgF;YAChF,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE;gBAC5C,YAAY,GAAG,IAAI,CAAC;gBACpB,IAAI,QAAQ,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;oBAC1C,aAAa,EAAE,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACN,QAAQ,GAAG,KAAK,CAAC;gBACnB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAvPA,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QAExB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAA,mBAAW,EAC3B,OAAO,CAAC,UAAU,IAAI,aAAa,EACnC,SAAS,EACT,SAAS,CACV,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAA,mBAAW,EACxB,OAAO,CAAC,OAAO,IAAI,gBAAgB,EACnC,YAAY,EACZ,YAAY,CACb,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,IAAA,mBAAW,EAC7B,OAAO,CAAC,YAAY,IAAI,kBAAkB,EAC1C,cAAc,EACd,cAAc,CACf,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,IAAA,mBAAW,EAC9B,OAAO,CAAC,aAAa,IAAI,sBAAsB,EAC/C,kBAAkB,EAClB,kBAAkB,CACnB,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC,WAAW,CAAC,UAAO,YAAqB;;;;6BACvC,CAAA,YAAY,KAAK,KAAK,CAAA,EAAtB,wBAAsB;wBACxB,qBAAM,IAAI,CAAC,KAAK,EAAE,EAAA;;wBAAlB,SAAkB,CAAC;;;;;aAEtB,CAAC,CAAC;IACL,CAAC;IAED,0BAA0B;IACpB,4BAAO,GAAb,UAAc,OAAqB,EAAE,QAAiC;;;;;;wBACpE,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC;wBAGxB,qBAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAA;;wBADtC,sCAAsC;wBACtC,IAAI,SAAkC,EAAE,CAAC;4BACvC,OAAO,CAAC,IAAI,CACV,kDAA2C,IAAA,4BAAoB,EAC7D,IAAI,CAAC,aAAa,CACnB,cAAW,CACb,CAAC;4BACF,sBAAO;wBACT,CAAC;wBAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,SAAA,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC;wBAEvC,OAAO,CAAC,GAAG,CACT,0BAAmB,IAAA,2BAAmB,EAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAE,CAC1E,CAAC;wBAEF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;4BAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;4BACpB,IAAI,CAAC,KAAK,EAAE,CAAC;4BACb,sBAAO;wBACT,CAAC;wBAEK,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC;wBACtD,mBAAmB,GACvB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,IAAI,IAAK,OAAA,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,EAAjC,CAAiC,EAAE,CAAC,CAAC;4BACtE,IAAI,CAAC,YAAY,CAAC;wBAEpB,IAAI,iBAAiB,IAAI,mBAAmB,EAAE,CAAC;4BAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;4BACb,sBAAO;wBACT,CAAC;wBAED,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;4BACtC,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;wBACrE,CAAC;;;;;KACF;IAEK,0BAAK,GAAX,UAAY,QAAiC;;;;;;;;wBAC3C,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC;wBAE5B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;4BACf,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;4BACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;wBACpB,CAAC;wBAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;4BACvB,QAAQ,EAAE,CAAC;4BACX,sBAAO,OAAO,CAAC,OAAO,EAAE,EAAC;wBAC3B,CAAC;;;;6BAGK,IAAI,CAAC,YAAY,EAAjB,wBAAiB;wBACnB,qBAAM,IAAI,CAAC,YAAY,EAAA;;wBAAvB,SAAuB,CAAC;;;;;wBAG1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;wBACzB,MAAM,KAAG,CAAC;;wBAGN,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;wBACjD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;wBACrB,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,OAAO,EAAZ,CAAY,CAAC,CAAC;wBAEzC,IAAI,GAAG,UAAC,GAAW;4BACvB,KAAK,CAAC,OAAO,CAAC,UAAC,EAAqB;oCAAnB,OAAO,aAAA,EAAE,QAAQ,cAAA;gCAAO,OAAA,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC;4BAA5B,CAA4B,CAAC,CAAC;4BACvE,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;wBACtB,CAAC,CAAC;;;4BAIE,cAAc,EAAE,kBAAkB;4BAClC,aAAa,EAAE,gBAAS,IAAI,CAAC,QAAQ,CAAE;;wBACvC,KAAA,cAAc,CAAA;wBAAE,qBAAM,yBAAW,CAAC,YAAY,EAAE,EAAA;;wBAJ9C,GAAG,IACP,UAAO,IAGL,MAAc,GAAE,SAAgC;+BACjD;+BACF;wBAED,sBAAO,CAAC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,UAAG,IAAI,CAAC,GAAG,CAAE,aAChD,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAC1B,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,IAAI,CAAC,UAAU,EACxB,UAAU,EAAE,UAAC,OAAO,IAAK,OAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,IAAK,EAA5B,CAA4B,EACrD,OAAO,EAAE,UAAC,CAAC,EAAE,KAAK,IAAK,OAAA,KAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAA5B,CAA4B,IAChD,GAAG,EACN;iCACC,IAAI,CAAC;gCACJ,IAAI,EAAE,CAAC;gCACP,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;4BAC/B,CAAC,CAAC;iCACD,KAAK,CAAC,UAAC,GAAG;gCACT,IAAI,OAAO,KAAI,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;oCAC5C,IAAI,CAAC,GAAG,CAAC,CAAC;oCACV,OAAO,KAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gCAChC,CAAC;gCAED,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;oCACjB,IAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;oCACjD,IAAI,CAAC,KAAK,CAAC,CAAC;oCACZ,MAAM,KAAK,CAAC;gCACd,CAAC;gCAED,IAAI,CAAC,GAAG,CAAC,CAAC;gCACV,MAAM,GAAG,CAAC;4BACZ,CAAC,CAAC,CAAC,EAAC;;;;KACP;IAED,2BAA2B;IACnB,qCAAgB,GAAxB,UAAyB,KAAU;;QACjC,wBAAwB;QACxB,IAAI,IAAA,0BAAc,EAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEvC,iDAAiD;QACjD,IAAI,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,CAAA;YAAE,OAAO,KAAK,CAAC;QAEnC,6BAA6B;QAC7B,IAAI,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,0CAAE,MAAM,KAAI,GAAG,IAAI,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,0CAAE,MAAM,KAAI,GAAG;YAClE,OAAO,IAAI,CAAC;QAEd,yBAAyB;QACzB,IAAI,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,0CAAE,MAAM,MAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QAEjD,OAAO,KAAK,CAAC;IACf,CAAC;IAEa,mCAAc,GAA5B,UAA6B,UAAwB;;;;;;wBAE7C,kBAAkB,GAAG,IAAA,wBAAgB,EAAC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;wBAC5E,UAAU,CAAC,SAAS,GAAG,kBAAkB,CAAC;wBAE7B,qBAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAA;;wBAAzC,IAAI,GAAG,SAAkC;wBAC/C,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;4BACjC,sBAAO,IAAI,EAAC;wBACd,CAAC;wBACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBAC7B,sBAAO,KAAK,EAAC;;;;KACd;IAEa,gCAAW,GAAzB;4DAA0B,OAAqB,EAAE,IAAc;;YAAd,qBAAA,EAAA,cAAc;;;;wBACtD,KAAA,CAAA,KAAA,KAAK,CAAA,CAAC,IAAI,CAAA;6BACX,UAAU;wBACZ,qBAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CACxB,IAAI,EACJ,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAClD,EAAA;4BALL,sBAAO,cACL,cAAI,UAAU,WACZ,SAGC,KACF;4BACD,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAlC,CAAkC,EAC7C,CAAC,IAAI,CAAC,EAAE,CAAC,EAAC;;;;KACZ;IA4DH,iBAAC;AAAD,CAAC,AAvQD,IAuQC;AAvQY,gCAAU"}
@@ -0,0 +1,11 @@
1
+ export declare class SessionStorage {
2
+ private readonly json_prefix;
3
+ set(key: string, value: any): void;
4
+ get(key: string): string | boolean | Record<any, any> | null;
5
+ removeMatch(pattern: RegExp): void;
6
+ remove(key: string): void;
7
+ clear(): void;
8
+ }
9
+ declare const _default: SessionStorage;
10
+ export default _default;
11
+ //# sourceMappingURL=session-storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-storage.d.ts","sourceRoot":"","sources":["../../../../src/lib/session-storage.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IAElC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAOlC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI;IAyB5D,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQlC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIzB,KAAK,IAAI,IAAI;CAGrB;;AAED,wBAAoC"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SessionStorage = void 0;
4
+ var SessionStorage = /** @class */ (function () {
5
+ function SessionStorage() {
6
+ this.json_prefix = "__json=";
7
+ }
8
+ SessionStorage.prototype.set = function (key, value) {
9
+ if (typeof value === "boolean")
10
+ value = value === true ? "true" : "false";
11
+ if (typeof value === "object")
12
+ value = this.json_prefix + JSON.stringify(value);
13
+ sessionStorage.setItem(key, value);
14
+ };
15
+ SessionStorage.prototype.get = function (key) {
16
+ var value = sessionStorage.getItem(key);
17
+ if (!value || typeof value !== "string")
18
+ return null;
19
+ if (["null", "undefined"].some(function (item) { return item == value; }))
20
+ return null;
21
+ if (value.startsWith(this.json_prefix)) {
22
+ try {
23
+ return JSON.parse(value.slice(7));
24
+ }
25
+ catch (error) {
26
+ console.error("[FORMO_ERROR] SessionStorage failed to parse JSON", error);
27
+ return null;
28
+ }
29
+ }
30
+ if (["true", "false"].some(function (item) { return item == value; })) {
31
+ return JSON.parse(value);
32
+ }
33
+ return value;
34
+ };
35
+ SessionStorage.prototype.removeMatch = function (pattern) {
36
+ for (var key in sessionStorage) {
37
+ if (pattern.test(key)) {
38
+ this.remove(key);
39
+ }
40
+ }
41
+ };
42
+ SessionStorage.prototype.remove = function (key) {
43
+ sessionStorage.removeItem(key);
44
+ };
45
+ SessionStorage.prototype.clear = function () {
46
+ sessionStorage.clear();
47
+ };
48
+ return SessionStorage;
49
+ }());
50
+ exports.SessionStorage = SessionStorage;
51
+ exports.default = new SessionStorage();
52
+ //# sourceMappingURL=session-storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-storage.js","sourceRoot":"","sources":["../../../../src/lib/session-storage.ts"],"names":[],"mappings":";;;AAAA;IAAA;QACmB,gBAAW,GAAG,SAAS,CAAC;IAiD3C,CAAC;IA/CQ,4BAAG,GAAV,UAAW,GAAW,EAAE,KAAU;QAChC,IAAI,OAAO,KAAK,KAAK,SAAS;YAAE,KAAK,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAC1E,IAAI,OAAO,KAAK,KAAK,QAAQ;YAC3B,KAAK,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACnD,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAEM,4BAAG,GAAV,UAAW,GAAW;QACpB,IAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAE1C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACrD,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,IAAI,KAAK,EAAb,CAAa,CAAC;YAAE,OAAO,IAAI,CAAC;QAErE,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CACX,mDAAmD,EACnD,KAAK,CACN,CAAC;gBACF,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,IAAI,KAAK,EAAb,CAAa,CAAC,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,oCAAW,GAAlB,UAAmB,OAAe;QAChC,KAAK,IAAM,GAAG,IAAI,cAAc,EAAE,CAAC;YACjC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAEM,+BAAM,GAAb,UAAc,GAAW;QACvB,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAEM,8BAAK,GAAZ;QACE,cAAc,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACH,qBAAC;AAAD,CAAC,AAlDD,IAkDC;AAlDY,wCAAc;AAoD3B,kBAAe,IAAI,cAAc,EAAE,CAAC"}
@@ -1,2 +1,8 @@
1
1
  export declare function toSnakeCase(obj: any, omitKeys?: string[]): any;
2
+ export declare const isLocalhost: () => boolean;
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;
2
8
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils.ts"],"names":[],"mappings":"AAOA,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,GAAE,MAAM,EAAO,OAkB5D"}
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"}
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getActionDescriptor = exports.clampNumber = exports.toDateHourMinute = exports.millisecondsToSecond = exports.isAddress = exports.isLocalhost = void 0;
3
4
  exports.toSnakeCase = toSnakeCase;
5
+ var constants_1 = require("../constants");
4
6
  var toSnake = function (str) {
5
7
  return str
6
8
  .replace(/([a-z])([A-Z])/g, "$1_$2")
@@ -28,4 +30,34 @@ function toSnakeCase(obj, omitKeys) {
28
30
  };
29
31
  return convert(obj);
30
32
  }
33
+ var isLocalhost = function () {
34
+ return /^localhost$|^127(?:\.[0-9]+){0,2}\.[0-9]+$|^(?:0*:)*?:?0*1$/.test(window.location.hostname) || window.location.protocol === "file:";
35
+ };
36
+ exports.isLocalhost = isLocalhost;
37
+ var isAddress = function (address) { return constants_1.REGEX.addressRegex.test(address); };
38
+ exports.isAddress = isAddress;
39
+ var millisecondsToSecond = function (milliseconds) {
40
+ return Math.ceil(milliseconds / 1000);
41
+ };
42
+ exports.millisecondsToSecond = millisecondsToSecond;
43
+ var toDateHourMinute = function (date) {
44
+ return date.getUTCFullYear() +
45
+ "-" +
46
+ ("0" + (date.getUTCMonth() + 1)).slice(-2) +
47
+ "-" +
48
+ ("0" + date.getUTCDate()).slice(-2) +
49
+ " " +
50
+ ("0" + date.getUTCHours()).slice(-2) +
51
+ ":" +
52
+ ("0" + date.getUTCMinutes()).slice(-2);
53
+ };
54
+ exports.toDateHourMinute = toDateHourMinute;
55
+ var clampNumber = function (value, max, min) {
56
+ return Math.min(Math.max(value, min), max);
57
+ };
58
+ exports.clampNumber = clampNumber;
59
+ var getActionDescriptor = function (action, payload) {
60
+ return "".concat(action).concat((payload === null || payload === void 0 ? void 0 : payload.status) ? " ".concat(payload === null || payload === void 0 ? void 0 : payload.status) : "");
61
+ };
62
+ exports.getActionDescriptor = getActionDescriptor;
31
63
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/lib/utils.ts"],"names":[],"mappings":";;AAOA,kCAkBC;AAzBD,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,SAAgB,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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/lib/utils.ts"],"names":[],"mappings":"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"}
@@ -3,14 +3,20 @@ export type ChainID = number;
3
3
  export type Address = string;
4
4
  export interface Options {
5
5
  provider?: EIP1193Provider;
6
+ trackLocalhost?: boolean;
7
+ flushAt?: number;
8
+ flushInterval?: number;
9
+ retryCount?: number;
10
+ maxQueueSize?: number;
6
11
  }
7
12
  export interface FormoAnalyticsProviderProps {
8
- apiKey: string;
13
+ writeKey: string;
9
14
  options?: Options;
10
15
  disabled?: boolean;
11
16
  children: React.ReactNode;
12
17
  }
13
18
  export interface Config {
14
- apiKey: string;
19
+ writeKey: string;
20
+ trackLocalhost?: boolean;
15
21
  }
16
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,CAAA;AAG5B,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAE5B,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB"}
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"}
@@ -1,3 +1,10 @@
1
+ export interface RequestEvent {
2
+ action: string;
3
+ payload: Record<string, unknown>;
4
+ address: string | null;
5
+ timestamp: string;
6
+ version: string;
7
+ }
1
8
  export declare enum SignatureStatus {
2
9
  REQUESTED = "requested",
3
10
  REJECTED = "rejected",
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/types/events.ts"],"names":[],"mappings":"AAAA,oBAAY,eAAe;IACzB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,SAAS,cAAc;CACxB;AAED,oBAAY,iBAAiB;IAC3B,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,WAAW,gBAAgB;CAC5B"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/types/events.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,oBAAY,eAAe;IACzB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,SAAS,cAAc;CACxB;AAED,oBAAY,iBAAiB;IAC3B,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,WAAW,gBAAgB;CAC5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/types/events.ts"],"names":[],"mappings":";;;AAAA,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,0CAAuB,CAAA;IACvB,wCAAqB,CAAA;IACrB,0CAAuB,CAAA;AACzB,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B;AAED,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,wCAAmB,CAAA;IACnB,0CAAqB,CAAA;IACrB,gDAA2B,CAAA;AAC7B,CAAC,EAJW,iBAAiB,iCAAjB,iBAAiB,QAI5B"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/types/events.ts"],"names":[],"mappings":";;;AAQA,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,0CAAuB,CAAA;IACvB,wCAAqB,CAAA;IACrB,0CAAuB,CAAA;AACzB,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B;AAED,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,wCAAmB,CAAA;IACnB,0CAAqB,CAAA;IACrB,gDAA2B,CAAA;AAC7B,CAAC,EAJW,iBAAiB,iCAAjB,iBAAiB,QAI5B"}
@@ -1,17 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var mocha_1 = require("mocha");
4
- var utils_1 = require("../src/lib/utils");
4
+ var lib_1 = require("../src/lib");
5
5
  var chai_1 = require("chai");
6
6
  (0, mocha_1.describe)("toSnakeCase", function () {
7
7
  (0, mocha_1.it)("should convert object keys to snake case", function () {
8
- (0, chai_1.expect)((0, utils_1.toSnakeCase)({ chainId: "12345", hashMessage: "John Doe" })).to.deep.equal({
8
+ (0, chai_1.expect)((0, lib_1.toSnakeCase)({ chainId: "12345", hashMessage: "John Doe" })).to.deep.equal({
9
9
  chain_id: "12345",
10
10
  hash_message: "John Doe",
11
11
  });
12
12
  });
13
13
  (0, mocha_1.it)("should convert object keys to snake case, omitting keys in the omitKeys array", function () {
14
- (0, chai_1.expect)((0, utils_1.toSnakeCase)({
14
+ (0, chai_1.expect)((0, lib_1.toSnakeCase)({
15
15
  chainId: "12345",
16
16
  hashMessage: "John Doe",
17
17
  "user-agent": "Mozilla/5.0",
@@ -22,4 +22,12 @@ var chai_1 = require("chai");
22
22
  });
23
23
  });
24
24
  });
25
+ (0, mocha_1.describe)("isAddress", function () {
26
+ (0, mocha_1.it)("should return true if the input is a valid ethereum address", function () {
27
+ (0, chai_1.expect)((0, lib_1.isAddress)("0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC")).to.equal(true);
28
+ });
29
+ (0, mocha_1.it)("should return false otherwise", function () {
30
+ (0, chai_1.expect)((0, lib_1.isAddress)("o")).to.equal(false);
31
+ });
32
+ });
25
33
  //# sourceMappingURL=lib.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lib.spec.js","sourceRoot":"","sources":["../../../test/lib.spec.ts"],"names":[],"mappings":";;AAAA,+BAAqC;AACrC,0CAA+C;AAC/C,6BAA8B;AAE9B,IAAA,gBAAQ,EAAC,aAAa,EAAE;IACtB,IAAA,UAAE,EAAC,0CAA0C,EAAE;QAC7C,IAAA,aAAM,EACJ,IAAA,mBAAW,EAAC,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAC3D,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YACd,QAAQ,EAAE,OAAO;YACjB,YAAY,EAAE,UAAU;SACzB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,UAAE,EAAC,+EAA+E,EAAE;QAClF,IAAA,aAAM,EACJ,IAAA,mBAAW,EACT;YACE,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,UAAU;YACvB,YAAY,EAAE,aAAa;SAC5B,EACD,CAAC,YAAY,CAAC,CACf,CACF,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YACd,QAAQ,EAAE,OAAO;YACjB,YAAY,EAAE,UAAU;YACxB,YAAY,EAAE,aAAa;SAC5B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"lib.spec.js","sourceRoot":"","sources":["../../../test/lib.spec.ts"],"names":[],"mappings":";;AAAA,+BAAqC;AACrC,kCAAoD;AACpD,6BAA8B;AAE9B,IAAA,gBAAQ,EAAC,aAAa,EAAE;IACtB,IAAA,UAAE,EAAC,0CAA0C,EAAE;QAC7C,IAAA,aAAM,EACJ,IAAA,iBAAW,EAAC,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAC3D,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YACd,QAAQ,EAAE,OAAO;YACjB,YAAY,EAAE,UAAU;SACzB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,UAAE,EAAC,+EAA+E,EAAE;QAClF,IAAA,aAAM,EACJ,IAAA,iBAAW,EACT;YACE,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,UAAU;YACvB,YAAY,EAAE,aAAa;SAC5B,EACD,CAAC,YAAY,CAAC,CACf,CACF,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YACd,QAAQ,EAAE,OAAO;YACjB,YAAY,EAAE,UAAU;YACxB,YAAY,EAAE,aAAa;SAC5B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,gBAAQ,EAAC,WAAW,EAAE;IACpB,IAAA,UAAE,EAAC,6DAA6D,EAAE;QAChE,IAAA,aAAM,EAAC,IAAA,eAAS,EAAC,4CAA4C,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CACtE,IAAI,CACL,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,UAAE,EAAC,+BAA+B,EAAE;QAClC,IAAA,aAAM,EAAC,IAAA,eAAS,EAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}