@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,313 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ 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);
23
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ 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;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
48
+ import fetch from "fetch-retry";
49
+ import isNetworkError from "is-network-error";
50
+ import { clampNumber, getActionDescriptor, millisecondsToSecond, toDateHourMinute, } from "./utils";
51
+ import { Fingerprint } from "./fingerprint";
52
+ var sdkFetch = fetch(global.fetch);
53
+ var noop = function () { };
54
+ var DEFAULT_RETRY = 3;
55
+ var MAX_RETRY = 5;
56
+ var MIN_RETRY = 1;
57
+ var DEFAULT_FLUSH_AT = 20;
58
+ var MAX_FLUSH_AT = 20;
59
+ var MIN_FLUSH_AT = 1;
60
+ var DEFAULT_QUEUE_SIZE = 1024 * 500; // 500kB
61
+ var MAX_QUEUE_SIZE = 1024 * 500; // 500kB
62
+ var MIN_QUEUE_SIZE = 200; // 200 bytes
63
+ var DEFAULT_FLUSH_INTERVAL = 1000 * 30; // 1 MINUTE
64
+ var MAX_FLUSH_INTERVAL = 1000 * 300; // 5 MINUTES
65
+ var MIN_FLUSH_INTERVAL = 1000 * 10; // 10 SECONDS
66
+ var EventQueue = /** @class */ (function () {
67
+ function EventQueue(writeKey, options) {
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
+ };
120
+ options = options || {};
121
+ this.queue = [];
122
+ this.writeKey = writeKey;
123
+ this.url = options.url;
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);
128
+ this.flushed = true;
129
+ this.errorHandler = options.errorHandler;
130
+ this.pendingFlush = null;
131
+ this.timer = null;
132
+ this.onPageLeave(function (isAccessible) { return __awaiter(_this, void 0, void 0, function () {
133
+ return __generator(this, function (_a) {
134
+ switch (_a.label) {
135
+ case 0:
136
+ if (!(isAccessible === false)) return [3 /*break*/, 2];
137
+ return [4 /*yield*/, this.flush()];
138
+ case 1:
139
+ _a.sent();
140
+ _a.label = 2;
141
+ case 2: return [2 /*return*/];
142
+ }
143
+ });
144
+ }); });
145
+ }
146
+ //#region Public functions
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
+ });
182
+ };
183
+ EventQueue.prototype.flush = function (callback) {
184
+ return __awaiter(this, void 0, void 0, function () {
185
+ var err_1, items, data, done, req, _a;
186
+ var _b, _c;
187
+ var _this = this;
188
+ return __generator(this, function (_d) {
189
+ switch (_d.label) {
190
+ case 0:
191
+ callback = callback || noop;
192
+ if (this.timer) {
193
+ clearTimeout(this.timer);
194
+ this.timer = null;
195
+ }
196
+ if (!this.queue.length) {
197
+ callback();
198
+ return [2 /*return*/, Promise.resolve()];
199
+ }
200
+ _d.label = 1;
201
+ case 1:
202
+ _d.trys.push([1, 4, , 5]);
203
+ if (!this.pendingFlush) return [3 /*break*/, 3];
204
+ return [4 /*yield*/, this.pendingFlush];
205
+ case 2:
206
+ _d.sent();
207
+ _d.label = 3;
208
+ case 3: return [3 /*break*/, 5];
209
+ case 4:
210
+ err_1 = _d.sent();
211
+ this.pendingFlush = null;
212
+ throw err_1;
213
+ case 5:
214
+ items = this.queue.splice(0, this.flushAt);
215
+ this.payloadHashes.clear();
216
+ data = items.map(function (item) { return item.message; });
217
+ done = function (err) {
218
+ items.forEach(function (_a) {
219
+ var message = _a.message, callback = _a.callback;
220
+ return callback(err, message, data);
221
+ });
222
+ callback(err, data);
223
+ };
224
+ _b = {};
225
+ _c = {
226
+ "Content-Type": "application/json",
227
+ Authorization: "Basic ".concat(this.writeKey)
228
+ };
229
+ _a = "X-Visitor-Id";
230
+ return [4 /*yield*/, Fingerprint.getVisitorId()];
231
+ case 6:
232
+ req = (_b.headers = (_c[_a] = _d.sent(),
233
+ _c),
234
+ _b);
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))
236
+ .then(function () {
237
+ done();
238
+ return Promise.resolve(data);
239
+ })
240
+ .catch(function (err) {
241
+ if (typeof _this.errorHandler === "function") {
242
+ done(err);
243
+ return _this.errorHandler(err);
244
+ }
245
+ if (err.response) {
246
+ var error = new Error(err.response.statusText);
247
+ done(error);
248
+ throw error;
249
+ }
250
+ done(err);
251
+ throw err;
252
+ }))];
253
+ }
254
+ });
255
+ });
256
+ };
257
+ //#region Utility functions
258
+ EventQueue.prototype.isErrorRetryable = function (error) {
259
+ var _a, _b, _c;
260
+ // Retry Network Errors.
261
+ if (isNetworkError(error))
262
+ return true;
263
+ // Cannot determine if the request can be retried
264
+ if (!(error === null || error === void 0 ? void 0 : error.response))
265
+ return false;
266
+ // Retry Server Errors (5xx).
267
+ 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)
268
+ return true;
269
+ // Retry if rate limited.
270
+ if (((_c = error === null || error === void 0 ? void 0 : error.response) === null || _c === void 0 ? void 0 : _c.status) === 429)
271
+ return true;
272
+ return false;
273
+ };
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
+ });
292
+ });
293
+ };
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
+ });
309
+ };
310
+ return EventQueue;
311
+ }());
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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"}
@@ -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,49 @@
1
+ var SessionStorage = /** @class */ (function () {
2
+ function SessionStorage() {
3
+ this.json_prefix = "__json=";
4
+ }
5
+ SessionStorage.prototype.set = function (key, value) {
6
+ if (typeof value === "boolean")
7
+ value = value === true ? "true" : "false";
8
+ if (typeof value === "object")
9
+ value = this.json_prefix + JSON.stringify(value);
10
+ sessionStorage.setItem(key, value);
11
+ };
12
+ SessionStorage.prototype.get = function (key) {
13
+ var value = sessionStorage.getItem(key);
14
+ if (!value || typeof value !== "string")
15
+ return null;
16
+ if (["null", "undefined"].some(function (item) { return item == value; }))
17
+ return null;
18
+ if (value.startsWith(this.json_prefix)) {
19
+ try {
20
+ return JSON.parse(value.slice(7));
21
+ }
22
+ catch (error) {
23
+ console.error("[FORMO_ERROR] SessionStorage failed to parse JSON", error);
24
+ return null;
25
+ }
26
+ }
27
+ if (["true", "false"].some(function (item) { return item == value; })) {
28
+ return JSON.parse(value);
29
+ }
30
+ return value;
31
+ };
32
+ SessionStorage.prototype.removeMatch = function (pattern) {
33
+ for (var key in sessionStorage) {
34
+ if (pattern.test(key)) {
35
+ this.remove(key);
36
+ }
37
+ }
38
+ };
39
+ SessionStorage.prototype.remove = function (key) {
40
+ sessionStorage.removeItem(key);
41
+ };
42
+ SessionStorage.prototype.clear = function () {
43
+ sessionStorage.clear();
44
+ };
45
+ return SessionStorage;
46
+ }());
47
+ export { SessionStorage };
48
+ export default new SessionStorage();
49
+ //# 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;;AAED,eAAe,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,3 +1,4 @@
1
+ import { REGEX } from "../constants";
1
2
  var toSnake = function (str) {
2
3
  return str
3
4
  .replace(/([a-z])([A-Z])/g, "$1_$2")
@@ -25,4 +26,28 @@ export function toSnakeCase(obj, omitKeys) {
25
26
  };
26
27
  return convert(obj);
27
28
  }
