web-adsmeasurement 1.8.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +12 -0
  2. package/es5_dist/browser/browser.d.ts +3 -0
  3. package/es5_dist/browser/browser.js +31 -0
  4. package/es5_dist/browser/browser.js.map +1 -0
  5. package/es5_dist/browser/persist.d.ts +28 -0
  6. package/es5_dist/browser/persist.js +139 -0
  7. package/es5_dist/browser/persist.js.map +1 -0
  8. package/es5_dist/generated/buildInfo.d.ts +2 -0
  9. package/es5_dist/generated/buildInfo.js +3 -0
  10. package/es5_dist/generated/buildInfo.js.map +1 -0
  11. package/es5_dist/http.d.ts +3 -0
  12. package/es5_dist/http.js +132 -0
  13. package/es5_dist/http.js.map +1 -0
  14. package/es5_dist/interfaces.d.ts +72 -0
  15. package/es5_dist/interfaces.js +21 -0
  16. package/es5_dist/interfaces.js.map +1 -0
  17. package/es5_dist/jobqueue.d.ts +30 -0
  18. package/es5_dist/jobqueue.js +307 -0
  19. package/es5_dist/jobqueue.js.map +1 -0
  20. package/es5_dist/kochava.d.ts +80 -0
  21. package/es5_dist/kochava.js +654 -0
  22. package/es5_dist/kochava.js.map +1 -0
  23. package/es5_dist/payloads/config.d.ts +8 -0
  24. package/es5_dist/payloads/config.js +360 -0
  25. package/es5_dist/payloads/config.js.map +1 -0
  26. package/es5_dist/payloads/conversion.d.ts +5 -0
  27. package/es5_dist/payloads/conversion.js +195 -0
  28. package/es5_dist/payloads/conversion.js.map +1 -0
  29. package/es5_dist/payloads/payload.d.ts +9 -0
  30. package/es5_dist/payloads/payload.js +23 -0
  31. package/es5_dist/payloads/payload.js.map +1 -0
  32. package/es5_dist/product.d.ts +27 -0
  33. package/es5_dist/product.js +50 -0
  34. package/es5_dist/product.js.map +1 -0
  35. package/es5_dist/utils/log.d.ts +33 -0
  36. package/es5_dist/utils/log.js +151 -0
  37. package/es5_dist/utils/log.js.map +1 -0
  38. package/es5_dist/utils/utils.d.ts +10 -0
  39. package/es5_dist/utils/utils.js +81 -0
  40. package/es5_dist/utils/utils.js.map +1 -0
  41. package/package.json +19 -0
