{"version":3,"file":"859ff50f-c28537894b6813b3f3e2.js","mappings":"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","sources":["webpack://ecommerce-web-app/./node_modules/vwo-node-sdk/dist/vwo-javascript-sdk.js"],"sourcesContent":["/*!\n * vwo-javascript-sdk - v1.70.0\n * URL - https://github.com/wingify/vwo-node-sdk\n * \n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n * \n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * \n * http://www.apache.org/licenses/LICENSE-2.0\n * \n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * \n * Dependencies used - \n * 1. murmurhash - ^0.0.2\n * 2. superstruct - ^0.10.12\n * 3. uuid - ^3.3.2\n * 4. vwo-sdk-log-messages - ^0.12.0\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\t// CommonJS2\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\t// AMD\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\t// CommonJS\n\telse if(typeof exports === 'object')\n\t\texports[\"vwoSdk\"] = factory();\n\t// Root\n\telse\n\t\troot[\"vwoSdk\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"./lib/index.js\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./lib/VWO.js\":\n/*!********************!*\\\n !*** ./lib/VWO.js ***!\n \\********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar api = __webpack_require__(/*! ./api */ \"./lib/api/index.js\");\n\nvar FileNameEnum = __webpack_require__(/*! ./enums/FileNameEnum */ \"./lib/enums/FileNameEnum.js\");\n\nvar ApiEnum = __webpack_require__(/*! ./enums/ApiEnum */ \"./lib/enums/ApiEnum.js\");\n\nvar DataTypeUtil = __webpack_require__(/*! ./utils/DataTypeUtil */ \"./lib/utils/DataTypeUtil.js\");\n\nvar FunctionUtil = __webpack_require__(/*! ./utils/FunctionUtil */ \"./lib/utils/FunctionUtil.js\");\n\nvar VWOFeatureFlags = __webpack_require__(/*! ./utils/VWOFeatureFlags */ \"./lib/utils/VWOFeatureFlags.js\");\n\nvar EventQueue = __webpack_require__(/*! ./services/EventQueue */ \"./lib/services/EventQueue.js\");\n\nvar SettingsFileService = __webpack_require__(/*! ./services/SettingsFileManager */ \"./lib/services/SettingsFileManager.js\");\n\nvar logging = __webpack_require__(/*! ./services/logging */ \"./lib/services/logging/index.js\");\n\nvar HooksManager = __webpack_require__(/*! ./services/HooksManager */ \"./lib/services/HooksManager.js\");\n\nvar UrlService = __webpack_require__(/*! ./services/UrlService */ \"./lib/services/UrlService.js\");\n\nvar UsageStats = __webpack_require__(/*! ./services/UsageStats */ \"./lib/services/UsageStats.js\");\n\nvar BatchEventsDispatcher;\nvar customEventUtil;\nvar BatchEventsQueue;\n\nif (false) {}\n\nvar LogLevelEnum = logging.LogLevelEnum,\n LogMessageEnum = logging.LogMessageEnum,\n LogMessageUtil = logging.LogMessageUtil;\nvar file = FileNameEnum.VWO;\n\nvar VWO =\n/*#__PURE__*/\nfunction () {\n // Setting various services on the instance to be accessible by its member functions\n function VWO() {\n var _this = this;\n\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, VWO);\n\n this.getVariation = this.getVariationName; // to be backward compatible\n\n this.userStorageService = config.userStorageService;\n this.logger = config.logger;\n this.returnPromiseFor = config.returnPromiseFor;\n this.asyncStorageConfig = config.asyncStorageConfig;\n this.optOut = false;\n\n if (this.userStorageService === undefined && config.asyncStorageConfig) {\n // replace the userStorageService with the redisObject passed in asyncStorageConfig\n this.userStorageService = config.asyncStorageConfig.redisStorage;\n config.userStorageService = this.userStorageService;\n }\n\n var settingsFileManager = new SettingsFileService(config); // Validate the config file i.e. check if required fields contain appropriate data\n\n if (!settingsFileManager.isSettingsFileValid()) {\n this.logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.SETTINGS_FILE_INVALID, {\n file: file\n }));\n return;\n }\n\n this.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.CONFIG_VALID, {\n file: file\n })); // Initialize Hooks manager so that callbacks can be invoked\n\n HooksManager.init(config); // Setup event quque for sending impressions to VWO server\n\n this.eventQueue = new EventQueue();\n this.usageStats = new UsageStats();\n this.SettingsFileManager = settingsFileManager;\n settingsFileManager.checkAndPoll(); // Checks if pollingInterval is passed then starts polling settingsFile\n\n if (!config.isDevelopmentMode) {\n this.usageStats.collectUsageStats(settingsFileManager.getConfig());\n } // Only for Node.js SDK\n\n\n if (false) { var sdkKey, accountId; } // Process settingsFile for various things. For eg: assign bucket range to variation, etc.\n\n\n this.SettingsFileManager.processSettingsFile();\n this.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.SDK_INITIALIZED, {\n file: file\n }));\n this.UrlService = UrlService.init(config.settingsFile);\n this.VWOFeatureFlags = VWOFeatureFlags.init(config.settingsFile);\n } // PUBLIC METHODS\n\n /**\n * This API method: Gets the variation assigned for the user for the campaign and send the metrics to VWO server\n *\n * @param {String} campaignKey unique campaign key specified in VWO app\n * @param {String} userId ID assigned to a user\n * @param {Object} options optional params - customVariables, variationTargetingVariables\n *\n * @return {String|null} If variation is assigned then variation-name otherwise null in case of user not becoming part\n */\n\n\n _createClass(VWO, [{\n key: \"activate\",\n value: function activate(campaignKey, userId) {\n var _this2 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n try {\n var self = this;\n\n if (self.asyncStorageConfig && DataTypeUtil.isObject(self.asyncStorageConfig)) {\n self.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.CONFIG_ASYNC_RETURN_PROMISE, {\n file: file,\n method: ApiEnum.ACTIVATE\n }));\n return new Promise(function (resolve) {\n if (_this2.optOut) {\n _this2.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.API_NOT_ENABLED, {\n file: file,\n api: ApiEnum.ACTIVATE\n }));\n\n resolve(null);\n } else {\n return api.activate(self, campaignKey, userId, options).then(function (data) {\n if (DataTypeUtil.isObject(data)) {\n resolve(data.variationName);\n } else {\n resolve(data);\n }\n });\n }\n });\n } // Check if returnPromiseFor is provided. If yes, return a promise instead of value\n // i.e. wait till the network call is not successful\n\n\n if (self.returnPromiseFor && (self.returnPromiseFor.activate || self.returnPromiseFor.all)) {\n self.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.CONFIG_RETURN_PROMISE, {\n file: file,\n method: ApiEnum.ACTIVATE\n }));\n return new Promise(function (resolve) {\n if (_this2.optOut) {\n _this2.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.API_NOT_ENABLED, {\n file: file,\n api: ApiEnum.ACTIVATE\n }));\n\n resolve(null);\n } else {\n var variationName;\n\n options.responseCallback = function (_error, _response) {\n resolve(variationName);\n };\n\n variationName = api.activate(self, campaignKey, userId, options); // If we get null from the API i.e. no tracking call was sent\n // In this case, responseCallback will not be fired and hence we have to manually resolve the promise\n\n if (!variationName) {\n resolve(variationName);\n } else if (DataTypeUtil.isObject(variationName)) {\n resolve(variationName.variationName);\n }\n }\n });\n }\n\n if (this.optOut) {\n this.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.API_NOT_ENABLED, {\n file: file,\n api: ApiEnum.ACTIVATE\n }));\n return null;\n }\n\n var apiResponse = api.activate(self, campaignKey, userId, options);\n\n if (DataTypeUtil.isObject(apiResponse)) {\n return apiResponse.variationName;\n }\n\n return apiResponse;\n } catch (err) {\n this.logger.log(LogLevelEnum.ERROR, err.message);\n return null;\n }\n }\n /**\n * This API method: Gets the variation assigned for the user for the campaign\n *\n * @param {String} campaignKey unique campaign key specified in VWO app\n * @param {String} userId ID assigned to a user\n * @param {Object} options optional params - customVariables, variationTargetingVariables\n *\n * @return {String|null} If variation is assigned then variation-name otherwise null in case of user not becoming part\n */\n\n }, {\n key: \"getVariationName\",\n value: function getVariationName(campaignKey, userId) {\n var _this3 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n try {\n var self = this;\n\n if (self.asyncStorageConfig && DataTypeUtil.isObject(self.asyncStorageConfig)) {\n self.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.CONFIG_ASYNC_RETURN_PROMISE, {\n file: file,\n method: ApiEnum.GET_VARIATION_NAME\n }));\n return new Promise(function (resolve) {\n if (_this3.optOut) {\n _this3.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.API_NOT_ENABLED, {\n file: file,\n api: ApiEnum.GET_VARIATION_NAME\n }));\n\n resolve(null);\n } else {\n return api.getVariation(self, campaignKey, userId, options).then(function (data) {\n if (DataTypeUtil.isObject(data)) {\n resolve(data.variationName);\n } else {\n resolve(data);\n }\n });\n }\n });\n } // Check if returnPromiseFor is provided. If yes, return a promise instead of value\n\n\n if (self.returnPromiseFor && (self.returnPromiseFor.getVariationName || self.returnPromiseFor.all)) {\n self.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.CONFIG_RETURN_PROMISE, {\n file: file,\n method: ApiEnum.GET_VARIATION_NAME\n }));\n return new Promise(function (resolve) {\n if (_this3.optOut) {\n _this3.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.API_NOT_ENABLED, {\n file: file,\n api: ApiEnum.GET_VARIATION_NAME\n }));\n\n resolve(null);\n } else {\n // since this API does not send any async call, we can simply resolve the returned value\n resolve(api.getVariation(self, campaignKey, userId, options));\n }\n });\n }\n\n if (this.optOut) {\n this.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.API_NOT_ENABLED, {\n file: file,\n api: ApiEnum.GET_VARIATION_NAME\n }));\n return null;\n }\n\n return api.getVariation(self, campaignKey, userId, options);\n } catch (err) {\n this.logger.log(LogLevelEnum.ERROR, err.message);\n return null;\n }\n }\n /**\n * This API method: Marks the conversion of the campaign for a particular goal\n *\n * @param {String/Array/null/undefined} campaignSpecifier campaign keys to track unique campaignSpecifier\n * @param {String} userId ID assigned to a user\n * @param {String} goalIdentifier unique campaign's goal identifier\n * @param {Object} options optional params - customVariables, variationTargetingVariables, revenueValue\n */\n\n }, {\n key: \"track\",\n value: function track(campaignSpecifier, userId, goalIdentifier) {\n var _this4 = this;\n\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n try {\n var self = this; // In case we use any asyncStorage like redis, promisify track\n\n if (self.asyncStorageConfig && DataTypeUtil.isObject(self.asyncStorageConfig)) {\n self.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.CONFIG_ASYNC_RETURN_PROMISE, {\n file: file,\n method: ApiEnum.TRACK\n }));\n return new Promise(function (resolve) {\n if (_this4.optOut) {\n _this4.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.API_NOT_ENABLED, {\n file: file,\n api: ApiEnum.TRACK\n }));\n\n resolve(null);\n } else {\n return api.track(self, campaignSpecifier, userId, goalIdentifier, options).then(function (trackResponse) {\n resolve(trackResponse);\n });\n }\n });\n } // Check if returnPromiseFor is provided. If yes, return a promise instead of value\n // i.e. wait till the network call is not successful\n\n\n if (self.returnPromiseFor && (self.returnPromiseFor.track || self.returnPromiseFor.all)) {\n self.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.CONFIG_RETURN_PROMISE, {\n file: file,\n method: ApiEnum.TRACK\n }));\n return new Promise(function (resolve) {\n if (_this4.optOut) {\n _this4.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.API_NOT_ENABLED, {\n file: file,\n api: ApiEnum.TRACK\n }));\n\n resolve(null);\n } else {\n var trackResponse;\n var counter = 0;\n\n options.responseCallback = function (_error, _response) {\n counter += 1; // For Data360, one single call is there to track multiple metrices\n // For global goals, we are now sending one single batch-events call\n\n if (self.isEventArchEnabled || DataTypeUtil.isArray(campaignSpecifier) || (DataTypeUtil.isUndefined(campaignSpecifier) || DataTypeUtil.isNull(campaignSpecifier)) && FunctionUtil.objectValues(trackResponse).filter(Boolean).length) {\n resolve(trackResponse);\n } else if (counter === FunctionUtil.objectValues(trackResponse).filter(Boolean).length) {\n // In case of global goals, when all campaigns are tracked, then only resolve\n // TODO: verify if this can be removed as we are sending batch events call always for non-Data360 accounts\n resolve(trackResponse);\n }\n };\n\n trackResponse = api.track(self, campaignSpecifier, userId, goalIdentifier, options); // If we get null/false from the API i.e. no tracking call was sent\n // In this case, respponseCallback will not be fired and hence we have to manually resolve the promise\n // Or, in case of global goals, if none campaign got success, manually resolve\n\n if (!trackResponse || !FunctionUtil.objectValues(trackResponse).some(Boolean)) {\n resolve(trackResponse);\n } else if (trackResponse && trackResponse.isDevelopmentMode) {\n delete trackResponse.isDevelopmentMode;\n resolve(trackResponse);\n }\n }\n });\n }\n\n if (this.optOut) {\n this.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.API_NOT_ENABLED, {\n file: file,\n api: ApiEnum.TRACK\n }));\n return null;\n }\n\n return api.track(self, campaignSpecifier, userId, goalIdentifier, options);\n } catch (err) {\n this.logger.log(LogLevelEnum.ERROR, err.message);\n return null;\n }\n }\n /**\n * This API method checks: Whether a feature is enabled or not for the given user\n *\n * @param {String} campaignKey Unique key for a campaign\n * @param {String} userId Unique identifier for the user\n * @param {Object} options optional params - customVariables, variationTargetingVariables\n *\n * @return {Boolean} true if feature enabled, false otherwise\n */\n\n }, {\n key: \"isFeatureEnabled\",\n value: function isFeatureEnabled(campaignKey, userId) {\n var _this5 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n try {\n var self = this;\n\n if (self.asyncStorageConfig && DataTypeUtil.isObject(self.asyncStorageConfig)) {\n self.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.CONFIG_ASYNC_RETURN_PROMISE, {\n file: file,\n method: ApiEnum.IS_FEATURE_ENABLED\n }));\n return new Promise(function (resolve) {\n if (_this5.optOut) {\n _this5.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.API_NOT_ENABLED, {\n file: file,\n api: ApiEnum.IS_FEATURE_ENABLED\n }));\n\n resolve(null);\n } else {\n return api.isFeatureEnabled(self, campaignKey, userId, options).then(function (data) {\n if (DataTypeUtil.isObject(data)) {\n resolve(data.isFeatureEnabled);\n } else {\n resolve(data);\n }\n });\n }\n });\n } // Check if returnPromiseFor is provided. If yes, return a promise instead of value\n // i.e. wait till the network call is not successful\n\n\n if (self.returnPromiseFor && (self.returnPromiseFor.isFeatureEnabled || self.returnPromiseFor.all)) {\n self.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.CONFIG_RETURN_PROMISE, {\n file: file,\n method: ApiEnum.IS_FEATURE_ENABLED\n }));\n return new Promise(function (resolve) {\n if (_this5.optOut) {\n _this5.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.API_NOT_ENABLED, {\n file: file,\n api: ApiEnum.IS_FEATURE_ENABLED\n }));\n\n resolve(false);\n } else {\n var isFeatureEnabledApiResponse;\n\n options.responseCallback = function (_error, _response) {\n resolve(!!isFeatureEnabledApiResponse);\n };\n\n isFeatureEnabledApiResponse = api.isFeatureEnabled(self, campaignKey, userId, options); // If we get null from the API i.e. no tracking call was sent\n // In this case, respponseCallback will not be fired and hence we have to manually resolve the promise\n\n if (DataTypeUtil.isNull(isFeatureEnabledApiResponse)) {\n resolve(false);\n } else if (DataTypeUtil.isObject(isFeatureEnabledApiResponse)) {\n resolve(!!isFeatureEnabledApiResponse.isFeatureEnabled);\n }\n }\n });\n }\n\n if (this.optOut) {\n this.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.API_NOT_ENABLED, {\n file: file,\n api: ApiEnum.IS_FEATURE_ENABLED\n }));\n return false;\n }\n\n var apiResponse = api.isFeatureEnabled(self, campaignKey, userId, options);\n\n if (DataTypeUtil.isObject(apiResponse)) {\n return !!apiResponse.isFeatureEnabled;\n }\n\n return !!apiResponse;\n } catch (err) {\n this.logger.log(LogLevelEnum.ERROR, err.message);\n return false;\n }\n }\n /**\n * This API method: Return the variable for that variation(if Feature Test),\n * otherwise the default values being set in Feature\n *\n * @param {String} campaignKey Unique key for a campaign\n * @param {String} variableKey Unique key for a feature's variable\n * @param {String} userId Unique identifier for the user\n * @param {Object} options optional params - customVariables, variationTargetingVariables\n *\n * @return {string|number|double|boolean|null} Variable value as is set in the VWO app i.e.\n * maintaining the data-type,\n * null if anything fails like campaign / variable not found\n */\n\n }, {\n key: \"getFeatureVariableValue\",\n value: function getFeatureVariableValue(campaignKey, variableKey, userId) {\n var _this6 = this;\n\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n try {\n var self = this;\n\n if (self.asyncStorageConfig && DataTypeUtil.isObject(self.asyncStorageConfig)) {\n self.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.CONFIG_ASYNC_RETURN_PROMISE, {\n file: file,\n method: ApiEnum.GET_FEATURE_VARIABLE_VALUE\n }));\n return new Promise(function (resolve) {\n if (_this6.optOut) {\n _this6.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.API_NOT_ENABLED, {\n file: file,\n api: ApiEnum.GET_FEATURE_VARIABLE_VALUE\n }));\n\n resolve(null);\n } else {\n return api.getFeatureVariableValue(self, campaignKey, variableKey, userId, options).then(function (data) {\n if (DataTypeUtil.isObject(data)) {\n resolve(data.typeCastedValue);\n } else {\n resolve(data);\n }\n });\n }\n });\n } // Check if returnPromiseFor is provided. If yes, return a promise instead of value\n\n\n if (self.returnPromiseFor && (self.returnPromiseFor.getFeatureVariableValue || self.returnPromiseFor.all)) {\n self.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.CONFIG_RETURN_PROMISE, {\n file: file,\n method: ApiEnum.GET_FEATURE_VARIABLE_VALUE\n }));\n return new Promise(function (resolve) {\n if (_this6.optOut) {\n _this6.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.API_NOT_ENABLED, {\n file: file,\n api: ApiEnum.GET_FEATURE_VARIABLE_VALUE\n }));\n\n resolve(null);\n } else {\n // since this API does not send any async call, we can simply resolve the returned value\n resolve(api.getFeatureVariableValue(self, campaignKey, variableKey, userId, options));\n }\n });\n }\n\n if (this.optOut) {\n this.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.API_NOT_ENABLED, {\n file: file,\n api: ApiEnum.GET_FEATURE_VARIABLE_VALUE\n }));\n return null;\n }\n\n return api.getFeatureVariableValue(self, campaignKey, variableKey, userId, options);\n } catch (err) {\n this.logger.log(LogLevelEnum.ERROR, err.message);\n return null;\n }\n }\n /**\n * This API method: Pushes the key-value tag pair for a particular user\n *\n * @param {String} tagKey tag key\n * @param {String} tagValue tag Value\n * @param {String} userId ID assigned to a user\n *\n * @return {Boolean} true if request is pushed to eventQueue, false if params are invalid or settings file is unavailable\n */\n\n }, {\n key: \"push\",\n value: function push(tagKey, tagValue, userId) {\n var _this7 = this;\n\n try {\n var self = this;\n var customDimensionMap;\n\n if (arguments.length === 2) {\n // Argument reshuffling.\n customDimensionMap = tagKey;\n userId = tagValue;\n tagKey = ' ';\n tagValue = ' ';\n } else if (arguments.length === 3) {\n customDimensionMap = {};\n } else {\n this.logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.API_BAD_PARAMETERS, {\n file: file,\n api: ApiEnum.PUSH\n }));\n return false;\n } // Check if returnPromiseFor is provided. If yes, return a promise instead of value\n // i.e. wait till the network call is not successful\n\n\n if (self.returnPromiseFor && (self.returnPromiseFor.push || self.returnPromiseFor.all)) {\n self.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.CONFIG_RETURN_PROMISE, {\n file: file,\n method: ApiEnum.PUSH\n }));\n return new Promise(function (resolve) {\n if (_this7.optOut) {\n _this7.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.API_NOT_ENABLED, {\n file: file,\n api: ApiEnum.PUSH\n }));\n\n resolve(null);\n } else {\n var apiResponse;\n var counter = 0;\n var options = {\n responseCallback: function responseCallback(_error, _response) {\n counter += 1; // In case of multiple custom dimensions, when all are tracked, then only resolve\n // if customDimensionMap is used\n\n if (customDimensionMap && DataTypeUtil.isObject(customDimensionMap) && FunctionUtil.objectValues(customDimensionMap).filter(Boolean).length > 1) {\n resolve(apiResponse);\n } // else if custom dimensions are sent with tag key and value instead of a map\n else if (counter === FunctionUtil.objectValues(apiResponse).filter(Boolean).length) {\n resolve(apiResponse);\n }\n }\n };\n apiResponse = api.push(self, tagKey, tagValue, userId, customDimensionMap, options); // If we get false from the API i.e. no tracking call was sent\n // In this case, respponseCallback will not be fired and hence we have to manually resolve the promise\n\n if (!apiResponse) {\n resolve(false);\n } else if (apiResponse && apiResponse.isDevelopmentMode) {\n delete apiResponse.isDevelopmentMode;\n resolve(apiResponse);\n }\n }\n });\n }\n\n if (this.optOut) {\n this.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.API_NOT_ENABLED, {\n file: file,\n api: ApiEnum.PUSH\n }));\n return null;\n }\n\n return api.push(self, tagKey, tagValue, userId, customDimensionMap);\n } catch (err) {\n this.logger.log(LogLevelEnum.ERROR, err.message);\n return false;\n }\n }\n }, {\n key: \"setOptOut\",\n value: function setOptOut() {\n var _this8 = this;\n\n this.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.OPT_OUT_API_CALLED, {\n file: file\n }));\n\n if (this.returnPromiseFor && (this.returnPromiseFor.optOut || this.returnPromiseFor.all)) {\n return new Promise(function (resolve) {\n _this8._destroyInstanceVariables();\n\n if (_this8.batchEventsQueue) {\n _this8.flushEvents().then(function () {\n _this8.batchEventsQueue = undefined;\n resolve(true);\n });\n } else {\n resolve(true);\n }\n });\n }\n\n if (this.batchEventsQueue) {\n this.flushEvents().then(function () {\n _this8.batchEventsQueue = undefined;\n });\n }\n\n this._destroyInstanceVariables();\n\n return true;\n }\n /**\n * Manually flush impression events to VWO which are queued in batch queue as per batchEvents config\n */\n\n }, {\n key: \"flushEvents\",\n value: function flushEvents() {\n var _this9 = this;\n\n var accountId = this.SettingsFileManager.getSettingsFile().accountId;\n\n if (false) {}\n }\n /**\n * Fetch latest settings-file and update so that vwoClientInstance could use latest settings\n * Helpful especially when using webhooks\n *\n * @param {Number} accountId\n * @param {String} sdkKey\n *\n * @return {Promise}\n */\n\n }, {\n key: \"getAndUpdateSettingsFile\",\n value: function getAndUpdateSettingsFile(accountId, sdkKey) {\n if (this.optOut) {\n this.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.API_NOT_ENABLED, {\n file: file,\n api: 'getAndUpdateSettingsFile'\n }));\n return new Promise(function (resolve) {\n resolve(null);\n });\n }\n\n return this.SettingsFileManager.getAndUpdateSettingsFile(accountId, sdkKey);\n }\n }, {\n key: \"_destroyInstanceVariables\",\n value: function _destroyInstanceVariables() {\n this.userStorageService = undefined;\n this.SettingsFileManager = undefined;\n this.usageStats = undefined;\n this.eventQueue = undefined;\n this.optOut = true;\n }\n }]);\n\n return VWO;\n}();\n\nmodule.exports = VWO;\n\n/***/ }),\n\n/***/ \"./lib/api/activate.js\":\n/*!*****************************!*\\\n !*** ./lib/api/activate.js ***!\n \\*****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar Constants = __webpack_require__(/*! ../constants */ \"./lib/constants/index.js\");\n\nvar ApiEnum = __webpack_require__(/*! ../enums/ApiEnum */ \"./lib/enums/ApiEnum.js\");\n\nvar DecisionUtil = __webpack_require__(/*! ../utils/DecisionUtil */ \"./lib/utils/DecisionUtil.js\");\n\nvar CampaignUtil = __webpack_require__(/*! ../utils/CampaignUtil */ \"./lib/utils/CampaignUtil.js\");\n\nvar ImpressionUtil = __webpack_require__(/*! ../utils/ImpressionUtil */ \"./lib/utils/ImpressionUtil.js\");\n\nvar ValidateUtil = __webpack_require__(/*! ../utils/ValidateUtil */ \"./lib/utils/ValidateUtil.js\");\n\nvar DataTypeUtil = __webpack_require__(/*! ../utils/DataTypeUtil */ \"./lib/utils/DataTypeUtil.js\");\n\nvar logging = __webpack_require__(/*! ../services/logging */ \"./lib/services/logging/index.js\");\n\nvar FileNameEnum = __webpack_require__(/*! ../enums/FileNameEnum */ \"./lib/enums/FileNameEnum.js\");\n\nvar EventEnum = __webpack_require__(/*! ../enums/EventEnum */ \"./lib/enums/EventEnum.js\");\n\nvar LogLevelEnum = logging.LogLevelEnum,\n LogMessageEnum = logging.LogMessageEnum,\n LogMessageUtil = logging.LogMessageUtil;\nvar file = FileNameEnum.Activate;\n/**\n * This API method: Gets the variation assigned for the user for the campaign and send the metrics to VWO server\n *\n * 1. Validates the arguments being passed\n * 2. Checks if user is eligible to get bucketed into the campaign,\n * 3. Assigns the determinitic variation to the user(based on userId), if user becomes part of campaign\n * If userStorageService is used, it will look into it for the variation and if found, no further processing is done\n * 4. Sends an impression call to VWO server to track user\n *\n * @param {Object} vwoInstance VWO instance which has logger, settingsFile etc.\n * @param {String} campaignKey unique campaign key specified in VWO app\n * @param {String} userId ID assigned to a user\n * @param {Object} options Optional params\n *\n * @return {String|null} If variation is assigned then variation-name otherwise null in case of user not becoming part\n */\n\nfunction activate(vwoInstance, campaignKey, userId) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var api = ApiEnum.ACTIVATE;\n var areParamsValid = false;\n\n if (DataTypeUtil.isObject(options)) {\n var customVariables = options.customVariables,\n variationTargetingVariables = options.variationTargetingVariables,\n userStorageData = options.userStorageData,\n shouldTrackReturningUser = options.shouldTrackReturningUser,\n metaData = options.metaData,\n responseCallback = options.responseCallback,\n userAgent = options.userAgent,\n userIpAddress = options.userIpAddress;\n var visitorUserAgent = userAgent; // Check if arguments have valid data-type\n\n if (ValidateUtil.areValidParamsForAPIMethod({\n method: ApiEnum.ACTIVATE,\n campaignKey: campaignKey,\n userId: userId,\n customVariables: customVariables,\n variationTargetingVariables: variationTargetingVariables,\n userStorageData: userStorageData,\n shouldTrackReturningUser: shouldTrackReturningUser,\n metaData: metaData,\n responseCallback: responseCallback,\n visitorUserAgent: visitorUserAgent,\n userIpAddress: userIpAddress\n })) {\n areParamsValid = true;\n }\n }\n\n if (areParamsValid === false) {\n vwoInstance.logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.API_BAD_PARAMETERS, {\n file: file,\n api: ApiEnum.ACTIVATE\n }));\n return null;\n } // Get the cached configuration\n\n\n var config = vwoInstance.SettingsFileManager.getConfig();\n var settingsFile = vwoInstance.SettingsFileManager.getSettingsFile(api); // If no settings are found, simply return no variation\n\n if (!settingsFile) {\n return null;\n }\n\n shouldTrackReturningUser = shouldTrackReturningUser || config.shouldTrackReturningUser || false; // Get the campaign settings based on campaignKey from the settings\n\n var campaign = CampaignUtil.getCampaign(settingsFile, campaignKey); // check if MAB enabled, if yes, then userStorage must be defined\n\n if (campaign && campaign.hasOwnProperty('isMAB') && campaign.isMAB === true) {\n if (vwoInstance.userStorageService === undefined) {\n vwoInstance.logger.log(LogLevelEnum.ERROR, '(' + file + ') This campaign: ' + campaignKey + ' has MAB configured. Please configure User Storage to proceed.');\n return null;\n }\n } // If matching campaign is not found with campaignKey or if found but is in not RUNNING state, simply return no variation\n\n\n if (!campaign || campaign.status !== Constants.STATUS_RUNNING) {\n vwoInstance.logger.log(LogLevelEnum.WARN, LogMessageUtil.build(LogMessageEnum.WARNING_MESSAGES.CAMPAIGN_NOT_RUNNING, {\n file: file,\n campaignKey: campaignKey,\n api: api\n }));\n return null;\n }\n\n if (!CampaignUtil.isAbCampaign(campaign)) {\n vwoInstance.logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.API_NOT_APPLICABLE, {\n file: file,\n campaignKey: campaignKey,\n campaignType: campaign.type,\n userId: userId,\n api: api\n }));\n return null;\n } // Once the matching RUNNING campaign is found, assign the deterministic variation to the userId provided\n\n\n var result = DecisionUtil.getVariation(config, settingsFile, campaign, campaignKey, userId, customVariables, variationTargetingVariables, userStorageData, metaData, true, false, undefined, api);\n\n if (DataTypeUtil.isPromise(result)) {\n return result.then(function (data) {\n return _validateAndReturnVariation(vwoInstance, campaignKey, userId, config, api, shouldTrackReturningUser, settingsFile, campaign, visitorUserAgent, userIpAddress, responseCallback, data);\n });\n }\n\n return _validateAndReturnVariation(vwoInstance, campaignKey, userId, config, api, shouldTrackReturningUser, settingsFile, campaign, visitorUserAgent, userIpAddress, responseCallback, result);\n}\n\nfunction _validateAndReturnVariation(vwoInstance, campaignKey, userId, config, api, shouldTrackReturningUser, settingsFile, campaign, visitorUserAgent, userIpAddress, responseCallback, result) {\n var variationId = result.variationId,\n variationName = result.variationName,\n isStoredVariation = result.isStoredVariation; // Check if variation-name has been assigned to the userId. If not, return no variation\n\n if (!ValidateUtil.isValidValue(variationName)) {\n vwoInstance.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.DECISION_NO_VARIATION_ALLOTED, {\n file: file,\n userId: userId,\n campaignKey: campaignKey\n }));\n return null;\n } // check if variation found from storage. return it without sending a call to VWO server\n\n\n if (isStoredVariation && !shouldTrackReturningUser) {\n vwoInstance.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.CAMPAIGN_USER_ALREADY_TRACKED, {\n file: file,\n userId: userId,\n campaignKey: campaignKey,\n api: api\n }));\n return {\n variationName: variationName\n };\n } // Variation found...let VWO server knows about it to show report stats\n\n\n if (config.batchEvents) {\n var properties = ImpressionUtil.buildBatchEventForTrackingUser(settingsFile, campaign.id, variationId, userId, visitorUserAgent, userIpAddress);\n vwoInstance.batchEventsQueue.enqueue(properties);\n } else if (settingsFile.isEventArchEnabled) {\n var _properties = ImpressionUtil.getEventsBaseProperties(settingsFile, EventEnum.VWO_VARIATION_SHOWN, vwoInstance.usageStats.getUsageStats(), visitorUserAgent, userIpAddress);\n\n var payload = ImpressionUtil.getTrackUserPayloadData(settingsFile, userId, EventEnum.VWO_VARIATION_SHOWN, campaign.id, variationId);\n vwoInstance.eventQueue.process(config, _properties, vwoInstance, {\n payload: payload,\n responseCallback: responseCallback\n });\n } else {\n var _properties2 = ImpressionUtil.buildEventForTrackingUser(settingsFile, campaign.id, variationId, userId, vwoInstance.usageStats.getUsageStats(), visitorUserAgent, userIpAddress);\n\n vwoInstance.eventQueue.process(config, _properties2, vwoInstance, {\n responseCallback: responseCallback\n });\n }\n\n if (config.isDevelopmentMode) {\n return {\n variationName: variationName\n };\n }\n\n return variationName;\n}\n\nmodule.exports = activate;\n\n/***/ }),\n\n/***/ \"./lib/api/getFeatureVariableValue.js\":\n/*!********************************************!*\\\n !*** ./lib/api/getFeatureVariableValue.js ***!\n \\********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar Constants = __webpack_require__(/*! ../constants */ \"./lib/constants/index.js\");\n\nvar ApiEnum = __webpack_require__(/*! ../enums/ApiEnum */ \"./lib/enums/ApiEnum.js\");\n\nvar DecisionUtil = __webpack_require__(/*! ../utils/DecisionUtil */ \"./lib/utils/DecisionUtil.js\");\n\nvar CampaignUtil = __webpack_require__(/*! ../utils/CampaignUtil */ \"./lib/utils/CampaignUtil.js\");\n\nvar ValidateUtil = __webpack_require__(/*! ../utils/ValidateUtil */ \"./lib/utils/ValidateUtil.js\");\n\nvar FeatureUtil = __webpack_require__(/*! ../utils/FeatureUtil */ \"./lib/utils/FeatureUtil.js\");\n\nvar DataTypeUtil = __webpack_require__(/*! ../utils/DataTypeUtil */ \"./lib/utils/DataTypeUtil.js\");\n\nvar ObjectUtil = __webpack_require__(/*! ../utils/ObjectUtil */ \"./lib/utils/ObjectUtil.js\");\n\nvar logging = __webpack_require__(/*! ../services/logging */ \"./lib/services/logging/index.js\");\n\nvar FileNameEnum = __webpack_require__(/*! ../enums/FileNameEnum */ \"./lib/enums/FileNameEnum.js\");\n\nvar LogLevelEnum = logging.LogLevelEnum,\n LogMessageEnum = logging.LogMessageEnum,\n LogMessageUtil = logging.LogMessageUtil;\nvar file = FileNameEnum.GetFeatureVariableValue;\n/**\n * This API method:\n *\n * 1. Validates the arguments being passed\n * 2. Checks if user is eligible for campaign and check if feature is enabled for the user.\n * 4. If feature enabled, return the variable for that variation(if Feature Test),\n * otherwise the default values being set in Feature\n *\n * @param {Object} vwoInstance VWO instance which has logger, settingsFile etc.\n * @param {String} campaignKey Unique key for a campaign\n * @param {String} variableKey Unique key for a feature's variable\n * @param {String} userId Unique identifier for the user\n * @param {Object} options Optional params\n *\n * @return {string|number|double|boolean|null} Variable value as is set in the VWO app i.e.\n * maintaining the data-type,\n * null if anything fails like campaign / variable not found\n */\n\nfunction getFeatureVariableValue(vwoInstance, campaignKey, variableKey, userId) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n\n try {\n var api = ApiEnum.GET_FEATURE_VARIABLE_VALUE;\n var areParamsValid = false;\n\n if (DataTypeUtil.isObject(options)) {\n var customVariables = options.customVariables,\n variationTargetingVariables = options.variationTargetingVariables,\n userStorageData = options.userStorageData,\n metaData = options.metaData; // Check if arguments have valid data-type\n\n if (ValidateUtil.areValidParamsForAPIMethod({\n method: ApiEnum.GET_FEATURE_VARIABLE_VALUE,\n campaignKey: campaignKey,\n variableKey: variableKey,\n userId: userId,\n customVariables: customVariables,\n variationTargetingVariables: variationTargetingVariables,\n userStorageData: userStorageData,\n metaData: metaData\n })) {\n areParamsValid = true;\n }\n }\n\n if (areParamsValid === false) {\n vwoInstance.logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.API_BAD_PARAMETERS, {\n file: file,\n api: ApiEnum.GetFeatureVariableValue\n }));\n return null;\n } // Get the cached configuration\n\n\n var config = vwoInstance.SettingsFileManager.getConfig();\n var settingsFile = vwoInstance.SettingsFileManager.getSettingsFile(api);\n config.apiName = api; // If no settings are found, simply return no variation\n\n if (!settingsFile) {\n return null;\n }\n\n var campaign = CampaignUtil.getCampaign(settingsFile, campaignKey);\n\n if (!campaign || campaign.status !== Constants.STATUS_RUNNING) {\n vwoInstance.logger.log(LogLevelEnum.WARN, LogMessageUtil.build(LogMessageEnum.WARNING_MESSAGES.CAMPAIGN_NOT_RUNNING, {\n file: file,\n campaignKey: campaignKey,\n api: api\n }));\n return null;\n }\n\n if (CampaignUtil.isAbCampaign(campaign)) {\n // API not allowed for full-stack AB campaigns\n vwoInstance.logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.API_NOT_APPLICABLE, {\n file: file,\n campaignKey: campaignKey,\n campaignType: campaign.type,\n userId: userId,\n api: api\n }));\n return null;\n }\n\n var result = DecisionUtil.getVariation(config, settingsFile, campaign, campaignKey, userId, customVariables, variationTargetingVariables, userStorageData, metaData, false, false, undefined, api);\n\n if (DataTypeUtil.isPromise(result)) {\n return result.then(function (data) {\n return _validateAndReturnFeaureVariable(vwoInstance, campaignKey, variableKey, userId, campaign, data);\n });\n }\n\n return _validateAndReturnFeaureVariable(vwoInstance, campaignKey, variableKey, userId, campaign, result);\n } catch (err) {\n vwoInstance.logger.log(LogLevelEnum.ERROR, err.message);\n return null;\n }\n}\n\nfunction _validateAndReturnFeaureVariable(vwoInstance, campaignKey, variableKey, userId, campaign, result) {\n var variable;\n var variation = result.variation,\n variationName = result.variationName;\n\n if (!variationName) {\n vwoInstance.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.FEATURE_STATUS, {\n file: file,\n campaignKey: campaignKey,\n userId: userId,\n status: 'disabled'\n }));\n return null;\n }\n\n if (CampaignUtil.isFeatureRolloutCampaign(campaign)) {\n variable = FeatureUtil.getVariableForFeature(campaign, variableKey);\n } else if (CampaignUtil.isFeatureTestCampaign(campaign)) {\n variable = FeatureUtil.getVariableValueForVariation(campaign, variation, variableKey);\n\n if (ObjectUtil.areObjectKeys(variable) && variation.isFeatureEnabled) {\n vwoInstance.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.FEATURE_VARIABLE_VALUE, {\n file: file,\n variableKey: variableKey,\n campaignKey: campaign.key,\n variableValue: variable.value,\n userId: userId\n }));\n } else if (ObjectUtil.areObjectKeys(variable) && !variation.isFeatureEnabled) {\n vwoInstance.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.FEATURE_VARIABLE_DEFAULT_VALUE, {\n file: file,\n variableKey: variableKey,\n variationName: variationName\n }));\n }\n }\n\n if (!ObjectUtil.areObjectKeys(variable)) {\n vwoInstance.logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.VARIABLE_NOT_FOUND, {\n file: file,\n variableKey: variableKey,\n userId: userId\n }));\n return null;\n }\n\n var variableValue = variable.value;\n var typeCastedValue = FeatureUtil.getTypeCastVariableValue(variableValue, variable.type);\n return typeCastedValue;\n}\n\nmodule.exports = getFeatureVariableValue;\n\n/***/ }),\n\n/***/ \"./lib/api/getVariation.js\":\n/*!*********************************!*\\\n !*** ./lib/api/getVariation.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar Constants = __webpack_require__(/*! ../constants */ \"./lib/constants/index.js\");\n\nvar ApiEnum = __webpack_require__(/*! ../enums/ApiEnum */ \"./lib/enums/ApiEnum.js\");\n\nvar DecisionUtil = __webpack_require__(/*! ../utils/DecisionUtil */ \"./lib/utils/DecisionUtil.js\");\n\nvar CampaignUtil = __webpack_require__(/*! ../utils/CampaignUtil */ \"./lib/utils/CampaignUtil.js\");\n\nvar ValidateUtil = __webpack_require__(/*! ../utils/ValidateUtil */ \"./lib/utils/ValidateUtil.js\");\n\nvar DataTypeUtil = __webpack_require__(/*! ../utils/DataTypeUtil */ \"./lib/utils/DataTypeUtil.js\");\n\nvar logging = __webpack_require__(/*! ../services/logging */ \"./lib/services/logging/index.js\");\n\nvar FileNameEnum = __webpack_require__(/*! ../enums/FileNameEnum */ \"./lib/enums/FileNameEnum.js\");\n\nvar LogLevelEnum = logging.LogLevelEnum,\n LogMessageEnum = logging.LogMessageEnum,\n LogMessageUtil = logging.LogMessageUtil;\nvar file = FileNameEnum.GetVariation;\n/**\n * This API method: Gets the variation assigned for the user for the campaign\n *\n * 1. Validates the arguments being passed\n * 2. Checks if user is eligible to get bucketed into the campaign,\n * 3. Assigns the determinitic variation to the user(based on userId), if user becomes part of campaign\n * If userStorageService is used, it will look into it for the variation and if found, no further processing is done\n *\n * @param {Object} vwoInstance VWO instance which has logger, settingsFile etc.\n * @param {String} campaignKey unique campaign key specified in VWO app\n * @param {String} userId ID assigned to a user\n * @param {Object} options Optional params\n *\n * @return {String|null} If variation is assigned then variation-name otherwise null in case of user not becoming part\n */\n\nfunction getVariation(vwoInstance, campaignKey, userId) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var api = ApiEnum.GET_VARIATION_NAME;\n var areParamsValid = false;\n\n if (DataTypeUtil.isObject(options)) {\n var customVariables = options.customVariables,\n variationTargetingVariables = options.variationTargetingVariables,\n userStorageData = options.userStorageData,\n metaData = options.metaData; // Check if arguments have valid data-type\n\n if (ValidateUtil.areValidParamsForAPIMethod({\n method: ApiEnum.GET_VARIATION_NAME,\n campaignKey: campaignKey,\n userId: userId,\n customVariables: customVariables,\n variationTargetingVariables: variationTargetingVariables,\n userStorageData: userStorageData,\n metaData: metaData\n })) {\n areParamsValid = true;\n }\n }\n\n if (areParamsValid === false) {\n vwoInstance.logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.API_BAD_PARAMETERS, {\n file: file,\n api: ApiEnum.GET_VARIATION_NAME\n }));\n return null;\n } // Get the cached configuration\n\n\n var config = vwoInstance.SettingsFileManager.getConfig();\n var settingsFile = vwoInstance.SettingsFileManager.getSettingsFile(api);\n config.apiName = api; // If no settings are found, simply return no variation\n\n if (!settingsFile) {\n return null;\n } // Get the campaign settings based on campaignKey from the settings\n\n\n var campaign = CampaignUtil.getCampaign(settingsFile, campaignKey); // If matching campaign is not found with campaignKey or if found but is in not RUNNING state, simply return no variation\n\n if (!campaign || campaign.status !== Constants.STATUS_RUNNING) {\n vwoInstance.logger.log(LogLevelEnum.WARN, LogMessageUtil.build(LogMessageEnum.WARNING_MESSAGES.CAMPAIGN_NOT_RUNNING, {\n file: file,\n campaignKey: campaignKey,\n api: api\n }));\n return null;\n }\n\n if (CampaignUtil.isFeatureRolloutCampaign(campaign)) {\n vwoInstance.logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.API_NOT_APPLICABLE, {\n file: file,\n campaignKey: campaignKey,\n campaignType: campaign.type,\n userId: userId,\n api: api\n }));\n return null;\n }\n\n var result = DecisionUtil.getVariation(config, settingsFile, campaign, campaignKey, userId, customVariables, variationTargetingVariables, userStorageData, metaData, false, false, undefined, api);\n\n if (DataTypeUtil.isPromise(result)) {\n return result.then(function (data) {\n return data;\n });\n }\n\n if (!result.variationName) {\n return null;\n }\n\n return result.variationName;\n}\n\nmodule.exports = getVariation;\n\n/***/ }),\n\n/***/ \"./lib/api/index.js\":\n/*!**************************!*\\\n !*** ./lib/api/index.js ***!\n \\**************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar activate = __webpack_require__(/*! ./activate */ \"./lib/api/activate.js\");\n\nvar getVariation = __webpack_require__(/*! ./getVariation */ \"./lib/api/getVariation.js\");\n\nvar track = __webpack_require__(/*! ./track */ \"./lib/api/track.js\");\n\nvar isFeatureEnabled = __webpack_require__(/*! ./isFeatureEnabled */ \"./lib/api/isFeatureEnabled.js\");\n\nvar getFeatureVariableValue = __webpack_require__(/*! ./getFeatureVariableValue */ \"./lib/api/getFeatureVariableValue.js\");\n\nvar push = __webpack_require__(/*! ./push */ \"./lib/api/push.js\");\n\nmodule.exports = {\n activate: activate,\n getVariation: getVariation,\n track: track,\n isFeatureEnabled: isFeatureEnabled,\n getFeatureVariableValue: getFeatureVariableValue,\n push: push\n};\n\n/***/ }),\n\n/***/ \"./lib/api/isFeatureEnabled.js\":\n/*!*************************************!*\\\n !*** ./lib/api/isFeatureEnabled.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar Constants = __webpack_require__(/*! ../constants */ \"./lib/constants/index.js\");\n\nvar ApiEnum = __webpack_require__(/*! ../enums/ApiEnum */ \"./lib/enums/ApiEnum.js\");\n\nvar DecisionUtil = __webpack_require__(/*! ../utils/DecisionUtil */ \"./lib/utils/DecisionUtil.js\");\n\nvar CampaignUtil = __webpack_require__(/*! ../utils/CampaignUtil */ \"./lib/utils/CampaignUtil.js\");\n\nvar ImpressionUtil = __webpack_require__(/*! ../utils/ImpressionUtil */ \"./lib/utils/ImpressionUtil.js\");\n\nvar ValidateUtil = __webpack_require__(/*! ../utils/ValidateUtil */ \"./lib/utils/ValidateUtil.js\");\n\nvar DataTypeUtil = __webpack_require__(/*! ../utils/DataTypeUtil */ \"./lib/utils/DataTypeUtil.js\");\n\nvar logging = __webpack_require__(/*! ../services/logging */ \"./lib/services/logging/index.js\");\n\nvar FileNameEnum = __webpack_require__(/*! ../enums/FileNameEnum */ \"./lib/enums/FileNameEnum.js\");\n\nvar EventEnum = __webpack_require__(/*! ../enums/EventEnum */ \"./lib/enums/EventEnum.js\");\n\nvar LogLevelEnum = logging.LogLevelEnum,\n LogMessageEnum = logging.LogMessageEnum,\n LogMessageUtil = logging.LogMessageUtil;\nvar file = FileNameEnum.IsFeatureEnabled;\n/**\n * This API checks: Whether a feature is enabled or not for the given user\n *\n * 1. Validates the arguments being passed\n * 2. Checks if user is eligible for campaign and check if feature is enabled for the user.\n * 4. If feature enabled, sends a call to VWO server for tracking visitor\n *\n * @param {Object} vwoInstance VWO instance which has logger, settingsFile etc.\n * @param {String} campaignKey Unique key for a campaign\n * @param {String} userId Unique identifier for the user\n * @param {Object} options Optional params\n *\n * @return {Boolean} true if feature enabled, false otherwise\n */\n\nfunction isFeatureEnabled(vwoInstance, campaignKey, userId) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var api = ApiEnum.IS_FEATURE_ENABLED;\n var areParamsValid = false;\n\n if (DataTypeUtil.isObject(options)) {\n var customVariables = options.customVariables,\n variationTargetingVariables = options.variationTargetingVariables,\n userStorageData = options.userStorageData,\n shouldTrackReturningUser = options.shouldTrackReturningUser,\n metaData = options.metaData,\n responseCallback = options.responseCallback,\n userAgent = options.userAgent,\n userIpAddress = options.userIpAddress;\n var visitorUserAgent = userAgent; // Check if arguments have valid data-type\n\n if (ValidateUtil.areValidParamsForAPIMethod({\n method: ApiEnum.IS_FEATURE_ENABLED,\n campaignKey: campaignKey,\n userId: userId,\n customVariables: customVariables,\n variationTargetingVariables: variationTargetingVariables,\n userStorageData: userStorageData,\n shouldTrackReturningUser: shouldTrackReturningUser,\n metaData: metaData,\n responseCallback: responseCallback,\n visitorUserAgent: visitorUserAgent,\n userIpAddress: userIpAddress\n })) {\n areParamsValid = true;\n }\n }\n\n if (areParamsValid === false) {\n vwoInstance.logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.API_BAD_PARAMETERS, {\n file: file,\n api: ApiEnum.isFeatureEnabled\n }));\n return null;\n } // Get the cached configuration\n\n\n var config = vwoInstance.SettingsFileManager.getConfig();\n var settingsFile = vwoInstance.SettingsFileManager.getSettingsFile(api); // If no settings are found, simply log and return false\n\n if (!settingsFile) {\n return null;\n }\n\n shouldTrackReturningUser = shouldTrackReturningUser || config.shouldTrackReturningUser || false; // Get the campaign settings based on campaignKey from the settings\n\n var campaign = CampaignUtil.getCampaign(settingsFile, campaignKey); // check if MAB enabled, if yes, then userStorage must be defined\n\n if (campaign && campaign.hasOwnProperty('isMAB') && campaign.isMAB === true) {\n if (vwoInstance.userStorageService === undefined) {\n vwoInstance.logger.log(LogLevelEnum.ERROR, '(' + file + ') This campaign: ' + campaignKey + ' has MAB configured. Please configure User Storage to proceed.');\n return null;\n }\n }\n\n if (!campaign || campaign.status !== Constants.STATUS_RUNNING) {\n vwoInstance.logger.log(LogLevelEnum.WARN, LogMessageUtil.build(LogMessageEnum.WARNING_MESSAGES.CAMPAIGN_NOT_RUNNING, {\n file: file,\n campaignKey: campaignKey,\n api: api\n }));\n return null;\n }\n\n if (CampaignUtil.isAbCampaign(campaign)) {\n // API not allowed for full-stack AB campaigns\n vwoInstance.logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.API_NOT_APPLICABLE, {\n file: file,\n campaignKey: campaignKey,\n campaignType: campaign.type,\n userId: userId,\n api: api\n }));\n return null;\n }\n\n var result = DecisionUtil.getVariation(config, settingsFile, campaign, campaignKey, userId, customVariables, variationTargetingVariables, userStorageData, metaData, true, false, undefined, api); // check if result is a promise, if yes then wait for it untill it resolves, then only proceed further\n\n if (DataTypeUtil.isPromise(result)) {\n return result.then(function (data) {\n return _validateAndReturnFeatureEnabled(vwoInstance, campaignKey, userId, config, api, shouldTrackReturningUser, settingsFile, campaign, responseCallback, visitorUserAgent, userIpAddress, data);\n });\n }\n\n return _validateAndReturnFeatureEnabled(vwoInstance, campaignKey, userId, config, api, shouldTrackReturningUser, settingsFile, campaign, responseCallback, visitorUserAgent, userIpAddress, result);\n}\n\nfunction _validateAndReturnFeatureEnabled(vwoInstance, campaignKey, userId, config, api, shouldTrackReturningUser, settingsFile, campaign, responseCallback, visitorUserAgent, userIpAddress, result) {\n var variation = result.variation,\n variationId = result.variationId,\n variationName = result.variationName,\n isStoredVariation = result.isStoredVariation;\n var isFeatureEnabled = false;\n\n if (variationName) {\n isFeatureEnabled = CampaignUtil.isFeatureRolloutCampaign(campaign) || variation.isFeatureEnabled;\n\n if (isStoredVariation && !shouldTrackReturningUser) {\n vwoInstance.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.CAMPAIGN_USER_ALREADY_TRACKED, {\n file: file,\n userId: userId,\n campaignKey: campaignKey,\n api: api\n }));\n } else {\n // Variation found...let VWO server knows about it to show report stats\n if (config.batchEvents) {\n var properties = ImpressionUtil.buildBatchEventForTrackingUser(settingsFile, campaign.id, variationId, userId, visitorUserAgent, userIpAddress);\n vwoInstance.batchEventsQueue.enqueue(properties);\n } else if (settingsFile.isEventArchEnabled) {\n var _properties = ImpressionUtil.getEventsBaseProperties(settingsFile, EventEnum.VWO_VARIATION_SHOWN, vwoInstance.usageStats.getUsageStats(), visitorUserAgent, userIpAddress);\n\n var payload = ImpressionUtil.getTrackUserPayloadData(settingsFile, userId, EventEnum.VWO_VARIATION_SHOWN, campaign.id, variationId);\n vwoInstance.eventQueue.process(config, _properties, vwoInstance, {\n payload: payload,\n responseCallback: responseCallback\n });\n } else {\n var _properties2 = ImpressionUtil.buildEventForTrackingUser(settingsFile, campaign.id, variationId, userId, vwoInstance.usageStats.getUsageStats(), visitorUserAgent, userIpAddress);\n\n vwoInstance.eventQueue.process(config, _properties2, vwoInstance, {\n responseCallback: responseCallback\n });\n }\n\n vwoInstance.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.FEATURE_STATUS, {\n file: file,\n campaignKey: campaignKey,\n userId: userId,\n status: isFeatureEnabled ? 'enabled' : 'disabled'\n }));\n\n if (config.isDevelopmentMode) {\n return {\n isFeatureEnabled: isFeatureEnabled\n };\n }\n\n return isFeatureEnabled;\n }\n }\n\n vwoInstance.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.FEATURE_STATUS, {\n file: file,\n campaignKey: campaignKey,\n userId: userId,\n status: isFeatureEnabled ? 'enabled' : 'disabled'\n }));\n\n if (isStoredVariation || config.isDevelopmentMode) {\n return {\n isFeatureEnabled: isFeatureEnabled\n };\n }\n\n return {\n isFeatureEnabled: isFeatureEnabled\n };\n}\n\nmodule.exports = isFeatureEnabled;\n\n/***/ }),\n\n/***/ \"./lib/api/push.js\":\n/*!*************************!*\\\n !*** ./lib/api/push.js ***!\n \\*************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar ApiEnum = __webpack_require__(/*! ../enums/ApiEnum */ \"./lib/enums/ApiEnum.js\");\n\nvar logging = __webpack_require__(/*! ../services/logging */ \"./lib/services/logging/index.js\");\n\nvar FileNameEnum = __webpack_require__(/*! ../enums/FileNameEnum */ \"./lib/enums/FileNameEnum.js\");\n\nvar EventEnum = __webpack_require__(/*! ../enums/EventEnum */ \"./lib/enums/EventEnum.js\");\n\nvar ValidateUtil = __webpack_require__(/*! ../utils/ValidateUtil */ \"./lib/utils/ValidateUtil.js\");\n\nvar ImpressionUtil = __webpack_require__(/*! ../utils/ImpressionUtil */ \"./lib/utils/ImpressionUtil.js\");\n\nvar DataTypeUtil = __webpack_require__(/*! ../utils/DataTypeUtil */ \"./lib/utils/DataTypeUtil.js\");\n\nvar BatchEventsDispatcher;\n\nif (false) {}\n\nvar LogLevelEnum = logging.LogLevelEnum,\n LogMessageEnum = logging.LogMessageEnum,\n LogMessageUtil = logging.LogMessageUtil;\nvar file = FileNameEnum.Push;\n/**\n * This API method: Pushes the key-value tag pair for a particular user\n *\n * 1. validates the arguments being passed\n * 2. Sends a call to VWO push api\n *\n * @param {Object} vwoInstance VWO instance which has logger, settingsFile etc.\n * @param {String} tagKey tag key\n * @param {String} tagValue tag Value\n * @param {String} userId ID assigned to a user\n *\n * @return {Boolean} true if request is pushed to eventQueue, false if params are invalid or settings file is unavailable\n */\n\nfunction push(vwoInstance, tagKey, tagValue, userId, customDimensionMap) {\n var _ref = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {},\n responseCallback = _ref.responseCallback;\n\n var api = ApiEnum.PUSH;\n\n if (!ValidateUtil.areValidParamsForAPIMethod({\n method: ApiEnum.PUSH,\n tagKey: tagKey,\n tagValue: tagValue,\n userId: userId,\n customDimensionMap: customDimensionMap,\n responseCallback: responseCallback\n })) {\n vwoInstance.logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.PUSH_INVALID_PARAMS, {\n file: file,\n method: api\n }));\n return false;\n }\n\n if (tagKey.length > 255) {\n vwoInstance.logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.TAG_KEY_LENGTH_EXCEEDED, {\n file: file,\n tagKey: tagKey,\n userId: userId\n }));\n return false;\n }\n\n if (tagValue.length > 255) {\n vwoInstance.logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.TAG_VALUE_LENGTH_EXCEEDED, {\n file: file,\n tagKey: tagKey,\n userId: userId,\n tagValue: tagValue\n }));\n return false;\n }\n\n if (tagKey === ' ' && tagValue === ' ' && (!customDimensionMap || Object.keys(customDimensionMap).length === 0)) {\n vwoInstance.logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.PUSH_INVALID_PARAMS, {\n file: file,\n method: api\n }));\n return false;\n }\n\n if (tagKey !== ' ' && tagValue !== ' ') {\n customDimensionMap[tagKey] = tagValue;\n } // Get the cached configuration\n\n\n var config = vwoInstance.SettingsFileManager.getConfig();\n var settingsFile = vwoInstance.SettingsFileManager.getSettingsFile(api); // If no settings are found, simply false\n\n if (!settingsFile) {\n return false;\n }\n\n var result = {};\n\n if (config.batchEvents) {\n Object.keys(customDimensionMap).forEach(function (key) {\n var tagValue = DataTypeUtil.isString(customDimensionMap[key]) ? customDimensionMap[key] : JSON.stringify(customDimensionMap[key]);\n var properties = ImpressionUtil.buildBatchEventForPushing(settingsFile, key, tagValue, userId);\n vwoInstance.batchEventsQueue.enqueue(properties);\n result[key] = true;\n });\n } else if (settingsFile.isEventArchEnabled) {\n var properties = ImpressionUtil.getEventsBaseProperties(settingsFile, EventEnum.VWO_SYNC_VISITOR_PROP);\n var payload = ImpressionUtil.getPushPayloadData(settingsFile, userId, EventEnum.VWO_SYNC_VISITOR_PROP, customDimensionMap);\n vwoInstance.eventQueue.process(config, properties, vwoInstance, {\n payload: payload,\n responseCallback: responseCallback\n });\n result.success = true;\n } else {\n var events = [];\n var customDimensionKeys = Object.keys(customDimensionMap);\n customDimensionKeys.forEach(function (key) {\n var properties;\n var tagValue = DataTypeUtil.isString(customDimensionMap[key]) ? customDimensionMap[key] : JSON.stringify(customDimensionMap[key]);\n\n if (true) {\n properties = ImpressionUtil.buildEventForPushing(settingsFile, key, tagValue, userId);\n vwoInstance.eventQueue.process(config, properties, vwoInstance, {\n responseCallback: responseCallback\n });\n } else {}\n\n events.push(properties);\n result[key] = true;\n });\n\n if (false) {}\n }\n\n if (config.isDevelopmentMode) {\n return Object.assign({}, result, {\n isDevelopmentMode: config.isDevelopmentMode\n });\n }\n\n return result;\n}\n\nmodule.exports = push;\n\n/***/ }),\n\n/***/ \"./lib/api/track.js\":\n/*!**************************!*\\\n !*** ./lib/api/track.js ***!\n \\**************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar Constants = __webpack_require__(/*! ../constants */ \"./lib/constants/index.js\");\n\nvar GoalTypeEnum = __webpack_require__(/*! ../enums/GoalTypeEnum */ \"./lib/enums/GoalTypeEnum.js\");\n\nvar ApiEnum = __webpack_require__(/*! ../enums/ApiEnum */ \"./lib/enums/ApiEnum.js\");\n\nvar DecisionUtil = __webpack_require__(/*! ../utils/DecisionUtil */ \"./lib/utils/DecisionUtil.js\");\n\nvar CampaignUtil = __webpack_require__(/*! ../utils/CampaignUtil */ \"./lib/utils/CampaignUtil.js\");\n\nvar _require = __webpack_require__(/*! ../utils/ObjectUtil */ \"./lib/utils/ObjectUtil.js\"),\n objectValues = _require.objectValues;\n\nvar ImpressionUtil = __webpack_require__(/*! ../utils/ImpressionUtil */ \"./lib/utils/ImpressionUtil.js\");\n\nvar ValidateUtil = __webpack_require__(/*! ../utils/ValidateUtil */ \"./lib/utils/ValidateUtil.js\");\n\nvar DataTypeUtil = __webpack_require__(/*! ../utils/DataTypeUtil */ \"./lib/utils/DataTypeUtil.js\");\n\nvar logging = __webpack_require__(/*! ../services/logging */ \"./lib/services/logging/index.js\");\n\nvar FileNameEnum = __webpack_require__(/*! ../enums/FileNameEnum */ \"./lib/enums/FileNameEnum.js\");\n\nvar LogLevelEnum = logging.LogLevelEnum,\n LogMessageEnum = logging.LogMessageEnum,\n LogMessageUtil = logging.LogMessageUtil;\nvar file = FileNameEnum.Track;\nvar GOAL_TYPE_TO_TRACK_DEFAULT = GoalTypeEnum.ALL;\nvar GOAL_IDENTIFIER_SEPERATOR = '_vwo_';\nvar api = ApiEnum.TRACK;\nvar BatchEventsDispatcher;\n\nif (false) {}\n/**\n * This API method: Marks the conversion of the campaign for a particular goal\n *\n * 1. validates the arguments being passed\n * 2. Checks if user is eligible to get bucketed into the campaign,\n * 3. Gets the assigned determinitic variation to the user(based on userId), if user becomes part of campaign\n * 4. Sends an impression call to VWO server to track goal data\n *\n * @param {Object} vwoInstance VWO instance which has logger, settingsFile etc.\n * @param {Number} campaignKey unique campaign test key\n * @param {String} userId ID assigned to a user\n * @param {String} goalIdentifier unique campaign's goal identifier\n * @param {Object} options Optional params\n */\n\n\nfunction track(vwoInstance, campaignKey, userId, goalIdentifier) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n var areParamsValid = false;\n\n if (DataTypeUtil.isObject(options)) {\n var revenueValue = options.revenueValue,\n customVariables = options.customVariables,\n variationTargetingVariables = options.variationTargetingVariables,\n userStorageData = options.userStorageData,\n goalTypeToTrack = options.goalTypeToTrack,\n shouldTrackReturningUser = options.shouldTrackReturningUser,\n metaData = options.metaData,\n responseCallback = options.responseCallback,\n eventProperties = options.eventProperties,\n userAgent = options.userAgent,\n userIpAddress = options.userIpAddress;\n var visitorUserAgent = userAgent; // Check if arguments have valid data-type\n\n if (ValidateUtil.areValidParamsForAPIMethod({\n method: ApiEnum.TRACK,\n campaignKey: campaignKey,\n userId: userId,\n goalIdentifier: goalIdentifier,\n customVariables: customVariables,\n variationTargetingVariables: variationTargetingVariables,\n userStorageData: userStorageData,\n goalTypeToTrack: goalTypeToTrack,\n shouldTrackReturningUser: shouldTrackReturningUser,\n metaData: metaData,\n responseCallback: responseCallback,\n eventProperties: eventProperties,\n visitorUserAgent: visitorUserAgent,\n userIpAddress: userIpAddress\n }) && (!goalTypeToTrack || goalTypeToTrack && objectValues(GoalTypeEnum).includes(goalTypeToTrack))) {\n areParamsValid = true;\n }\n }\n\n if (areParamsValid === false) {\n vwoInstance.logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.API_BAD_PARAMETERS, {\n file: file,\n api: ApiEnum.TRACK\n }));\n return null;\n } // Get the cached configuration\n\n\n var config = vwoInstance.SettingsFileManager.getConfig();\n var settingsFile = vwoInstance.SettingsFileManager.getSettingsFile(api);\n config.apiName = api;\n var revenuePropList = new Set(); // If no settings are found, simply do not track goal and return false\n\n if (!settingsFile) {\n return null;\n }\n\n var campaign = CampaignUtil.getCampaign(settingsFile, campaignKey); // check if MAB enabled, if yes, then userStorage must be defined\n\n if (campaign && campaign.hasOwnProperty('isMAB') && campaign.isMAB === true) {\n if (vwoInstance.userStorageService === undefined) {\n vwoInstance.logger.log(LogLevelEnum.ERROR, '(' + file + ') This campaign: ' + campaignKey + ' has MAB configured. Please configure User Storage to proceed.');\n return null;\n }\n }\n\n var campaigns = [];\n goalTypeToTrack = goalTypeToTrack || config.goalTypeToTrack || GOAL_TYPE_TO_TRACK_DEFAULT; // priority order - options > launchConfig > default\n\n if (DataTypeUtil.isUndefined(shouldTrackReturningUser)) {\n // if shouldTrackReturningUser is not given in options\n if (DataTypeUtil.isBoolean(config.shouldTrackReturningUser)) {\n // if shouldTrackReturningUser is given in config at launch\n shouldTrackReturningUser = config.shouldTrackReturningUser;\n } else {\n shouldTrackReturningUser = false;\n }\n }\n\n if (!DataTypeUtil.isString(campaignKey)) {\n if (DataTypeUtil.isArray(campaignKey)) {\n campaigns = CampaignUtil.getCampaignsForKeys(settingsFile, campaignKey);\n } else {\n campaigns = CampaignUtil.getCampaignsForGoal(settingsFile, goalIdentifier, goalTypeToTrack);\n }\n } else {\n // Get the campaign settings based on campaignKey from the settings\n var _campaign = CampaignUtil.getCampaign(settingsFile, campaignKey);\n\n campaigns.push(_campaign || {\n key: campaignKey\n });\n }\n\n var result = {};\n var metricMap = {};\n var events = [];\n var areGlobalGoals = true ? false : undefined;\n campaigns.forEach(function (campaign) {\n return result[campaign.key] = trackCampaignGoal(vwoInstance, campaign, campaign.key, userId, settingsFile, goalIdentifier, revenueValue, config, customVariables, variationTargetingVariables, userStorageData, goalTypeToTrack, shouldTrackReturningUser, metaData, metricMap, revenuePropList, events, areGlobalGoals, eventProperties, visitorUserAgent, userIpAddress);\n }); // Check if each object in result is a promise\n // in case of asyncStorageConfig, each object would be a promise only\n // Check if result is a non-empty object\n\n var areAllPromises = result && Object.keys(result).length > 0 ? Object.values(result).every(function (item) {\n return DataTypeUtil.isPromise(item);\n }) : false; // const areAllPromises = Object.values(result).every(item => DataTypeUtil.isPromise(item));\n\n if (areAllPromises) {\n // Promise.all - This method takes an array of promises and returns a new promise that resolves to an array of the resolved values when all of the input promises have resolved.\n // If any of the promises in the array reject, the whole Promise.all is rejected.\n return Promise.all(Object.values(result)).then(function (dataArray) {\n dataArray.forEach(function (data, index) {\n var campaignKey = Object.keys(result)[index];\n\n var ans = _validateAndReturnTrackValue(vwoInstance, config, settingsFile, revenuePropList, userId, goalIdentifier, revenueValue, metricMap, events, areGlobalGoals, responseCallback, eventProperties, visitorUserAgent, userIpAddress, _defineProperty({}, campaignKey, data));\n\n result[campaignKey] = ans[campaignKey];\n });\n return result;\n });\n }\n\n return _validateAndReturnTrackValue(vwoInstance, config, settingsFile, revenuePropList, userId, goalIdentifier, revenueValue, metricMap, events, areGlobalGoals, responseCallback, eventProperties, visitorUserAgent, userIpAddress, result);\n}\n\nfunction _validateAndReturnTrackValue(vwoInstance, config, settingsFile, revenuePropList, userId, goalIdentifier, revenueValue, metricMap, events, areGlobalGoals, responseCallback, eventProperties, visitorUserAgent, userIpAddress, result) {\n if (!Object.keys(result).length) {\n return null;\n }\n\n if (true) {\n if (events && events.length) {\n for (var k = 0; k < events.length; k++) {\n vwoInstance.eventQueue.process(config, events[k], vwoInstance, {\n responseCallback: responseCallback\n });\n }\n }\n } else {}\n\n if (settingsFile.isEventArchEnabled && Object.keys(metricMap).length > 0) {\n var properties = ImpressionUtil.getEventsBaseProperties(settingsFile, goalIdentifier, {}, visitorUserAgent, userIpAddress);\n var payload = ImpressionUtil.getTrackGoalPayloadData(settingsFile, userId, goalIdentifier, metricMap, revenueValue, revenuePropList, eventProperties);\n vwoInstance.eventQueue.process(config, properties, vwoInstance, {\n payload: payload,\n responseCallback: responseCallback\n }); // save to user storage if not event arch\n\n if (!settingsFile.isEventArchEnabled) {\n Object.keys(metricMap).forEach(function (key) {\n DecisionUtil._saveUserData(config, metricMap[key].campaign, metricMap[key].variationName, metricMap[key].userId, metricMap[key].metaData, goalIdentifier);\n });\n }\n }\n\n if (config.isDevelopmentMode) {\n return Object.assign({}, result, {\n isDevelopmentMode: config.isDevelopmentMode\n });\n }\n\n return result;\n}\n\nfunction trackCampaignGoal(vwoInstance, campaign, campaignKey, userId, settingsFile, goalIdentifier, revenueValue, config, customVariables, variationTargetingVariables, userStorageData, goalTypeToTrack, shouldTrackReturningUser, metaData, metricMap, revenuePropList, events, areGlobalGoals, eventProperties, visitorUserAgent, userIpAddress) {\n // If matching campaign is not found with campaignKey or if found but is in not RUNNING state, simply return no variation\n if (!campaign || campaign.status !== Constants.STATUS_RUNNING) {\n vwoInstance.logger.log(LogLevelEnum.WARN, LogMessageUtil.build(LogMessageEnum.WARNING_MESSAGES.CAMPAIGN_NOT_RUNNING, {\n file: file,\n campaignKey: campaignKey,\n api: api\n }));\n return false;\n }\n\n if (CampaignUtil.isFeatureRolloutCampaign(campaign)) {\n vwoInstance.logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.API_NOT_APPLICABLE, {\n file: file,\n campaignKey: campaignKey,\n campaignType: campaign.type,\n userId: userId,\n api: api\n }));\n return false;\n }\n\n var campaignId = campaign.id; // Get the campaign goal settings based on goalIdentifier\n\n var goal = CampaignUtil.getCampaignGoal(settingsFile, campaign.key, goalIdentifier);\n\n if (!goal) {\n // If no goal is found, something is wrong with the goalIdentifier\n vwoInstance.logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.TRACK_API_GOAL_NOT_FOUND, {\n file: file,\n userId: userId,\n goalIdentifier: goalIdentifier,\n campaignKey: campaignKey\n }));\n return false;\n } else if (goalTypeToTrack !== GOAL_TYPE_TO_TRACK_DEFAULT && goal.type !== goalTypeToTrack) {\n return false;\n } else if (goal.type === GoalTypeEnum.REVENUE && !ValidateUtil.isValidValue(revenueValue)) {\n if (settingsFile.isEventArchEnabled) {\n /* \n If it's a metric of type - value of an event property and calculation logic is first Value (mca != -1 )\n */\n if (goal.mca !== -1) {\n /*\n In this case it is expected that goal will have revenueProp\n Error should be logged if eventProperties is not Defined ` OR ` eventProperties does not have revenueProp key\n */\n if (DataTypeUtil.isUndefined(eventProperties) || !eventProperties.hasOwnProperty(goal.revenueProp)) {\n logIncorrectParamsForRevenueGoal(vwoInstance, userId, goalIdentifier, campaignKey);\n return false;\n }\n } else {\n /*\n here mca == -1 so there could only be 2 scenarios, \n 1. If revenueProp is defined then eventProperties should have revenueProp key\n 2. if revenueProp is not defined then it's a metric of type - Number of times an event has been triggered.\n */\n if (goal.revenueProp) {\n // Error should be logged if eventProperties is not Defined ` OR ` eventProperties does not have revenueProp key\n if (DataTypeUtil.isUndefined(eventProperties) || !eventProperties.hasOwnProperty(goal.revenueProp)) {\n logIncorrectParamsForRevenueGoal(vwoInstance, userId, goalIdentifier, campaignKey);\n return false;\n }\n }\n }\n } else {\n logIncorrectParamsForRevenueGoal(vwoInstance, userId, goalIdentifier, campaignKey);\n return false;\n }\n }\n\n if (goal.type === GoalTypeEnum.REVENUE && goal.revenueProp) {\n revenuePropList.add(goal.revenueProp);\n }\n\n var result = DecisionUtil.getVariation(config, settingsFile, campaign, campaignKey, userId, customVariables, variationTargetingVariables, userStorageData, metaData, false, true, goalIdentifier, api);\n\n if (DataTypeUtil.isPromise(result)) {\n return result.then(function (data) {\n if (!Object.keys(data).length) {\n return null;\n }\n\n return _validateAndReturnTrackEvent(vwoInstance, campaignKey, campaignId, userId, config, goal, shouldTrackReturningUser, settingsFile, campaign, goalIdentifier, revenueValue, metaData, metricMap, events, areGlobalGoals, eventProperties, visitorUserAgent, userIpAddress, data);\n });\n }\n\n return _validateAndReturnTrackEvent(vwoInstance, campaignKey, campaignId, userId, config, goal, shouldTrackReturningUser, settingsFile, campaign, goalIdentifier, revenueValue, metaData, metricMap, events, areGlobalGoals, eventProperties, visitorUserAgent, userIpAddress, result);\n}\n\nfunction _validateAndReturnTrackEvent(vwoInstance, campaignKey, campaignId, userId, config, goal, shouldTrackReturningUser, settingsFile, campaign, goalIdentifier, revenueValue, metaData, metricMap, events, areGlobalGoals, eventProperties, visitorUserAgent, userIpAddress, result) {\n var variationId = result.variationId,\n variationName = result.variationName,\n storedGoalIdentifier = result.storedGoalIdentifier; // Is User is a part of Campaign and has been decided to be a part of particular variation\n\n if (variationName) {\n if (storedGoalIdentifier) {\n var identifiers = storedGoalIdentifier.split(GOAL_IDENTIFIER_SEPERATOR);\n\n if (!identifiers.includes(goalIdentifier)) {\n storedGoalIdentifier += GOAL_IDENTIFIER_SEPERATOR + goalIdentifier; // save to user storage if not event arch\n\n if (!settingsFile.isEventArchEnabled) {\n DecisionUtil._saveUserData(config, campaign, variationName, userId, metaData, storedGoalIdentifier);\n }\n } else if (!shouldTrackReturningUser && goal.mca !== -1) {\n vwoInstance.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.CAMPAIGN_GOAL_ALREADY_TRACKED, {\n file: file,\n userId: userId,\n goalIdentifier: goalIdentifier,\n campaignKey: campaignKey\n }));\n return false;\n }\n } // If goal is found, send an impression to VWO server for report stats\n\n\n if (config.batchEvents) {\n var properties = ImpressionUtil.buildBatchEventForTrackingGoal(settingsFile, campaignId, variationId, userId, goal, revenueValue, eventProperties, visitorUserAgent, userIpAddress);\n vwoInstance.batchEventsQueue.enqueue(properties);\n } else if (settingsFile.isEventArchEnabled) {\n metricMap[campaign.id] = {\n config: config,\n campaign: campaign,\n variationName: variationName,\n userId: userId,\n metaData: metaData,\n goal: goal\n };\n return true;\n } else {\n var _properties = {};\n\n if (areGlobalGoals) {\n _properties = ImpressionUtil.buildBatchEventForTrackingGoal(settingsFile, campaignId, variationId, userId, goal, revenueValue, visitorUserAgent, userIpAddress);\n } else {\n _properties = ImpressionUtil.buildEventForTrackingGoal(settingsFile, campaignId, variationId, userId, goal, revenueValue, visitorUserAgent, userIpAddress);\n }\n\n events.push(_properties);\n } // save to user storage if not event arch\n\n\n if (!settingsFile.isEventArchEnabled) {\n DecisionUtil._saveUserData(config, campaign, variationName, userId, metaData, goalIdentifier);\n }\n\n return true;\n }\n\n return false;\n}\n\nfunction logIncorrectParamsForRevenueGoal(vwoInstance, userId, goalIdentifier, campaignKey) {\n vwoInstance.logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.TRACK_API_REVENUE_NOT_PASSED_FOR_REVENUE_GOAL, {\n file: file,\n userId: userId,\n goalIdentifier: goalIdentifier,\n campaignKey: campaignKey\n }));\n}\n\nmodule.exports = track;\n\n/***/ }),\n\n/***/ \"./lib/constants/index.js\":\n/*!********************************!*\\\n !*** ./lib/constants/index.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* global SDK_NAME, SDK_VERSION */\nvar packageFile = {}; // For javascript-sdk, to keep the build size low\n// avoid adding the whole package file in the file\n\nif (true) {\n packageFile = {\n name: \"vwo-javascript-sdk\",\n version: \"1.70.0\"\n };\n} else {}\n\nmodule.exports = {\n SDK_NAME: packageFile.name,\n SDK_VERSION: packageFile.version,\n PLATFORM: 'server',\n SEED_VALUE: 1,\n MAX_TRAFFIC_PERCENT: 100,\n MAX_TRAFFIC_VALUE: 10000,\n MAX_EVENTS_PER_REQUEST: 5000,\n DEFAULT_EVENTS_PER_REQUEST: 100,\n DEFAULT_REQUEST_TIME_INTERVAL: 600,\n // 10 * 60(secs) = 600 secs i.e. 10 minutes\n STATUS_RUNNING: 'RUNNING',\n SEED_URL: 'https://vwo.com',\n HTTP_PROTOCOL: 'http://',\n HTTPS_PROTOCOL: 'https://',\n SDK_QUERY_PARAM: 'sdk',\n SDK_VERSION_QUERY_PARAM: 'sdk-v'\n};\n\n/***/ }),\n\n/***/ \"./lib/core/BucketingService.js\":\n/*!**************************************!*\\\n !*** ./lib/core/BucketingService.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar Hasher = __webpack_require__(/*! murmurhash */ \"./node_modules/murmurhash/murmurhash.js\");\n\nvar Constants = __webpack_require__(/*! ../constants */ \"./lib/constants/index.js\");\n\nvar ValidateUtil = __webpack_require__(/*! ../utils/ValidateUtil */ \"./lib/utils/ValidateUtil.js\");\n\nvar VWOFeatureFlags = __webpack_require__(/*! ../utils/VWOFeatureFlags */ \"./lib/utils/VWOFeatureFlags.js\");\n\nvar logging = __webpack_require__(/*! ../services/logging */ \"./lib/services/logging/index.js\");\n\nvar FileNameEnum = __webpack_require__(/*! ../enums/FileNameEnum */ \"./lib/enums/FileNameEnum.js\");\n\nvar CampaignUtil = __webpack_require__(/*! ../utils/CampaignUtil */ \"./lib/utils/CampaignUtil.js\");\n\nvar LogLevelEnum = logging.LogLevelEnum,\n LogMessageEnum = logging.LogMessageEnum,\n LogMessageUtil = logging.LogMessageUtil;\nvar logger = logging.getLogger();\nvar file = FileNameEnum.BucketingService;\nvar BucketingService = {\n /**\n * Generates Bucket Value of the User by hashing the User ID by murmurHash\n * and scaling it down.\n *\n * @param {Number} hashValue the hashValue generated after hashing\n * @param {Number} maxValue the value up-to which hashValue needs to be scaled\n * @param {Number} multiplier multiplier in case the traffic allocation is less than 100\n *\n * @return {Number} bucket Value of the User\n */\n _generateBucketValue: function _generateBucketValue(hashValue, maxValue) {\n var multiplier = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var ratio = hashValue / Math.pow(2, 32);\n var multipliedValue = (maxValue * ratio + 1) * multiplier;\n var value = Math.floor(multipliedValue);\n return value;\n },\n\n /**\n * Returns the Variation by checking the Start and End Bucket Allocations of each Variation\n *\n * @param {Object} campaign which contains the variations\n * @param {Number} bucketValue the bucket Value of the user\n *\n * @return {Object|null} variation data allotted to the user or null if not\n */\n _getVariation: function _getVariation(variations, bucketValue) {\n for (var i = 0; i < Object.keys(variations).length; i++) {\n var variation = variations[i];\n\n if (bucketValue >= variation.startVariationAllocation && bucketValue <= variation.endVariationAllocation) {\n return variation;\n }\n }\n\n return null;\n },\n\n /**\n * Validates the User ID and generates Bucket Value of the User by hashing the userId by murmurHash and scaling it down.\n *\n * @param {String} userId the unique ID assigned to User\n *\n * @return {Number} the bucket Value allotted to User (between 1 to $this->$MAX_TRAFFIC_PERCENT)\n */\n _getBucketValueForUser: function _getBucketValueForUser(seed, userId, disableLog) {\n var hashValue = Hasher.v3(seed, Constants.SEED_VALUE);\n\n var bucketValue = BucketingService._generateBucketValue(hashValue, Constants.MAX_TRAFFIC_PERCENT);\n\n logger.log(LogLevelEnum.DEBUG, LogMessageUtil.build(LogMessageEnum.DEBUG_MESSAGES.USER_HASH_BUCKET_VALUE, {\n file: file,\n hashValue: hashValue,\n bucketValue: bucketValue,\n userId: userId\n }), disableLog);\n return bucketValue;\n },\n\n /**\n * Calculate if this user should become part of the campaign or not\n *\n * @param {String} userId the unique ID assigned to a user\n * @param {Object} campaign fot getting the value of traffic allotted to the campaign\n *\n * @return {Boolean} if User is a part of Campaign or not\n */\n isUserPartOfCampaign: function isUserPartOfCampaign(userId, campaign) {\n var disableLog = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!campaign) {\n return false;\n }\n\n var trafficAllocation = campaign.percentTraffic;\n\n var valueAssignedToUser = BucketingService._getBucketValueForUser(CampaignUtil.getBucketingSeed(userId, campaign), userId, disableLog);\n\n var isUserPart = valueAssignedToUser !== 0 && valueAssignedToUser <= trafficAllocation;\n logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.USER_CAMPAIGN_ELIGIBILITY, {\n file: file,\n userId: userId,\n campaignKey: campaign.key,\n status: isUserPart ? 'eligible' : 'not eligible'\n }), disableLog);\n return isUserPart;\n },\n\n /**\n * Validates the User ID and generates Variation into which the User is bucketed in.\n *\n * @param {String} userId the unique ID assigned to User\n * @param {Object} campaign the Campaign of which User is a part of\n *\n * @return {Object|null} variation data into which user is bucketed in or null if not\n */\n bucketUserToVariation: function bucketUserToVariation(userId, campaign, accountId) {\n var isNB = VWOFeatureFlags.getAll().isNB;\n var isNBv2 = VWOFeatureFlags.getAll().isNBv2;\n var multiplier;\n var seed;\n\n if (!ValidateUtil.isValidValue(userId)) {\n return null;\n }\n\n if (!campaign) {\n return null;\n }\n\n if ((!isNB && !isNBv2 || isNB && campaign.isOB) && campaign.percentTraffic) {\n // Old bucketing logic if feature flag is OFF or\n // Feature flag is ON and campaign is old i.e. created before feature flag was turned ON\n multiplier = Constants.MAX_TRAFFIC_VALUE / campaign.percentTraffic / 100;\n seed = CampaignUtil.getBucketingSeed(userId, campaign);\n } else if (isNB && !campaign.isOB && !isNBv2 || isNBv2 && campaign.isOBv2) {\n // New bucketing logic if feature flag is ON and campaign is new i.e. created after feature flag was turned ON\n multiplier = 1;\n seed = userId;\n } else {\n // new bucketing V2 Logic\n multiplier = 1;\n seed = CampaignUtil.getBucketingSeed(accountId + '_' + userId, campaign);\n }\n\n var hashValue = BucketingService._generateHashValue(seed);\n\n var bucketValue = BucketingService._generateBucketValue(hashValue, Constants.MAX_TRAFFIC_VALUE, multiplier);\n\n logger.log(LogLevelEnum.DEBUG, LogMessageUtil.build(LogMessageEnum.DEBUG_MESSAGES.USER_CAMPAIGN_BUCKET_VALUES, {\n file: file,\n userId: userId,\n campaignKey: campaign.key,\n percentTraffic: campaign.percentTraffic,\n bucketValue: bucketValue,\n hashValue: hashValue\n }));\n return BucketingService._getVariation(campaign.variations, bucketValue);\n },\n calculateBucketValue: function calculateBucketValue(seed) {\n var multiplier = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n var hashValue = BucketingService._generateHashValue(seed);\n\n return BucketingService._generateBucketValue(hashValue, Constants.MAX_TRAFFIC_VALUE, multiplier);\n },\n _generateHashValue: function _generateHashValue(userId) {\n return Hasher.v3(userId, Constants.SEED_VALUE);\n }\n};\nmodule.exports = BucketingService;\n\n/***/ }),\n\n/***/ \"./lib/core/SegmentEvaluator.js\":\n/*!**************************************!*\\\n !*** ./lib/core/SegmentEvaluator.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar SegmentEnum = __webpack_require__(/*! ../enums/segment */ \"./lib/enums/segment/index.js\");\n\nvar _require = __webpack_require__(/*! ../utils/ObjectUtil */ \"./lib/utils/ObjectUtil.js\"),\n getKeyValue = _require.getKeyValue;\n\nvar _require2 = __webpack_require__(/*! ../utils/SegmentUtil */ \"./lib/utils/SegmentUtil.js\"),\n operandCustomVariablesParser = _require2.operandCustomVariablesParser,\n operandUserParser = _require2.operandUserParser;\n\nvar logging = __webpack_require__(/*! ../services/logging */ \"./lib/services/logging/index.js\");\n\nvar DataTypeUtil = __webpack_require__(/*! ../utils/DataTypeUtil */ \"./lib/utils/DataTypeUtil.js\");\n\nvar FileNameEnum = __webpack_require__(/*! ../enums/FileNameEnum */ \"./lib/enums/FileNameEnum.js\");\n\nvar _SegmentEnum$SegmentO = SegmentEnum.SegmentOperatorTypes,\n AND = _SegmentEnum$SegmentO.AND,\n OR = _SegmentEnum$SegmentO.OR,\n NOT = _SegmentEnum$SegmentO.NOT;\nvar _SegmentEnum$SegmentO2 = SegmentEnum.SegmentOperandTypes,\n CUSTOM_VARIABLE = _SegmentEnum$SegmentO2.CUSTOM_VARIABLE,\n USER = _SegmentEnum$SegmentO2.USER;\nvar LogLevelEnum = logging.LogLevelEnum,\n LogMessageEnum = logging.LogMessageEnum,\n LogMessageUtil = logging.LogMessageUtil;\nvar file = FileNameEnum.SegmentEvaluator;\nvar logger = logging.getLogger();\nmodule.exports = SegmentEvaluator;\n/**\n * This method: A parser which recursively evaluates the expression tree represented by dsl\n *\n * @param {Object} dsl The segments defined in the campaing\n * @param {Object} customVariables Key/value pair of custom_attributs properties\n *\n * @return {Boolean} true if user is to be made part of campaign, else false\n */\n\nfunction evaluator(dsl, customVariables) {\n var _getKeyValue = getKeyValue(dsl),\n key = _getKeyValue.key,\n value = _getKeyValue.value;\n\n var operator = key;\n var subDsl = value;\n\n if (operator === NOT) {\n return !evaluator(subDsl, customVariables);\n } else if (operator === AND) {\n var list = [];\n\n for (var i = 0; i < subDsl.length; i++) {\n list.push(evaluator(subDsl[i], customVariables));\n }\n\n return list.every(function (val) {\n return val;\n });\n } else if (operator === OR) {\n var _list = [];\n\n for (var _i = 0; _i < subDsl.length; _i++) {\n _list.push(evaluator(subDsl[_i], customVariables));\n }\n\n return _list.some(function (val) {\n return val;\n });\n } else if (operator === CUSTOM_VARIABLE) {\n return operandCustomVariablesParser(subDsl, customVariables);\n } else if (operator === USER) {\n return operandUserParser(subDsl, customVariables);\n }\n}\n\nfunction SegmentEvaluator(dsl) {\n var customVariables = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var campaignKey = arguments.length > 2 ? arguments[2] : undefined;\n var userId = arguments.length > 3 ? arguments[3] : undefined;\n var variation = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : '';\n var disableLogs = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;\n\n try {\n if (DataTypeUtil.isObject(dsl) && !Object.keys(dsl).length) {\n logger.log(LogLevelEnum.DEBUG, LogMessageUtil.build(LogMessageEnum.DEBUG_MESSAGES.SEGMENTATION_SKIPPED, {\n campaignKey: campaignKey,\n userId: userId,\n file: file\n }), disableLogs);\n return true;\n }\n\n if (DataTypeUtil.isObject(dsl) && Object.keys(dsl).length) {\n return evaluator(dsl, customVariables);\n }\n\n return true;\n } catch (err) {\n logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.SEGMENTATION_ERROR, {\n campaignKey: campaignKey,\n userId: userId,\n customVariables: JSON.stringify(customVariables),\n file: file,\n err: err,\n variation: variation\n }), disableLogs);\n return false;\n }\n}\n\n/***/ }),\n\n/***/ \"./lib/core/VariationDecider.js\":\n/*!**************************************!*\\\n !*** ./lib/core/VariationDecider.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar ValidateUtil = __webpack_require__(/*! ../utils/ValidateUtil */ \"./lib/utils/ValidateUtil.js\");\n\nvar Bucketer = __webpack_require__(/*! ./BucketingService */ \"./lib/core/BucketingService.js\");\n\nvar logging = __webpack_require__(/*! ../services/logging */ \"./lib/services/logging/index.js\");\n\nvar FileNameEnum = __webpack_require__(/*! ../enums/FileNameEnum */ \"./lib/enums/FileNameEnum.js\");\n\nvar LogLevelEnum = logging.LogLevelEnum,\n LogMessageEnum = logging.LogMessageEnum,\n LogMessageUtil = logging.LogMessageUtil;\nvar logger = logging.getLogger();\nvar file = FileNameEnum.VariationDecider;\nvar VariationDecider = {\n /**\n * Returns the Variation Allotted to User\n *\n * @param {String} userId the unique ID assigned to User\n * @param {Object} campaign\n *\n * @return {Object} Variation object allotted to User\n */\n getVariationAllotted: function getVariationAllotted(userId, campaign, accountId) {\n var response = {\n variation: null,\n variationId: null,\n variationName: null\n };\n\n if (!ValidateUtil.isValidValue(userId)) {\n logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.USER_ID_INVALID, {\n file: file,\n userId: userId\n }));\n return response;\n }\n\n if (Bucketer.isUserPartOfCampaign(userId, campaign)) {\n var variation = VariationDecider.getVariationOfCampaignForUser(userId, campaign, accountId) || {};\n response.variation = variation;\n response.variationId = variation.id;\n response.variationName = variation.name;\n } else {\n logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.USER_NOT_PART_OF_CAMPAIGN, {\n file: file,\n userId: userId,\n campaignKey: campaign.key\n }));\n }\n\n return response;\n },\n\n /**\n * Assigns random variation ID to a particular user depending on the PercentTraffic.\n * Makes user a part of campaign if user's included in Traffic.\n *\n * @param {String} userId the unique ID assigned to a user\n * @param {Object} campaign the Campaign of which user is to be made a part of\n *\n * @return {Object|null} Variation allotted to User\n */\n getVariationOfCampaignForUser: function getVariationOfCampaignForUser(userId, campaign, accountId) {\n if (!campaign) {\n return null;\n }\n\n var variation = Bucketer.bucketUserToVariation(userId, campaign, accountId);\n\n if (variation && variation.name) {\n logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.USER_VARIATION_STATUS, {\n file: file,\n userId: userId,\n campaignKey: campaign.key,\n status: \"got Varation:\".concat(variation.name)\n }));\n return {\n variation: variation,\n name: variation.name,\n id: variation.id\n };\n }\n\n logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.USER_VARIATION_STATUS, {\n file: file,\n userId: userId,\n campaignKey: campaign.key,\n status: 'got no variation'\n }));\n return null;\n }\n};\nmodule.exports = VariationDecider;\n\n/***/ }),\n\n/***/ \"./lib/enums/AnsiColorEnum.js\":\n/*!************************************!*\\\n !*** ./lib/enums/AnsiColorEnum.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar AnsiColorEnum = {\n BOLD: '\\x1b[1m',\n CYAN: '\\x1b[36m',\n GREEN: '\\x1b[32m',\n LIGHTBLUE: '\\x1b[94m',\n RED: '\\x1b[31m',\n RESET: '\\x1b[0m',\n WHITE: '\\x1b[30m',\n YELLOW: '\\x1b[33m'\n};\nmodule.exports = AnsiColorEnum;\n\n/***/ }),\n\n/***/ \"./lib/enums/ApiEnum.js\":\n/*!******************************!*\\\n !*** ./lib/enums/ApiEnum.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar ApiEnum = {\n LAUNCH: 'launch',\n ACTIVATE: 'activate',\n GET_VARIATION_NAME: 'getVariation',\n TRACK: 'track',\n IS_FEATURE_ENABLED: 'isFeatureEnabled',\n GET_FEATURE_VARIABLE_VALUE: 'getFeatureVariableValue',\n PUSH: 'push'\n};\nmodule.exports = ApiEnum;\n\n/***/ }),\n\n/***/ \"./lib/enums/CampaignTypeEnum.js\":\n/*!***************************************!*\\\n !*** ./lib/enums/CampaignTypeEnum.js ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar CampaignTypeEnum = {\n FEATURE_TEST: 'FEATURE_TEST',\n FEATURE_ROLLOUT: 'FEATURE_ROLLOUT',\n AB: 'VISUAL_AB'\n};\nmodule.exports = CampaignTypeEnum;\n\n/***/ }),\n\n/***/ \"./lib/enums/DataTypeEnum.js\":\n/*!***********************************!*\\\n !*** ./lib/enums/DataTypeEnum.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar DataTypeEnum = {\n NUMBER: 'number',\n STRING: 'string',\n // FUNCTION: 'function',\n BOOLEAN: 'boolean',\n OBJECT: 'object'\n};\nmodule.exports = DataTypeEnum;\n\n/***/ }),\n\n/***/ \"./lib/enums/EventEnum.js\":\n/*!********************************!*\\\n !*** ./lib/enums/EventEnum.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar EventEnum = {\n VWO_VARIATION_SHOWN: 'vwo_variationShown',\n VWO_SYNC_VISITOR_PROP: 'vwo_syncVisitorProp'\n};\nmodule.exports = EventEnum;\n\n/***/ }),\n\n/***/ \"./lib/enums/FeatureVariableTypeEnum.js\":\n/*!**********************************************!*\\\n !*** ./lib/enums/FeatureVariableTypeEnum.js ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar FeatureVariableTypeEnum = {\n BOOLEAN: 'boolean',\n DOUBLE: 'double',\n INTEGER: 'integer',\n STRING: 'string',\n JSON: 'json'\n};\nmodule.exports = FeatureVariableTypeEnum;\n\n/***/ }),\n\n/***/ \"./lib/enums/FileNameEnum.js\":\n/*!***********************************!*\\\n !*** ./lib/enums/FileNameEnum.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar LIB_PATH = 'lib';\nvar CORE_PATH = 'lib/core';\nvar UTIL_PATH = 'lib/util';\nvar SERVICES_PATH = 'lib/services';\nmodule.exports = {\n INDEX: \"\".concat(LIB_PATH, \"/index\"),\n VWO: \"\".concat(LIB_PATH, \"/VWO\"),\n API: \"\".concat(LIB_PATH, \"/api/index\"),\n Activate: \"\".concat(LIB_PATH, \"/api/activate\"),\n GetVariation: \"\".concat(LIB_PATH, \"/api/getVariation\"),\n Track: \"\".concat(LIB_PATH, \"/api/track\"),\n IsFeatureEnabled: \"\".concat(LIB_PATH, \"/api/isFeatureEnabled\"),\n GetFeatureVariableValue: \"\".concat(LIB_PATH, \"/api/getFeatureVariableValue\"),\n Push: \"\".concat(LIB_PATH, \"/api/push\"),\n SegmentEvaluator: \"\".concat(CORE_PATH, \"/SegmentEvaluator\"),\n BucketingService: \"\".concat(CORE_PATH, \"/BucketingService\"),\n VariationDecider: \"\".concat(CORE_PATH, \"/VariationDecider\"),\n ConsoleLogManager: \"\".concat(SERVICES_PATH, \"/ConsoleLogManager\"),\n EventQueue: \"\".concat(SERVICES_PATH, \"/EventQueue\"),\n LoggingManager: \"\".concat(SERVICES_PATH, \"/LoggingManager\"),\n SettingsFileManager: \"\".concat(SERVICES_PATH, \"/SettingsFileManager\"),\n BatchEventsQueue: \"\".concat(SERVICES_PATH, \"/BatchEventsQueue\"),\n CampaignUtil: \"\".concat(UTIL_PATH, \"/CampaignUtil\"),\n DataTypeUtil: \"\".concat(UTIL_PATH, \"/DataTypeUtil\"),\n EventDispatcher: \"\".concat(UTIL_PATH, \"/EventDispatcher\"),\n EventDispatcherUtil: \"\".concat(UTIL_PATH, \"/EventDispatcherUtil\"),\n FeatureUtil: \"\".concat(UTIL_PATH, \"/FeatureUtil\"),\n Functionutil: \"\".concat(UTIL_PATH, \"/Functionutil\"),\n ImpressionUtil: \"\".concat(UTIL_PATH, \"/ImpressionUtil\"),\n UuidUtil: \"\".concat(UTIL_PATH, \"/UuidUtil\"),\n ValidateUtil: \"\".concat(UTIL_PATH, \"/ValidateUtil\"),\n DecisionUtil: \"\".concat(UTIL_PATH, \"/DecisionUtils\"),\n HttpHandlerUtil: \"\".concat(UTIL_PATH, \"/HttpHandlerUtil\"),\n HttpImageUtil: \"\".concat(UTIL_PATH, \"/HttpImageUtil\"),\n HttpXMLUtil: \"\".concat(UTIL_PATH, \"/HttpXMLUtil\"),\n UsageStatsUtil: \"\".concat(SERVICES_PATH, \"/UsageStats\")\n};\n\n/***/ }),\n\n/***/ \"./lib/enums/GoalTypeEnum.js\":\n/*!***********************************!*\\\n !*** ./lib/enums/GoalTypeEnum.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar GoalTypeEnum = {\n REVENUE: 'REVENUE_TRACKING',\n CUSTOM: 'CUSTOM_GOAL',\n ALL: 'ALL'\n};\nmodule.exports = GoalTypeEnum;\n\n/***/ }),\n\n/***/ \"./lib/enums/HeadersEnum.js\":\n/*!**********************************!*\\\n !*** ./lib/enums/HeadersEnum.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar HeadersEnum = {\n USER_AGENT: 'X-Device-User-Agent',\n IP: 'VWO-X-Forwarded-For'\n};\nmodule.exports = HeadersEnum;\n\n/***/ }),\n\n/***/ \"./lib/enums/HooksEnum.js\":\n/*!********************************!*\\\n !*** ./lib/enums/HooksEnum.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar HooksEnum = {\n DECISION_TYPES: {\n CAMPAIGN_DECISION: 'CAMPAIGN_DECISION'\n }\n};\nmodule.exports = HooksEnum;\n\n/***/ }),\n\n/***/ \"./lib/enums/LogLevelEnum.js\":\n/*!***********************************!*\\\n !*** ./lib/enums/LogLevelEnum.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar _LogLevelColorInfoEnu, _LogLevelInfoEnum;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar AnsiColorEnum = __webpack_require__(/*! ./AnsiColorEnum */ \"./lib/enums/AnsiColorEnum.js\");\n\nvar LogNumberLevel = {\n _0: 'NOTSET',\n _1: 'DEBUG',\n _2: 'INFO',\n _3: 'WARN',\n _4: 'ERROR'\n};\nvar LogLevelEnum = {\n NOTSET: 0,\n DEBUG: 1,\n INFO: 2,\n WARN: 3,\n ERROR: 4\n};\nvar LogLevelColorInfoEnum = (_LogLevelColorInfoEnu = {}, _defineProperty(_LogLevelColorInfoEnu, LogLevelEnum.NOTSET, \"\".concat(AnsiColorEnum.BOLD).concat(AnsiColorEnum.WHITE, \"[NOTSET]:\").concat(AnsiColorEnum.RESET)), _defineProperty(_LogLevelColorInfoEnu, LogLevelEnum.DEBUG, \"\".concat(AnsiColorEnum.BOLD).concat(AnsiColorEnum.LIGHTBLUE, \"[DEBUG]: \").concat(AnsiColorEnum.RESET)), _defineProperty(_LogLevelColorInfoEnu, LogLevelEnum.INFO, \"\".concat(AnsiColorEnum.BOLD).concat(AnsiColorEnum.CYAN, \"[INFO]: \").concat(AnsiColorEnum.RESET)), _defineProperty(_LogLevelColorInfoEnu, LogLevelEnum.WARN, \"\".concat(AnsiColorEnum.BOLD).concat(AnsiColorEnum.YELLOW, \"[WARN]: \").concat(AnsiColorEnum.RESET)), _defineProperty(_LogLevelColorInfoEnu, LogLevelEnum.ERROR, \"\".concat(AnsiColorEnum.BOLD).concat(AnsiColorEnum.RED, \"[ERROR]: \").concat(AnsiColorEnum.RESET)), _LogLevelColorInfoEnu);\nvar LogLevelInfoEnum = (_LogLevelInfoEnum = {}, _defineProperty(_LogLevelInfoEnum, LogLevelEnum.NOTSET, \"[NOTSET]:\"), _defineProperty(_LogLevelInfoEnum, LogLevelEnum.DEBUG, \"[DEBUG]: \"), _defineProperty(_LogLevelInfoEnum, LogLevelEnum.INFO, \"[INFO]: \"), _defineProperty(_LogLevelInfoEnum, LogLevelEnum.WARN, \"[WARN]: \"), _defineProperty(_LogLevelInfoEnum, LogLevelEnum.ERROR, \"[ERROR]: \"), _LogLevelInfoEnum);\nmodule.exports = {\n LogLevelEnum: LogLevelEnum,\n LogNumberLevel: LogNumberLevel,\n LogLevelInfoEnum: LogLevelInfoEnum,\n LogLevelColorInfoEnum: LogLevelColorInfoEnum\n};\n\n/***/ }),\n\n/***/ \"./lib/enums/StatusEnum.js\":\n/*!*********************************!*\\\n !*** ./lib/enums/StatusEnum.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nmodule.exports = {\n PASSED: 'passed',\n FAILED: 'failed'\n};\n\n/***/ }),\n\n/***/ \"./lib/enums/UrlEnum.js\":\n/*!******************************!*\\\n !*** ./lib/enums/UrlEnum.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar UrlEnum = {\n BASE_URL: 'dev.visualwebsiteoptimizer.com',\n SETTINGS_URL: '/server-side/settings',\n WEBHOOK_SETTINGS_URL: '/server-side/pull',\n TRACK_USER: '/server-side/track-user',\n TRACK_GOAL: '/server-side/track-goal',\n PUSH: '/server-side/push',\n BATCH_EVENTS: '/server-side/batch-events',\n EVENTS: '/events/t'\n};\nmodule.exports = UrlEnum;\n\n/***/ }),\n\n/***/ \"./lib/enums/segment/SegmentOperandTypesEnum.js\":\n/*!******************************************************!*\\\n !*** ./lib/enums/segment/SegmentOperandTypesEnum.js ***!\n \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nmodule.exports = {\n CUSTOM_VARIABLE: 'custom_variable',\n USER: 'user'\n};\n\n/***/ }),\n\n/***/ \"./lib/enums/segment/SegmentOperandValueTypeRegexesEnum.js\":\n/*!*****************************************************************!*\\\n !*** ./lib/enums/segment/SegmentOperandValueTypeRegexesEnum.js ***!\n \\*****************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nmodule.exports = {\n LOWER: /^lower/,\n LOWER_MATCH: /^lower\\((.*)\\)/,\n WILDCARD: /^wildcard/,\n WILDCARD_MATCH: /^wildcard\\((.*)\\)/,\n REGEX: /^regex/,\n REGEX_MATCH: /^regex\\((.*)\\)/,\n STARTING_STAR: /^\\*/,\n ENDING_STAR: /\\*$/,\n GREATER_THAN_MATCH: /^gt\\(((\\d+\\.?\\d*)|(\\.\\d+))\\)/,\n GREATER_THAN_EQUAL_TO_MATCH: /^gte\\(((\\d+\\.?\\d*)|(\\.\\d+))\\)/,\n LESS_THAN_MATCH: /^lt\\(((\\d+\\.?\\d*)|(\\.\\d+))\\)/,\n LESS_THAN_EQUAL_TO_MATCH: /^lte\\(((\\d+\\.?\\d*)|(\\.\\d+))\\)/\n};\n\n/***/ }),\n\n/***/ \"./lib/enums/segment/SegmentOperandValuesEnum.js\":\n/*!*******************************************************!*\\\n !*** ./lib/enums/segment/SegmentOperandValuesEnum.js ***!\n \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nmodule.exports = {\n LOWER_VALUE: 1,\n STARTING_ENDING_STAR_VALUE: 2,\n STARTING_STAR_VALUE: 3,\n ENDING_STAR_VALUE: 4,\n REGEX_VALUE: 5,\n EQUAL_VALUE: 6,\n GREATER_THAN_VALUE: 7,\n GREATER_THAN_EQUAL_TO_VALUE: 8,\n LESS_THAN_VALUE: 9,\n LESS_THAN_EQUAL_TO_VALUE: 10\n};\n\n/***/ }),\n\n/***/ \"./lib/enums/segment/SegmentOperatorTypesEnum.js\":\n/*!*******************************************************!*\\\n !*** ./lib/enums/segment/SegmentOperatorTypesEnum.js ***!\n \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nmodule.exports = {\n AND: 'and',\n NOT: 'not',\n OR: 'or'\n};\n\n/***/ }),\n\n/***/ \"./lib/enums/segment/index.js\":\n/*!************************************!*\\\n !*** ./lib/enums/segment/index.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar SegmentOperandTypes = __webpack_require__(/*! ./SegmentOperandTypesEnum */ \"./lib/enums/segment/SegmentOperandTypesEnum.js\");\n\nvar SegmentOperatorTypes = __webpack_require__(/*! ./SegmentOperatorTypesEnum */ \"./lib/enums/segment/SegmentOperatorTypesEnum.js\");\n\nvar SegmentOperandValueTypeRegexes = __webpack_require__(/*! ./SegmentOperandValueTypeRegexesEnum */ \"./lib/enums/segment/SegmentOperandValueTypeRegexesEnum.js\");\n\nvar SegmentOperandValues = __webpack_require__(/*! ./SegmentOperandValuesEnum */ \"./lib/enums/segment/SegmentOperandValuesEnum.js\");\n\nvar SegmentEnum = {\n SegmentOperandTypes: SegmentOperandTypes,\n SegmentOperatorTypes: SegmentOperatorTypes,\n SegmentOperandValueTypeRegexes: SegmentOperandValueTypeRegexes,\n SegmentOperandValues: SegmentOperandValues\n};\nmodule.exports = SegmentEnum;\n\n/***/ }),\n\n/***/ \"./lib/index.js\":\n/*!**********************!*\\\n !*** ./lib/index.js ***!\n \\**********************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar VWO = __webpack_require__(/*! ./VWO */ \"./lib/VWO.js\");\n\nvar DataTypeUtil = __webpack_require__(/*! ./utils/DataTypeUtil */ \"./lib/utils/DataTypeUtil.js\");\n\nvar FunctionUtil = __webpack_require__(/*! ./utils/FunctionUtil */ \"./lib/utils/FunctionUtil.js\");\n\nvar _require = __webpack_require__(/*! ./utils/ObjectUtil */ \"./lib/utils/ObjectUtil.js\"),\n objectValues = _require.objectValues;\n\nvar SettingsFileUtil = __webpack_require__(/*! ./utils/SettingsFileUtil */ \"./lib/utils/SettingsFileUtil.js\");\n\nvar GoalTypeEnum = __webpack_require__(/*! ./enums/GoalTypeEnum */ \"./lib/enums/GoalTypeEnum.js\");\n\nvar _require2 = __webpack_require__(/*! ./constants */ \"./lib/constants/index.js\"),\n MAX_EVENTS_PER_REQUEST = _require2.MAX_EVENTS_PER_REQUEST;\n\nvar logging = __webpack_require__(/*! ./services/logging */ \"./lib/services/logging/index.js\");\n\nvar ApiEnum = __webpack_require__(/*! ./enums/ApiEnum */ \"./lib/enums/ApiEnum.js\");\n\nvar FileNameEnum = __webpack_require__(/*! ./enums/FileNameEnum */ \"./lib/enums/FileNameEnum.js\");\n\nvar file = FileNameEnum.INDEX;\nvar setLogHandler = logging.setLogHandler,\n setLogLevel = logging.setLogLevel,\n LogLevelEnum = logging.LogLevelEnum,\n LogNumberLevel = logging.LogNumberLevel,\n LogMessageEnum = logging.LogMessageEnum,\n LogMessageUtil = logging.LogMessageUtil;\nvar logger = logging.getLogger(); // By default, all ERRORS should be logged\n\nlogging.setLogLevel(LogLevelEnum.ERROR);\n\nfunction logError() {\n var parameter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var log = LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.CONFIG_PARAMETER_INVALID, {\n file: file,\n parameter: parameter,\n type: type,\n api: ApiEnum.LAUNCH\n });\n throw new Error(logger.log(LogLevelEnum.ERROR, log));\n}\n\nfunction logInfo() {\n var parameter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var log = LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.CONFIG_PARAMETER_USED, {\n file: file,\n parameter: parameter,\n type: type\n });\n console.info(\"VWO-SDK - [INFO]: \".concat(FunctionUtil.getCurrentTime(), \" \").concat(log));\n}\n\nmodule.exports = {\n logging: logging,\n setLogger: setLogHandler,\n setLogLevel: setLogLevel,\n getSettingsFile: SettingsFileUtil.get,\n GoalTypeEnum: GoalTypeEnum,\n LogLevelEnum: LogLevelEnum,\n\n /**\n * Initializes the SDK and parses the settingsfile\n *\n * @param {Object} config configuration for the SDK\n */\n launch: function launch(sdkConfig) {\n var config = {};\n\n try {\n // validating config schema\n FunctionUtil.cloneObject(sdkConfig);\n\n if (!DataTypeUtil.isUndefined(sdkConfig.shouldTrackReturningUser) && !DataTypeUtil.isBoolean(sdkConfig.shouldTrackReturningUser)) {\n logError('shouldTrackReturningUser', 'boolean');\n } else if (!DataTypeUtil.isUndefined(sdkConfig.shouldTrackReturningUser)) {\n logInfo('shouldTrackReturningUser', 'boolean');\n }\n\n if (!DataTypeUtil.isUndefined(sdkConfig.isDevelopmentMode) && !DataTypeUtil.isBoolean(sdkConfig.isDevelopmentMode)) {\n logError('isDevelopmentMode', 'boolean');\n } else if (!DataTypeUtil.isUndefined(sdkConfig.isDevelopmentMode)) {\n logInfo('isDevelopmentMode', 'boolean');\n }\n\n if (sdkConfig.goalTypeToTrack && !objectValues(GoalTypeEnum).includes(sdkConfig.goalTypeToTrack)) {\n logError('goalTypeToTrack', 'string(REVENUE_TRACKING, CUSTOM_GOAL, ALL)');\n } else if (sdkConfig.goalTypeToTrack) {\n logInfo('goalTypeToTrack', 'string(REVENUE_TRACKING, CUSTOM_GOAL, ALL)');\n }\n\n if (sdkConfig.logging && sdkConfig.logging.level && !objectValues(LogLevelEnum).includes(sdkConfig.logging.level)) {\n logError('logLevel', 'number(1,2,3,4)');\n } else if (sdkConfig.logging && sdkConfig.logging.level) {\n logInfo('logLevel', 'number(1,2,3,4)');\n }\n\n if (sdkConfig.pollingInterval && !DataTypeUtil.isNumber(sdkConfig.pollingInterval)) {\n logError('pollingInterval', 'number(in miliiseconds)');\n } else if (sdkConfig.pollingInterval) {\n logInfo('pollingInterval', 'number(in miliiseconds)');\n }\n\n if (sdkConfig.pollingInterval && DataTypeUtil.isUndefined(sdkConfig.sdkKey)) {\n logError('sdkKey(required for polling)', 'string');\n }\n\n if (sdkConfig.pollingInterval && !DataTypeUtil.isString(sdkConfig.sdkKey)) {\n logError('sdkKey', 'string');\n }\n\n if (!DataTypeUtil.isUndefined(sdkConfig.batchEvents) && !DataTypeUtil.isObject(sdkConfig.batchEvents)) {\n logError('batchEvents', 'object');\n } else if (!DataTypeUtil.isUndefined(sdkConfig.batchEvents)) {\n logInfo('batchEvents', 'object');\n }\n\n if (!DataTypeUtil.isUndefined(sdkConfig.returnPromiseFor) && !DataTypeUtil.isObject(sdkConfig.returnPromiseFor)) {\n logError('returnPromiseFor', 'object');\n } else if (!DataTypeUtil.isUndefined(sdkConfig.returnPromiseFor)) {\n logInfo('returnPromiseFor', 'object');\n }\n\n if (!DataTypeUtil.isUndefined(sdkConfig.asyncStorageConfig) && !DataTypeUtil.isObject(sdkConfig.asyncStorageConfig)) {\n logError('asyncStorageConfig', 'object');\n } else if (!DataTypeUtil.isUndefined(sdkConfig.asyncStorageConfig)) {\n logInfo('asyncStorageConfig', 'object');\n }\n\n if (!DataTypeUtil.isUndefined(sdkConfig.integrations) && !DataTypeUtil.isObject(sdkConfig.integrations)) {\n logError('integrations', 'object');\n } else if (!DataTypeUtil.isUndefined(sdkConfig.integrations)) {\n logInfo('integrations', 'object');\n }\n\n if (!DataTypeUtil.isUndefined(sdkConfig.userStorageService) && !DataTypeUtil.isObject(sdkConfig.userStorageService)) {\n logError('userStorageService', 'object');\n } else if (!DataTypeUtil.isUndefined(sdkConfig.userStorageService)) {\n logInfo('userStorageService', 'object');\n } // For JavaScript SDK, batching is not required and is not available\n\n\n if (DataTypeUtil.isObject(sdkConfig.batchEvents) && \"undefined\" === 'undefined') {\n sdkConfig.batchEvents = null;\n } // For Node.js SDK\n\n\n if (false) {}\n\n config = sdkConfig;\n } catch (err) {\n logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.CONFIG_CORRUPTED, {\n file: file,\n api: ApiEnum.LAUNCH\n }));\n config = {};\n } // If DEV mode, set colorful logs to true\n\n\n if (config.isDevelopmentMode) {\n logging.setLogColorMode(true);\n } // If logging is enabled, use the logger and logLevel defined by the client\n\n\n if (config.logging && DataTypeUtil.isObject(config.logging)) {\n if (config.logging.haveColoredLogs !== undefined) {\n logging.setLogColorMode(config.logging.haveColoredLogs);\n }\n\n if (config.logging.logger && DataTypeUtil.isObject(config.logging.logger) && DataTypeUtil.isFunction(config.logging.logger.log)) {\n logging.setLogHandler(config.logging.logger);\n logging.setLogLevel(logging.LogLevelEnum.NOTSET);\n logger.log(LogLevelEnum.DEBUG, LogMessageUtil.build(LogMessageEnum.DEBUG_MESSAGES.CONFIG_CUSTOM_LOGGER_USED, {\n file: file\n }));\n } else if (config.logging.logger) {\n logError('logging.logger', 'object');\n }\n\n if (config.logging.level !== undefined) {\n logging.setLogLevel(config.logging.level);\n logger.log(LogLevelEnum.DEBUG, LogMessageUtil.build(LogMessageEnum.DEBUG_MESSAGES.CONFIG_LOG_LEVEL_SET, {\n file: file,\n level: LogNumberLevel['_' + config.logging.level]\n }));\n }\n } // DEBUG log for knowing whether it's DEV mode\n\n\n if (config.isDevelopmentMode) {\n logger.log(LogLevelEnum.DEBUG, LogMessageUtil.build(LogMessageEnum.DEBUG_MESSAGES.CONFIG_DEVELOPMENT_MODE_STATUS, {\n file: file\n }));\n } // Set logger on config Obkect, to be required later\n\n\n config.logger = config.logging && config.logging.logger || logger; // Create an instance of VWO class which exposes API methods\n\n return new VWO(config);\n }\n};\n\n/***/ }),\n\n/***/ \"./lib/schemas/SettingsFileSchema.js\":\n/*!*******************************************!*\\\n !*** ./lib/schemas/SettingsFileSchema.js ***!\n \\*******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar _require = __webpack_require__(/*! superstruct */ \"./node_modules/superstruct/lib/index.es.js\"),\n validate = _require.validate,\n number = _require.number,\n string = _require.string,\n _boolean = _require[\"boolean\"],\n array = _require.array,\n object = _require.object,\n optional = _require.optional,\n union = _require.union,\n type = _require.type,\n record = _require.record;\n\nvar campaignGoalSchema = type({\n id: union([number(), string()]),\n identifier: string(),\n type: string(),\n revenueProp: optional(string()),\n mca: optional(union([number(), string()]))\n});\nvar variableObjectSchema = type({\n id: union([number(), string()]),\n type: string(),\n key: string(),\n value: union([number(), string(), _boolean()])\n});\nvar campaignVariationSchema = type({\n id: union([number(), string()]),\n name: string(),\n weight: union([number(), string()]),\n changes: optional(object()),\n segments: optional(object()),\n variables: optional(union([object(), array(variableObjectSchema)])),\n isFeatureEnabled: optional(_boolean()),\n startVariationAllocation: optional(number()),\n endVariationAllocation: optional(number())\n});\nvar campaignObjectSchema = type({\n id: union([number(), string()]),\n type: string(),\n key: string(),\n status: string(),\n name: optional(string()),\n isBucketingSeedEnabled: optional(_boolean()),\n percentTraffic: number(),\n goals: union([object(), array(campaignGoalSchema)]),\n variations: union([object(), array(campaignVariationSchema)]),\n variables: optional(union([object(), array(variableObjectSchema)])),\n segments: object(),\n isForcedVariationEnabled: optional(_boolean()),\n isUserListEnabled: optional(_boolean()),\n isMAB: optional(_boolean())\n});\nvar groupSchema = type({\n et: optional(string()),\n p: optional(array(number())),\n wt: optional(record(string(), number())),\n groupName: string(),\n campaigns: array(number())\n});\nvar settingsFileSchema = type({\n sdkKey: optional(string()),\n version: union([number(), string()]),\n accountId: union([number(), string()]),\n campaigns: array(campaignObjectSchema),\n campaignGroups: optional(record(string(), number())),\n isEventArchEnabled: optional(_boolean()),\n collectionPrefix: optional(string()),\n groups: optional(union([object(), record(string(), groupSchema)]))\n});\n\nvar validateSettingsFile = function validateSettingsFile(settings) {\n var _validate = validate(settings, settingsFileSchema),\n _validate2 = _slicedToArray(_validate, 1),\n error = _validate2[0];\n\n return !error;\n};\n\nmodule.exports = validateSettingsFile;\n\n/***/ }),\n\n/***/ \"./lib/services/EventQueue.js\":\n/*!************************************!*\\\n !*** ./lib/services/EventQueue.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar DataTypeUtil = __webpack_require__(/*! ../utils/DataTypeUtil */ \"./lib/utils/DataTypeUtil.js\");\n\nvar EventDispatcher = __webpack_require__(/*! ../utils/EventDispatcherUtil */ \"./lib/utils/EventDispatcherUtil.js\");\n\nvar logging = __webpack_require__(/*! ./logging */ \"./lib/services/logging/index.js\");\n\nvar FileNameEnum = __webpack_require__(/*! ../enums/FileNameEnum */ \"./lib/enums/FileNameEnum.js\");\n\nvar HeadersEnum = __webpack_require__(/*! ../enums/HeadersEnum */ \"./lib/enums/HeadersEnum.js\");\n\nvar LogLevelEnum = logging.LogLevelEnum,\n LogMessageEnum = logging.LogMessageEnum,\n LogMessageUtil = logging.LogMessageUtil;\nvar logger = logging.getLogger();\nvar file = FileNameEnum.EventQueue;\n\nvar EventQueue =\n/*#__PURE__*/\nfunction () {\n function EventQueue() {\n _classCallCheck(this, EventQueue);\n\n this.running = false;\n this.queue = [];\n }\n\n _createClass(EventQueue, [{\n key: \"process\",\n value: function process(config, properties, vwoInstance) {\n var _ref = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},\n payload = _ref.payload,\n responseCallback = _ref.responseCallback;\n\n var customHeaders = {};\n\n if (properties && properties.visitor_ua) {\n customHeaders[HeadersEnum.USER_AGENT] = encodeURIComponent(properties.visitor_ua);\n properties.visitor_ua = customHeaders[HeadersEnum.USER_AGENT];\n }\n\n if (properties && properties.visitor_ip) {\n customHeaders[HeadersEnum.IP] = encodeURIComponent(properties.visitor_ip);\n properties.visitor_ip = customHeaders[HeadersEnum.IP];\n }\n\n if (config && config.isDevelopmentMode) {\n logger.log(LogLevelEnum.DEBUG, LogMessageUtil.build(LogMessageEnum.DEBUG_MESSAGES.CONFIG_DEVELOPMENT_MODE_STATUS, {\n file: file\n }));\n return;\n }\n\n this.enqueue(properties, vwoInstance, {\n payload: payload,\n responseCallback: responseCallback\n }, customHeaders);\n }\n }, {\n key: \"enqueue\",\n value: function enqueue(properties, vwoInstance, _ref2) {\n var payload = _ref2.payload,\n responseCallback = _ref2.responseCallback;\n var customHeaders = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n this.queue.push({\n eventName: properties.eventName,\n properties: properties,\n callback: function callback() {\n if (payload) {\n EventDispatcher.dispatchPostCall(properties, payload, {\n responseCallback: responseCallback\n }, customHeaders);\n } else {\n EventDispatcher.dispatchGetCall(properties, {\n responseCallback: responseCallback\n }, customHeaders);\n }\n }\n });\n logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.EVENT_QUEUE, {\n file: file,\n queueType: 'normal',\n event: 'VWO_MASKED_PAYLOAD'\n }));\n vwoInstance.eventQueue.executeNext(properties);\n\n if (!this.running) {\n // if nothing is running, then start the engines!\n this.executeNext(properties);\n }\n\n return this;\n }\n }, {\n key: \"executeNext\",\n value: function executeNext(properties) {\n this.running = false; // get the first element off the queue\n\n if (this.queue && this.queue.length) {\n var event = this.queue.shift();\n\n if (event) {\n this.running = true;\n\n if (event.callback && DataTypeUtil.isFunction(event.callback)) {\n event.callback(properties);\n }\n }\n }\n }\n }]);\n\n return EventQueue;\n}();\n\nmodule.exports = EventQueue;\n\n/***/ }),\n\n/***/ \"./lib/services/HooksManager.js\":\n/*!**************************************!*\\\n !*** ./lib/services/HooksManager.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar DataTypeUtil = __webpack_require__(/*! ../utils/DataTypeUtil */ \"./lib/utils/DataTypeUtil.js\");\n/**\n * Hooks Manager is responsible for triggering callbacks useful to the end-user based on certain lifecycle events.\n * Possible use with integrations when the user intends to send an event when a visitor is part of the experiment.\n */\n\n\nvar HooksManager = {\n /**\n * Initializes with configuration from VWO Object.\n * @param {Object} config\n */\n init: function init() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.callback = config.integrations && config.integrations.callback;\n },\n\n /**\n * Executes the callback\n * @param {Object} properties Properties from the callback\n */\n execute: function execute(properties) {\n if (DataTypeUtil.isFunction(this.callback)) {\n this.callback(properties);\n }\n }\n};\nmodule.exports = HooksManager;\n\n/***/ }),\n\n/***/ \"./lib/services/SettingsFileManager.js\":\n/*!*********************************************!*\\\n !*** ./lib/services/SettingsFileManager.js ***!\n \\*********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar CampaignUtil = __webpack_require__(/*! ../utils/CampaignUtil */ \"./lib/utils/CampaignUtil.js\");\n\nvar FunctionUtil = __webpack_require__(/*! ../utils/FunctionUtil */ \"./lib/utils/FunctionUtil.js\");\n\nvar SettingsFileUtil = __webpack_require__(/*! ../utils/SettingsFileUtil */ \"./lib/utils/SettingsFileUtil.js\");\n\nvar logging = __webpack_require__(/*! ./logging */ \"./lib/services/logging/index.js\");\n\nvar FileNameEnum = __webpack_require__(/*! ../enums/FileNameEnum */ \"./lib/enums/FileNameEnum.js\");\n\nvar validateSettingsFile = __webpack_require__(/*! ../schemas/SettingsFileSchema */ \"./lib/schemas/SettingsFileSchema.js\");\n\nvar _require = __webpack_require__(/*! ../utils/DataTypeUtil */ \"./lib/utils/DataTypeUtil.js\"),\n isObject = _require.isObject;\n\nvar LogLevelEnum = logging.LogLevelEnum,\n LogMessageEnum = logging.LogMessageEnum,\n LogMessageUtil = logging.LogMessageUtil;\nvar file = FileNameEnum.SettingsFileManager;\n\nvar SettingsFileManager =\n/*#__PURE__*/\nfunction () {\n // PRIVATE METHODS\n function SettingsFileManager(config) {\n _classCallCheck(this, SettingsFileManager);\n\n if (config) {\n if (config.settingsFile && isObject(config.settingsFile.campaigns) || config.settingsFile && !config.settingsFile.campaigns) {\n config.settingsFile.campaigns = [];\n }\n\n this._configObj = config;\n this._clonedSettingsFile = config.settingsFile ? FunctionUtil.cloneObject(config.settingsFile) : null;\n } else {\n this._configObj = null;\n this._clonedSettingsFile = null;\n }\n }\n\n _createClass(SettingsFileManager, [{\n key: \"_setVariationBucketing\",\n value: function _setVariationBucketing(campaign) {\n CampaignUtil.setVariationAllocation(campaign);\n } // PUBLIC METHODS\n\n }, {\n key: \"isSettingsFileValid\",\n value: function isSettingsFileValid() {\n if (!this._configObj || !this._clonedSettingsFile) {\n return false;\n }\n\n var isValidSettingsFile = validateSettingsFile(this._clonedSettingsFile);\n\n if (!isValidSettingsFile) {\n this._configObj.logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.SETTINGS_FILE_CORRUPTED, {\n file: file\n }));\n\n return false;\n }\n\n return true;\n }\n }, {\n key: \"checkAndPoll\",\n value: function checkAndPoll() {\n var _this = this;\n\n if (!this._configObj.pollingInterval || !this._configObj.sdkKey) {\n return;\n }\n\n var lastSettingsFile = JSON.stringify(this._clonedSettingsFile);\n setInterval(function () {\n SettingsFileUtil.get(_this._clonedSettingsFile.accountId, _this._configObj.sdkKey).then(function (latestSettingsFile) {\n _this._configObj.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.POLLING_SUCCESS, {\n file: file,\n accountId: _this._clonedSettingsFile.accountId\n }));\n\n var stringifiedLatestSettingsFile = JSON.stringify(latestSettingsFile);\n\n if (stringifiedLatestSettingsFile !== lastSettingsFile) {\n lastSettingsFile = stringifiedLatestSettingsFile;\n\n _this.updateSettingsFile(latestSettingsFile);\n\n _this._configObj.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.POLLING_SETTINGS_FILE_UPDATED, {\n file: file,\n accountId: _this._clonedSettingsFile.accountId\n }));\n } else {\n _this._configObj.logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.POLLING_SETTINGS_FILE_NOT_UPDATED, {\n file: file,\n accountId: _this._clonedSettingsFile.accountId\n }));\n }\n })[\"catch\"](function (_e) {\n _this._configObj.logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.POLLING_FAILED, {\n file: file,\n accountId: _this._clonedSettingsFile.accountId\n }));\n });\n }, this._configObj.pollingInterval);\n\n this._configObj.logger.log(LogLevelEnum.DEBUG, LogMessageUtil.build(LogMessageEnum.DEBUG_MESSAGES.POLLING_SETTINGS_FILE_REGISTERED, {\n file: file,\n pollingInterval: this._configObj.pollingInterval\n }));\n }\n }, {\n key: \"processSettingsFile\",\n value: function processSettingsFile() {\n var settingsFile = this._clonedSettingsFile;\n\n for (var i = 0; i < settingsFile.campaigns.length; i++) {\n var campaign = settingsFile.campaigns[i];\n\n this._setVariationBucketing(campaign);\n }\n\n this._configObj.logger.log(LogLevelEnum.DEBUG, LogMessageUtil.build(LogMessageEnum.DEBUG_MESSAGES.SETTINGS_FILE_PROCESSED, {\n file: file,\n accountId: this._clonedSettingsFile.accountId\n }));\n\n return settingsFile;\n }\n /**\n * Fetch latest settings-file and update so that vwoClientInstance could use latest settings\n * Helpful especially when using webhooks\n *\n * @param {Number} accountId\n * @param {String} sdkKey\n *\n * @return {Promise}\n */\n\n }, {\n key: \"getAndUpdateSettingsFile\",\n value: function getAndUpdateSettingsFile() {\n var _this2 = this;\n\n var accountId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this._clonedSettingsFile.accountId;\n var sdkKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this._clonedSettingsFile.sdkKey;\n return new Promise(function (resolve, _reject) {\n SettingsFileUtil.get(accountId, sdkKey, null, {\n isViaWebhook: true\n }).then(function (settings) {\n _this2.updateSettingsFile(settings);\n\n resolve(settings);\n })[\"catch\"](function (_err) {});\n });\n }\n /**\n * Update the settings-file on the instance so that latest settings could be used from next hit onwards\n * @param {Object} settings\n */\n\n }, {\n key: \"updateSettingsFile\",\n value: function updateSettingsFile(settings) {\n this._clonedSettingsFile = FunctionUtil.cloneObject(settings);\n this.processSettingsFile();\n }\n }, {\n key: \"getConfig\",\n value: function getConfig() {\n return this._configObj;\n }\n }, {\n key: \"getSettingsFile\",\n value: function getSettingsFile(api) {\n if (!this._clonedSettingsFile) {\n this._configObj.logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.API_HAS_CORRUPTED_SETTINGS_FILE, {\n file: file,\n api: api\n }));\n }\n\n return this._clonedSettingsFile;\n }\n }]);\n\n return SettingsFileManager;\n}();\n\nmodule.exports = SettingsFileManager;\n\n/***/ }),\n\n/***/ \"./lib/services/UrlService.js\":\n/*!************************************!*\\\n !*** ./lib/services/UrlService.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar UrlEnum = __webpack_require__(/*! ../enums/UrlEnum */ \"./lib/enums/UrlEnum.js\");\n\nvar _require = __webpack_require__(/*! ../utils/DataTypeUtil */ \"./lib/utils/DataTypeUtil.js\"),\n isString = _require.isString;\n\nvar UrlService = {\n init: function init() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n collectionPrefix = _ref.collectionPrefix;\n\n if (collectionPrefix && isString(collectionPrefix)) {\n UrlService.collectionPrefix = collectionPrefix;\n }\n\n return UrlService;\n },\n getBaseUrl: function getBaseUrl() {\n var baseUrl = UrlEnum.BASE_URL;\n\n if (UrlService.collectionPrefix) {\n return \"\".concat(baseUrl, \"/\").concat(UrlService.collectionPrefix);\n }\n\n return baseUrl;\n }\n};\nmodule.exports = UrlService;\n\n/***/ }),\n\n/***/ \"./lib/services/UsageStats.js\":\n/*!************************************!*\\\n !*** ./lib/services/UsageStats.js ***!\n \\************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar _require = __webpack_require__(/*! ./logging */ \"./lib/services/logging/index.js\"),\n LogManager = _require.LogManager;\n\nvar UsageStats =\n/*#__PURE__*/\nfunction () {\n function UsageStats() {\n _classCallCheck(this, UsageStats);\n\n this.data = {};\n }\n /**\n * Collect the usage stats from the params passed at the time of instantiating VWO and send them to VWO Server\n * @param {Object} config config passed at the time of instantiation.\n */\n\n\n _createClass(UsageStats, [{\n key: \"collectUsageStats\",\n value: function collectUsageStats(config) {\n this.data['eb'] = Number(!!config.batchEvents);\n this.data['ig'] = Number(!!config.integrations);\n this.data['ss'] = Number(!!config.userStorageService);\n this.data['cl'] = Number(!(config.logger instanceof LogManager));\n this.data['ll'] = Number(config.logging && config.logging.level);\n this.data['tr'] = Number(config.shouldTrackReturningUser);\n this.data['gt'] = Number(!!config.goalTypeToTrack);\n this.data['pi'] = Number(!!config.pollingInterval);\n Object.keys(this.data).forEach(function (key) {\n if (!this.data[key]) {\n delete this.data[key];\n }\n }, this);\n }\n /**\n * Get the collected usage stats.\n * @returns collected usage stats data\n */\n\n }, {\n key: \"getUsageStats\",\n value: function getUsageStats() {\n if (Object.keys(this.data).length > 0) {\n this.data['_l'] = 1;\n }\n\n return this.data;\n }\n }]);\n\n return UsageStats;\n}();\n\nmodule.exports = UsageStats;\n\n/***/ }),\n\n/***/ \"./lib/services/logging/ConsoleLogManager.js\":\n/*!***************************************************!*\\\n !*** ./lib/services/logging/ConsoleLogManager.js ***!\n \\***************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar _require = __webpack_require__(/*! ../../utils/FunctionUtil */ \"./lib/utils/FunctionUtil.js\"),\n getCurrentTime = _require.getCurrentTime;\n\nvar _require2 = __webpack_require__(/*! ../../enums/LogLevelEnum */ \"./lib/enums/LogLevelEnum.js\"),\n LogLevelEnum = _require2.LogLevelEnum,\n LogLevelInfoEnum = _require2.LogLevelInfoEnum,\n LogLevelColorInfoEnum = _require2.LogLevelColorInfoEnum;\n\nvar ConsoleLogManager =\n/*#__PURE__*/\nfunction () {\n function ConsoleLogManager() {\n _classCallCheck(this, ConsoleLogManager);\n\n this.logLevel = LogLevelEnum.NOTSET;\n this.prefix = \"VWO-SDK\";\n this.isColoredLogEnabled = false;\n }\n\n _createClass(ConsoleLogManager, [{\n key: \"log\",\n value: function log(level, message) {\n if (!this.shouldLog(level)) {\n return;\n }\n\n var logMessage;\n\n if (this.isColoredLogEnabled) {\n logMessage = \"\".concat(this.prefix, \" - \").concat(LogLevelColorInfoEnum[level], \" \").concat(getCurrentTime(), \" \").concat(message);\n } else {\n logMessage = \"\".concat(this.prefix, \" - \").concat(LogLevelInfoEnum[level], \" \").concat(getCurrentTime(), \" \").concat(message);\n }\n\n this.consoleLog(level, [logMessage]);\n }\n }, {\n key: \"shouldLog\",\n value: function shouldLog(targetLogLevel) {\n return targetLogLevel >= this.logLevel;\n }\n }, {\n key: \"setLogLevel\",\n value: function setLogLevel(level) {\n if (level === undefined) {\n this.logLevel = LogLevelEnum.ERROR;\n } else {\n this.logLevel = level;\n }\n }\n }, {\n key: \"consoleLog\",\n value: function consoleLog(level, logArguments) {\n switch (level) {\n case LogLevelEnum.INFO:\n console.info.apply(console, logArguments);\n break;\n\n case LogLevelEnum.WARN:\n console.warn.apply(console, logArguments);\n break;\n\n case LogLevelEnum.ERROR:\n console.error.apply(console, logArguments);\n break;\n\n default:\n console.log.apply(console, logArguments);\n break;\n }\n }\n }]);\n\n return ConsoleLogManager;\n}();\n\nmodule.exports = ConsoleLogManager;\n\n/***/ }),\n\n/***/ \"./lib/services/logging/LoggingManager.js\":\n/*!************************************************!*\\\n !*** ./lib/services/logging/LoggingManager.js ***!\n \\************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Took reference from: \"loglevel\" - https://github.com/pimterry/loglevel\n *\n * Name: loglevel\n * Published Name: loglevel\n * URL: https://github.com/pimterry/loglevel\n * Description: Minimal lightweight logging for JavaScript, adding reliable log level methods to wrap any available console.log methods\n * Author: Tim Perry (https://github.com/pimterry)\n * LICENSE: MIT License\n * Local Modifications: This library is not used as a dependency. Source code was referenced and is modified as per requirements.\n *\n */\n// TODO: change path\nvar LogMessageEnum = {\n DEBUG_MESSAGES: __webpack_require__(/*! vwo-sdk-log-messages/src/debug-messages.json */ \"./node_modules/vwo-sdk-log-messages/src/debug-messages.json\"),\n INFO_MESSAGES: __webpack_require__(/*! vwo-sdk-log-messages/src/info-messages.json */ \"./node_modules/vwo-sdk-log-messages/src/info-messages.json\"),\n WARNING_MESSAGES: __webpack_require__(/*! vwo-sdk-log-messages/src/warning-messages.json */ \"./node_modules/vwo-sdk-log-messages/src/warning-messages.json\"),\n ERROR_MESSAGES: __webpack_require__(/*! vwo-sdk-log-messages/src/error-messages.json */ \"./node_modules/vwo-sdk-log-messages/src/error-messages.json\")\n};\n\nvar _require = __webpack_require__(/*! ../../enums/LogLevelEnum */ \"./lib/enums/LogLevelEnum.js\"),\n LogLevelEnum = _require.LogLevelEnum,\n LogNumberLevel = _require.LogNumberLevel;\n\nvar LogMessageUtil = __webpack_require__(/*! ../../utils/LogMessageUtil */ \"./lib/utils/LogMessageUtil.js\");\n\nvar ConsoleLogManager = __webpack_require__(/*! ./ConsoleLogManager */ \"./lib/services/logging/ConsoleLogManager.js\");\n\nvar globalLogLevel = LogLevelEnum.NOTSET;\nvar isColoredLogEnabled = false;\nvar globalLogHandler = new ConsoleLogManager();\n\nvar LogManager =\n/*#__PURE__*/\nfunction () {\n function LogManager(name) {\n _classCallCheck(this, LogManager);\n\n this.name = name;\n this.isColoredLogEnabled = isColoredLogEnabled;\n }\n\n _createClass(LogManager, [{\n key: \"_customLog\",\n value: function _customLog(level, message) {\n if (level < globalLogLevel) {\n return;\n }\n\n globalLogHandler.log(level, message);\n }\n }, {\n key: \"log\",\n value: function log(level, message) {\n var disableLogs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (disableLogs) {\n return;\n }\n\n try {\n this._customLog(level, message);\n } catch (err) {\n console.error('VWO: Could not log.', err);\n }\n }\n }, {\n key: \"info\",\n value: function info(message) {\n this._customLog(LogLevelEnum.INFO, message);\n }\n }, {\n key: \"debug\",\n value: function debug(message) {\n this._customLog(LogLevelEnum.DEBUG, message);\n }\n }, {\n key: \"warn\",\n value: function warn(message) {\n this._customLog(LogLevelEnum.WARN, message);\n }\n }, {\n key: \"error\",\n value: function error(message) {\n this._customLog(LogLevelEnum.ERROR, message);\n }\n }]);\n\n return LogManager;\n}();\n\nfunction getLogger(name) {\n return new LogManager(name);\n}\n\nfunction setLogHandler(logger) {\n globalLogHandler = logger;\n}\n\nfunction setLogLevel(level) {\n if (level === undefined) {\n globalLogLevel = LogLevelEnum.ERROR;\n } else {\n globalLogLevel = level;\n }\n}\n\nfunction getLogLevel() {\n return globalLogLevel;\n}\n\nfunction setLogColorMode(value) {\n isColoredLogEnabled = value;\n globalLogHandler.isColoredLogEnabled = isColoredLogEnabled;\n}\n\nfunction getLogColorMode() {\n return isColoredLogEnabled;\n}\n\nmodule.exports = {\n LogLevelEnum: LogLevelEnum,\n LogNumberLevel: LogNumberLevel,\n LogMessageUtil: LogMessageUtil,\n LogMessageEnum: LogMessageEnum,\n getLogger: getLogger,\n setLogHandler: setLogHandler,\n setLogLevel: setLogLevel,\n getLogLevel: getLogLevel,\n LogManager: LogManager,\n setLogColorMode: setLogColorMode,\n getLogColorMode: getLogColorMode,\n globalLogHandler: globalLogHandler\n};\n\n/***/ }),\n\n/***/ \"./lib/services/logging/index.js\":\n/*!***************************************!*\\\n !*** ./lib/services/logging/index.js ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar logging = __webpack_require__(/*! ./LoggingManager */ \"./lib/services/logging/LoggingManager.js\");\n\nmodule.exports = logging;\n\n/***/ }),\n\n/***/ \"./lib/utils/CampaignUtil.js\":\n/*!***********************************!*\\\n !*** ./lib/utils/CampaignUtil.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar ValidateUtil = __webpack_require__(/*! ./ValidateUtil */ \"./lib/utils/ValidateUtil.js\");\n\nvar VWOFeatureFlags = __webpack_require__(/*! ./VWOFeatureFlags */ \"./lib/utils/VWOFeatureFlags.js\");\n\nvar Constants = __webpack_require__(/*! ../constants */ \"./lib/constants/index.js\");\n\nvar logging = __webpack_require__(/*! ../services/logging */ \"./lib/services/logging/index.js\");\n\nvar FileNameEnum = __webpack_require__(/*! ../enums/FileNameEnum */ \"./lib/enums/FileNameEnum.js\");\n\nvar GoalTypeEnum = __webpack_require__(/*! ../enums/GoalTypeEnum */ \"./lib/enums/GoalTypeEnum.js\");\n\nvar CampaignTypeEnum = __webpack_require__(/*! ../enums/CampaignTypeEnum */ \"./lib/enums/CampaignTypeEnum.js\");\n\nvar LogLevelEnum = logging.LogLevelEnum,\n LogMessageEnum = logging.LogMessageEnum,\n LogMessageUtil = logging.LogMessageUtil;\nvar logger = logging.getLogger();\nvar CampaignUtil = {\n /**\n * Returns the bucket size of variation.\n *\n * @param {Number/Float} - weight of variation\n *\n * @return {Number} bucket start range of Variation\n */\n _getVariationBucketRange: function _getVariationBucketRange(variationWeight) {\n if (!variationWeight || variationWeight === 0) {\n return 0;\n }\n\n var startRange = Math.ceil(variationWeight * 100);\n return Math.min(startRange, Constants.MAX_TRAFFIC_VALUE);\n },\n\n /**\n * Get the campaign on the basis of campaign id\n *\n * @param {Object} settingsFile\n * @param {Number} campaignId\n *\n * @returns {Object} campaign object\n */\n getCampaignBasedOnId: function getCampaignBasedOnId(settingsFile, campaignId) {\n var campaign;\n\n for (var i = 0; i < settingsFile.campaigns.length; i++) {\n if (parseInt(settingsFile.campaigns[i].id, 10) === parseInt(campaignId, 10)) {\n campaign = settingsFile.campaigns[i];\n break;\n }\n }\n\n return campaign;\n },\n\n /**\n * It extracts the weights from all the variations inside the campaign\n and scales them so that the total sum of eligible variations' weights become 100%\n 1. variations\n */\n scaleVariationWeights: function scaleVariationWeights(variations) {\n var totalWeight = variations.reduce(function (acc, variation) {\n return acc + variation.weight;\n }, 0);\n\n if (!totalWeight) {\n var weight = 100 / variations.length;\n variations.forEach(function (variation) {\n return variation.weight = weight;\n });\n } else {\n variations.forEach(function (variation) {\n return variation.weight = variation.weight / totalWeight * 100;\n });\n }\n },\n getCampaign: function getCampaign(settingsFile, campaignKey) {\n var campaign;\n\n for (var i = 0; i < settingsFile.campaigns.length; i++) {\n if (settingsFile.campaigns[i].key === campaignKey) {\n campaign = settingsFile.campaigns[i];\n break;\n }\n }\n\n return campaign;\n },\n\n /**\n * Gets campaigns for corresponding campaignKeys\n *\n * @param {Object} settingsFile\n * @param {Array} campaignKeys\n *\n * @return {Array} Campaigns\n */\n getCampaignsForKeys: function getCampaignsForKeys(settingsFile, campaignKeys) {\n var campaigns = [];\n campaignKeys.forEach(function (key) {\n var campaign = CampaignUtil.getCampaign(settingsFile, key);\n\n if (campaign) {\n campaigns.push(campaign);\n } else {\n campaigns.push({\n key: key\n });\n }\n });\n return campaigns;\n },\n\n /**\n * Gets campaigns which have the goalIdentifier present\n *\n * @param {settingsFile}\n * @param {String} goalIdentifier\n * @param {String} goalTypeToTrack type of goal to track\n *\n * @return {Array} Campaigns\n */\n getCampaignsForGoal: function getCampaignsForGoal(settingsFile, goalIdentifier, goalTypeToTrack) {\n var campaigns = [];\n settingsFile.campaigns.forEach(function (campaign) {\n var goal = CampaignUtil.getCampaignGoal(settingsFile, campaign.key, goalIdentifier);\n\n if (goal && (goalTypeToTrack === GoalTypeEnum.ALL || goal.type === goalTypeToTrack)) {\n campaigns.push(campaign);\n }\n });\n\n if (!campaigns.length) {\n logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.CAMPAIGN_NOT_FOUND_FOR_GOAL, {\n file: FileNameEnum.CampaignUtil,\n goalIdentifier: goalIdentifier\n }));\n }\n\n return campaigns;\n },\n getCampaignStatus: function getCampaignStatus(settingsFile, campaignKey) {\n var campaign = CampaignUtil.getCampaign(settingsFile, campaignKey);\n\n if (!campaign || !campaign.status) {\n // log error\n return '';\n }\n\n return campaign.status.toLowerCase();\n },\n isCampaignRunning: function isCampaignRunning(settingsFile, campaignKey) {\n return CampaignUtil.getCampaignStatus(settingsFile, campaignKey) === 'running';\n },\n\n /**\n * Validates the campaign\n *\n * @param {Campaign} campaign the campaign to be validated\n *\n * @return {Boolean} true is campaign is valid\n */\n validateCampaign: function validateCampaign(campaign) {\n return ValidateUtil.isValidValue(campaign) && campaign.variations && Object.keys(campaign.variations).length > 0;\n },\n\n /**\n * Assigns the buckets to the Variations of the campaign\n * depending on the traffic allocation\n *\n * @param {Campaign} campaign whose Variations are to be allocated\n */\n setVariationAllocation: function setVariationAllocation(campaign) {\n var numberOfVariations = campaign.variations.length;\n var stepFactor = 0;\n\n for (var i = 0, currentAllocation = 0; i < numberOfVariations; i++) {\n var variation = campaign.variations[i];\n stepFactor = CampaignUtil.assignRangeValues(variation, currentAllocation);\n currentAllocation += stepFactor;\n logger.log(LogLevelEnum.DEBUG, LogMessageUtil.build(LogMessageEnum.DEBUG_MESSAGES.VARIATION_RANGE_ALLOCATION, {\n file: FileNameEnum.CampaignUtil,\n campaignKey: campaign.key,\n variationName: variation.name,\n variationWeight: variation.weight,\n start: variation.startVariationAllocation,\n end: variation.endVariationAllocation\n }));\n }\n },\n\n /**\n * Assign range allocation to the campaigns in the list to decide which campaign to choose out of the Mutually Exclusive group\n *\n * @param {Array} campaigns\n */\n setCampaignAllocation: function setCampaignAllocation(campaigns) {\n var stepFactor = 0;\n\n for (var i = 0, currentAllocation = 0; i < campaigns.length; i++) {\n var campaign = campaigns[i];\n stepFactor = CampaignUtil.assignRangeValues(campaign, currentAllocation);\n currentAllocation += stepFactor;\n }\n },\n assignRangeValues: function assignRangeValues(variation, currentAllocation) {\n var stepFactor;\n stepFactor = CampaignUtil._getVariationBucketRange(variation.weight);\n\n if (stepFactor) {\n variation.startVariationAllocation = currentAllocation + 1;\n variation.endVariationAllocation = currentAllocation + stepFactor;\n } else {\n variation.startVariationAllocation = -1;\n variation.endVariationAllocation = -1;\n }\n\n return stepFactor;\n },\n getCampaignGoal: function getCampaignGoal(settingsFile, campaignKey, goalIdentifier) {\n var desiredCampaignGoal = null;\n\n if (!settingsFile || !campaignKey || !goalIdentifier) {\n return desiredCampaignGoal;\n }\n\n var campaign = CampaignUtil.getCampaign(settingsFile, campaignKey);\n\n if (!campaign) {\n return desiredCampaignGoal;\n }\n\n for (var i = 0; i < campaign.goals.length; i++) {\n var goal = campaign.goals[i];\n\n if (goal.identifier === goalIdentifier) {\n desiredCampaignGoal = goal;\n break;\n }\n }\n\n return desiredCampaignGoal;\n },\n getCampaignVariation: function getCampaignVariation(settingsFile, campaignKey, variationName) {\n var desiredVariation = null;\n\n if (!settingsFile || !campaignKey || !variationName) {\n return desiredVariation;\n }\n\n var campaign = CampaignUtil.getCampaign(settingsFile, campaignKey);\n\n if (!campaign) {\n return desiredVariation;\n }\n\n for (var i = 0; i < campaign.variations.length; i++) {\n var variation = campaign.variations[i];\n\n if (variation.name === variationName) {\n desiredVariation = variation;\n break;\n }\n }\n\n return desiredVariation;\n },\n getControlForCampaign: function getControlForCampaign(campaign) {\n var control = {};\n\n if (!campaign || !campaign.variations) {\n return control;\n }\n\n for (var i = 0; i < campaign.variations.length; i++) {\n if (campaign.variations[i].id === 1) {\n control = campaign.variations[i];\n break;\n }\n }\n\n return control;\n },\n isFeatureTestCampaign: function isFeatureTestCampaign(campaign) {\n if (campaign && campaign.type === CampaignTypeEnum.FEATURE_TEST) {\n return true;\n }\n\n return false;\n },\n isFeatureRolloutCampaign: function isFeatureRolloutCampaign(campaign) {\n if (campaign && campaign.type === CampaignTypeEnum.FEATURE_ROLLOUT) {\n return true;\n }\n\n return false;\n },\n isAbCampaign: function isAbCampaign(campaign) {\n if (campaign && campaign.type === CampaignTypeEnum.AB) {\n return true;\n }\n\n return false;\n },\n\n /**\n * Check if the campaign is a part of mutually exclusive group\n *\n * @param {Object} settingsFile\n * @param {Number} campaignId\n *\n * @returns {Number} group id of the campaign.\n */\n isPartOfGroup: function isPartOfGroup(settingsFile, campaignId) {\n if (settingsFile.campaignGroups && Object.prototype.hasOwnProperty.call(settingsFile.campaignGroups, campaignId)) {\n return {\n groupId: settingsFile.campaignGroups[campaignId],\n groupName: settingsFile.groups[settingsFile.campaignGroups[campaignId]].name\n };\n }\n\n return {};\n },\n\n /**\n * Get the list of campaigns on the basis of their id\n *\n * @param {Object} settingsFile\n * @param {Number} groupId\n *\n * @returns {Array} list of campaigns\n */\n getGroupCampaigns: function getGroupCampaigns(settingsFile, groupId) {\n var campaigns = [];\n\n if (Object.prototype.hasOwnProperty.call(settingsFile.groups, groupId)) {\n settingsFile.groups[groupId].campaigns.forEach(function (campaignId) {\n var campaign = CampaignUtil.getCampaignBasedOnId(settingsFile, campaignId);\n\n if (campaign) {\n campaigns.push(campaign);\n }\n });\n }\n\n return campaigns;\n },\n\n /**\n * Decide the Seed for murmurhash to bucket user.\n * @param {string} userId\n * @param {object} campaign\n * @param {number} groupId\n *\n * @returns {string} Seed value\n */\n getBucketingSeed: function getBucketingSeed(userId, campaign, groupId) {\n if (groupId) {\n return \"\".concat(groupId, \"_\").concat(userId);\n }\n\n var isNB = VWOFeatureFlags.getAll().isNB;\n var isNBv2 = VWOFeatureFlags.getAll().isNBv2;\n\n if (isNB || isNBv2 || campaign && campaign.isBucketingSeedEnabled) {\n return \"\".concat(campaign.id, \"_\").concat(userId);\n } else {\n return userId;\n }\n }\n};\nmodule.exports = CampaignUtil;\n\n/***/ }),\n\n/***/ \"./lib/utils/DataTypeUtil.js\":\n/*!***********************************!*\\\n !*** ./lib/utils/DataTypeUtil.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar DataTypeUtil = {\n _toStringValue: function _toStringValue(val) {\n return Object.prototype.toString.call(val);\n },\n isNumber: function isNumber(val) {\n return DataTypeUtil._toStringValue(val) === '[object Number]';\n },\n isString: function isString(val) {\n return DataTypeUtil._toStringValue(val) === '[object String]';\n },\n isObject: function isObject(val) {\n return DataTypeUtil._toStringValue(val) === '[object Object]';\n },\n isFunction: function isFunction(val) {\n return DataTypeUtil._toStringValue(val) === '[object Function]';\n },\n isBoolean: function isBoolean(val) {\n return DataTypeUtil._toStringValue(val) === '[object Boolean]';\n },\n isPromise: function isPromise(val) {\n return DataTypeUtil._toStringValue(val) === '[object Promise]';\n },\n isUndefined: function isUndefined(val) {\n return DataTypeUtil._toStringValue(val) === '[object Undefined]' || // A third-party library sometimes overrides and returns [object Window]\n // therefore, adding a fallback as well\n typeof val === 'undefined';\n },\n isNull: function isNull(val) {\n return DataTypeUtil._toStringValue(val) === '[object Null]';\n },\n isArray: function isArray(val) {\n return DataTypeUtil._toStringValue(val) === '[object Array]';\n }\n};\nmodule.exports = DataTypeUtil;\n\n/***/ }),\n\n/***/ \"./lib/utils/DecisionUtil.js\":\n/*!***********************************!*\\\n !*** ./lib/utils/DecisionUtil.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar VariationDecider = __webpack_require__(/*! ../core/VariationDecider */ \"./lib/core/VariationDecider.js\");\n\nvar BucketingService = __webpack_require__(/*! ../core/BucketingService */ \"./lib/core/BucketingService.js\");\n\nvar CampaignUtil = __webpack_require__(/*! ./CampaignUtil */ \"./lib/utils/CampaignUtil.js\");\n\nvar DataTypeUtil = __webpack_require__(/*! ./DataTypeUtil */ \"./lib/utils/DataTypeUtil.js\");\n\nvar FunctionUtil = __webpack_require__(/*! ./FunctionUtil */ \"./lib/utils/FunctionUtil.js\");\n\nvar logging = __webpack_require__(/*! ../services/logging */ \"./lib/services/logging/index.js\");\n\nvar FileNameEnum = __webpack_require__(/*! ../enums/FileNameEnum */ \"./lib/enums/FileNameEnum.js\");\n\nvar StatusEnum = __webpack_require__(/*! ../enums/StatusEnum */ \"./lib/enums/StatusEnum.js\");\n\nvar LogLevelEnum = logging.LogLevelEnum,\n LogMessageEnum = logging.LogMessageEnum,\n LogMessageUtil = logging.LogMessageUtil;\nvar logger = logging.getLogger();\n\nvar SegmentEvaluator = __webpack_require__(/*! ../core/SegmentEvaluator */ \"./lib/core/SegmentEvaluator.js\");\n\nvar HooksManager = __webpack_require__(/*! ../services/HooksManager */ \"./lib/services/HooksManager.js\");\n\nvar HooksEnum = __webpack_require__(/*! ../enums/HooksEnum */ \"./lib/enums/HooksEnum.js\");\n\nvar UuidUtil = __webpack_require__(/*! ./UuidUtil */ \"./lib/utils/UuidUtil.js\");\n\nvar Constants = __webpack_require__(/*! ../constants */ \"./lib/constants/index.js\");\n\nvar CampaignTypeEnum = __webpack_require__(/*! ../enums/CampaignTypeEnum */ \"./lib/enums/CampaignTypeEnum.js\");\n\nvar ApiEnum = __webpack_require__(/*! ../enums/ApiEnum */ \"./lib/enums/ApiEnum.js\");\n\nvar RandomAlgo = 1;\nvar file = FileNameEnum.DecisionUtil;\nvar SegmentationTypeEnum = {\n WHITELISTING: 'whitelisting',\n PRE_SEGMENTATION: 'pre-segmentation'\n};\nvar DecisionUtil = {\n // PUBLIC METHODS\n\n /**\n * 1. Checks if there is a variation stored in userStorage, returns it\n * 2. If Whitelisting is applicable, evaluate it, if any eligible variation is found, store it in User Storage service and return, otherwise skip it.\n * 3. Check if the campaign is part of mutually exclusive group, if yes, get the winner campaign using campaign traffic normalization.\n * 4. If Pre-segmentation is applied and passes then go further otherwise return early and no further processing\n * 5. If no user storage value, no whitelisted variation and pre-segmentation evaluates to true, get variation using hashing logic if campaign traffic passes for that userId\n *\n *\n * @param {Object} config\n * @param {Object} settingsFile\n * @param {Object} campaign\n * @param {Object} campaignKey\n * @param {String} userId\n * @param {Object} customVariables\n * @param {Object} variationTargetingVariables\n *\n * @return {Object|null} - Object if a variation is assigned, otherwise null\n */\n getVariation: function getVariation(config, settingsFile, campaign, campaignKey, userId, customVariables) {\n var variationTargetingVariables = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};\n var userStorageData = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : {};\n var metaData = arguments.length > 8 ? arguments[8] : undefined;\n var isTrackUserAPI = arguments.length > 9 ? arguments[9] : undefined;\n var isTrackGoalAPI = arguments.length > 10 ? arguments[10] : undefined;\n var newGoalIdentifier = arguments.length > 11 ? arguments[11] : undefined;\n var api = arguments.length > 12 && arguments[12] !== undefined ? arguments[12] : '';\n var vwoUserId = UuidUtil.generateFor(userId, settingsFile.accountId);\n logger.log(LogLevelEnum.DEBUG, LogMessageUtil.build(LogMessageEnum.DEBUG_MESSAGES.USER_UUID, {\n file: FileNameEnum.UuidUtil,\n userId: userId,\n accountId: settingsFile.accountId,\n uuid: vwoUserId\n }));\n var decision = {\n // campaign info\n campaignId: campaign.id,\n campaignKey: campaignKey,\n campaignType: campaign.type,\n campaignName: campaign.name,\n // campaign segmentation conditions\n customVariables: customVariables,\n // event name\n event: HooksEnum.DECISION_TYPES.CAMPAIGN_DECISION,\n // goal tracked in case of track API\n goalIdentifier: newGoalIdentifier,\n // campaign whitelisting flag\n isForcedVariationEnabled: campaign.isForcedVariationEnabled,\n sdkVersion: Constants.SDK_VERSION,\n // API name which triggered the event\n source: api,\n // Passed in API\n userId: userId,\n // Campaign Whitelisting conditions\n variationTargetingVariables: variationTargetingVariables,\n // VWO generated UUID based on passed UserId and Account ID\n vwoUserId: vwoUserId\n }; // check if the campaign is a part of group\n\n var _CampaignUtil$isPartO = CampaignUtil.isPartOfGroup(settingsFile, campaign.id),\n groupId = _CampaignUtil$isPartO.groupId,\n groupName = _CampaignUtil$isPartO.groupName;\n\n if (groupId) {\n // append groupId and groupName, if campaign is a part of group\n decision['groupId'] = groupId;\n decision['groupName'] = groupName;\n }\n\n variationTargetingVariables = Object.assign({}, variationTargetingVariables, {\n _vwoUserId: campaign.isUserListEnabled ? vwoUserId : userId\n }); // check if tbe campaign satisfies the whitelisting before checking for the group\n\n var whitelistedVariation = DecisionUtil._checkForWhitelisting(config, campaign, campaignKey, userId, variationTargetingVariables, decision);\n\n if (whitelistedVariation) {\n if (DataTypeUtil.isPromise(whitelistedVariation)) {\n return whitelistedVariation.then(function (data) {\n if (Object.keys(data).length > 0) {\n return data;\n }\n });\n } else {\n return whitelistedVariation;\n }\n } // check if the campaign is present in the storage before checking for the group\n\n\n var storedVariation; // check if asyncStorage, if yes then synchronously get the data and return promise\n\n if (config.asyncStorageConfig) {\n return new Promise(function (resolve) {\n return DecisionUtil._checkForUserStorage(config, settingsFile, campaign, campaignKey, userId, userStorageData, isTrackUserAPI, decision).then(function (response) {\n if (response && DataTypeUtil.isObject(response) && Object.keys(response).length > 0) {\n resolve(Object.assign({}, {\n isStoredVariation: true\n }, response));\n } else if (isTrackGoalAPI) {\n resolve(Object.assign({}));\n } else {\n var variationWithoutStorageLookup = DecisionUtil.evaluateAndGetVariationWithoutStorage(config, settingsFile, campaign, campaignKey, userId, customVariables, variationTargetingVariables, userStorageData, metaData, isTrackUserAPI, newGoalIdentifier, decision, groupId, groupName);\n resolve(variationWithoutStorageLookup);\n }\n });\n });\n } else {\n storedVariation = DecisionUtil._checkForUserStorage(config, settingsFile, campaign, campaignKey, userId, userStorageData, isTrackUserAPI, decision);\n }\n\n if (storedVariation) {\n return storedVariation;\n }\n\n return DecisionUtil.evaluateAndGetVariationWithoutStorage(config, settingsFile, campaign, campaignKey, userId, customVariables, variationTargetingVariables, userStorageData, metaData, isTrackUserAPI, newGoalIdentifier, decision, groupId, groupName);\n },\n evaluateAndGetVariationWithoutStorage: function evaluateAndGetVariationWithoutStorage(config, settingsFile, campaign, campaignKey, userId, customVariables, variationTargetingVariables, userStorageData, metaData, isTrackUserAPI, newGoalIdentifier, decision, groupId, groupName) {\n // check if the called campaign satisfies the pre-segmentation before further processing.\n if (!(DecisionUtil._checkForPreSegmentation(campaign, campaignKey, userId, customVariables, decision) && BucketingService.isUserPartOfCampaign(userId, campaign, true))) {\n return {};\n }\n\n if (groupId) {\n // mutually exclusive group exists\n // get the list of the all the campaigns in a group\n var campaignList = CampaignUtil.getGroupCampaigns(settingsFile, groupId);\n\n if (campaignList.length === 0) {\n // return if no campaigns are active in a group\n return {};\n } // checking other campaigns for whitelisting and user storage.\n\n\n var isWhitelistedOrStoredVariation = DecisionUtil._checkForStorageAndWhitelisting(config, settingsFile, groupName, campaignList, campaign, userId, userStorageData, variationTargetingVariables, isTrackUserAPI);\n\n if (isWhitelistedOrStoredVariation) {\n // other campaigns satisfy the whitelisting or storage, therfore returning\n logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.MEG_CALLED_CAMPAIGN_NOT_WINNER, {\n userId: userId,\n groupName: groupName,\n file: file,\n campaignKey: campaignKey\n }));\n\n if (DataTypeUtil.isPromise(isWhitelistedOrStoredVariation)) {\n return new Promise(function (resolve) {\n resolve(Object.assign({}));\n });\n }\n\n return {};\n } // none of the group campaigns satisfy whitelisting or user storage\n // check each campaign for pre-segmentation and traffic allocation.\n\n\n var inEligibleCampaignKeys = '';\n var eligibleCampaignKeys = '';\n\n var _DecisionUtil$getElig = DecisionUtil.getEligbleCampaigns(campaignList, userId, customVariables),\n eligibleCampaigns = _DecisionUtil$getElig.eligibleCampaigns,\n inEligibleCampaigns = _DecisionUtil$getElig.inEligibleCampaigns;\n\n inEligibleCampaigns.forEach(function (campaign) {\n inEligibleCampaignKeys = inEligibleCampaignKeys + campaign.key + ',';\n });\n eligibleCampaigns.forEach(function (campaign) {\n eligibleCampaignKeys = eligibleCampaignKeys + campaign.key + ',';\n });\n logger.log(LogLevelEnum.DEBUG, LogMessageUtil.build(LogMessageEnum.DEBUG_MESSAGES.MEG_ELIGIBLE_CAMPAIGNS, {\n userId: userId,\n groupName: groupName,\n file: file,\n eligibleCampaignKeys: eligibleCampaignKeys.slice(0, -1),\n inEligibleText: inEligibleCampaignKeys === '' ? 'no campaigns' : \"campaigns: \".concat(inEligibleCampaignKeys.slice(0, -1))\n }));\n logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.MEG_ELIGIBLE_CAMPAIGNS, {\n userId: userId,\n groupName: groupName,\n file: file,\n noOfEligibleCampaigns: eligibleCampaigns.length,\n noOfGroupCampaigns: inEligibleCampaigns.length + eligibleCampaigns.length\n })); // Whether normalised/random implementation has to be done or advanced\n\n var megAlgoNumber = typeof settingsFile.groups[groupId].et !== 'undefined' ? settingsFile.groups[groupId].et : RandomAlgo;\n\n if (eligibleCampaigns.length === 1) {\n // if the called campaign is the only winner.\n return DecisionUtil.evaluateTrafficAndGetVariation(config, eligibleCampaigns[0], eligibleCampaigns[0].key, userId, metaData, newGoalIdentifier, decision);\n } else {\n if (megAlgoNumber === RandomAlgo) {\n // normalize the eligible campaigns and decide winner\n return DecisionUtil._normalizeAndFindWinningCampaign(config, campaign, eligibleCampaigns, userId, groupName, groupId, metaData, newGoalIdentifier, decision);\n } else {\n return DecisionUtil._advancedAlgoFindWinningCampaign(config, settingsFile, campaign, eligibleCampaigns, userId, groupName, groupId, metaData, newGoalIdentifier, decision);\n }\n }\n } else {\n // campaign is not a part of mutually exclusive group\n // check if the user is eligible to become part of the campaign and assign variation.\n return DecisionUtil.evaluateTrafficAndGetVariation(config, campaign, campaignKey, userId, metaData, newGoalIdentifier, decision);\n }\n },\n // PRIVATE METHODS\n _evaluateWhitelisting: function _evaluateWhitelisting(campaign, campaignKey, userId, variationTargetingVariables) {\n var disableLogs = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n var whitelistedVariation;\n var status;\n var targetedVariations = [];\n campaign.variations.forEach(function (variation) {\n if (DataTypeUtil.isObject(variation.segments) && !Object.keys(variation.segments).length) {\n logger.log(LogLevelEnum.DEBUG, LogMessageUtil.build(LogMessageEnum.DEBUG_MESSAGES.SEGMENTATION_SKIPPED, {\n campaignKey: campaignKey,\n userId: userId,\n file: file,\n variation: campaign.type === CampaignTypeEnum.FEATURE_ROLLOUT ? '' : \", for \".concat(variation.name)\n }), disableLogs);\n return;\n }\n\n if (DataTypeUtil.isObject(variation.segments) && SegmentEvaluator(variation.segments, variationTargetingVariables, campaignKey, userId, variation.name)) {\n status = StatusEnum.PASSED;\n targetedVariations.push(FunctionUtil.cloneObject(variation));\n } else {\n status = StatusEnum.FAILED;\n }\n\n logger.log(LogLevelEnum.DEBUG, LogMessageUtil.build(LogMessageEnum.DEBUG_MESSAGES.SEGMENTATION_STATUS, {\n campaignKey: campaignKey,\n userId: userId,\n customVariables: JSON.stringify(variationTargetingVariables),\n file: file,\n status: status,\n segmentationType: SegmentationTypeEnum.WHITELISTING,\n variation: campaign.type === CampaignTypeEnum.FEATURE_ROLLOUT && status === StatusEnum.PASSED ? 'and becomes part of the rollout' : \"for \".concat(variation.name)\n }), disableLogs);\n });\n\n if (targetedVariations.length > 1) {\n CampaignUtil.scaleVariationWeights(targetedVariations);\n\n for (var i = 0, currentAllocation = 0, stepFactor = 0; i < targetedVariations.length; i++) {\n stepFactor = CampaignUtil.assignRangeValues(targetedVariations[i], currentAllocation);\n currentAllocation += stepFactor;\n }\n\n whitelistedVariation = BucketingService._getVariation(targetedVariations, BucketingService.calculateBucketValue(CampaignUtil.getBucketingSeed(userId, campaign)));\n } else {\n whitelistedVariation = targetedVariations[0];\n }\n\n if (whitelistedVariation) {\n return {\n variation: whitelistedVariation,\n variationName: whitelistedVariation.name,\n variationId: whitelistedVariation.id\n };\n }\n },\n\n /**\n * Get the User Variation mapping by calling get method of UserStorageService being provided\n *\n * @param {Object} config\n * @param {String} UserID\n * @param {String} campaignKey\n *\n * @return {Object} - User Campaign Mapping\n */\n _getStoredUserData: function _getStoredUserData(config, userId, campaignKey, userStorageData, disableLogs) {\n var userStorageMap = {\n userId: userId,\n variationName: null,\n campaignKey: campaignKey,\n goalIdentifier: null\n };\n\n if (!config.userStorageService) {\n logger.log(LogLevelEnum.DEBUG, LogMessageUtil.build(LogMessageEnum.DEBUG_MESSAGES.USER_STORAGE_SERVICE_NOT_CONFIGURED, {\n file: file\n }), disableLogs);\n return userStorageMap;\n }\n\n if (config.asyncStorageConfig) {\n try {\n return config.userStorageService.get(userId, campaignKey).then(function (data) {\n // if data found\n logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.GETTING_DATA_USER_STORAGE_SERVICE, {\n file: file,\n userId: userId,\n campaignKey: campaignKey\n }), disableLogs);\n var finalData = Object.assign({}, data, userStorageData);\n return finalData;\n })[\"catch\"](function (_error) {\n // TODO: add log for failed fetch\n console.log('Failed to fetch data from Storage Service', _error);\n });\n } catch (err) {\n // if no data found\n logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.USER_STORAGE_SERVICE_GET_FAILED, {\n file: file,\n userId: userId,\n error: err\n }), disableLogs);\n }\n } else {\n try {\n var data = config.userStorageService.get(userId, campaignKey) || {}; // if data found\n\n logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.GETTING_DATA_USER_STORAGE_SERVICE, {\n file: file,\n userId: userId,\n campaignKey: campaignKey\n }), disableLogs);\n return Object.assign({}, data, userStorageData);\n } catch (err) {\n // if no data found\n logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.USER_STORAGE_SERVICE_GET_FAILED, {\n file: file,\n userId: userId,\n error: err\n }), disableLogs);\n }\n }\n },\n\n /**\n * If UserStorageService is provided and variation was stored, save the assigned variation\n *\n * @param {Object} campaign\n * @param {String} variationName\n * @param {String} userId\n *\n * @return {Boolean} - true if found otherwise false\n */\n _saveUserData: function _saveUserData(config, campaign, variationName, userId, metaData, goalIdentifier) {\n var isSaved = false;\n\n if (!config.userStorageService) {\n logger.log(LogLevelEnum.DEBUG, LogMessageUtil.build(LogMessageEnum.DEBUG_MESSAGES.USER_STORAGE_SERVICE_NOT_CONFIGURED, {\n file: file\n }));\n return isSaved;\n }\n\n try {\n var properties = {\n userId: userId,\n variationName: variationName,\n campaignKey: campaign.key\n };\n\n if (!DataTypeUtil.isUndefined(goalIdentifier)) {\n properties.goalIdentifier = goalIdentifier;\n }\n\n if (!DataTypeUtil.isUndefined(metaData)) {\n properties.metaData = metaData;\n }\n\n config.userStorageService.set(properties);\n logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.SETTING_DATA_USER_STORAGE_SERVICE, {\n file: file,\n userId: userId,\n campaignKey: campaign.key\n }));\n isSaved = true;\n } catch (err) {\n logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.USER_STORAGE_SERVICE_SET_FAILED, {\n file: file,\n userId: userId,\n error: err\n }));\n isSaved = false;\n }\n\n return isSaved;\n },\n\n /**\n * Evaluate the campaign for whitelisting and store\n * This method would be run only for MEG campaigns\n *\n * @param {Object} config\n * @param {Object} settingsFile\n * @param {Array} campaignList\n * @param {Object} calledCampaign\n * @param {String} userId\n * @param {Object} userStorageData\n * @param {Object} variationTargetingVariables\n * @param {Boolean} isTrackUserAPI\n *\n * @returns {Boolean} - true, if whitelisting/storage is satisfied for any campaign\n */\n _checkForStorageAndWhitelisting: function _checkForStorageAndWhitelisting(config, settingsFile, groupName, campaignList, calledCampaign, userId, userStorageData, variationTargetingVariables, isTrackUserAPI) {\n var otherCampaignWinner = false;\n campaignList.some(function (groupCampaign) {\n if (groupCampaign.id === calledCampaign.id) {\n return;\n } // create a local copy of the campaigns\n // groupCampaign = FunctionUtil.cloneObject(groupCampaign);\n // checking other campaigns for whitelisting or user storage.\n\n\n var whitelistedVariation = DecisionUtil._checkForWhitelisting(config, groupCampaign, groupCampaign.key, userId, variationTargetingVariables);\n\n if (whitelistedVariation) {\n if (DataTypeUtil.isPromise(whitelistedVariation)) {\n return whitelistedVariation.then(function (data) {\n otherCampaignWinner = true;\n logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.OTHER_CAMPAIGN_SATISFIES_WHITELISTING_STORAGE, {\n file: file,\n campaignKey: groupCampaign.key,\n groupName: groupName,\n userId: userId,\n type: 'whitelisting'\n }));\n return new Promise(function (resolve) {\n resolve(true);\n });\n });\n } else {\n // other campaign satisfy the whitelisting\n otherCampaignWinner = true;\n logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.OTHER_CAMPAIGN_SATISFIES_WHITELISTING_STORAGE, {\n file: file,\n campaignKey: groupCampaign.key,\n groupName: groupName,\n userId: userId,\n type: 'whitelisting'\n }));\n return true;\n }\n }\n\n var storedVariation = DecisionUtil._checkForUserStorage(config, settingsFile, groupCampaign, groupCampaign.key, userId, userStorageData, isTrackUserAPI);\n\n if (storedVariation && DataTypeUtil.isPromise(storedVariation)) {\n otherCampaignWinner = true;\n logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.OTHER_CAMPAIGN_SATISFIES_WHITELISTING_STORAGE, {\n file: file,\n campaignKey: groupCampaign.key,\n groupName: groupName,\n userId: userId,\n type: 'user storage'\n })); // return true;\n\n return new Promise(function (resolve) {\n resolve(true);\n });\n }\n\n if (storedVariation && DataTypeUtil.isObject(storedVariation) && Object.keys(storedVariation).length > 0) {\n // other campaign satisfy the user storage\n otherCampaignWinner = true;\n logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.OTHER_CAMPAIGN_SATISFIES_WHITELISTING_STORAGE, {\n file: file,\n campaignKey: groupCampaign.key,\n groupName: groupName,\n userId: userId,\n type: 'user storage'\n }));\n return true;\n }\n });\n\n if (config.asyncStorageConfig) {\n return new Promise(function (resolve) {\n resolve(otherCampaignWinner);\n });\n }\n\n return otherCampaignWinner;\n },\n\n /**\n * Evaluate a campaign for pre-segmentation.\n *\n * @param {Object} campaign\n * @param {String} campaignKey\n * @param {String} userId\n * @param {Object} customVariables\n * @param {Object} decision\n *\n * @returns {Boolean} true, if the pre-segmentation is satisfied.\n */\n _checkForPreSegmentation: function _checkForPreSegmentation(campaign, campaignKey, userId, customVariables, decision) {\n var status;\n\n if (DataTypeUtil.isObject(campaign.segments) && !Object.keys(campaign.segments).length) {\n logger.log(LogLevelEnum.DEBUG, LogMessageUtil.build(LogMessageEnum.DEBUG_MESSAGES.SEGMENTATION_SKIPPED, {\n campaignKey: campaignKey,\n userId: userId,\n file: file\n }), !decision);\n return true;\n } else {\n var preSegmentationResult = SegmentEvaluator(campaign.segments, customVariables, campaignKey, userId, !decision);\n\n if (!preSegmentationResult) {\n status = StatusEnum.FAILED;\n } else {\n status = StatusEnum.PASSED;\n }\n\n logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.SEGMENTATION_STATUS, {\n campaignKey: campaignKey,\n userId: userId,\n customVariables: JSON.stringify(customVariables || {}),\n file: file,\n status: status,\n segmentationType: SegmentationTypeEnum.PRE_SEGMENTATION,\n variation: ''\n }), !decision);\n\n if (status === StatusEnum.FAILED) {\n return false;\n } else {\n return true;\n }\n }\n },\n\n /**\n * Check if user is eligible for the camapign based on traffic percentage and assign variation.\n * @param {Object} config\n * @param {Object} campaign\n * @param {String} campaignKey\n * @param {String} userId\n * @param {Object} metaData\n * @param {String} newGoalIdentifier\n * @param {Object} decision\n * @returns {Object} variation assigned to the user\n */\n evaluateTrafficAndGetVariation: function evaluateTrafficAndGetVariation(config, campaign, campaignKey, userId, metaData, newGoalIdentifier, decision) {\n var variation, variationName, variationId; // Use our core's VariationDecider utility to get the deterministic variation assigned to the userId for that campaign\n\n var _VariationDecider$get = VariationDecider.getVariationAllotted(userId, campaign, config.settingsFile.accountId);\n\n variation = _VariationDecider$get.variation;\n variationName = _VariationDecider$get.variationName;\n variationId = _VariationDecider$get.variationId;\n logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.USER_VARIATION_ALLOCATION_STATUS, {\n file: file,\n campaignKey: campaignKey,\n userId: userId,\n status: variationName ? \"got variation:\".concat(variationName) : 'did not get any variation'\n })); // Check if variation-name has been assigned to the userId. If not, return no variation\n\n if (variationName) {\n // If userStorageService is provided, look into it for the saved variation for the campaign and userId\n DecisionUtil._saveUserData(config, campaign, variationName, userId, metaData, newGoalIdentifier);\n } // Executing the callback when SDK makes the decision\n\n\n HooksManager.execute(Object.assign({\n fromUserStorageService: false,\n isUserWhitelisted: false\n }, campaign.type === CampaignTypeEnum.FEATURE_ROLLOUT ? {\n isFeatureEnabled: !!variationName\n } : {\n variationName: variationName,\n variationId: variationId\n }, decision));\n return {\n variation: variation && variation.variation,\n variationName: variationName,\n variationId: variationId\n };\n },\n\n /**\n * Evaluate a campaign for whitelisting\n *\n * @param {Object} campaign\n * @param {String} campaignKey\n * @param {String} userId\n * @param {Object} variationTargetingVariables\n * @param {Object} decision\n *\n * @returns {Object} whitelisted variation\n */\n _checkForWhitelisting: function _checkForWhitelisting(config, campaign, campaignKey, userId, variationTargetingVariables, decision) {\n var status;\n var variationName, variationId;\n\n if (campaign.isForcedVariationEnabled) {\n var whitelistingResult = DecisionUtil._evaluateWhitelisting(campaign, campaignKey, userId, variationTargetingVariables, !decision);\n\n var variationString;\n\n if (whitelistingResult) {\n status = StatusEnum.PASSED;\n variationString = whitelistingResult.variationName;\n } else {\n status = StatusEnum.FAILED;\n variationString = '';\n }\n\n logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.SEGMENTATION_STATUS, {\n campaignKey: campaignKey,\n userId: userId,\n customVariables: JSON.stringify(variationTargetingVariables),\n file: file,\n status: status,\n segmentationType: SegmentationTypeEnum.WHITELISTING,\n variation: campaign.type === CampaignTypeEnum.FEATURE_ROLLOUT ? '' : \"for variation: \".concat(variationString)\n }), !decision);\n\n if (whitelistingResult) {\n variationName = whitelistingResult.variationName;\n variationId = whitelistingResult.variationId; // Executing the callback when SDK has made a decision in case of whitelisting\n\n if (decision) {\n HooksManager.execute(Object.assign({\n fromUserStorageService: false,\n isUserWhitelisted: !!variationName\n }, campaign.type === CampaignTypeEnum.FEATURE_ROLLOUT ? {\n isFeatureEnabled: !!variationName\n } : {\n variationName: variationName,\n variationId: variationId\n }, decision));\n }\n\n if (config.asyncStorageConfig) {\n return new Promise(function (resolve) {\n return resolve(whitelistingResult);\n });\n }\n\n return whitelistingResult;\n }\n } else {\n logger.log(LogLevelEnum.DEBUG, LogMessageUtil.build(LogMessageEnum.DEBUG_MESSAGES.WHITELISTING_SKIPPED, {\n campaignKey: campaignKey,\n userId: userId,\n file: file\n }), !decision);\n }\n },\n\n /**\n * Check if the variation is present in the user storage\n *\n * @param {Object} config\n * @param {Object} settingsFile\n * @param {Object} campaign\n * @param {String} campaignKey\n * @param {String} userId\n * @param {Object} userStorageData\n * @param {Boolean} isTrackUserAPI\n * @param {Object} decision\n *\n * @returns {Object} stored variaition\n */\n _checkForUserStorage: function _checkForUserStorage(config, settingsFile, campaign, campaignKey, userId, userStorageData, isTrackUserAPI, decision) {\n var userData;\n\n if (config.asyncStorageConfig) {\n return DecisionUtil._getStoredUserData(config, userId, campaignKey, userStorageData, !decision).then(function (userData) {\n userData = userData || {\n variationName: null,\n goalIdentifier: null\n };\n return DecisionUtil._processAfterGettingFromStorage(config, settingsFile, campaign, campaignKey, userId, isTrackUserAPI, decision, userData);\n });\n } else {\n userData = DecisionUtil._getStoredUserData(config, userId, campaignKey, userStorageData, !decision);\n return DecisionUtil._processAfterGettingFromStorage(config, settingsFile, campaign, campaignKey, userId, isTrackUserAPI, decision, userData);\n }\n },\n _processAfterGettingFromStorage: function _processAfterGettingFromStorage(config, settingsFile, campaign, campaignKey, userId, isTrackUserAPI, decision, userData) {\n var variationName = userData.variationName,\n goalIdentifier = userData.goalIdentifier;\n var storedVariation;\n\n if (userData && userData.campaignKey && variationName) {\n storedVariation = CampaignUtil.getCampaignVariation(settingsFile, campaignKey, variationName);\n } else {\n // Log if stored variation is not found even after implementing UserStorageService\n logger.log(LogLevelEnum.DEBUG, LogMessageUtil.build(LogMessageEnum.DEBUG_MESSAGES.USER_STORAGE_SERVICE_NO_STORED_DATA, {\n file: file,\n campaignKey: campaignKey,\n userId: userId\n }), !decision);\n }\n\n var variationId; // If stored variation is found, simply return the same\n\n if (storedVariation) {\n variationName = storedVariation.name;\n variationId = storedVariation.id;\n logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.GOT_STORED_VARIATION, {\n file: file,\n campaignKey: campaignKey,\n userId: userId,\n variationName: variationName\n }), !decision); // Executing the callback when SDK gets the decision from user storage service\n\n if (decision) {\n HooksManager.execute(Object.assign({\n fromUserStorageService: !!variationName,\n isUserWhitelisted: false\n }, campaign.type === CampaignTypeEnum.FEATURE_ROLLOUT ? {\n isFeatureEnabled: !!variationName\n } : {\n variationName: variationName,\n variationId: variationId\n }, decision));\n }\n\n return {\n variation: storedVariation,\n variationName: variationName,\n variationId: variationId,\n storedGoalIdentifier: goalIdentifier,\n isStoredVariation: true\n };\n } else if (!DataTypeUtil.isUndefined(config.userStorageService) && !isTrackUserAPI && DataTypeUtil.isUndefined(storedVariation)) {\n logger.log(LogLevelEnum.WARN, LogMessageUtil.build(LogMessageEnum.WARNING_MESSAGES.CAMPAIGN_NOT_ACTIVATED, {\n file: file,\n campaignKey: campaignKey,\n userId: userId,\n api: config.apiName\n }), !decision);\n logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.CAMPAIGN_NOT_ACTIVATED, {\n file: file,\n campaignKey: campaignKey,\n userId: userId,\n reason: config.apiName === ApiEnum.TRACK ? 'track it' : 'get the decision/value'\n }), !decision);\n return {};\n }\n },\n\n /**\n * Evaluate the list of campaigns for pre-segmentation and campaign traffic allocation and assign variation to the user.\n * This method will be used for MEG campaigns\n *\n * @param {Object} config\n * @param {Array} campaignList\n * @param {String} userId\n * @param {Object} customVariables\n * @param {Object} metaData\n * @param {String} newGoalIdentifier\n *\n * @returns {Array} list of campaigns which satisfies the conditions.\n */\n getEligbleCampaigns: function getEligbleCampaigns(campaignList, userId, customVariables) {\n var eligibleCampaigns = [];\n var inEligibleCampaigns = [];\n campaignList.forEach(function (groupCampaign) {\n var isPartOfCampaign = DecisionUtil._checkForPreSegmentation(groupCampaign, groupCampaign.key, userId, customVariables) && BucketingService.isUserPartOfCampaign(userId, groupCampaign, true);\n\n if (isPartOfCampaign) {\n groupCampaign = FunctionUtil.cloneObject(groupCampaign); // campaign satisfies the pre-segmentation\n\n eligibleCampaigns.push(groupCampaign);\n } else {\n inEligibleCampaigns.push(groupCampaign);\n }\n });\n return {\n eligibleCampaigns: eligibleCampaigns,\n inEligibleCampaigns: inEligibleCampaigns\n };\n },\n\n /**\n * Equally distribute the traffic of campaigns and assign a winner campaign by murmur hash.\n *\n * @param {Object} config\n * @param {Object} calledCampaign\n * @param {Array} shortlistedCampaigns\n * @param {String} userId\n * @param {Object} metaData\n * @param {String} newGoalIdentifier\n * @param {Object} decision\n *\n * @returns {Object} variation of the winner campaign\n */\n _normalizeAndFindWinningCampaign: function _normalizeAndFindWinningCampaign(config, calledCampaign, shortlistedCampaigns, userId, groupName, groupId, metaData, newGoalIdentifier, decision) {\n // normalise the weights of all the shortlisted campaigns\n shortlistedCampaigns.forEach(function (campaign) {\n campaign.weight = Math.floor(100 / shortlistedCampaigns.length);\n }); // re-distribute the traffic for each camapign\n\n CampaignUtil.setCampaignAllocation(shortlistedCampaigns);\n\n var winnerCampaign = BucketingService._getVariation(shortlistedCampaigns, BucketingService.calculateBucketValue(CampaignUtil.getBucketingSeed(userId, undefined, groupId)));\n\n logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.MEG_GOT_WINNER_CAMPAIGN, {\n userId: userId,\n groupName: groupName,\n file: file,\n campaignKey: winnerCampaign.key\n }));\n\n if (winnerCampaign.id === calledCampaign.id) {\n // if called campaign is the winner campaign, get the variation for the campaign\n return DecisionUtil.evaluateTrafficAndGetVariation(config, winnerCampaign, winnerCampaign.key, userId, metaData, newGoalIdentifier, decision);\n } else {\n // if winning campaign not the called camapaign, return\n logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.MEG_CALLED_CAMPAIGN_NOT_WINNER, {\n userId: userId,\n groupName: groupName,\n file: file,\n campaignKey: calledCampaign.key\n }));\n return {};\n }\n },\n\n /** Assign the winner campaign by checking priority order and/or weightage distribution\n * @param {Object} config\n * @param {Object} settingsFile\n * @param {Object} calledCampaign\n * @param {Array} shortlistedCampaigns\n * @param {String} userId\n * @param {Object} metaData\n * @param {String} newGoalIdentifier\n * @param {Object} decision\n *\n * @returns {Object} variation of the winner campaign\n */\n _advancedAlgoFindWinningCampaign: function _advancedAlgoFindWinningCampaign(config, settingsFile, calledCampaign, shortlistedCampaigns, userId, groupName, groupId, metaData, newGoalIdentifier, decision) {\n var winnerCampaign = null;\n var found = false; // flag to check whether winnerCampaign has been found or not and helps to break from the outer loop\n\n var priorityOrder = typeof settingsFile.groups[groupId].p !== 'undefined' ? settingsFile.groups[groupId].p : {};\n var wt = typeof settingsFile.groups[groupId].wt !== 'undefined' ? settingsFile.groups[groupId].wt : {};\n\n for (var i = 0; i < priorityOrder.length; i++) {\n for (var j = 0; j < shortlistedCampaigns.length; j++) {\n if (shortlistedCampaigns[j].id === priorityOrder[i]) {\n winnerCampaign = FunctionUtil.cloneObject(shortlistedCampaigns[j]);\n found = true;\n break;\n }\n }\n\n if (found === true) break;\n } // If winnerCampaign not found through Priority, then go for weighted Random distribution and for that,\n // Store the list of campaigns (participatingCampaigns) out of shortlistedCampaigns and their corresponding weights present in weightage distribution array (wt)\n\n\n if (winnerCampaign === null) {\n var participatingCampaignList = []; // iterate over shortlisted campaigns and add weights from the weight array\n\n for (var _i = 0; _i < shortlistedCampaigns.length; _i++) {\n var campaignId = shortlistedCampaigns[_i].id;\n\n if (typeof wt[campaignId] !== 'undefined') {\n var clonedCampaign = FunctionUtil.cloneObject(shortlistedCampaigns[_i]);\n clonedCampaign.weight = wt[campaignId];\n participatingCampaignList.push(clonedCampaign);\n }\n }\n /* Finding winner campaign using weighted Distibution :\n 1. Re-distribute the traffic by assigning range values for each camapign in particaptingCampaignList \n 2. Calculate bucket value for the given userId and groupId\n 3. Get the winnerCampaign by checking the Start and End Bucket Allocations of each campaign\n */\n\n\n CampaignUtil.setCampaignAllocation(participatingCampaignList);\n winnerCampaign = BucketingService._getVariation(participatingCampaignList, BucketingService.calculateBucketValue(CampaignUtil.getBucketingSeed(userId, undefined, groupId)));\n }\n\n if (winnerCampaign != null) {\n logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.MEG_GOT_WINNER_CAMPAIGN, {\n userId: userId,\n groupName: groupName,\n file: file,\n campaignKey: winnerCampaign.key\n }));\n } // WinnerCampaign should not be null, in case when winnerCampaign hasn't been found through PriorityOrder and\n // also shortlistedCampaigns and wt array does not have a single campaign id in common\n\n\n if (winnerCampaign != null && winnerCampaign.id === calledCampaign.id) {\n // if called campaign is the winner campaign, get the variation for the campaign\n return DecisionUtil.evaluateTrafficAndGetVariation(config, winnerCampaign, winnerCampaign.key, userId, metaData, newGoalIdentifier, decision);\n } else {\n // if winning campaign not the called camapaign, return\n logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.MEG_CALLED_CAMPAIGN_NOT_WINNER, {\n userId: userId,\n groupName: groupName,\n file: file,\n campaignKey: calledCampaign.key\n }));\n return {};\n }\n }\n};\nmodule.exports = DecisionUtil;\n\n/***/ }),\n\n/***/ \"./lib/utils/EventDispatcherUtil.js\":\n/*!******************************************!*\\\n !*** ./lib/utils/EventDispatcherUtil.js ***!\n \\******************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar logging = __webpack_require__(/*! ../services/logging */ \"./lib/services/logging/index.js\");\n\nvar FileNameEnum = __webpack_require__(/*! ../enums/FileNameEnum */ \"./lib/enums/FileNameEnum.js\");\n\nvar LogLevelEnum = logging.LogLevelEnum,\n LogMessageEnum = logging.LogMessageEnum,\n LogMessageUtil = logging.LogMessageUtil;\nvar logger = logging.getLogger();\n\nvar FunctionUtil = __webpack_require__(/*! ./FunctionUtil */ \"./lib/utils/FunctionUtil.js\");\n\nvar EventEnum = __webpack_require__(/*! ../enums/EventEnum */ \"./lib/enums/EventEnum.js\");\n\nvar excludedProperties = ['url'];\nvar file = FileNameEnum.EventDispatcherUtil;\nvar EventDispatcher = {\n dispatchGetCall: function dispatchGetCall(properties, _ref) {\n var _this = this;\n\n var responseCallback = _ref.responseCallback;\n var customHeaders = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var parsedUrl;\n var queryParams = '?';\n queryParams += FunctionUtil.convertObjectKeysToString(properties, excludedProperties);\n\n try {\n // Require files only if required in respective Engine i.e. Node / Browser\n if (true) {\n __webpack_require__(/*! ./HttpXMLUtil */ \"./lib/utils/HttpXMLUtil.js\").sendCall(properties, queryParams, {\n successCallback: responseCallback\n }, customHeaders);\n } else { var url; }\n } catch (err) {\n var endPoint = properties.url;\n logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.IMPRESSION_FAILED, {\n file: FileNameEnum.EventDispatcher,\n endPoint: endPoint,\n err: err\n }));\n }\n\n return false;\n },\n handleGetResponse: function handleGetResponse(properties, error, response) {\n if (error) {\n logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.IMPRESSION_FAILED, {\n file: file,\n endPoint: response.endPoint,\n err: error\n }));\n return false;\n } else {\n var baseParams = {\n file: file,\n endPoint: response.endPoint,\n accountId: properties && properties.account_id\n };\n var params = {};\n\n if (baseParams.endPoint.includes('push')) {\n var customVariables = JSON.parse(properties.tags).u;\n params = Object.assign({}, baseParams, {\n customVariables: customVariables\n });\n params.mainKeys = \"customDimension:\".concat(JSON.stringify(params.customVariables));\n } else {\n params = Object.assign({}, baseParams, {\n campaignId: properties && properties.experiment_id,\n variationId: properties && properties.combination\n });\n params.mainKeys = \"campaignId:\".concat(params.campaignId, \" and variationId:\").concat(params.variationId);\n }\n\n logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.IMPRESSION_SUCCESS, params));\n return true;\n }\n },\n dispatchPostCall: function dispatchPostCall(properties, payload, _ref2) {\n var _this2 = this;\n\n var responseCallback = _ref2.responseCallback;\n var customHeaders = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var parsedUrl;\n var queryParams = '?';\n queryParams += FunctionUtil.convertObjectKeysToString(properties, excludedProperties);\n\n try {\n // Require files only if required in respective Engine i.e. Node / Browser\n if (true) {\n if (typeof XMLHttpRequest === 'undefined') {\n return __webpack_require__(/*! ./FetchUtil */ \"./lib/utils/FetchUtil.js\").send({\n method: 'POST',\n url: \"\".concat(properties.url).concat(queryParams),\n payload: payload,\n customHeaders: customHeaders\n }).then(function () {\n _this2.handlePostResponse(properties, payload);\n\n if (responseCallback) {\n responseCallback(null, {\n status: 'success'\n });\n }\n })[\"catch\"](function (error) {\n _this2.handlePostResponse(properties, payload, error);\n\n responseCallback(error, {\n status: 'failure'\n });\n });\n }\n\n return __webpack_require__(/*! ./XhrUtil */ \"./lib/utils/XhrUtil.js\").send({\n method: 'POST',\n url: \"\".concat(properties.url).concat(queryParams),\n payload: payload,\n customHeaders: customHeaders,\n logger: logger\n }).then(function () {\n _this2.handlePostResponse(properties, payload);\n\n if (responseCallback) {\n responseCallback(null, {\n status: 'success'\n });\n }\n })[\"catch\"](function (error) {\n _this2.handlePostResponse(properties, payload, error);\n\n responseCallback(error, {\n status: 'failure'\n });\n });\n } else { var url; }\n } catch (err) {\n var endPoint = properties.url;\n logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.IMPRESSION_FAILED, {\n file: FileNameEnum.EventDispatcherUtil,\n endPoint: endPoint,\n err: err\n }));\n }\n\n return Promise.resolve(false);\n },\n handlePostResponse: function handlePostResponse(properties, payload, error) {\n var endPoint = properties.url;\n\n if (error) {\n logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.IMPRESSION_FAILED, {\n file: file,\n endPoint: endPoint,\n err: error\n }));\n return false;\n } else {\n var event = \"\".concat(properties.en, \" event\");\n\n if (properties.en === EventEnum.VWO_SYNC_VISITOR_PROP) {\n delete payload.d.visitor.props.vwo_fs_environment;\n event = \"visitor property:\".concat(JSON.stringify(payload.d.visitor.props));\n }\n\n logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.IMPRESSION_SUCCESS_FOR_EVENT_ARCH, {\n file: file,\n endPoint: endPoint,\n accountId: properties.a,\n event: event\n }));\n return true;\n }\n }\n};\nmodule.exports = EventDispatcher;\n\n/***/ }),\n\n/***/ \"./lib/utils/FeatureUtil.js\":\n/*!**********************************!*\\\n !*** ./lib/utils/FeatureUtil.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar CampaignUtil = __webpack_require__(/*! ./CampaignUtil */ \"./lib/utils/CampaignUtil.js\");\n\nvar DataTypeUtil = __webpack_require__(/*! ./DataTypeUtil */ \"./lib/utils/DataTypeUtil.js\");\n\nvar FeatureVariableTypeEnum = __webpack_require__(/*! ../enums/FeatureVariableTypeEnum */ \"./lib/enums/FeatureVariableTypeEnum.js\");\n\nvar logging = __webpack_require__(/*! ../services/logging */ \"./lib/services/logging/index.js\");\n\nvar FileNameEnum = __webpack_require__(/*! ../enums/FileNameEnum */ \"./lib/enums/FileNameEnum.js\");\n\nvar LogLevelEnum = logging.LogLevelEnum,\n LogMessageEnum = logging.LogMessageEnum,\n LogMessageUtil = logging.LogMessageUtil;\nvar logger = logging.getLogger();\nvar file = FileNameEnum.FeatureUtil;\nvar FeatureUtil = {\n getVariableForFeature: function getVariableForFeature(campaign, variableKey) {\n var variableData = {};\n\n if (CampaignUtil.isFeatureRolloutCampaign(campaign)) {\n var variables = campaign.variables || [];\n\n for (var i = 0; i < variables.length; i++) {\n if (variables[i].key === variableKey) {\n variableData = variables[i];\n break;\n }\n }\n\n return variableData;\n }\n\n return variableData;\n },\n getVariableValueForVariation: function getVariableValueForVariation(campaign, variation, variableKey) {\n var variationVariable = {};\n\n if (CampaignUtil.isFeatureTestCampaign(campaign)) {\n if (!variation || !variation || !variation.variables) {\n return variationVariable;\n }\n\n if (!variation.isFeatureEnabled) {\n variation = CampaignUtil.getControlForCampaign(campaign);\n }\n\n for (var i = 0; i < variation.variables.length; i++) {\n var variable = variation.variables[i];\n\n if (variableKey === variable.key) {\n variationVariable = variable;\n break;\n }\n }\n }\n\n return variationVariable;\n },\n getTypeCastVariableValue: function getTypeCastVariableValue(variableValue, variableType) {\n var typeCastedValue;\n\n switch (variableType) {\n case FeatureVariableTypeEnum.INTEGER:\n typeCastedValue = parseInt(variableValue, 10);\n\n if (!DataTypeUtil.isNumber(typeCastedValue) || isNaN(typeCastedValue)) {\n logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.UNABLE_TO_CAST_VALUE, {\n file: file,\n variableValue: variableValue,\n variableType: variableType\n }));\n typeCastedValue = null;\n }\n\n break;\n\n case FeatureVariableTypeEnum.DOUBLE:\n typeCastedValue = parseFloat(variableValue);\n\n if (!DataTypeUtil.isNumber(typeCastedValue) || isNaN(typeCastedValue)) {\n logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.UNABLE_TO_CAST_VALUE, {\n file: file,\n variableValue: variableValue,\n variableType: variableType\n }));\n typeCastedValue = null;\n }\n\n break;\n\n case FeatureVariableTypeEnum.BOOLEAN:\n if (!DataTypeUtil.isBoolean(variableValue)) {\n logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.UNABLE_TO_CAST_VALUE, {\n file: file,\n variableValue: variableValue,\n variableType: variableType\n }));\n typeCastedValue = null;\n } else {\n typeCastedValue = variableValue;\n }\n\n break;\n\n case FeatureVariableTypeEnum.JSON:\n if (!DataTypeUtil.isObject(variableValue)) {\n logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.UNABLE_TO_CAST_VALUE, {\n file: file,\n variableValue: variableValue,\n variableType: variableType\n }));\n typeCastedValue = null;\n } else {\n typeCastedValue = variableValue;\n }\n\n break;\n\n default:\n typeCastedValue = variableValue;\n break;\n }\n\n return typeCastedValue;\n }\n};\nmodule.exports = FeatureUtil;\n\n/***/ }),\n\n/***/ \"./lib/utils/FetchUtil.js\":\n/*!********************************!*\\\n !*** ./lib/utils/FetchUtil.js ***!\n \\********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar _require = __webpack_require__(/*! ./FunctionUtil */ \"./lib/utils/FunctionUtil.js\"),\n getCurrentTime = _require.getCurrentTime;\n\nvar _require2 = __webpack_require__(/*! ./DataTypeUtil */ \"./lib/utils/DataTypeUtil.js\"),\n isObject = _require2.isObject,\n isFunction = _require2.isFunction;\n\nvar FetchUtil = {\n _getStoredSettings: function _getStoredSettings(userStorageService) {\n var isStoredData = false;\n var parsedSettings;\n\n if (userStorageService && isObject(userStorageService) && isFunction(userStorageService.getSettings)) {\n try {\n var settings = userStorageService.getSettings();\n parsedSettings = JSON.parse(settings);\n\n if (parsedSettings && isObject(parsedSettings) && Object.keys(parsedSettings).length > 3) {\n var info = \"VWO-SDK - [INFO]: \".concat(getCurrentTime(), \" VWO settings found in Storage Service.\");\n console.info(info);\n isStoredData = true;\n } else if (parsedSettings) {\n var error = \"VWO-SDK - [ERROR]: \".concat(getCurrentTime(), \" VWO settings found in Storage Service is not valid.\");\n console.error(error);\n } else {\n var warning = \"VWO-SDK - [WARNING]: \".concat(getCurrentTime(), \" VWO settings is empty in Storage Service.\");\n console.warn(warning);\n }\n } catch (err) {\n var _error = \"VWO-SDK - [ERROR]: \".concat(getCurrentTime(), \" VWO settings found in Storage Service is not valid. \").concat(err);\n\n console.error(_error);\n isStoredData = false;\n }\n }\n\n return {\n isStoredData: isStoredData,\n parsedSettings: parsedSettings\n };\n },\n send: function send() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n method = _ref.method,\n url = _ref.url,\n payload = _ref.payload,\n userStorageService = _ref.userStorageService,\n _ref$customHeaders = _ref.customHeaders,\n customHeaders = _ref$customHeaders === void 0 ? {} : _ref$customHeaders;\n\n if (!url || !method) {\n return;\n }\n\n return new Promise(function (resolve, reject) {\n var _FetchUtil$_getStored = FetchUtil._getStoredSettings(userStorageService),\n isStoredData = _FetchUtil$_getStored.isStoredData,\n parsedSettings = _FetchUtil$_getStored.parsedSettings;\n\n if (isStoredData) {\n resolve(parsedSettings);\n } else {\n var options = {\n method: method,\n headers: customHeaders\n };\n\n if (method === 'POST') {\n options.body = JSON.stringify(payload);\n }\n\n return fetch(url, options).then(function (res) {\n // Some endpoints return empty strings as the response body; treat\n // as raw text and handle potential JSON parsing errors below\n return res.text().then(function (text) {\n var jsonData = {};\n\n try {\n jsonData = JSON.parse(text);\n } catch (err) {\n console.info(\"VWO-SDK - [INFO]: \".concat(getCurrentTime(), \" VWO didn't send JSON response which is expected: \").concat(err));\n }\n\n if (userStorageService && isObject(userStorageService) && isFunction(userStorageService.setSettings)) {\n userStorageService.setSettings(jsonData);\n }\n\n if (res.status === 200) {\n resolve(jsonData);\n } else {\n var error = \"VWO-SDK - [ERROR]: \".concat(getCurrentTime(), \" Request failed for fetching account settings. Got Status Code: \").concat(res.status);\n console.error(error);\n reject(error);\n }\n });\n })[\"catch\"](function (err) {\n var error = \"VWO-SDK - [ERROR]: \".concat(getCurrentTime(), \" Request failed for fetching account settings. Got Status Code: \").concat(err);\n console.error(error);\n reject(error);\n });\n }\n });\n }\n};\nmodule.exports = FetchUtil;\n\n/***/ }),\n\n/***/ \"./lib/utils/FunctionUtil.js\":\n/*!***********************************!*\\\n !*** ./lib/utils/FunctionUtil.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar FunctionUtil = {\n cloneObject: function cloneObject(obj) {\n if (!obj) {\n return obj;\n }\n\n var clonedObj = JSON.parse(JSON.stringify(obj));\n return clonedObj;\n },\n getRandomNumber: function getRandomNumber() {\n return Math.random();\n },\n getCurrentUnixTimestamp: function getCurrentUnixTimestamp() {\n return Math.ceil(+new Date() / 1000);\n },\n getCurrentUnixTimestampInMillis: function getCurrentUnixTimestampInMillis() {\n return +new Date();\n },\n matchWithRegex: function matchWithRegex(string, regex) {\n try {\n return string.match(new RegExp(regex));\n } catch (err) {\n var logging = __webpack_require__(/*! ../services/logging */ \"./lib/services/logging/index.js\");\n\n var FileNameEnum = __webpack_require__(/*! ../enums/FileNameEnum */ \"./lib/enums/FileNameEnum.js\");\n\n var logger = logging.getLogger();\n var LogLevelEnum = logging.LogLevelEnum,\n LogMessageEnum = logging.LogMessageEnum,\n LogMessageUtil = logging.LogMessageUtil;\n var file = FileNameEnum.FunctionUtil;\n logger.log(LogLevelEnum.ERROR, LogMessageUtil.build(LogMessageEnum.ERROR_MESSAGES.SEGMENTATION_REGEX_CREATION_FAILED, {\n file: file,\n regex: regex\n }));\n return null;\n }\n },\n getCurrentTime: function getCurrentTime() {\n return new Date().toISOString();\n },\n convertObjectKeysToString: function convertObjectKeysToString(properties, excludedProperties) {\n var queryParams = '';\n excludedProperties = excludedProperties || [];\n\n for (var prop in properties) {\n if (properties.hasOwnProperty(prop)) {\n if (excludedProperties.indexOf(prop) === -1) {\n queryParams += prop + '=' + properties[prop] + '&';\n }\n }\n }\n\n return queryParams;\n },\n objectValues: function objectValues(obj) {\n var values = [];\n\n for (var prop in obj) {\n values.push(obj[prop]);\n }\n\n return values;\n }\n};\nmodule.exports = FunctionUtil;\n\n/***/ }),\n\n/***/ \"./lib/utils/HttpXMLUtil.js\":\n/*!**********************************!*\\\n !*** ./lib/utils/HttpXMLUtil.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar logging = __webpack_require__(/*! ../services/logging */ \"./lib/services/logging/index.js\");\n\nvar FileNameEnum = __webpack_require__(/*! ../enums/FileNameEnum */ \"./lib/enums/FileNameEnum.js\");\n\nvar LogLevelEnum = logging.LogLevelEnum,\n LogMessageEnum = logging.LogMessageEnum,\n LogMessageUtil = logging.LogMessageUtil;\nvar logger = logging.getLogger();\nvar file = FileNameEnum.HttpXMLUtil;\n\nvar noop = function noop() {};\n\nvar printLog = function printLog(properties) {\n var baseParams = {\n file: file,\n endPoint: properties.url,\n accountId: properties && properties.account_id\n };\n var params = {};\n\n if (baseParams.endPoint.includes('push')) {\n var customVariables = JSON.parse(properties.tags).u;\n params = Object.assign({}, baseParams, {\n customVariables: customVariables\n });\n params.mainKeys = \"customDimension:\".concat(JSON.stringify(params.customVariables));\n } else {\n params = Object.assign({}, baseParams, {\n campaignId: properties && properties.experiment_id,\n variationId: properties && properties.combination\n });\n params.mainKeys = \"campaignId:\".concat(params.campaignId, \" and variationId:\").concat(params.variationId);\n }\n\n logger.log(LogLevelEnum.INFO, LogMessageUtil.build(LogMessageEnum.INFO_MESSAGES.IMPRESSION_SUCCESS, params));\n};\n\nvar HttpXMLUtil = {\n sendCall: function sendCall(properties, queryParams) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var customHeaders = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var endPoint = \"\".concat(properties.url).concat(queryParams);\n var successCallback = options.successCallback,\n errorCallback = options.errorCallback;\n errorCallback = errorCallback || successCallback;\n var isCallbackCalled = false;\n\n if (typeof XMLHttpRequest === 'undefined') {\n // if (typeof Image === 'undefined') {\n fetch(endPoint, {\n method: 'GET',\n headers: customHeaders\n }).then(function () {\n if (isCallbackCalled) {\n return;\n }\n\n isCallbackCalled = true;\n successCallback(null, {\n status: 'success'\n });\n })[\"catch\"](function (_err) {\n if (isCallbackCalled) {\n return;\n }\n\n isCallbackCalled = true;\n errorCallback(null, {\n status: 'success'\n });\n printLog(properties);\n });\n return;\n }\n\n this.handleGetCall(properties, queryParams, successCallback, errorCallback, endPoint, isCallbackCalled, customHeaders);\n },\n handleGetCall: function handleGetCall(properties, queryParams, successCallback, errorCallback, endPoint, isCallbackCalled) {\n var customHeaders = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};\n successCallback = successCallback || noop;\n errorCallback = errorCallback || noop;\n var xhr = new XMLHttpRequest();\n xhr.open('GET', endPoint, true); // Set custom headers using setRequestHeader\n\n for (var headerName in customHeaders) {\n if (customHeaders.hasOwnProperty(headerName)) {\n xhr.setRequestHeader(headerName, customHeaders[headerName]);\n }\n }\n\n xhr.onload = function () {\n if (xhr.status >= 200 && xhr.status < 300) {\n var response = xhr.responseText;\n successCallback(response);\n printLog(properties);\n } else {\n errorCallback(xhr.statusText);\n printLog(properties);\n }\n };\n\n xhr.onerror = function () {\n errorCallback(xhr.statusText);\n printLog(properties);\n };\n\n xhr.send();\n }\n};\nmodule.exports = HttpXMLUtil;\n\n/***/ }),\n\n/***/ \"./lib/utils/ImpressionUtil.js\":\n/*!*************************************!*\\\n !*** ./lib/utils/ImpressionUtil.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar Constants = __webpack_require__(/*! ../constants */ \"./lib/constants/index.js\");\n\nvar UrlEnum = __webpack_require__(/*! ../enums/UrlEnum */ \"./lib/enums/UrlEnum.js\");\n\nvar GoalTypeEnum = __webpack_require__(/*! ../enums/GoalTypeEnum */ \"./lib/enums/GoalTypeEnum.js\");\n\nvar UuidUtil = __webpack_require__(/*! ./UuidUtil */ \"./lib/utils/UuidUtil.js\");\n\nvar ValidateUtil = __webpack_require__(/*! ./ValidateUtil */ \"./lib/utils/ValidateUtil.js\");\n\nvar FunctionUtil = __webpack_require__(/*! ./FunctionUtil */ \"./lib/utils/FunctionUtil.js\");\n\nvar logging = __webpack_require__(/*! ../services/logging */ \"./lib/services/logging/index.js\");\n\nvar FileNameEnum = __webpack_require__(/*! ../enums/FileNameEnum */ \"./lib/enums/FileNameEnum.js\");\n\nvar DataTypeUtil = __webpack_require__(/*! ./DataTypeUtil */ \"./lib/utils/DataTypeUtil.js\");\n\nvar LogLevelEnum = logging.LogLevelEnum,\n LogMessageEnum = logging.LogMessageEnum,\n LogMessageUtil = logging.LogMessageUtil;\nvar logger = logging.getLogger();\n\nvar UrlService = __webpack_require__(/*! ../services/UrlService */ \"./lib/services/UrlService.js\");\n/**\n * Return primary properties required for every network call to VWO server\n * @param {Object} configObj\n * @param {String} userId\n *\n * @returns primary properties\n */\n\n\nfunction getPrimaryProperties(configObj, userId) {\n return {\n sId: FunctionUtil.getCurrentUnixTimestamp(),\n u: UuidUtil.generateFor(userId, configObj.accountId)\n };\n}\n/**\n * Return base properties required for every network call to VWO server\n * @param {Object} configObj\n * @param {String} userId\n *\n * @returns base properties\n */\n\n\nfunction getBaseProperties(configObj, userId) {\n var accountId = configObj.accountId;\n return Object.assign({}, getPrimaryProperties(configObj, userId), ImpressionUtil.getReportingProperties(configObj), {\n account_id: accountId,\n random: FunctionUtil.getRandomNumber(),\n ap: Constants.PLATFORM\n });\n}\n\nvar ImpressionUtil = {\n /**\n * Build properties for the impression event\n *\n * @param {String} userId the unique ID assigned to a user\n * @param {String} tagKey the tag name\n * @param {String} tagValue the tag value\n */\n buildEventForPushing: function buildEventForPushing(configObj, tagKey, tagValue, userId) {\n var properties = Object.assign({}, getBaseProperties(configObj, userId));\n properties.url = Constants.HTTPS_PROTOCOL + UrlService.getBaseUrl() + UrlEnum.PUSH;\n properties.tags = JSON.stringify({\n u: _defineProperty({}, encodeURIComponent(tagKey), encodeURIComponent(tagValue))\n });\n logger.log(LogLevelEnum.DEBUG, LogMessageUtil.build(LogMessageEnum.DEBUG_MESSAGES.IMPRESSION_FOR_PUSH, {\n file: FileNameEnum.ImpressionUtil,\n properties: this._getStringifiedLogProperties(properties)\n }));\n return properties;\n },\n\n /**\n * Build properties for the bulk impression event\n *\n * @param {String} userId the unique ID assigned to a user\n * @param {String} tagKey the tag name\n * @param {String} tagValue the tag value\n */\n buildBatchEventForPushing: function buildBatchEventForPushing(configObj, tagKey, tagValue, userId) {\n if (false) { var properties; }\n },\n\n /**\n * Build properties for the impression event\n *\n * @param {String} userId the unique ID assigned to a user\n * @param {String} campaignKey, the Campaign ID\n * @param {Number} variationId, the Variation ID\n *\n * @return null if campaign ID or variation ID is invalid\n */\n buildEventForTrackingUser: function buildEventForTrackingUser(configObj, campaignKey, variationId, userId, usageStats) {\n var visitorUserAgent = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : '';\n var userIpAddress = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : '';\n var properties = Object.assign({\n experiment_id: campaignKey,\n combination: variationId,\n visitor_ua: visitorUserAgent,\n visitor_ip: userIpAddress\n }, getBaseProperties(configObj, userId), usageStats);\n properties.ed = JSON.stringify({\n p: 'server'\n });\n properties.url = Constants.HTTPS_PROTOCOL + UrlService.getBaseUrl() + UrlEnum.TRACK_USER;\n logger.log(LogLevelEnum.DEBUG, LogMessageUtil.build(LogMessageEnum.DEBUG_MESSAGES.IMPRESSION_FOR_TRACK_USER, {\n file: FileNameEnum.ImpressionUtil,\n properties: this._getStringifiedLogProperties(properties)\n }));\n return properties;\n },\n\n /**\n * Build properties for the bulk impression event\n *\n * @param {String} userId the unique ID assigned to a user\n * @param {String} campaignKey, the Campaign ID\n * @param {Number} variationId, the Variation ID\n * @param {String} visitorUserAgent, user agent of visitor\n * @param {String} userIpAddress, IP of the visitor\n *\n * @return null if campaign ID or variation ID is invalid\n */\n buildBatchEventForTrackingUser: function buildBatchEventForTrackingUser(configObj, campaignKey, variationId, userId) {\n var visitorUserAgent = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : '';\n var userIpAddress = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : '';\n\n if (false) { var properties; }\n },\n\n /**\n * Build properties for the impression event\n *\n * @param {String} userId the unique ID assigned to a user\n * @param {String} campaignKey, the Campaign ID\n * @param {Number} variationId, the Variation ID\n * @param {String} goalId, the Goal ID\n * @param {String} revenue, the revenue generated on conversion\n *\n * @return null if campaign ID or variation ID is invalid\n */\n buildEventForTrackingGoal: function buildEventForTrackingGoal(configObj, campaignKey, variationId, userId) {\n var goal = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n var revenue = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;\n var visitorUserAgent = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : '';\n var userIpAddress = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : '';\n var goalId = goal.id;\n var properties = Object.assign({\n experiment_id: campaignKey,\n combination: variationId\n }, getBaseProperties(configObj, userId));\n properties.visitor_ua = visitorUserAgent;\n properties.visitor_ip = userIpAddress;\n properties.url = Constants.HTTPS_PROTOCOL + UrlService.getBaseUrl() + UrlEnum.TRACK_GOAL;\n properties['goal_id'] = goalId;\n\n if (goal.type === GoalTypeEnum.REVENUE && ValidateUtil.isValidValue(revenue)) {\n properties['r'] = revenue;\n }\n\n logger.log(LogLevelEnum.DEBUG, LogMessageUtil.build(LogMessageEnum.DEBUG_MESSAGES.IMPRESSION_FOR_TRACK_GOAL, {\n file: FileNameEnum.ImpressionUtil,\n properties: this._getStringifiedLogProperties(properties)\n }));\n return properties;\n },\n\n /**\n * Build properties for the bulk impression event\n *\n * @param {String} userId the unique ID assigned to a user\n * @param {String} campaignKey, the Campaign ID\n * @param {Number} variationId, the Variation ID\n * @param {String} goalId, the Goal ID\n * @param {String} revenue, the revenue generated on conversion\n *\n * @return null if campaign ID or variation ID is invalid\n */\n buildBatchEventForTrackingGoal: function buildBatchEventForTrackingGoal(configObj, campaignKey, variationId, userId) {\n var goal = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n var revenue = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;\n var eventProperties = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};\n var visitorUserAgent = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : '';\n var userIpAddress = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : '';\n\n if (false) { var properties; }\n },\n\n /**\n * Return an object containing properties required for segmenting reports\n * @param {Object} configObj\n * @returns reporting properties\n */\n getReportingProperties: function getReportingProperties(configObj) {\n var _ref;\n\n var sdkKey = configObj.sdkKey;\n return _ref = {}, _defineProperty(_ref, Constants.SDK_QUERY_PARAM, Constants.SDK_NAME), _defineProperty(_ref, Constants.SDK_VERSION_QUERY_PARAM, Constants.SDK_VERSION), _defineProperty(_ref, \"env\", sdkKey), _ref;\n },\n\n /**\n * Builds generic properties for different tracking calls required by VWO servers.\n * @param {Object} configObj\n * @param {String} eventName\n * @returns properties\n */\n getEventsBaseProperties: function getEventsBaseProperties(config, eventName) {\n var usageStats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var visitorUserAgent = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n var userIpAddress = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : '';\n var sdkKey = config.sdkKey;\n var properties = Object.assign({\n en: eventName,\n a: config.accountId,\n env: sdkKey,\n eTime: FunctionUtil.getCurrentUnixTimestampInMillis(),\n random: FunctionUtil.getRandomNumber(),\n p: 'FS',\n visitor_ua: visitorUserAgent,\n visitor_ip: userIpAddress\n }, usageStats);\n properties.url = Constants.HTTPS_PROTOCOL + UrlService.getBaseUrl() + UrlEnum.EVENTS;\n return properties;\n },\n\n /**\n * Builds generic payload required by all the different tracking calls.\n * @param {Object} configObj\n * @param {String} userId\n * @param {String} eventName\n * @param {Object} usageStats\n * @returns properties\n */\n getEventBasePayload: function getEventBasePayload(configObj, userId, eventName) {\n var uuid = UuidUtil.generateFor(userId, configObj.accountId);\n var sdkKey = configObj.sdkKey;\n var props = {\n vwo_sdkName: Constants.SDK_NAME,\n vwo_sdkVersion: Constants.SDK_VERSION,\n vwo_envKey: sdkKey\n }; // if (usageStats) {\n // props = Object.assign({}, props, usageStats);\n // }\n\n var properties = {\n d: {\n msgId: \"\".concat(uuid, \"-\").concat(FunctionUtil.getCurrentUnixTimestampInMillis()),\n visId: uuid,\n sessionId: FunctionUtil.getCurrentUnixTimestamp(),\n event: {\n props: props,\n name: eventName,\n time: FunctionUtil.getCurrentUnixTimestampInMillis()\n },\n visitor: {\n props: {\n vwo_fs_environment: sdkKey\n }\n }\n }\n };\n return properties;\n },\n\n /**\n * Builds payload to track the visitor.\n * @param {Object} configObj\n * @param {String} userId\n * @param {String} eventName\n * @param {String} campaignId\n * @param {Number} variationId\n * @returns track-user payload\n */\n getTrackUserPayloadData: function getTrackUserPayloadData(configObj, userId, eventName, campaignId, variationId) {\n var properties = this.getEventBasePayload(configObj, userId, eventName);\n properties.d.event.props.id = campaignId;\n properties.d.event.props.variation = variationId; // this is currently required by data-layer team, we can make changes on DACDN and remove it from here\n\n properties.d.event.props.isFirst = 1;\n logger.log(LogLevelEnum.DEBUG, LogMessageUtil.build(LogMessageEnum.DEBUG_MESSAGES.IMPRESSION_FOR_EVENT_ARCH_TRACK_USER, {\n file: FileNameEnum.ImpressionUtil,\n accountId: configObj.accountId,\n userId: userId,\n campaignId: campaignId\n }));\n return properties;\n },\n\n /**\n * Builds payload to track the Goal.\n * @param {Object} configObj\n * @param {String} userId\n * @param {String} eventName\n * @param {Object} metricMap\n * @param {String} revenueValue\n * @returns track-goal payload\n */\n getTrackGoalPayloadData: function getTrackGoalPayloadData(configObj, userId, eventName, metricMap, revenueValue, revenuePropList) {\n var eventProperties = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {};\n var properties = this.getEventBasePayload(configObj, userId, eventName);\n var metric = {};\n Object.keys(metricMap).forEach(function (key) {\n metric[\"id_\".concat(key)] = [\"g_\".concat(metricMap[key].goal.id)];\n logger.log(LogLevelEnum.DEBUG, LogMessageUtil.build(LogMessageEnum.DEBUG_MESSAGES.IMPRESSION_FOR_EVENT_ARCH_TRACK_GOAL, {\n file: FileNameEnum.ImpressionUtil,\n goalName: eventName,\n accountId: configObj.accountId,\n u: userId,\n campaignId: key\n }));\n });\n properties.d.event.props.vwoMeta = {\n metric: metric\n };\n\n if (revenuePropList && revenueValue && revenuePropList.size > 0) {\n revenuePropList.forEach(function (revenueProp) {\n properties.d.event.props.vwoMeta[revenueProp] = revenueValue;\n });\n }\n\n properties.d.event.props.isCustomEvent = true;\n\n if (Object.keys(eventProperties).length > 0) {\n for (var prop in eventProperties) {\n properties.d.event.props[prop] = eventProperties[prop];\n }\n }\n\n return properties;\n },\n\n /**\n * Builds payload to appply post segmentation on VWO campaign reports.\n * @param {Object} configObj\n * @param {String} userId\n * @param {String} eventName\n * @param {Object} customDimensionMap\n * @returns push payload\n */\n getPushPayloadData: function getPushPayloadData(configObj, userId, eventName, customDimensionMap) {\n var properties = this.getEventBasePayload(configObj, userId, eventName);\n properties.d.event.props.isCustomEvent = true;\n Object.keys(customDimensionMap).forEach(function (key) {\n var tagValue = DataTypeUtil.isString(customDimensionMap[key]) ? customDimensionMap[key] : JSON.stringify(customDimensionMap[key]);\n properties.d.visitor.props[key] = tagValue;\n });\n logger.log(LogLevelEnum.DEBUG, LogMessageUtil.build(LogMessageEnum.DEBUG_MESSAGES.IMPRESSION_FOR_EVENT_ARCH_PUSH, {\n file: FileNameEnum.ImpressionUtil,\n accountId: configObj.accountId,\n userId: userId,\n property: JSON.stringify(customDimensionMap)\n }));\n return properties;\n },\n\n /**\n * Remove the sensitive keys from the properties to te displayed in the log.\n * @param {Object} properties\n * @returns properties without sensitive keys\n */\n _getStringifiedLogProperties: function _getStringifiedLogProperties(properties) {\n var logProperties = Object.assign({}, properties);\n delete logProperties.env;\n return JSON.stringify(logProperties);\n }\n};\nmodule.exports = ImpressionUtil;\n\n/***/ }),\n\n/***/ \"./lib/utils/LogMessageUtil.js\":\n/*!*************************************!*\\\n !*** ./lib/utils/LogMessageUtil.js ***!\n \\*************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar DataTypeUtil = __webpack_require__(/*! ./DataTypeUtil */ \"./lib/utils/DataTypeUtil.js\");\n\nvar nargs = /\\{([0-9a-zA-Z_]+)\\}/g;\nvar LogMessageUtil = {\n /**\n * Took reference from: string-template\n *\n * Name: string-template\n * Published Name: string-template\n * URL: https://github.com/Matt-Esch/string-template\n * Description: A lightweight string replace engine for text-based templates\n * Author: Matt-Esch (https://github.com/Matt-Esch)\n * License: MIT License\n * Local Modifications: This library is not used as a dependency.\n * Source code was referenced and is modified as per requirements.\n */\n build: function build(template, data) {\n try {\n return template.replace(nargs, function (match, key, index) {\n var result;\n var isKey;\n\n if (template[index - 1] === '{' && template[index + match.length] === '}') {\n return key;\n } else {\n isKey = data.hasOwnProperty(key);\n\n if (isKey) {\n var value = data[key];\n\n if (DataTypeUtil.isFunction(value)) {\n value = data[key]();\n }\n\n result = value;\n } else {\n result = null;\n }\n\n if (result === null || result === undefined) {\n return '';\n }\n\n return result;\n }\n });\n } catch (err) {\n return template;\n }\n }\n};\nmodule.exports = LogMessageUtil;\n\n/***/ }),\n\n/***/ \"./lib/utils/ObjectUtil.js\":\n/*!*********************************!*\\\n !*** ./lib/utils/ObjectUtil.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar ObjectUtil = {\n areObjectKeys: function areObjectKeys() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(obj).length;\n },\n getKeyValue: function getKeyValue(obj) {\n if (!ObjectUtil.areObjectKeys(obj)) {\n return;\n }\n\n var key = Object.keys(obj)[0];\n var value = obj[key];\n return {\n key: key,\n value: value\n };\n },\n objectValues: function objectValues(obj) {\n return Object.keys(obj).map(function (key) {\n return obj[key];\n });\n }\n};\nmodule.exports = ObjectUtil;\n\n/***/ }),\n\n/***/ \"./lib/utils/SegmentUtil.js\":\n/*!**********************************!*\\\n !*** ./lib/utils/SegmentUtil.js ***!\n \\**********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar DataTypeUtil = __webpack_require__(/*! ../utils/DataTypeUtil */ \"./lib/utils/DataTypeUtil.js\");\n\nvar _require = __webpack_require__(/*! ../utils/FunctionUtil */ \"./lib/utils/FunctionUtil.js\"),\n matchWithRegex = _require.matchWithRegex;\n\nvar _require2 = __webpack_require__(/*! ../utils/ObjectUtil */ \"./lib/utils/ObjectUtil.js\"),\n getKeyValue = _require2.getKeyValue;\n\nvar SegmentEnum = __webpack_require__(/*! ../enums/segment */ \"./lib/enums/segment/index.js\");\n\nvar _SegmentEnum$SegmentO = SegmentEnum.SegmentOperandValueTypeRegexes,\n LOWER_MATCH = _SegmentEnum$SegmentO.LOWER_MATCH,\n WILDCARD_MATCH = _SegmentEnum$SegmentO.WILDCARD_MATCH,\n REGEX_MATCH = _SegmentEnum$SegmentO.REGEX_MATCH,\n STARTING_STAR = _SegmentEnum$SegmentO.STARTING_STAR,\n ENDING_STAR = _SegmentEnum$SegmentO.ENDING_STAR,\n GREATER_THAN_MATCH = _SegmentEnum$SegmentO.GREATER_THAN_MATCH,\n GREATER_THAN_EQUAL_TO_MATCH = _SegmentEnum$SegmentO.GREATER_THAN_EQUAL_TO_MATCH,\n LESS_THAN_MATCH = _SegmentEnum$SegmentO.LESS_THAN_MATCH,\n LESS_THAN_EQUAL_TO_MATCH = _SegmentEnum$SegmentO.LESS_THAN_EQUAL_TO_MATCH;\nvar _SegmentEnum$SegmentO2 = SegmentEnum.SegmentOperandValues,\n LOWER_VALUE = _SegmentEnum$SegmentO2.LOWER_VALUE,\n STARTING_ENDING_STAR_VALUE = _SegmentEnum$SegmentO2.STARTING_ENDING_STAR_VALUE,\n STARTING_STAR_VALUE = _SegmentEnum$SegmentO2.STARTING_STAR_VALUE,\n ENDING_STAR_VALUE = _SegmentEnum$SegmentO2.ENDING_STAR_VALUE,\n REGEX_VALUE = _SegmentEnum$SegmentO2.REGEX_VALUE,\n EQUAL_VALUE = _SegmentEnum$SegmentO2.EQUAL_VALUE,\n GREATER_THAN_VALUE = _SegmentEnum$SegmentO2.GREATER_THAN_VALUE,\n GREATER_THAN_EQUAL_TO_VALUE = _SegmentEnum$SegmentO2.GREATER_THAN_EQUAL_TO_VALUE,\n LESS_THAN_VALUE = _SegmentEnum$SegmentO2.LESS_THAN_VALUE,\n LESS_THAN_EQUAL_TO_VALUE = _SegmentEnum$SegmentO2.LESS_THAN_EQUAL_TO_VALUE;\n\nfunction extractOperandValue(operand, regex) {\n return matchWithRegex(operand, regex) && matchWithRegex(operand, regex)[1];\n}\n\nfunction processValues(operandValue, tagValue) {\n // this is atomic, either both will be processed or none\n var processedOperandValue = parseFloat(operandValue, 10);\n var processedTagValue = parseFloat(tagValue, 10);\n\n if (!processedOperandValue || !processedTagValue) {\n return {\n operandValue: operandValue,\n tagValue: tagValue\n };\n } // now we have surity that both are numbers\n // now we can convert them independently to int type if they\n // are int rather than floats\n\n\n if (processedOperandValue === Math.floor(processedOperandValue)) {\n processedOperandValue = parseInt(processedOperandValue, 10);\n }\n\n if (processedTagValue === Math.floor(processedTagValue)) {\n processedTagValue = parseInt(processedTagValue, 10);\n } // convert it back to string and return\n\n\n return {\n operandValue: processedOperandValue.toString(),\n tagValue: processedTagValue.toString()\n };\n}\n\nfunction preProcessTagValue(tagValue) {\n if (tagValue === undefined) {\n tagValue = '';\n }\n\n if (DataTypeUtil.isBoolean(tagValue)) {\n if (tagValue) {\n tagValue = true;\n } else {\n tagValue = false;\n }\n }\n\n if (tagValue !== null) {\n tagValue = tagValue.toString();\n }\n\n return tagValue;\n}\n\nfunction preProcessOperandValue(operand) {\n var operandType;\n var operandValue;\n var startingStar;\n var endingStar; // Pre process operand value\n\n if (matchWithRegex(operand, LOWER_MATCH)) {\n operandType = LOWER_VALUE;\n operandValue = extractOperandValue(operand, LOWER_MATCH);\n } else if (matchWithRegex(operand, WILDCARD_MATCH)) {\n operandValue = extractOperandValue(operand, WILDCARD_MATCH);\n startingStar = matchWithRegex(operandValue, STARTING_STAR);\n endingStar = matchWithRegex(operandValue, ENDING_STAR); // In case of wildcard, the operand type is further divided into contains, startswith and endswith\n\n if (startingStar && endingStar) {\n operandType = STARTING_ENDING_STAR_VALUE;\n } else if (startingStar) {\n operandType = STARTING_STAR_VALUE;\n } else if (endingStar) {\n operandType = ENDING_STAR_VALUE;\n }\n\n operandValue = operandValue.replace(STARTING_STAR, '').replace(ENDING_STAR, '');\n } else if (matchWithRegex(operand, REGEX_MATCH)) {\n operandType = REGEX_VALUE;\n operandValue = extractOperandValue(operand, REGEX_MATCH);\n } else if (matchWithRegex(operand, GREATER_THAN_MATCH)) {\n operandType = GREATER_THAN_VALUE;\n operandValue = extractOperandValue(operand, GREATER_THAN_MATCH);\n } else if (matchWithRegex(operand, GREATER_THAN_EQUAL_TO_MATCH)) {\n operandType = GREATER_THAN_EQUAL_TO_VALUE;\n operandValue = extractOperandValue(operand, GREATER_THAN_EQUAL_TO_MATCH);\n } else if (matchWithRegex(operand, LESS_THAN_MATCH)) {\n operandType = LESS_THAN_VALUE;\n operandValue = extractOperandValue(operand, LESS_THAN_MATCH);\n } else if (matchWithRegex(operand, LESS_THAN_EQUAL_TO_MATCH)) {\n operandType = LESS_THAN_EQUAL_TO_VALUE;\n operandValue = extractOperandValue(operand, LESS_THAN_EQUAL_TO_MATCH);\n } else {\n operandType = EQUAL_VALUE;\n operandValue = operand;\n }\n\n return {\n operandType: operandType,\n operandValue: operandValue\n };\n}\n\nfunction operandCustomVariablesParser(operand, customVariables) {\n // Extract custom_variable_key and custom_variable_value from operand\n var _getKeyValue = getKeyValue(operand),\n key = _getKeyValue.key,\n value = _getKeyValue.value;\n\n var operandKey = key;\n operand = value;\n\n if (!customVariables.hasOwnProperty(key)) {\n // For handling \".*\" regex case when key is not present in customVariables and matches regex is used.\n return false;\n }\n\n var tagValue = customVariables[operandKey]; // Pre process tag value\n\n tagValue = preProcessTagValue(tagValue);\n\n var _preProcessOperandVal = preProcessOperandValue(operand),\n operandType = _preProcessOperandVal.operandType,\n operandValue = _preProcessOperandVal.operandValue; // Process both operand and tag values\n\n\n var processedValues = processValues(operandValue, tagValue);\n tagValue = processedValues.tagValue;\n return extractResult(operandType, processedValues.operandValue, tagValue);\n}\n\nfunction operandUserParser(operand, customVariables) {\n var users = operand.split(',');\n\n for (var i = 0; i < users.length; i++) {\n if (users[i].trim() === customVariables._vwoUserId) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction extractResult(operandType, operandValue, tagValue) {\n var result;\n\n switch (operandType) {\n case LOWER_VALUE:\n if (tagValue !== null) {\n result = operandValue.toLowerCase() === tagValue.toLowerCase();\n }\n\n break;\n\n case STARTING_ENDING_STAR_VALUE:\n if (tagValue !== null) {\n result = tagValue.indexOf(operandValue) > -1;\n }\n\n break;\n\n case STARTING_STAR_VALUE:\n if (tagValue !== null) {\n result = tagValue.endsWith(operandValue);\n }\n\n break;\n\n case ENDING_STAR_VALUE:\n if (tagValue !== null) {\n result = tagValue.startsWith(operandValue);\n }\n\n break;\n\n case REGEX_VALUE:\n try {\n var pattern = new RegExp(operandValue, 'g');\n result = !!pattern.test(tagValue);\n } catch (err) {\n result = false;\n }\n\n break;\n\n case GREATER_THAN_VALUE:\n if (tagValue !== null) {\n try {\n result = parseFloat(operandValue) < parseFloat(tagValue);\n } catch (err) {\n result = false;\n }\n }\n\n break;\n\n case GREATER_THAN_EQUAL_TO_VALUE:\n if (tagValue !== null) {\n try {\n result = parseFloat(operandValue) <= parseFloat(tagValue);\n } catch (err) {\n result = false;\n }\n }\n\n break;\n\n case LESS_THAN_VALUE:\n if (tagValue !== null) {\n try {\n result = parseFloat(operandValue) > parseFloat(tagValue);\n } catch (err) {\n result = false;\n }\n }\n\n break;\n\n case LESS_THAN_EQUAL_TO_VALUE:\n if (tagValue !== null) {\n try {\n result = parseFloat(operandValue) >= parseFloat(tagValue);\n } catch (err) {\n result = false;\n }\n }\n\n break;\n\n default:\n result = tagValue === operandValue;\n }\n\n return result;\n}\n\nmodule.exports = {\n extractOperandValue: extractOperandValue,\n processValues: processValues,\n preProcessTagValue: preProcessTagValue,\n preProcessOperandValue: preProcessOperandValue,\n operandCustomVariablesParser: operandCustomVariablesParser,\n operandUserParser: operandUserParser\n};\n\n/***/ }),\n\n/***/ \"./lib/utils/SettingsFileUtil.js\":\n/*!***************************************!*\\\n !*** ./lib/utils/SettingsFileUtil.js ***!\n \\***************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar Constants = __webpack_require__(/*! ../constants */ \"./lib/constants/index.js\");\n\nvar UrlEnum = __webpack_require__(/*! ../enums/UrlEnum */ \"./lib/enums/UrlEnum.js\");\n\nvar _require = __webpack_require__(/*! ./FunctionUtil */ \"./lib/utils/FunctionUtil.js\"),\n getRandomNumber = _require.getRandomNumber,\n getCurrentTime = _require.getCurrentTime;\n\nvar SettingsFileUtil = {\n get: function get(accountId, sdkKey, userStorageService) {\n var config = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n if (!accountId || !sdkKey) {\n console.error('AccountId and sdkKey are required for fetching account settings. Aborting!');\n return;\n }\n\n var protocol = 'https';\n var port;\n var hostname = UrlEnum.BASE_URL;\n var path = UrlEnum.SETTINGS_URL;\n\n if (config.isViaWebhook) {\n path = UrlEnum.WEBHOOK_SETTINGS_URL;\n }\n\n path += \"?a=\".concat(accountId, \"&\") + \"i=\".concat(sdkKey, \"&\") + \"r=\".concat(getRandomNumber(), \"&\") + \"platform=\".concat(Constants.PLATFORM, \"&\") + \"\".concat(Constants.SDK_QUERY_PARAM, \"=\").concat(Constants.SDK_NAME, \"&\") + \"\".concat(Constants.SDK_VERSION_QUERY_PARAM, \"=\").concat(Constants.SDK_VERSION);\n\n if (config.hostname && config.path) {\n protocol = config.protocol;\n port = config.port;\n hostname = config.hostname || hostname;\n path = config.path || path;\n }\n\n if (true) {\n if (typeof XMLHttpRequest === 'undefined') {\n return __webpack_require__(/*! ./FetchUtil */ \"./lib/utils/FetchUtil.js\").send({\n method: 'GET',\n url: \"\".concat(protocol, \"://\").concat(hostname).concat(path),\n userStorageService: userStorageService\n });\n }\n\n return __webpack_require__(/*! ./XhrUtil */ \"./lib/utils/XhrUtil.js\").send({\n method: 'GET',\n url: \"\".concat(protocol, \"://\").concat(hostname).concat(path),\n userStorageService: userStorageService\n });\n } else { var https, http; }\n },\n handleHttpRequest: function handleHttpRequest(res, resolve, reject) {\n var statusCode = res.statusCode;\n var contentType = res.headers['content-type'];\n var error;\n var rawData = '';\n\n if (!/^application\\/json/.test(contentType)) {\n error = \"Invalid content-type.\\nExpected application/json but received \".concat(contentType);\n }\n\n if (error) {\n console.error(error.message); // Consume response data to free up memory\n\n res.resume();\n reject(error);\n return;\n }\n\n res.setEncoding('utf8');\n res.on('data', function (chunk) {\n rawData += chunk;\n });\n res.on('end', function () {\n SettingsFileUtil.handleHttpResponse(statusCode, rawData, resolve, reject);\n });\n },\n handleHttpResponse: function handleHttpResponse(statusCode, rawData, resolve, reject) {\n try {\n var parsedData = JSON.parse(rawData);\n\n if (statusCode !== 200) {\n var error = \"VWO-SDK - [ERROR]: \".concat(getCurrentTime(), \" Request failed for fetching account settings. Got Status Code: \").concat(statusCode, \" and message: \").concat(rawData);\n console.error(error);\n reject(error);\n return;\n }\n\n resolve(parsedData);\n } catch (err) {\n console.error(\"VWO-SDK - [ERROR]: \".concat(getCurrentTime(), \" Request failed for fetching account settings - \").concat(err.message));\n reject(err);\n }\n }\n};\nmodule.exports = SettingsFileUtil;\n\n/***/ }),\n\n/***/ \"./lib/utils/UuidUtil.js\":\n/*!*******************************!*\\\n !*** ./lib/utils/UuidUtil.js ***!\n \\*******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar uuidv5 = __webpack_require__(/*! uuid/v5 */ \"./node_modules/uuid/v5.js\");\n\nvar Constants = __webpack_require__(/*! ../constants */ \"./lib/constants/index.js\");\n\nvar VWO_NAMESPACE = uuidv5(Constants.SEED_URL, uuidv5.URL);\nvar UuidUtil = {\n generateFor: function generateFor(userId, accountId) {\n userId = \"\".concat(userId); // type-cast\n\n var hash = \"\".concat(accountId);\n var userIdNamespace = UuidUtil.generate(hash, VWO_NAMESPACE);\n var uuidForUserIdAccountId = UuidUtil.generate(userId, userIdNamespace);\n var desiredUuid = uuidForUserIdAccountId.replace(/-/gi, '').toUpperCase();\n return desiredUuid;\n },\n generate: function generate(name, namespace) {\n if (!name || !namespace) {\n return;\n }\n\n return uuidv5(name, namespace);\n }\n};\nmodule.exports = UuidUtil;\n\n/***/ }),\n\n/***/ \"./lib/utils/VWOFeatureFlags.js\":\n/*!**************************************!*\\\n !*** ./lib/utils/VWOFeatureFlags.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar VWOFeatureFlags = {\n init: function init(settingsFile) {\n VWOFeatureFlags.isEventArchEnabled = settingsFile.isEventArchEnabled;\n VWOFeatureFlags.isNB = settingsFile.isNB;\n VWOFeatureFlags.isNBv2 = settingsFile.isNBv2;\n },\n getAll: function getAll() {\n return {\n isEventArchEnabled: VWOFeatureFlags.isEventArchEnabled,\n isNB: VWOFeatureFlags.isNB,\n isNBv2: VWOFeatureFlags.isNBv2\n };\n }\n};\nmodule.exports = VWOFeatureFlags;\n\n/***/ }),\n\n/***/ \"./lib/utils/ValidateUtil.js\":\n/*!***********************************!*\\\n !*** ./lib/utils/ValidateUtil.js ***!\n \\***********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar _APIMethodArgumentsVa;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar DataTypeUtil = __webpack_require__(/*! ./DataTypeUtil */ \"./lib/utils/DataTypeUtil.js\");\n\nvar DataTypeEnum = __webpack_require__(/*! ../enums/DataTypeEnum */ \"./lib/enums/DataTypeEnum.js\");\n\nvar ApiEnum = __webpack_require__(/*! ../enums/ApiEnum */ \"./lib/enums/ApiEnum.js\");\n\nvar GoalTypeEnum = __webpack_require__(/*! ../enums/GoalTypeEnum */ \"./lib/enums/GoalTypeEnum.js\");\n\nvar APIMethodArgumentsValidationEnum = (_APIMethodArgumentsVa = {}, _defineProperty(_APIMethodArgumentsVa, ApiEnum.ACTIVATE, function (_ref) {\n var campaignKey = _ref.campaignKey,\n userId = _ref.userId,\n _ref$customVariables = _ref.customVariables,\n customVariables = _ref$customVariables === void 0 ? {} : _ref$customVariables,\n _ref$variationTargeti = _ref.variationTargetingVariables,\n variationTargetingVariables = _ref$variationTargeti === void 0 ? {} : _ref$variationTargeti,\n _ref$userStorageData = _ref.userStorageData,\n userStorageData = _ref$userStorageData === void 0 ? {} : _ref$userStorageData,\n _ref$shouldTrackRetur = _ref.shouldTrackReturningUser,\n shouldTrackReturningUser = _ref$shouldTrackRetur === void 0 ? false : _ref$shouldTrackRetur,\n _ref$metaData = _ref.metaData,\n metaData = _ref$metaData === void 0 ? {} : _ref$metaData;\n return [{\n key: 'campaignKey',\n value: campaignKey,\n type: DataTypeEnum.STRING\n }, {\n key: 'userId',\n value: userId,\n type: DataTypeEnum.STRING\n }, {\n key: 'customVariables',\n value: customVariables,\n type: DataTypeEnum.OBJECT\n }, {\n key: 'variationTargetingVariables',\n value: variationTargetingVariables,\n type: DataTypeEnum.OBJECT\n }, {\n key: 'userStorageData',\n value: userStorageData,\n type: DataTypeEnum.OBJECT\n }, {\n key: 'shouldTrackReturningUser',\n value: shouldTrackReturningUser,\n type: DataTypeEnum.BOOLEAN\n }, {\n key: 'metaData',\n value: metaData,\n type: DataTypeEnum.OBJECT\n }];\n}), _defineProperty(_APIMethodArgumentsVa, ApiEnum.TRACK, function (_ref2) {\n var campaignKey = _ref2.campaignKey,\n userId = _ref2.userId,\n goalIdentifier = _ref2.goalIdentifier,\n _ref2$customVariables = _ref2.customVariables,\n customVariables = _ref2$customVariables === void 0 ? {} : _ref2$customVariables,\n _ref2$variationTarget = _ref2.variationTargetingVariables,\n variationTargetingVariables = _ref2$variationTarget === void 0 ? {} : _ref2$variationTarget,\n _ref2$userStorageData = _ref2.userStorageData,\n userStorageData = _ref2$userStorageData === void 0 ? {} : _ref2$userStorageData,\n _ref2$goalTypeToTrack = _ref2.goalTypeToTrack,\n goalTypeToTrack = _ref2$goalTypeToTrack === void 0 ? GoalTypeEnum.ALL : _ref2$goalTypeToTrack,\n _ref2$shouldTrackRetu = _ref2.shouldTrackReturningUser,\n shouldTrackReturningUser = _ref2$shouldTrackRetu === void 0 ? false : _ref2$shouldTrackRetu,\n _ref2$metaData = _ref2.metaData,\n metaData = _ref2$metaData === void 0 ? {} : _ref2$metaData;\n return [{\n key: 'campaignKey',\n value: campaignKey,\n type: DataTypeEnum.STRING_NULL_UNDEFINED_ARRAY\n }, {\n key: 'userId',\n value: userId,\n type: DataTypeEnum.STRING\n }, {\n key: 'goalIdentifier',\n value: goalIdentifier,\n type: DataTypeEnum.STRING\n }, {\n key: 'customVariables',\n value: customVariables,\n type: DataTypeEnum.OBJECT\n }, {\n key: 'variationTargetingVariables',\n value: variationTargetingVariables,\n type: DataTypeEnum.OBJECT\n }, {\n key: 'userStorageData',\n value: userStorageData,\n type: DataTypeEnum.OBJECT\n }, {\n key: 'goalTypeToTrack',\n value: goalTypeToTrack,\n type: DataTypeEnum.STRING\n }, {\n key: 'shouldTrackReturningUser',\n value: shouldTrackReturningUser,\n type: DataTypeEnum.BOOLEAN\n }, {\n key: 'metaData',\n value: metaData,\n type: DataTypeEnum.OBJECT\n }];\n}), _defineProperty(_APIMethodArgumentsVa, ApiEnum.IS_FEATURE_ENABLED, function (_ref3) {\n var campaignKey = _ref3.campaignKey,\n userId = _ref3.userId,\n _ref3$customVariables = _ref3.customVariables,\n customVariables = _ref3$customVariables === void 0 ? {} : _ref3$customVariables,\n _ref3$variationTarget = _ref3.variationTargetingVariables,\n variationTargetingVariables = _ref3$variationTarget === void 0 ? {} : _ref3$variationTarget,\n _ref3$userStorageData = _ref3.userStorageData,\n userStorageData = _ref3$userStorageData === void 0 ? {} : _ref3$userStorageData,\n _ref3$shouldTrackRetu = _ref3.shouldTrackReturningUser,\n shouldTrackReturningUser = _ref3$shouldTrackRetu === void 0 ? false : _ref3$shouldTrackRetu,\n _ref3$metaData = _ref3.metaData,\n metaData = _ref3$metaData === void 0 ? {} : _ref3$metaData;\n return [{\n key: 'campaignKey',\n value: campaignKey,\n type: DataTypeEnum.STRING\n }, {\n key: 'userId',\n value: userId,\n type: DataTypeEnum.STRING\n }, {\n key: 'customVariables',\n value: customVariables,\n type: DataTypeEnum.OBJECT\n }, {\n key: 'variationTargetingVariables',\n value: variationTargetingVariables,\n type: DataTypeEnum.OBJECT\n }, {\n key: 'userStorageData',\n value: userStorageData,\n type: DataTypeEnum.OBJECT\n }, {\n key: 'shouldTrackReturningUser',\n value: shouldTrackReturningUser,\n type: DataTypeEnum.BOOLEAN\n }, {\n key: 'metaData',\n value: metaData,\n type: DataTypeEnum.OBJECT\n }];\n}), _defineProperty(_APIMethodArgumentsVa, ApiEnum.GET_FEATURE_VARIABLE_VALUE, function (_ref4) {\n var campaignKey = _ref4.campaignKey,\n variableKey = _ref4.variableKey,\n userId = _ref4.userId,\n _ref4$customVariables = _ref4.customVariables,\n customVariables = _ref4$customVariables === void 0 ? {} : _ref4$customVariables,\n _ref4$variationTarget = _ref4.variationTargetingVariables,\n variationTargetingVariables = _ref4$variationTarget === void 0 ? {} : _ref4$variationTarget,\n _ref4$userStorageData = _ref4.userStorageData,\n userStorageData = _ref4$userStorageData === void 0 ? {} : _ref4$userStorageData,\n _ref4$metaData = _ref4.metaData,\n metaData = _ref4$metaData === void 0 ? {} : _ref4$metaData;\n return [{\n key: 'campaignKey',\n value: campaignKey,\n type: DataTypeEnum.STRING\n }, {\n key: 'variableKey',\n value: variableKey,\n type: DataTypeEnum.STRING\n }, {\n key: 'userId',\n value: userId,\n type: DataTypeEnum.STRING\n }, {\n key: 'customVariables',\n value: customVariables,\n type: DataTypeEnum.OBJECT\n }, {\n key: 'variationTargetingVariables',\n value: variationTargetingVariables,\n type: DataTypeEnum.OBJECT\n }, {\n key: 'userStorageData',\n value: userStorageData,\n type: DataTypeEnum.OBJECT\n }, {\n key: 'metaData',\n value: metaData,\n type: DataTypeEnum.OBJECT\n }];\n}), _defineProperty(_APIMethodArgumentsVa, ApiEnum.PUSH, function (_ref5) {\n var tagKey = _ref5.tagKey,\n tagValue = _ref5.tagValue,\n userId = _ref5.userId,\n customDimensionMap = _ref5.customDimensionMap;\n return [{\n key: 'tagKey',\n value: tagKey,\n type: DataTypeEnum.STRING\n }, {\n key: 'tagValue',\n value: tagValue,\n type: DataTypeEnum.STRING\n }, {\n key: 'userId',\n value: userId,\n type: DataTypeEnum.STRING\n }, {\n key: 'customDimensionMap',\n value: customDimensionMap,\n type: DataTypeEnum.OBJECT\n }];\n}), _APIMethodArgumentsVa); // both have same\n\nAPIMethodArgumentsValidationEnum[ApiEnum.GET_VARIATION_NAME] = APIMethodArgumentsValidationEnum[ApiEnum.ACTIVATE];\nvar ValidateUtil = {\n isValidValue: function isValidValue(value) {\n return !!(value !== undefined && value);\n },\n isValidString: function isValidString(value) {\n return ValidateUtil.isValidValue(value) && DataTypeUtil.isString(value);\n },\n isValidNumber: function isValidNumber(value) {\n return ValidateUtil.isValidValue(value) && DataTypeUtil.isNumber(value);\n },\n isValidFunction: function isValidFunction(value) {\n return ValidateUtil.isValidValue(value) && DataTypeUtil.isFunction(value);\n },\n isValidBoolean: function isValidBoolean(value) {\n return value !== undefined && DataTypeUtil.isBoolean(value);\n },\n isValidObject: function isValidObject(value) {\n return value !== undefined && DataTypeUtil.isObject(value);\n },\n areValidParamsForAPIMethod: function areValidParamsForAPIMethod(argsObj) {\n var isValid = false;\n var args = APIMethodArgumentsValidationEnum[argsObj.method](argsObj);\n var validators = [];\n\n for (var i = 0; i < args.length; i++) {\n var argConfig = args[i];\n var argValue = argConfig.value;\n var dataType = argConfig.type; // let value;\n\n switch (dataType) {\n case DataTypeEnum.NUMBER:\n validators.push(ValidateUtil.isValidNumber(argValue));\n break;\n\n case DataTypeEnum.STRING:\n validators.push(ValidateUtil.isValidString(argValue));\n break;\n\n case DataTypeEnum.BOOLEAN:\n validators.push(ValidateUtil.isValidBoolean(argValue));\n break;\n // case DataTypeEnum.FUNCTION:\n // validators.push(ValidateUtil.isValidFunction(argValue));\n // break;\n\n case DataTypeEnum.OBJECT:\n validators.push(ValidateUtil.isValidObject(argValue));\n break;\n\n case DataTypeEnum.STRING_NULL_UNDEFINED_ARRAY:\n var value = ValidateUtil.isValidString(argValue) || DataTypeUtil.isUndefined(argValue) || DataTypeUtil.isNull(argValue) || DataTypeUtil.isArray(argValue);\n validators.push(value);\n break;\n // case DataTypeEnum.NUMBER_STRING:\n // value = ValidateUtil.isValidNumber(argValue) || ValidateUtil.isValidString(argValue);\n // validators.push(value);\n // break;\n }\n }\n\n isValid = validators.every(function (val) {\n return val;\n });\n return isValid;\n }\n};\nmodule.exports = ValidateUtil;\n\n/***/ }),\n\n/***/ \"./lib/utils/XhrUtil.js\":\n/*!******************************!*\\\n !*** ./lib/utils/XhrUtil.js ***!\n \\******************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright 2019-2022 Wingify Software Pvt. Ltd.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar logging = __webpack_require__(/*! ../services/logging */ \"./lib/services/logging/index.js\");\n\nvar LogLevelEnum = logging.LogLevelEnum;\n\nvar _require = __webpack_require__(/*! ./FunctionUtil */ \"./lib/utils/FunctionUtil.js\"),\n getCurrentTime = _require.getCurrentTime;\n\nvar _require2 = __webpack_require__(/*! ./DataTypeUtil */ \"./lib/utils/DataTypeUtil.js\"),\n isObject = _require2.isObject,\n isFunction = _require2.isFunction;\n\nvar XhrUtil = {\n _getStoredSettings: function _getStoredSettings(userStorageService) {\n var isStoredData = false;\n var parsedSettings;\n\n if (userStorageService && isObject(userStorageService) && isFunction(userStorageService.getSettings)) {\n try {\n var settings = userStorageService.getSettings();\n parsedSettings = JSON.parse(settings);\n\n if (parsedSettings && isObject(parsedSettings) && Object.keys(parsedSettings).length > 3) {\n var info = \"VWO-SDK - [INFO]: \".concat(getCurrentTime(), \" VWO settings found in Storage Service.\");\n console.info(info);\n isStoredData = true;\n } else if (parsedSettings) {\n var error = \"VWO-SDK - [ERROR]: \".concat(getCurrentTime(), \" VWO settings found in Storage Service is not valid.\");\n console.error(error);\n } else {\n var warning = \"VWO-SDK - [WARNING]: \".concat(getCurrentTime(), \" VWO settings is empty in Storage Service.\");\n console.warn(warning);\n }\n } catch (err) {\n var _error = \"VWO-SDK - [ERROR]: \".concat(getCurrentTime(), \" VWO settings found in Storage Service is not valid. \").concat(err);\n\n console.error(_error);\n isStoredData = false;\n }\n }\n\n return {\n isStoredData: isStoredData,\n parsedSettings: parsedSettings\n };\n },\n send: function send() {\n var _this = this;\n\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n method = _ref.method,\n url = _ref.url,\n payload = _ref.payload,\n userStorageService = _ref.userStorageService,\n customHeaders = _ref.customHeaders,\n logger = _ref.logger;\n\n if (!url || !method) {\n return;\n }\n\n return new Promise(function (resolve, reject) {\n var _XhrUtil$_getStoredSe = XhrUtil._getStoredSettings(userStorageService),\n isStoredData = _XhrUtil$_getStoredSe.isStoredData,\n parsedSettings = _XhrUtil$_getStoredSe.parsedSettings;\n\n if (isStoredData) {\n resolve(parsedSettings);\n } else {\n var xhr = new XMLHttpRequest();\n\n _this.xhrHandler(xhr, method, url, payload, userStorageService, customHeaders, logger, resolve, reject);\n }\n });\n },\n // send request function definition (to allow for retries)\n sendRequest: function sendRequest(retries, maxRetries, logger, customHeaders, payload, method, url, resolve, reject) {\n var _this2 = this;\n\n var delay = 1000 * (retries + 1);\n var xhr = new XMLHttpRequest(); // Configure timeout\n\n xhr.timeout = 5000; // Set timeout to 5 seconds (5000 ms)\n // onload event\n\n xhr.onload = function () {\n // retry if error and less than max retries\n if (xhr.status < 200 || xhr.status >= 300) {\n if (retries < maxRetries) {\n retries++; // log retried times\n\n logger.log(LogLevelEnum.ERROR, \"Retrying with Status Code : \".concat(xhr.status, \", and Response : \").concat(xhr.responseText)); // call send request again, after delay\n\n setTimeout(function () {\n _this2.sendRequest(retries, maxRetries, logger, customHeaders, payload, method, url, resolve, reject);\n }, delay);\n } else {\n // log errors with status (clean up later)\n logger.log(LogLevelEnum.ERROR, \"Request failed with Status Code : \".concat(xhr.status, \" and Response : \").concat(xhr.responseText));\n reject(\"Got Error: \".concat(xhr.statusText, \" and Status Code: \").concat(xhr.status));\n }\n } else {\n // resolve the promise if all well\n resolve(xhr.responseText);\n }\n }; // onerror event\n\n\n xhr.onerror = function () {\n if (retries < maxRetries) {\n retries++;\n logger.log(LogLevelEnum.ERROR, 'Retrying due to network error');\n setTimeout(function () {\n _this2.sendRequest(retries, maxRetries, logger, customHeaders, payload, method, url, resolve, reject);\n }, delay);\n } else {\n reject(\"Network error: \".concat(xhr.statusText, \", Status Code: \").concat(xhr.status));\n }\n }; // ontimeout event\n\n\n xhr.ontimeout = function () {\n if (retries < maxRetries) {\n retries++;\n logger.log(LogLevelEnum.ERROR, 'Retrying due to timeout');\n setTimeout(function () {\n _this2.sendRequest(retries, maxRetries, logger, customHeaders, payload, method, url, resolve, reject);\n }, delay);\n } else {\n reject(\"Timeout error: \".concat(xhr.statusText, \", Status Code: \").concat(xhr.status));\n }\n }; // open connection and add headers if any, and then send\n\n\n xhr.open(method, url, true);\n\n for (var newHeaderName in customHeaders) {\n if (customHeaders.hasOwnProperty(newHeaderName)) {\n xhr.setRequestHeader(newHeaderName, customHeaders[newHeaderName]);\n }\n }\n\n xhr.send(JSON.stringify(payload));\n },\n xhrHandler: function xhrHandler(xhr, method, url, payload, userStorageService) {\n var _this3 = this;\n\n var customHeaders = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n var logger = arguments.length > 6 ? arguments[6] : undefined;\n var resolve = arguments.length > 7 ? arguments[7] : undefined;\n var reject = arguments.length > 8 ? arguments[8] : undefined;\n\n if (method === 'GET') {\n try {\n xhr.onload = function () {\n _this3.xhrOnLoad(xhr, userStorageService, resolve);\n };\n\n xhr.onerror = function () {\n _this3.xhrOnError(xhr, reject);\n };\n\n xhr.open(method, url);\n\n for (var headerName in customHeaders) {\n if (customHeaders.hasOwnProperty(headerName)) {\n xhr.setRequestHeader(headerName, customHeaders[headerName]);\n }\n }\n\n xhr.send();\n } catch (e) {\n console.log(e.message);\n }\n } else if (method === 'POST') {\n // retry params\n var retries = 0;\n var maxRetries = 5; // send request\n\n this.sendRequest(retries, maxRetries, logger, customHeaders, payload, method, url, resolve, reject);\n }\n },\n xhrOnLoad: function xhrOnLoad(xhr, userStorageService, resolve) {\n try {\n var parsedXhrResponse = JSON.parse(xhr.response);\n\n if (userStorageService && isObject(userStorageService) && isFunction(userStorageService.setSettings)) {\n userStorageService.setSettings(xhr.response);\n }\n\n resolve(parsedXhrResponse);\n } catch (err) {\n console.error(err);\n }\n },\n xhrOnError: function xhrOnError(xhr, reject) {\n var error = \"VWO-SDK - [ERROR]: \".concat(getCurrentTime(), \" Request failed for fetching account settings. Got Status Code: \").concat(xhr.status);\n console.error(error);\n reject(error);\n }\n};\nmodule.exports = XhrUtil;\n\n/***/ }),\n\n/***/ \"./node_modules/murmurhash/murmurhash.js\":\n/*!***********************************************!*\\\n !*** ./node_modules/murmurhash/murmurhash.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n(function(){\n var _global = this;\n\n /**\n * JS Implementation of MurmurHash2\n *\n * @author Gary Court\n * @see http://github.com/garycourt/murmurhash-js\n * @author Austin Appleby\n * @see http://sites.google.com/site/murmurhash/\n *\n * @param {string} str ASCII only\n * @param {number} seed Positive integer only\n * @return {number} 32-bit positive integer hash\n */\n function MurmurHashV2(str, seed) {\n var\n l = str.length,\n h = seed ^ l,\n i = 0,\n k;\n\n while (l >= 4) {\n k =\n ((str.charCodeAt(i) & 0xff)) |\n ((str.charCodeAt(++i) & 0xff) << 8) |\n ((str.charCodeAt(++i) & 0xff) << 16) |\n ((str.charCodeAt(++i) & 0xff) << 24);\n\n k = (((k & 0xffff) * 0x5bd1e995) + ((((k >>> 16) * 0x5bd1e995) & 0xffff) << 16));\n k ^= k >>> 24;\n k = (((k & 0xffff) * 0x5bd1e995) + ((((k >>> 16) * 0x5bd1e995) & 0xffff) << 16));\n\n h = (((h & 0xffff) * 0x5bd1e995) + ((((h >>> 16) * 0x5bd1e995) & 0xffff) << 16)) ^ k;\n\n l -= 4;\n ++i;\n }\n\n switch (l) {\n case 3: h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n case 2: h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n case 1: h ^= (str.charCodeAt(i) & 0xff);\n h = (((h & 0xffff) * 0x5bd1e995) + ((((h >>> 16) * 0x5bd1e995) & 0xffff) << 16));\n }\n\n h ^= h >>> 13;\n h = (((h & 0xffff) * 0x5bd1e995) + ((((h >>> 16) * 0x5bd1e995) & 0xffff) << 16));\n h ^= h >>> 15;\n\n return h >>> 0;\n };\n\n /**\n * JS Implementation of MurmurHash3 (r136) (as of May 20, 2011)\n *\n * @author Gary Court\n * @see http://github.com/garycourt/murmurhash-js\n * @author Austin Appleby\n * @see http://sites.google.com/site/murmurhash/\n *\n * @param {string} key ASCII only\n * @param {number} seed Positive integer only\n * @return {number} 32-bit positive integer hash\n */\n function MurmurHashV3(key, seed) {\n var remainder, bytes, h1, h1b, c1, c1b, c2, c2b, k1, i;\n\n remainder = key.length & 3; // key.length % 4\n bytes = key.length - remainder;\n h1 = seed;\n c1 = 0xcc9e2d51;\n c2 = 0x1b873593;\n i = 0;\n\n while (i < bytes) {\n k1 =\n ((key.charCodeAt(i) & 0xff)) |\n ((key.charCodeAt(++i) & 0xff) << 8) |\n ((key.charCodeAt(++i) & 0xff) << 16) |\n ((key.charCodeAt(++i) & 0xff) << 24);\n ++i;\n\n k1 = ((((k1 & 0xffff) * c1) + ((((k1 >>> 16) * c1) & 0xffff) << 16))) & 0xffffffff;\n k1 = (k1 << 15) | (k1 >>> 17);\n k1 = ((((k1 & 0xffff) * c2) + ((((k1 >>> 16) * c2) & 0xffff) << 16))) & 0xffffffff;\n\n h1 ^= k1;\n h1 = (h1 << 13) | (h1 >>> 19);\n h1b = ((((h1 & 0xffff) * 5) + ((((h1 >>> 16) * 5) & 0xffff) << 16))) & 0xffffffff;\n h1 = (((h1b & 0xffff) + 0x6b64) + ((((h1b >>> 16) + 0xe654) & 0xffff) << 16));\n }\n\n k1 = 0;\n\n switch (remainder) {\n case 3: k1 ^= (key.charCodeAt(i + 2) & 0xff) << 16;\n case 2: k1 ^= (key.charCodeAt(i + 1) & 0xff) << 8;\n case 1: k1 ^= (key.charCodeAt(i) & 0xff);\n\n k1 = (((k1 & 0xffff) * c1) + ((((k1 >>> 16) * c1) & 0xffff) << 16)) & 0xffffffff;\n k1 = (k1 << 15) | (k1 >>> 17);\n k1 = (((k1 & 0xffff) * c2) + ((((k1 >>> 16) * c2) & 0xffff) << 16)) & 0xffffffff;\n h1 ^= k1;\n }\n\n h1 ^= key.length;\n\n h1 ^= h1 >>> 16;\n h1 = (((h1 & 0xffff) * 0x85ebca6b) + ((((h1 >>> 16) * 0x85ebca6b) & 0xffff) << 16)) & 0xffffffff;\n h1 ^= h1 >>> 13;\n h1 = ((((h1 & 0xffff) * 0xc2b2ae35) + ((((h1 >>> 16) * 0xc2b2ae35) & 0xffff) << 16))) & 0xffffffff;\n h1 ^= h1 >>> 16;\n\n return h1 >>> 0;\n }\n\n var murmur = MurmurHashV3;\n murmur.v2 = MurmurHashV2;\n murmur.v3 = MurmurHashV3;\n\n if (true) {\n module.exports = murmur;\n } else { var _previousRoot; }\n}());\n\n\n/***/ }),\n\n/***/ \"./node_modules/superstruct/lib/index.es.js\":\n/*!**************************************************!*\\\n !*** ./node_modules/superstruct/lib/index.es.js ***!\n \\**************************************************/\n/*! exports provided: Struct, StructError, any, array, assert, boolean, coerce, coercion, date, defaulted, dynamic, empty, enums, func, instance, intersection, is, lazy, length, literal, map, masked, never, nullable, number, object, optional, partial, pattern, record, refinement, set, string, struct, tuple, type, union, validate */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Struct\", function() { return Struct; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"StructError\", function() { return StructError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"any\", function() { return any; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"array\", function() { return array; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assert\", function() { return assert; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"boolean\", function() { return boolean; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"coerce\", function() { return coerce; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"coercion\", function() { return coercion; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"date\", function() { return date; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaulted\", function() { return defaulted; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dynamic\", function() { return dynamic; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"empty\", function() { return empty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"enums\", function() { return enums; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"func\", function() { return func; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"instance\", function() { return instance; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"intersection\", function() { return intersection; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"is\", function() { return is; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"lazy\", function() { return lazy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"length\", function() { return length; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"literal\", function() { return literal; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"map\", function() { return map; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"masked\", function() { return masked; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"never\", function() { return never; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"nullable\", function() { return nullable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"number\", function() { return number; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"object\", function() { return object; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"optional\", function() { return optional; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"partial\", function() { return partial; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pattern\", function() { return pattern; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"record\", function() { return record; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"refinement\", function() { return refinement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"set\", function() { return set; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"string\", function() { return string; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"struct\", function() { return struct; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tuple\", function() { return tuple; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"type\", function() { return type; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"union\", function() { return union; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"validate\", function() { return validate; });\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n/**\n * Convert a validation result to an iterable of failures.\n */\nfunction* toFailures(result, context) {\n if (result === true) ; else if (result === false) {\n yield context.fail();\n } else {\n yield* result;\n }\n}\n/**\n * Shifts (removes and returns) the first value from the `input` iterator.\n * Like `Array.prototype.shift()` but for an `Iterator`.\n */\n\nfunction iteratorShift(input) {\n const {\n done,\n value\n } = input.next();\n return done ? undefined : value;\n}\n\n/**\n * `Struct` objects encapsulate the schema for a specific data type (with\n * optional coercion). You can then use the `assert`, `is` or `validate` helpers\n * to validate unknown data against a struct.\n */\n\nclass Struct {\n constructor(props) {\n const {\n type,\n schema,\n coercer = value => value,\n validator = () => [],\n refiner = () => []\n } = props;\n this.type = type;\n this.schema = schema;\n this.coercer = coercer;\n this.validator = validator;\n this.refiner = refiner;\n }\n\n}\n/**\n * `StructError` objects are thrown (or returned) by Superstruct when its\n * validation fails. The error represents the first error encountered during\n * validation. But they also have an `error.failures` property that holds\n * information for all of the failures encountered.\n */\n\nclass StructError extends TypeError {\n constructor(failure, moreFailures) {\n const {\n path,\n value,\n type,\n branch\n } = failure,\n rest = _objectWithoutProperties(failure, [\"path\", \"value\", \"type\", \"branch\"]);\n\n const message = `Expected a value of type \\`${type}\\`${path.length ? ` for \\`${path.join('.')}\\`` : ''} but received \\`${JSON.stringify(value)}\\`.`;\n let failuresResult;\n\n function failures() {\n if (!failuresResult) {\n failuresResult = [failure, ...moreFailures];\n }\n\n return failuresResult;\n }\n\n super(message);\n this.value = value;\n Object.assign(this, rest);\n this.type = type;\n this.path = path;\n this.branch = branch;\n this.failures = failures;\n this.stack = new Error().stack;\n this.__proto__ = StructError.prototype;\n }\n\n}\n/**\n * Assert that a value passes a `Struct`, throwing if it doesn't.\n */\n\nfunction assert(value, struct) {\n const result = validate(value, struct);\n\n if (result[0]) {\n throw result[0];\n }\n}\n/**\n * Coerce a value with the coercion logic of `Struct` and validate it.\n */\n\nfunction coerce(value, struct) {\n const ret = struct.coercer(value);\n assert(ret, struct);\n return ret;\n}\n/**\n * Check if a value passes a `Struct`.\n */\n\nfunction is(value, struct) {\n const result = validate(value, struct);\n return !result[0];\n}\n/**\n * Validate a value against a `Struct`, returning an error if invalid.\n */\n\nfunction validate(value, struct, coercing = false) {\n if (coercing) {\n value = struct.coercer(value);\n }\n\n const failures = check(value, struct);\n const failure = iteratorShift(failures);\n\n if (failure) {\n const error = new StructError(failure, failures);\n return [error, undefined];\n } else {\n return [undefined, value];\n }\n}\n/**\n * Check a value against a `Struct`, returning an iterable of failures.\n */\n\nfunction* check(value, struct, path = [], branch = []) {\n const {\n type\n } = struct;\n const ctx = {\n value,\n type,\n branch,\n path,\n\n fail(props = {}) {\n return _objectSpread2({\n value,\n type,\n path,\n branch: [...branch, value]\n }, props);\n },\n\n check(v, s, parent, key) {\n const p = parent !== undefined ? [...path, key] : path;\n const b = parent !== undefined ? [...branch, parent] : branch;\n return check(v, s, p, b);\n }\n\n };\n const failures = toFailures(struct.validator(value, ctx), ctx);\n const failure = iteratorShift(failures);\n\n if (failure) {\n yield failure;\n yield* failures;\n } else {\n yield* toFailures(struct.refiner(value, ctx), ctx);\n }\n}\n\n/**\n * Augment a `Struct` to add an additional coercion step to its input.\n */\n\nfunction coercion(struct, coercer) {\n const fn = struct.coercer;\n return new Struct(_objectSpread2(_objectSpread2({}, struct), {}, {\n coercer: value => {\n return fn(coercer(value));\n }\n }));\n}\n/**\n * Augment a struct to coerce a default value for missing values.\n *\n * Note: You must use `coerce(value, Struct)` on the value before validating it\n * to have the value defaulted!\n */\n\nfunction defaulted(S, fallback, strict) {\n return coercion(S, x => {\n const f = typeof fallback === 'function' ? fallback() : fallback;\n\n if (x === undefined) {\n return f;\n }\n\n if (strict !== true && isPlainObject(x) && isPlainObject(f)) {\n const ret = _objectSpread2({}, x);\n\n let changed = false;\n\n for (const key in f) {\n if (ret[key] === undefined) {\n ret[key] = f[key];\n changed = true;\n }\n }\n\n if (changed) {\n return ret;\n }\n }\n\n return x;\n });\n}\n/**\n * Coerce a value to mask its properties to only that defined in the struct.\n */\n\nfunction masked(S) {\n return coercion(S, x => {\n if (!isPlainObject(x)) {\n return x;\n }\n\n const ret = {};\n\n for (const key in S.schema) {\n ret[key] = x[key];\n }\n\n return ret;\n });\n}\n/**\n * Check if a value is a plain object.\n */\n\nfunction isPlainObject(value) {\n if (Object.prototype.toString.call(value) !== '[object Object]') {\n return false;\n }\n\n const prototype = Object.getPrototypeOf(value);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Augment a string or array struct to constrain its length to zero.\n */\n\nfunction empty(S) {\n return refinement(S, `${S.type} & Empty`, value => {\n return value.length === 0;\n });\n}\n/**\n * Augment a string or array struct to constrain its length to being between a\n * minimum and maximum size.\n */\n\nfunction length(S, min, max) {\n return refinement(S, `${S.type} & Length<${min},${max}>`, value => {\n return min < value.length && value.length < max;\n });\n}\n/**\n * Refine a string struct to match a specific regexp pattern.\n */\n\nfunction pattern(S, regexp) {\n return refinement(S, `${S.type} & Pattern<${regexp.source}>`, value => {\n return regexp.test(value);\n });\n}\n/**\n * Augment a `Struct` to add an additional refinement to the validation.\n */\n\nfunction refinement(struct, type, refiner) {\n const fn = struct.refiner;\n return new Struct(_objectSpread2(_objectSpread2({}, struct), {}, {\n type,\n\n *refiner(value, fail) {\n yield* toFailures(fn(value, fail), fail);\n yield* toFailures(refiner(value, fail), fail);\n }\n\n }));\n}\n\n/**\n * Validate any value.\n */\n\nfunction any() {\n return struct('any', () => true);\n}\nfunction array(Element) {\n return new Struct({\n type: `Array<${Element ? Element.type : 'unknown'}>`,\n schema: Element,\n coercer: value => {\n return Element && Array.isArray(value) ? value.map(v => coerce(v, Element)) : value;\n },\n\n *validator(value, ctx) {\n if (!Array.isArray(value)) {\n yield ctx.fail();\n return;\n }\n\n if (Element) {\n for (const [i, v] of value.entries()) {\n yield* ctx.check(v, Element, value, i);\n }\n }\n }\n\n });\n}\n/**\n * Validate that boolean values.\n */\n\nfunction boolean() {\n return struct('boolean', value => {\n return typeof value === 'boolean';\n });\n}\n/**\n * Validate that `Date` values.\n *\n * Note: this also ensures that the value is *not* an invalid `Date` object,\n * which can occur when parsing a date fails but still returns a `Date`.\n */\n\nfunction date() {\n return struct('Date', value => {\n return value instanceof Date && !isNaN(value.getTime());\n });\n}\n/**\n * Validate that a value dynamically, determing which struct to use at runtime.\n */\n\nfunction dynamic(fn) {\n return struct('Dynamic<...>', (value, ctx) => {\n return ctx.check(value, fn(value, ctx));\n });\n}\nfunction enums(values) {\n return struct(`Enum<${values.map(toLiteralString)}>`, value => {\n return values.includes(value);\n });\n}\n/**\n * Validate that a value is a function.\n */\n\nfunction func() {\n return struct('Function', value => {\n return typeof value === 'function';\n });\n}\n/**\n * Validate that a value is an instance of a class.\n */\n\nfunction instance(Class) {\n return struct(`InstanceOf<${Class.name}>`, value => {\n return value instanceof Class;\n });\n}\nfunction intersection(Structs) {\n return struct(Structs.map(s => s.type).join(' & '), function* (value, ctx) {\n for (const S of Structs) {\n yield* ctx.check(value, S);\n }\n });\n}\n/**\n * Validate a value lazily, by constructing the struct right before the first\n * validation. This is useful for cases where you want to have self-referential\n * structs for nested data structures.\n */\n\nfunction lazy(fn) {\n let S;\n return struct('Lazy<...>', (value, ctx) => {\n if (!S) {\n S = fn();\n }\n\n return ctx.check(value, S);\n });\n}\nfunction literal(constant) {\n return struct(`Literal<${toLiteralString(constant)}>`, value => {\n return value === constant;\n });\n}\n/**\n * Validate that a value is a map with specific key and value entries.\n */\n\nfunction map(Key, Value) {\n return struct(`Map<${Key.type},${Value.type}>`, function* (value, ctx) {\n if (!(value instanceof Map)) {\n yield ctx.fail();\n return;\n }\n\n for (const [k, v] of value.entries()) {\n yield* ctx.check(k, Key, value, k);\n yield* ctx.check(v, Value, value, k);\n }\n });\n}\n/**\n * Validate that a value always fails.\n */\n\nfunction never() {\n return struct('never', () => false);\n}\n/**\n * Augment a struct to make it accept `null` values.\n */\n\nfunction nullable(S) {\n return new Struct({\n type: `${S.type} | null`,\n schema: S.schema,\n validator: (value, ctx) => {\n return value === null || ctx.check(value, S);\n }\n });\n}\n/**\n * Validate that a value is a number.\n */\n\nfunction number() {\n return struct(`number`, value => {\n return typeof value === 'number' && !isNaN(value);\n });\n}\nfunction object(Structs) {\n const knowns = Structs ? Object.keys(Structs) : [];\n const Never = never();\n return new Struct({\n type: Structs ? `Object<{${knowns.join(',')}}>` : 'Object',\n schema: Structs ? Structs : null,\n coercer: Structs ? createObjectCoercer(Structs) : x => x,\n\n *validator(value, ctx) {\n if (typeof value !== 'object' || value == null) {\n yield ctx.fail();\n return;\n }\n\n if (Structs) {\n const unknowns = new Set(Object.keys(value));\n\n for (const key of knowns) {\n unknowns.delete(key);\n const Value = Structs[key];\n const v = value[key];\n yield* ctx.check(v, Value, value, key);\n }\n\n for (const key of unknowns) {\n const v = value[key];\n yield* ctx.check(v, Never, value, key);\n }\n }\n }\n\n });\n}\n/**\n * Augment a struct to make it optionally accept `undefined` values.\n */\n\nfunction optional(S) {\n return new Struct({\n type: `${S.type}?`,\n schema: S.schema,\n validator: (value, ctx) => {\n return value === undefined || ctx.check(value, S);\n }\n });\n}\n/**\n * Validate that a partial object with specific entry values.\n */\n\nfunction partial(Structs) {\n if (Structs instanceof Struct) {\n Structs = Structs.schema;\n }\n\n const knowns = Object.keys(Structs);\n const Never = never();\n return new Struct({\n type: `Partial<{${knowns.join(',')}}>`,\n schema: Structs,\n coercer: createObjectCoercer(Structs),\n\n *validator(value, ctx) {\n if (typeof value !== 'object' || value == null) {\n yield ctx.fail();\n return;\n }\n\n const unknowns = new Set(Object.keys(value));\n\n for (const key of knowns) {\n unknowns.delete(key);\n\n if (!(key in value)) {\n continue;\n }\n\n const Value = Structs[key];\n const v = value[key];\n yield* ctx.check(v, Value, value, key);\n }\n\n for (const key of unknowns) {\n const v = value[key];\n yield* ctx.check(v, Never, value, key);\n }\n }\n\n });\n}\n/**\n * Validate that a value is a record with specific key and\n * value entries.\n */\n\nfunction record(Key, Value) {\n return struct(`Record<${Key.type},${Value.type}>`, function* (value, ctx) {\n if (typeof value !== 'object' || value == null) {\n yield ctx.fail();\n return;\n }\n\n for (const k in value) {\n const v = value[k];\n yield* ctx.check(k, Key, value, k);\n yield* ctx.check(v, Value, value, k);\n }\n });\n}\n/**\n * Validate that a set of values matches a specific type.\n */\n\nfunction set(Element) {\n return struct(`Set<${Element.type}>`, (value, ctx) => {\n if (!(value instanceof Set)) {\n return false;\n }\n\n for (const val of value) {\n const [failure] = ctx.check(val, Element);\n\n if (failure) {\n return false;\n }\n }\n\n return true;\n });\n}\n/**\n * Validate that a value is a string.\n */\n\nfunction string() {\n return struct('string', value => {\n return typeof value === 'string';\n });\n}\n/**\n * Define a `Struct` instance with a type and validation function.\n */\n\nfunction struct(name, validator) {\n return new Struct({\n type: name,\n validator,\n schema: null\n });\n}\nfunction tuple(Elements) {\n const Never = never();\n return struct(`[${Elements.map(s => s.type).join(',')}]`, function* (value, ctx) {\n if (!Array.isArray(value)) {\n yield ctx.fail();\n return;\n }\n\n for (const [index, Element] of Elements.entries()) {\n const v = value[index];\n yield* ctx.check(v, Element, value, index);\n }\n\n if (value.length > Elements.length) {\n const index = Elements.length;\n const v = value[index];\n yield* ctx.check(v, Never, value, index);\n }\n });\n}\n/**\n * Validate that a value matches a specific strutural interface, like the\n * structural typing that TypeScript uses.\n */\n\nfunction type(Structs) {\n const keys = Object.keys(Structs);\n return struct(`Type<{${keys.join(',')}}>`, function* (value, ctx) {\n if (typeof value !== 'object' || value == null) {\n yield ctx.fail();\n return;\n }\n\n for (const key of keys) {\n const Value = Structs[key];\n const v = value[key];\n yield* ctx.check(v, Value, value, key);\n }\n });\n}\nfunction union(Structs) {\n return struct(`${Structs.map(s => s.type).join(' | ')}`, function* (value, ctx) {\n for (const S of Structs) {\n const [...failures] = ctx.check(value, S);\n\n if (failures.length === 0) {\n return;\n }\n }\n\n yield ctx.fail();\n });\n}\n/**\n * Convert a value to a literal string.\n */\n\nfunction toLiteralString(value) {\n return typeof value === 'string' ? `\"${value.replace(/\"/g, '\"')}\"` : `${value}`;\n}\n/**\n * Coerce the values of an object-like struct.\n */\n\n\nfunction createObjectCoercer(Structs) {\n const knowns = Object.keys(Structs);\n return value => {\n if (typeof value !== 'object' || value == null) {\n return value;\n }\n\n const ret = {};\n const unknowns = new Set(Object.keys(value));\n\n for (const key of knowns) {\n unknowns.delete(key);\n const Value = Structs[key];\n const v = value[key];\n ret[key] = coerce(v, Value);\n }\n\n for (const key of unknowns) {\n ret[key] = value[key];\n }\n\n return ret;\n };\n}\n\n\n//# sourceMappingURL=index.es.js.map\n\n\n/***/ }),\n\n/***/ \"./node_modules/uuid/lib/bytesToUuid.js\":\n/*!**********************************************!*\\\n !*** ./node_modules/uuid/lib/bytesToUuid.js ***!\n \\**********************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([bth[buf[i++]], bth[buf[i++]], \n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]]]).join('');\n}\n\nmodule.exports = bytesToUuid;\n\n\n/***/ }),\n\n/***/ \"./node_modules/uuid/lib/sha1-browser.js\":\n/*!***********************************************!*\\\n !*** ./node_modules/uuid/lib/sha1-browser.js ***!\n \\***********************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\n\n\nfunction f(s, x, y, z) {\n switch (s) {\n case 0: return (x & y) ^ (~x & z);\n case 1: return x ^ y ^ z;\n case 2: return (x & y) ^ (x & z) ^ (y & z);\n case 3: return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return (x << n) | (x>>> (32 - n));\n}\n\nfunction sha1(bytes) {\n var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof(bytes) == 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n bytes = new Array(msg.length);\n for (var i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i);\n }\n\n bytes.push(0x80);\n\n var l = bytes.length/4 + 2;\n var N = Math.ceil(l/16);\n var M = new Array(N);\n\n for (var i=0; i>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = (H[0] + a) >>> 0;\n H[1] = (H[1] + b) >>> 0;\n H[2] = (H[2] + c) >>> 0;\n H[3] = (H[3] + d) >>> 0;\n H[4] = (H[4] + e) >>> 0;\n }\n\n return [\n H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff,\n H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff,\n H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff,\n H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff,\n H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff\n ];\n}\n\nmodule.exports = sha1;\n\n\n/***/ }),\n\n/***/ \"./node_modules/uuid/lib/v35.js\":\n/*!**************************************!*\\\n !*** ./node_modules/uuid/lib/v35.js ***!\n \\**************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar bytesToUuid = __webpack_require__(/*! ./bytesToUuid */ \"./node_modules/uuid/lib/bytesToUuid.js\");\n\nfunction uuidToBytes(uuid) {\n // Note: We assume we're being passed a valid uuid string\n var bytes = [];\n uuid.replace(/[a-fA-F0-9]{2}/g, function(hex) {\n bytes.push(parseInt(hex, 16));\n });\n\n return bytes;\n}\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n var bytes = new Array(str.length);\n for (var i = 0; i < str.length; i++) {\n bytes[i] = str.charCodeAt(i);\n }\n return bytes;\n}\n\nmodule.exports = function(name, version, hashfunc) {\n var generateUUID = function(value, namespace, buf, offset) {\n var off = buf && offset || 0;\n\n if (typeof(value) == 'string') value = stringToBytes(value);\n if (typeof(namespace) == 'string') namespace = uuidToBytes(namespace);\n\n if (!Array.isArray(value)) throw TypeError('value must be an array of bytes');\n if (!Array.isArray(namespace) || namespace.length !== 16) throw TypeError('namespace must be uuid string or an Array of 16 byte values');\n\n // Per 4.3\n var bytes = hashfunc(namespace.concat(value));\n bytes[6] = (bytes[6] & 0x0f) | version;\n bytes[8] = (bytes[8] & 0x3f) | 0x80;\n\n if (buf) {\n for (var idx = 0; idx < 16; ++idx) {\n buf[off+idx] = bytes[idx];\n }\n }\n\n return buf || bytesToUuid(bytes);\n };\n\n // Function#name is not settable on some platforms (#270)\n try {\n generateUUID.name = name;\n } catch (err) {\n }\n\n // Pre-defined namespaces, per Appendix C\n generateUUID.DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\n generateUUID.URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\n\n return generateUUID;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/uuid/v5.js\":\n/*!*********************************!*\\\n !*** ./node_modules/uuid/v5.js ***!\n \\*********************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar v35 = __webpack_require__(/*! ./lib/v35.js */ \"./node_modules/uuid/lib/v35.js\");\nvar sha1 = __webpack_require__(/*! ./lib/sha1 */ \"./node_modules/uuid/lib/sha1-browser.js\");\nmodule.exports = v35('v5', 0x50, sha1);\n\n\n/***/ }),\n\n/***/ \"./node_modules/vwo-sdk-log-messages/src/debug-messages.json\":\n/*!*******************************************************************!*\\\n !*** ./node_modules/vwo-sdk-log-messages/src/debug-messages.json ***!\n \\*******************************************************************/\n/*! exports provided: CONFIG_BATCH_EVENT_LIMIT_EXCEEDED, CONFIG_LOG_LEVEL_SET, CONFIG_CUSTOM_LOGGER_USED, CONFIG_DEVELOPMENT_MODE_STATUS, POLLING_SETTINGS_FILE_REGISTERED, SETTINGS_FILE_PROCESSED, IMPRESSION_FOR_TRACK_USER, IMPRESSION_FOR_TRACK_GOAL, IMPRESSION_FOR_PUSH, IMPRESSION_FOR_EVENT_ARCH_TRACK_USER, IMPRESSION_FOR_EVENT_ARCH_TRACK_GOAL, IMPRESSION_FOR_EVENT_ARCH_PUSH, EVENT_BATCH_BEFORE_FLUSHING, EVENT_BATCH_FLUSH, USER_STORAGE_SERVICE_NOT_CONFIGURED, USER_STORAGE_SERVICE_NO_STORED_DATA, VARIATION_RANGE_ALLOCATION, MEG_ELIGIBLE_CAMPAIGNS, SEGMENTATION_SKIPPED, SEGMENTATION_STATUS, WHITELISTING_SKIPPED, USER_UUID, USER_HASH_BUCKET_VALUE, USER_CAMPAIGN_BUCKET_VALUES, default */\n/***/ (function(module) {\n\nmodule.exports = JSON.parse(\"{\\\"CONFIG_BATCH_EVENT_LIMIT_EXCEEDED\\\":\\\"({file}): Impression event - {endPoint} failed due to exceeding payload size. Parameter eventsPerRequest in batchEvents config in launch API has value:{eventsPerRequest} for account ID:{accountId}. Please read the official documentation for knowing the size limits\\\",\\\"CONFIG_LOG_LEVEL_SET\\\":\\\"({file}): Log level set to {level}\\\",\\\"CONFIG_CUSTOM_LOGGER_USED\\\":\\\"({file}): Custom logger used\\\",\\\"CONFIG_DEVELOPMENT_MODE_STATUS\\\":\\\"({file}): DEVELOPMENT mode is ON. No tracking call will be made to VWO Server\\\",\\\"POLLING_SETTINGS_FILE_REGISTERED\\\":\\\"({file}): Polling of settings-file is registered with a periodic interval of {pollingInterval} ms\\\",\\\"SETTINGS_FILE_PROCESSED\\\":\\\"({file}): settings-file matches the schema, validated and properly processed for the Account ID:{accountId}\\\",\\\"IMPRESSION_FOR_TRACK_USER\\\":\\\"({file}): Impression built for tracking user - {properties}\\\",\\\"IMPRESSION_FOR_TRACK_GOAL\\\":\\\"({file}): Impression built for tracking goal - {properties}\\\",\\\"IMPRESSION_FOR_PUSH\\\":\\\"({file}): Impression built for pushing custom dimension - {properties}\\\",\\\"IMPRESSION_FOR_EVENT_ARCH_TRACK_USER\\\":\\\"({file}): Impression built for vwo_variationShown event for Account ID:{accountId}, User ID:{userId}, and Campaign ID:{campaignId}\\\",\\\"IMPRESSION_FOR_EVENT_ARCH_TRACK_GOAL\\\":\\\"({file}): Impression built for {goalName} event for Account ID:{accountId}, User ID:{userId}, and Campaign ID:{campaignId}\\\",\\\"IMPRESSION_FOR_EVENT_ARCH_PUSH\\\":\\\"({file}): Impression built for visitor-property:{property} for Account ID:{accountId} and User ID:{userId}\\\",\\\"EVENT_BATCH_BEFORE_FLUSHING\\\":\\\"({file}): flushing event queue {manually} having {length} events for Account ID:{accountId}. {timer}\\\",\\\"EVENT_BATCH_FLUSH\\\":\\\"{{file}}: Manually flushing batch events for Account ID:{accountId} having {queueLength} events\\\",\\\"USER_STORAGE_SERVICE_NOT_CONFIGURED\\\":\\\"({file}): User Storage Service is not configured to get/set the data\\\",\\\"USER_STORAGE_SERVICE_NO_STORED_DATA\\\":\\\"({file}): No stored variation for User ID:{userId} for Campaign:{campaignKey} found in User Storage Service\\\",\\\"VARIATION_RANGE_ALLOCATION\\\":\\\"({file}): Variation:{variationName} of Campaign:{campaignKey} having weight:{variationWeight} got bucketing range: ( {start} - {end} )\\\",\\\"MEG_ELIGIBLE_CAMPAIGNS\\\":\\\"({file}): Campaigns: {eligibleCampaignKeys} are eligible, {inEligibleText} are ineligible from the Group:{groupName} for the User ID:{userId}\\\",\\\"SEGMENTATION_SKIPPED\\\":\\\"({file}): Segmentation is not used for Campaign:{campaignKey}, hence skipping evaluating segmentation{variation} for User ID:{userId}\\\",\\\"SEGMENTATION_STATUS\\\":\\\"({file}): User ID:{userId} for Campaign:{campaignKey} with variables:{customVariables} {status} {segmentationType} {variation}\\\",\\\"WHITELISTING_SKIPPED\\\":\\\"({file}): Whitelisting is not used for Campaign:{campaignKey}, hence skipping evaluating whitelisting for User ID:{userId}\\\",\\\"USER_UUID\\\":\\\"({file}): VWO UUID generated for Account Id:{accountId} and User ID:{userId} is {uuid}\\\",\\\"USER_HASH_BUCKET_VALUE\\\":\\\"({file}): User ID:{userId} having hash:{hashValue} got bucketValue:{bucketValue}\\\",\\\"USER_CAMPAIGN_BUCKET_VALUES\\\":\\\"({file}): User ID:{userId} for Campaign:{campaignKey} having percent-traffic:{percentTraffic} got hash-value:{hashValue} and bucket-value:{bucketValue}\\\"}\");\n\n/***/ }),\n\n/***/ \"./node_modules/vwo-sdk-log-messages/src/error-messages.json\":\n/*!*******************************************************************!*\\\n !*** ./node_modules/vwo-sdk-log-messages/src/error-messages.json ***!\n \\*******************************************************************/\n/*! exports provided: CONFIG_PARAMETER_INVALID, CONFIG_POLLING_SDK_KEY_NOT_PROVIVED, CONFIG_CORRUPTED, SETTINGS_FILE_INVALID, SETTINGS_FILE_CORRUPTED, BATCH_QUEUE_EMPTY, API_HAS_CORRUPTED_SETTINGS_FILE, API_BAD_PARAMETERS, API_NOT_APPLICABLE, USER_ID_INVALID, CAMPAIGN_NOT_FOUND_FOR_GOAL, POLLING_FAILED, SEGMENTATION_REGEX_CREATION_FAILED, SEGMENTATION_ERROR, USER_STORAGE_SERVICE_GET_FAILED, USER_STORAGE_SERVICE_SET_FAILED, IMPRESSION_FAILED, TAG_KEY_LENGTH_EXCEEDED, TAG_VALUE_LENGTH_EXCEEDED, TRACK_API_GOAL_NOT_FOUND, TRACK_API_REVENUE_NOT_PASSED_FOR_REVENUE_GOAL, TRACK_API_EVENTS_REVENUE_NOT_PASSED, UNABLE_TO_CAST_VALUE, VARIABLE_NOT_FOUND, MISSING_IMPORT_SETTINGS_MANDATORY_PARAMS, ACCOUNT_SETTINGS_NOT_FOUND, default */\n/***/ (function(module) {\n\nmodule.exports = JSON.parse(\"{\\\"CONFIG_PARAMETER_INVALID\\\":\\\"({file}): {parameter} paased in {api} API is not correct. It should be of type:{type}\\\",\\\"CONFIG_POLLING_SDK_KEY_NOT_PROVIVED\\\":\\\"({file}): SDK Key is required along with pollingInterval to poll the settings-file\\\",\\\"CONFIG_CORRUPTED\\\":\\\"({file}): Config passed to {api} API is invalid. Please refer developer docs\\\",\\\"SETTINGS_FILE_INVALID\\\":\\\"({file}): Settings file passed while instantiating SDK instance is invalid\\\",\\\"SETTINGS_FILE_CORRUPTED\\\":\\\"({file}): Fetched settings-file doesn't match the desired schema. Please contact VWO Support for help\\\",\\\"BATCH_QUEUE_EMPTY\\\":\\\"{{file}}: No batch queue present for account:{accountId} when calling flushEvents API. Check batchEvents config in launch API\\\",\\\"API_HAS_CORRUPTED_SETTINGS_FILE\\\":\\\"({file}): {api} API has corrupted settings-file. Please check or reach out to VWO support\\\",\\\"API_BAD_PARAMETERS\\\":\\\"({file}): {api} API got bad parameters. Refer the developer docs\\\",\\\"API_NOT_APPLICABLE\\\":\\\"({file}): {api} API is not valid for Campaign:{campaignKey} having type:{campaignType} for User ID:{userId}\\\",\\\"USER_ID_INVALID\\\":\\\"({file}): Invalid User Id:{userId} passed to the API\\\",\\\"CAMPAIGN_NOT_FOUND_FOR_GOAL\\\":\\\"({file}): No such campaign found corresponding to goalIdentifier:{goalIdentifier}. Please verify from VWO app\\\",\\\"POLLING_FAILED\\\":\\\"({file}): Fetching of settings-file failed via polling for the accountId:{accountId}\\\",\\\"SEGMENTATION_REGEX_CREATION_FAILED\\\":\\\"({file}): Regular expression:{regex} used for targeting cound not be evaluated\\\",\\\"SEGMENTATION_ERROR\\\":\\\"({file}): Could not segment the User ID:{userId} for Campaign:{campaignKey}{variation} with customVariables:{customVariables}. Error message: {err}\\\",\\\"USER_STORAGE_SERVICE_GET_FAILED\\\":\\\"({file}): Getting data from User Storage Service failed for User ID:{userId}. Error: {error}\\\",\\\"USER_STORAGE_SERVICE_SET_FAILED\\\":\\\"({file}): Saving data into User Storage Service failed for User ID:{userId}. Error: {error}\\\",\\\"IMPRESSION_FAILED\\\":\\\"({file}): Impression event could not be sent to VWO - {endPoint}. Reason: {err}\\\",\\\"TAG_KEY_LENGTH_EXCEEDED\\\":\\\"({file}): Length of custom dimension key:{tagKey} for User Id:{userId} can not be greater than 255\\\",\\\"TAG_VALUE_LENGTH_EXCEEDED\\\":\\\"({file}): Length of custom dimension value:{tagValue} of tagKey:{tagKey} for User Id:{userId} can not be greater than 255\\\",\\\"TRACK_API_GOAL_NOT_FOUND\\\":\\\"({file}): Goal:{goalIdentifier} not found for Campaign:{campaignKey} and User Id:{userId}\\\",\\\"TRACK_API_REVENUE_NOT_PASSED_FOR_REVENUE_GOAL\\\":\\\"({file}): Revenue value should be passed for revenue goal:{goalIdentifier} for Campaign:{campaignKey} and User Id:{userId}\\\",\\\"TRACK_API_EVENTS_REVENUE_NOT_PASSED\\\":\\\"({file}): Revenue value should be passed either in options or as an event property for revenue goal:{goalIdentifier} for Campaign:{campaignKey} and User Id:{userId}\\\",\\\"UNABLE_TO_CAST_VALUE\\\":\\\"({file}): Unable to cast value:{variableValue} to type:{variableType}, returning null\\\",\\\"VARIABLE_NOT_FOUND\\\":\\\"({file}): Variable:{variableKey} for User ID:{userId} is not found in settings-file, returning null\\\",\\\"MISSING_IMPORT_SETTINGS_MANDATORY_PARAMS\\\":\\\"AccountId and sdkKey are required for fetching account settings. Aborting!\\\",\\\"ACCOUNT_SETTINGS_NOT_FOUND\\\":\\\"({file}): Request failed for fetching account settings. Got Status Code: ${statusCode} and message: ${message}\\\"}\");\n\n/***/ }),\n\n/***/ \"./node_modules/vwo-sdk-log-messages/src/info-messages.json\":\n/*!******************************************************************!*\\\n !*** ./node_modules/vwo-sdk-log-messages/src/info-messages.json ***!\n \\******************************************************************/\n/*! exports provided: CONFIG_VALID, CONFIG_PARAMETER_USED, CONFIG_RETURN_PROMISE, SDK_INITIALIZED, POLLING_SUCCESS, POLLING_SETTINGS_FILE_UPDATED, POLLING_SETTINGS_FILE_NOT_UPDATED, DECISION_NO_VARIATION_ALLOTED, EVENT_BATCH_DEFAULTS, EVENT_QUEUE, EVENT_BATCH_After_FLUSHING, CAMPAIGN_NOT_ACTIVATED, CAMPAIGN_USER_ALREADY_TRACKED, CAMPAIGN_GOAL_ALREADY_TRACKED, GOT_STORED_VARIATION, GETTING_DATA_USER_STORAGE_SERVICE, SETTING_DATA_USER_STORAGE_SERVICE, IMPRESSION_SUCCESS, IMPRESSION_SUCCESS_FOR_EVENT_ARCH, IMPRESSION_BATCH_SUCCESS, IMPRESSION_BATCH_FAILED, MEG_ELIGIBLE_CAMPAIGNS, OTHER_CAMPAIGN_SATISFIES_WHITELISTING_STORAGE, SEGMENTATION_STATUS, MEG_CALLED_CAMPAIGN_NOT_WINNER, MEG_GOT_WINNER_CAMPAIGN, FEATURE_STATUS, FEATURE_VARIABLE_VALUE, FEATURE_VARIABLE_DEFAULT_VALUE, USER_NOT_PART_OF_CAMPAIGN, USER_VARIATION_STATUS, USER_CAMPAIGN_ELIGIBILITY, USER_VARIATION_ALLOCATION_STATUS, OPT_OUT_API_CALLED, API_NOT_ENABLED, INITIATING_ACTIVATE, INITIATING_GET_VARIATION, INITIATING_GET_FEATURE_VARIATION, INITIATING_IS_FEATURE_ENABLED, INITIATING_PUSH_DIMENSION, default */\n/***/ (function(module) {\n\nmodule.exports = JSON.parse(\"{\\\"CONFIG_VALID\\\":\\\"({file}): SDK configuration and account settings-file are valid\\\",\\\"CONFIG_PARAMETER_USED\\\":\\\"({file}): {parameter} paased in launch API having type:{type}\\\",\\\"CONFIG_RETURN_PROMISE\\\":\\\"({file}): {method} API returns a promise as returnPromiseFor is set to true for this API\\\",\\\"SDK_INITIALIZED\\\":\\\"({file}): SDK is properly initialzed with the passed configuration\\\",\\\"POLLING_SUCCESS\\\":\\\"({file}): settings-file fetched successfully via polling for the accountId:{accountId}\\\",\\\"POLLING_SETTINGS_FILE_UPDATED\\\":\\\"({file}): SDK instance is updated with the latest settings-file for the accountId:{accountId}\\\",\\\"POLLING_SETTINGS_FILE_NOT_UPDATED\\\":\\\"{file}: settings-file fetched via polling is same as earlier fetched settings\\\",\\\"DECISION_NO_VARIATION_ALLOTED\\\":\\\"({file}): Variation was not assigned to the User ID:{userId} for Campaign:{campaignKey}\\\",\\\"EVENT_BATCH_DEFAULTS\\\":\\\"({file}): {parameter} not passed in SDK configuration, setting it default to {defaultValue}\\\",\\\"EVENT_QUEUE\\\":\\\"({file}): Event with payload:{event} pushed to the {queueType} queue\\\",\\\"EVENT_BATCH_After_FLUSHING\\\":\\\"({file}): Event queue having {length} events has been flushed {manually}\\\",\\\"CAMPAIGN_NOT_ACTIVATED\\\":\\\"({file}): Activate the campaign:{campaignKey} first for User ID:{userId} to {reason}\\\",\\\"CAMPAIGN_USER_ALREADY_TRACKED\\\":\\\"({file}): User ID:{userId} for Campaign:{campaignKey} has already been tracked earlier for \\\\\\\"{api}\\\\\\\" API. No tracking call is made to VWO server\\\",\\\"CAMPAIGN_GOAL_ALREADY_TRACKED\\\":\\\"({file}): Goal:{goalIdentifier} of Campaign:{campaignKey} for User ID:{userId} has already been tracked earlier. No tracking call is made to VWO server\\\",\\\"GOT_STORED_VARIATION\\\":\\\"({file}): Got stored variation from User Storage Service for User ID:{userId} for Campaign:{campaignKey} as Variation:{variationName}\\\",\\\"GETTING_DATA_USER_STORAGE_SERVICE\\\":\\\"({file}): Read data from User Storage Service for User ID:{userId} and Campaign:{campaignKey}\\\",\\\"SETTING_DATA_USER_STORAGE_SERVICE\\\":\\\"({file}): Set data into User Storage Service for User ID:{userId} and Campaign:{campaignKey}\\\",\\\"IMPRESSION_SUCCESS\\\":\\\"({file}): Impression event - {endPoint} was successfully received by VWO having main keys: Account ID:{accountId}, {mainKeys}\\\",\\\"IMPRESSION_SUCCESS_FOR_EVENT_ARCH\\\":\\\"({file}): Impression for {event} - {endPoint} was successfully received by VWO for Account ID:{accountId}\\\",\\\"IMPRESSION_BATCH_SUCCESS\\\":\\\"({file}): Impression event - {endPoint} was successfully received by VWO having Account ID:{accountId}\\\",\\\"IMPRESSION_BATCH_FAILED\\\":\\\"({file}): Batch events couldn\\\\\\\"t be received by VWO. Calling Flush Callback with error and data\\\",\\\"MEG_ELIGIBLE_CAMPAIGNS\\\":\\\"({file}): Got {noOfEligibleCampaigns} eligible winners out of {noOfGroupCampaigns} campaigns from the Group:{groupName} and for User ID:{userId}\\\",\\\"OTHER_CAMPAIGN_SATISFIES_WHITELISTING_STORAGE\\\":\\\"({file}): Campaign:{campaignKey} of Group:{groupName} satisfies {type} for User ID:{userId}\\\",\\\"SEGMENTATION_STATUS\\\":\\\"({file}): User ID:{userId} for Campaign:{campaignKey} with variables:{customVariables} {status} {segmentationType} {variation}\\\",\\\"MEG_CALLED_CAMPAIGN_NOT_WINNER\\\":\\\"({file}): Campaign:{campaignKey} does not qualify from the mutually exclusive group:{groupName} for User ID:{userId}\\\",\\\"MEG_GOT_WINNER_CAMPAIGN\\\":\\\"({file}): Campaign:{campaignKey} is selected from the mutually exclusive group:{groupName} for the User ID:{userId}\\\",\\\"FEATURE_STATUS\\\":\\\"({file}): Campaign:{campaignKey} is {status} for user ID:{userId}\\\",\\\"FEATURE_VARIABLE_VALUE\\\":\\\"({file}): For User ID:{userId}, value for variable:{variableKey} of feature:{campaignKey} is:{variableValue}\\\",\\\"FEATURE_VARIABLE_DEFAULT_VALUE\\\":\\\"({file}): Feature is not enabled for variation:{variationName}. Returning default value for the variable:{variableKey}\\\",\\\"USER_NOT_PART_OF_CAMPAIGN\\\":\\\"({file}): User ID:{userId} did not qualify for Campaign:{campaignKey}\\\",\\\"USER_VARIATION_STATUS\\\":\\\"({file}): User ID:{userId} for Campaign:{campaignKey} {status}\\\",\\\"USER_CAMPAIGN_ELIGIBILITY\\\":\\\"({file}): User ID:{userId} for Campaign:{campaignKey} is {status} to become part of campaign\\\",\\\"USER_VARIATION_ALLOCATION_STATUS\\\":\\\"({file}): User ID:{userId} for Campaign:{campaignKey} {status}\\\",\\\"OPT_OUT_API_CALLED\\\":\\\"({file}): You have opted out for not tracking i.e. all API calls will stop functioning and will simply early return\\\",\\\"API_NOT_ENABLED\\\":\\\"({file}): {api} API is disabled as you opted out for tracking. Reinitialize the SDK to enable the normal functioning of all APIs.\\\",\\\"INITIATING_ACTIVATE\\\":\\\"({file}): Initiating activation of user {userId} for campaign {campaignKey}.\\\",\\\"INITIATING_GET_VARIATION\\\":\\\"({file}): Initiating getVariation of user '{userId}' for campaign '{campaignKey}'.\\\",\\\"INITIATING_GET_FEATURE_VARIATION\\\":\\\"({file}): Initiating getFeatureVariable for variable key '{variableKey}' of user '{userId}' for campaign '{campaignKey}'.\\\",\\\"INITIATING_IS_FEATURE_ENABLED\\\":\\\"({file}): Initiating isFeatureEnabled of user '{userId}' for campaign '{campaignKey}'.\\\",\\\"INITIATING_PUSH_DIMENSION\\\":\\\"({file}): Initiating push segment of user '{userId}' with tag name `{tagKey}` and tag value '{tagValue}'.\\\"}\");\n\n/***/ }),\n\n/***/ \"./node_modules/vwo-sdk-log-messages/src/warning-messages.json\":\n/*!*********************************************************************!*\\\n !*** ./node_modules/vwo-sdk-log-messages/src/warning-messages.json ***!\n \\*********************************************************************/\n/*! exports provided: CAMPAIGN_NOT_RUNNING, CAMPAIGN_NOT_ACTIVATED, default */\n/***/ (function(module) {\n\nmodule.exports = JSON.parse(\"{\\\"CAMPAIGN_NOT_RUNNING\\\":\\\"({file}): {api} API called with Campaign:{campaignKey} but the campaign is not RUNNING. Please verify from VWO App\\\",\\\"CAMPAIGN_NOT_ACTIVATED\\\":\\\"({file}): Campaign:{campaignKey} for User ID:{userId} is not yet activated for API:{api}. Use activate API to activate A/B test or isFeatureEnabled API to activate Feature Test\\\"}\");\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=vwo-javascript-sdk.js.map"],"names":["factory","modules","installedModules","moduleId","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_defineProperties","target","props","length","descriptor","configurable","writable","api","FileNameEnum","ApiEnum","DataTypeUtil","FunctionUtil","VWOFeatureFlags","EventQueue","SettingsFileService","logging","HooksManager","UrlService","UsageStats","LogLevelEnum","LogMessageEnum","LogMessageUtil","file","VWO","config","arguments","undefined","instance","Constructor","TypeError","_classCallCheck","this","getVariation","getVariationName","userStorageService","logger","returnPromiseFor","asyncStorageConfig","optOut","redisStorage","settingsFileManager","isSettingsFileValid","log","INFO","build","INFO_MESSAGES","CONFIG_VALID","init","eventQueue","usageStats","SettingsFileManager","checkAndPoll","isDevelopmentMode","collectUsageStats","getConfig","processSettingsFile","SDK_INITIALIZED","settingsFile","ERROR","ERROR_MESSAGES","SETTINGS_FILE_INVALID","protoProps","staticProps","campaignKey","userId","_this2","options","self","isObject","CONFIG_ASYNC_RETURN_PROMISE","method","ACTIVATE","Promise","resolve","activate","then","data","variationName","API_NOT_ENABLED","all","CONFIG_RETURN_PROMISE","responseCallback","_error","_response","apiResponse","err","message","_this3","GET_VARIATION_NAME","campaignSpecifier","goalIdentifier","_this4","TRACK","track","trackResponse","counter","isEventArchEnabled","isArray","isUndefined","isNull","objectValues","filter","Boolean","some","_this5","IS_FEATURE_ENABLED","isFeatureEnabled","isFeatureEnabledApiResponse","variableKey","_this6","GET_FEATURE_VARIABLE_VALUE","getFeatureVariableValue","typeCastedValue","tagKey","tagValue","_this7","customDimensionMap","API_BAD_PARAMETERS","PUSH","push","_this8","OPT_OUT_API_CALLED","_destroyInstanceVariables","batchEventsQueue","flushEvents","getSettingsFile","accountId","sdkKey","getAndUpdateSettingsFile","Constants","DecisionUtil","CampaignUtil","ImpressionUtil","ValidateUtil","EventEnum","Activate","_validateAndReturnVariation","vwoInstance","shouldTrackReturningUser","campaign","visitorUserAgent","userIpAddress","result","variationId","isStoredVariation","isValidValue","DECISION_NO_VARIATION_ALLOTED","CAMPAIGN_USER_ALREADY_TRACKED","batchEvents","properties","buildBatchEventForTrackingUser","id","enqueue","_properties","getEventsBaseProperties","VWO_VARIATION_SHOWN","getUsageStats","payload","getTrackUserPayloadData","process","_properties2","buildEventForTrackingUser","areParamsValid","customVariables","variationTargetingVariables","userStorageData","metaData","userAgent","areValidParamsForAPIMethod","getCampaign","isMAB","status","STATUS_RUNNING","WARN","WARNING_MESSAGES","CAMPAIGN_NOT_RUNNING","isAbCampaign","API_NOT_APPLICABLE","campaignType","type","isPromise","FeatureUtil","ObjectUtil","GetFeatureVariableValue","_validateAndReturnFeaureVariable","variable","variation","FEATURE_STATUS","isFeatureRolloutCampaign","getVariableForFeature","isFeatureTestCampaign","getVariableValueForVariation","areObjectKeys","FEATURE_VARIABLE_VALUE","variableValue","FEATURE_VARIABLE_DEFAULT_VALUE","VARIABLE_NOT_FOUND","getTypeCastVariableValue","apiName","GetVariation","IsFeatureEnabled","_validateAndReturnFeatureEnabled","Push","PUSH_INVALID_PARAMS","TAG_KEY_LENGTH_EXCEEDED","TAG_VALUE_LENGTH_EXCEEDED","keys","forEach","isString","JSON","stringify","buildBatchEventForPushing","VWO_SYNC_VISITOR_PROP","getPushPayloadData","success","events","buildEventForPushing","assign","GoalTypeEnum","Track","GOAL_TYPE_TO_TRACK_DEFAULT","ALL","GOAL_IDENTIFIER_SEPERATOR","_validateAndReturnTrackValue","revenuePropList","revenueValue","metricMap","areGlobalGoals","eventProperties","k","getTrackGoalPayloadData","_saveUserData","_validateAndReturnTrackEvent","campaignId","goal","storedGoalIdentifier","split","includes","mca","CAMPAIGN_GOAL_ALREADY_TRACKED","buildBatchEventForTrackingGoal","buildEventForTrackingGoal","logIncorrectParamsForRevenueGoal","TRACK_API_REVENUE_NOT_PASSED_FOR_REVENUE_GOAL","goalTypeToTrack","Set","campaigns","isBoolean","_campaign","getCampaignsForKeys","getCampaignsForGoal","getCampaignGoal","TRACK_API_GOAL_NOT_FOUND","REVENUE","revenueProp","add","trackCampaignGoal","values","every","item","dataArray","index","obj","ans","__webpack_require__","packageFile","version","SDK_NAME","SDK_VERSION","PLATFORM","SEED_VALUE","MAX_TRAFFIC_PERCENT","MAX_TRAFFIC_VALUE","MAX_EVENTS_PER_REQUEST","DEFAULT_EVENTS_PER_REQUEST","DEFAULT_REQUEST_TIME_INTERVAL","SEED_URL","HTTP_PROTOCOL","HTTPS_PROTOCOL","SDK_QUERY_PARAM","SDK_VERSION_QUERY_PARAM","Hasher","getLogger","BucketingService","_generateBucketValue","hashValue","maxValue","multiplier","multipliedValue","Math","pow","floor","_getVariation","variations","bucketValue","startVariationAllocation","endVariationAllocation","_getBucketValueForUser","seed","disableLog","v3","DEBUG","DEBUG_MESSAGES","USER_HASH_BUCKET_VALUE","isUserPartOfCampaign","trafficAllocation","percentTraffic","valueAssignedToUser","getBucketingSeed","isUserPart","USER_CAMPAIGN_ELIGIBILITY","bucketUserToVariation","isNB","getAll","isNBv2","isOB","isOBv2","_generateHashValue","USER_CAMPAIGN_BUCKET_VALUES","calculateBucketValue","SegmentEnum","getKeyValue","_require2","operandCustomVariablesParser","operandUserParser","_SegmentEnum$SegmentO","SegmentOperatorTypes","AND","OR","NOT","_SegmentEnum$SegmentO2","SegmentOperandTypes","CUSTOM_VARIABLE","USER","SegmentEvaluator","evaluator","dsl","_getKeyValue","operator","subDsl","list","val","_list","_i","disableLogs","SEGMENTATION_SKIPPED","SEGMENTATION_ERROR","Bucketer","VariationDecider","getVariationAllotted","response","USER_ID_INVALID","getVariationOfCampaignForUser","USER_NOT_PART_OF_CAMPAIGN","USER_VARIATION_STATUS","concat","BOLD","CYAN","GREEN","LIGHTBLUE","RED","RESET","WHITE","YELLOW","LAUNCH","FEATURE_TEST","FEATURE_ROLLOUT","AB","NUMBER","STRING","BOOLEAN","OBJECT","DOUBLE","INTEGER","LIB_PATH","CORE_PATH","UTIL_PATH","SERVICES_PATH","INDEX","API","ConsoleLogManager","LoggingManager","BatchEventsQueue","EventDispatcher","EventDispatcherUtil","Functionutil","UuidUtil","HttpHandlerUtil","HttpImageUtil","HttpXMLUtil","UsageStatsUtil","CUSTOM","USER_AGENT","IP","DECISION_TYPES","CAMPAIGN_DECISION","_LogLevelColorInfoEnu","_LogLevelInfoEnum","_defineProperty","AnsiColorEnum","NOTSET","LogLevelColorInfoEnum","LogLevelInfoEnum","LogNumberLevel","_0","_1","_2","_3","_4","PASSED","FAILED","BASE_URL","SETTINGS_URL","WEBHOOK_SETTINGS_URL","TRACK_USER","TRACK_GOAL","BATCH_EVENTS","EVENTS","LOWER","LOWER_MATCH","WILDCARD","WILDCARD_MATCH","REGEX","REGEX_MATCH","STARTING_STAR","ENDING_STAR","GREATER_THAN_MATCH","GREATER_THAN_EQUAL_TO_MATCH","LESS_THAN_MATCH","LESS_THAN_EQUAL_TO_MATCH","LOWER_VALUE","STARTING_ENDING_STAR_VALUE","STARTING_STAR_VALUE","ENDING_STAR_VALUE","REGEX_VALUE","EQUAL_VALUE","GREATER_THAN_VALUE","GREATER_THAN_EQUAL_TO_VALUE","LESS_THAN_VALUE","LESS_THAN_EQUAL_TO_VALUE","SegmentOperandValueTypeRegexes","SegmentOperandValues","SettingsFileUtil","setLogHandler","setLogLevel","logError","parameter","CONFIG_PARAMETER_INVALID","Error","logInfo","CONFIG_PARAMETER_USED","console","info","getCurrentTime","setLogger","launch","sdkConfig","cloneObject","level","pollingInterval","isNumber","integrations","CONFIG_CORRUPTED","setLogColorMode","haveColoredLogs","isFunction","CONFIG_CUSTOM_LOGGER_USED","CONFIG_LOG_LEVEL_SET","CONFIG_DEVELOPMENT_MODE_STATUS","_slicedToArray","arr","Array","_arrayWithHoles","iterator","toString","_arr","_n","_d","_e","_s","next","done","_iterableToArrayLimit","_nonIterableRest","_require","validate","number","string","_boolean","array","optional","union","record","campaignGoalSchema","identifier","variableObjectSchema","campaignVariationSchema","weight","changes","segments","variables","campaignObjectSchema","isBucketingSeedEnabled","goals","isForcedVariationEnabled","isUserListEnabled","groupSchema","et","wt","groupName","settingsFileSchema","campaignGroups","collectionPrefix","groups","settings","HeadersEnum","running","queue","_ref","customHeaders","visitor_ua","encodeURIComponent","visitor_ip","_ref2","eventName","callback","dispatchPostCall","dispatchGetCall","EVENT_QUEUE","queueType","event","executeNext","shift","execute","validateSettingsFile","_configObj","_clonedSettingsFile","setVariationAllocation","SETTINGS_FILE_CORRUPTED","_this","lastSettingsFile","setInterval","latestSettingsFile","POLLING_SUCCESS","stringifiedLatestSettingsFile","updateSettingsFile","POLLING_SETTINGS_FILE_UPDATED","POLLING_SETTINGS_FILE_NOT_UPDATED","POLLING_FAILED","POLLING_SETTINGS_FILE_REGISTERED","_setVariationBucketing","SETTINGS_FILE_PROCESSED","_reject","isViaWebhook","_err","API_HAS_CORRUPTED_SETTINGS_FILE","UrlEnum","getBaseUrl","baseUrl","LogManager","Number","logLevel","prefix","isColoredLogEnabled","logMessage","shouldLog","consoleLog","targetLogLevel","logArguments","apply","warn","error","globalLogLevel","globalLogHandler","_customLog","getLogLevel","getLogColorMode","CampaignTypeEnum","_getVariationBucketRange","variationWeight","startRange","ceil","min","getCampaignBasedOnId","parseInt","scaleVariationWeights","totalWeight","reduce","acc","campaignKeys","CAMPAIGN_NOT_FOUND_FOR_GOAL","getCampaignStatus","toLowerCase","isCampaignRunning","validateCampaign","numberOfVariations","currentAllocation","assignRangeValues","VARIATION_RANGE_ALLOCATION","start","end","setCampaignAllocation","stepFactor","desiredCampaignGoal","getCampaignVariation","desiredVariation","getControlForCampaign","control","isPartOfGroup","groupId","getGroupCampaigns","_toStringValue","StatusEnum","HooksEnum","SegmentationTypeEnum","isTrackUserAPI","isTrackGoalAPI","newGoalIdentifier","vwoUserId","generateFor","USER_UUID","uuid","decision","campaignName","sdkVersion","source","_CampaignUtil$isPartO","_vwoUserId","whitelistedVariation","_checkForWhitelisting","_checkForUserStorage","variationWithoutStorageLookup","evaluateAndGetVariationWithoutStorage","_checkForPreSegmentation","campaignList","isWhitelistedOrStoredVariation","_checkForStorageAndWhitelisting","MEG_CALLED_CAMPAIGN_NOT_WINNER","inEligibleCampaignKeys","eligibleCampaignKeys","_DecisionUtil$getElig","getEligbleCampaigns","eligibleCampaigns","inEligibleCampaigns","MEG_ELIGIBLE_CAMPAIGNS","slice","inEligibleText","noOfEligibleCampaigns","noOfGroupCampaigns","megAlgoNumber","evaluateTrafficAndGetVariation","_normalizeAndFindWinningCampaign","_advancedAlgoFindWinningCampaign","_evaluateWhitelisting","targetedVariations","SEGMENTATION_STATUS","segmentationType","_getStoredUserData","userStorageMap","USER_STORAGE_SERVICE_NOT_CONFIGURED","GETTING_DATA_USER_STORAGE_SERVICE","USER_STORAGE_SERVICE_GET_FAILED","isSaved","set","SETTING_DATA_USER_STORAGE_SERVICE","USER_STORAGE_SERVICE_SET_FAILED","calledCampaign","otherCampaignWinner","groupCampaign","OTHER_CAMPAIGN_SATISFIES_WHITELISTING_STORAGE","storedVariation","_VariationDecider$get","USER_VARIATION_ALLOCATION_STATUS","fromUserStorageService","isUserWhitelisted","variationString","whitelistingResult","WHITELISTING_SKIPPED","userData","_processAfterGettingFromStorage","USER_STORAGE_SERVICE_NO_STORED_DATA","GOT_STORED_VARIATION","CAMPAIGN_NOT_ACTIVATED","reason","shortlistedCampaigns","winnerCampaign","MEG_GOT_WINNER_CAMPAIGN","found","priorityOrder","j","participatingCampaignList","clonedCampaign","excludedProperties","queryParams","convertObjectKeysToString","sendCall","successCallback","endPoint","url","IMPRESSION_FAILED","handleGetResponse","baseParams","account_id","params","parse","tags","u","mainKeys","experiment_id","combination","IMPRESSION_SUCCESS","XMLHttpRequest","send","handlePostResponse","en","visitor","vwo_fs_environment","IMPRESSION_SUCCESS_FOR_EVENT_ARCH","a","FeatureVariableTypeEnum","variableData","variationVariable","variableType","isNaN","UNABLE_TO_CAST_VALUE","parseFloat","FetchUtil","_getStoredSettings","parsedSettings","isStoredData","getSettings","warning","_ref$customHeaders","reject","_FetchUtil$_getStored","headers","body","fetch","res","text","jsonData","setSettings","getRandomNumber","random","getCurrentUnixTimestamp","Date","getCurrentUnixTimestampInMillis","matchWithRegex","regex","match","RegExp","SEGMENTATION_REGEX_CREATION_FAILED","toISOString","prop","indexOf","noop","printLog","errorCallback","isCallbackCalled","handleGetCall","xhr","headerName","open","setRequestHeader","onload","responseText","statusText","onerror","getBaseProperties","configObj","sId","getPrimaryProperties","getReportingProperties","ap","IMPRESSION_FOR_PUSH","_getStringifiedLogProperties","ed","IMPRESSION_FOR_TRACK_USER","revenue","goalId","IMPRESSION_FOR_TRACK_GOAL","env","eTime","getEventBasePayload","vwo_sdkName","vwo_sdkVersion","vwo_envKey","msgId","visId","sessionId","time","isFirst","IMPRESSION_FOR_EVENT_ARCH_TRACK_USER","metric","IMPRESSION_FOR_EVENT_ARCH_TRACK_GOAL","goalName","vwoMeta","size","isCustomEvent","IMPRESSION_FOR_EVENT_ARCH_PUSH","logProperties","nargs","template","replace","map","extractOperandValue","operand","processValues","operandValue","processedOperandValue","processedTagValue","preProcessTagValue","preProcessOperandValue","operandType","startingStar","endingStar","operandKey","_preProcessOperandVal","processedValues","endsWith","startsWith","test","extractResult","users","trim","protocol","hostname","path","port","handleHttpRequest","statusCode","contentType","rawData","resume","setEncoding","on","chunk","handleHttpResponse","parsedData","uuidv5","VWO_NAMESPACE","URL","hash","userIdNamespace","generate","toUpperCase","namespace","_APIMethodArgumentsVa","DataTypeEnum","APIMethodArgumentsValidationEnum","_ref$customVariables","_ref$variationTargeti","_ref$userStorageData","_ref$shouldTrackRetur","_ref$metaData","_ref2$customVariables","_ref2$variationTarget","_ref2$userStorageData","_ref2$goalTypeToTrack","_ref2$shouldTrackRetu","_ref2$metaData","STRING_NULL_UNDEFINED_ARRAY","_ref3","_ref3$customVariables","_ref3$variationTarget","_ref3$userStorageData","_ref3$shouldTrackRetu","_ref3$metaData","_ref4","_ref4$customVariables","_ref4$variationTarget","_ref4$userStorageData","_ref4$metaData","_ref5","isValidString","isValidNumber","isValidFunction","isValidBoolean","isValidObject","argsObj","args","validators","argConfig","argValue","XhrUtil","_XhrUtil$_getStoredSe","xhrHandler","sendRequest","retries","maxRetries","delay","newHeaderName","timeout","setTimeout","ontimeout","xhrOnLoad","xhrOnError","e","parsedXhrResponse","MurmurHashV3","remainder","bytes","h1","h1b","c1","c2","k1","charCodeAt","murmur","v2","str","h","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","getOwnPropertyDescriptors","defineProperties","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","toFailures","context","fail","iteratorShift","input","Struct","StructError","any","assert","boolean","coerce","coercion","date","defaulted","dynamic","empty","enums","func","intersection","is","lazy","literal","masked","never","nullable","partial","pattern","refinement","struct","tuple","constructor","schema","coercer","validator","refiner","failure","moreFailures","branch","rest","failuresResult","super","join","failures","stack","__proto__","ret","coercing","check","ctx","v","parent","fn","S","fallback","strict","x","f","isPlainObject","changed","getPrototypeOf","max","regexp","Element","entries","getTime","toLiteralString","Class","Structs","constant","Key","Value","Map","knowns","Never","createObjectCoercer","unknowns","delete","Elements","byteToHex","substr","buf","offset","bth","y","z","ROTL","K","H","msg","unescape","N","M","W","b","T","bytesToUuid","hashfunc","generateUUID","off","stringToBytes","hex","uuidToBytes","idx","DNS","v35","sha1"],"sourceRoot":""}