29
+ export var isLocalhost = function () {
30
+ return /^localhost$|^127(?:\.[0-9]+){0,2}\.[0-9]+$|^(?:0*:)*?:?0*1$/.test(window.location.hostname) || window.location.protocol === "file:";
31
+ };
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
+ };
28
53
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,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"}
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,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,0CAAuB,CAAA;IACvB,wCAAqB,CAAA;IACrB,0CAAuB,CAAA;AACzB,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B;AAED,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,wCAAmB,CAAA;IACnB,0CAAqB,CAAA;IACrB,gDAA2B,CAAA;AAC7B,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/types/events.ts"],"names":[],"mappings":"AAQA,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,0CAAuB,CAAA;IACvB,wCAAqB,CAAA;IACrB,0CAAuB,CAAA;AACzB,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B;AAED,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,wCAAmB,CAAA;IACnB,0CAAqB,CAAA;IACrB,gDAA2B,CAAA;AAC7B,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B"}
@@ -1,5 +1,5 @@
1
1
  import { describe, it } from "mocha";
2
- import { toSnakeCase } from "../src/lib/utils";
2
+ import { isAddress, toSnakeCase } from "../src/lib";
3
3
  import { expect } from "chai";
4
4
  describe("toSnakeCase", function () {
5
5
  it("should convert object keys to snake case", function () {
@@ -20,4 +20,12 @@ describe("toSnakeCase", function () {
20
20
  });
21
21
  });
22
22
  });
23
+ describe("isAddress", function () {
24
+ it("should return true if the input is a valid ethereum address", function () {
25
+ expect(isAddress("0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC")).to.equal(true);
26
+ });
27
+ it("should return false otherwise", function () {
28
+ expect(isAddress("o")).to.equal(false);
29
+ });
30
+ });
23
31
  //# sourceMappingURL=lib.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lib.spec.js","sourceRoot":"","sources":["../../../test/lib.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,QAAQ,CAAC,aAAa,EAAE;IACtB,EAAE,CAAC,0CAA0C,EAAE;QAC7C,MAAM,CACJ,WAAW,CAAC,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,EAAE,CAAC,+EAA+E,EAAE;QAClF,MAAM,CACJ,WAAW,CACT;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,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,QAAQ,CAAC,aAAa,EAAE;IACtB,EAAE,CAAC,0CAA0C,EAAE;QAC7C,MAAM,CACJ,WAAW,CAAC,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,EAAE,CAAC,+EAA+E,EAAE;QAClF,MAAM,CACJ,WAAW,CACT;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,QAAQ,CAAC,WAAW,EAAE;IACpB,EAAE,CAAC,6DAA6D,EAAE;QAChE,MAAM,CAAC,SAAS,CAAC,4CAA4C,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CACtE,IAAI,CACL,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE;QAClC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}