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.
- package/README.md +12 -0
- package/es5_dist/browser/browser.d.ts +3 -0
- package/es5_dist/browser/browser.js +31 -0
- package/es5_dist/browser/browser.js.map +1 -0
- package/es5_dist/browser/persist.d.ts +28 -0
- package/es5_dist/browser/persist.js +139 -0
- package/es5_dist/browser/persist.js.map +1 -0
- package/es5_dist/generated/buildInfo.d.ts +2 -0
- package/es5_dist/generated/buildInfo.js +3 -0
- package/es5_dist/generated/buildInfo.js.map +1 -0
- package/es5_dist/http.d.ts +3 -0
- package/es5_dist/http.js +132 -0
- package/es5_dist/http.js.map +1 -0
- package/es5_dist/interfaces.d.ts +72 -0
- package/es5_dist/interfaces.js +21 -0
- package/es5_dist/interfaces.js.map +1 -0
- package/es5_dist/jobqueue.d.ts +30 -0
- package/es5_dist/jobqueue.js +307 -0
- package/es5_dist/jobqueue.js.map +1 -0
- package/es5_dist/kochava.d.ts +80 -0
- package/es5_dist/kochava.js +654 -0
- package/es5_dist/kochava.js.map +1 -0
- package/es5_dist/payloads/config.d.ts +8 -0
- package/es5_dist/payloads/config.js +360 -0
- package/es5_dist/payloads/config.js.map +1 -0
- package/es5_dist/payloads/conversion.d.ts +5 -0
- package/es5_dist/payloads/conversion.js +195 -0
- package/es5_dist/payloads/conversion.js.map +1 -0
- package/es5_dist/payloads/payload.d.ts +9 -0
- package/es5_dist/payloads/payload.js +23 -0
- package/es5_dist/payloads/payload.js.map +1 -0
- package/es5_dist/product.d.ts +27 -0
- package/es5_dist/product.js +50 -0
- package/es5_dist/product.js.map +1 -0
- package/es5_dist/utils/log.d.ts +33 -0
- package/es5_dist/utils/log.js +151 -0
- package/es5_dist/utils/log.js.map +1 -0
- package/es5_dist/utils/utils.d.ts +10 -0
- package/es5_dist/utils/utils.js +81 -0
- package/es5_dist/utils/utils.js.map +1 -0
- 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
|
+
}
|