web-adsmeasurement 1.8.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -0
- package/es5_dist/browser/browser.d.ts +3 -0
- package/es5_dist/browser/browser.js +31 -0
- package/es5_dist/browser/browser.js.map +1 -0
- package/es5_dist/browser/persist.d.ts +28 -0
- package/es5_dist/browser/persist.js +139 -0
- package/es5_dist/browser/persist.js.map +1 -0
- package/es5_dist/generated/buildInfo.d.ts +2 -0
- package/es5_dist/generated/buildInfo.js +3 -0
- package/es5_dist/generated/buildInfo.js.map +1 -0
- package/es5_dist/http.d.ts +3 -0
- package/es5_dist/http.js +132 -0
- package/es5_dist/http.js.map +1 -0
- package/es5_dist/interfaces.d.ts +72 -0
- package/es5_dist/interfaces.js +21 -0
- package/es5_dist/interfaces.js.map +1 -0
- package/es5_dist/jobqueue.d.ts +30 -0
- package/es5_dist/jobqueue.js +307 -0
- package/es5_dist/jobqueue.js.map +1 -0
- package/es5_dist/kochava.d.ts +80 -0
- package/es5_dist/kochava.js +654 -0
- package/es5_dist/kochava.js.map +1 -0
- package/es5_dist/payloads/config.d.ts +8 -0
- package/es5_dist/payloads/config.js +360 -0
- package/es5_dist/payloads/config.js.map +1 -0
- package/es5_dist/payloads/conversion.d.ts +5 -0
- package/es5_dist/payloads/conversion.js +195 -0
- package/es5_dist/payloads/conversion.js.map +1 -0
- package/es5_dist/payloads/payload.d.ts +9 -0
- package/es5_dist/payloads/payload.js +23 -0
- package/es5_dist/payloads/payload.js.map +1 -0
- package/es5_dist/product.d.ts +27 -0
- package/es5_dist/product.js +50 -0
- package/es5_dist/product.js.map +1 -0
- package/es5_dist/utils/log.d.ts +33 -0
- package/es5_dist/utils/log.js +151 -0
- package/es5_dist/utils/log.js.map +1 -0
- package/es5_dist/utils/utils.d.ts +10 -0
- package/es5_dist/utils/utils.js +81 -0
- package/es5_dist/utils/utils.js.map +1 -0
- package/package.json +19 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../node/kochava.js"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","__generator","body","_","label","sent","trys","ops","f","y","g","verb","Symbol","iterator","v","op","TypeError","pop","push","__rest","indexOf","getOwnPropertySymbols","propertyIsEnumerable","Log","JobQueue","Config","DEFAULTS","deleteAllPersisted","readAndUpdatePersistedValue","updatePersistedValue","PersistKey","readPersistedConfig","readAndUpdateInstallId","readPersistedCustomDeviceIdentifiers","utils","Product","PubSuite","product","adsmeasurement","resetInstance","jobQueue","create","createForReact","createForVue","createForAngular","createForReactNative","startWithConfig","config","_a","_b","_c","_d","diagInfo","event_metadata","rest","instance","HostConfig","conversion_metadata","start","general","product_id","access_token","startWithProductId","error","concat","started","warn","checkFirstLaunch","initInstance","configDone","performNewConfig","checkPersistedState","printStartupMsgs","enableElementTracking","beginStart","sendConversion","name","data","override_access_token","override_product_id","sessionConfig","enabled","updateSessionState","enqueueConversion","getStarted","registerCustomDeviceIdentifier","persistedCustomDeviceIds","useCookies","customDeviceIds","JSON","parse","filter","id","newCustomDeviceId","substring","slice","CustomDeviceIdentifiers","stringify","setSleep","sleep","pause","shutdown","deleteData","debug","info","cancelRetries","stop","setLogLevel","logLevel","executeAdvancedInstruction","key","valueStr","callback","wrapperVersion","wrapperProduct","version","standardVersionInfoString","overrideUrls","serverConfig","conversion","restoreUrls","_i","restoreUrls_1","url","hostServerConfig","networking","urls","disabled","forEach","level","disableLogType","currInstance","setLogObjects","condition","boundClickHandler","document","removeEventListener","ClickHandler","bind","addEventListener","refresh_minimum","retry_waterfall","sessions","timeout","customDataAttribute","element_conversions","button_conversions","collectReferrer","collectUrl","buildDate","sdkBuildDate","collect_ga","pubSuiteSession","retryWaterfall","startTimeMS","sdk_disabled","instance_id","installIdEnabled","pubSuiteSessionCount","pubSuiteConfig","undefined","pubSuiteInstallId","sessionState","last_activity_time","session_time","count","_e","_f","_g","_h","_j","_k","_l","_m","_o","uuidv4","getCurrTimeMS","install_id_enabled","cookies_enabled","pers_tr","collect_page_info","FirstStartDate","String","getCurrTimeSec","persistedSessionTime","parseInt","SessionTime","isNaN","persistedLastActivityTime","LastActivityTime","persistedSessionCount","SessionCount","restoredCustomDeviceIds","adsmeasurementProduct","getLogLevel","diagDebug","mergeConfig","ConfigExpired","getServerConfig","LastServerConfig","getHostServerConfig","LastHostServerConfig","applyConfigResp","LastConfigDate","currTime","activityDiff","toString","reportUserActivity","event","targetElement","target","targetTag","tagName","conversion_name","buttonText","textContent","hasAttribute","getAttribute","keys","trace","Impressions","window","visibleForOneSecond","element","pubSuite","intersectionCallback","entries","observer","entry","isIntersecting","target_1","timerId","setTimeout","rect","getBoundingClientRect","fourCornersVisible","unobserve","_visibilityTimer","clearTimeout","IntersectionObserver","threshold","elementsToWatch","querySelectorAll","observe","topLeftVisible","pointIsVisible","left","top","topRightVisible","right","botLeftVisible","bottom","botRightVisible","x","topElement","elementFromPoint","contains","sdk_instance","initSDK","currentScript","sdkInstance","sdkName","sdkTag","sdkNameRegex","sdkTagRegex","test","initLog"],"mappings":"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","file":"kochava.js","sourcesContent":["/*\n Authored by Jacob Bechler on 6/13/23.\n Copyright (c) Kochava, Inc. All rights reserved.\n*/\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { Log } from \"./utils/log\";\nimport JobQueue from \"./jobqueue\";\nimport * as Config from \"./payloads/config\";\nimport { DEFAULTS } from \"./interfaces\";\nimport { deleteAllPersisted, readAndUpdatePersistedValue, updatePersistedValue, PersistKey, readPersistedConfig, readAndUpdateInstallId, readPersistedCustomDeviceIdentifiers } from \"./browser/persist\";\nimport * as utils from \"./utils/utils\";\nimport { Product } from \"./product\";\n// Re-export Product so framework harnesses (React, Vue, Angular, ReactNative)\n// can import both PubSuite and Product from a single module reference, matching\n// K4A's pattern. Parity with K4A's src/kochava.ts which re-exports Product.\nexport { Product } from \"./product\";\nvar PubSuite = /** @class */ (function () {\n // User will use the below factories instead of directly calling\n // the constructor\n function PubSuite() {\n this.product = Product.adsmeasurement;\n this.resetInstance();\n this.jobQueue = new JobQueue();\n }\n // ============================= PUBLIC =============================== //\n PubSuite.create = function () {\n return new PubSuite();\n };\n // Framework-specific factories. Parity with K4A's PubSuite/Kochava factory\n // pattern so the framework harnesses (and any framework integrations) can\n // instantiate via a per-framework entry point. For now each delegates to\n // create(); per-framework configuration can park here later.\n PubSuite.createForReact = function () {\n return PubSuite.create();\n };\n PubSuite.createForVue = function () {\n return PubSuite.create();\n };\n PubSuite.createForAngular = function () {\n return PubSuite.create();\n };\n PubSuite.createForReactNative = function () {\n return PubSuite.create();\n };\n PubSuite.prototype.startWithConfig = function (config) {\n var _a, _b, _c, _d;\n Log.diagInfo(\"Host called API: Start With Config\");\n var event_metadata = config.event_metadata, rest = __rest(config, [\"event_metadata\"]);\n this.instance.HostConfig = __assign({ conversion_metadata: event_metadata }, rest);\n this.start((_b = (_a = this.instance.HostConfig.general) === null || _a === void 0 ? void 0 : _a.product_id) !== null && _b !== void 0 ? _b : \"\", (_d = (_c = this.instance.HostConfig.general) === null || _c === void 0 ? void 0 : _c.access_token) !== null && _d !== void 0 ? _d : \"\");\n };\n PubSuite.prototype.startWithProductId = function (product_id, access_token) {\n Log.diagInfo(\"Host called API: Start With Product ID\");\n this.start(product_id, access_token);\n };\n /*\n The primary means for starting the sdk.\n Responsibilites:\n - Creates the sdk instance.\n - Checks for persisted state.\n - Determines and applies config.\n - Starts the job queue.\n */\n PubSuite.prototype.start = function (product_id, access_token) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!product_id) {\n Log.error(\"Invalid product_id: \".concat(product_id, \", start failed.\"));\n return [2 /*return*/];\n }\n if (!access_token) {\n Log.error(\"Invalid access_token: \".concat(access_token, \", start failed.\"));\n return [2 /*return*/];\n }\n if (!this.instance)\n this.resetInstance();\n if (this.instance.started) {\n Log.warn(\"SDK already started.\");\n return [2 /*return*/];\n }\n this.instance.started = true;\n this.checkFirstLaunch();\n this.initInstance(product_id, access_token);\n if (!!this.instance.configDone) return [3 /*break*/, 2];\n return [4 /*yield*/, this.performNewConfig()];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n this.checkPersistedState();\n this.printStartupMsgs(product_id);\n this.enableElementTracking();\n this.beginStart();\n return [2 /*return*/];\n }\n });\n });\n };\n /*\n Builds and enqueues a conversion. Must include a conversion_name string,\n with optional conversion_data as either another string or object.\n */\n PubSuite.prototype.sendConversion = function (name, data, override_access_token, override_product_id) {\n Log.diagInfo(\"Host called API: Send Conversion\");\n if (!name) {\n Log.warn(\"Invalid Conversion name, ignoring call.\");\n return;\n }\n if (this.instance.sessionConfig.enabled) {\n this.updateSessionState();\n }\n this.jobQueue.enqueueConversion(this.instance, [name, data, override_access_token, override_product_id]);\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 config is done or the queue is started.\n Likewise, shutdown will set \"started\" to false;\n */\n PubSuite.prototype.getStarted = function () {\n return this.instance.started;\n };\n PubSuite.prototype.registerCustomDeviceIdentifier = function (name, value) {\n Log.diagInfo(\"Host called API: Register Custom Device Identifier \".concat(value ? 'setting' : 'clearing', \" \").concat(name));\n if (!name) {\n Log.warn(\"Invalid custom device identifier, ignoring call.\");\n return;\n }\n var persistedCustomDeviceIds = readPersistedCustomDeviceIdentifiers(this.instance.useCookies);\n if (persistedCustomDeviceIds) {\n this.instance.customDeviceIds = JSON.parse(persistedCustomDeviceIds);\n }\n this.instance.customDeviceIds = this.instance.customDeviceIds.filter(function (id) { return id.name !== name; });\n if (value) {\n var newCustomDeviceId = {\n name: name.substring(0, 256),\n value: value.substring(0, 256)\n };\n this.instance.customDeviceIds.push(newCustomDeviceId);\n if (this.instance.customDeviceIds.length > 100) {\n this.instance.customDeviceIds = this.instance.customDeviceIds.slice(-100);\n }\n }\n updatePersistedValue(PersistKey.CustomDeviceIdentifiers, JSON.stringify(this.instance.customDeviceIds), this.instance.useCookies);\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 PubSuite.prototype.setSleep = function (sleep) {\n Log.diagInfo(\"Host called API: Sleep \".concat(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 Primary means for stopping the sdk.\n Will optionally delete all persisted data, and will shutdown the\n sdk and job queue.\n */\n PubSuite.prototype.shutdown = function (deleteData) {\n Log.diagInfo(\"Host called API: Shutdown and \".concat(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 Config.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 PubSuite.prototype.setLogLevel = function (logLevel) {\n Log.diagInfo(\"Host called API: Set Log Level \".concat(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 PubSuite.prototype.executeAdvancedInstruction = function (key, valueStr, callback) {\n Log.diagInfo(\"Host called API: Execute Advanced Instruction \".concat(key));\n switch (key) {\n case \"wrapper\":\n {\n var wrapperVersion = JSON.parse(valueStr);\n Product.adsmeasurement.wrapperProduct = new Product(\"Product.wrapper\", wrapperVersion.name, wrapperVersion.name, wrapperVersion.version, \"\");\n this.instance.version = Product.adsmeasurement.standardVersionInfoString;\n }\n break;\n case \"urls\":\n {\n var overrideUrls = JSON.parse(valueStr);\n if (overrideUrls.config)\n this.instance.overrideUrls.serverConfig = overrideUrls.config;\n if (overrideUrls.conversion)\n this.instance.overrideUrls.conversion = overrideUrls.conversion;\n }\n break;\n case \"urlsRestore\":\n {\n var restoreUrls = JSON.parse(valueStr);\n for (var _i = 0, restoreUrls_1 = restoreUrls; _i < restoreUrls_1.length; _i++) {\n var url = restoreUrls_1[_i];\n if (url === \"config\")\n this.instance.overrideUrls.hostServerConfig = DEFAULTS.networking.urls.serverConfig;\n if (url === \"conversion\")\n this.instance.overrideUrls.conversion = DEFAULTS.networking.urls.conversion;\n }\n }\n break;\n case \"logFilter\":\n {\n var disabled = JSON.parse(valueStr);\n disabled.forEach(function (level) { return Log.disableLogType(level); });\n }\n break;\n case \"getInstance\":\n {\n var currInstance = JSON.stringify(this.instance);\n if (callback)\n callback(currInstance);\n Log.debug(\"capturing instance: \".concat(valueStr));\n }\n break;\n case \"logObjects\":\n Log.setLogObjects(JSON.parse(valueStr));\n break;\n case \"pInstance\":\n return JSON.stringify(this.instance);\n break;\n default:\n break;\n }\n };\n PubSuite.prototype.enableElementTracking = function (condition) {\n if (condition === void 0) { condition = true; }\n if (this.boundClickHandler) {\n document.removeEventListener('click', this.boundClickHandler);\n }\n if (condition) {\n this.boundClickHandler = this.ClickHandler.bind(this);\n if (this.boundClickHandler) {\n document.addEventListener('click', this.boundClickHandler);\n }\n }\n else {\n this.boundClickHandler = null;\n }\n };\n // Unintialized/invalid state.\n // start must be called before these values will be correct.\n PubSuite.prototype.resetInstance = function () {\n // Log.diagDebug(\"RESETTING INSTANCE.\")\n this.instance = {\n product_id: \"\",\n access_token: \"\",\n started: false,\n configDone: false,\n HostConfig: {\n general: {},\n config: {\n refresh_minimum: 60\n },\n networking: {\n urls: {\n config: \"\",\n conversion: \"\",\n },\n retry_waterfall: [7, 30, 300, 1800]\n },\n sessions: {\n enabled: false,\n timeout: 1800\n }\n },\n customDataAttribute: 'data-ps-conversion',\n element_conversions: [],\n button_conversions: [],\n useCookies: false,\n collectReferrer: false,\n collectUrl: false,\n sleep: false,\n version: Product.adsmeasurement.standardVersionInfoString,\n buildDate: Product.adsmeasurement.sdkBuildDate,\n collect_ga: false,\n overrideUrls: {\n serverConfig: \"\",\n hostServerConfig: \"\",\n conversion: \"\"\n },\n customDeviceIds: [],\n conversion_metadata: {},\n pubSuiteSession: \"\",\n retryWaterfall: [],\n startTimeMS: 0,\n sdk_disabled: false,\n instance_id: '',\n installIdEnabled: false,\n pubSuiteSessionCount: -1,\n pubSuiteConfig: undefined,\n pubSuiteInstallId: '',\n sessionConfig: {\n enabled: false,\n timeout: 1800\n },\n sessionState: {\n last_activity_time: 0,\n session_time: 0,\n count: 0\n }\n };\n };\n PubSuite.prototype.initInstance = function (product_id, access_token) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;\n // init instance with defaults\n this.instance.product_id = product_id;\n this.instance.access_token = access_token;\n this.instance.version = Product.adsmeasurement.standardVersionInfoString;\n this.instance.buildDate = Product.adsmeasurement.sdkBuildDate;\n this.instance.pubSuiteSession = utils.uuidv4().substring(0, 5);\n this.instance.startTimeMS = utils.getCurrTimeMS();\n this.instance.retryWaterfall = [7, 30, 300, 1800];\n this.instance.instance_id = utils.uuidv4().substring(0, 5);\n this.instance.installIdEnabled = (_b = (_a = this.instance.HostConfig.general) === null || _a === void 0 ? void 0 : _a.install_id_enabled) !== null && _b !== void 0 ? _b : false;\n this.instance.useCookies = (_e = (((_c = this.instance.HostConfig.general) === null || _c === void 0 ? void 0 : _c.cookies_enabled) || ((_d = this.instance.HostConfig.general) === null || _d === void 0 ? void 0 : _d.pers_tr))) !== null && _e !== void 0 ? _e : false;\n this.instance.sessionConfig.enabled = (_g = (_f = this.instance.HostConfig.sessions) === null || _f === void 0 ? void 0 : _f.enabled) !== null && _g !== void 0 ? _g : false;\n this.instance.sessionConfig.timeout = (_j = (_h = this.instance.HostConfig.sessions) === null || _h === void 0 ? void 0 : _h.timeout) !== null && _j !== void 0 ? _j : 1800;\n this.instance.collectReferrer = (_l = (_k = this.instance.HostConfig.general) === null || _k === void 0 ? void 0 : _k.collect_page_info) !== null && _l !== void 0 ? _l : false;\n this.instance.collectUrl = (_o = (_m = this.instance.HostConfig.general) === null || _m === void 0 ? void 0 : _m.collect_page_info) !== null && _o !== void 0 ? _o : false;\n this.instance.pubSuiteConfig = JSON.parse(JSON.stringify(DEFAULTS));\n };\n PubSuite.prototype.checkFirstLaunch = function () {\n // If this is our first launch ever, set it in persistence.\n if (!readAndUpdatePersistedValue(PersistKey.FirstStartDate)) {\n updatePersistedValue(PersistKey.FirstStartDate, String(utils.getCurrTimeSec()));\n }\n };\n PubSuite.prototype.checkPersistedState = function () {\n // this.instance.pubSuiteSessionCount = readAndUpdateSessionCount();\n if (this.instance.installIdEnabled)\n this.instance.pubSuiteInstallId = readAndUpdateInstallId(this.instance.useCookies);\n if (this.instance.sessionConfig.enabled) {\n var persistedSessionTime = parseInt(readAndUpdatePersistedValue(PersistKey.SessionTime));\n this.instance.sessionState.session_time = isNaN(persistedSessionTime) ? 0 : persistedSessionTime;\n var persistedLastActivityTime = parseInt(readAndUpdatePersistedValue(PersistKey.LastActivityTime));\n this.instance.sessionState.last_activity_time = isNaN(persistedLastActivityTime) ? 0 : persistedLastActivityTime;\n var persistedSessionCount = parseInt(readAndUpdatePersistedValue(PersistKey.SessionCount));\n this.instance.sessionState.count = isNaN(persistedSessionCount) ? 0 : persistedSessionCount;\n }\n var persistedCustomDeviceIds = readPersistedCustomDeviceIdentifiers(this.instance.useCookies);\n if (persistedCustomDeviceIds) {\n var restoredCustomDeviceIds = JSON.parse(persistedCustomDeviceIds);\n this.instance.customDeviceIds = restoredCustomDeviceIds;\n }\n };\n PubSuite.prototype.printStartupMsgs = function (product_id) {\n var adsmeasurementProduct = Product.adsmeasurement;\n Log.diagInfo(\"Started SDK \".concat(adsmeasurementProduct.standardVersionInfoString, \"\\n published \").concat(adsmeasurementProduct.sdkBuildDate));\n Log.diagInfo(\"The log level is set to \".concat(Log.getLogLevel()));\n Log.diagDebug(\"The product ID provided was '\".concat(product_id, \"'\"));\n };\n PubSuite.prototype.beginStart = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.instance.sleep)\n return [2 /*return*/];\n if (this.instance.sessionConfig.enabled)\n this.updateSessionState();\n return [4 /*yield*/, this.jobQueue.start(this.instance)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n PubSuite.prototype.performNewConfig = function () {\n var _a, _b, _c, _d;\n return __awaiter(this, void 0, void 0, function () {\n var config, serverConfig, hostServerConfig;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n if (this.instance.HostConfig)\n config = Config.mergeConfig((_a = this.instance.pubSuiteConfig) !== null && _a !== void 0 ? _a : {}, this.instance.HostConfig);\n if (!Config.ConfigExpired(this.instance)) return [3 /*break*/, 2];\n return [4 /*yield*/, Config.getServerConfig(this.instance, this.instance.retryWaterfall)];\n case 1:\n _e.sent();\n _e.label = 2;\n case 2:\n serverConfig = readPersistedConfig(PersistKey.LastServerConfig);\n if (!!((_b = serverConfig === null || serverConfig === void 0 ? void 0 : serverConfig.general) === null || _b === void 0 ? void 0 : _b.sdk_disabled)) return [3 /*break*/, 4];\n if (!(((_d = (_c = config.networking) === null || _c === void 0 ? void 0 : _c.urls) === null || _d === void 0 ? void 0 : _d.config) && Config.ConfigExpired(this.instance))) return [3 /*break*/, 4];\n return [4 /*yield*/, Config.getHostServerConfig(this.instance, this.instance.retryWaterfall)];\n case 3:\n _e.sent();\n hostServerConfig = readPersistedConfig(PersistKey.LastHostServerConfig);\n _e.label = 4;\n case 4:\n if (hostServerConfig)\n config = Config.mergeConfig(config, hostServerConfig);\n config = Config.mergeConfig(config, serverConfig !== null && serverConfig !== void 0 ? serverConfig : {});\n Config.applyConfigResp(this.instance, config);\n updatePersistedValue(PersistKey.LastConfigDate, String(utils.getCurrTimeSec()));\n this.instance.configDone = true;\n return [2 /*return*/];\n }\n });\n });\n };\n PubSuite.prototype.updateSessionState = function () {\n var currTime = utils.getCurrTimeSec();\n var activityDiff = currTime - this.instance.sessionState.last_activity_time;\n this.instance.sessionState.last_activity_time = currTime;\n updatePersistedValue(PersistKey.LastActivityTime, String(this.instance.sessionState.last_activity_time), this.instance.useCookies);\n if (activityDiff > this.instance.sessionConfig.timeout) {\n this.instance.sessionState.count++;\n this.instance.sessionState.session_time = currTime;\n this.sendConversion(\"session_start\");\n }\n updatePersistedValue(PersistKey.SessionTime, this.instance.sessionState.session_time.toString(), this.instance.useCookies);\n updatePersistedValue(PersistKey.SessionCount, String(this.instance.sessionState.count), this.instance.useCookies);\n };\n PubSuite.prototype.reportUserActivity = function () {\n this.updateSessionState();\n };\n PubSuite.prototype.ClickHandler = function (event) {\n var _a;\n var targetElement = event.target;\n var targetTag = targetElement.tagName;\n var conversion_name = null;\n if (this.instance.button_conversions && (targetTag === \"INPUT\" || targetTag === \"BUTTON\")) {\n var buttonText = (targetTag === \"INPUT\" ? targetElement.value : targetElement.textContent);\n if (this.instance.button_conversions[buttonText]) {\n conversion_name = this.instance.button_conversions[buttonText];\n }\n }\n if (targetElement.hasAttribute(this.instance.customDataAttribute)) {\n conversion_name = targetElement.getAttribute(this.instance.customDataAttribute);\n }\n if (this.instance.element_conversions[targetElement.id]) {\n conversion_name = this.instance.element_conversions[targetElement.id];\n }\n if (conversion_name) {\n this.sendConversion(conversion_name, (_a = this.instance.conversion_metadata) !== null && _a !== void 0 ? _a : {});\n return;\n }\n if (Object.keys(this.instance.button_conversions).length && Object.keys(this.instance.element_conversions).length) {\n Log.trace('Element conversions and button conversions are configured, but neither the ID of this element nor the button text match any in the element_conversions or button_text list provided in the config on startup.');\n }\n else if (Object.keys(this.instance.element_conversions).length) {\n Log.trace('Element conversions are configured, but the ID of this element does not match any in the element_conversions list provided in the config on startup');\n }\n else if (Object.keys(this.instance.button_conversions).length) {\n Log.trace('Button conversions are configured, but the text of this element does not match any in the button_conversions list provided in the config on startup');\n }\n };\n PubSuite.prototype.Impressions = function () {\n window.addEventListener(\"load\", function () {\n // Executes when visible for more than a second\n function visibleForOneSecond(element) {\n window.pubSuite.sendConversion(element.id);\n }\n // Observer Callback\n function intersectionCallback(entries, observer) {\n entries.forEach(function (entry) {\n if (entry.isIntersecting) {\n var target_1 = entry.target;\n var timerId = setTimeout(function () {\n var rect = entry.target.getBoundingClientRect();\n if (fourCornersVisible(target_1)) {\n visibleForOneSecond(target_1);\n observer.unobserve(target_1);\n }\n }, 1000);\n target_1._visibilityTimer = timerId;\n }\n else {\n clearTimeout(entry.target._visibilityTimer);\n }\n });\n }\n // Create the intersection observer\n var observer = new IntersectionObserver(intersectionCallback, {\n threshold: 1.0, // Trigger when 100% of the element is visible\n });\n // Observe elements with the specified class name (e.g. '.watched-element')\n var elementsToWatch = document.querySelectorAll('[data-pubSuiteTrack]');\n elementsToWatch.forEach(function (element) { return observer.observe(element); });\n function fourCornersVisible(target) {\n var rect = target.getBoundingClientRect();\n var topLeftVisible = pointIsVisible(target, rect.left, rect.top);\n var topRightVisible = pointIsVisible(target, rect.right - 1, rect.top + 1);\n var botLeftVisible = pointIsVisible(target, rect.left + 1, rect.bottom - 1);\n var botRightVisible = pointIsVisible(target, rect.right - 1, rect.bottom - 1);\n return topLeftVisible && topRightVisible && botLeftVisible && botRightVisible;\n }\n function pointIsVisible(target, x, y) {\n var topElement = document.elementFromPoint(x, y);\n return target === topElement || target.contains(topElement);\n }\n }, false);\n };\n return PubSuite;\n}());\nexport { PubSuite };\nvar sdk_instance = PubSuite.create();\nwindow.pubSuite = sdk_instance;\nfunction initSDK(currentScript, sdkInstance) {\n if (!currentScript)\n return;\n var sdkName = currentScript.getAttribute('data-sdk-name') || 'pubSuite';\n var sdkTag = currentScript.getAttribute('data-sdk-tag');\n var sdkNameRegex = /^[A-Za-z_][A-Za-z0-9_]*$/;\n var sdkTagRegex = /^[A-Z]{2}$/;\n if (!sdkNameRegex.test(sdkName)) {\n Log.warn('Invalid SDK Name provided. SDK Name must start with a letter or underscore, and contain only letters, numbers, and underscores.');\n return;\n }\n if (!sdkTag) {\n Log.initLog(sdkName);\n }\n else {\n if (sdkTagRegex.test(sdkTag)) {\n Log.initLog(sdkName, sdkTag);\n }\n else {\n Log.warn('Invalid SDK Tag provided. SDK Tag must be exactly two uppercase letters.');\n }\n }\n window[sdkName] = sdkInstance;\n}\ninitSDK(document.currentScript, sdk_instance);\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { PubSuiteInstance } from "../kochava";
|
|
2
|
+
import { ConfigResponse } from "../interfaces";
|
|
3
|
+
export declare const cancelRetries: () => void;
|
|
4
|
+
export declare const getServerConfig: (instance: PubSuiteInstance, retryWaterfall: number[], retries?: number) => Promise<boolean>;
|
|
5
|
+
export declare const getHostServerConfig: (instance: PubSuiteInstance, retryWaterfall: number[], retries?: number) => Promise<boolean>;
|
|
6
|
+
export declare const mergeConfig: (existingConfig: ConfigResponse, configToMerge: ConfigResponse) => ConfigResponse;
|
|
7
|
+
export declare const applyConfigResp: (instance: PubSuiteInstance, configResp: ConfigResponse) => void;
|
|
8
|
+
export declare const ConfigExpired: (instance: PubSuiteInstance) => boolean;
|
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
var __assign = this && this.__assign || function () {
|
|
2
|
+
__assign = Object.assign || function (t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
6
|
+
}
|
|
7
|
+
return t;
|
|
8
|
+
};
|
|
9
|
+
return __assign.apply(this, arguments);
|
|
10
|
+
};
|
|
11
|
+
var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
|
|
12
|
+
function adopt(value) {
|
|
13
|
+
return value instanceof P ? value : new P(function (resolve) {
|
|
14
|
+
resolve(value);
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
18
|
+
function fulfilled(value) {
|
|
19
|
+
try {
|
|
20
|
+
step(generator.next(value));
|
|
21
|
+
} catch (e) {
|
|
22
|
+
reject(e);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function rejected(value) {
|
|
26
|
+
try {
|
|
27
|
+
step(generator["throw"](value));
|
|
28
|
+
} catch (e) {
|
|
29
|
+
reject(e);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function step(result) {
|
|
33
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
34
|
+
}
|
|
35
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
var __generator = this && this.__generator || function (thisArg, body) {
|
|
39
|
+
var _ = { label: 0, sent: function () {
|
|
40
|
+
if (t[0] & 1) throw t[1];return t[1];
|
|
41
|
+
}, trys: [], ops: [] },
|
|
42
|
+
f,
|
|
43
|
+
y,
|
|
44
|
+
t,
|
|
45
|
+
g;
|
|
46
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
|
|
47
|
+
return this;
|
|
48
|
+
}), g;
|
|
49
|
+
function verb(n) {
|
|
50
|
+
return function (v) {
|
|
51
|
+
return step([n, v]);
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
function step(op) {
|
|
55
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
56
|
+
while (_) try {
|
|
57
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
58
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
59
|
+
switch (op[0]) {
|
|
60
|
+
case 0:case 1:
|
|
61
|
+
t = op;break;
|
|
62
|
+
case 4:
|
|
63
|
+
_.label++;return { value: op[1], done: false };
|
|
64
|
+
case 5:
|
|
65
|
+
_.label++;y = op[1];op = [0];continue;
|
|
66
|
+
case 7:
|
|
67
|
+
op = _.ops.pop();_.trys.pop();continue;
|
|
68
|
+
default:
|
|
69
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
70
|
+
_ = 0;continue;
|
|
71
|
+
}
|
|
72
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
73
|
+
_.label = op[1];break;
|
|
74
|
+
}
|
|
75
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
76
|
+
_.label = t[1];t = op;break;
|
|
77
|
+
}
|
|
78
|
+
if (t && _.label < t[2]) {
|
|
79
|
+
_.label = t[2];_.ops.push(op);break;
|
|
80
|
+
}
|
|
81
|
+
if (t[2]) _.ops.pop();
|
|
82
|
+
_.trys.pop();continue;
|
|
83
|
+
}
|
|
84
|
+
op = body.call(thisArg, _);
|
|
85
|
+
} catch (e) {
|
|
86
|
+
op = [6, e];y = 0;
|
|
87
|
+
} finally {
|
|
88
|
+
f = t = 0;
|
|
89
|
+
}
|
|
90
|
+
if (op[0] & 5) throw op[1];return { value: op[0] ? op[1] : void 0, done: true };
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
import * as http from "../http";
|
|
94
|
+
import * as utils from "../utils/utils";
|
|
95
|
+
import { Log } from "../utils/log";
|
|
96
|
+
import { constructPayload } from "./payload";
|
|
97
|
+
import { DEFAULTS } from "../interfaces";
|
|
98
|
+
import { PersistKey, readPersistedConfigDate, updateServerConfig, updateHostServerConfig } from "../browser/persist";
|
|
99
|
+
var timeOut;
|
|
100
|
+
var canceled = false;
|
|
101
|
+
var build = function (instance) {
|
|
102
|
+
var payload = constructPayload("config", instance);
|
|
103
|
+
Log.debug("Server config Payload", JSON.stringify(payload));
|
|
104
|
+
return payload;
|
|
105
|
+
};
|
|
106
|
+
export var cancelRetries = function () {
|
|
107
|
+
canceled = true;
|
|
108
|
+
clearTimeout(timeOut);
|
|
109
|
+
};
|
|
110
|
+
export var getServerConfig = function (instance, retryWaterfall, retries) {
|
|
111
|
+
if (retries === void 0) {
|
|
112
|
+
retries = 0;
|
|
113
|
+
}
|
|
114
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
115
|
+
var payload, success, configResp, configUrl, _loop_1, state_1;
|
|
116
|
+
return __generator(this, function (_a) {
|
|
117
|
+
switch (_a.label) {
|
|
118
|
+
case 0:
|
|
119
|
+
canceled = false;
|
|
120
|
+
payload = build(instance);
|
|
121
|
+
success = false;
|
|
122
|
+
configResp = {};
|
|
123
|
+
configUrl = instance.overrideUrls.serverConfig ? instance.overrideUrls.serverConfig : DEFAULTS.networking.urls.serverConfig;
|
|
124
|
+
_loop_1 = function () {
|
|
125
|
+
var sendTime, resp, respTime, _b, _c, e_1, retryIndex, retrySec_1;
|
|
126
|
+
return __generator(this, function (_d) {
|
|
127
|
+
switch (_d.label) {
|
|
128
|
+
case 0:
|
|
129
|
+
Log.trace("Server config endpoint:", configUrl);
|
|
130
|
+
sendTime = utils.getCurrTimeMS() - instance.startTimeMS;
|
|
131
|
+
Log.diagDebug("Sending server config at ".concat(utils.formatTime(sendTime / 1000), " seconds"));
|
|
132
|
+
return [4 /*yield*/, http.sendRequest(payload, configUrl, instance.instance_id)];
|
|
133
|
+
case 1:
|
|
134
|
+
resp = _d.sent();
|
|
135
|
+
respTime = utils.getCurrTimeMS() - instance.startTimeMS;
|
|
136
|
+
Log.diagDebug("Completed server config at ".concat(utils.formatTime(respTime / 1000), "\n seconds with a network duration of ").concat(utils.formatTime((respTime - sendTime) / 1000), " seconds"));
|
|
137
|
+
if (canceled) {
|
|
138
|
+
Log.trace("Can no longer retry server config, cancelling.");
|
|
139
|
+
return [2 /*return*/, { value: false }];
|
|
140
|
+
}
|
|
141
|
+
_d.label = 2;
|
|
142
|
+
case 2:
|
|
143
|
+
_d.trys.push([2, 4,, 5]);
|
|
144
|
+
_c = (_b = JSON).parse;
|
|
145
|
+
return [4 /*yield*/, resp.text()];
|
|
146
|
+
case 3:
|
|
147
|
+
configResp = _c.apply(_b, [_d.sent()]);
|
|
148
|
+
Log.debug("Server config Response:", configResp);
|
|
149
|
+
success = resp.ok;
|
|
150
|
+
return [3 /*break*/, 5];
|
|
151
|
+
case 4:
|
|
152
|
+
e_1 = _d.sent();
|
|
153
|
+
Log.error("Error parsing Server config Response", e_1);
|
|
154
|
+
success = false;
|
|
155
|
+
return [3 /*break*/, 5];
|
|
156
|
+
case 5:
|
|
157
|
+
if (success) {
|
|
158
|
+
Log.info("Response: " + JSON.stringify(configResp));
|
|
159
|
+
Log.info("Server config success!");
|
|
160
|
+
updateServerConfig(configResp);
|
|
161
|
+
return [2 /*return*/, { value: success }];
|
|
162
|
+
}
|
|
163
|
+
if (!!canceled) return [3 /*break*/, 7];
|
|
164
|
+
retryIndex = retries > retryWaterfall.length - 1 ? retryWaterfall.length - 1 : retries;
|
|
165
|
+
retrySec_1 = retryWaterfall[retryIndex];
|
|
166
|
+
Log.error("Server config failed, attempting again in ".concat(retrySec_1, " seconds"));
|
|
167
|
+
return [4 /*yield*/, new Promise(function (resolve) {
|
|
168
|
+
timeOut = setTimeout(resolve, retrySec_1 * 1000);
|
|
169
|
+
})];
|
|
170
|
+
case 6:
|
|
171
|
+
_d.sent();
|
|
172
|
+
retries++;
|
|
173
|
+
_d.label = 7;
|
|
174
|
+
case 7:
|
|
175
|
+
return [2 /*return*/];
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
};
|
|
179
|
+
_a.label = 1;
|
|
180
|
+
case 1:
|
|
181
|
+
return [5 /*yield**/, _loop_1()];
|
|
182
|
+
case 2:
|
|
183
|
+
state_1 = _a.sent();
|
|
184
|
+
if (typeof state_1 === "object") return [2 /*return*/, state_1.value];
|
|
185
|
+
_a.label = 3;
|
|
186
|
+
case 3:
|
|
187
|
+
if (!success && !canceled) return [3 /*break*/, 1];
|
|
188
|
+
_a.label = 4;
|
|
189
|
+
case 4:
|
|
190
|
+
return [2 /*return*/];
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
};
|
|
195
|
+
export var getHostServerConfig = function (instance, retryWaterfall, retries) {
|
|
196
|
+
if (retries === void 0) {
|
|
197
|
+
retries = 0;
|
|
198
|
+
}
|
|
199
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
200
|
+
var payload, success, configResp, configUrl, _loop_2, state_2;
|
|
201
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
202
|
+
return __generator(this, function (_k) {
|
|
203
|
+
switch (_k.label) {
|
|
204
|
+
case 0:
|
|
205
|
+
canceled = false;
|
|
206
|
+
payload = build(instance);
|
|
207
|
+
success = false;
|
|
208
|
+
configResp = {};
|
|
209
|
+
configUrl = instance.overrideUrls.hostServerConfig ? instance.overrideUrls.hostServerConfig : ((_c = (_b = (_a = instance.HostConfig) === null || _a === void 0 ? void 0 : _a.networking) === null || _b === void 0 ? void 0 : _b.urls) === null || _c === void 0 ? void 0 : _c.config) ? (_f = (_e = (_d = instance.HostConfig) === null || _d === void 0 ? void 0 : _d.networking) === null || _e === void 0 ? void 0 : _e.urls) === null || _f === void 0 ? void 0 : _f.config : (_j = (_h = (_g = instance.pubSuiteConfig) === null || _g === void 0 ? void 0 : _g.networking) === null || _h === void 0 ? void 0 : _h.urls) === null || _j === void 0 ? void 0 : _j.config;
|
|
210
|
+
_loop_2 = function () {
|
|
211
|
+
var sendTime, resp, respTime, _l, _m, e_2, retryIndex, retrySec_2;
|
|
212
|
+
return __generator(this, function (_o) {
|
|
213
|
+
switch (_o.label) {
|
|
214
|
+
case 0:
|
|
215
|
+
Log.trace("Remote config endpoint:", configUrl);
|
|
216
|
+
sendTime = utils.getCurrTimeMS() - instance.startTimeMS;
|
|
217
|
+
Log.diagDebug("Sending remote config at ".concat(utils.formatTime(sendTime / 1000), " seconds"));
|
|
218
|
+
resp = void 0;
|
|
219
|
+
if (!!instance.sdk_disabled) return [3 /*break*/, 2];
|
|
220
|
+
return [4 /*yield*/, http.sendRequest(payload, configUrl, instance.instance_id)];
|
|
221
|
+
case 1:
|
|
222
|
+
resp = _o.sent();
|
|
223
|
+
return [3 /*break*/, 3];
|
|
224
|
+
case 2:
|
|
225
|
+
resp = http.mockSuccess();
|
|
226
|
+
_o.label = 3;
|
|
227
|
+
case 3:
|
|
228
|
+
respTime = utils.getCurrTimeMS() - instance.startTimeMS;
|
|
229
|
+
Log.diagDebug("Completed remote config at ".concat(utils.formatTime(respTime / 1000), "\n seconds with a network duration of ").concat(utils.formatTime((respTime - sendTime) / 1000), " seconds"));
|
|
230
|
+
if (canceled) {
|
|
231
|
+
Log.trace("Can no longer retry remote config, cancelling.");
|
|
232
|
+
return [2 /*return*/, { value: false }];
|
|
233
|
+
}
|
|
234
|
+
_o.label = 4;
|
|
235
|
+
case 4:
|
|
236
|
+
_o.trys.push([4, 6,, 7]);
|
|
237
|
+
_m = (_l = JSON).parse;
|
|
238
|
+
return [4 /*yield*/, resp.text()];
|
|
239
|
+
case 5:
|
|
240
|
+
configResp = _m.apply(_l, [_o.sent()]);
|
|
241
|
+
Log.debug("Remote config Response:", configResp);
|
|
242
|
+
success = resp.ok;
|
|
243
|
+
return [3 /*break*/, 7];
|
|
244
|
+
case 6:
|
|
245
|
+
e_2 = _o.sent();
|
|
246
|
+
Log.error("Error parsing remote config response", e_2);
|
|
247
|
+
success = false;
|
|
248
|
+
return [3 /*break*/, 7];
|
|
249
|
+
case 7:
|
|
250
|
+
if (success) {
|
|
251
|
+
Log.info("Response: " + JSON.stringify(configResp));
|
|
252
|
+
Log.info("Remote config success!");
|
|
253
|
+
updateHostServerConfig(configResp);
|
|
254
|
+
return [2 /*return*/, { value: success }];
|
|
255
|
+
}
|
|
256
|
+
if (!!canceled) return [3 /*break*/, 9];
|
|
257
|
+
retryIndex = retries > retryWaterfall.length - 1 ? retryWaterfall.length - 1 : retries;
|
|
258
|
+
retrySec_2 = retryWaterfall[retryIndex];
|
|
259
|
+
Log.error("Remote config failed, attempting again in ".concat(retrySec_2, " seconds"));
|
|
260
|
+
return [4 /*yield*/, new Promise(function (resolve) {
|
|
261
|
+
timeOut = setTimeout(resolve, retrySec_2 * 1000);
|
|
262
|
+
})];
|
|
263
|
+
case 8:
|
|
264
|
+
_o.sent();
|
|
265
|
+
retries++;
|
|
266
|
+
_o.label = 9;
|
|
267
|
+
case 9:
|
|
268
|
+
return [2 /*return*/];
|
|
269
|
+
}
|
|
270
|
+
});
|
|
271
|
+
};
|
|
272
|
+
_k.label = 1;
|
|
273
|
+
case 1:
|
|
274
|
+
return [5 /*yield**/, _loop_2()];
|
|
275
|
+
case 2:
|
|
276
|
+
state_2 = _k.sent();
|
|
277
|
+
if (typeof state_2 === "object") return [2 /*return*/, state_2.value];
|
|
278
|
+
_k.label = 3;
|
|
279
|
+
case 3:
|
|
280
|
+
if (!success && !canceled) return [3 /*break*/, 1];
|
|
281
|
+
_k.label = 4;
|
|
282
|
+
case 4:
|
|
283
|
+
return [2 /*return*/];
|
|
284
|
+
}
|
|
285
|
+
});
|
|
286
|
+
});
|
|
287
|
+
};
|
|
288
|
+
export var mergeConfig = function (existingConfig, configToMerge) {
|
|
289
|
+
var _a, _b, _c, _d;
|
|
290
|
+
var mergedConfig = {
|
|
291
|
+
general: __assign(__assign({}, existingConfig.general), configToMerge.general),
|
|
292
|
+
networking: __assign(__assign({}, existingConfig.networking), { urls: __assign(__assign({}, (_a = existingConfig.networking) === null || _a === void 0 ? void 0 : _a.urls), (_b = configToMerge.networking) === null || _b === void 0 ? void 0 : _b.urls), retry_waterfall: ((_c = configToMerge.networking) === null || _c === void 0 ? void 0 : _c.retry_waterfall) ? (_d = configToMerge.networking) === null || _d === void 0 ? void 0 : _d.retry_waterfall : DEFAULTS.networking.retry_waterfall }),
|
|
293
|
+
element_conversions: __assign(__assign({}, existingConfig.element_conversions), configToMerge.element_conversions || {}),
|
|
294
|
+
button_conversions: __assign(__assign({}, existingConfig.button_conversions), configToMerge.button_conversions || {}),
|
|
295
|
+
conversion_metadata: __assign(__assign({}, existingConfig.conversion_metadata), configToMerge.conversion_metadata),
|
|
296
|
+
sessions: __assign(__assign({}, existingConfig.sessions), configToMerge.sessions || {})
|
|
297
|
+
};
|
|
298
|
+
return mergedConfig;
|
|
299
|
+
};
|
|
300
|
+
export var applyConfigResp = function (instance, configResp) {
|
|
301
|
+
var _a, _b, _c;
|
|
302
|
+
if (configResp.general) {
|
|
303
|
+
if (configResp.general.product_id) {
|
|
304
|
+
instance.product_id = configResp.general.product_id;
|
|
305
|
+
}
|
|
306
|
+
if (configResp.general.access_token) {
|
|
307
|
+
instance.access_token = configResp.general.access_token;
|
|
308
|
+
}
|
|
309
|
+
if (configResp.general.sdk_disabled) {
|
|
310
|
+
instance.sdk_disabled = configResp.general.sdk_disabled || instance.sdk_disabled;
|
|
311
|
+
}
|
|
312
|
+
if (configResp.general.install_id_enabled) {
|
|
313
|
+
instance.installIdEnabled = configResp.general.install_id_enabled || instance.installIdEnabled;
|
|
314
|
+
}
|
|
315
|
+
if (configResp.general.cookies_enabled) {
|
|
316
|
+
instance.useCookies = configResp.general.cookies_enabled || instance.useCookies;
|
|
317
|
+
}
|
|
318
|
+
if (configResp.general.collect_ga) {
|
|
319
|
+
instance.collect_ga = configResp.general.collect_ga || instance.collect_ga;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
if (configResp.config) {
|
|
323
|
+
instance.pubSuiteConfig.config = { refresh_minimum: configResp.config.refresh_minimum ? configResp.config.refresh_minimum : DEFAULTS.config.refresh_minimum };
|
|
324
|
+
}
|
|
325
|
+
if (configResp.networking) {
|
|
326
|
+
instance.pubSuiteConfig.networking.retry_waterfall = configResp.networking.retry_waterfall || DEFAULTS.networking.retry_waterfall;
|
|
327
|
+
instance.retryWaterfall = instance.pubSuiteConfig.networking.retry_waterfall;
|
|
328
|
+
if (configResp.networking.urls) {
|
|
329
|
+
instance.pubSuiteConfig.networking.urls = {
|
|
330
|
+
config: configResp.networking.urls.config || DEFAULTS.networking.urls.serverConfig,
|
|
331
|
+
conversion: configResp.networking.urls.conversion || DEFAULTS.networking.urls.conversion
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
if (configResp.element_conversions) {
|
|
336
|
+
instance.element_conversions = configResp.element_conversions;
|
|
337
|
+
}
|
|
338
|
+
if (configResp.button_conversions) {
|
|
339
|
+
instance.button_conversions = configResp.button_conversions;
|
|
340
|
+
}
|
|
341
|
+
if (configResp.conversion_metadata) {
|
|
342
|
+
instance.conversion_metadata = configResp.conversion_metadata;
|
|
343
|
+
}
|
|
344
|
+
if ((_a = configResp.general) === null || _a === void 0 ? void 0 : _a.sdk_disabled) {
|
|
345
|
+
instance.sdk_disabled = configResp.general.sdk_disabled;
|
|
346
|
+
}
|
|
347
|
+
if (configResp.sessions) {
|
|
348
|
+
instance.sessionConfig.enabled = (_b = configResp.sessions.enabled) !== null && _b !== void 0 ? _b : instance.sessionConfig.enabled;
|
|
349
|
+
instance.sessionConfig.timeout = (_c = configResp.sessions.timeout) !== null && _c !== void 0 ? _c : instance.sessionConfig.timeout;
|
|
350
|
+
}
|
|
351
|
+
};
|
|
352
|
+
export var ConfigExpired = function (instance) {
|
|
353
|
+
var _a, _b;
|
|
354
|
+
var refreshMin = (_b = (_a = instance.pubSuiteConfig) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.refresh_minimum;
|
|
355
|
+
var configDate = readPersistedConfigDate(PersistKey.LastConfigDate);
|
|
356
|
+
if (!configDate) return true;
|
|
357
|
+
var timeElapsed = utils.getCurrTimeSec() - configDate;
|
|
358
|
+
return timeElapsed > refreshMin;
|
|
359
|
+
};
|
|
360
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../node/payloads/config.js"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","__generator","body","_","label","sent","trys","ops","f","y","g","verb","Symbol","iterator","v","op","TypeError","pop","push","http","utils","Log","constructPayload","DEFAULTS","PersistKey","readPersistedConfigDate","updateServerConfig","updateHostServerConfig","timeOut","canceled","build","instance","payload","debug","JSON","stringify","cancelRetries","clearTimeout","getServerConfig","retryWaterfall","retries","success","configResp","configUrl","_loop_1","state_1","_a","overrideUrls","serverConfig","networking","urls","sendTime","resp","respTime","_b","_c","e_1","retryIndex","retrySec_1","_d","trace","getCurrTimeMS","startTimeMS","diagDebug","concat","formatTime","sendRequest","instance_id","parse","text","ok","error","info","setTimeout","getHostServerConfig","_loop_2","state_2","_e","_f","_g","_h","_j","_k","hostServerConfig","HostConfig","config","pubSuiteConfig","_l","_m","e_2","retrySec_2","_o","sdk_disabled","mockSuccess","mergeConfig","existingConfig","configToMerge","mergedConfig","general","retry_waterfall","element_conversions","button_conversions","conversion_metadata","sessions","applyConfigResp","product_id","access_token","install_id_enabled","installIdEnabled","cookies_enabled","useCookies","collect_ga","refresh_minimum","conversion","sessionConfig","enabled","timeout","ConfigExpired","refreshMin","configDate","LastConfigDate","timeElapsed","getCurrTimeSec"],"mappings":"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","file":"config.js","sourcesContent":["var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as http from \"../http\";\nimport * as utils from \"../utils/utils\";\nimport { Log } from \"../utils/log\";\nimport { constructPayload } from \"./payload\";\nimport { DEFAULTS } from \"../interfaces\";\nimport { PersistKey, readPersistedConfigDate, updateServerConfig, updateHostServerConfig } from \"../browser/persist\";\nvar timeOut;\nvar canceled = false;\nvar build = function (instance) {\n var payload = constructPayload(\"config\", instance);\n Log.debug(\"Server config Payload\", JSON.stringify(payload));\n return payload;\n};\nexport var cancelRetries = function () {\n canceled = true;\n clearTimeout(timeOut);\n};\nexport var getServerConfig = function (instance, retryWaterfall, retries) {\n if (retries === void 0) { retries = 0; }\n return __awaiter(void 0, void 0, void 0, function () {\n var payload, success, configResp, configUrl, _loop_1, state_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n canceled = false;\n payload = build(instance);\n success = false;\n configResp = {};\n configUrl = instance.overrideUrls.serverConfig ? instance.overrideUrls.serverConfig : DEFAULTS.networking.urls.serverConfig;\n _loop_1 = function () {\n var sendTime, resp, respTime, _b, _c, e_1, retryIndex, retrySec_1;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n Log.trace(\"Server config endpoint:\", configUrl);\n sendTime = utils.getCurrTimeMS() - instance.startTimeMS;\n Log.diagDebug(\"Sending server config at \".concat(utils.formatTime(sendTime / 1000), \" seconds\"));\n return [4 /*yield*/, http.sendRequest(payload, configUrl, instance.instance_id)];\n case 1:\n resp = _d.sent();\n respTime = utils.getCurrTimeMS() - instance.startTimeMS;\n Log.diagDebug(\"Completed server config at \".concat(utils.formatTime(respTime / 1000), \"\\n seconds with a network duration of \").concat(utils.formatTime((respTime - sendTime) / 1000), \" seconds\"));\n if (canceled) {\n Log.trace(\"Can no longer retry server config, cancelling.\");\n return [2 /*return*/, { value: false }];\n }\n _d.label = 2;\n case 2:\n _d.trys.push([2, 4, , 5]);\n _c = (_b = JSON).parse;\n return [4 /*yield*/, resp.text()];\n case 3:\n configResp = _c.apply(_b, [_d.sent()]);\n Log.debug(\"Server config Response:\", configResp);\n success = resp.ok;\n return [3 /*break*/, 5];\n case 4:\n e_1 = _d.sent();\n Log.error(\"Error parsing Server config Response\", e_1);\n success = false;\n return [3 /*break*/, 5];\n case 5:\n if (success) {\n Log.info(\"Response: \" + JSON.stringify(configResp));\n Log.info(\"Server config success!\");\n updateServerConfig(configResp);\n return [2 /*return*/, { value: success }];\n }\n if (!!canceled) return [3 /*break*/, 7];\n retryIndex = (retries > retryWaterfall.length - 1) ? retryWaterfall.length - 1 : retries;\n retrySec_1 = retryWaterfall[retryIndex];\n Log.error(\"Server config failed, attempting again in \".concat(retrySec_1, \" seconds\"));\n return [4 /*yield*/, new Promise(function (resolve) { timeOut = setTimeout(resolve, retrySec_1 * 1000); })];\n case 6:\n _d.sent();\n retries++;\n _d.label = 7;\n case 7: return [2 /*return*/];\n }\n });\n };\n _a.label = 1;\n case 1: return [5 /*yield**/, _loop_1()];\n case 2:\n state_1 = _a.sent();\n if (typeof state_1 === \"object\")\n return [2 /*return*/, state_1.value];\n _a.label = 3;\n case 3:\n if (!success && !canceled) return [3 /*break*/, 1];\n _a.label = 4;\n case 4: return [2 /*return*/];\n }\n });\n });\n};\nexport var getHostServerConfig = function (instance, retryWaterfall, retries) {\n if (retries === void 0) { retries = 0; }\n return __awaiter(void 0, void 0, void 0, function () {\n var payload, success, configResp, configUrl, _loop_2, state_2;\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n canceled = false;\n payload = build(instance);\n success = false;\n configResp = {};\n configUrl = instance.overrideUrls.hostServerConfig ? instance.overrideUrls.hostServerConfig : (((_c = (_b = (_a = instance.HostConfig) === null || _a === void 0 ? void 0 : _a.networking) === null || _b === void 0 ? void 0 : _b.urls) === null || _c === void 0 ? void 0 : _c.config) ? (_f = (_e = (_d = instance.HostConfig) === null || _d === void 0 ? void 0 : _d.networking) === null || _e === void 0 ? void 0 : _e.urls) === null || _f === void 0 ? void 0 : _f.config : (_j = (_h = (_g = instance.pubSuiteConfig) === null || _g === void 0 ? void 0 : _g.networking) === null || _h === void 0 ? void 0 : _h.urls) === null || _j === void 0 ? void 0 : _j.config);\n _loop_2 = function () {\n var sendTime, resp, respTime, _l, _m, e_2, retryIndex, retrySec_2;\n return __generator(this, function (_o) {\n switch (_o.label) {\n case 0:\n Log.trace(\"Remote config endpoint:\", configUrl);\n sendTime = utils.getCurrTimeMS() - instance.startTimeMS;\n Log.diagDebug(\"Sending remote config at \".concat(utils.formatTime(sendTime / 1000), \" seconds\"));\n resp = void 0;\n if (!!instance.sdk_disabled) return [3 /*break*/, 2];\n return [4 /*yield*/, http.sendRequest(payload, configUrl, instance.instance_id)];\n case 1:\n resp = _o.sent();\n return [3 /*break*/, 3];\n case 2:\n resp = http.mockSuccess();\n _o.label = 3;\n case 3:\n respTime = utils.getCurrTimeMS() - instance.startTimeMS;\n Log.diagDebug(\"Completed remote config at \".concat(utils.formatTime(respTime / 1000), \"\\n seconds with a network duration of \").concat(utils.formatTime((respTime - sendTime) / 1000), \" seconds\"));\n if (canceled) {\n Log.trace(\"Can no longer retry remote config, cancelling.\");\n return [2 /*return*/, { value: false }];\n }\n _o.label = 4;\n case 4:\n _o.trys.push([4, 6, , 7]);\n _m = (_l = JSON).parse;\n return [4 /*yield*/, resp.text()];\n case 5:\n configResp = _m.apply(_l, [_o.sent()]);\n Log.debug(\"Remote config Response:\", configResp);\n success = resp.ok;\n return [3 /*break*/, 7];\n case 6:\n e_2 = _o.sent();\n Log.error(\"Error parsing remote config response\", e_2);\n success = false;\n return [3 /*break*/, 7];\n case 7:\n if (success) {\n Log.info(\"Response: \" + JSON.stringify(configResp));\n Log.info(\"Remote config success!\");\n updateHostServerConfig(configResp);\n return [2 /*return*/, { value: success }];\n }\n if (!!canceled) return [3 /*break*/, 9];\n retryIndex = (retries > retryWaterfall.length - 1) ? retryWaterfall.length - 1 : retries;\n retrySec_2 = retryWaterfall[retryIndex];\n Log.error(\"Remote config failed, attempting again in \".concat(retrySec_2, \" seconds\"));\n return [4 /*yield*/, new Promise(function (resolve) { timeOut = setTimeout(resolve, retrySec_2 * 1000); })];\n case 8:\n _o.sent();\n retries++;\n _o.label = 9;\n case 9: return [2 /*return*/];\n }\n });\n };\n _k.label = 1;\n case 1: return [5 /*yield**/, _loop_2()];\n case 2:\n state_2 = _k.sent();\n if (typeof state_2 === \"object\")\n return [2 /*return*/, state_2.value];\n _k.label = 3;\n case 3:\n if (!success && !canceled) return [3 /*break*/, 1];\n _k.label = 4;\n case 4: return [2 /*return*/];\n }\n });\n });\n};\nexport var mergeConfig = function (existingConfig, configToMerge) {\n var _a, _b, _c, _d;\n var mergedConfig = {\n general: __assign(__assign({}, existingConfig.general), configToMerge.general),\n networking: __assign(__assign({}, existingConfig.networking), { urls: __assign(__assign({}, (_a = existingConfig.networking) === null || _a === void 0 ? void 0 : _a.urls), (_b = configToMerge.networking) === null || _b === void 0 ? void 0 : _b.urls), retry_waterfall: ((_c = configToMerge.networking) === null || _c === void 0 ? void 0 : _c.retry_waterfall) ? (_d = configToMerge.networking) === null || _d === void 0 ? void 0 : _d.retry_waterfall : DEFAULTS.networking.retry_waterfall }),\n element_conversions: __assign(__assign({}, existingConfig.element_conversions), (configToMerge.element_conversions || {})),\n button_conversions: __assign(__assign({}, existingConfig.button_conversions), (configToMerge.button_conversions || {})),\n conversion_metadata: __assign(__assign({}, existingConfig.conversion_metadata), configToMerge.conversion_metadata),\n sessions: __assign(__assign({}, existingConfig.sessions), (configToMerge.sessions || {}))\n };\n return mergedConfig;\n};\nexport var applyConfigResp = function (instance, configResp) {\n var _a, _b, _c;\n if (configResp.general) {\n if (configResp.general.product_id) {\n instance.product_id = configResp.general.product_id;\n }\n if (configResp.general.access_token) {\n instance.access_token = configResp.general.access_token;\n }\n if (configResp.general.sdk_disabled) {\n instance.sdk_disabled = configResp.general.sdk_disabled || instance.sdk_disabled;\n }\n if (configResp.general.install_id_enabled) {\n instance.installIdEnabled = configResp.general.install_id_enabled || instance.installIdEnabled;\n }\n if (configResp.general.cookies_enabled) {\n instance.useCookies = configResp.general.cookies_enabled || instance.useCookies;\n }\n if (configResp.general.collect_ga) {\n instance.collect_ga = configResp.general.collect_ga || instance.collect_ga;\n }\n }\n if (configResp.config) {\n instance.pubSuiteConfig.config = { refresh_minimum: configResp.config.refresh_minimum ? configResp.config.refresh_minimum : DEFAULTS.config.refresh_minimum };\n }\n if (configResp.networking) {\n instance.pubSuiteConfig.networking.retry_waterfall = configResp.networking.retry_waterfall || DEFAULTS.networking.retry_waterfall;\n instance.retryWaterfall = instance.pubSuiteConfig.networking.retry_waterfall;\n if (configResp.networking.urls) {\n instance.pubSuiteConfig.networking.urls = {\n config: configResp.networking.urls.config || DEFAULTS.networking.urls.serverConfig,\n conversion: configResp.networking.urls.conversion || DEFAULTS.networking.urls.conversion,\n };\n }\n }\n if (configResp.element_conversions) {\n instance.element_conversions = configResp.element_conversions;\n }\n if (configResp.button_conversions) {\n instance.button_conversions = configResp.button_conversions;\n }\n if (configResp.conversion_metadata) {\n instance.conversion_metadata = configResp.conversion_metadata;\n }\n if ((_a = configResp.general) === null || _a === void 0 ? void 0 : _a.sdk_disabled) {\n instance.sdk_disabled = configResp.general.sdk_disabled;\n }\n if (configResp.sessions) {\n instance.sessionConfig.enabled = (_b = configResp.sessions.enabled) !== null && _b !== void 0 ? _b : instance.sessionConfig.enabled;\n instance.sessionConfig.timeout = (_c = configResp.sessions.timeout) !== null && _c !== void 0 ? _c : instance.sessionConfig.timeout;\n }\n};\nexport var ConfigExpired = function (instance) {\n var _a, _b;\n var refreshMin = (_b = (_a = instance.pubSuiteConfig) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.refresh_minimum;\n var configDate = readPersistedConfigDate(PersistKey.LastConfigDate);\n if (!configDate)\n return true;\n var timeElapsed = utils.getCurrTimeSec() - configDate;\n return timeElapsed > refreshMin;\n};\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Json } from "../interfaces";
|
|
2
|
+
import { PubSuiteInstance } from "../kochava";
|
|
3
|
+
import { Job } from "../jobqueue";
|
|
4
|
+
export declare const constructPayloadBody: (instance: PubSuiteInstance, conversionName: string, conversionData?: Json) => Json;
|
|
5
|
+
export declare const send: (instance: PubSuiteInstance, job: Job) => Promise<boolean>;
|