@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.
- package/.github/workflows/ci.yml +51 -0
- package/CONTRIBUTING.md +1 -1
- package/dist/cjs/src/FormoAnalytics.d.ts +6 -5
- package/dist/cjs/src/FormoAnalytics.d.ts.map +1 -1
- package/dist/cjs/src/FormoAnalytics.js +88 -83
- package/dist/cjs/src/FormoAnalytics.js.map +1 -1
- package/dist/cjs/src/FormoAnalyticsProvider.d.ts +4 -5
- package/dist/cjs/src/FormoAnalyticsProvider.d.ts.map +1 -1
- package/dist/cjs/src/FormoAnalyticsProvider.js +39 -62
- package/dist/cjs/src/FormoAnalyticsProvider.js.map +1 -1
- package/dist/cjs/src/constants/base.d.ts +3 -0
- package/dist/cjs/src/constants/base.d.ts.map +1 -0
- package/dist/cjs/src/constants/base.js +6 -0
- package/dist/cjs/src/constants/base.js.map +1 -0
- package/dist/cjs/src/constants/config.d.ts +1 -1
- package/dist/cjs/src/constants/config.js +58 -58
- package/dist/cjs/src/constants/config.js.map +1 -1
- package/dist/cjs/src/constants/index.d.ts +4 -2
- package/dist/cjs/src/constants/index.d.ts.map +1 -1
- package/dist/cjs/src/constants/index.js +2 -0
- package/dist/cjs/src/constants/index.js.map +1 -1
- package/dist/cjs/src/constants/regex.d.ts +4 -0
- package/dist/cjs/src/constants/regex.d.ts.map +1 -0
- package/dist/cjs/src/constants/regex.js +7 -0
- package/dist/cjs/src/constants/regex.js.map +1 -0
- 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/lib/index.d.ts +3 -0
- package/dist/cjs/src/lib/index.d.ts.map +1 -0
- package/dist/cjs/src/lib/index.js +24 -0
- package/dist/cjs/src/lib/index.js.map +1 -0
- package/dist/cjs/src/lib/queue.d.ts +33 -0
- package/dist/cjs/src/lib/queue.d.ts.map +1 -0
- package/dist/cjs/src/lib/queue.js +319 -0
- package/dist/cjs/src/lib/queue.js.map +1 -0
- package/dist/cjs/src/lib/session-storage.d.ts +11 -0
- package/dist/cjs/src/lib/session-storage.d.ts.map +1 -0
- package/dist/cjs/src/lib/session-storage.js +52 -0
- package/dist/cjs/src/lib/session-storage.js.map +1 -0
- package/dist/cjs/src/lib/utils.d.ts +6 -0
- package/dist/cjs/src/lib/utils.d.ts.map +1 -1
- package/dist/cjs/src/lib/utils.js +32 -0
- package/dist/cjs/src/lib/utils.js.map +1 -1
- package/dist/cjs/src/types/base.d.ts +8 -2
- package/dist/cjs/src/types/base.d.ts.map +1 -1
- package/dist/cjs/src/types/events.d.ts +7 -0
- package/dist/cjs/src/types/events.d.ts.map +1 -1
- package/dist/cjs/src/types/events.js.map +1 -1
- package/dist/cjs/test/lib.spec.js +11 -3
- package/dist/cjs/test/lib.spec.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/src/FormoAnalytics.d.ts +6 -5
- package/dist/esm/src/FormoAnalytics.d.ts.map +1 -1
- package/dist/esm/src/FormoAnalytics.js +87 -79
- package/dist/esm/src/FormoAnalytics.js.map +1 -1
- package/dist/esm/src/FormoAnalyticsProvider.d.ts +4 -5
- package/dist/esm/src/FormoAnalyticsProvider.d.ts.map +1 -1
- package/dist/esm/src/FormoAnalyticsProvider.js +40 -63
- package/dist/esm/src/FormoAnalyticsProvider.js.map +1 -1
- package/dist/esm/src/constants/base.d.ts +3 -0
- package/dist/esm/src/constants/base.d.ts.map +1 -0
- package/dist/esm/src/constants/base.js +3 -0
- package/dist/esm/src/constants/base.js.map +1 -0
- package/dist/esm/src/constants/config.d.ts +1 -1
- package/dist/esm/src/constants/config.js +58 -58
- package/dist/esm/src/constants/config.js.map +1 -1
- package/dist/esm/src/constants/index.d.ts +4 -2
- package/dist/esm/src/constants/index.d.ts.map +1 -1
- package/dist/esm/src/constants/index.js +4 -2
- package/dist/esm/src/constants/index.js.map +1 -1
- package/dist/esm/src/constants/regex.d.ts +4 -0
- package/dist/esm/src/constants/regex.d.ts.map +1 -0
- package/dist/esm/src/constants/regex.js +4 -0
- package/dist/esm/src/constants/regex.js.map +1 -0
- 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/lib/index.d.ts +3 -0
- package/dist/esm/src/lib/index.d.ts.map +1 -0
- package/dist/esm/src/lib/index.js +3 -0
- package/dist/esm/src/lib/index.js.map +1 -0
- package/dist/esm/src/lib/queue.d.ts +33 -0
- package/dist/esm/src/lib/queue.d.ts.map +1 -0
- package/dist/esm/src/lib/queue.js +313 -0
- package/dist/esm/src/lib/queue.js.map +1 -0
- package/dist/esm/src/lib/session-storage.d.ts +11 -0
- package/dist/esm/src/lib/session-storage.d.ts.map +1 -0
- package/dist/esm/src/lib/session-storage.js +49 -0
- package/dist/esm/src/lib/session-storage.js.map +1 -0
- package/dist/esm/src/lib/utils.d.ts +6 -0
- package/dist/esm/src/lib/utils.d.ts.map +1 -1
- package/dist/esm/src/lib/utils.js +25 -0
- package/dist/esm/src/lib/utils.js.map +1 -1
- package/dist/esm/src/types/base.d.ts +8 -2
- package/dist/esm/src/types/base.d.ts.map +1 -1
- package/dist/esm/src/types/events.d.ts +7 -0
- package/dist/esm/src/types/events.d.ts.map +1 -1
- package/dist/esm/src/types/events.js.map +1 -1
- package/dist/esm/test/lib.spec.js +9 -1
- package/dist/esm/test/lib.spec.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/index.umd.min.js +1 -1
- package/dist/index.umd.min.js.LICENSE.txt +0 -12
- package/dist/index.umd.min.js.map +1 -1
- package/package.json +7 -6
- package/src/FormoAnalytics.ts +86 -66
- package/src/FormoAnalyticsProvider.tsx +32 -67
- package/src/constants/base.ts +2 -0
- package/src/constants/config.ts +58 -58
- package/src/constants/index.ts +4 -2
- package/src/constants/regex.ts +3 -0
- package/src/lib/fingerprint.ts +9 -0
- package/src/lib/index.ts +2 -0
- package/src/lib/queue.ts +310 -0
- package/src/lib/session-storage.ts +53 -0
- package/src/lib/utils.ts +31 -0
- package/src/types/base.ts +12 -5
- package/src/types/events.ts +15 -7
- package/test/lib.spec.ts +13 -1
- package/dist/387.index.umd.min.js +0 -125
- 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":"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"}
|
|
@@ -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":"
|
|
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":"
|
|
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
|
-
|
|
13
|
+
writeKey: string;
|
|
9
14
|
options?: Options;
|
|
10
15
|
disabled?: boolean;
|
|
11
16
|
children: React.ReactNode;
|
|
12
17
|
}
|
|
13
18
|
export interface Config {
|
|
14
|
-
|
|
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,
|
|
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 +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":";;;
|
|
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
|
|
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,
|
|
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,
|
|
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,
|
|
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"}
|