kv-test-lib 1.0.4 → 1.0.5

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 (43) hide show
  1. package/dist/browser/browser.js +9 -13
  2. package/dist/browser/browser.js.map +1 -0
  3. package/dist/browser/cookies.js +7 -17
  4. package/dist/browser/cookies.js.map +1 -0
  5. package/dist/browser/persist.js +22 -49
  6. package/dist/browser/persist.js.map +1 -0
  7. package/dist/http.js +4 -4
  8. package/dist/http.js.map +1 -0
  9. package/dist/interfaces.js +7 -6
  10. package/dist/interfaces.js.map +1 -0
  11. package/dist/jobqueue.js +12 -21
  12. package/dist/jobqueue.js.map +1 -0
  13. package/dist/kochava.js +27 -52
  14. package/dist/kochava.js.map +1 -0
  15. package/dist/payloads/event.js +11 -16
  16. package/dist/payloads/event.js.map +1 -0
  17. package/dist/payloads/identityLink.js +9 -13
  18. package/dist/payloads/identityLink.js.map +1 -0
  19. package/dist/payloads/install.js +19 -30
  20. package/dist/payloads/install.js.map +1 -0
  21. package/dist/payloads/kvinit.js +17 -22
  22. package/dist/payloads/kvinit.js.map +1 -0
  23. package/dist/payloads/payload.js +5 -5
  24. package/dist/payloads/payload.js.map +1 -0
  25. package/dist/utils/log.js +10 -16
  26. package/dist/utils/log.js.map +1 -0
  27. package/dist/utils/utils.js +4 -6
  28. package/dist/utils/utils.js.map +1 -0
  29. package/package.json +1 -1
  30. package/dist/browser/browser.d.ts +0 -8
  31. package/dist/browser/cookies.d.ts +0 -3
  32. package/dist/browser/persist.d.ts +0 -33
  33. package/dist/http.d.ts +0 -7
  34. package/dist/interfaces.d.ts +0 -117
  35. package/dist/jobqueue.d.ts +0 -35
  36. package/dist/kochava.d.ts +0 -67
  37. package/dist/payloads/event.d.ts +0 -6
  38. package/dist/payloads/identityLink.d.ts +0 -7
  39. package/dist/payloads/install.d.ts +0 -6
  40. package/dist/payloads/kvinit.d.ts +0 -5
  41. package/dist/payloads/payload.d.ts +0 -33
  42. package/dist/utils/log.d.ts +0 -30
  43. package/dist/utils/utils.d.ts +0 -5
package/dist/kochava.js CHANGED
@@ -9,8 +9,8 @@ import { Log } from "./utils/log";
9
9
  import JobQueue from "./jobqueue";
10
10
  import * as Kvinit from "./payloads/kvinit";
11
11
  import * as Install from "./payloads/install";
12
- import { DEFAULTS, } from "./interfaces";
13
- import { deleteAllPersisted, readAndUpdatePersistedValue, updatePersistedValue, PersistKey, checkDuplicateIdLink, addPersistedIdLinks, checkInstallIdChange, readAndUpdateSessionCount, readAndUpdateDeviceId, readAndUpdateUTM, } from "./browser/persist";
12
+ import { DEFAULTS } from "./interfaces";
13
+ import { deleteAllPersisted, readAndUpdatePersistedValue, updatePersistedValue, PersistKey, checkDuplicateIdLink, addPersistedIdLinks, checkInstallIdChange, readAndUpdateSessionCount, readAndUpdateDeviceId, readAndUpdateUTM } from "./browser/persist";
14
14
  import * as utils from "./utils/utils";
15
15
  import { getPageName } from "./browser/browser";
16
16
  // NOTE: Update this with new releases.
@@ -82,8 +82,7 @@ export class Kochava {
82
82
  Log.error(`Invalid appGuid ${appGuid}, start failed.`);
83
83
  return;
84
84
  }
