kv-test-lib 1.0.26 → 3.3.0

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.

Potentially problematic release.


This version of kv-test-lib might be problematic. Click here for more details.

Files changed (70) hide show
  1. package/README.md +12 -0
  2. package/es5_dist/adapters/adapter.browser.js +3 -0
  3. package/es5_dist/adapters/adapter.browser.js.map +1 -0
  4. package/es5_dist/adapters/browser.js +117 -0
  5. package/es5_dist/adapters/browser.js.map +1 -0
  6. package/es5_dist/adapters/crypto.browser.js +11 -0
  7. package/es5_dist/adapters/crypto.browser.js.map +1 -0
  8. package/es5_dist/browser/browser.js +49 -0
  9. package/es5_dist/browser/browser.js.map +1 -0
  10. package/es5_dist/browser/cookies.js +36 -0
  11. package/es5_dist/browser/cookies.js.map +1 -0
  12. package/es5_dist/browser/persist.js +549 -0
  13. package/es5_dist/browser/persist.js.map +1 -0
  14. package/es5_dist/core/crypto.js +2 -0
  15. package/es5_dist/core/crypto.js.map +1 -0
  16. package/es5_dist/core/storage.js +2 -0
  17. package/es5_dist/core/storage.js.map +1 -0
  18. package/es5_dist/http.js +133 -0
  19. package/es5_dist/http.js.map +1 -0
  20. package/{dist → es5_dist}/interfaces.js +9 -7
  21. package/es5_dist/interfaces.js.map +1 -0
  22. package/es5_dist/jobqueue.js +484 -0
  23. package/es5_dist/jobqueue.js.map +1 -0
  24. package/es5_dist/kochava.js +790 -0
  25. package/es5_dist/kochava.js.map +1 -0
  26. package/es5_dist/measurementEvent.js +253 -0
  27. package/es5_dist/measurementEvent.js.map +1 -0
  28. package/es5_dist/payloads/event.js +192 -0
  29. package/es5_dist/payloads/event.js.map +1 -0
  30. package/es5_dist/payloads/identityLink.js +170 -0
  31. package/es5_dist/payloads/identityLink.js.map +1 -0
  32. package/es5_dist/payloads/install.js +324 -0
  33. package/es5_dist/payloads/install.js.map +1 -0
  34. package/es5_dist/payloads/kvinit.js +296 -0
  35. package/es5_dist/payloads/kvinit.js.map +1 -0
  36. package/{dist → es5_dist}/payloads/payload.js +9 -9
  37. package/es5_dist/payloads/payload.js.map +1 -0
  38. package/es5_dist/polyfills/browser.js +3 -0
  39. package/es5_dist/polyfills/browser.js.map +1 -0
  40. package/es5_dist/utils/log.js +140 -0
  41. package/es5_dist/utils/log.js.map +1 -0
  42. package/es5_dist/utils/utils.js +26 -0
  43. package/es5_dist/utils/utils.js.map +1 -0
  44. package/package.json +4 -4
  45. package/dist/browser/browser.d.ts +0 -8
  46. package/dist/browser/browser.js +0 -40
  47. package/dist/browser/cookies.d.ts +0 -3
  48. package/dist/browser/cookies.js +0 -40
  49. package/dist/browser/persist.d.ts +0 -33
  50. package/dist/browser/persist.js +0 -195
  51. package/dist/http.d.ts +0 -6
  52. package/dist/http.js +0 -23
  53. package/dist/interfaces.d.ts +0 -117
  54. package/dist/jobqueue.d.ts +0 -35
  55. package/dist/jobqueue.js +0 -220
  56. package/dist/kochava.d.ts +0 -52
  57. package/dist/kochava.js +0 -477
  58. package/dist/payloads/event.d.ts +0 -6
  59. package/dist/payloads/event.js +0 -92
  60. package/dist/payloads/identityLink.d.ts +0 -7
  61. package/dist/payloads/identityLink.js +0 -73
  62. package/dist/payloads/install.d.ts +0 -6
  63. package/dist/payloads/install.js +0 -148
  64. package/dist/payloads/kvinit.d.ts +0 -5
  65. package/dist/payloads/kvinit.js +0 -134
  66. package/dist/payloads/payload.d.ts +0 -33
  67. package/dist/utils/log.d.ts +0 -30
  68. package/dist/utils/log.js +0 -104
  69. package/dist/utils/utils.d.ts +0 -5
  70. package/dist/utils/utils.js +0 -21
