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.

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 -475
  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,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":"AAAA;;;;AAIA,IAAIA,YAAa,QAAQ,KAAKA,SAAd,IAA4B,UAAUC,OAAV,EAAmBC,UAAnB,EAA+BC,CAA/B,EAAkCC,SAAlC,EAA6C;AACrF,aAASC,KAAT,CAAeC,KAAf,EAAsB;AAAE,eAAOA,iBAAiBH,CAAjB,GAAqBG,KAArB,GAA6B,IAAIH,CAAJ,CAAM,UAAUI,OAAV,EAAmB;AAAEA,oBAAQD,KAAR;AAAiB,SAA5C,CAApC;AAAoF;AAC5G,WAAO,KAAKH,MAAMA,IAAIK,OAAV,CAAL,EAAyB,UAAUD,OAAV,EAAmBE,MAAnB,EAA2B;AACvD,iBAASC,SAAT,CAAmBJ,KAAnB,EAA0B;AAAE,gBAAI;AAAEK,qBAAKP,UAAUQ,IAAV,CAAeN,KAAf,CAAL;AAA8B,aAApC,CAAqC,OAAOO,CAAP,EAAU;AAAEJ,uBAAOI,CAAP;AAAY;AAAE;AAC3F,iBAASC,QAAT,CAAkBR,KAAlB,EAAyB;AAAE,gBAAI;AAAEK,qBAAKP,UAAU,OAAV,EAAmBE,KAAnB,CAAL;AAAkC,aAAxC,CAAyC,OAAOO,CAAP,EAAU;AAAEJ,uBAAOI,CAAP;AAAY;AAAE;AAC9F,iBAASF,IAAT,CAAcI,MAAd,EAAsB;AAAEA,mBAAOC,IAAP,GAAcT,QAAQQ,OAAOT,KAAf,CAAd,GAAsCD,MAAMU,OAAOT,KAAb,EAAoBW,IAApB,CAAyBP,SAAzB,EAAoCI,QAApC,CAAtC;AAAsF;AAC9GH,aAAK,CAACP,YAAYA,UAAUc,KAAV,CAAgBjB,OAAhB,EAAyBC,cAAc,EAAvC,CAAb,EAAyDU,IAAzD,EAAL;AACH,KALM,CAAP;AAMH,CARD;AASA,IAAIO,cAAe,QAAQ,KAAKA,WAAd,IAA8B,UAAUlB,OAAV,EAAmBmB,IAAnB,EAAyB;AACrE,QAAIC,IAAI,EAAEC,OAAO,CAAT,EAAYC,MAAM,YAAW;AAAE,gBAAIC,EAAE,CAAF,IAAO,CAAX,EAAc,MAAMA,EAAE,CAAF,CAAN,CAAY,OAAOA,EAAE,CAAF,CAAP;AAAc,SAAvE,EAAyEC,MAAM,EAA/E,EAAmFC,KAAK,EAAxF,EAAR;AAAA,QAAsGC,CAAtG;AAAA,QAAyGC,CAAzG;AAAA,QAA4GJ,CAA5G;AAAA,QAA+GK,CAA/G;AACA,WAAOA,IAAI,EAAEjB,MAAMkB,KAAK,CAAL,CAAR,EAAiB,SAASA,KAAK,CAAL,CAA1B,EAAmC,UAAUA,KAAK,CAAL,CAA7C,EAAJ,EAA4D,OAAOC,MAAP,KAAkB,UAAlB,KAAiCF,EAAEE,OAAOC,QAAT,IAAqB,YAAW;AAAE,eAAO,IAAP;AAAc,KAAjF,CAA5D,EAAgJH,CAAvJ;AACA,aAASC,IAAT,CAAcG,CAAd,EAAiB;AAAE,eAAO,UAAUC,CAAV,EAAa;AAAE,mBAAOvB,KAAK,CAACsB,CAAD,EAAIC,CAAJ,CAAL,CAAP;AAAsB,SAA5C;AAA+C;AAClE,aAASvB,IAAT,CAAcwB,EAAd,EAAkB;AACd,YAAIR,CAAJ,EAAO,MAAM,IAAIS,SAAJ,CAAc,iCAAd,CAAN;AACP,eAAOf,CAAP,EAAU,IAAI;AACV,gBAAIM,IAAI,CAAJ,EAAOC,MAAMJ,IAAIW,GAAG,CAAH,IAAQ,CAAR,GAAYP,EAAE,QAAF,CAAZ,GAA0BO,GAAG,CAAH,IAAQP,EAAE,OAAF,MAAe,CAACJ,IAAII,EAAE,QAAF,CAAL,KAAqBJ,EAAEa,IAAF,CAAOT,CAAP,CAArB,EAAgC,CAA/C,CAAR,GAA4DA,EAAEhB,IAAlG,KAA2G,CAAC,CAACY,IAAIA,EAAEa,IAAF,CAAOT,CAAP,EAAUO,GAAG,CAAH,CAAV,CAAL,EAAuBnB,IAA9I,EAAoJ,OAAOQ,CAAP;AACpJ,gBAAII,IAAI,CAAJ,EAAOJ,CAAX,EAAcW,KAAK,CAACA,GAAG,CAAH,IAAQ,CAAT,EAAYX,EAAElB,KAAd,CAAL;AACd,oBAAQ6B,GAAG,CAAH,CAAR;AACI,qBAAK,CAAL,CAAQ,KAAK,CAAL;AAAQX,wBAAIW,EAAJ,CAAQ;AACxB,qBAAK,CAAL;AAAQd,sBAAEC,KAAF,GAAW,OAAO,EAAEhB,OAAO6B,GAAG,CAAH,CAAT,EAAgBnB,MAAM,KAAtB,EAAP;AACnB,qBAAK,CAAL;AAAQK,sBAAEC,KAAF,GAAWM,IAAIO,GAAG,CAAH,CAAJ,CAAWA,KAAK,CAAC,CAAD,CAAL,CAAU;AACxC,qBAAK,CAAL;AAAQA,yBAAKd,EAAEK,GAAF,CAAMY,GAAN,EAAL,CAAkBjB,EAAEI,IAAF,CAAOa,GAAP,GAAc;AACxC;AACI,wBAAI,EAAEd,IAAIH,EAAEI,IAAN,EAAYD,IAAIA,EAAEe,MAAF,GAAW,CAAX,IAAgBf,EAAEA,EAAEe,MAAF,GAAW,CAAb,CAAlC,MAAuDJ,GAAG,CAAH,MAAU,CAAV,IAAeA,GAAG,CAAH,MAAU,CAAhF,CAAJ,EAAwF;AAAEd,4BAAI,CAAJ,CAAO;AAAW;AAC5G,wBAAIc,GAAG,CAAH,MAAU,CAAV,KAAgB,CAACX,CAAD,IAAOW,GAAG,CAAH,IAAQX,EAAE,CAAF,CAAR,IAAgBW,GAAG,CAAH,IAAQX,EAAE,CAAF,CAA/C,CAAJ,EAA2D;AAAEH,0BAAEC,KAAF,GAAUa,GAAG,CAAH,CAAV,CAAiB;AAAQ;AACtF,wBAAIA,GAAG,CAAH,MAAU,CAAV,IAAed,EAAEC,KAAF,GAAUE,EAAE,CAAF,CAA7B,EAAmC;AAAEH,0BAAEC,KAAF,GAAUE,EAAE,CAAF,CAAV,CAAgBA,IAAIW,EAAJ,CAAQ;AAAQ;AACrE,wBAAIX,KAAKH,EAAEC,KAAF,GAAUE,EAAE,CAAF,CAAnB,EAAyB;AAAEH,0BAAEC,KAAF,GAAUE,EAAE,CAAF,CAAV,CAAgBH,EAAEK,GAAF,CAAMc,IAAN,CAAWL,EAAX,EAAgB;AAAQ;AACnE,wBAAIX,EAAE,CAAF,CAAJ,EAAUH,EAAEK,GAAF,CAAMY,GAAN;AACVjB,sBAAEI,IAAF,CAAOa,GAAP,GAAc;AAXtB;AAaAH,iBAAKf,KAAKiB,IAAL,CAAUpC,OAAV,EAAmBoB,CAAnB,CAAL;AACH,SAjBS,CAiBR,OAAOR,CAAP,EAAU;AAAEsB,iBAAK,CAAC,CAAD,EAAItB,CAAJ,CAAL,CAAae,IAAI,CAAJ;AAAQ,SAjBzB,SAiBkC;AAAED,gBAAIH,IAAI,CAAR;AAAY;AAC1D,YAAIW,GAAG,CAAH,IAAQ,CAAZ,EAAe,MAAMA,GAAG,CAAH,CAAN,CAAa,OAAO,EAAE7B,OAAO6B,GAAG,CAAH,IAAQA,GAAG,CAAH,CAAR,GAAgB,KAAK,CAA9B,EAAiCnB,MAAM,IAAvC,EAAP;AAC/B;AACJ,CA1BD;AA2BA,OAAO,KAAKyB,KAAZ,MAAuB,kBAAvB;AACA,OAAO,KAAKC,MAAZ,MAAwB,yBAAxB;AACA,SAASC,GAAT,QAAoB,aAApB;AACA,SAASC,MAAT,QAAuB,eAAvB;AACA,SAASC,UAAT,EAAqBC,oBAArB,EAA2CC,OAA3C,QAA0D,mBAA1D;AACA,SAASC,aAAT,CAAuBC,GAAvB,EAA4B;AACxB,WAAO,eAAeA,GAAtB;AACH;AACD,SAASC,cAAT,CAAwBD,GAAxB,EAA6B;AACzB,WAAO,YAAYA,GAAnB;AACH;AACD,IAAIE,WAAW,aAAe,YAAY;AACtC,aAASA,QAAT,GAAoB;AAChB,aAAKC,UAAL,GAAkB,EAAlB;AACA,aAAKC,WAAL,GAAmB,EAAnB;AACA,aAAKC,UAAL,GAAkB,KAAlB;AACA,aAAKC,OAAL,GAAe,KAAf;AACA,aAAKC,MAAL,GAAc,KAAd;AACH;AACD;AACAL,aAASM,SAAT,CAAmBC,iBAAnB,GAAuC,YAAY;AAC/C,eAAO1D,UAAU,IAAV,EAAgB,KAAK,CAArB,EAAwB,KAAK,CAA7B,EAAgC,YAAY;AAC/C,mBAAOmB,YAAY,IAAZ,EAAkB,UAAUwC,EAAV,EAAc;AACnC,wBAAQA,GAAGrC,KAAX;AACI,yBAAK,CAAL;AAAQ,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAcwB,qBAAqBD,WAAWe,UAAhC,EAA4CC,KAAKC,SAAL,CAAe,KAAKV,UAApB,CAA5C,EAA6E,KAA7E,CAAd,CAAP;AACR,yBAAK,CAAL;AACIO,2BAAGpC,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AAJR;AAMH,aAPM,CAAP;AAQH,SATM,CAAP;AAUH,KAXD;AAYA;AACA4B,aAASM,SAAT,CAAmBM,kBAAnB,GAAwC,YAAY;AAChD,eAAO/D,UAAU,IAAV,EAAgB,KAAK,CAArB,EAAwB,KAAK,CAA7B,EAAgC,YAAY;AAC/C,mBAAOmB,YAAY,IAAZ,EAAkB,UAAUwC,EAAV,EAAc;AACnC,wBAAQA,GAAGrC,KAAX;AACI,yBAAK,CAAL;AAAQ,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAcwB,qBAAqBD,WAAWmB,WAAhC,EAA6CH,KAAKC,SAAL,CAAe,KAAKT,WAApB,CAA7C,EAA+E,KAA/E,CAAd,CAAP;AACR,yBAAK,CAAL;AACIM,2BAAGpC,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AAJR;AAMH,aAPM,CAAP;AAQH,SATM,CAAP;AAUH,KAXD;AAYA;AACA4B,aAASM,SAAT,CAAmBQ,wBAAnB,GAA8C,YAAY;AACtD,eAAOjE,UAAU,IAAV,EAAgB,KAAK,CAArB,EAAwB,KAAK,CAA7B,EAAgC,YAAY;AAC/C,mBAAOmB,YAAY,IAAZ,EAAkB,UAAUwC,EAAV,EAAc;AACnC,wBAAQA,GAAGrC,KAAX;AACI,yBAAK,CAAL;AAAQ,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAKyC,kBAAL,EAAd,CAAP;AACR,yBAAK,CAAL;AACIJ,2BAAGpC,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AAJR;AAMH,aAPM,CAAP;AAQH,SATM,CAAP;AAUH,KAXD;AAYA4B,aAASM,SAAT,CAAmBS,KAAnB,GAA2B,UAAUC,QAAV,EAAoB;AAC3C,eAAOnE,UAAU,IAAV,EAAgB,KAAK,CAArB,EAAwB,KAAK,CAA7B,EAAgC,YAAY;AAC/C,gBAAI2D,EAAJ,EAAQS,EAAR,EAAYC,EAAZ,EAAgBC,EAAhB,EAAoBC,EAApB,EAAwBC,EAAxB;AACA,mBAAOrD,YAAY,IAAZ,EAAkB,UAAUsD,EAAV,EAAc;AACnC,wBAAQA,GAAGnD,KAAX;AACI,yBAAK,CAAL;AACIqC,6BAAK,IAAL;AACAU,6BAAK,CAACD,KAAKP,IAAN,EAAYa,KAAjB;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc3B,QAAQF,WAAWe,UAAnB,CAAd,CAAP;AACJ,yBAAK,CAAL;AACID,2BAAGP,UAAH,GAAgBiB,GAAGnD,KAAH,CAASkD,EAAT,EAAa,CAACK,GAAGlD,IAAH,EAAD,CAAb,KAA6B,EAA7C;AACA+C,6BAAK,IAAL;AACAE,6BAAK,CAACD,KAAKV,IAAN,EAAYa,KAAjB;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc3B,QAAQF,WAAWmB,WAAnB,CAAd,CAAP;AACJ,yBAAK,CAAL;AACIM,2BAAGjB,WAAH,GAAiBmB,GAAGtD,KAAH,CAASqD,EAAT,EAAa,CAACE,GAAGlD,IAAH,EAAD,CAAb,KAA6B,EAA9C;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAKoD,eAAL,CAAqBR,QAArB,CAAd,CAAP;AACJ,yBAAK,CAAL;AACIM,2BAAGlD,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAKqD,gBAAL,CAAsBT,QAAtB,CAAd,CAAP;AACJ,yBAAK,CAAL;AACIM,2BAAGlD,IAAH;AACAoB,4BAAIkC,KAAJ,CAAU,sBAAV,EAAkChB,KAAKa,KAAL,CAAWb,KAAKC,SAAL,CAAe,KAAKV,UAApB,CAAX,CAAlC;AACAT,4BAAIkC,KAAJ,CAAU,uBAAV,EAAmChB,KAAKa,KAAL,CAAWb,KAAKC,SAAL,CAAe,KAAKT,WAApB,CAAX,CAAnC;AACA,6BAAKE,OAAL,GAAe,KAAf;AACA,6BAAKC,MAAL,GAAc,KAAd;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAKsB,UAAL,CAAgBX,QAAhB,CAAd,CAAP;AACJ,yBAAK,CAAL;AACIM,2BAAGlD,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AAzBR;AA2BH,aA5BM,CAAP;AA6BH,SA/BM,CAAP;AAgCH,KAjCD;AAkCA4B,aAASM,SAAT,CAAmBsB,IAAnB,GAA0B,YAAY;AAClC,aAAKxB,OAAL,GAAe,IAAf;AACA,YAAI,KAAKyB,OAAT,EACIC,aAAa,KAAKD,OAAlB;AACJ,aAAK1B,UAAL,GAAkB,KAAlB;AACH,KALD;AAMAH,aAASM,SAAT,CAAmByB,KAAnB,GAA2B,YAAY;AACnC,aAAK1B,MAAL,GAAc,IAAd;AACH,KAFD;AAGAL,aAASM,SAAT,CAAmB0B,YAAnB,GAAkC,UAAUhB,QAAV,EAAoBiB,IAApB,EAA0B;AACxD,eAAOpF,UAAU,IAAV,EAAgB,KAAK,CAArB,EAAwB,KAAK,CAA7B,EAAgC,YAAY;AAC/C,gBAAIqF,SAAJ,EAAeC,SAAf,EAA0BC,iBAA1B,EAA6CC,aAA7C,EAA4DC,MAA5D,EAAoEC,WAApE;AACA,mBAAOvE,YAAY,IAAZ,EAAkB,UAAUwC,EAAV,EAAc;AACnC,wBAAQA,GAAGrC,KAAX;AACI,yBAAK,CAAL;AACI+D,oCAAYD,KAAK,CAAL,CAAZ;AACAE,oCAAYF,KAAK,CAAL,CAAZ;AACAG,4CAAoB9C,MAAMkD,iBAAN,CAAwBxB,QAAxB,EAAkCkB,SAAlC,EAA6CC,SAA7C,CAApB;AACA,4BAAI,EAAEnB,SAASyB,WAAT,IAAwBzB,SAAS0B,UAAnC,CAAJ,EAAoD,OAAO,CAAC,CAAD,CAAG,SAAH,EAAc,CAAd,CAAP;AACpDL,wCAAgB/C,MAAMqD,kBAAN,CAAyB3B,QAAzB,EAAmCoB,iBAAnC,CAAhB;AACAE,iCAAS;AACLM,gCAAInD,QADC;AAELoD,+CAAmB,KAFd;AAGLC,0CAAcV,iBAHT;AAILC,2CAAeA,aAJV;AAKLU,qCAAS,CALJ;AAMLb,uCAAWA;AANN,yBAAT;AAQA,6BAAKjC,UAAL,CAAgBZ,IAAhB,CAAqBiD,MAArB;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAK/B,iBAAL,EAAd,CAAP;AACJ,yBAAK,CAAL;AACIC,2BAAGpC,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAKuD,UAAL,CAAgBX,QAAhB,CAAd,CAAP;AACJ,yBAAK,CAAL;AACIR,2BAAGpC,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AACJ,yBAAK,CAAL;AACImE,sCAAc;AACVK,gCAAInD,QADM;AAEVoD,+CAAmB,IAFT;AAGVC,0CAAcV,iBAHJ;AAIVC,2CAAeW,SAJL;AAKVD,qCAAS,CALC;AAMVb,uCAAWA;AAND,yBAAd;AAQA,6BAAKjC,UAAL,CAAgBZ,IAAhB,CAAqBkD,WAArB;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAKhC,iBAAL,EAAd,CAAP;AACJ,yBAAK,CAAL;AACIC,2BAAGpC,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AApCR;AAsCH,aAvCM,CAAP;AAwCH,SA1CM,CAAP;AA2CH,KA5CD;AA6CA4B,aAASM,SAAT,CAAmB2C,aAAnB,GAAmC,UAAUjC,QAAV,EAAoBkC,MAApB,EAA4B;AAC3D,eAAOrG,UAAU,IAAV,EAAgB,KAAK,CAArB,EAAwB,KAAK,CAA7B,EAAgC,YAAY;AAC/C,gBAAIsG,kBAAJ,EAAwBd,aAAxB,EAAuCe,QAAvC,EAAiDd,MAAjD;AACA,mBAAOtE,YAAY,IAAZ,EAAkB,UAAUwC,EAAV,EAAc;AACnC,wBAAQA,GAAGrC,KAAX;AACI,yBAAK,CAAL;AACIgF,6CAAqB5D,OAAOiD,iBAAP,CAAyBxB,QAAzB,EAAmCkC,MAAnC,CAArB;AACA,4BAAI,EAAElC,SAASyB,WAAT,IAAwBzB,SAAS0B,UAAnC,CAAJ,EAAoD,OAAO,CAAC,CAAD,CAAG,SAAH,EAAc,CAAd,CAAP;AACpDL,wCAAgB9C,OAAOoD,kBAAP,CAA0B3B,QAA1B,EAAoCmC,kBAApC,CAAhB;AACAC,mCAAW;AACPR,gCAAInD,QADG;AAEPoD,+CAAmB,KAFZ;AAGPC,0CAAcK,kBAHP;AAIPd,2CAAeA,aAJR;AAKPU,qCAAS,CALF;AAMPG,oCAAQA;AAND,yBAAX;AAQA,6BAAKhD,WAAL,CAAiBb,IAAjB,CAAsB+D,QAAtB;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAKxC,kBAAL,EAAd,CAAP;AACJ,yBAAK,CAAL;AACIJ,2BAAGpC,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAKuD,UAAL,CAAgBX,QAAhB,CAAd,CAAP;AACJ,yBAAK,CAAL;AACIR,2BAAGpC,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AACJ,yBAAK,CAAL;AACIkE,iCAAS;AACLM,gCAAInD,QADC;AAELoD,+CAAmB,IAFd;AAGLC,0CAAcK,kBAHT;AAILd,2CAAeW,SAJV;AAKLD,qCAAS,CALJ;AAMLG,oCAAQA;AANH,yBAAT;AAQA,6BAAKhD,WAAL,CAAiBb,IAAjB,CAAsBiD,MAAtB;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAK1B,kBAAL,EAAd,CAAP;AACJ,yBAAK,CAAL;AACIJ,2BAAGpC,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AAlCR;AAoCH,aArCM,CAAP;AAsCH,SAxCM,CAAP;AAyCH,KA1CD;AA2CA4B,aAASM,SAAT,CAAmBqB,UAAnB,GAAgC,UAAUX,QAAV,EAAoB;AAChD,eAAOnE,UAAU,IAAV,EAAgB,KAAK,CAArB,EAAwB,KAAK,CAA7B,EAAgC,YAAY;AAC/C,gBAAIwG,SAAJ,EAAezF,MAAf,EAAuB0F,QAAvB,EAAiC1F,MAAjC;AACA,mBAAOI,YAAY,IAAZ,EAAkB,UAAUwC,EAAV,EAAc;AACnC,wBAAQA,GAAGrC,KAAX;AACI,yBAAK,CAAL;AACI;AACA,4BAAI,KAAKgC,UAAT,EACI,OAAO,CAAC,CAAD,CAAG,UAAH,EAAe,KAAf,CAAP;AACJ;AACA,4BAAI,KAAKE,MAAT,EACI,OAAO,CAAC,CAAD,CAAG,UAAH,EAAe,KAAf,CAAP;AACJ;AACA,4BAAI,KAAKD,OAAT,EAAkB;AACd,mCAAO,CAAC,CAAD,CAAG,UAAH,EAAe,KAAf,CAAP;AACH;AACDiD,oCAAY,KAAKnD,WAAL,CAAiBqD,KAAjB,EAAZ;AACA,4BAAI,CAACF,SAAL,EAAgB,OAAO,CAAC,CAAD,CAAG,SAAH,EAAc,CAAd,CAAP;AAChB;AACA7D,4BAAIkC,KAAJ,CAAU,gBAAV,EAA4B2B,SAA5B;AACA,6BAAKlD,UAAL,GAAkB,IAAlB;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAKqD,UAAL,CAAgBxC,QAAhB,EAA0BqC,SAA1B,CAAd,CAAP;AACJ,yBAAK,CAAL;AACIzF,iCAAS4C,GAAGpC,IAAH,EAAT;AACA,4BAAI,KAAKgC,OAAT,EAAkB;AACd,mCAAO,CAAC,CAAD,CAAG,UAAH,EAAe,IAAf,CAAP;AACH;AACD,6BAAKD,UAAL,GAAkB,KAAlB;AACA,4BAAI,CAACvC,MAAL,EAAa,OAAO,CAAC,CAAD,CAAG,SAAH,EAAc,CAAd,CAAP;AACb,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAKgD,kBAAL,EAAd,CAAP;AACJ,yBAAK,CAAL;AACIJ,2BAAGpC,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAKuD,UAAL,CAAgBX,QAAhB,CAAd,CAAP;AACJ,yBAAK,CAAL;AAAQ,+BAAO,CAAC,CAAD,CAAG,UAAH,EAAeR,GAAGpC,IAAH,EAAf,CAAP;AACR,yBAAK,CAAL;AACIkF,mCAAW,KAAKrD,UAAL,CAAgBsD,KAAhB,EAAX;AACA,4BAAI,CAACD,QAAL,EAAe,OAAO,CAAC,CAAD,CAAG,SAAH,EAAc,CAAd,CAAP;AACf;AACA9D,4BAAIkC,KAAJ,CAAU,gBAAV,EAA4B4B,QAA5B;AACA;AACA,6BAAKnD,UAAL,GAAkB,IAAlB;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAKqD,UAAL,CAAgBxC,QAAhB,EAA0BsC,QAA1B,CAAd,CAAP;AACJ,yBAAK,CAAL;AACI1F,iCAAS4C,GAAGpC,IAAH,EAAT;AACA,4BAAI,KAAKgC,OAAT,EAAkB;AACd,mCAAO,CAAC,CAAD,CAAG,UAAH,EAAe,IAAf,CAAP;AACH;AACD,6BAAKD,UAAL,GAAkB,KAAlB;AACA,4BAAI,CAACvC,MAAL,EAAa,OAAO,CAAC,CAAD,CAAG,SAAH,EAAc,CAAd,CAAP;AACb,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAK2C,iBAAL,EAAd,CAAP;AACJ,yBAAK,CAAL;AACIC,2BAAGpC,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAKuD,UAAL,CAAgBX,QAAhB,CAAd,CAAP;AACJ,yBAAK,CAAL;AAAQ,+BAAO,CAAC,CAAD,CAAG,UAAH,EAAeR,GAAGpC,IAAH,EAAf,CAAP;AACR,yBAAK,CAAL;AACI;AACA,4BAAI,CAACiF,SAAD,IAAc,CAACC,QAAnB,EACI,OAAO,CAAC,CAAD,CAAG,UAAH,EAAe,KAAf,CAAP;AACJ,+BAAO,CAAC,CAAD,CAAG,UAAH,EAAe,IAAf,CAAP;AAtDR;AAwDH,aAzDM,CAAP;AA0DH,SA5DM,CAAP;AA6DH,KA9DD;AA+DAtD,aAASM,SAAT,CAAmBkD,UAAnB,GAAgC,UAAUxC,QAAV,EAAoByC,GAApB,EAAyB;AACrD,eAAO5G,UAAU,IAAV,EAAgB,KAAK,CAArB,EAAwB,KAAK,CAA7B,EAAgC,YAAY;AAC/C,gBAAI6G,EAAJ,EAAQlD,EAAR,EAAYmD,QAAZ,EAAsB1C,EAAtB,EAA0BC,EAA1B,EAA8B0C,aAA9B,EAA6CC,OAA7C,EAAsDC,OAAtD,EAA+DC,MAA/D,EAAuEC,OAAvE;AACA,gBAAIC,QAAQ,IAAZ;AACA,mBAAOjG,YAAY,IAAZ,EAAkB,UAAUmD,EAAV,EAAc;AACnC,wBAAQA,GAAGhD,KAAX;AACI,yBAAK,CAAL;AACI,4BAAI0B,cAAc4D,GAAd,CAAJ,EAAwB;AACpB,iCAAKC,KAAK,CAAL,EAAQlD,KAAKQ,SAASkD,aAAT,CAAuBC,OAAvB,CAA+BC,gBAAjD,EAAmEV,KAAKlD,GAAGpB,MAA3E,EAAmFsE,IAAnF,EAAyF;AACrFC,2CAAWnD,GAAGkD,EAAH,CAAX;AACA,oCAAIC,aAAaF,IAAIvB,SAArB,EAAgC;AAC5B1C,wCAAI6E,KAAJ,CAAU,qBAAqBC,MAArB,CAA4BX,QAA5B,EAAsC,qBAAtC,CAAV;AACA,2CAAO,CAAC,CAAD,CAAG,UAAH,EAAe,IAAf,CAAP;AACH;AACJ;AACJ,yBARD,MASK,IAAI5D,eAAe0D,GAAf,CAAJ,EAAyB;AAC1B,iCAAKxC,KAAK,CAAL,EAAQC,KAAKF,SAASkD,aAAT,CAAuBC,OAAvB,CAA+BI,mBAAjD,EAAsEtD,KAAKC,GAAG9B,MAA9E,EAAsF6B,IAAtF,EAA4F;AACxF2C,gDAAgB1C,GAAGD,EAAH,CAAhB;AACA,oCAAI2C,kBAAkBY,OAAOC,IAAP,CAAYhB,IAAIP,MAAhB,EAAwB,CAAxB,CAAtB,EAAkD;AAC9C1D,wCAAI6E,KAAJ,CAAU,wBAAwBC,MAAxB,CAA+BV,aAA/B,EAA8C,qBAA9C,CAAV;AACA,2CAAO,CAAC,CAAD,CAAG,UAAH,EAAe,IAAf,CAAP;AACH;AACJ;AACJ;AACDC,kCAAU,KAAV;AACAC,kCAAU,YAAY;AAClB,gCAAIY,cAAJ,EAAoBC,UAApB,EAAgCC,UAAhC;AACA,mCAAO5G,YAAY,IAAZ,EAAkB,UAAUoD,EAAV,EAAc;AACnC,wCAAQA,GAAGjD,KAAX;AACI,yCAAK,CAAL;AACI,4CAAI,CAAC,CAAC6C,SAAS6D,WAAf,EAA4B,OAAO,CAAC,CAAD,CAAG,SAAH,EAAc,CAAd,CAAP;AAC5B,+CAAO,CAAC,CAAD,CAAG,SAAH,EAAcd,OAAOe,UAAP,CAAkB9D,QAAlB,EAA4ByC,GAA5B,CAAd,CAAP;AACJ,yCAAK,CAAL;AACII,kDAAUzC,GAAGhD,IAAH,EAAV;AACA,+CAAO,CAAC,CAAD,CAAG,SAAH,EAAc,CAAd,CAAP;AACJ,yCAAK,CAAL;AACIyF,kDAAU,IAAV;AACAzC,2CAAGjD,KAAH,GAAW,CAAX;AACJ,yCAAK,CAAL;AACI;AACA,4CAAI0F,OAAJ,EAAa;AACT;AACArE,gDAAIkC,KAAJ,CAAU,6BAAV,EAAyC+B,GAAzC;AACA,mDAAO,CAAC,CAAD,CAAG,UAAH,EAAe,EAAEtG,OAAO,IAAT,EAAf,CAAP;AACH;AACD,4CAAI,CAAC,CAAC4G,OAAO3D,OAAb,EAAsB,OAAO,CAAC,CAAD,CAAG,SAAH,EAAc,CAAd,CAAP;AACtBsE,yDAAiB1D,SAASkD,aAAT,CAAuBa,UAAvB,CAAkCC,eAAnD;AACAL,qDAAclB,IAAIV,OAAJ,GAAc2B,eAAetF,MAAf,GAAwB,CAAvC,GACTsF,eAAetF,MAAf,GAAwB,CADf,GACmBqE,IAAIV,OADpC;AAEA6B,qDAAaF,eAAeC,UAAf,CAAb;AACAnF,4CAAIyF,KAAJ,CAAU,mCAAmCX,MAAnC,CAA0CM,UAA1C,EAAsD,UAAtD,CAAV;AACA,+CAAO,CAAC,CAAD,CAAG,SAAH,EAAc,IAAIvH,OAAJ,CAAY,UAAUD,OAAV,EAAmB;AAAE,mDAAO6G,MAAMpC,OAAN,GAAgBqD,WAAW9H,OAAX,EAAoBwH,aAAa,IAAjC,CAAvB;AAAgE,yCAAjG,CAAd,CAAP;AACJ,yCAAK,CAAL;AACIxD,2CAAGhD,IAAH;AACAqF,4CAAIV,OAAJ;AACA3B,2CAAGjD,KAAH,GAAW,CAAX;AACJ,yCAAK,CAAL;AAAQ,+CAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AA5BZ;AA8BH,6BA/BM,CAAP;AAgCH,yBAlCD;AAmCA4F,iCAAS,IAAT;AACA5C,2BAAGhD,KAAH,GAAW,CAAX;AACJ,yBAAK,CAAL;AAAQ,+BAAO,CAAC,CAAD,CAAG,UAAH,EAAe2F,SAAf,CAAP;AACR,yBAAK,CAAL;AACIE,kCAAU7C,GAAG/C,IAAH,EAAV;AACA,4BAAI,OAAO4F,OAAP,KAAmB,QAAvB,EACI,OAAO,CAAC,CAAD,CAAG,UAAH,EAAeA,QAAQ7G,KAAvB,CAAP;AACJgE,2BAAGhD,KAAH,GAAW,CAAX;AACJ,yBAAK,CAAL;AACI,4BAAI,CAAC0F,OAAD,IAAY,CAAC,KAAKzD,OAAtB,EAA+B,OAAO,CAAC,CAAD,CAAG,SAAH,EAAc,CAAd,CAAP;AAC/Be,2BAAGhD,KAAH,GAAW,CAAX;AACJ,yBAAK,CAAL;AACA;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,EAAe,IAAf,CAAP;AArEJ;AAuEH,aAxEM,CAAP;AAyEH,SA5EM,CAAP;AA6EH,KA9ED;AA+EA6B,aAASM,SAAT,CAAmBwE,UAAnB,GAAgC,UAAU9D,QAAV,EAAoByC,GAApB,EAAyB;AACrD,eAAO5G,UAAU,IAAV,EAAgB,KAAK,CAArB,EAAwB,KAAK,CAA7B,EAAgC,YAAY;AAC/C,mBAAOmB,YAAY,IAAZ,EAAkB,UAAUwC,EAAV,EAAc;AACnC,wBAAQA,GAAGrC,KAAX;AACI,yBAAK,CAAL;AACI,4BAAI,EAAEsF,IAAIX,YAAJ,CAAiBqC,MAAjB,KAA4B,OAA9B,CAAJ,EAA4C,OAAO,CAAC,CAAD,CAAG,SAAH,EAAc,CAAd,CAAP;AAC5C,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc7F,MAAM8F,IAAN,CAAWpE,QAAX,EAAqByC,IAAIX,YAAzB,EAAuCW,IAAIpB,aAA3C,CAAd,CAAP;AACJ,yBAAK,CAAL;AAAQ,+BAAO,CAAC,CAAD,CAAG,UAAH,EAAe7B,GAAGpC,IAAH,EAAf,CAAP;AACR,yBAAK,CAAL;AACI,4BAAI,EAAEqF,IAAIX,YAAJ,CAAiBqC,MAAjB,KAA4B,cAA9B,CAAJ,EAAmD,OAAO,CAAC,CAAD,CAAG,SAAH,EAAc,CAAd,CAAP;AACnD,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc5F,OAAO6F,IAAP,CAAYpE,QAAZ,EAAsByC,GAAtB,CAAd,CAAP;AACJ,yBAAK,CAAL;AAAQ,+BAAO,CAAC,CAAD,CAAG,UAAH,EAAejD,GAAGpC,IAAH,EAAf,CAAP;AACR,yBAAK,CAAL;AACIoB,4BAAI6F,IAAJ,CAAS,kDAAT;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,EAAe,IAAf,CAAP;AAXR;AAaH,aAdM,CAAP;AAeH,SAhBM,CAAP;AAiBH,KAlBD;AAmBArF,aAASM,SAAT,CAAmBkB,eAAnB,GAAqC,UAAUR,QAAV,EAAoB;AACrD,eAAOnE,UAAU,IAAV,EAAgB,KAAK,CAArB,EAAwB,KAAK,CAA7B,EAAgC,YAAY;AAC/C,gBAAI6G,EAAJ,EAAQlD,EAAR,EAAYiD,GAAZ;AACA,mBAAOzF,YAAY,IAAZ,EAAkB,UAAUiD,EAAV,EAAc;AACnC,wBAAQA,GAAG9C,KAAX;AACI,yBAAK,CAAL;AACI,6BAAKuF,KAAK,CAAL,EAAQlD,KAAK,KAAKP,UAAvB,EAAmCyD,KAAKlD,GAAGpB,MAA3C,EAAmDsE,IAAnD,EAAyD;AACrDD,kCAAMjD,GAAGkD,EAAH,CAAN;AACA,gCAAID,IAAIZ,iBAAR,EAA2B;AACvBY,oCAAIpB,aAAJ,GAAoB/C,MAAMqD,kBAAN,CAAyB3B,QAAzB,EAAmCyC,IAAIX,YAAvC,CAApB;AACH;AACJ;AACD,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAKvC,iBAAL,EAAd,CAAP;AACJ,yBAAK,CAAL;AACIU,2BAAG7C,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AAXR;AAaH,aAdM,CAAP;AAeH,SAjBM,CAAP;AAkBH,KAnBD;AAoBA4B,aAASM,SAAT,CAAmBmB,gBAAnB,GAAsC,UAAUT,QAAV,EAAoB;AACtD,eAAOnE,UAAU,IAAV,EAAgB,KAAK,CAArB,EAAwB,KAAK,CAA7B,EAAgC,YAAY;AAC/C,gBAAI6G,EAAJ,EAAQlD,EAAR,EAAYiD,GAAZ;AACA,mBAAOzF,YAAY,IAAZ,EAAkB,UAAUiD,EAAV,EAAc;AACnC,wBAAQA,GAAG9C,KAAX;AACI,yBAAK,CAAL;AACI,6BAAKuF,KAAK,CAAL,EAAQlD,KAAK,KAAKN,WAAvB,EAAoCwD,KAAKlD,GAAGpB,MAA5C,EAAoDsE,IAApD,EAA0D;AACtDD,kCAAMjD,GAAGkD,EAAH,CAAN;AACA,gCAAID,IAAIZ,iBAAR,EAA2B;AACvBY,oCAAIpB,aAAJ,GAAoB9C,OAAOoD,kBAAP,CAA0B3B,QAA1B,EAAoCyC,IAAIX,YAAxC,CAApB;AACH;AACJ;AACD,+BAAO,CAAC,CAAD,CAAG,SAAH,EAAc,KAAKlC,kBAAL,EAAd,CAAP;AACJ,yBAAK,CAAL;AACIK,2BAAG7C,IAAH;AACA,+BAAO,CAAC,CAAD,CAAG,UAAH,CAAP;AAXR;AAaH,aAdM,CAAP;AAeH,SAjBM,CAAP;AAkBH,KAnBD;AAoBA,WAAO4B,QAAP;AACH,CA5X6B,EAA9B;AA6XA,eAAeA,QAAf","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"]}