kv-test-lib 1.0.26 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of kv-test-lib might be problematic. Click here for more details.

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 -477
  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
package/dist/kochava.js DELETED
@@ -1,477 +0,0 @@
1
- /*
2
- Authored by Brett Barinaga on 11/17/21.
3
- Copyright (c) Kochava, Inc. All rights reserved.
4
- */
5
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
6
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
7
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
8
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
9
- };
10
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
11
- if (kind === "m") throw new TypeError("Private method is not writable");
12
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
13
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
14
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
15
- };
16
- var _Kochava_instances, _Kochava_instance, _Kochava_jobQueue, _Kochava_resetInstance, _Kochava_initInstance, _Kochava_checkFirstLaunchAndMigrate, _Kochava_checkPersistedKvinit, _Kochava_checkPersistedState, _Kochava_printStartupMsgs, _Kochava_beginStart, _Kochava_performNewKvinit, _Kochava_checkResendId, _Kochava_performInstall;
17
- import { Log } from "./utils/log";
18
- import JobQueue from "./jobqueue";
19
- import * as Kvinit from "./payloads/kvinit";
20
- import * as Install from "./payloads/install";
21
- import { DEFAULTS, } from "./interfaces";
22
- import { deleteAllPersisted, readAndUpdatePersistedValue, updatePersistedValue, PersistKey, checkDuplicateIdLink, addPersistedIdLinks, checkInstallIdChange, readAndUpdateSessionCount, readAndUpdateDeviceId, readAndUpdateUTM, } from "./browser/persist";
23
- import * as utils from "./utils/utils";
24
- import { getPageName } from "./browser/browser";
25
- // Update this when releasing a new version of the sdk
26
- const SDK_VERSION = "WebTracker 3.0.2";
27
- export class Kochava {
28
- // User will use the below factories instead of directly calling
29
- // the constructor
30
- constructor() {
31
- _Kochava_instances.add(this);
32
- _Kochava_instance.set(this, void 0);
33
- _Kochava_jobQueue.set(this, void 0);
34
- __classPrivateFieldGet(this, _Kochava_instances, "m", _Kochava_resetInstance).call(this);
35
- __classPrivateFieldSet(this, _Kochava_jobQueue, new JobQueue(), "f");
36
- }
37
- // ============================= PUBLIC =============================== //
38
- static create() {
39
- return new Kochava();
40
- }
41
- static createForNode() {
42
- const kochava = new Kochava();
43
- kochava.executeAdvancedInstruction("wrapper", JSON.stringify({ name: "Node", version: "" }));
44
- return kochava;
45
- }
46
- static createForReact() {
47
- const kochava = new Kochava();
48
- kochava.executeAdvancedInstruction("wrapper", JSON.stringify({ name: "React", version: "" }));
49
- return kochava;
50
- }
51
- static createForVue() {
52
- const kochava = new Kochava();
53
- kochava.executeAdvancedInstruction("wrapper", JSON.stringify({ name: "Vue", version: "" }));
54
- return kochava;
55
- }
56
- static createForAngular() {
57
- const kochava = new Kochava();
58
- kochava.executeAdvancedInstruction("wrapper", JSON.stringify({ name: "Angular", version: "1.0.0" }));
59
- return kochava;
60
- }
61
- /*
62
- Set if the SDK should also store persisted values in cookie storage.
63
- - Not all values can be persisted in cookies, such as event/idlink queues
64
- due to size constraints.
65
- - true = yes use cookies
66
- - no = no don't use cookies
67
- - defaults to false
68
- */
69
- useCookies(condition = false) {
70
- __classPrivateFieldGet(this, _Kochava_instance, "f").useCookies = condition;
71
- }
72
- /*
73
- - Set whether the sdk shouldn't automatically send a page or should.
74
- - true = no auto page
75
- - false = yes auto page
76
- - defaults to false
77
- */
78
- disableAutoPage(condition = false) {
79
- __classPrivateFieldGet(this, _Kochava_instance, "f").disableAutoPage = condition;
80
- }
81
- /*
82
- The primary means for starting the sdk.
83
- Responsibilites:
84
- - Checks for migrations.
85
- - Creates the sdk instance.
86
- - Checks for persisted state.
87
- - Determines and sends kvinit.
88
- - Determines and sends install.
89
- - Optionally enqueues an auto_page.
90
- - Starts the job queue.
91
- */
92
- startWithAppGuid(appGuid) {
93
- if (!appGuid) {
94
- Log.error(`Invalid appGuid ${appGuid}, start failed.`);
95
- return;
96
- }
97
- if (!__classPrivateFieldGet(this, _Kochava_instance, "f"))
98
- __classPrivateFieldGet(this, _Kochava_instances, "m", _Kochava_resetInstance).call(this);
99
- if (__classPrivateFieldGet(this, _Kochava_instance, "f").started) {
100
- Log.warn("Kochava SDK already started.");
101
- return;
102
- }
103
- Log.diagDebug(`Host called API: Start With App Guid ${appGuid}`);
104
- __classPrivateFieldGet(this, _Kochava_instance, "f").started = true;
105
- __classPrivateFieldGet(this, _Kochava_instances, "m", _Kochava_checkFirstLaunchAndMigrate).call(this);
106
- __classPrivateFieldGet(this, _Kochava_instances, "m", _Kochava_initInstance).call(this, appGuid);
107
- if (!__classPrivateFieldGet(this, _Kochava_instance, "f").disableAutoPage)
108
- this.sendPageEvent();
109
- __classPrivateFieldGet(this, _Kochava_instances, "m", _Kochava_checkPersistedState).call(this);
110
- __classPrivateFieldGet(this, _Kochava_instances, "m", _Kochava_checkPersistedKvinit).call(this);
111
- __classPrivateFieldGet(this, _Kochava_instances, "m", _Kochava_printStartupMsgs).call(this, appGuid);
112
- __classPrivateFieldGet(this, _Kochava_instances, "m", _Kochava_beginStart).call(this);
113
- }
114
- /*
115
- Primary means for stopping the sdk.
116
- Will optionally delete all persisted data, and will shutdown the
117
- sdk and job queue.
118
- */
119
- shutdown(deleteData) {
120
- Log.diagDebug(`Host called API: Shutdown and ${deleteData ? "delete data" : "keep data"}`);
121
- if (deleteData) {
122
- Log.debug("Deleting persisted values");
123
- deleteAllPersisted();
124
- }
125
- if (!__classPrivateFieldGet(this, _Kochava_instance, "f").started) {
126
- Log.warn("SDK already shutdown.");
127
- }
128
- Log.info("SDK shutting down.");
129
- Kvinit.cancelRetries();
130
- Install.cancelRetries();
131
- __classPrivateFieldGet(this, _Kochava_jobQueue, "f").stop();
132
- // wipe whatever was previously in the queue
133
- __classPrivateFieldSet(this, _Kochava_jobQueue, new JobQueue(), "f");
134
- __classPrivateFieldGet(this, _Kochava_instances, "m", _Kochava_resetInstance).call(this);
135
- }
136
- /*
137
- Changes the current logLevel.
138
- Options include:
139
- - Off :: No logging whatsoever
140
- - Error :: Only critical errors
141
- - Warn :: Only critical errors and non-critical warnings
142
- - Info :: High-level sdk behavior logs (default)
143
- - Debug :: More in-depth sdk behavior logs and payload logs
144
- - Trace :: Everything, granular detail
145
- */
146
- setLogLevel(logLevel) {
147
- Log.diagDebug(`Host called API: Set Log Level ${logLevel}`);
148
- Log.setLogLevel(logLevel);
149
- }
150
- /*
151
- Used internally, for special SDK behavior not utilized by a client.
152
- Examples include:
153
- - urls :: purposefully changing an endpoint for testing
154
- - wrapper :: overwriting the version of a wrapper
155
- several more ...
156
- */
157
- executeAdvancedInstruction(key, valueStr, callback) {
158
- Log.diagDebug(`Host called API: Execute Advanced Instruction ${key}`);
159
- switch (key) {
160
- case "wrapper":
161
- {
162
- const wrapperVersion = JSON.parse(valueStr);
163
- if (!__classPrivateFieldGet(this, _Kochava_instance, "f").version)
164
- __classPrivateFieldGet(this, _Kochava_instance, "f").version = SDK_VERSION;
165
- switch (wrapperVersion.name) {
166
- case "Angular":
167
- __classPrivateFieldGet(this, _Kochava_instance, "f").version += ` (${wrapperVersion.name} ${wrapperVersion.version})`;
168
- break;
169
- default:
170
- __classPrivateFieldGet(this, _Kochava_instance, "f").version += ` (${wrapperVersion.name})`;
171
- break;
172
- }
173
- }
174
- break;
175
- case "urls":
176
- {
177
- const overrideUrls = JSON.parse(valueStr);
178
- if (overrideUrls.init)
179
- __classPrivateFieldGet(this, _Kochava_instance, "f").overrideUrls.init = overrideUrls.init;
180
- if (overrideUrls.event)
181
- __classPrivateFieldGet(this, _Kochava_instance, "f").overrideUrls.event = overrideUrls.event;
182
- if (overrideUrls.install)
183
- __classPrivateFieldGet(this, _Kochava_instance, "f").overrideUrls.install = overrideUrls.install;
184
- if (overrideUrls.identityLink)
185
- __classPrivateFieldGet(this, _Kochava_instance, "f").overrideUrls.identityLink = overrideUrls.identityLink;
186
- }
187
- break;
188
- case "urlsRestore":
189
- {
190
- const restoreUrls = JSON.parse(valueStr);
191
- for (const url of restoreUrls) {
192
- if (url === "init")
193
- __classPrivateFieldGet(this, _Kochava_instance, "f").overrideUrls.init = DEFAULTS.networking.urls.init;
194
- if (url === "event")
195
- __classPrivateFieldGet(this, _Kochava_instance, "f").overrideUrls.event = DEFAULTS.networking.urls.event;
196
- if (url === "install")
197
- __classPrivateFieldGet(this, _Kochava_instance, "f").overrideUrls.install =
198
- DEFAULTS.networking.urls.install;
199
- if (url === "identityLink")
200
- __classPrivateFieldGet(this, _Kochava_instance, "f").overrideUrls.identityLink =
201
- DEFAULTS.networking.urls.identityLink;
202
- }
203
- }
204
- break;
205
- case "logFilter":
206
- {
207
- const disabled = JSON.parse(valueStr);
208
- disabled.forEach((level) => Log.disableLogType(level));
209
- }
210
- break;
211
- case "getInstance":
212
- {
213
- const currInstance = JSON.stringify(__classPrivateFieldGet(this, _Kochava_instance, "f"));
214
- callback(currInstance);
215
- Log.debug(`capturing instance: ${valueStr}`);
216
- }
217
- break;
218
- case "logObjects":
219
- Log.setLogObjects(JSON.parse(valueStr));
220
- break;
221
- default:
222
- break;
223
- }
224
- }
225
- /*
226
- Builds and enqueues a kochava event. Must include an event_name string,
227
- with optional event_data as either another string or object.
228
- */
229
- sendEvent(name, data) {
230
- Log.diagDebug(`Host called API: Send Event`);
231
- if (!name) {
232
- Log.warn("Invalid event name, ignoring call.");
233
- return;
234
- }
235
- __classPrivateFieldGet(this, _Kochava_jobQueue, "f").enqueueEvent(__classPrivateFieldGet(this, _Kochava_instance, "f"), [name, data]);
236
- }
237
- /*
238
- Wraps the sendEvent call with predefined data specific to page events.
239
- */
240
- sendPageEvent(pageName, additionalData) {
241
- if (pageName)
242
- this.sendEvent("page", Object.assign({ page_name: pageName }, additionalData));
243
- else
244
- this.sendEvent("page", Object.assign({ page_name: getPageName() }, additionalData));
245
- }
246
- /*
247
- - Registers new identity links with the sdk, either to be sent out with
248
- the install, or standalone.
249
- - Will update an identity link if its key already exists in storage.
250
- - A max of 10 identity links are currently allowed to be stored
251
- at any one time.
252
- */
253
- registerIdentityLink(name, identifier) {
254
- Log.diagDebug(`Host called API: Register Identity Link ${name}`);
255
- if (!name || !identifier) {
256
- Log.warn("Invalid identity link, ignoring call.");
257
- return;
258
- }
259
- if (checkDuplicateIdLink(name, identifier)) {
260
- Log.debug("Duplicate Identity Link found, ignoring.");
261
- return;
262
- }
263
- const idLink = {};
264
- idLink[name] = identifier;
265
- addPersistedIdLinks(name, identifier, __classPrivateFieldGet(this, _Kochava_instance, "f").useCookies);
266
- // if (this.#instance.installStarted || this.#instance.installDone) {
267
- if (localStorage.getItem("com.kochava.tracker.InstallSentDate")) {
268
- // it will be sent standalone
269
- __classPrivateFieldGet(this, _Kochava_jobQueue, "f").enqueueIdLink(__classPrivateFieldGet(this, _Kochava_instance, "f"), idLink);
270
- }
271
- // will be sent in install
272
- }
273
- // Allows the client to attach arbitrary data to certain payloads.
274
- registerCustomValue(name, value) {
275
- Log.diagDebug(`Host called API: Register Custom Value ${name}`);
276
- if (!name || !value) {
277
- Log.warn("Invalid custom value, ignoring call.");
278
- return;
279
- }
280
- const dataToAdorn = {};
281
- dataToAdorn[name] = value;
282
- __classPrivateFieldGet(this, _Kochava_instance, "f").customValues.push({ data: dataToAdorn, isDeviceId: false });
283
- }
284
- // Allows the client to attach arbitrary identifiers to go out in the install.
285
- registerCustomDeviceIdentifier(name, value) {
286
- Log.diagDebug(`Host called API: Register Custom Device Identifier ${name}`);
287
- if (!name || !value) {
288
- Log.warn("Invalid custom device identifier, ignoring call.");
289
- return;
290
- }
291
- const dataToAdorn = {};
292
- dataToAdorn[name] = value;
293
- __classPrivateFieldGet(this, _Kochava_instance, "f").customValues.push({ data: dataToAdorn, isDeviceId: true });
294
- }
295
- /*
296
- Returns whether or not the sdk is in a "started" state.
297
- This basically amounts to if start has been called,
298
- not if kvinit is done or the queue is started.
299
- Likewise, shutdown will set "started" to false;
300
- */
301
- getStarted() {
302
- return __classPrivateFieldGet(this, _Kochava_instance, "f").started;
303
- }
304
- /*
305
- Returns the current kochavaDeviceId, or "" if called too early.
306
- */
307
- getDeviceId() {
308
- Log.diagDebug(`Host called API: Get Kochava Device Id`);
309
- if (__classPrivateFieldGet(this, _Kochava_instance, "f").started)
310
- return __classPrivateFieldGet(this, _Kochava_instance, "f").kochavaDeviceId;
311
- else
312
- return "";
313
- }
314
- /*
315
- Puts the sdk in a "sleep" state. This will stop the sdk from dequeuing
316
- new jobs and retrying failed jobs. Different than shutdown, because the
317
- current state is not destroyed.
318
- */
319
- setSleep(sleep) {
320
- Log.diagDebug(`Host called API: Sleep ${sleep ? "Stop" : "Start"}`);
321
- if (sleep && !__classPrivateFieldGet(this, _Kochava_instance, "f").sleep) {
322
- // only pause if it was running
323
- __classPrivateFieldGet(this, _Kochava_instance, "f").sleep = sleep;
324
- __classPrivateFieldGet(this, _Kochava_jobQueue, "f").pause();
325
- }
326
- else if (!sleep && __classPrivateFieldGet(this, _Kochava_instance, "f").sleep) {
327
- // only resume queueing if it was paused
328
- __classPrivateFieldGet(this, _Kochava_instance, "f").sleep = sleep;
329
- __classPrivateFieldGet(this, _Kochava_instances, "m", _Kochava_beginStart).call(this);
330
- }
331
- }
332
- }
333
- _Kochava_instance = new WeakMap(), _Kochava_jobQueue = new WeakMap(), _Kochava_instances = new WeakSet(), _Kochava_resetInstance = function _Kochava_resetInstance() {
334
- __classPrivateFieldSet(this, _Kochava_instance, {
335
- appGuid: "",
336
- started: false,
337
- installStarted: false,
338
- kvinitDone: false,
339
- installDone: false,
340
- disableAutoPage: false,
341
- useCookies: false,
342
- sleep: false,
343
- version: "",
344
- buildDate: "",
345
- overrideUrls: {
346
- init: "",
347
- install: "",
348
- event: "",
349
- identityLink: "",
350
- },
351
- customValues: [],
352
- kochavaSession: "",
353
- retryWaterfall: [],
354
- startTimeMS: 0,
355
- utm: "",
356
- kochavaDeviceId: "",
357
- kochavaInstallId: "",
358
- kochavaSessionCount: -1,
359
- kochavaInstallDate: -1,
360
- kochavaConfig: undefined,
361
- }, "f");
362
- }, _Kochava_initInstance = function _Kochava_initInstance(appGuid) {
363
- // init instance with defaults
364
- __classPrivateFieldGet(this, _Kochava_instance, "f").appGuid = appGuid;
365
- __classPrivateFieldGet(this, _Kochava_instance, "f").disableAutoPage = __classPrivateFieldGet(this, _Kochava_instance, "f").disableAutoPage || false;
366
- __classPrivateFieldGet(this, _Kochava_instance, "f").useCookies = __classPrivateFieldGet(this, _Kochava_instance, "f").useCookies || false;
367
- __classPrivateFieldGet(this, _Kochava_instance, "f").version = __classPrivateFieldGet(this, _Kochava_instance, "f").version || SDK_VERSION;
368
- __classPrivateFieldGet(this, _Kochava_instance, "f").buildDate = "kbd: 7/1/2022, 9:12:07 AM";
369
- __classPrivateFieldGet(this, _Kochava_instance, "f").kochavaSession = utils.uuidv4().substring(0, 5);
370
- __classPrivateFieldGet(this, _Kochava_instance, "f").startTimeMS = utils.getCurrTimeMS();
371
- __classPrivateFieldGet(this, _Kochava_instance, "f").retryWaterfall = [7, 30, 300, 1800];
372
- __classPrivateFieldGet(this, _Kochava_instance, "f").kochavaConfig = JSON.parse(JSON.stringify(DEFAULTS));
373
- }, _Kochava_checkFirstLaunchAndMigrate = function _Kochava_checkFirstLaunchAndMigrate() {
374
- // If this is our first launch ever, set it in persistence.
375
- if (!readAndUpdatePersistedValue(PersistKey.FirstStartDate, __classPrivateFieldGet(this, _Kochava_instance, "f").useCookies)) {
376
- updatePersistedValue(PersistKey.FirstStartDate, String(utils.getCurrTimeSec()), __classPrivateFieldGet(this, _Kochava_instance, "f").useCookies);
377
- /*
378
- On a first launch of the v3 sdk, we need to migrate old persisted kv_id
379
- from v2.2, v2.3, and v2.5
380
- */
381
- // perform migration
382
- const oldKvId = readAndUpdatePersistedValue(PersistKey.OldKvid, __classPrivateFieldGet(this, _Kochava_instance, "f").useCookies);
383
- if (oldKvId) {
384
- updatePersistedValue(PersistKey.DeviceId, oldKvId, __classPrivateFieldGet(this, _Kochava_instance, "f").useCookies);
385
- updatePersistedValue(PersistKey.InstallSentDate, JSON.stringify(utils.getCurrTimeSec()), __classPrivateFieldGet(this, _Kochava_instance, "f").useCookies);
386
- }
387
- }
388
- }, _Kochava_checkPersistedKvinit = function _Kochava_checkPersistedKvinit() {
389
- // check if persisted kvinit
390
- let persistedKvinit = {};
391
- const persistedKvinitStr = readAndUpdatePersistedValue(PersistKey.LastKvinit, __classPrivateFieldGet(this, _Kochava_instance, "f").useCookies);
392
- if (persistedKvinitStr) {
393
- persistedKvinit = JSON.parse(persistedKvinitStr);
394
- if (persistedKvinit) {
395
- // if persisted kvinit, apply it
396
- Log.trace("Found persisted kvinit.", persistedKvinit);
397
- Kvinit.applyKvinitResp(__classPrivateFieldGet(this, _Kochava_instance, "f"), persistedKvinit);
398
- Log.trace("KochavaConfig after persistedKvinit:", JSON.parse(JSON.stringify(__classPrivateFieldGet(this, _Kochava_instance, "f").kochavaConfig)));
399
- }
400
- }
401
- // check refresh minimum too
402
- const persistedKvinitDateStr = readAndUpdatePersistedValue(PersistKey.KvinitSentDate, __classPrivateFieldGet(this, _Kochava_instance, "f").useCookies);
403
- if (persistedKvinitDateStr) {
404
- const lastKvinitDate = JSON.parse(persistedKvinitDateStr);
405
- if (lastKvinitDate) {
406
- const refreshMin = __classPrivateFieldGet(this, _Kochava_instance, "f").kochavaConfig.config.refresh_minimum;
407
- if (utils.getCurrTimeSec() - lastKvinitDate < refreshMin)
408
- __classPrivateFieldGet(this, _Kochava_instance, "f").kvinitDone = true;
409
- }
410
- }
411
- }, _Kochava_checkPersistedState = function _Kochava_checkPersistedState() {
412
- __classPrivateFieldGet(this, _Kochava_instance, "f").installDone =
413
- readAndUpdatePersistedValue(PersistKey.InstallSentDate, __classPrivateFieldGet(this, _Kochava_instance, "f").useCookies).length > 0;
414
- __classPrivateFieldGet(this, _Kochava_instance, "f").kochavaInstallId = readAndUpdatePersistedValue(PersistKey.InstallId, __classPrivateFieldGet(this, _Kochava_instance, "f").useCookies);
415
- __classPrivateFieldGet(this, _Kochava_instance, "f").kochavaDeviceId = readAndUpdateDeviceId(__classPrivateFieldGet(this, _Kochava_instance, "f").useCookies);
416
- __classPrivateFieldGet(this, _Kochava_instance, "f").kochavaSessionCount = readAndUpdateSessionCount(__classPrivateFieldGet(this, _Kochava_instance, "f").useCookies);
417
- __classPrivateFieldGet(this, _Kochava_instance, "f").utm = readAndUpdateUTM(__classPrivateFieldGet(this, _Kochava_instance, "f").appGuid, __classPrivateFieldGet(this, _Kochava_instance, "f").useCookies);
418
- }, _Kochava_printStartupMsgs = function _Kochava_printStartupMsgs(appGuid) {
419
- Log.diagInfo(`Started SDK ${__classPrivateFieldGet(this, _Kochava_instance, "f").version}
420
- published ${__classPrivateFieldGet(this, _Kochava_instance, "f").buildDate}`);
421
- Log.diagInfo(`The log level is set to ${Log.getLogLevel()}`);
422
- Log.diagDebug(`This ${!__classPrivateFieldGet(this, _Kochava_instance, "f").installDone ? "is" : "is not"} the first tracker SDK launch`);
423
- Log.diagDebug(`The kochava device id is ${__classPrivateFieldGet(this, _Kochava_instance, "f").kochavaDeviceId}`);
424
- Log.diagDebug(`The kochava app GUID provided was ${appGuid}`);
425
- }, _Kochava_beginStart = async function _Kochava_beginStart() {
426
- // if we need to send a new kvinit, send it
427
- if (!__classPrivateFieldGet(this, _Kochava_instance, "f").kvinitDone) {
428
- Log.diagDebug(`A new kvinit will be sent`);
429
- await __classPrivateFieldGet(this, _Kochava_instances, "m", _Kochava_performNewKvinit).call(this);
430
- }
431
- else {
432
- Log.diagDebug(`A new kvinit will not be sent`);
433
- }
434
- // if the install_id changed and thus a new install must go out
435
- if (__classPrivateFieldGet(this, _Kochava_instances, "m", _Kochava_checkResendId).call(this))
436
- __classPrivateFieldGet(this, _Kochava_instance, "f").installDone = false;
437
- Log.diagDebug(`The install ${__classPrivateFieldGet(this, _Kochava_instance, "f").installDone ? "has already" : "has not yet"} been sent`);
438
- if (__classPrivateFieldGet(this, _Kochava_instance, "f").sleep)
439
- return;
440
- if (!__classPrivateFieldGet(this, _Kochava_instance, "f").installDone) {
441
- await __classPrivateFieldGet(this, _Kochava_instances, "m", _Kochava_performInstall).call(this);
442
- }
443
- if (__classPrivateFieldGet(this, _Kochava_instance, "f").kvinitDone && __classPrivateFieldGet(this, _Kochava_instance, "f").installDone) {
444
- await __classPrivateFieldGet(this, _Kochava_jobQueue, "f").start(__classPrivateFieldGet(this, _Kochava_instance, "f"));
445
- }
446
- }, _Kochava_performNewKvinit = async function _Kochava_performNewKvinit() {
447
- __classPrivateFieldGet(this, _Kochava_instance, "f").kvinitDone = await Kvinit.send(__classPrivateFieldGet(this, _Kochava_instance, "f"), __classPrivateFieldGet(this, _Kochava_instance, "f").retryWaterfall);
448
- updatePersistedValue(PersistKey.KvinitSentDate, String(utils.getCurrTimeSec()), __classPrivateFieldGet(this, _Kochava_instance, "f").useCookies);
449
- // if new kvinit, apply it
450
- let newKvinit = {};
451
- const newKvinitStr = readAndUpdatePersistedValue(PersistKey.LastKvinit, __classPrivateFieldGet(this, _Kochava_instance, "f").useCookies);
452
- if (newKvinitStr) {
453
- newKvinit = JSON.parse(newKvinitStr);
454
- }
455
- Kvinit.applyKvinitResp(__classPrivateFieldGet(this, _Kochava_instance, "f"), newKvinit);
456
- Log.trace("KochavaConfig after new Kvinit:", JSON.parse(JSON.stringify(__classPrivateFieldGet(this, _Kochava_instance, "f").kochavaConfig)));
457
- }, _Kochava_checkResendId = function _Kochava_checkResendId() {
458
- let resendId = "";
459
- if (__classPrivateFieldGet(this, _Kochava_instance, "f").kochavaConfig.install) {
460
- resendId = __classPrivateFieldGet(this, _Kochava_instance, "f").kochavaConfig.install.resend_id;
461
- }
462
- const needsNewInstall = checkInstallIdChange(resendId, __classPrivateFieldGet(this, _Kochava_instance, "f").useCookies);
463
- if (needsNewInstall) {
464
- Log.debug(`resend_id ${resendId} found, forcing new install`);
465
- }
466
- return needsNewInstall;
467
- }, _Kochava_performInstall = async function _Kochava_performInstall() {
468
- const request = Install.build(__classPrivateFieldGet(this, _Kochava_instance, "f"));
469
- __classPrivateFieldGet(this, _Kochava_instance, "f").installDone = await Install.send(__classPrivateFieldGet(this, _Kochava_instance, "f"), request);
470
- if (!__classPrivateFieldGet(this, _Kochava_instance, "f").installDone)
471
- return;
472
- // If the install succeeded, remove all idLink that were passed to it
473
- Install.onSuccess(__classPrivateFieldGet(this, _Kochava_instance, "f"));
474
- updatePersistedValue(PersistKey.IdLinkQueue, JSON.stringify(__classPrivateFieldGet(this, _Kochava_jobQueue, "f").idLinkQueue), false);
475
- };
476
- // Only here for generic Web integration
477
- window.kochava = Kochava.create();
@@ -1,6 +0,0 @@
1
- import { Json } from "../interfaces";
2
- import { KochavaInstance } from "../kochava";
3
- import { PreStartBody, PostStartBody } from "./payload";
4
- export declare const constructPreStart: (instance: KochavaInstance, eventName: string, eventData?: Json | string) => PreStartBody;
5
- export declare const constructPostStart: (instance: KochavaInstance, preStartBody: PreStartBody) => PostStartBody;
6
- export declare const send: (instance: KochavaInstance, preStartBody: PreStartBody, postStartBody: PostStartBody) => Promise<boolean>;
@@ -1,92 +0,0 @@
1
- /*
2
- Authored by Brett Barinaga on 11/17/21.
3
- Copyright (c) Kochava, Inc. All rights reserved.
4
- */
5
- import * as http from "../http";
6
- import * as utils from "../utils/utils";
7
- import * as browser from "../browser/browser";
8
- import { Log } from "../utils/log";
9
- import { constructCommonData } from "./payload";
10
- export const constructPreStart = (instance, eventName, eventData) => {
11
- const preStart = {
12
- action: "event",
13
- sdk_version: instance.version,
14
- sdk_protocol: "17",
15
- data: {
16
- event_name: eventName,
17
- event_data: eventData,
18
- device_orientation: browser.getDeviceOrientation(),
19
- disp_w: browser.getDeviceWidth(),
20
- disp_h: browser.getDeviceHeight(),
21
- },
22
- };
23
- if (instance.kochavaConfig)
24
- preStart.init_token = (instance.kochavaConfig.config.init_token) || undefined;
25
- return preStart;
26
- };
27
- export const constructPostStart = (instance, preStartBody) => {
28
- const postStartBody = {
29
- kochava_app_id: instance.appGuid,
30
- kochava_device_id: instance.kochavaDeviceId,
31
- nt_id: `${instance.kochavaSession}-${instance.kochavaSessionCount}-${utils.uuidv4()}`,
32
- };
33
- postStartBody.data = Object.assign(Object.assign({}, constructCommonData(instance)), preStartBody.data);
34
- instance.customValues.forEach((custom) => {
35
- if (!custom.isDeviceId) {
36
- const customKey = Object.keys(custom.data)[0];
37
- if (instance.kochavaConfig.privacy) {
38
- let keyAllowed = false;
39
- for (const allowed of instance.kochavaConfig.privacy.allow_custom_ids) {
40
- if (customKey === allowed) {
41
- keyAllowed = true;
42
- }
43
- }
44
- if (keyAllowed)
45
- postStartBody.data = Object.assign(Object.assign({}, custom.data), postStartBody.data);
46
- }
47
- }
48
- });
49
- return postStartBody;
50
- };
51
- const build = (instance, preStartBody, postStartBody) => {
52
- const payload = Object.assign(Object.assign({}, preStartBody), postStartBody);
53
- Log.debug("Event Payload", JSON.stringify(payload));
54
- if (instance.kochavaConfig.privacy) {
55
- instance.kochavaConfig.privacy.deny_datapoints.forEach(denyPoint => {
56
- for (const point in payload.data) {
57
- const key = point;
58
- if (key === denyPoint)
59
- delete payload.data[key];
60
- }
61
- for (const point in payload) {
62
- const key = point;
63
- if (key === denyPoint)
64
- delete payload[key];
65
- }
66
- });
67
- }
68
- return payload;
69
- };
70
- export const send = async (instance, preStartBody, postStartBody) => {
71
- const payload = build(instance, preStartBody, postStartBody);
72
- const respStr = await http.sendRequest(payload, (instance.overrideUrls.event) ?
73
- instance.overrideUrls.event : instance.kochavaConfig.networking.urls.event);
74
- let resp;
75
- let success = false;
76
- try {
77
- Log.trace("Event Response string:", respStr);
78
- resp = JSON.parse(respStr);
79
- Log.debug("Event Response:", respStr);
80
- success = http.wasRespSuccess(resp.success);
81
- }
82
- catch (e) {
83
- Log.error("Error parsing Event Response", e);
84
- success = false;
85
- }
86
- if (success) {
87
- Log.info("Event success!");
88
- return true;
89
- }
90
- Log.error("Event failed!");
91
- return false;
92
- };
@@ -1,7 +0,0 @@
1
- import { IdentityLink } from "../interfaces";
2
- import { KochavaInstance } from "../kochava";
3
- import { PostStartBody, PreStartBody } from "./payload";
4
- import { IdLinkJob } from "../jobqueue";
5
- export declare const constructPreStart: (instance: KochavaInstance, idLink: IdentityLink) => PreStartBody;
6
- export declare const constructPostStart: (instance: KochavaInstance, preStartBody: PreStartBody) => PostStartBody;
7
- export declare const send: (instance: KochavaInstance, job: IdLinkJob) => Promise<boolean>;
@@ -1,73 +0,0 @@
1
- /*
2
- Authored by Brett Barinaga on 11/18/21.
3
- Copyright (c) Kochava, Inc. All rights reserved.
4
- */
5
- import * as http from "../http";
6
- import * as utils from "../utils/utils";
7
- import { Log } from "../utils/log";
8
- import { constructCommonData } from "./payload";
9
- export const constructPreStart = (instance, idLink) => {
10
- const preStart = {
11
- action: "identityLink",
12
- sdk_version: instance.version,
13
- sdk_protocol: "17",
14
- data: {
15
- identity_link: Object.assign({}, idLink),
16
- },
17
- };
18
- if (instance.kochavaConfig)
19
- preStart.init_token = (instance.kochavaConfig.config.init_token) || undefined;
20
- return preStart;
21
- };
22
- export const constructPostStart = (instance, preStartBody) => {
23
- const postStartBody = {
24
- kochava_app_id: instance.appGuid,
25
- kochava_device_id: instance.kochavaDeviceId,
26
- nt_id: `${instance.kochavaSession}-${instance.kochavaSessionCount}-${utils.uuidv4()}`,
27
- };
28
- postStartBody.data = Object.assign(Object.assign({}, preStartBody.data), constructCommonData(instance));
29
- return postStartBody;
30
- };
31
- const build = (instance, job) => {
32
- const payload = Object.assign(Object.assign({}, job.preStartBody), job.postStartBody);
33
- Log.debug("IdentityLink Payload", JSON.stringify(payload));
34
- Log.diagDebug(`IdentityLink to be sent as stand alone`);
35
- if (instance.kochavaConfig.privacy) {
36
- instance.kochavaConfig.privacy.deny_datapoints.forEach(denyPoint => {
37
- for (const point in payload.data) {
38
- const key = point;
39
- if (key === denyPoint)
40
- delete payload.data[key];
41
- }
42
- for (const point in payload) {
43
- const key = point;
44
- if (key === denyPoint)
45
- delete payload[key];
46
- }
47
- });
48
- }
49
- return payload;
50
- };
51
- export const send = async (instance, job) => {
52
- const payload = build(instance, job);
53
- const respStr = await http.sendRequest(payload, (instance.overrideUrls.identityLink) ?
54
- instance.overrideUrls.identityLink : instance.kochavaConfig.networking.urls.identityLink);
55
- let resp;
56
- let success = false;
57
- try {
58
- Log.trace("IdentityLink Response string:", respStr);
59
- resp = JSON.parse(respStr);
60
- Log.debug("IdentityLink Response:", respStr);
61
- success = http.wasRespSuccess(resp.success);
62
- }
63
- catch (e) {
64
- Log.error("Error parsing IdentityLink Response", e);
65
- success = false;
66
- }
67
- if (success) {
68
- Log.info("IdentityLink success!");
69
- return true;
70
- }
71
- Log.error("IdentityLink failed!");
72
- return false;
73
- };
@@ -1,6 +0,0 @@
1
- import { KochavaInstance } from "../kochava";
2
- import { Payload } from "./payload";
3
- export declare const build: (instance: KochavaInstance) => Payload;
4
- export declare const cancelRetries: () => void;
5
- export declare const send: (instance: KochavaInstance, payload: Payload, retries?: number) => Promise<boolean>;
6
- export declare const onSuccess: (instance: KochavaInstance) => void;