85
- if (!this.instance)
86
- this.resetInstance();
85
+ if (!this.instance) this.resetInstance();
87
86
  if (this.instance.started) {
88
87
  Log.warn("Kochava SDK already started.");
89
88
  return;
@@ -92,8 +91,7 @@ export class Kochava {
92
91
  this.instance.started = true;
93
92
  this.checkFirstLaunchAndMigrate();
94
93
  this.initInstance(appGuid);
95
- if (!this.instance.disableAutoPage)
96
- this.sendPageEvent();
94
+ if (!this.instance.disableAutoPage) this.sendPageEvent();
97
95
  this.checkPersistedState();
98
96
  this.checkPersistedKvinit();
99
97
  this.printStartupMsgs(appGuid);
@@ -148,8 +146,7 @@ export class Kochava {
148
146
  case "wrapper":
149
147
  {
150
148
  const wrapperVersion = JSON.parse(valueStr);
151
- if (!this.instance.version)
152
- this.instance.version = "WebTracker " + SDK_VERSION;
149
+ if (!this.instance.version) this.instance.version = "WebTracker " + SDK_VERSION;
153
150
  switch (wrapperVersion.name) {
154
151
  case "Angular":
155
152
  this.instance.version += ` (${wrapperVersion.name} ${wrapperVersion.version})`;
@@ -163,37 +160,27 @@ export class Kochava {
163
160
  case "urls":
164
161
  {
165
162
  const overrideUrls = JSON.parse(valueStr);
166
- if (overrideUrls.init)
167
- this.instance.overrideUrls.init = overrideUrls.init;
168
- if (overrideUrls.event)
169
- this.instance.overrideUrls.event = overrideUrls.event;
170
- if (overrideUrls.install)
171
- this.instance.overrideUrls.install = overrideUrls.install;
172
- if (overrideUrls.identityLink)
173
- this.instance.overrideUrls.identityLink = overrideUrls.identityLink;
163
+ if (overrideUrls.init) this.instance.overrideUrls.init = overrideUrls.init;
164
+ if (overrideUrls.event) this.instance.overrideUrls.event = overrideUrls.event;
165
+ if (overrideUrls.install) this.instance.overrideUrls.install = overrideUrls.install;
166
+ if (overrideUrls.identityLink) this.instance.overrideUrls.identityLink = overrideUrls.identityLink;
174
167
  }
175
168
  break;
176
169
  case "urlsRestore":
177
170
  {
178
171
  const restoreUrls = JSON.parse(valueStr);
179
172
  for (const url of restoreUrls) {
180
- if (url === "init")
181
- this.instance.overrideUrls.init = DEFAULTS.networking.urls.init;
182
- if (url === "event")
183
- this.instance.overrideUrls.event = DEFAULTS.networking.urls.event;
184
- if (url === "install")
185
- this.instance.overrideUrls.install =
186
- DEFAULTS.networking.urls.install;
187
- if (url === "identityLink")
188
- this.instance.overrideUrls.identityLink =
189
- DEFAULTS.networking.urls.identityLink;
173
+ if (url === "init") this.instance.overrideUrls.init = DEFAULTS.networking.urls.init;
174
+ if (url === "event") this.instance.overrideUrls.event = DEFAULTS.networking.urls.event;
175
+ if (url === "install") this.instance.overrideUrls.install = DEFAULTS.networking.urls.install;
176
+ if (url === "identityLink") this.instance.overrideUrls.identityLink = DEFAULTS.networking.urls.identityLink;
190
177
  }
191
178
  }
192
179
  break;
193
180
  case "logFilter":
194
181
  {
195
182
  const disabled = JSON.parse(valueStr);
196
- disabled.forEach((level) => Log.disableLogType(level));
183
+ disabled.forEach(level => Log.disableLogType(level));
197
184
  }
198
185
  break;
199
186
  case "getInstance":
@@ -226,10 +213,7 @@ export class Kochava {
226
213
  Wraps the sendEvent call with predefined data specific to page events.
227
214
  */
228
215
  sendPageEvent(pageName, additionalData) {
229
- if (pageName)
230
- this.sendEvent("page", Object.assign({ page_name: pageName }, additionalData));
231
- else
232
- this.sendEvent("page", Object.assign({ page_name: getPageName() }, additionalData));
216
+ if (pageName) this.sendEvent("page", Object.assign({ page_name: pageName }, additionalData));else this.sendEvent("page", Object.assign({ page_name: getPageName() }, additionalData));
233
217
  }
234
218
  /*
235
219
  - Registers new identity links with the sdk, either to be sent out with
@@ -294,10 +278,7 @@ export class Kochava {
294
278
  */
295
279
  getDeviceId() {
296
280
  Log.diagDebug(`Host called API: Get Kochava Device Id`);
297
- if (this.instance.started)
298
- return this.instance.kochavaDeviceId;
299
- else
300
- return "";
281
+ if (this.instance.started) return this.instance.kochavaDeviceId;else return "";
301
282
  }
302
283
  /*
303
284
  Puts the sdk in a "sleep" state. This will stop the sdk from dequeuing
@@ -310,8 +291,7 @@ export class Kochava {
310
291
  // only pause if it was running
311
292
  this.instance.sleep = sleep;
312
293
  this.jobQueue.pause();
313
- }
314
- else if (!sleep && this.instance.sleep) {
294
+ } else if (!sleep && this.instance.sleep) {
315
295
  // only resume queueing if it was paused
316
296
  this.instance.sleep = sleep;
317
297
  this.beginStart();
@@ -336,7 +316,7 @@ export class Kochava {
336
316
  init: "",
337
317
  install: "",
338
318
  event: "",
339
- identityLink: "",
319
+ identityLink: ""
340
320
  },
341
321
  customValues: [],
342
322
  kochavaSession: "",
@@ -347,7 +327,7 @@ export class Kochava {
347
327
  kochavaInstallId: "",
348
328
  kochavaSessionCount: -1,
349
329
  kochavaInstallDate: -1,
350
- kochavaConfig: undefined,
330
+ kochavaConfig: undefined
351
331
  };
352
332
  }
353
333
  initInstance(appGuid) {
@@ -356,7 +336,7 @@ export class Kochava {
356
336
  this.instance.disableAutoPage = this.instance.disableAutoPage || false;
357
337
  this.instance.useCookies = this.instance.useCookies || false;
358
338
  this.instance.version = this.instance.version || "WebTracker " + SDK_VERSION;
359
- this.instance.buildDate = "kbd: 8/16/2024, 3:02:42 PM";
339
+ this.instance.buildDate = "kbd: 8/16/2024, 3:55:07 PM";
360
340
  this.instance.kochavaSession = utils.uuidv4().substring(0, 5);
361
341
  this.instance.startTimeMS = utils.getCurrTimeMS();
362
342
  this.instance.retryWaterfall = [7, 30, 300, 1800];
@@ -397,14 +377,12 @@ export class Kochava {
397
377
  const lastKvinitDate = JSON.parse(persistedKvinitDateStr);
398
378
  if (lastKvinitDate) {
399
379
  const refreshMin = this.instance.kochavaConfig.config.refresh_minimum;
400
- if (utils.getCurrTimeSec() - lastKvinitDate < refreshMin)
401
- this.instance.kvinitDone = true;
380
+ if (utils.getCurrTimeSec() - lastKvinitDate < refreshMin) this.instance.kvinitDone = true;
402
381
  }
403
382
  }
404
383
  }
405
384
  checkPersistedState() {
406
- this.instance.installDone =
407
- readAndUpdatePersistedValue(PersistKey.InstallSentDate, this.instance.useCookies).length > 0;
385
+ this.instance.installDone = readAndUpdatePersistedValue(PersistKey.InstallSentDate, this.instance.useCookies).length > 0;
408
386
  this.instance.kochavaInstallId = readAndUpdatePersistedValue(PersistKey.InstallId, this.instance.useCookies);
409
387
  this.instance.kochavaDeviceId = readAndUpdateDeviceId(this.instance.useCookies);
410
388
  this.instance.kochavaSessionCount = readAndUpdateSessionCount(this.instance.useCookies);
@@ -423,16 +401,13 @@ export class Kochava {
423
401
  if (!this.instance.kvinitDone) {
424
402
  Log.diagDebug(`A new kvinit will be sent`);
425
403
  await this.performNewKvinit();
426
- }
427
- else {
404
+ } else {
428
405
  Log.diagDebug(`A new kvinit will not be sent`);
429
406
  }
430
407
  // if the install_id changed and thus a new install must go out
431
- if (this.checkResendId())
432
- this.instance.installDone = false;
408
+ if (this.checkResendId()) this.instance.installDone = false;
433
409
  Log.diagDebug(`The install ${this.instance.installDone ? "has already" : "has not yet"} been sent`);
434
- if (this.instance.sleep)
435
- return;
410
+ if (this.instance.sleep) return;
436
411
  if (!this.instance.installDone) {
437
412
  await this.performInstall();
438
413
  }
@@ -466,8 +441,7 @@ export class Kochava {
466
441
  async performInstall() {
467
442
  const request = Install.build(this.instance);
468
443
  this.instance.installDone = await Install.send(this.instance, request);
469
- if (!this.instance.installDone)
470
- return;
444
+ if (!this.instance.installDone) return;
471
445
  // If the install succeeded, remove all idLink that were passed to it
472
446
  Install.onSuccess(this.instance);
473
447
  updatePersistedValue(PersistKey.IdLinkQueue, JSON.stringify(this.jobQueue.idLinkQueue), false);
@@ -475,3 +449,4 @@ export class Kochava {
475
449
  }
476
450
  // Only here for generic Web integration
477
451
  window.kochava = Kochava.create();
452
+ //# sourceMappingURL=kochava.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../dist/kochava.js"],"names":["Log","JobQueue","Kvinit","Install","DEFAULTS","deleteAllPersisted","readAndUpdatePersistedValue","updatePersistedValue","PersistKey","checkDuplicateIdLink","addPersistedIdLinks","checkInstallIdChange","readAndUpdateSessionCount","readAndUpdateDeviceId","readAndUpdateUTM","utils","getPageName","SDK_VERSION","Kochava","constructor","resetInstance","jobQueue","create","createForNode","kochava","executeAdvancedInstruction","JSON","stringify","name","version","createForReact","createForVue","createForAngular","useCookies","condition","instance","disableAutoPage","startWithAppGuid","appGuid","error","started","warn","diagDebug","checkFirstLaunchAndMigrate","initInstance","sendPageEvent","checkPersistedState","checkPersistedKvinit","printStartupMsgs","beginStart","shutdown","deleteData","debug","info","cancelRetries","stop","setLogLevel","logLevel","key","valueStr","callback","wrapperVersion","parse","overrideUrls","init","event","install","identityLink","restoreUrls","url","networking","urls","disabled","forEach","level","disableLogType","currInstance","setLogObjects","sendEvent","data","enqueueEvent","pageName","additionalData","Object","assign","page_name","registerIdentityLink","identifier","idLink","localStorage","getItem","enqueueIdLink","registerCustomValue","value","dataToAdorn","customValues","push","isDeviceId","registerCustomDeviceIdentifier","getStarted","getDeviceId","kochavaDeviceId","setSleep","sleep","pause","installStarted","kvinitDone","installDone","buildDate","kochavaSession","retryWaterfall","startTimeMS","utm","kochavaInstallId","kochavaSessionCount","kochavaInstallDate","kochavaConfig","undefined","uuidv4","substring","getCurrTimeMS","FirstStartDate","String","getCurrTimeSec","oldKvId","OldKvid","DeviceId","InstallSentDate","persistedKvinit","persistedKvinitStr","LastKvinit","trace","applyKvinitResp","persistedKvinitDateStr","KvinitSentDate","lastKvinitDate","refreshMin","config","refresh_minimum","length","InstallId","diagInfo","getLogLevel","performNewKvinit","checkResendId","performInstall","start","send","newKvinit","newKvinitStr","resendId","resend_id","needsNewInstall","request","build","onSuccess","IdLinkQueue","idLinkQueue","window"],"mappings":"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","file":"kochava.js","sourcesContent":["/*\n Authored by Brett Barinaga on 11/17/21.\n Copyright (c) Kochava, Inc. All rights reserved.\n*/\nimport 'core-js/stable';\nimport 'regenerator-runtime/runtime';\nimport 'whatwg-fetch';\nimport { Log } from \"./utils/log\";\nimport JobQueue from \"./jobqueue\";\nimport * as Kvinit from \"./payloads/kvinit\";\nimport * as Install from \"./payloads/install\";\nimport { DEFAULTS, } from \"./interfaces\";\nimport { deleteAllPersisted, readAndUpdatePersistedValue, updatePersistedValue, PersistKey, checkDuplicateIdLink, addPersistedIdLinks, checkInstallIdChange, readAndUpdateSessionCount, readAndUpdateDeviceId, readAndUpdateUTM, } from \"./browser/persist\";\nimport * as utils from \"./utils/utils\";\nimport { getPageName } from \"./browser/browser\";\n// NOTE: Update this with new releases.\nconst SDK_VERSION = \"3.1.0\";\nexport class Kochava {\n // User will use the below factories instead of directly calling \n // the constructor\n constructor() {\n this.resetInstance();\n this.jobQueue = new JobQueue();\n }\n // ============================= PUBLIC =============================== //\n static create() {\n return new Kochava();\n }\n static createForNode() {\n const kochava = new Kochava();\n kochava.executeAdvancedInstruction(\"wrapper\", JSON.stringify({ name: \"Node\", version: \"\" }));\n return kochava;\n }\n static createForReact() {\n const kochava = new Kochava();\n kochava.executeAdvancedInstruction(\"wrapper\", JSON.stringify({ name: \"React\", version: \"\" }));\n return kochava;\n }\n static createForVue() {\n const kochava = new Kochava();\n kochava.executeAdvancedInstruction(\"wrapper\", JSON.stringify({ name: \"Vue\", version: \"\" }));\n return kochava;\n }\n static createForAngular() {\n const kochava = new Kochava();\n kochava.executeAdvancedInstruction(\"wrapper\", JSON.stringify({ name: \"Angular\", version: \"1.0.0\" }));\n return kochava;\n }\n /*\n Set if the SDK should also store persisted values in cookie storage.\n - Not all values can be persisted in cookies, such as event/idlink queues\n due to size constraints.\n - true = yes use cookies\n - no = no don't use cookies\n - defaults to false\n */\n useCookies(condition = false) {\n this.instance.useCookies = condition;\n }\n /*\n - Set whether the sdk shouldn't automatically send a page or should.\n - true = no auto page\n - false = yes auto page\n - defaults to false\n */\n disableAutoPage(condition = false) {\n this.instance.disableAutoPage = condition;\n }\n /*\n The primary means for starting the sdk.\n Responsibilites:\n - Checks for migrations.\n - Creates the sdk instance.\n - Checks for persisted state.\n - Determines and sends kvinit.\n - Determines and sends install.\n - Optionally enqueues an auto_page.\n - Starts the job queue.\n */\n startWithAppGuid(appGuid) {\n if (!appGuid) {\n Log.error(`Invalid appGuid ${appGuid}, start failed.`);\n return;\n }\n if (!this.instance)\n this.resetInstance();\n if (this.instance.started) {\n Log.warn(\"Kochava SDK already started.\");\n return;\n }\n Log.diagDebug(`Host called API: Start With App Guid ${appGuid}`);\n this.instance.started = true;\n this.checkFirstLaunchAndMigrate();\n this.initInstance(appGuid);\n if (!this.instance.disableAutoPage)\n this.sendPageEvent();\n this.checkPersistedState();\n this.checkPersistedKvinit();\n this.printStartupMsgs(appGuid);\n this.beginStart();\n }\n /*\n Primary means for stopping the sdk.\n Will optionally delete all persisted data, and will shutdown the\n sdk and job queue.\n */\n shutdown(deleteData) {\n Log.diagDebug(`Host called API: Shutdown and ${deleteData ? \"delete data\" : \"keep data\"}`);\n if (deleteData) {\n Log.debug(\"Deleting persisted values\");\n deleteAllPersisted();\n }\n if (!this.instance.started) {\n Log.warn(\"SDK already shutdown.\");\n }\n Log.info(\"SDK shutting down.\");\n Kvinit.cancelRetries();\n Install.cancelRetries();\n this.jobQueue.stop();\n // wipe whatever was previously in the queue\n this.jobQueue = new JobQueue();\n this.resetInstance();\n }\n /*\n Changes the current logLevel.\n Options include:\n - Off :: No logging whatsoever\n - Error :: Only critical errors\n - Warn :: Only critical errors and non-critical warnings\n - Info :: High-level sdk behavior logs (default)\n - Debug :: More in-depth sdk behavior logs and payload logs\n - Trace :: Everything, granular detail\n */\n setLogLevel(logLevel) {\n Log.diagDebug(`Host called API: Set Log Level ${logLevel}`);\n Log.setLogLevel(logLevel);\n }\n /*\n Used internally, for special SDK behavior not utilized by a client.\n Examples include:\n - urls :: purposefully changing an endpoint for testing\n - wrapper :: overwriting the version of a wrapper\n several more ...\n */\n executeAdvancedInstruction(key, valueStr, callback) {\n Log.diagDebug(`Host called API: Execute Advanced Instruction ${key}`);\n switch (key) {\n case \"wrapper\":\n {\n const wrapperVersion = JSON.parse(valueStr);\n if (!this.instance.version)\n this.instance.version = \"WebTracker \" + SDK_VERSION;\n switch (wrapperVersion.name) {\n case \"Angular\":\n this.instance.version += ` (${wrapperVersion.name} ${wrapperVersion.version})`;\n break;\n default:\n this.instance.version += ` (${wrapperVersion.name})`;\n break;\n }\n }\n break;\n case \"urls\":\n {\n const overrideUrls = JSON.parse(valueStr);\n if (overrideUrls.init)\n this.instance.overrideUrls.init = overrideUrls.init;\n if (overrideUrls.event)\n this.instance.overrideUrls.event = overrideUrls.event;\n if (overrideUrls.install)\n this.instance.overrideUrls.install = overrideUrls.install;\n if (overrideUrls.identityLink)\n this.instance.overrideUrls.identityLink = overrideUrls.identityLink;\n }\n break;\n case \"urlsRestore\":\n {\n const restoreUrls = JSON.parse(valueStr);\n for (const url of restoreUrls) {\n if (url === \"init\")\n this.instance.overrideUrls.init = DEFAULTS.networking.urls.init;\n if (url === \"event\")\n this.instance.overrideUrls.event = DEFAULTS.networking.urls.event;\n if (url === \"install\")\n this.instance.overrideUrls.install =\n DEFAULTS.networking.urls.install;\n if (url === \"identityLink\")\n this.instance.overrideUrls.identityLink =\n DEFAULTS.networking.urls.identityLink;\n }\n }\n break;\n case \"logFilter\":\n {\n const disabled = JSON.parse(valueStr);\n disabled.forEach((level) => Log.disableLogType(level));\n }\n break;\n case \"getInstance\":\n {\n const currInstance = JSON.stringify(this.instance);\n callback(currInstance);\n Log.debug(`capturing instance: ${valueStr}`);\n }\n break;\n case \"logObjects\":\n Log.setLogObjects(JSON.parse(valueStr));\n break;\n default:\n break;\n }\n }\n /*\n Builds and enqueues a kochava event. Must include an event_name string,\n with optional event_data as either another string or object.\n */\n sendEvent(name, data) {\n Log.diagDebug(`Host called API: Send Event`);\n if (!name) {\n Log.warn(\"Invalid event name, ignoring call.\");\n return;\n }\n this.jobQueue.enqueueEvent(this.instance, [name, data]);\n }\n /*\n Wraps the sendEvent call with predefined data specific to page events.\n */\n sendPageEvent(pageName, additionalData) {\n if (pageName)\n this.sendEvent(\"page\", Object.assign({ page_name: pageName }, additionalData));\n else\n this.sendEvent(\"page\", Object.assign({ page_name: getPageName() }, additionalData));\n }\n /*\n - Registers new identity links with the sdk, either to be sent out with\n the install, or standalone.\n - Will update an identity link if its key already exists in storage.\n - A max of 10 identity links are currently allowed to be stored\n at any one time.\n */\n registerIdentityLink(name, identifier) {\n Log.diagDebug(`Host called API: Register Identity Link ${name}`);\n if (!name || !identifier) {\n Log.warn(\"Invalid identity link, ignoring call.\");\n return;\n }\n if (checkDuplicateIdLink(name, identifier)) {\n Log.debug(\"Duplicate Identity Link found, ignoring.\");\n return;\n }\n const idLink = {};\n idLink[name] = identifier;\n addPersistedIdLinks(name, identifier, this.instance.useCookies);\n // if (this.instance.installStarted || this.instance.installDone) {\n if (localStorage.getItem(\"com.kochava.tracker.InstallSentDate\")) {\n // it will be sent standalone\n this.jobQueue.enqueueIdLink(this.instance, idLink);\n }\n // will be sent in install\n }\n // Allows the client to attach arbitrary data to certain payloads. \n registerCustomValue(name, value) {\n Log.diagDebug(`Host called API: Register Custom Value ${name}`);\n if (!name || !value) {\n Log.warn(\"Invalid custom value, ignoring call.\");\n return;\n }\n const dataToAdorn = {};\n dataToAdorn[name] = value;\n this.instance.customValues.push({ data: dataToAdorn, isDeviceId: false });\n }\n // Allows the client to attach arbitrary identifiers to go out in the install. \n registerCustomDeviceIdentifier(name, value) {\n Log.diagDebug(`Host called API: Register Custom Device Identifier ${name}`);\n if (!name || !value) {\n Log.warn(\"Invalid custom device identifier, ignoring call.\");\n return;\n }\n const dataToAdorn = {};\n dataToAdorn[name] = value;\n this.instance.customValues.push({ data: dataToAdorn, isDeviceId: true });\n }\n /*\n Returns whether or not the sdk is in a \"started\" state.\n This basically amounts to if start has been called,\n not if kvinit is done or the queue is started.\n Likewise, shutdown will set \"started\" to false;\n */\n getStarted() {\n return this.instance.started;\n }\n /*\n Returns the current kochavaDeviceId, or \"\" if called too early.\n */\n getDeviceId() {\n Log.diagDebug(`Host called API: Get Kochava Device Id`);\n if (this.instance.started)\n return this.instance.kochavaDeviceId;\n else\n return \"\";\n }\n /*\n Puts the sdk in a \"sleep\" state. This will stop the sdk from dequeuing\n new jobs and retrying failed jobs. Different than shutdown, because the\n current state is not destroyed.\n */\n setSleep(sleep) {\n Log.diagDebug(`Host called API: Sleep ${sleep ? \"Stop\" : \"Start\"}`);\n if (sleep && !this.instance.sleep) {\n // only pause if it was running\n this.instance.sleep = sleep;\n this.jobQueue.pause();\n }\n else if (!sleep && this.instance.sleep) {\n // only resume queueing if it was paused\n this.instance.sleep = sleep;\n this.beginStart();\n }\n }\n // ============================= =============================== //\n // Unintialized/invalid state.\n // start must be called before these values will be correct.\n resetInstance() {\n this.instance = {\n appGuid: \"\",\n started: false,\n installStarted: false,\n kvinitDone: false,\n installDone: false,\n disableAutoPage: false,\n useCookies: false,\n sleep: false,\n version: \"\",\n buildDate: \"\",\n overrideUrls: {\n init: \"\",\n install: \"\",\n event: \"\",\n identityLink: \"\",\n },\n customValues: [],\n kochavaSession: \"\",\n retryWaterfall: [],\n startTimeMS: 0,\n utm: \"\",\n kochavaDeviceId: \"\",\n kochavaInstallId: \"\",\n kochavaSessionCount: -1,\n kochavaInstallDate: -1,\n kochavaConfig: undefined,\n };\n }\n initInstance(appGuid) {\n // init instance with defaults\n this.instance.appGuid = appGuid;\n this.instance.disableAutoPage = this.instance.disableAutoPage || false;\n this.instance.useCookies = this.instance.useCookies || false;\n this.instance.version = this.instance.version || \"WebTracker \" + SDK_VERSION;\n this.instance.buildDate = \"kbd: 8/16/2024, 3:55:07 PM\";\n this.instance.kochavaSession = utils.uuidv4().substring(0, 5);\n this.instance.startTimeMS = utils.getCurrTimeMS();\n this.instance.retryWaterfall = [7, 30, 300, 1800];\n this.instance.kochavaConfig = JSON.parse(JSON.stringify(DEFAULTS));\n }\n checkFirstLaunchAndMigrate() {\n // If this is our first launch ever, set it in persistence.\n if (!readAndUpdatePersistedValue(PersistKey.FirstStartDate, this.instance.useCookies)) {\n updatePersistedValue(PersistKey.FirstStartDate, String(utils.getCurrTimeSec()), this.instance.useCookies);\n /*\n On a first launch of the v3 sdk, we need to migrate old persisted kv_id\n from v2.2, v2.3, and v2.5\n */\n // perform migration\n const oldKvId = readAndUpdatePersistedValue(PersistKey.OldKvid, this.instance.useCookies);\n if (oldKvId) {\n updatePersistedValue(PersistKey.DeviceId, oldKvId, this.instance.useCookies);\n updatePersistedValue(PersistKey.InstallSentDate, JSON.stringify(utils.getCurrTimeSec()), this.instance.useCookies);\n }\n }\n }\n checkPersistedKvinit() {\n // check if persisted kvinit\n let persistedKvinit = {};\n const persistedKvinitStr = readAndUpdatePersistedValue(PersistKey.LastKvinit, this.instance.useCookies);\n if (persistedKvinitStr) {\n persistedKvinit = JSON.parse(persistedKvinitStr);\n if (persistedKvinit) {\n // if persisted kvinit, apply it\n Log.trace(\"Found persisted kvinit.\", persistedKvinit);\n Kvinit.applyKvinitResp(this.instance, persistedKvinit);\n Log.trace(\"KochavaConfig after persistedKvinit:\", JSON.parse(JSON.stringify(this.instance.kochavaConfig)));\n }\n }\n // check refresh minimum too\n const persistedKvinitDateStr = readAndUpdatePersistedValue(PersistKey.KvinitSentDate, this.instance.useCookies);\n if (persistedKvinitDateStr) {\n const lastKvinitDate = JSON.parse(persistedKvinitDateStr);\n if (lastKvinitDate) {\n const refreshMin = this.instance.kochavaConfig.config.refresh_minimum;\n if (utils.getCurrTimeSec() - lastKvinitDate < refreshMin)\n this.instance.kvinitDone = true;\n }\n }\n }\n checkPersistedState() {\n this.instance.installDone =\n readAndUpdatePersistedValue(PersistKey.InstallSentDate, this.instance.useCookies).length > 0;\n this.instance.kochavaInstallId = readAndUpdatePersistedValue(PersistKey.InstallId, this.instance.useCookies);\n this.instance.kochavaDeviceId = readAndUpdateDeviceId(this.instance.useCookies);\n this.instance.kochavaSessionCount = readAndUpdateSessionCount(this.instance.useCookies);\n this.instance.utm = readAndUpdateUTM(this.instance.appGuid, this.instance.useCookies);\n }\n printStartupMsgs(appGuid) {\n Log.diagInfo(`Started SDK ${this.instance.version}\n published ${this.instance.buildDate}`);\n Log.diagInfo(`The log level is set to ${Log.getLogLevel()}`);\n Log.diagDebug(`This ${!this.instance.installDone ? \"is\" : \"is not\"} the first tracker SDK launch`);\n Log.diagDebug(`The kochava device id is ${this.instance.kochavaDeviceId}`);\n Log.diagDebug(`The kochava app GUID provided was ${appGuid}`);\n }\n async beginStart() {\n // if we need to send a new kvinit, send it\n if (!this.instance.kvinitDone) {\n Log.diagDebug(`A new kvinit will be sent`);\n await this.performNewKvinit();\n }\n else {\n Log.diagDebug(`A new kvinit will not be sent`);\n }\n // if the install_id changed and thus a new install must go out\n if (this.checkResendId())\n this.instance.installDone = false;\n Log.diagDebug(`The install ${this.instance.installDone ? \"has already\" : \"has not yet\"} been sent`);\n if (this.instance.sleep)\n return;\n if (!this.instance.installDone) {\n await this.performInstall();\n }\n if (this.instance.kvinitDone && this.instance.installDone) {\n await this.jobQueue.start(this.instance);\n }\n }\n async performNewKvinit() {\n this.instance.kvinitDone = await Kvinit.send(this.instance, this.instance.retryWaterfall);\n updatePersistedValue(PersistKey.KvinitSentDate, String(utils.getCurrTimeSec()), this.instance.useCookies);\n // if new kvinit, apply it\n let newKvinit = {};\n const newKvinitStr = readAndUpdatePersistedValue(PersistKey.LastKvinit, this.instance.useCookies);\n if (newKvinitStr) {\n newKvinit = JSON.parse(newKvinitStr);\n }\n Kvinit.applyKvinitResp(this.instance, newKvinit);\n Log.trace(\"KochavaConfig after new Kvinit:\", JSON.parse(JSON.stringify(this.instance.kochavaConfig)));\n }\n checkResendId() {\n let resendId = \"\";\n if (this.instance.kochavaConfig.install) {\n resendId = this.instance.kochavaConfig.install.resend_id;\n }\n const needsNewInstall = checkInstallIdChange(resendId, this.instance.useCookies);\n if (needsNewInstall) {\n Log.debug(`resend_id ${resendId} found, forcing new install`);\n }\n return needsNewInstall;\n }\n async performInstall() {\n const request = Install.build(this.instance);\n this.instance.installDone = await Install.send(this.instance, request);\n if (!this.instance.installDone)\n return;\n // If the install succeeded, remove all idLink that were passed to it\n Install.onSuccess(this.instance);\n updatePersistedValue(PersistKey.IdLinkQueue, JSON.stringify(this.jobQueue.idLinkQueue), false);\n }\n}\n// Only here for generic Web integration\nwindow.kochava = Kochava.create();\n"]}
@@ -17,21 +17,20 @@ export const constructPreStart = (instance, eventName, eventData) => {
17
17
  event_data: eventData,
18
18
  device_orientation: browser.getDeviceOrientation(),
19
19
  disp_w: browser.getDeviceWidth(),
20
- disp_h: browser.getDeviceHeight(),
21
- },
20
+ disp_h: browser.getDeviceHeight()
21
+ }
22
22
  };
23
- if (instance.kochavaConfig)
24
- preStart.init_token = (instance.kochavaConfig.config.init_token) || undefined;
23
+ if (instance.kochavaConfig) preStart.init_token = instance.kochavaConfig.config.init_token || undefined;
25
24
  return preStart;
26
25
  };
27
26
  export const constructPostStart = (instance, preStartBody) => {
28
27
  const postStartBody = {
29
28
  kochava_app_id: instance.appGuid,
30
29
  kochava_device_id: instance.kochavaDeviceId,
31
- nt_id: `${instance.kochavaSession}-${instance.kochavaSessionCount}-${utils.uuidv4()}`,
30
+ nt_id: `${instance.kochavaSession}-${instance.kochavaSessionCount}-${utils.uuidv4()}`
32
31
  };
33
32
  postStartBody.data = Object.assign(Object.assign({}, constructCommonData(instance)), preStartBody.data);
34
- instance.customValues.forEach((custom) => {
33
+ instance.customValues.forEach(custom => {
35
34
  if (!custom.isDeviceId) {
36
35
  const customKey = Object.keys(custom.data)[0];
37
36
  if (instance.kochavaConfig.privacy) {
@@ -41,8 +40,7 @@ export const constructPostStart = (instance, preStartBody) => {
41
40
  keyAllowed = true;
42
41
  }
43
42
  }
44
- if (keyAllowed)
45
- postStartBody.data = Object.assign(Object.assign({}, custom.data), postStartBody.data);
43
+ if (keyAllowed) postStartBody.data = Object.assign(Object.assign({}, custom.data), postStartBody.data);
46
44
  }
47
45
  }
48
46
  });
@@ -55,13 +53,11 @@ const build = (instance, preStartBody, postStartBody) => {
55
53
  instance.kochavaConfig.privacy.deny_datapoints.forEach(denyPoint => {
56
54
  for (const point in payload.data) {
57
55
  const key = point;
58
- if (key === denyPoint)
59
- delete payload.data[key];
56
+ if (key === denyPoint) delete payload.data[key];
60
57
  }
61
58
  for (const point in payload) {
62
59
  const key = point;
63
- if (key === denyPoint)
64
- delete payload[key];
60
+ if (key === denyPoint) delete payload[key];
65
61
  }
66
62
  });
67
63
  }
@@ -69,8 +65,7 @@ const build = (instance, preStartBody, postStartBody) => {
69
65
  };
70
66
  export const send = async (instance, preStartBody, postStartBody) => {
71
67
  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);
68
+ const respStr = await http.sendRequest(payload, instance.overrideUrls.event ? instance.overrideUrls.event : instance.kochavaConfig.networking.urls.event);
74
69
  let resp;
75
70
  let success = false;
76
71
  try {
@@ -78,8 +73,7 @@ export const send = async (instance, preStartBody, postStartBody) => {
78
73
  resp = JSON.parse(respStr);
79
74
  Log.debug("Event Response:", respStr);
80
75
  success = http.wasRespSuccess(resp.success);
81
- }
82
- catch (e) {
76
+ } catch (e) {
83
77
  Log.error("Error parsing Event Response", e);
84
78
  success = false;
85
79
  }
@@ -90,3 +84,4 @@ export const send = async (instance, preStartBody, postStartBody) => {
90
84
  Log.error("Event failed!");
91
85
  return false;
92
86
  };
87
+ //# sourceMappingURL=event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../dist/payloads/event.js"],"names":["http","utils","browser","Log","constructCommonData","constructPreStart","instance","eventName","eventData","preStart","action","sdk_version","version","sdk_protocol","data","event_name","event_data","device_orientation","getDeviceOrientation","disp_w","getDeviceWidth","disp_h","getDeviceHeight","kochavaConfig","init_token","config","undefined","constructPostStart","preStartBody","postStartBody","kochava_app_id","appGuid","kochava_device_id","kochavaDeviceId","nt_id","kochavaSession","kochavaSessionCount","uuidv4","Object","assign","customValues","forEach","custom","isDeviceId","customKey","keys","privacy","keyAllowed","allowed","allow_custom_ids","build","payload","debug","JSON","stringify","deny_datapoints","denyPoint","point","key","send","respStr","sendRequest","overrideUrls","event","networking","urls","resp","success","trace","parse","wasRespSuccess","e","error","info"],"mappings":"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","file":"event.js","sourcesContent":["/*\n Authored by Brett Barinaga on 11/17/21.\n Copyright (c) Kochava, Inc. All rights reserved.\n*/\nimport * as http from \"../http\";\nimport * as utils from \"../utils/utils\";\nimport * as browser from \"../browser/browser\";\nimport { Log } from \"../utils/log\";\nimport { constructCommonData } from \"./payload\";\nexport const constructPreStart = (instance, eventName, eventData) => {\n const preStart = {\n action: \"event\",\n sdk_version: instance.version,\n sdk_protocol: \"17\",\n data: {\n event_name: eventName,\n event_data: eventData,\n device_orientation: browser.getDeviceOrientation(),\n disp_w: browser.getDeviceWidth(),\n disp_h: browser.getDeviceHeight(),\n },\n };\n if (instance.kochavaConfig)\n preStart.init_token = (instance.kochavaConfig.config.init_token) || undefined;\n return preStart;\n};\nexport const constructPostStart = (instance, preStartBody) => {\n const postStartBody = {\n kochava_app_id: instance.appGuid,\n kochava_device_id: instance.kochavaDeviceId,\n nt_id: `${instance.kochavaSession}-${instance.kochavaSessionCount}-${utils.uuidv4()}`,\n };\n postStartBody.data = Object.assign(Object.assign({}, constructCommonData(instance)), preStartBody.data);\n instance.customValues.forEach((custom) => {\n if (!custom.isDeviceId) {\n const customKey = Object.keys(custom.data)[0];\n if (instance.kochavaConfig.privacy) {\n let keyAllowed = false;\n for (const allowed of instance.kochavaConfig.privacy.allow_custom_ids) {\n if (customKey === allowed) {\n keyAllowed = true;\n }\n }\n if (keyAllowed)\n postStartBody.data = Object.assign(Object.assign({}, custom.data), postStartBody.data);\n }\n }\n });\n return postStartBody;\n};\nconst build = (instance, preStartBody, postStartBody) => {\n const payload = Object.assign(Object.assign({}, preStartBody), postStartBody);\n Log.debug(\"Event Payload\", JSON.stringify(payload));\n if (instance.kochavaConfig.privacy) {\n instance.kochavaConfig.privacy.deny_datapoints.forEach(denyPoint => {\n for (const point in payload.data) {\n const key = point;\n if (key === denyPoint)\n delete payload.data[key];\n }\n for (const point in payload) {\n const key = point;\n if (key === denyPoint)\n delete payload[key];\n }\n });\n }\n return payload;\n};\nexport const send = async (instance, preStartBody, postStartBody) => {\n const payload = build(instance, preStartBody, postStartBody);\n const respStr = await http.sendRequest(payload, (instance.overrideUrls.event) ?\n instance.overrideUrls.event : instance.kochavaConfig.networking.urls.event);\n let resp;\n let success = false;\n try {\n Log.trace(\"Event Response string:\", respStr);\n resp = JSON.parse(respStr);\n Log.debug(\"Event Response:\", respStr);\n success = http.wasRespSuccess(resp.success);\n }\n catch (e) {\n Log.error(\"Error parsing Event Response\", e);\n success = false;\n }\n if (success) {\n Log.info(\"Event success!\");\n return true;\n }\n Log.error(\"Event failed!\");\n return false;\n};\n"]}
@@ -12,18 +12,17 @@ export const constructPreStart = (instance, idLink) => {
12
12
  sdk_version: instance.version,
13
13
  sdk_protocol: "17",
14
14
  data: {
15
- identity_link: Object.assign({}, idLink),
16
- },
15
+ identity_link: Object.assign({}, idLink)
16
+ }
17
17
  };
18
- if (instance.kochavaConfig)
19
- preStart.init_token = (instance.kochavaConfig.config.init_token) || undefined;
18
+ if (instance.kochavaConfig) preStart.init_token = instance.kochavaConfig.config.init_token || undefined;
20
19
  return preStart;
21
20
  };
22
21
  export const constructPostStart = (instance, preStartBody) => {
23
22
  const postStartBody = {
24
23
  kochava_app_id: instance.appGuid,
25
24
  kochava_device_id: instance.kochavaDeviceId,
26
- nt_id: `${instance.kochavaSession}-${instance.kochavaSessionCount}-${utils.uuidv4()}`,
25
+ nt_id: `${instance.kochavaSession}-${instance.kochavaSessionCount}-${utils.uuidv4()}`
27
26
  };
28
27
  postStartBody.data = Object.assign(Object.assign({}, preStartBody.data), constructCommonData(instance));
29
28
  return postStartBody;
@@ -36,13 +35,11 @@ const build = (instance, job) => {
36
35
  instance.kochavaConfig.privacy.deny_datapoints.forEach(denyPoint => {
37
36
  for (const point in payload.data) {
38
37
  const key = point;
39
- if (key === denyPoint)
40
- delete payload.data[key];
38
+ if (key === denyPoint) delete payload.data[key];
41
39
  }
42
40
  for (const point in payload) {
43
41
  const key = point;
44
- if (key === denyPoint)
45
- delete payload[key];
42
+ if (key === denyPoint) delete payload[key];
46
43
  }
47
44
  });
48
45
  }
@@ -50,8 +47,7 @@ const build = (instance, job) => {
50
47
  };
51
48
  export const send = async (instance, job) => {
52
49
  const payload = build(instance, job);
53
- const respStr = await http.sendRequest(payload, (instance.overrideUrls.identityLink) ?
54
- instance.overrideUrls.identityLink : instance.kochavaConfig.networking.urls.identityLink);
50
+ const respStr = await http.sendRequest(payload, instance.overrideUrls.identityLink ? instance.overrideUrls.identityLink : instance.kochavaConfig.networking.urls.identityLink);
55
51
  let resp;
56
52
  let success = false;
57
53
  try {
@@ -59,8 +55,7 @@ export const send = async (instance, job) => {
59
55
  resp = JSON.parse(respStr);
60
56
  Log.debug("IdentityLink Response:", respStr);
61
57
  success = http.wasRespSuccess(resp.success);
62
- }
63
- catch (e) {
58
+ } catch (e) {
64
59
  Log.error("Error parsing IdentityLink Response", e);
65
60
  success = false;
66
61
  }
@@ -71,3 +66,4 @@ export const send = async (instance, job) => {
71
66
  Log.error("IdentityLink failed!");
72
67
  return false;
73
68
  };
69
+ //# sourceMappingURL=identityLink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../dist/payloads/identityLink.js"],"names":["http","utils","Log","constructCommonData","constructPreStart","instance","idLink","preStart","action","sdk_version","version","sdk_protocol","data","identity_link","Object","assign","kochavaConfig","init_token","config","undefined","constructPostStart","preStartBody","postStartBody","kochava_app_id","appGuid","kochava_device_id","kochavaDeviceId","nt_id","kochavaSession","kochavaSessionCount","uuidv4","build","job","payload","debug","JSON","stringify","diagDebug","privacy","deny_datapoints","forEach","denyPoint","point","key","send","respStr","sendRequest","overrideUrls","identityLink","networking","urls","resp","success","trace","parse","wasRespSuccess","e","error","info"],"mappings":"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","file":"identityLink.js","sourcesContent":["/*\n Authored by Brett Barinaga on 11/18/21.\n Copyright (c) Kochava, Inc. All rights reserved.\n*/\nimport * as http from \"../http\";\nimport * as utils from \"../utils/utils\";\nimport { Log } from \"../utils/log\";\nimport { constructCommonData } from \"./payload\";\nexport const constructPreStart = (instance, idLink) => {\n const preStart = {\n action: \"identityLink\",\n sdk_version: instance.version,\n sdk_protocol: \"17\",\n data: {\n identity_link: Object.assign({}, idLink),\n },\n };\n if (instance.kochavaConfig)\n preStart.init_token = (instance.kochavaConfig.config.init_token) || undefined;\n return preStart;\n};\nexport const constructPostStart = (instance, preStartBody) => {\n const postStartBody = {\n kochava_app_id: instance.appGuid,\n kochava_device_id: instance.kochavaDeviceId,\n nt_id: `${instance.kochavaSession}-${instance.kochavaSessionCount}-${utils.uuidv4()}`,\n };\n postStartBody.data = Object.assign(Object.assign({}, preStartBody.data), constructCommonData(instance));\n return postStartBody;\n};\nconst build = (instance, job) => {\n const payload = Object.assign(Object.assign({}, job.preStartBody), job.postStartBody);\n Log.debug(\"IdentityLink Payload\", JSON.stringify(payload));\n Log.diagDebug(`IdentityLink to be sent as stand alone`);\n if (instance.kochavaConfig.privacy) {\n instance.kochavaConfig.privacy.deny_datapoints.forEach(denyPoint => {\n for (const point in payload.data) {\n const key = point;\n if (key === denyPoint)\n delete payload.data[key];\n }\n for (const point in payload) {\n const key = point;\n if (key === denyPoint)\n delete payload[key];\n }\n });\n }\n return payload;\n};\nexport const send = async (instance, job) => {\n const payload = build(instance, job);\n const respStr = await http.sendRequest(payload, (instance.overrideUrls.identityLink) ?\n instance.overrideUrls.identityLink : instance.kochavaConfig.networking.urls.identityLink);\n let resp;\n let success = false;\n try {\n Log.trace(\"IdentityLink Response string:\", respStr);\n resp = JSON.parse(respStr);\n Log.debug(\"IdentityLink Response:\", respStr);\n success = http.wasRespSuccess(resp.success);\n }\n catch (e) {\n Log.error(\"Error parsing IdentityLink Response\", e);\n success = false;\n }\n if (success) {\n Log.info(\"IdentityLink success!\");\n return true;\n }\n Log.error(\"IdentityLink failed!\");\n return false;\n};\n"]}
@@ -10,7 +10,7 @@ import { constructPayload } from "./payload";
10
10
  import { getPersistedIdentityLinks, PersistKey, readAndUpdatePersistedValue, updatePersistedValue } from "../browser/persist";
11
11
  let timeOut;
12
12
  let canceled = false;
13
- export const build = (instance) => {
13
+ export const build = instance => {
14
14
  const payload = constructPayload("install", instance);
15
15
  instance.installStarted = true;
16
16
  payload.data = constructInstallData(instance);
@@ -19,13 +19,11 @@ export const build = (instance) => {
19
19
  instance.kochavaConfig.privacy.deny_datapoints.forEach(denyPoint => {
20
20
  for (const point in payload.data) {
21
21
  const key = point;
22
- if (key === denyPoint)
23
- delete payload.data[key];
22
+ if (key === denyPoint) delete payload.data[key];
24
23
  }
25
24
  for (const point in payload) {
26
25
  const key = point;
27
- if (key === denyPoint)
28
- delete payload[key];
26
+ if (key === denyPoint) delete payload[key];
29
27
  }
30
28
  });
31
29
  }
@@ -42,8 +40,7 @@ export const send = async (instance, payload, retries = 0) => {
42
40
  do {
43
41
  const sendTime = utils.getCurrTimeMS() - instance.startTimeMS;
44
42
  Log.diagDebug(`Sending install at ${utils.formatTime(sendTime / 1000)} seconds`);
45
- const respStr = await http.sendRequest(payload, (instance.overrideUrls.install) ?
46
- instance.overrideUrls.install : instance.kochavaConfig.networking.urls.install);
43
+ const respStr = await http.sendRequest(payload, instance.overrideUrls.install ? instance.overrideUrls.install : instance.kochavaConfig.networking.urls.install);
47
44
  const respTime = utils.getCurrTimeMS() - instance.startTimeMS;
48
45
  Log.diagDebug(`Completed install at ${new Date().toLocaleTimeString()}
49
46
  seconds with a network duration of ${utils.formatTime((respTime - sendTime) / 1000)} seconds`);
@@ -56,8 +53,7 @@ export const send = async (instance, payload, retries = 0) => {
56
53
  resp = JSON.parse(respStr);
57
54
  Log.debug("Install Response:", respStr);
58
55
  success = http.wasRespSuccess(resp.success);
59
- }
60
- catch (e) {
56
+ } catch (e) {
61
57
  Log.error("Error parsing Install Response", e);
62
58
  success = false;
63
59
  }
@@ -67,23 +63,24 @@ export const send = async (instance, payload, retries = 0) => {
67
63
  }
68
64
  if (!canceled) {
69
65
  const retryWaterfall = instance.kochavaConfig.networking.retry_waterfall;
70
- const retryIndex = (retries > retryWaterfall.length - 1) ? retryWaterfall.length - 1 : retries;
66
+ const retryIndex = retries > retryWaterfall.length - 1 ? retryWaterfall.length - 1 : retries;
71
67
  const retrySec = retryWaterfall[retryIndex];
72
68
  Log.error(`Install failed, attempting again in ${retrySec} seconds`);
73
- await new Promise(resolve => { timeOut = setTimeout(resolve, retrySec * 1000); });
69
+ await new Promise(resolve => {
70
+ timeOut = setTimeout(resolve, retrySec * 1000);
71
+ });
74
72
  retries++;
75
73
  }
76
74
  } while (!success && !canceled);
77
75
  };
78
- export const onSuccess = (instance) => {
76
+ export const onSuccess = instance => {
79
77
  instance.kochavaInstallDate = utils.getCurrTimeMS();
80
78
  updatePersistedValue(PersistKey.InstallSentDate, String(instance.kochavaInstallDate), instance.useCookies);
81
79
  };
82
- const constructInstallData = (instance) => {
80
+ const constructInstallData = instance => {
83
81
  const currTime = Math.floor(Date.now() / 1000);
84
82
  let uptime = (currTime - instance.startTimeMS) / 1000;
85
- if (uptime < 0.0)
86
- uptime = 0.0;
83
+ if (uptime < 0.0) uptime = 0.0;
87
84
  let returnObj = {
88
85
  starttime: instance.startTimeMS / 1000,
89
86
  uptime: uptime,
@@ -92,35 +89,27 @@ const constructInstallData = (instance) => {
92
89
  package: browser.getPackageName(),
93
90
  disp_w: browser.getDeviceWidth(),
94
91
  disp_h: browser.getDeviceHeight(),
95
- language: browser.getLanguage(),
92
+ language: browser.getLanguage()
96
93
  };
97
94
  if (instance.utm) {
98
95
  returnObj = Object.assign(Object.assign({}, returnObj), { conversion_data: { utm_source: instance.utm } });
99
96
  }
100
- if (instance.customValues.length > 0)
101
- returnObj.device_ids = {};
102
- instance.customValues.forEach((custom) => {
97
+ if (instance.customValues.length > 0) returnObj.device_ids = {};
98
+ instance.customValues.forEach(custom => {
103
99
  const customKey = Object.keys(custom.data)[0];
104
100
  console.log("customData: ", custom);
105
101
  if (instance.kochavaConfig.privacy) {
106
102
  let keyAllowed = false;
107
- console.log("1");
108
103
  for (const allowed of instance.kochavaConfig.privacy.allow_custom_ids) {
109
104
  if (customKey === allowed) {
110
- console.log("2");
111
105
  keyAllowed = true;
112
106
  }
113
107
  }
114
108
  if (keyAllowed) {
115
- console.log("3");
116
109
  if (custom.isDeviceId) {
117
- console.log("4");
118
110
  returnObj.device_ids = Object.assign(Object.assign({}, returnObj.device_ids), custom.data);
119
- }
120
- else {
121
- console.log("before: ", returnObj);
111
+ } else {
122
112
  returnObj = Object.assign(Object.assign({}, custom.data), returnObj);
123
- console.log("after: ", returnObj);
124
113
  }
125
114
  }
126
115
  }
@@ -137,8 +126,7 @@ const constructInstallData = (instance) => {
137
126
  includeKey = false;
138
127
  }
139
128
  }
140
- if (includeKey)
141
- returnObj.identity_link[key] = persistedIdLinks[key];
129
+ if (includeKey) returnObj.identity_link[key] = persistedIdLinks[key];
142
130
  }
143
131
  }
144
132
  return returnObj;
@@ -148,10 +136,11 @@ const determineInstallUserTime = (instance, currTime) => {
148
136
  if (firstStartStr) {
149
137
  const firstStart = JSON.parse(firstStartStr);
150
138
  // If its been 30 days since the sdk started
151
- if ((currTime - firstStart) > 2592000) {
139
+ if (currTime - firstStart > 2592000) {
152
140
  return currTime;
153
141
  }
154
142
  return firstStart;
155
143
  }
156
144
  return currTime;
157
145
  };
146
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../dist/payloads/install.js"],"names":["http","utils","browser","Log","constructPayload","getPersistedIdentityLinks","PersistKey","readAndUpdatePersistedValue","updatePersistedValue","timeOut","canceled","build","instance","payload","installStarted","data","constructInstallData","debug","JSON","stringify","kochavaConfig","privacy","deny_datapoints","forEach","denyPoint","point","key","cancelRetries","clearTimeout","send","retries","success","resp","sendTime","getCurrTimeMS","startTimeMS","diagDebug","formatTime","respStr","sendRequest","overrideUrls","install","networking","urls","respTime","Date","toLocaleTimeString","trace","parse","wasRespSuccess","e","error","info","retryWaterfall","retry_waterfall","retryIndex","length","retrySec","Promise","resolve","setTimeout","onSuccess","kochavaInstallDate","InstallSentDate","String","useCookies","currTime","Math","floor","now","uptime","returnObj","starttime","usertime","determineInstallUserTime","device_orientation","getDeviceOrientation","package","getPackageName","disp_w","getDeviceWidth","disp_h","getDeviceHeight","language","getLanguage","utm","Object","assign","conversion_data","utm_source","customValues","device_ids","custom","customKey","keys","console","log","keyAllowed","allowed","allow_custom_ids","isDeviceId","persistedIdLinks","identity_link","includeKey","denyIdLinkKey","deny_identity_links","firstStartStr","FirstStartDate","firstStart"],"mappings":"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","file":"install.js","sourcesContent":["/*\n Authored by Brett Barinaga on 11/17/21.\n Copyright (c) Kochava, Inc. All rights reserved.\n*/\nimport * as http from \"../http\";\nimport * as utils from \"../utils/utils\";\nimport * as browser from \"../browser/browser\";\nimport { Log } from \"../utils/log\";\nimport { constructPayload } from \"./payload\";\nimport { getPersistedIdentityLinks, PersistKey, readAndUpdatePersistedValue, updatePersistedValue } from \"../browser/persist\";\nlet timeOut;\nlet canceled = false;\nexport const build = (instance) => {\n const payload = constructPayload(\"install\", instance);\n instance.installStarted = true;\n payload.data = constructInstallData(instance);\n Log.debug(\"Install Payload\", JSON.stringify(payload));\n if (instance.kochavaConfig.privacy) {\n instance.kochavaConfig.privacy.deny_datapoints.forEach(denyPoint => {\n for (const point in payload.data) {\n const key = point;\n if (key === denyPoint)\n delete payload.data[key];\n }\n for (const point in payload) {\n const key = point;\n if (key === denyPoint)\n delete payload[key];\n }\n });\n }\n return payload;\n};\nexport const cancelRetries = () => {\n canceled = true;\n clearTimeout(timeOut);\n};\nexport const send = async (instance, payload, retries = 0) => {\n canceled = false;\n let success = false;\n let resp;\n do {\n const sendTime = utils.getCurrTimeMS() - instance.startTimeMS;\n Log.diagDebug(`Sending install at ${utils.formatTime(sendTime / 1000)} seconds`);\n const respStr = await http.sendRequest(payload, (instance.overrideUrls.install) ?\n instance.overrideUrls.install : instance.kochavaConfig.networking.urls.install);\n const respTime = utils.getCurrTimeMS() - instance.startTimeMS;\n Log.diagDebug(`Completed install at ${new Date().toLocaleTimeString()} \n seconds with a network duration of ${utils.formatTime((respTime - sendTime) / 1000)} seconds`);\n if (canceled) {\n Log.trace(\"Can no longer retry install, cancelling.\");\n return false;\n }\n try {\n Log.trace(\"Install Response string:\", respStr);\n resp = JSON.parse(respStr);\n Log.debug(\"Install Response:\", respStr);\n success = http.wasRespSuccess(resp.success);\n }\n catch (e) {\n Log.error(\"Error parsing Install Response\", e);\n success = false;\n }\n if (success) {\n Log.info(\"Install success!\");\n return success;\n }\n if (!canceled) {\n const retryWaterfall = instance.kochavaConfig.networking.retry_waterfall;\n const retryIndex = (retries > retryWaterfall.length - 1) ? retryWaterfall.length - 1 : retries;\n const retrySec = retryWaterfall[retryIndex];\n Log.error(`Install failed, attempting again in ${retrySec} seconds`);\n await new Promise(resolve => { timeOut = setTimeout(resolve, retrySec * 1000); });\n retries++;\n }\n } while (!success && !canceled);\n};\nexport const onSuccess = (instance) => {\n instance.kochavaInstallDate = utils.getCurrTimeMS();\n updatePersistedValue(PersistKey.InstallSentDate, String(instance.kochavaInstallDate), instance.useCookies);\n};\nconst constructInstallData = (instance) => {\n const currTime = Math.floor(Date.now() / 1000);\n let uptime = (currTime - instance.startTimeMS) / 1000;\n if (uptime < 0.0)\n uptime = 0.0;\n let returnObj = {\n starttime: instance.startTimeMS / 1000,\n uptime: uptime,\n usertime: determineInstallUserTime(instance, currTime),\n device_orientation: browser.getDeviceOrientation(),\n package: browser.getPackageName(),\n disp_w: browser.getDeviceWidth(),\n disp_h: browser.getDeviceHeight(),\n language: browser.getLanguage(),\n };\n if (instance.utm) {\n returnObj = Object.assign(Object.assign({}, returnObj), { conversion_data: { utm_source: instance.utm } });\n }\n if (instance.customValues.length > 0)\n returnObj.device_ids = {};\n instance.customValues.forEach((custom) => {\n const customKey = Object.keys(custom.data)[0];\n console.log(\"customData: \", custom);\n if (instance.kochavaConfig.privacy) {\n let keyAllowed = false;\n for (const allowed of instance.kochavaConfig.privacy.allow_custom_ids) {\n if (customKey === allowed) {\n keyAllowed = true;\n }\n }\n if (keyAllowed) {\n if (custom.isDeviceId) {\n returnObj.device_ids = Object.assign(Object.assign({}, returnObj.device_ids), custom.data);\n }\n else {\n returnObj = Object.assign(Object.assign({}, custom.data), returnObj);\n }\n }\n }\n });\n // add the persisted identityLinks\n const persistedIdLinks = getPersistedIdentityLinks();\n if (persistedIdLinks) {\n returnObj.identity_link = {};\n for (const key in persistedIdLinks) {\n let includeKey = true;\n for (const denyIdLinkKey of instance.kochavaConfig.privacy.deny_identity_links) {\n if (denyIdLinkKey === key) {\n Log.debug(`Denied identity_link ${denyIdLinkKey}, dropping from install.`);\n includeKey = false;\n }\n }\n if (includeKey)\n returnObj.identity_link[key] = persistedIdLinks[key];\n }\n }\n return returnObj;\n};\nconst determineInstallUserTime = (instance, currTime) => {\n const firstStartStr = readAndUpdatePersistedValue(PersistKey.FirstStartDate, instance.useCookies);\n if (firstStartStr) {\n const firstStart = JSON.parse(firstStartStr);\n // If its been 30 days since the sdk started\n if ((currTime - firstStart) > 2592000) {\n return currTime;\n }\n return firstStart;\n }\n return currTime;\n};\n"]}