@@ -0,0 +1,549 @@
1
+ /*
2
+ Authored by Brett Barinaga on 11/17/21.
3
+ Copyright (c) Kochava, Inc. All rights reserved.
4
+ */
5
+ var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
6
+ function adopt(value) {
7
+ return value instanceof P ? value : new P(function (resolve) {
8
+ resolve(value);
9
+ });
10
+ }
11
+ return new (P || (P = Promise))(function (resolve, reject) {
12
+ function fulfilled(value) {
13
+ try {
14
+ step(generator.next(value));
15
+ } catch (e) {
16
+ reject(e);
17
+ }
18
+ }
19
+ function rejected(value) {
20
+ try {
21
+ step(generator["throw"](value));
22
+ } catch (e) {
23
+ reject(e);
24
+ }
25
+ }
26
+ function step(result) {
27
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
28
+ }
29
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
30
+ });
31
+ };
32
+ var __generator = this && this.__generator || function (thisArg, body) {
33
+ var _ = { label: 0, sent: function () {
34
+ if (t[0] & 1) throw t[1];return t[1];
35
+ }, trys: [], ops: [] },
36
+ f,
37
+ y,
38
+ t,
39
+ g;
40
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
41
+ return this;
42
+ }), g;
43
+ function verb(n) {
44
+ return function (v) {
45
+ return step([n, v]);
46
+ };
47
+ }
48
+ function step(op) {
49
+ if (f) throw new TypeError("Generator is already executing.");
50
+ while (_) try {
51
+ 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;
52
+ if (y = 0, t) op = [op[0] & 2, t.value];
53
+ switch (op[0]) {
54
+ case 0:case 1:
55
+ t = op;break;
56
+ case 4:
57
+ _.label++;return { value: op[1], done: false };
58
+ case 5:
59
+ _.label++;y = op[1];op = [0];continue;
60
+ case 7:
61
+ op = _.ops.pop();_.trys.pop();continue;
62
+ default:
63
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
64
+ _ = 0;continue;
65
+ }
66
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
67
+ _.label = op[1];break;
68
+ }
69
+ if (op[0] === 6 && _.label < t[1]) {
70
+ _.label = t[1];t = op;break;
71
+ }
72
+ if (t && _.label < t[2]) {
73
+ _.label = t[2];_.ops.push(op);break;
74
+ }
75
+ if (t[2]) _.ops.pop();
76
+ _.trys.pop();continue;
77
+ }
78
+ op = body.call(thisArg, _);
79
+ } catch (e) {
80
+ op = [6, e];y = 0;
81
+ } finally {
82
+ f = t = 0;
83
+ }
84
+ if (op[0] & 5) throw op[1];return { value: op[0] ? op[1] : void 0, done: true };
85
+ }
86
+ };
87
+ import * as utils from "../utils/utils";
88
+ import { getUrlParameter } from "./browser";
89
+ import { setCookie, getCookie, deleteCookie } from "./cookies";
90
+ import { Log } from "../utils/log";
91
+ export var MAX_STORED_IDLINKS = 10;
92
+ export var PersistKey;
93
+ (function (PersistKey) {
94
+ PersistKey["LastKvinit"] = "com.kochava.tracker.LastKvinit";
95
+ PersistKey["EventQueue"] = "com.kochava.tracker.EventQueue";
96
+ PersistKey["IdLinkQueue"] = "com.kochava.tracker.IdLinkQueue";
97
+ PersistKey["DeviceId"] = "com.kochava.tracker.DeviceId";
98
+ PersistKey["InstallId"] = "com.kochava.tracker.InstallId";
99
+ PersistKey["FirstStartDate"] = "com.kochava.tracker.FirstStartDate";
100
+ PersistKey["InstallSentDate"] = "com.kochava.tracker.InstallSentDate";
101
+ PersistKey["KvinitSentDate"] = "com.kochava.tracker.KvinitSentDate";
102
+ PersistKey["SessionCount"] = "com.kochava.tracker.SessionCount";
103
+ PersistKey["IdentityLinks"] = "com.kochava.tracker.IdentityLinks";
104
+ PersistKey["OverrideAppId"] = "com.kochava.tracker.OverrideAppId";
105
+ PersistKey["OverrideDeviceId"] = "com.kochava.tracker.OverrideDeviceId";
106
+ PersistKey["LastInstall"] = "com.kochava.tracker.LastInstall";
107
+ PersistKey["InstallCount"] = "com.kochava.tracker.InstallCount";
108
+ PersistKey["OldKvid"] = "kv_id";
109
+ })(PersistKey || (PersistKey = {}));
110
+ var storedKeys = [PersistKey.LastKvinit, PersistKey.EventQueue, PersistKey.IdLinkQueue, PersistKey.DeviceId, PersistKey.InstallId, PersistKey.FirstStartDate, PersistKey.InstallSentDate, PersistKey.KvinitSentDate, PersistKey.SessionCount, PersistKey.IdentityLinks, PersistKey.OverrideAppId, PersistKey.OverrideDeviceId, PersistKey.LastInstall, PersistKey.InstallCount];
111
+ var storage;
112
+ export var configureStorage = function (adapter) {
113
+ storage = adapter;
114
+ };
115
+ export var checkInstallIdChange = function (inputId, useCookies) {
116
+ return __awaiter(void 0, void 0, void 0, function () {
117
+ var persistedInstallId;
118
+ return __generator(this, function (_a) {
119
+ switch (_a.label) {
120
+ case 0:
121
+ return [4 /*yield*/, readAndUpdatePersistedValue(PersistKey.InstallId, useCookies)];
122
+ case 1:
123
+ persistedInstallId = _a.sent();
124
+ // if the input is empty, we don't need to change
125
+ if (!inputId) return [2 /*return*/, false];
126
+ // if the persistedId is empty, we will need to change
127
+ if (!persistedInstallId) {
128
+ updatePersistedValue(PersistKey.InstallId, inputId, useCookies);
129
+ return [2 /*return*/, true];
130
+ }
131
+ // if the inputId and persistedId are the same, we dont need to change
132
+ if (inputId === persistedInstallId) return [2 /*return*/, false];
133
+ // at this point both inputId and persistedInstallId exist and are not equal,
134
+ // so we must need to change
135
+ updatePersistedValue(PersistKey.InstallId, inputId, useCookies);
136
+ return [2 /*return*/, true];
137
+ }
138
+ });
139
+ });
140
+ };
141
+ export var addToPersistedEventQueue = function (job) {
142
+ return __awaiter(void 0, void 0, void 0, function () {
143
+ var persistedQueueStr, persistedQueue;
144
+ return __generator(this, function (_a) {
145
+ switch (_a.label) {
146
+ case 0:
147
+ return [4 /*yield*/, storage.getItem(PersistKey.EventQueue)];
148
+ case 1:
149
+ persistedQueueStr = _a.sent();
150
+ if (persistedQueueStr === null || persistedQueueStr === undefined || persistedQueueStr === '{}') persistedQueueStr = '[]';
151
+ persistedQueue = JSON.parse(persistedQueueStr) || [];
152
+ persistedQueue.push(job);
153
+ return [4 /*yield*/, storage.setItem(PersistKey.EventQueue, JSON.stringify(persistedQueue))];
154
+ case 2:
155
+ _a.sent();
156
+ return [2 /*return*/];
157
+ }
158
+ });
159
+ });
160
+ };
161
+ export var removeFromEventPersistedQueue = function (job) {
162
+ return __awaiter(void 0, void 0, void 0, function () {
163
+ var persistedQueueStr, persistedQueue, queueWithJobRemoved;
164
+ return __generator(this, function (_a) {
165
+ switch (_a.label) {
166
+ case 0:
167
+ return [4 /*yield*/, storage.getItem(PersistKey.EventQueue)];
168
+ case 1:
169
+ persistedQueueStr = _a.sent();
170
+ persistedQueue = JSON.parse(persistedQueueStr) || [];
171
+ queueWithJobRemoved = persistedQueue.filter(function (persistedJob) {
172
+ return persistedJob.id !== job.id;
173
+ });
174
+ return [4 /*yield*/, storage.setItem(PersistKey.EventQueue, JSON.stringify(queueWithJobRemoved))];
175
+ case 2:
176
+ _a.sent();
177
+ return [2 /*return*/];
178
+ }
179
+ });
180
+ });
181
+ };
182
+ export var updateOrAddPersistedIdLinkQueue = function (job) {
183
+ return __awaiter(void 0, void 0, void 0, function () {
184
+ var idLinkKey, persistedQueueStr, persistedQueue, updated, _i, persistedQueue_1, persistedJob, persistedKey;
185
+ return __generator(this, function (_a) {
186
+ switch (_a.label) {
187
+ case 0:
188
+ idLinkKey = Object.keys(job.idLink)[0];
189
+ return [4 /*yield*/, storage.getItem(PersistKey.IdLinkQueue)];
190
+ case 1:
191
+ persistedQueueStr = _a.sent();
192
+ persistedQueue = JSON.parse(persistedQueueStr) || [];
193
+ updated = false;
194
+ for (_i = 0, persistedQueue_1 = persistedQueue; _i < persistedQueue_1.length; _i++) {
195
+ persistedJob = persistedQueue_1[_i];
196
+ persistedKey = Object.keys(persistedJob.idLink)[0];
197
+ // if the key is already there, update it
198
+ if (idLinkKey === persistedKey) {
199
+ persistedJob.idLink[idLinkKey] = job.idLink[idLinkKey];
200
+ updated = true;
201
+ }
202
+ }
203
+ // if the key is new, add it
204
+ if (!updated) {
205
+ persistedQueue.push(job);
206
+ }
207
+ return [4 /*yield*/, storage.setItem(PersistKey.IdLinkQueue, JSON.stringify(persistedQueue))];
208
+ case 2:
209
+ _a.sent();
210
+ return [2 /*return*/];
211
+ }
212
+ });
213
+ });
214
+ };
215
+ export var removeFromIdLinkPersistedQueue = function (job) {
216
+ return __awaiter(void 0, void 0, void 0, function () {
217
+ var persistedQueueStr, persistedQueue, queueWithJobRemoved;
218
+ return __generator(this, function (_a) {
219
+ switch (_a.label) {
220
+ case 0:
221
+ return [4 /*yield*/, storage.getItem(PersistKey.IdLinkQueue)];
222
+ case 1:
223
+ persistedQueueStr = _a.sent();
224
+ persistedQueue = JSON.parse(persistedQueueStr) || [];
225
+ queueWithJobRemoved = persistedQueue.filter(function (persistedJob) {
226
+ return persistedJob.id !== job.id;
227
+ });
228
+ return [4 /*yield*/, storage.setItem(PersistKey.IdLinkQueue, JSON.stringify(queueWithJobRemoved))];
229
+ case 2:
230
+ _a.sent();
231
+ return [2 /*return*/];
232
+ }
233
+ });
234
+ });
235
+ };
236
+ export var addPersistedIdLinks = function (key, value, useCookies) {
237
+ return __awaiter(void 0, void 0, void 0, function () {
238
+ var persistedIdLinksStr, persistedIdLinks, storedSoFar;
239
+ return __generator(this, function (_a) {
240
+ switch (_a.label) {
241
+ case 0:
242
+ return [4 /*yield*/, storage.getItem(PersistKey.IdentityLinks)];
243
+ case 1:
244
+ persistedIdLinksStr = _a.sent();
245
+ persistedIdLinks = JSON.parse(persistedIdLinksStr) || {};
246
+ storedSoFar = Object.keys(persistedIdLinks);
247
+ if (storedSoFar.length > MAX_STORED_IDLINKS) {
248
+ Log.debug("Maximum stored idLinks reached, most recent idLink will not be stored.");
249
+ return [2 /*return*/];
250
+ }
251
+ persistedIdLinks[key] = value;
252
+ updatePersistedValue(PersistKey.IdentityLinks, JSON.stringify(persistedIdLinks), useCookies);
253
+ return [2 /*return*/];
254
+ }
255
+ });
256
+ });
257
+ };
258
+ export var checkDuplicateIdLink = function (key, value) {
259
+ return __awaiter(void 0, void 0, void 0, function () {
260
+ var persistedIdLinksStr, persistedIdLinks, persistedKey;
261
+ return __generator(this, function (_a) {
262
+ switch (_a.label) {
263
+ case 0:
264
+ return [4 /*yield*/, storage.getItem(PersistKey.IdentityLinks)];
265
+ case 1:
266
+ persistedIdLinksStr = _a.sent();
267
+ if (persistedIdLinksStr) {
268
+ persistedIdLinks = JSON.parse(persistedIdLinksStr) || {};
269
+ for (persistedKey in persistedIdLinks) {
270
+ if (key === persistedKey && persistedIdLinks[persistedKey] === value) {
271
+ return [2 /*return*/, true];
272
+ }
273
+ }
274
+ }
275
+ return [2 /*return*/, false];
276
+ }
277
+ });
278
+ });
279
+ };
280
+ export var getPersistedIdentityLinks = function () {
281
+ return __awaiter(void 0, void 0, void 0, function () {
282
+ var persistedIdLinksStr;
283
+ return __generator(this, function (_a) {
284
+ switch (_a.label) {
285
+ case 0:
286
+ return [4 /*yield*/, storage.getItem(PersistKey.IdentityLinks)];
287
+ case 1:
288
+ persistedIdLinksStr = _a.sent();
289
+ if (persistedIdLinksStr) {
290
+ return [2 /*return*/, JSON.parse(persistedIdLinksStr)];
291
+ }
292
+ return [2 /*return*/, undefined];
293
+ }
294
+ });
295
+ });
296
+ };
297
+ export var readAndUpdateUTM = function (appGuid, useCookies) {
298
+ return __awaiter(void 0, void 0, void 0, function () {
299
+ var storageName, urlValue, storageValue, cookieValue;
300
+ return __generator(this, function (_a) {
301
+ switch (_a.label) {
302
+ case 0:
303
+ storageName = appGuid + "_click";
304
+ urlValue = getUrlParameter("ko_click_id");
305
+ return [4 /*yield*/, storage.getItem(storageName)];
306
+ case 1:
307
+ storageValue = _a.sent();
308
+ cookieValue = "";
309
+ if (useCookies) cookieValue = getCookie(storageName);
310
+ if (!urlValue) return [3 /*break*/, 3];
311
+ return [4 /*yield*/, storage.setItem(storageName, urlValue)];
312
+ case 2:
313
+ _a.sent();
314
+ if (useCookies) setCookie(storageName, urlValue);
315
+ return [3 /*break*/, 4];
316
+ case 3:
317
+ if (storageValue) {
318
+ if (useCookies) setCookie(storageName, urlValue);
319
+ }
320
+ _a.label = 4;
321
+ case 4:
322
+ return [2 /*return*/, urlValue ? urlValue : storageValue ? storageValue : cookieValue ? cookieValue : ""];
323
+ }
324
+ });
325
+ });
326
+ };
327
+ export var readAndUpdatePersistedValue = function (key, useCookie) {
328
+ return __awaiter(void 0, void 0, void 0, function () {
329
+ var urlValue, storageValue, cookieValue;
330
+ return __generator(this, function (_a) {
331
+ switch (_a.label) {
332
+ case 0:
333
+ urlValue = getUrlParameter(key);
334
+ return [4 /*yield*/, storage.getItem(key)];
335
+ case 1:
336
+ storageValue = _a.sent();
337
+ cookieValue = "";
338
+ if (useCookie) cookieValue = getCookie(key);
339
+ if (!urlValue) return [3 /*break*/, 3];
340
+ return [4 /*yield*/, updatePersistedValue(key, urlValue, useCookie)];
341
+ case 2:
342
+ _a.sent();
343
+ return [3 /*break*/, 7];
344
+ case 3:
345
+ if (!storageValue) return [3 /*break*/, 5];
346
+ return [4 /*yield*/, updatePersistedValue(key, storageValue, useCookie)];
347
+ case 4:
348
+ _a.sent();
349
+ return [3 /*break*/, 7];
350
+ case 5:
351
+ if (!cookieValue) return [3 /*break*/, 7];
352
+ return [4 /*yield*/, updatePersistedValue(key, storageValue, useCookie)];
353
+ case 6:
354
+ _a.sent();
355
+ _a.label = 7;
356
+ case 7:
357
+ return [2 /*return*/, urlValue ? urlValue : storageValue ? storageValue : cookieValue ? cookieValue : ""];
358
+ }
359
+ });
360
+ });
361
+ };
362
+ export var updatePersistedValue = function (key, value, useCookie) {
363
+ return __awaiter(void 0, void 0, void 0, function () {
364
+ return __generator(this, function (_a) {
365
+ switch (_a.label) {
366
+ case 0:
367
+ return [4 /*yield*/, storage.setItem(key, value)];
368
+ case 1:
369
+ _a.sent();
370
+ if (useCookie) setCookie(key, value);
371
+ return [2 /*return*/];
372
+ }
373
+ });
374
+ });
375
+ };
376
+ export var deletePersistedValue = function (item) {
377
+ return __awaiter(void 0, void 0, void 0, function () {
378
+ return __generator(this, function (_a) {
379
+ switch (_a.label) {
380
+ case 0:
381
+ return [4 /*yield*/, storage.removeItem(item)];
382
+ case 1:
383
+ _a.sent();
384
+ deleteCookie(item);
385
+ return [2 /*return*/];
386
+ }
387
+ });
388
+ });
389
+ };
390
+ export var deleteAllPersisted = function () {
391
+ return __awaiter(void 0, void 0, void 0, function () {
392
+ return __generator(this, function (_a) {
393
+ switch (_a.label) {
394
+ case 0:
395
+ return [4 /*yield*/, Promise.all(storedKeys.map(function (item) {
396
+ return deletePersistedValue(item);
397
+ }))];
398
+ case 1:
399
+ _a.sent();
400
+ return [2 /*return*/];
401
+ }
402
+ });
403
+ });
404
+ };
405
+ export var readAndUpdateDeviceId = function (useCookie) {
406
+ return __awaiter(void 0, void 0, void 0, function () {
407
+ var storedDeviceId, kvId;
408
+ return __generator(this, function (_a) {
409
+ switch (_a.label) {
410
+ case 0:
411
+ return [4 /*yield*/, readAndUpdatePersistedValue(PersistKey.DeviceId, useCookie)];
412
+ case 1:
413
+ storedDeviceId = _a.sent();
414
+ if (!storedDeviceId) {
415
+ kvId = "KB".concat(utils.getCurrTimeSec(), "T").concat(utils.uuidv4());
416
+ storedDeviceId = kvId.replace(/-/g, "");
417
+ }
418
+ return [4 /*yield*/, updatePersistedValue(PersistKey.DeviceId, storedDeviceId, useCookie)];
419
+ case 2:
420
+ _a.sent();
421
+ return [2 /*return*/, storedDeviceId];
422
+ }
423
+ });
424
+ });
425
+ };
426
+ export var readAndUpdateSessionCount = function (useCookie) {
427
+ return __awaiter(void 0, void 0, void 0, function () {
428
+ var storedSessionCount, sessionCount;
429
+ return __generator(this, function (_a) {
430
+ switch (_a.label) {
431
+ case 0:
432
+ return [4 /*yield*/, readAndUpdatePersistedValue(PersistKey.SessionCount, useCookie)];
433
+ case 1:
434
+ storedSessionCount = _a.sent();
435
+ sessionCount = 1;
436
+ if (storedSessionCount) {
437
+ sessionCount = parseInt(storedSessionCount);
438
+ sessionCount++;
439
+ }
440
+ return [4 /*yield*/, updatePersistedValue(PersistKey.SessionCount, sessionCount.toString(), useCookie)];
441
+ case 2:
442
+ _a.sent();
443
+ return [2 /*return*/, sessionCount];
444
+ }
445
+ });
446
+ });
447
+ };
448
+ export var updateLastInstall = function (lastInstallObject, useCookie) {
449
+ return __awaiter(void 0, void 0, void 0, function () {
450
+ var lastInstallStr;
451
+ return __generator(this, function (_a) {
452
+ switch (_a.label) {
453
+ case 0:
454
+ lastInstallStr = JSON.stringify(lastInstallObject);
455
+ return [4 /*yield*/, storage.setItem(PersistKey.LastInstall, lastInstallStr)];
456
+ case 1:
457
+ _a.sent();
458
+ if (useCookie) setCookie(PersistKey.LastInstall, lastInstallStr);
459
+ return [2 /*return*/];
460
+ }
461
+ });
462
+ });
463
+ };
464
+ export var getLastInstall = function (useCookie) {
465
+ return __awaiter(void 0, void 0, void 0, function () {
466
+ var lastInstallStr, cookieValue;
467
+ return __generator(this, function (_a) {
468
+ switch (_a.label) {
469
+ case 0:
470
+ return [4 /*yield*/, storage.getItem(PersistKey.LastInstall)];
471
+ case 1:
472
+ lastInstallStr = _a.sent();
473
+ if (lastInstallStr) {
474
+ return [2 /*return*/, JSON.parse(lastInstallStr)];
475
+ } else if (useCookie) {
476
+ cookieValue = getCookie(PersistKey.LastInstall);
477
+ if (cookieValue) {
478
+ return [2 /*return*/, JSON.parse(cookieValue)];
479
+ }
480
+ }
481
+ return [2 /*return*/, undefined];
482
+ }
483
+ });
484
+ });
485
+ };
486
+ export var updateInstallCount = function (installCount, useCookie) {
487
+ return __awaiter(void 0, void 0, void 0, function () {
488
+ return __generator(this, function (_a) {
489
+ switch (_a.label) {
490
+ case 0:
491
+ return [4 /*yield*/, storage.setItem(PersistKey.InstallCount, installCount.toString())];
492
+ case 1:
493
+ _a.sent();
494
+ if (useCookie) {
495
+ setCookie(PersistKey.InstallCount, installCount.toString());
496
+ }
497
+ return [2 /*return*/];
498
+ }
499
+ });
500
+ });
501
+ };
502
+ export var getItem = function (key) {
503
+ return __awaiter(void 0, void 0, void 0, function () {
504
+ var value, error_1;
505
+ return __generator(this, function (_a) {
506
+ switch (_a.label) {
507
+ case 0:
508
+ _a.trys.push([0, 2,, 3]);
509
+ return [4 /*yield*/, storage.getItem(key)];
510
+ case 1:
511
+ value = _a.sent();
512
+ if (value) {
513
+ return [2 /*return*/, value];
514
+ } else {
515
+ return [2 /*return*/, null];
516
+ }
517
+ return [3 /*break*/, 3];
518
+ case 2:
519
+ error_1 = _a.sent();
520
+ Log.error("Error getting item ".concat(key, " from localStorage:"), error_1);
521
+ return [2 /*return*/, null];
522
+ case 3:
523
+ return [2 /*return*/];
524
+ }
525
+ });
526
+ });
527
+ };
528
+ export var setItem = function (key, value) {
529
+ return __awaiter(void 0, void 0, void 0, function () {
530
+ var error_2;
531
+ return __generator(this, function (_a) {
532
+ switch (_a.label) {
533
+ case 0:
534
+ _a.trys.push([0, 2,, 3]);
535
+ return [4 /*yield*/, storage.setItem(key, value)];
536
+ case 1:
537
+ _a.sent();
538
+ return [3 /*break*/, 3];
539
+ case 2:
540
+ error_2 = _a.sent();
541
+ Log.error("Error setting item ".concat(key, " in localStorage:"), error_2);
542
+ return [3 /*break*/, 3];
543
+ case 3:
544
+ return [2 /*return*/];
545
+ }
546
+ });
547
+ });
548
+ };
549
+ //# sourceMappingURL=persist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../dist/browser/persist.js"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__generator","body","_","label","sent","t","trys","ops","f","y","g","verb","Symbol","iterator","n","v","op","TypeError","call","pop","length","push","utils","getUrlParameter","setCookie","getCookie","deleteCookie","Log","MAX_STORED_IDLINKS","PersistKey","storedKeys","LastKvinit","EventQueue","IdLinkQueue","DeviceId","InstallId","FirstStartDate","InstallSentDate","KvinitSentDate","SessionCount","IdentityLinks","OverrideAppId","OverrideDeviceId","LastInstall","InstallCount","storage","configureStorage","adapter","checkInstallIdChange","inputId","useCookies","persistedInstallId","_a","readAndUpdatePersistedValue","updatePersistedValue","addToPersistedEventQueue","job","persistedQueueStr","persistedQueue","getItem","undefined","JSON","parse","setItem","stringify","removeFromEventPersistedQueue","queueWithJobRemoved","filter","persistedJob","id","updateOrAddPersistedIdLinkQueue","idLinkKey","updated","_i","persistedQueue_1","persistedKey","Object","keys","idLink","removeFromIdLinkPersistedQueue","addPersistedIdLinks","key","persistedIdLinksStr","persistedIdLinks","storedSoFar","debug","checkDuplicateIdLink","getPersistedIdentityLinks","readAndUpdateUTM","appGuid","storageName","urlValue","storageValue","cookieValue","useCookie","deletePersistedValue","item","removeItem","deleteAllPersisted","all","map","readAndUpdateDeviceId","storedDeviceId","kvId","concat","getCurrTimeSec","uuidv4","replace","readAndUpdateSessionCount","storedSessionCount","sessionCount","parseInt","toString","updateLastInstall","lastInstallObject","lastInstallStr","getLastInstall","updateInstallCount","installCount","error_1","error","error_2"],"mappings":"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","file":"persist.js","sourcesContent":["/*\n Authored by Brett Barinaga on 11/17/21.\n Copyright (c) Kochava, Inc. All rights reserved.\n*/\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n 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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as utils from \"../utils/utils\";\nimport { getUrlParameter } from \"./browser\";\nimport { setCookie, getCookie, deleteCookie } from \"./cookies\";\nimport { Log } from \"../utils/log\";\nexport var MAX_STORED_IDLINKS = 10;\nexport var PersistKey;\n(function (PersistKey) {\n PersistKey[\"LastKvinit\"] = \"com.kochava.tracker.LastKvinit\";\n PersistKey[\"EventQueue\"] = \"com.kochava.tracker.EventQueue\";\n PersistKey[\"IdLinkQueue\"] = \"com.kochava.tracker.IdLinkQueue\";\n PersistKey[\"DeviceId\"] = \"com.kochava.tracker.DeviceId\";\n PersistKey[\"InstallId\"] = \"com.kochava.tracker.InstallId\";\n PersistKey[\"FirstStartDate\"] = \"com.kochava.tracker.FirstStartDate\";\n PersistKey[\"InstallSentDate\"] = \"com.kochava.tracker.InstallSentDate\";\n PersistKey[\"KvinitSentDate\"] = \"com.kochava.tracker.KvinitSentDate\";\n PersistKey[\"SessionCount\"] = \"com.kochava.tracker.SessionCount\";\n PersistKey[\"IdentityLinks\"] = \"com.kochava.tracker.IdentityLinks\";\n PersistKey[\"OverrideAppId\"] = \"com.kochava.tracker.OverrideAppId\";\n PersistKey[\"OverrideDeviceId\"] = \"com.kochava.tracker.OverrideDeviceId\";\n PersistKey[\"LastInstall\"] = \"com.kochava.tracker.LastInstall\";\n PersistKey[\"InstallCount\"] = \"com.kochava.tracker.InstallCount\";\n PersistKey[\"OldKvid\"] = \"kv_id\";\n})(PersistKey || (PersistKey = {}));\nvar storedKeys = [\n PersistKey.LastKvinit,\n PersistKey.EventQueue,\n PersistKey.IdLinkQueue,\n PersistKey.DeviceId,\n PersistKey.InstallId,\n PersistKey.FirstStartDate,\n PersistKey.InstallSentDate,\n PersistKey.KvinitSentDate,\n PersistKey.SessionCount,\n PersistKey.IdentityLinks,\n PersistKey.OverrideAppId,\n PersistKey.OverrideDeviceId,\n PersistKey.LastInstall,\n PersistKey.InstallCount,\n];\nvar storage;\nexport var configureStorage = function (adapter) {\n storage = adapter;\n};\nexport var checkInstallIdChange = function (inputId, useCookies) { return __awaiter(void 0, void 0, void 0, function () {\n var persistedInstallId;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, readAndUpdatePersistedValue(PersistKey.InstallId, useCookies)];\n case 1:\n persistedInstallId = _a.sent();\n // if the input is empty, we don't need to change\n if (!inputId)\n return [2 /*return*/, false];\n // if the persistedId is empty, we will need to change\n if (!persistedInstallId) {\n updatePersistedValue(PersistKey.InstallId, inputId, useCookies);\n return [2 /*return*/, true];\n }\n // if the inputId and persistedId are the same, we dont need to change\n if (inputId === persistedInstallId)\n return [2 /*return*/, false];\n // at this point both inputId and persistedInstallId exist and are not equal,\n // so we must need to change\n updatePersistedValue(PersistKey.InstallId, inputId, useCookies);\n return [2 /*return*/, true];\n }\n });\n}); };\nexport var addToPersistedEventQueue = function (job) { return __awaiter(void 0, void 0, void 0, function () {\n var persistedQueueStr, persistedQueue;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, storage.getItem(PersistKey.EventQueue)];\n case 1:\n persistedQueueStr = _a.sent();\n if (persistedQueueStr === null || persistedQueueStr === undefined || persistedQueueStr === '{}')\n persistedQueueStr = '[]';\n persistedQueue = JSON.parse(persistedQueueStr) || [];\n persistedQueue.push(job);\n return [4 /*yield*/, storage.setItem(PersistKey.EventQueue, JSON.stringify(persistedQueue))];\n case 2:\n _a.sent();\n return [2 /*return*/];\n }\n });\n}); };\nexport var removeFromEventPersistedQueue = function (job) { return __awaiter(void 0, void 0, void 0, function () {\n var persistedQueueStr, persistedQueue, queueWithJobRemoved;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, storage.getItem(PersistKey.EventQueue)];\n case 1:\n persistedQueueStr = _a.sent();\n persistedQueue = JSON.parse(persistedQueueStr) || [];\n queueWithJobRemoved = persistedQueue.filter(function (persistedJob) {\n return persistedJob.id !== job.id;\n });\n return [4 /*yield*/, storage.setItem(PersistKey.EventQueue, JSON.stringify(queueWithJobRemoved))];\n case 2:\n _a.sent();\n return [2 /*return*/];\n }\n });\n}); };\nexport var updateOrAddPersistedIdLinkQueue = function (job) { return __awaiter(void 0, void 0, void 0, function () {\n var idLinkKey, persistedQueueStr, persistedQueue, updated, _i, persistedQueue_1, persistedJob, persistedKey;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n idLinkKey = Object.keys(job.idLink)[0];\n return [4 /*yield*/, storage.getItem(PersistKey.IdLinkQueue)];\n case 1:\n persistedQueueStr = _a.sent();\n persistedQueue = JSON.parse(persistedQueueStr) || [];\n updated = false;\n for (_i = 0, persistedQueue_1 = persistedQueue; _i < persistedQueue_1.length; _i++) {\n persistedJob = persistedQueue_1[_i];\n persistedKey = Object.keys(persistedJob.idLink)[0];\n // if the key is already there, update it\n if (idLinkKey === persistedKey) {\n persistedJob.idLink[idLinkKey] = job.idLink[idLinkKey];\n updated = true;\n }\n }\n // if the key is new, add it\n if (!updated) {\n persistedQueue.push(job);\n }\n return [4 /*yield*/, storage.setItem(PersistKey.IdLinkQueue, JSON.stringify(persistedQueue))];\n case 2:\n _a.sent();\n return [2 /*return*/];\n }\n });\n}); };\nexport var removeFromIdLinkPersistedQueue = function (job) { return __awaiter(void 0, void 0, void 0, function () {\n var persistedQueueStr, persistedQueue, queueWithJobRemoved;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, storage.getItem(PersistKey.IdLinkQueue)];\n case 1:\n persistedQueueStr = _a.sent();\n persistedQueue = JSON.parse(persistedQueueStr) || [];\n queueWithJobRemoved = persistedQueue.filter(function (persistedJob) {\n return persistedJob.id !== job.id;\n });\n return [4 /*yield*/, storage.setItem(PersistKey.IdLinkQueue, JSON.stringify(queueWithJobRemoved))];\n case 2:\n _a.sent();\n return [2 /*return*/];\n }\n });\n}); };\nexport var addPersistedIdLinks = function (key, value, useCookies) { return __awaiter(void 0, void 0, void 0, function () {\n var persistedIdLinksStr, persistedIdLinks, storedSoFar;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, storage.getItem(PersistKey.IdentityLinks)];\n case 1:\n persistedIdLinksStr = _a.sent();\n persistedIdLinks = JSON.parse(persistedIdLinksStr) || {};\n storedSoFar = Object.keys(persistedIdLinks);\n if (storedSoFar.length > MAX_STORED_IDLINKS) {\n Log.debug(\"Maximum stored idLinks reached, most recent idLink will not be stored.\");\n return [2 /*return*/];\n }\n persistedIdLinks[key] = value;\n updatePersistedValue(PersistKey.IdentityLinks, JSON.stringify(persistedIdLinks), useCookies);\n return [2 /*return*/];\n }\n });\n}); };\nexport var checkDuplicateIdLink = function (key, value) { return __awaiter(void 0, void 0, void 0, function () {\n var persistedIdLinksStr, persistedIdLinks, persistedKey;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, storage.getItem(PersistKey.IdentityLinks)];\n case 1:\n persistedIdLinksStr = _a.sent();\n if (persistedIdLinksStr) {\n persistedIdLinks = JSON.parse(persistedIdLinksStr) || {};\n for (persistedKey in persistedIdLinks) {\n if (key === persistedKey && persistedIdLinks[persistedKey] === value) {\n return [2 /*return*/, true];\n }\n }\n }\n return [2 /*return*/, false];\n }\n });\n}); };\nexport var getPersistedIdentityLinks = function () { return __awaiter(void 0, void 0, void 0, function () {\n var persistedIdLinksStr;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, storage.getItem(PersistKey.IdentityLinks)];\n case 1:\n persistedIdLinksStr = _a.sent();\n if (persistedIdLinksStr) {\n return [2 /*return*/, JSON.parse(persistedIdLinksStr)];\n }\n return [2 /*return*/, undefined];\n }\n });\n}); };\nexport var readAndUpdateUTM = function (appGuid, useCookies) { return __awaiter(void 0, void 0, void 0, function () {\n var storageName, urlValue, storageValue, cookieValue;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n storageName = appGuid + \"_click\";\n urlValue = getUrlParameter(\"ko_click_id\");\n return [4 /*yield*/, storage.getItem(storageName)];\n case 1:\n storageValue = _a.sent();\n cookieValue = \"\";\n if (useCookies)\n cookieValue = getCookie(storageName);\n if (!urlValue) return [3 /*break*/, 3];\n return [4 /*yield*/, storage.setItem(storageName, urlValue)];\n case 2:\n _a.sent();\n if (useCookies)\n setCookie(storageName, urlValue);\n return [3 /*break*/, 4];\n case 3:\n if (storageValue) {\n if (useCookies)\n setCookie(storageName, urlValue);\n }\n _a.label = 4;\n case 4: return [2 /*return*/, (urlValue) ? urlValue :\n (storageValue) ? storageValue :\n (cookieValue) ? cookieValue : \"\"];\n }\n });\n}); };\nexport var readAndUpdatePersistedValue = function (key, useCookie) { return __awaiter(void 0, void 0, void 0, function () {\n var urlValue, storageValue, cookieValue;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n urlValue = getUrlParameter(key);\n return [4 /*yield*/, storage.getItem(key)];\n case 1:\n storageValue = _a.sent();\n cookieValue = \"\";\n if (useCookie)\n cookieValue = getCookie(key);\n if (!urlValue) return [3 /*break*/, 3];\n return [4 /*yield*/, updatePersistedValue(key, urlValue, useCookie)];\n case 2:\n _a.sent();\n return [3 /*break*/, 7];\n case 3:\n if (!storageValue) return [3 /*break*/, 5];\n return [4 /*yield*/, updatePersistedValue(key, storageValue, useCookie)];\n case 4:\n _a.sent();\n return [3 /*break*/, 7];\n case 5:\n if (!cookieValue) return [3 /*break*/, 7];\n return [4 /*yield*/, updatePersistedValue(key, storageValue, useCookie)];\n case 6:\n _a.sent();\n _a.label = 7;\n case 7: return [2 /*return*/, (urlValue) ? urlValue :\n (storageValue) ? storageValue :\n (cookieValue) ? cookieValue : \"\"];\n }\n });\n}); };\nexport var updatePersistedValue = function (key, value, useCookie) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, storage.setItem(key, value)];\n case 1:\n _a.sent();\n if (useCookie)\n setCookie(key, value);\n return [2 /*return*/];\n }\n });\n}); };\nexport var deletePersistedValue = function (item) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, storage.removeItem(item)];\n case 1:\n _a.sent();\n deleteCookie(item);\n return [2 /*return*/];\n }\n });\n}); };\nexport var deleteAllPersisted = function () { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, Promise.all(storedKeys.map(function (item) { return deletePersistedValue(item); }))];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n}); };\nexport var readAndUpdateDeviceId = function (useCookie) { return __awaiter(void 0, void 0, void 0, function () {\n var storedDeviceId, kvId;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, readAndUpdatePersistedValue(PersistKey.DeviceId, useCookie)];\n case 1:\n storedDeviceId = _a.sent();\n if (!storedDeviceId) {\n kvId = \"KB\".concat(utils.getCurrTimeSec(), \"T\").concat(utils.uuidv4());\n storedDeviceId = kvId.replace(/-/g, \"\");\n }\n return [4 /*yield*/, updatePersistedValue(PersistKey.DeviceId, storedDeviceId, useCookie)];\n case 2:\n _a.sent();\n return [2 /*return*/, storedDeviceId];\n }\n });\n}); };\nexport var readAndUpdateSessionCount = function (useCookie) { return __awaiter(void 0, void 0, void 0, function () {\n var storedSessionCount, sessionCount;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, readAndUpdatePersistedValue(PersistKey.SessionCount, useCookie)];\n case 1:\n storedSessionCount = _a.sent();\n sessionCount = 1;\n if (storedSessionCount) {\n sessionCount = parseInt(storedSessionCount);\n sessionCount++;\n }\n return [4 /*yield*/, updatePersistedValue(PersistKey.SessionCount, sessionCount.toString(), useCookie)];\n case 2:\n _a.sent();\n return [2 /*return*/, sessionCount];\n }\n });\n}); };\nexport var updateLastInstall = function (lastInstallObject, useCookie) { return __awaiter(void 0, void 0, void 0, function () {\n var lastInstallStr;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n lastInstallStr = JSON.stringify(lastInstallObject);\n return [4 /*yield*/, storage.setItem(PersistKey.LastInstall, lastInstallStr)];\n case 1:\n _a.sent();\n if (useCookie)\n setCookie(PersistKey.LastInstall, lastInstallStr);\n return [2 /*return*/];\n }\n });\n}); };\nexport var getLastInstall = function (useCookie) { return __awaiter(void 0, void 0, void 0, function () {\n var lastInstallStr, cookieValue;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, storage.getItem(PersistKey.LastInstall)];\n case 1:\n lastInstallStr = _a.sent();\n if (lastInstallStr) {\n return [2 /*return*/, JSON.parse(lastInstallStr)];\n }\n else if (useCookie) {\n cookieValue = getCookie(PersistKey.LastInstall);\n if (cookieValue) {\n return [2 /*return*/, JSON.parse(cookieValue)];\n }\n }\n return [2 /*return*/, undefined];\n }\n });\n}); };\nexport var updateInstallCount = function (installCount, useCookie) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, storage.setItem(PersistKey.InstallCount, installCount.toString())];\n case 1:\n _a.sent();\n if (useCookie) {\n setCookie(PersistKey.InstallCount, installCount.toString());\n }\n return [2 /*return*/];\n }\n });\n}); };\nexport var getItem = function (key) { return __awaiter(void 0, void 0, void 0, function () {\n var value, error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, storage.getItem(key)];\n case 1:\n value = _a.sent();\n if (value) {\n return [2 /*return*/, value];\n }\n else {\n return [2 /*return*/, null];\n }\n return [3 /*break*/, 3];\n case 2:\n error_1 = _a.sent();\n Log.error(\"Error getting item \".concat(key, \" from localStorage:\"), error_1);\n return [2 /*return*/, null];\n case 3: return [2 /*return*/];\n }\n });\n}); };\nexport var setItem = function (key, value) { return __awaiter(void 0, void 0, void 0, function () {\n var error_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, storage.setItem(key, value)];\n case 1:\n _a.sent();\n return [3 /*break*/, 3];\n case 2:\n error_2 = _a.sent();\n Log.error(\"Error setting item \".concat(key, \" in localStorage:\"), error_2);\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/];\n }\n });\n}); };\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=crypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../dist/core/crypto.js"],"names":[],"mappings":"AAAA","file":"crypto.js","sourcesContent":["export {};\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../dist/core/storage.js"],"names":[],"mappings":"AAAA","file":"storage.js","sourcesContent":["export {};\n"]}