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.
- package/README.md +12 -0
- package/es5_dist/adapters/adapter.browser.js +3 -0
- package/es5_dist/adapters/adapter.browser.js.map +1 -0
- package/es5_dist/adapters/browser.js +117 -0
- package/es5_dist/adapters/browser.js.map +1 -0
- package/es5_dist/adapters/crypto.browser.js +11 -0
- package/es5_dist/adapters/crypto.browser.js.map +1 -0
- package/es5_dist/browser/browser.js +49 -0
- package/es5_dist/browser/browser.js.map +1 -0
- package/es5_dist/browser/cookies.js +36 -0
- package/es5_dist/browser/cookies.js.map +1 -0
- package/es5_dist/browser/persist.js +549 -0
- package/es5_dist/browser/persist.js.map +1 -0
- package/es5_dist/core/crypto.js +2 -0
- package/es5_dist/core/crypto.js.map +1 -0
- package/es5_dist/core/storage.js +2 -0
- package/es5_dist/core/storage.js.map +1 -0
- package/es5_dist/http.js +133 -0
- package/es5_dist/http.js.map +1 -0
- package/{dist → es5_dist}/interfaces.js +9 -7
- package/es5_dist/interfaces.js.map +1 -0
- package/es5_dist/jobqueue.js +484 -0
- package/es5_dist/jobqueue.js.map +1 -0
- package/es5_dist/kochava.js +790 -0
- package/es5_dist/kochava.js.map +1 -0
- package/es5_dist/measurementEvent.js +253 -0
- package/es5_dist/measurementEvent.js.map +1 -0
- package/es5_dist/payloads/event.js +192 -0
- package/es5_dist/payloads/event.js.map +1 -0
- package/es5_dist/payloads/identityLink.js +170 -0
- package/es5_dist/payloads/identityLink.js.map +1 -0
- package/es5_dist/payloads/install.js +324 -0
- package/es5_dist/payloads/install.js.map +1 -0
- package/es5_dist/payloads/kvinit.js +296 -0
- package/es5_dist/payloads/kvinit.js.map +1 -0
- package/{dist → es5_dist}/payloads/payload.js +9 -9
- package/es5_dist/payloads/payload.js.map +1 -0
- package/es5_dist/polyfills/browser.js +3 -0
- package/es5_dist/polyfills/browser.js.map +1 -0
- package/es5_dist/utils/log.js +140 -0
- package/es5_dist/utils/log.js.map +1 -0
- package/es5_dist/utils/utils.js +26 -0
- package/es5_dist/utils/utils.js.map +1 -0
- package/package.json +4 -4
- package/dist/browser/browser.d.ts +0 -8
- package/dist/browser/browser.js +0 -40
- package/dist/browser/cookies.d.ts +0 -3
- package/dist/browser/cookies.js +0 -40
- package/dist/browser/persist.d.ts +0 -33
- package/dist/browser/persist.js +0 -195
- package/dist/http.d.ts +0 -6
- package/dist/http.js +0 -23
- package/dist/interfaces.d.ts +0 -117
- package/dist/jobqueue.d.ts +0 -35
- package/dist/jobqueue.js +0 -220
- package/dist/kochava.d.ts +0 -52
- package/dist/kochava.js +0 -477
- package/dist/payloads/event.d.ts +0 -6
- package/dist/payloads/event.js +0 -92
- package/dist/payloads/identityLink.d.ts +0 -7
- package/dist/payloads/identityLink.js +0 -73
- package/dist/payloads/install.d.ts +0 -6
- package/dist/payloads/install.js +0 -148
- package/dist/payloads/kvinit.d.ts +0 -5
- package/dist/payloads/kvinit.js +0 -134
- package/dist/payloads/payload.d.ts +0 -33
- package/dist/utils/log.d.ts +0 -30
- package/dist/utils/log.js +0 -104
- package/dist/utils/utils.d.ts +0 -5
- 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 @@
|
|
|
1
|
+
{"version":3,"sources":["../../dist/core/crypto.js"],"names":[],"mappings":"AAAA","file":"crypto.js","sourcesContent":["export {};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../dist/core/storage.js"],"names":[],"mappings":"AAAA","file":"storage.js","sourcesContent":["export {};\n"]}
|