@@ -0,0 +1,307 @@
1
+ /*
2
+ Authored by Jacob Bechler on 6/13/23.
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 Conversion from "./payloads/conversion";
88
+ import { Log } from "./utils/log";
89
+ import { addToPersistedConversionQueue, PersistKey, removeFromConversionPersistedQueue, updatePersistedValue } from "./browser/persist";
90
+ import { uuidv4 } from "./utils/utils";
91
+ function jobIsConversionJob(obj) {
92
+ return obj.action === 'conversion';
93
+ }
94
+ var JobQueue = /** @class */function () {
95
+ function JobQueue() {
96
+ this.initialDequeueComplete = false;
97
+ this.conversionQueue = [];
98
+ this.processing = false;
99
+ this.stopped = false;
100
+ this.paused = false;
101
+ this.initialDequeueComplete = false;
102
+ }
103
+ JobQueue.prototype.start = function (instance) {
104
+ return __awaiter(this, void 0, void 0, function () {
105
+ return __generator(this, function (_a) {
106
+ switch (_a.label) {
107
+ case 0:
108
+ this.conversionQueue = JSON.parse(localStorage.getItem(PersistKey.ConversionQueue)) || [];
109
+ this.updateConversionJobs(instance);
110
+ Log.trace("Starting Conversion Queue", JSON.parse(JSON.stringify(this.conversionQueue)));
111
+ this.stopped = false;
112
+ this.paused = false;
113
+ return [4 /*yield*/, this.dequeueJob(instance)];
114
+ case 1:
115
+ _a.sent();
116
+ this.initialDequeueComplete = true;
117
+ return [2 /*return*/];
118
+ }
119
+ });
120
+ });
121
+ };
122
+ JobQueue.prototype.stop = function () {
123
+ this.stopped = true;
124
+ if (this.timeOut) clearTimeout(this.timeOut);
125
+ this.processing = false;
126
+ };
127
+ JobQueue.prototype.pause = function () {
128
+ this.paused = true;
129
+ };
130
+ JobQueue.prototype.enqueueConversion = function (instance, args) {
131
+ return __awaiter(this, void 0, void 0, function () {
132
+ var conversionName, conversionData, overrideAccessToken, overrideProductId, payload_body, newJob, newConversionJob;
133
+ return __generator(this, function (_a) {
134
+ switch (_a.label) {
135
+ case 0:
136
+ conversionName = args[0];
137
+ conversionData = args[1];
138
+ overrideAccessToken = args[2];
139
+ overrideProductId = args[3];
140
+ payload_body = Conversion.constructPayloadBody(instance, conversionName, conversionData);
141
+ if (!(instance.configDone && this.initialDequeueComplete)) return [3 /*break*/, 2];
142
+ newJob = {
143
+ id: uuidv4(),
144
+ action: "conversion",
145
+ payload_body: payload_body,
146
+ retries: 0
147
+ };
148
+ newJob.override_product_id = overrideProductId;
149
+ newJob.override_access_token = overrideAccessToken;
150
+ this.conversionQueue.push(newJob);
151
+ addToPersistedConversionQueue(newJob);
152
+ return [4 /*yield*/, this.dequeueJob(instance)];
153
+ case 1:
154
+ _a.sent();
155
+ return [2 /*return*/];
156
+ case 2:
157
+ newConversionJob = {
158
+ id: uuidv4(),
159
+ action: "conversion",
160
+ payload_body: payload_body,
161
+ retries: 0
162
+ };
163
+ this.conversionQueue.push(newConversionJob);
164
+ addToPersistedConversionQueue(newConversionJob);
165
+ return [2 /*return*/];
166
+ }
167
+ });
168
+ });
169
+ };
170
+ // False if there is currently a job processing,
171
+ // if the SDK is paused, or if the SDK is stopped/shutting down
172
+ JobQueue.prototype.isBlocked = function () {
173
+ if (this.processing || this.paused || this.stopped) return true;
174
+ return false;
175
+ };
176
+ JobQueue.prototype.dequeueJob = function (instance) {
177
+ return __awaiter(this, void 0, void 0, function () {
178
+ var conversionJob, result;
179
+ return __generator(this, function (_a) {
180
+ switch (_a.label) {
181
+ case 0:
182
+ if (this.isBlocked()) return [2 /*return*/, false];
183
+ conversionJob = this.conversionQueue.shift();
184
+ if (!conversionJob) return [3 /*break*/, 3];
185
+ // handle conversionJob
186
+ Log.trace("Dequeued Job: ", conversionJob);
187
+ // Process the job
188
+ this.processing = true;
189
+ return [4 /*yield*/, this.processJob(instance, conversionJob)];
190
+ case 1:
191
+ result = _a.sent();
192
+ if (this.stopped) {
193
+ return [2 /*return*/, true];
194
+ }
195
+ this.processing = false;
196
+ if (!result) return [3 /*break*/, 3];
197
+ removeFromConversionPersistedQueue(conversionJob);
198
+ return [4 /*yield*/, this.dequeueJob(instance)];
199
+ case 2:
200
+ return [2 /*return*/, _a.sent()];
201
+ case 3:
202
+ // If neither queue had a job, break out of recursion
203
+ if (!conversionJob) return [2 /*return*/, false];
204
+ return [2 /*return*/, true];
205
+ }
206
+ });
207
+ });
208
+ };
209
+ JobQueue.prototype.processJob = function (instance, job) {
210
+ return __awaiter(this, void 0, void 0, function () {
211
+ var success, _loop_1, this_1, state_1;
212
+ var _this = this;
213
+ return __generator(this, function (_a) {
214
+ switch (_a.label) {
215
+ case 0:
216
+ success = false;
217
+ _loop_1 = function () {
218
+ var retryWaterfall, retryIndex, retrySec_1;
219
+ return __generator(this, function (_b) {
220
+ switch (_b.label) {
221
+ case 0:
222
+ if (!!instance.sdk_disabled) return [3 /*break*/, 2];
223
+ return [4 /*yield*/, this_1.attemptJob(instance, job)];
224
+ case 1:
225
+ success = _b.sent();
226
+ return [3 /*break*/, 3];
227
+ case 2:
228
+ success = true; // Mock request/response?
229
+ _b.label = 3;
230
+ case 3:
231
+ // If our job succeeded
232
+ if (success) {
233
+ // Job Done
234
+ Log.trace("Job processed successfully:", job);
235
+ return [2 /*return*/, { value: true }];
236
+ }
237
+ if (!!this_1.stopped) return [3 /*break*/, 5];
238
+ retryWaterfall = instance.pubSuiteConfig.networking.retry_waterfall;
239
+ retryIndex = job.retries > retryWaterfall.length - 1 ? retryWaterfall.length - 1 : job.retries;
240
+ retrySec_1 = retryWaterfall[retryIndex];
241
+ Log.error("Job failed, attempting again in ".concat(retrySec_1, " seconds"));
242
+ return [4 /*yield*/, new Promise(function (resolve) {
243
+ return _this.timeOut = setTimeout(resolve, retrySec_1 * 1000);
244
+ })];
245
+ case 4:
246
+ _b.sent();
247
+ job.retries++;
248
+ _b.label = 5;
249
+ case 5:
250
+ return [2 /*return*/];
251
+ }
252
+ });
253
+ };
254
+ this_1 = this;
255
+ _a.label = 1;
256
+ case 1:
257
+ return [5 /*yield**/, _loop_1()];
258
+ case 2:
259
+ state_1 = _a.sent();
260
+ if (typeof state_1 === "object") return [2 /*return*/, state_1.value];
261
+ _a.label = 3;
262
+ case 3:
263
+ if (!success && !this.stopped) return [3 /*break*/, 1];
264
+ _a.label = 4;
265
+ case 4:
266
+ // Job Canceled
267
+ return [2 /*return*/, true];
268
+ }
269
+ });
270
+ });
271
+ };
272
+ JobQueue.prototype.attemptJob = function (instance, job) {
273
+ return __awaiter(this, void 0, void 0, function () {
274
+ return __generator(this, function (_a) {
275
+ switch (_a.label) {
276
+ case 0:
277
+ if (!(job.action === "conversion")) return [3 /*break*/, 2];
278
+ return [4 /*yield*/, Conversion.send(instance, job)];
279
+ case 1:
280
+ return [2 /*return*/, _a.sent()];
281
+ case 2:
282
+ Log.warn("Invalid action in job from jobqueue, cancelling.");
283
+ return [2 /*return*/, true];
284
+ }
285
+ });
286
+ });
287
+ };
288
+ JobQueue.prototype.updateConversionJobs = function (instance) {
289
+ for (var _i = 0, _a = this.conversionQueue; _i < _a.length; _i++) {
290
+ var job = _a[_i];
291
+ if (jobIsConversionJob(job)) {
292
+ // populate install_id for conversions queued before SDK was started
293
+ if (instance.installIdEnabled) {
294
+ if (job.payload_body.eventData) {
295
+ job.payload_body.eventData.install_id = instance.pubSuiteInstallId;
296
+ } else {
297
+ job.payload_body.eventData = { install_id: instance.pubSuiteInstallId };
298
+ }
299
+ }
300
+ }
301
+ }
302
+ updatePersistedValue(PersistKey.ConversionQueue, JSON.stringify(this.conversionQueue));
303
+ };
304
+ return JobQueue;
305
+ }();
306
+ export default JobQueue;
307
+ //# sourceMappingURL=jobqueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../node/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","Conversion","Log","addToPersistedConversionQueue","PersistKey","removeFromConversionPersistedQueue","updatePersistedValue","uuidv4","jobIsConversionJob","obj","action","JobQueue","initialDequeueComplete","conversionQueue","processing","stopped","paused","prototype","start","instance","_a","JSON","parse","localStorage","getItem","ConversionQueue","updateConversionJobs","trace","stringify","dequeueJob","stop","timeOut","clearTimeout","pause","enqueueConversion","args","conversionName","conversionData","overrideAccessToken","overrideProductId","payload_body","newJob","newConversionJob","constructPayloadBody","configDone","id","retries","override_product_id","override_access_token","isBlocked","conversionJob","shift","processJob","job","success","_loop_1","this_1","state_1","_this","retryWaterfall","retryIndex","retrySec_1","_b","sdk_disabled","attemptJob","pubSuiteConfig","networking","retry_waterfall","error","concat","setTimeout","send","warn","_i","installIdEnabled","eventData","install_id","pubSuiteInstallId"],"mappings":"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","file":"jobqueue.js","sourcesContent":["/*\n Authored by Jacob Bechler on 6/13/23.\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 Conversion from \"./payloads/conversion\";\nimport { Log } from \"./utils/log\";\nimport { addToPersistedConversionQueue, PersistKey, removeFromConversionPersistedQueue, updatePersistedValue } from \"./browser/persist\";\nimport { uuidv4 } from \"./utils/utils\";\nfunction jobIsConversionJob(obj) {\n return obj.action === 'conversion';\n}\nvar JobQueue = /** @class */ (function () {\n function JobQueue() {\n this.initialDequeueComplete = false;\n this.conversionQueue = [];\n this.processing = false;\n this.stopped = false;\n this.paused = false;\n this.initialDequeueComplete = false;\n }\n JobQueue.prototype.start = function (instance) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.conversionQueue = JSON.parse(localStorage.getItem(PersistKey.ConversionQueue)) || [];\n this.updateConversionJobs(instance);\n Log.trace(\"Starting Conversion Queue\", JSON.parse(JSON.stringify(this.conversionQueue)));\n this.stopped = false;\n this.paused = false;\n return [4 /*yield*/, this.dequeueJob(instance)];\n case 1:\n _a.sent();\n this.initialDequeueComplete = true;\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.enqueueConversion = function (instance, args) {\n return __awaiter(this, void 0, void 0, function () {\n var conversionName, conversionData, overrideAccessToken, overrideProductId, payload_body, newJob, newConversionJob;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n conversionName = args[0];\n conversionData = args[1];\n overrideAccessToken = args[2];\n overrideProductId = args[3];\n payload_body = Conversion.constructPayloadBody(instance, conversionName, conversionData);\n if (!(instance.configDone && this.initialDequeueComplete)) return [3 /*break*/, 2];\n newJob = {\n id: uuidv4(),\n action: \"conversion\",\n payload_body: payload_body,\n retries: 0,\n };\n newJob.override_product_id = overrideProductId;\n newJob.override_access_token = overrideAccessToken;\n this.conversionQueue.push(newJob);\n addToPersistedConversionQueue(newJob);\n return [4 /*yield*/, this.dequeueJob(instance)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n case 2:\n newConversionJob = {\n id: uuidv4(),\n action: \"conversion\",\n payload_body: payload_body,\n retries: 0,\n };\n this.conversionQueue.push(newConversionJob);\n addToPersistedConversionQueue(newConversionJob);\n return [2 /*return*/];\n }\n });\n });\n };\n // False if there is currently a job processing,\n // if the SDK is paused, or if the SDK is stopped/shutting down\n JobQueue.prototype.isBlocked = function () {\n if (this.processing || this.paused || this.stopped)\n return true;\n return false;\n };\n JobQueue.prototype.dequeueJob = function (instance) {\n return __awaiter(this, void 0, void 0, function () {\n var conversionJob, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.isBlocked())\n return [2 /*return*/, false];\n conversionJob = this.conversionQueue.shift();\n if (!conversionJob) return [3 /*break*/, 3];\n // handle conversionJob\n Log.trace(\"Dequeued Job: \", conversionJob);\n // Process the job\n this.processing = true;\n return [4 /*yield*/, this.processJob(instance, conversionJob)];\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*/, 3];\n removeFromConversionPersistedQueue(conversionJob);\n return [4 /*yield*/, this.dequeueJob(instance)];\n case 2: return [2 /*return*/, _a.sent()];\n case 3:\n // If neither queue had a job, break out of recursion\n if (!conversionJob)\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 success, _loop_1, this_1, state_1;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n success = false;\n _loop_1 = function () {\n var retryWaterfall, retryIndex, retrySec_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!!instance.sdk_disabled) return [3 /*break*/, 2];\n return [4 /*yield*/, this_1.attemptJob(instance, job)];\n case 1:\n success = _b.sent();\n return [3 /*break*/, 3];\n case 2:\n success = true; // Mock request/response?\n _b.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.pubSuiteConfig.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 _b.sent();\n job.retries++;\n _b.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n };\n this_1 = this;\n _a.label = 1;\n case 1: return [5 /*yield**/, _loop_1()];\n case 2:\n state_1 = _a.sent();\n if (typeof state_1 === \"object\")\n return [2 /*return*/, state_1.value];\n _a.label = 3;\n case 3:\n if (!success && !this.stopped) return [3 /*break*/, 1];\n _a.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.action === \"conversion\")) return [3 /*break*/, 2];\n return [4 /*yield*/, Conversion.send(instance, job)];\n case 1: return [2 /*return*/, _a.sent()];\n case 2:\n Log.warn(\"Invalid action in job from jobqueue, cancelling.\");\n return [2 /*return*/, true];\n }\n });\n });\n };\n JobQueue.prototype.updateConversionJobs = function (instance) {\n for (var _i = 0, _a = this.conversionQueue; _i < _a.length; _i++) {\n var job = _a[_i];\n if (jobIsConversionJob(job)) {\n // populate install_id for conversions queued before SDK was started\n if (instance.installIdEnabled) {\n if (job.payload_body.eventData) {\n job.payload_body.eventData.install_id = instance.pubSuiteInstallId;\n }\n else {\n job.payload_body.eventData = { install_id: instance.pubSuiteInstallId };\n }\n }\n }\n }\n updatePersistedValue(PersistKey.ConversionQueue, JSON.stringify(this.conversionQueue));\n };\n return JobQueue;\n}());\nexport default JobQueue;\n"]}
@@ -0,0 +1,80 @@
1
+ import { Json, Urls, ConfigResponse, CustomDeviceIdentifier } from "./interfaces";
2
+ import { Product } from "./product";
3
+ export { Product } from "./product";
4
+ declare global {
5
+ interface Window {
6
+ pubSuite: PubSuite;
7
+ }
8
+ }
9
+ export interface PubSuiteInstance {
10
+ product_id: string;
11
+ started: boolean;
12
+ configDone: boolean;
13
+ HostConfig: ConfigResponse;
14
+ customDataAttribute: string;
15
+ element_conversions: Json;
16
+ button_conversions: Json;
17
+ useCookies: boolean;
18
+ collectReferrer: boolean;
19
+ collectUrl: boolean;
20
+ sleep: boolean;
21
+ version: string;
22
+ buildDate: string;
23
+ overrideUrls: Urls;
24
+ customDeviceIds: CustomDeviceIdentifier[];
25
+ conversion_metadata: Record<string, unknown>;
26
+ pubSuiteSession: string;
27
+ retryWaterfall: number[];
28
+ startTimeMS: number;
29
+ sdk_disabled: boolean;
30
+ instance_id: string;
31
+ installIdEnabled: boolean;
32
+ collect_ga: boolean;
33
+ sessionConfig: {
34
+ enabled: boolean;
35
+ timeout: number;
36
+ };
37
+ sessionState: {
38
+ session_time?: number;
39
+ last_activity_time?: number;
40
+ count?: number;
41
+ };
42
+ access_token: string;
43
+ pubSuiteSessionCount: number;
44
+ pubSuiteConfig?: ConfigResponse;
45
+ pubSuiteInstallId: string;
46
+ }
47
+ export declare class PubSuite {
48
+ private instance;
49
+ private jobQueue;
50
+ readonly product: Product;
51
+ private constructor();
52
+ static create(): PubSuite;
53
+ static createForReact(): PubSuite;
54
+ static createForVue(): PubSuite;
55
+ static createForAngular(): PubSuite;
56
+ static createForReactNative(): PubSuite;
57
+ startWithConfig(config: Json): void;
58
+ startWithProductId(product_id: string, access_token: string): void;
59
+ private start;
60
+ sendConversion(name: string | null, data?: Json, override_access_token?: string, override_product_id?: string): void;
61
+ getStarted(): boolean;
62
+ registerCustomDeviceIdentifier(name: string, value: string): void;
63
+ setSleep(sleep: boolean): void;
64
+ shutdown(deleteData: boolean): void;
65
+ setLogLevel(logLevel: string): void;
66
+ executeAdvancedInstruction(key: string, valueStr: string, callback?: (input: string) => void | string): string;
67
+ private boundClickHandler;
68
+ private enableElementTracking;
69
+ private resetInstance;
70
+ private initInstance;
71
+ private checkFirstLaunch;
72
+ private checkPersistedState;
73
+ private printStartupMsgs;
74
+ private beginStart;
75
+ private performNewConfig;
76
+ private updateSessionState;
77
+ reportUserActivity(): void;
78
+ ClickHandler(event: Event): void;
79
+ Impressions(): void;
80
+ }