kv-test-lib 1.0.25 → 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 -475
- 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,484 @@
|
|
|
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 Event from "./payloads/event";
|
|
88
|
+
import * as IdLink from "./payloads/identityLink";
|
|
89
|
+
import { Log } from "./utils/log";
|
|
90
|
+
import { uuidv4 } from "./utils/utils";
|
|
91
|
+
import { PersistKey, updatePersistedValue, getItem } from "./browser/persist";
|
|
92
|
+
function jobIsEventJob(obj) {
|
|
93
|
+
return 'eventName' in obj;
|
|
94
|
+
}
|
|
95
|
+
function jobIsIdLinkJob(obj) {
|
|
96
|
+
return 'idLink' in obj;
|
|
97
|
+
}
|
|
98
|
+
var JobQueue = /** @class */function () {
|
|
99
|
+
function JobQueue() {
|
|
100
|
+
this.eventQueue = [];
|
|
101
|
+
this.idLinkQueue = [];
|
|
102
|
+
this.processing = false;
|
|
103
|
+
this.stopped = false;
|
|
104
|
+
this.paused = false;
|
|
105
|
+
}
|
|
106
|
+
// Persist the entire in-memory event queue to storage (eliminates race conditions)
|
|
107
|
+
JobQueue.prototype.persistEventQueue = function () {
|
|
108
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
109
|
+
return __generator(this, function (_a) {
|
|
110
|
+
switch (_a.label) {
|
|
111
|
+
case 0:
|
|
112
|
+
return [4 /*yield*/, updatePersistedValue(PersistKey.EventQueue, JSON.stringify(this.eventQueue), false)];
|
|
113
|
+
case 1:
|
|
114
|
+
_a.sent();
|
|
115
|
+
return [2 /*return*/];
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
};
|
|
120
|
+
// Persist the entire in-memory idLink queue to storage (eliminates race conditions)
|
|
121
|
+
JobQueue.prototype.persistIdLinkQueue = function () {
|
|
122
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
123
|
+
return __generator(this, function (_a) {
|
|
124
|
+
switch (_a.label) {
|
|
125
|
+
case 0:
|
|
126
|
+
return [4 /*yield*/, updatePersistedValue(PersistKey.IdLinkQueue, JSON.stringify(this.idLinkQueue), false)];
|
|
127
|
+
case 1:
|
|
128
|
+
_a.sent();
|
|
129
|
+
return [2 /*return*/];
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
};
|
|
134
|
+
// Public method to persist idLink queue (used by install success handler)
|
|
135
|
+
JobQueue.prototype.persistIdLinkQueuePublic = function () {
|
|
136
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
137
|
+
return __generator(this, function (_a) {
|
|
138
|
+
switch (_a.label) {
|
|
139
|
+
case 0:
|
|
140
|
+
return [4 /*yield*/, this.persistIdLinkQueue()];
|
|
141
|
+
case 1:
|
|
142
|
+
_a.sent();
|
|
143
|
+
return [2 /*return*/];
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
};
|
|
148
|
+
JobQueue.prototype.start = function (instance) {
|
|
149
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
150
|
+
var _a, _b, _c, _d, _e, _f;
|
|
151
|
+
return __generator(this, function (_g) {
|
|
152
|
+
switch (_g.label) {
|
|
153
|
+
case 0:
|
|
154
|
+
_a = this;
|
|
155
|
+
_c = (_b = JSON).parse;
|
|
156
|
+
return [4 /*yield*/, getItem(PersistKey.EventQueue)];
|
|
157
|
+
case 1:
|
|
158
|
+
_a.eventQueue = _c.apply(_b, [_g.sent()]) || [];
|
|
159
|
+
_d = this;
|
|
160
|
+
_f = (_e = JSON).parse;
|
|
161
|
+
return [4 /*yield*/, getItem(PersistKey.IdLinkQueue)];
|
|
162
|
+
case 2:
|
|
163
|
+
_d.idLinkQueue = _f.apply(_e, [_g.sent()]) || [];
|
|
164
|
+
return [4 /*yield*/, this.updateEventJobs(instance)];
|
|
165
|
+
case 3:
|
|
166
|
+
_g.sent();
|
|
167
|
+
return [4 /*yield*/, this.updateIdLinkJobs(instance)];
|
|
168
|
+
case 4:
|
|
169
|
+
_g.sent();
|
|
170
|
+
Log.trace("Starting Event Queue", JSON.parse(JSON.stringify(this.eventQueue)));
|
|
171
|
+
Log.trace("Starting IdLink Queue", JSON.parse(JSON.stringify(this.idLinkQueue)));
|
|
172
|
+
this.stopped = false;
|
|
173
|
+
this.paused = false;
|
|
174
|
+
return [4 /*yield*/, this.dequeueJob(instance)];
|
|
175
|
+
case 5:
|
|
176
|
+
_g.sent();
|
|
177
|
+
return [2 /*return*/];
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
});
|
|
181
|
+
};
|
|
182
|
+
JobQueue.prototype.stop = function () {
|
|
183
|
+
this.stopped = true;
|
|
184
|
+
if (this.timeOut) clearTimeout(this.timeOut);
|
|
185
|
+
this.processing = false;
|
|
186
|
+
};
|
|
187
|
+
JobQueue.prototype.pause = function () {
|
|
188
|
+
this.paused = true;
|
|
189
|
+
};
|
|
190
|
+
JobQueue.prototype.enqueueEvent = function (instance, args) {
|
|
191
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
192
|
+
var eventName, eventData, eventPreStartBody, postStartBody, newJob, newEventJob;
|
|
193
|
+
return __generator(this, function (_a) {
|
|
194
|
+
switch (_a.label) {
|
|
195
|
+
case 0:
|
|
196
|
+
eventName = args[0];
|
|
197
|
+
eventData = args[1];
|
|
198
|
+
eventPreStartBody = Event.constructPreStart(instance, eventName, eventData);
|
|
199
|
+
if (!(instance.installDone && instance.kvinitDone)) return [3 /*break*/, 3];
|
|
200
|
+
postStartBody = Event.constructPostStart(instance, eventPreStartBody);
|
|
201
|
+
newJob = {
|
|
202
|
+
id: uuidv4(),
|
|
203
|
+
queuedBeforeStart: false,
|
|
204
|
+
preStartBody: eventPreStartBody,
|
|
205
|
+
postStartBody: postStartBody,
|
|
206
|
+
retries: 0,
|
|
207
|
+
eventName: eventName
|
|
208
|
+
};
|
|
209
|
+
this.eventQueue.push(newJob);
|
|
210
|
+
return [4 /*yield*/, this.persistEventQueue()];
|
|
211
|
+
case 1:
|
|
212
|
+
_a.sent();
|
|
213
|
+
return [4 /*yield*/, this.dequeueJob(instance)];
|
|
214
|
+
case 2:
|
|
215
|
+
_a.sent();
|
|
216
|
+
return [2 /*return*/];
|
|
217
|
+
case 3:
|
|
218
|
+
newEventJob = {
|
|
219
|
+
id: uuidv4(),
|
|
220
|
+
queuedBeforeStart: true,
|
|
221
|
+
preStartBody: eventPreStartBody,
|
|
222
|
+
postStartBody: undefined,
|
|
223
|
+
retries: 0,
|
|
224
|
+
eventName: eventName
|
|
225
|
+
};
|
|
226
|
+
this.eventQueue.push(newEventJob);
|
|
227
|
+
return [4 /*yield*/, this.persistEventQueue()];
|
|
228
|
+
case 4:
|
|
229
|
+
_a.sent();
|
|
230
|
+
return [2 /*return*/];
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
});
|
|
234
|
+
};
|
|
235
|
+
JobQueue.prototype.enqueueIdLink = function (instance, idLink) {
|
|
236
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
237
|
+
var idLinkPreStartBody, postStartBody, newJob_1, newJob;
|
|
238
|
+
return __generator(this, function (_a) {
|
|
239
|
+
switch (_a.label) {
|
|
240
|
+
case 0:
|
|
241
|
+
idLinkPreStartBody = IdLink.constructPreStart(instance, idLink);
|
|
242
|
+
if (!(instance.installDone && instance.kvinitDone)) return [3 /*break*/, 3];
|
|
243
|
+
postStartBody = IdLink.constructPostStart(instance, idLinkPreStartBody);
|
|
244
|
+
newJob_1 = {
|
|
245
|
+
id: uuidv4(),
|
|
246
|
+
queuedBeforeStart: false,
|
|
247
|
+
preStartBody: idLinkPreStartBody,
|
|
248
|
+
postStartBody: postStartBody,
|
|
249
|
+
retries: 0,
|
|
250
|
+
idLink: idLink
|
|
251
|
+
};
|
|
252
|
+
this.idLinkQueue.push(newJob_1);
|
|
253
|
+
return [4 /*yield*/, this.persistIdLinkQueue()];
|
|
254
|
+
case 1:
|
|
255
|
+
_a.sent();
|
|
256
|
+
return [4 /*yield*/, this.dequeueJob(instance)];
|
|
257
|
+
case 2:
|
|
258
|
+
_a.sent();
|
|
259
|
+
return [2 /*return*/];
|
|
260
|
+
case 3:
|
|
261
|
+
newJob = {
|
|
262
|
+
id: uuidv4(),
|
|
263
|
+
queuedBeforeStart: true,
|
|
264
|
+
preStartBody: idLinkPreStartBody,
|
|
265
|
+
postStartBody: undefined,
|
|
266
|
+
retries: 0,
|
|
267
|
+
idLink: idLink
|
|
268
|
+
};
|
|
269
|
+
this.idLinkQueue.push(newJob);
|
|
270
|
+
return [4 /*yield*/, this.persistIdLinkQueue()];
|
|
271
|
+
case 4:
|
|
272
|
+
_a.sent();
|
|
273
|
+
return [2 /*return*/];
|
|
274
|
+
}
|
|
275
|
+
});
|
|
276
|
+
});
|
|
277
|
+
};
|
|
278
|
+
JobQueue.prototype.dequeueJob = function (instance) {
|
|
279
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
280
|
+
var idLinkJob, result, eventJob, result;
|
|
281
|
+
return __generator(this, function (_a) {
|
|
282
|
+
switch (_a.label) {
|
|
283
|
+
case 0:
|
|
284
|
+
// If queue is busy, prev job not finished
|
|
285
|
+
if (this.processing) return [2 /*return*/, false];
|
|
286
|
+
// If the queue is paused, do not dequeue a new job
|
|
287
|
+
if (this.paused) return [2 /*return*/, false];
|
|
288
|
+
// If the queue is stopped do not dequeue a new job
|
|
289
|
+
if (this.stopped) {
|
|
290
|
+
return [2 /*return*/, false];
|
|
291
|
+
}
|
|
292
|
+
idLinkJob = this.idLinkQueue.shift();
|
|
293
|
+
if (!idLinkJob) return [3 /*break*/, 4];
|
|
294
|
+
// handle idlinkjob
|
|
295
|
+
Log.trace("Dequeued Job: ", idLinkJob);
|
|
296
|
+
this.processing = true;
|
|
297
|
+
return [4 /*yield*/, this.processJob(instance, idLinkJob)];
|
|
298
|
+
case 1:
|
|
299
|
+
result = _a.sent();
|
|
300
|
+
if (this.stopped) {
|
|
301
|
+
return [2 /*return*/, true];
|
|
302
|
+
}
|
|
303
|
+
this.processing = false;
|
|
304
|
+
if (!result) return [3 /*break*/, 4];
|
|
305
|
+
return [4 /*yield*/, this.persistIdLinkQueue()];
|
|
306
|
+
case 2:
|
|
307
|
+
_a.sent();
|
|
308
|
+
return [4 /*yield*/, this.dequeueJob(instance)];
|
|
309
|
+
case 3:
|
|
310
|
+
return [2 /*return*/, _a.sent()];
|
|
311
|
+
case 4:
|
|
312
|
+
eventJob = this.eventQueue.shift();
|
|
313
|
+
if (!eventJob) return [3 /*break*/, 8];
|
|
314
|
+
//handle eventJob
|
|
315
|
+
Log.trace("Dequeued Job: ", eventJob);
|
|
316
|
+
// Process the job
|
|
317
|
+
this.processing = true;
|
|
318
|
+
return [4 /*yield*/, this.processJob(instance, eventJob)];
|
|
319
|
+
case 5:
|
|
320
|
+
result = _a.sent();
|
|
321
|
+
if (this.stopped) {
|
|
322
|
+
return [2 /*return*/, true];
|
|
323
|
+
}
|
|
324
|
+
this.processing = false;
|
|
325
|
+
if (!result) return [3 /*break*/, 8];
|
|
326
|
+
return [4 /*yield*/, this.persistEventQueue()];
|
|
327
|
+
case 6:
|
|
328
|
+
_a.sent();
|
|
329
|
+
return [4 /*yield*/, this.dequeueJob(instance)];
|
|
330
|
+
case 7:
|
|
331
|
+
return [2 /*return*/, _a.sent()];
|
|
332
|
+
case 8:
|
|
333
|
+
// If neither queue had a job, break out of recursion
|
|
334
|
+
if (!idLinkJob && !eventJob) return [2 /*return*/, false];
|
|
335
|
+
return [2 /*return*/, true];
|
|
336
|
+
}
|
|
337
|
+
});
|
|
338
|
+
});
|
|
339
|
+
};
|
|
340
|
+
JobQueue.prototype.processJob = function (instance, job) {
|
|
341
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
342
|
+
var _i, _a, denyName, _b, _c, denyIdLinkKey, success, _loop_1, this_1, state_1;
|
|
343
|
+
var _this = this;
|
|
344
|
+
return __generator(this, function (_d) {
|
|
345
|
+
switch (_d.label) {
|
|
346
|
+
case 0:
|
|
347
|
+
if (jobIsEventJob(job)) {
|
|
348
|
+
for (_i = 0, _a = instance.kochavaConfig.privacy.deny_event_names; _i < _a.length; _i++) {
|
|
349
|
+
denyName = _a[_i];
|
|
350
|
+
if (denyName === job.eventName) {
|
|
351
|
+
Log.debug("Denied event_name ".concat(denyName, ", dropping request."));
|
|
352
|
+
return [2 /*return*/, true];
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
} else if (jobIsIdLinkJob(job)) {
|
|
356
|
+
for (_b = 0, _c = instance.kochavaConfig.privacy.deny_identity_links; _b < _c.length; _b++) {
|
|
357
|
+
denyIdLinkKey = _c[_b];
|
|
358
|
+
if (denyIdLinkKey === Object.keys(job.idLink)[0]) {
|
|
359
|
+
Log.debug("Denied identity_link ".concat(denyIdLinkKey, ", dropping request."));
|
|
360
|
+
return [2 /*return*/, true];
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
success = false;
|
|
365
|
+
_loop_1 = function () {
|
|
366
|
+
var retryWaterfall, retryIndex, retrySec_1;
|
|
367
|
+
return __generator(this, function (_e) {
|
|
368
|
+
switch (_e.label) {
|
|
369
|
+
case 0:
|
|
370
|
+
if (!!instance.sdkDisabled) return [3 /*break*/, 2];
|
|
371
|
+
return [4 /*yield*/, this_1.attemptJob(instance, job)];
|
|
372
|
+
case 1:
|
|
373
|
+
success = _e.sent();
|
|
374
|
+
return [3 /*break*/, 3];
|
|
375
|
+
case 2:
|
|
376
|
+
success = true;
|
|
377
|
+
_e.label = 3;
|
|
378
|
+
case 3:
|
|
379
|
+
// If our job succeeded
|
|
380
|
+
if (success) {
|
|
381
|
+
// Job Done
|
|
382
|
+
Log.trace("Job processed successfully:", job);
|
|
383
|
+
return [2 /*return*/, { value: true }];
|
|
384
|
+
}
|
|
385
|
+
if (!!this_1.stopped) return [3 /*break*/, 5];
|
|
386
|
+
retryWaterfall = instance.kochavaConfig.networking.retry_waterfall;
|
|
387
|
+
retryIndex = job.retries > retryWaterfall.length - 1 ? retryWaterfall.length - 1 : job.retries;
|
|
388
|
+
retrySec_1 = retryWaterfall[retryIndex];
|
|
389
|
+
Log.error("Job failed, attempting again in ".concat(retrySec_1, " seconds"));
|
|
390
|
+
return [4 /*yield*/, new Promise(function (resolve) {
|
|
391
|
+
return _this.timeOut = setTimeout(resolve, retrySec_1 * 1000);
|
|
392
|
+
})];
|
|
393
|
+
case 4:
|
|
394
|
+
_e.sent();
|
|
395
|
+
job.retries++;
|
|
396
|
+
_e.label = 5;
|
|
397
|
+
case 5:
|
|
398
|
+
return [2 /*return*/];
|
|
399
|
+
}
|
|
400
|
+
});
|
|
401
|
+
};
|
|
402
|
+
this_1 = this;
|
|
403
|
+
_d.label = 1;
|
|
404
|
+
case 1:
|
|
405
|
+
return [5 /*yield**/, _loop_1()];
|
|
406
|
+
case 2:
|
|
407
|
+
state_1 = _d.sent();
|
|
408
|
+
if (typeof state_1 === "object") return [2 /*return*/, state_1.value];
|
|
409
|
+
_d.label = 3;
|
|
410
|
+
case 3:
|
|
411
|
+
if (!success && !this.stopped) return [3 /*break*/, 1];
|
|
412
|
+
_d.label = 4;
|
|
413
|
+
case 4:
|
|
414
|
+
// Job Canceled
|
|
415
|
+
return [2 /*return*/, true];
|
|
416
|
+
}
|
|
417
|
+
});
|
|
418
|
+
});
|
|
419
|
+
};
|
|
420
|
+
JobQueue.prototype.attemptJob = function (instance, job) {
|
|
421
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
422
|
+
return __generator(this, function (_a) {
|
|
423
|
+
switch (_a.label) {
|
|
424
|
+
case 0:
|
|
425
|
+
if (!(job.preStartBody.action === "event")) return [3 /*break*/, 2];
|
|
426
|
+
return [4 /*yield*/, Event.send(instance, job.preStartBody, job.postStartBody)];
|
|
427
|
+
case 1:
|
|
428
|
+
return [2 /*return*/, _a.sent()];
|
|
429
|
+
case 2:
|
|
430
|
+
if (!(job.preStartBody.action === "identityLink")) return [3 /*break*/, 4];
|
|
431
|
+
return [4 /*yield*/, IdLink.send(instance, job)];
|
|
432
|
+
case 3:
|
|
433
|
+
return [2 /*return*/, _a.sent()];
|
|
434
|
+
case 4:
|
|
435
|
+
Log.warn("Invalid action in job from jobqueue, cancelling.");
|
|
436
|
+
return [2 /*return*/, true];
|
|
437
|
+
}
|
|
438
|
+
});
|
|
439
|
+
});
|
|
440
|
+
};
|
|
441
|
+
JobQueue.prototype.updateEventJobs = function (instance) {
|
|
442
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
443
|
+
var _i, _a, job;
|
|
444
|
+
return __generator(this, function (_b) {
|
|
445
|
+
switch (_b.label) {
|
|
446
|
+
case 0:
|
|
447
|
+
for (_i = 0, _a = this.eventQueue; _i < _a.length; _i++) {
|
|
448
|
+
job = _a[_i];
|
|
449
|
+
if (job.queuedBeforeStart) {
|
|
450
|
+
job.postStartBody = Event.constructPostStart(instance, job.preStartBody);
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
return [4 /*yield*/, this.persistEventQueue()];
|
|
454
|
+
case 1:
|
|
455
|
+
_b.sent();
|
|
456
|
+
return [2 /*return*/];
|
|
457
|
+
}
|
|
458
|
+
});
|
|
459
|
+
});
|
|
460
|
+
};
|
|
461
|
+
JobQueue.prototype.updateIdLinkJobs = function (instance) {
|
|
462
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
463
|
+
var _i, _a, job;
|
|
464
|
+
return __generator(this, function (_b) {
|
|
465
|
+
switch (_b.label) {
|
|
466
|
+
case 0:
|
|
467
|
+
for (_i = 0, _a = this.idLinkQueue; _i < _a.length; _i++) {
|
|
468
|
+
job = _a[_i];
|
|
469
|
+
if (job.queuedBeforeStart) {
|
|
470
|
+
job.postStartBody = IdLink.constructPostStart(instance, job.preStartBody);
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
return [4 /*yield*/, this.persistIdLinkQueue()];
|
|
474
|
+
case 1:
|
|
475
|
+
_b.sent();
|
|
476
|
+
return [2 /*return*/];
|
|
477
|
+
}
|
|
478
|
+
});
|
|
479
|
+
});
|
|
480
|
+
};
|
|
481
|
+
return JobQueue;
|
|
482
|
+
}();
|
|
483
|
+
export default JobQueue;
|
|
484
|
+
//# sourceMappingURL=jobqueue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../dist/jobqueue.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","Event","IdLink","Log","uuidv4","PersistKey","updatePersistedValue","getItem","jobIsEventJob","obj","jobIsIdLinkJob","JobQueue","eventQueue","idLinkQueue","processing","stopped","paused","prototype","persistEventQueue","_a","EventQueue","JSON","stringify","persistIdLinkQueue","IdLinkQueue","persistIdLinkQueuePublic","start","instance","_b","_c","_d","_e","_f","_g","parse","updateEventJobs","updateIdLinkJobs","trace","dequeueJob","stop","timeOut","clearTimeout","pause","enqueueEvent","args","eventName","eventData","eventPreStartBody","postStartBody","newJob","newEventJob","constructPreStart","installDone","kvinitDone","constructPostStart","id","queuedBeforeStart","preStartBody","retries","undefined","enqueueIdLink","idLink","idLinkPreStartBody","newJob_1","idLinkJob","eventJob","shift","processJob","job","_i","denyName","denyIdLinkKey","success","_loop_1","this_1","state_1","_this","kochavaConfig","privacy","deny_event_names","debug","concat","deny_identity_links","Object","keys","retryWaterfall","retryIndex","retrySec_1","sdkDisabled","attemptJob","networking","retry_waterfall","error","setTimeout","action","send","warn"],"mappings":"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","file":"jobqueue.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 Event from \"./payloads/event\";\nimport * as IdLink from \"./payloads/identityLink\";\nimport { Log } from \"./utils/log\";\nimport { uuidv4 } from \"./utils/utils\";\nimport { PersistKey, updatePersistedValue, getItem } from \"./browser/persist\";\nfunction jobIsEventJob(obj) {\n return 'eventName' in obj;\n}\nfunction jobIsIdLinkJob(obj) {\n return 'idLink' in obj;\n}\nvar JobQueue = /** @class */ (function () {\n function JobQueue() {\n this.eventQueue = [];\n this.idLinkQueue = [];\n this.processing = false;\n this.stopped = false;\n this.paused = false;\n }\n // Persist the entire in-memory event queue to storage (eliminates race conditions)\n JobQueue.prototype.persistEventQueue = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, updatePersistedValue(PersistKey.EventQueue, JSON.stringify(this.eventQueue), false)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n // Persist the entire in-memory idLink queue to storage (eliminates race conditions)\n JobQueue.prototype.persistIdLinkQueue = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, updatePersistedValue(PersistKey.IdLinkQueue, JSON.stringify(this.idLinkQueue), false)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n // Public method to persist idLink queue (used by install success handler)\n JobQueue.prototype.persistIdLinkQueuePublic = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.persistIdLinkQueue()];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n JobQueue.prototype.start = function (instance) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b, _c, _d, _e, _f;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n _a = this;\n _c = (_b = JSON).parse;\n return [4 /*yield*/, getItem(PersistKey.EventQueue)];\n case 1:\n _a.eventQueue = _c.apply(_b, [_g.sent()]) || [];\n _d = this;\n _f = (_e = JSON).parse;\n return [4 /*yield*/, getItem(PersistKey.IdLinkQueue)];\n case 2:\n _d.idLinkQueue = _f.apply(_e, [_g.sent()]) || [];\n return [4 /*yield*/, this.updateEventJobs(instance)];\n case 3:\n _g.sent();\n return [4 /*yield*/, this.updateIdLinkJobs(instance)];\n case 4:\n _g.sent();\n Log.trace(\"Starting Event Queue\", JSON.parse(JSON.stringify(this.eventQueue)));\n Log.trace(\"Starting IdLink Queue\", JSON.parse(JSON.stringify(this.idLinkQueue)));\n this.stopped = false;\n this.paused = false;\n return [4 /*yield*/, this.dequeueJob(instance)];\n case 5:\n _g.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n JobQueue.prototype.stop = function () {\n this.stopped = true;\n if (this.timeOut)\n clearTimeout(this.timeOut);\n this.processing = false;\n };\n JobQueue.prototype.pause = function () {\n this.paused = true;\n };\n JobQueue.prototype.enqueueEvent = function (instance, args) {\n return __awaiter(this, void 0, void 0, function () {\n var eventName, eventData, eventPreStartBody, postStartBody, newJob, newEventJob;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n eventName = args[0];\n eventData = args[1];\n eventPreStartBody = Event.constructPreStart(instance, eventName, eventData);\n if (!(instance.installDone && instance.kvinitDone)) return [3 /*break*/, 3];\n postStartBody = Event.constructPostStart(instance, eventPreStartBody);\n newJob = {\n id: uuidv4(),\n queuedBeforeStart: false,\n preStartBody: eventPreStartBody,\n postStartBody: postStartBody,\n retries: 0,\n eventName: eventName,\n };\n this.eventQueue.push(newJob);\n return [4 /*yield*/, this.persistEventQueue()];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.dequeueJob(instance)];\n case 2:\n _a.sent();\n return [2 /*return*/];\n case 3:\n newEventJob = {\n id: uuidv4(),\n queuedBeforeStart: true,\n preStartBody: eventPreStartBody,\n postStartBody: undefined,\n retries: 0,\n eventName: eventName,\n };\n this.eventQueue.push(newEventJob);\n return [4 /*yield*/, this.persistEventQueue()];\n case 4:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n JobQueue.prototype.enqueueIdLink = function (instance, idLink) {\n return __awaiter(this, void 0, void 0, function () {\n var idLinkPreStartBody, postStartBody, newJob_1, newJob;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n idLinkPreStartBody = IdLink.constructPreStart(instance, idLink);\n if (!(instance.installDone && instance.kvinitDone)) return [3 /*break*/, 3];\n postStartBody = IdLink.constructPostStart(instance, idLinkPreStartBody);\n newJob_1 = {\n id: uuidv4(),\n queuedBeforeStart: false,\n preStartBody: idLinkPreStartBody,\n postStartBody: postStartBody,\n retries: 0,\n idLink: idLink,\n };\n this.idLinkQueue.push(newJob_1);\n return [4 /*yield*/, this.persistIdLinkQueue()];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.dequeueJob(instance)];\n case 2:\n _a.sent();\n return [2 /*return*/];\n case 3:\n newJob = {\n id: uuidv4(),\n queuedBeforeStart: true,\n preStartBody: idLinkPreStartBody,\n postStartBody: undefined,\n retries: 0,\n idLink: idLink,\n };\n this.idLinkQueue.push(newJob);\n return [4 /*yield*/, this.persistIdLinkQueue()];\n case 4:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n JobQueue.prototype.dequeueJob = function (instance) {\n return __awaiter(this, void 0, void 0, function () {\n var idLinkJob, result, eventJob, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // If queue is busy, prev job not finished\n if (this.processing)\n return [2 /*return*/, false];\n // If the queue is paused, do not dequeue a new job\n if (this.paused)\n return [2 /*return*/, false];\n // If the queue is stopped do not dequeue a new job\n if (this.stopped) {\n return [2 /*return*/, false];\n }\n idLinkJob = this.idLinkQueue.shift();\n if (!idLinkJob) return [3 /*break*/, 4];\n // handle idlinkjob\n Log.trace(\"Dequeued Job: \", idLinkJob);\n this.processing = true;\n return [4 /*yield*/, this.processJob(instance, idLinkJob)];\n case 1:\n result = _a.sent();\n if (this.stopped) {\n return [2 /*return*/, true];\n }\n this.processing = false;\n if (!result) return [3 /*break*/, 4];\n return [4 /*yield*/, this.persistIdLinkQueue()];\n case 2:\n _a.sent();\n return [4 /*yield*/, this.dequeueJob(instance)];\n case 3: return [2 /*return*/, _a.sent()];\n case 4:\n eventJob = this.eventQueue.shift();\n if (!eventJob) return [3 /*break*/, 8];\n //handle eventJob\n Log.trace(\"Dequeued Job: \", eventJob);\n // Process the job\n this.processing = true;\n return [4 /*yield*/, this.processJob(instance, eventJob)];\n case 5:\n result = _a.sent();\n if (this.stopped) {\n return [2 /*return*/, true];\n }\n this.processing = false;\n if (!result) return [3 /*break*/, 8];\n return [4 /*yield*/, this.persistEventQueue()];\n case 6:\n _a.sent();\n return [4 /*yield*/, this.dequeueJob(instance)];\n case 7: return [2 /*return*/, _a.sent()];\n case 8:\n // If neither queue had a job, break out of recursion\n if (!idLinkJob && !eventJob)\n return [2 /*return*/, false];\n return [2 /*return*/, true];\n }\n });\n });\n };\n JobQueue.prototype.processJob = function (instance, job) {\n return __awaiter(this, void 0, void 0, function () {\n var _i, _a, denyName, _b, _c, denyIdLinkKey, success, _loop_1, this_1, state_1;\n var _this = this;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n if (jobIsEventJob(job)) {\n for (_i = 0, _a = instance.kochavaConfig.privacy.deny_event_names; _i < _a.length; _i++) {\n denyName = _a[_i];\n if (denyName === job.eventName) {\n Log.debug(\"Denied event_name \".concat(denyName, \", dropping request.\"));\n return [2 /*return*/, true];\n }\n }\n }\n else if (jobIsIdLinkJob(job)) {\n for (_b = 0, _c = instance.kochavaConfig.privacy.deny_identity_links; _b < _c.length; _b++) {\n denyIdLinkKey = _c[_b];\n if (denyIdLinkKey === Object.keys(job.idLink)[0]) {\n Log.debug(\"Denied identity_link \".concat(denyIdLinkKey, \", dropping request.\"));\n return [2 /*return*/, true];\n }\n }\n }\n success = false;\n _loop_1 = function () {\n var retryWaterfall, retryIndex, retrySec_1;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n if (!!instance.sdkDisabled) return [3 /*break*/, 2];\n return [4 /*yield*/, this_1.attemptJob(instance, job)];\n case 1:\n success = _e.sent();\n return [3 /*break*/, 3];\n case 2:\n success = true;\n _e.label = 3;\n case 3:\n // If our job succeeded\n if (success) {\n // Job Done\n Log.trace(\"Job processed successfully:\", job);\n return [2 /*return*/, { value: true }];\n }\n if (!!this_1.stopped) return [3 /*break*/, 5];\n retryWaterfall = instance.kochavaConfig.networking.retry_waterfall;\n retryIndex = (job.retries > retryWaterfall.length - 1) ?\n retryWaterfall.length - 1 : job.retries;\n retrySec_1 = retryWaterfall[retryIndex];\n Log.error(\"Job failed, attempting again in \".concat(retrySec_1, \" seconds\"));\n return [4 /*yield*/, new Promise(function (resolve) { return _this.timeOut = setTimeout(resolve, retrySec_1 * 1000); })];\n case 4:\n _e.sent();\n job.retries++;\n _e.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n };\n this_1 = this;\n _d.label = 1;\n case 1: return [5 /*yield**/, _loop_1()];\n case 2:\n state_1 = _d.sent();\n if (typeof state_1 === \"object\")\n return [2 /*return*/, state_1.value];\n _d.label = 3;\n case 3:\n if (!success && !this.stopped) return [3 /*break*/, 1];\n _d.label = 4;\n case 4: \n // Job Canceled\n return [2 /*return*/, true];\n }\n });\n });\n };\n JobQueue.prototype.attemptJob = function (instance, job) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(job.preStartBody.action === \"event\")) return [3 /*break*/, 2];\n return [4 /*yield*/, Event.send(instance, job.preStartBody, job.postStartBody)];\n case 1: return [2 /*return*/, _a.sent()];\n case 2:\n if (!(job.preStartBody.action === \"identityLink\")) return [3 /*break*/, 4];\n return [4 /*yield*/, IdLink.send(instance, job)];\n case 3: return [2 /*return*/, _a.sent()];\n case 4:\n Log.warn(\"Invalid action in job from jobqueue, cancelling.\");\n return [2 /*return*/, true];\n }\n });\n });\n };\n JobQueue.prototype.updateEventJobs = function (instance) {\n return __awaiter(this, void 0, void 0, function () {\n var _i, _a, job;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n for (_i = 0, _a = this.eventQueue; _i < _a.length; _i++) {\n job = _a[_i];\n if (job.queuedBeforeStart) {\n job.postStartBody = Event.constructPostStart(instance, job.preStartBody);\n }\n }\n return [4 /*yield*/, this.persistEventQueue()];\n case 1:\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n JobQueue.prototype.updateIdLinkJobs = function (instance) {\n return __awaiter(this, void 0, void 0, function () {\n var _i, _a, job;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n for (_i = 0, _a = this.idLinkQueue; _i < _a.length; _i++) {\n job = _a[_i];\n if (job.queuedBeforeStart) {\n job.postStartBody = IdLink.constructPostStart(instance, job.preStartBody);\n }\n }\n return [4 /*yield*/, this.persistIdLinkQueue()];\n case 1:\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n return JobQueue;\n}());\nexport default JobQueue;\n"]}
|