diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2886342..4929613 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [1.9.0] - 2024-11-14
+
+### Added
+
+- Added support to pass settings in `init` method.
+
## [1.8.0] - 2024-09-25
### Added
diff --git a/dist/client/vwo-fme-javascript-sdk.js b/dist/client/vwo-fme-javascript-sdk.js
index b360648..70f715d 100644
--- a/dist/client/vwo-fme-javascript-sdk.js
+++ b/dist/client/vwo-fme-javascript-sdk.js
@@ -1,5 +1,5 @@
/*!
- * vwo-fme-javascript-sdk - v1.7.0
+ * vwo-fme-javascript-sdk - v1.8.0
* URL - https://github.com/wingify/vwo-node-sdk
*
* Copyright 2024 Wingify Software Pvt. Ltd.
@@ -275,6 +275,9 @@ var VWO = /** @class */ (function () {
// .initBatching() // Initializes batching for bulk data processing.
.initPolling(); // Starts polling mechanism for regular updates.
// .setAnalyticsCallback() // Sets up analytics callback for data analysis.
+ if (options === null || options === void 0 ? void 0 : options.settings) {
+ return Promise.resolve(this.vwoBuilder.build(options.settings));
+ }
return this.vwoBuilder.getSettings().then(function (settings) {
return _this.vwoBuilder.build(settings); // Builds the VWO instance with the fetched settings.
});
@@ -1637,7 +1640,7 @@ if (true) {
packageFile = {
name: 'vwo-fme-javascript-sdk', // will be replaced by webpack for browser build
// @ts-expect-error This will be relaved by webpack at the time of build for browser
- version: "1.7.0", // will be replaced by webpack for browser build
+ version: "1.8.0", // will be replaced by webpack for browser build
};
platform = PlatformEnum_1.PlatformEnum.CLIENT;
}
@@ -8957,26 +8960,17 @@ exports.evaluateRule = evaluateRule;
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.setSettingsAndAddCampaignsToRules = void 0;
-/**
- * Copyright 2024 Wingify Software Pvt. Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
var SettingsModel_1 = __webpack_require__(/*! ../models/settings/SettingsModel */ "./lib/models/settings/SettingsModel.ts");
var CampaignUtil_1 = __webpack_require__(/*! ./CampaignUtil */ "./lib/utils/CampaignUtil.ts");
var FunctionUtil_1 = __webpack_require__(/*! ./FunctionUtil */ "./lib/utils/FunctionUtil.ts");
var GatewayServiceUtil_1 = __webpack_require__(/*! ./GatewayServiceUtil */ "./lib/utils/GatewayServiceUtil.ts");
+/**
+ * Sets settings and adds campaigns to rules
+ * @param settings settings
+ * @param vwoClientInstance VWOClient instance
+ */
function setSettingsAndAddCampaignsToRules(settings, vwoClientInstance) {
+ // create settings model and set it to vwoClientInstance
vwoClientInstance.settings = new SettingsModel_1.SettingsModel(settings);
vwoClientInstance.originalSettings = settings;
// Optimize loop by avoiding multiple calls to `getCampaigns()`
@@ -11445,7 +11439,7 @@ module.exports = /*#__PURE__*/JSON.parse('{"API_CALLED":"API - {apiName} called"
/***/ ((module) => {
"use strict";
-module.exports = /*#__PURE__*/JSON.parse('{"INIT_OPTIONS_ERROR":"[ERROR]: VWO-SDK {date} Options should be of type object","INIT_OPTIONS_SDK_KEY_ERROR":"[ERROR]: VWO-SDK {date} Please provide the sdkKey in the options and should be a of type string","INIT_OPTIONS_ACCOUNT_ID_ERROR":"[ERROR]: VWO-SDK {date} Please provide VWO account ID in the options and should be a of type string|number","INIT_OPTIONS_INVALID":"Invalid key:{key} passed in options. Should be of type:{correctType} and greater than equal to 1000","SETTINGS_FETCH_ERROR":"Settings could not be fetched. Error:{err}","SETTINGS_SCHEMA_INVALID":"Settings are not valid. Failed schema validation","POLLING_FETCH_SETTINGS_FAILED":"Error while fetching VWO settings with polling","API_THROW_ERROR":"API - {apiName} failed to execute. Trace:{err}","API_INVALID_PARAM":"Key:{key} passed to API:{apiName} is not of valid type. Got type:{type}, should be:{correctType}","API_SETTING_INVALID":"Settings are not valid. Contact VWO Support","API_CONTEXT_INVALID":"Context should be an object and must contain a mandatory key - id, which is User ID","FEATURE_NOT_FOUND":"Feature not found for the key:{featureKey}","EVENT_NOT_FOUND":"Event:{eventName} not found in any of the features\' metrics","STORED_DATA_ERROR":"Error in getting data from storage. Error:{err}","STORING_DATA_ERROR":"Key:{featureKey} is not valid. Not able to store data into storage","GATEWAY_URL_ERROR":"Please provide a valid URL for VWO Gateway Service while initializing the SDK","NETWORK_CALL_FAILED":"Error occurred while sending {method} request. Error:{err}"}');
+module.exports = /*#__PURE__*/JSON.parse('{"INIT_OPTIONS_ERROR":"[ERROR]: VWO-SDK {date} Options should be of type object","INIT_OPTIONS_SDK_KEY_ERROR":"[ERROR]: VWO-SDK {date} Please provide the sdkKey in the options and should be a of type string","INIT_OPTIONS_ACCOUNT_ID_ERROR":"[ERROR]: VWO-SDK {date} Please provide VWO account ID in the options and should be a of type string|number","INIT_OPTIONS_INVALID":"Invalid key:{key} passed in options. Should be of type:{correctType} and greater than equal to 1000","SETTINGS_FETCH_ERROR":"Settings could not be fetched. Error:{err}","SETTINGS_SCHEMA_INVALID":"Settings are not valid. Failed schema validation","POLLING_FETCH_SETTINGS_FAILED":"Error while fetching VWO settings with polling","API_THROW_ERROR":"API - {apiName} failed to execute. Trace:{err}","API_INVALID_PARAM":"Key:{key} passed to API:{apiName} is not of valid type. Got type:{type}, should be:{correctType}","API_SETTING_INVALID":"Settings are not valid. Contact VWO Support","API_CONTEXT_INVALID":"Context should be an object and must contain a mandatory key - id, which is User ID","FEATURE_NOT_FOUND":"Feature not found for the key:{featureKey}","EVENT_NOT_FOUND":"Event:{eventName} not found in any of the features\' metrics","STORED_DATA_ERROR":"Error in getting data from storage. Error:{err}","STORING_DATA_ERROR":"Key:{featureKey} is not valid. Not able to store data into storage","GATEWAY_URL_ERROR":"Please provide a valid URL for VWO Gateway Service while initializing the SDK","NETWORK_CALL_FAILED":"Error occurred while sending {method} request. Error:{err}","SET_USER_ALIAS":"Error in setting user alias for user ID:{userId} and alias ID:{aliasUserId}. Error:{err}","GET_USER_ALIAS":"Error in getting user alias for user ID:{userId}. Error:{err}"}');
/***/ }),
diff --git a/dist/client/vwo-fme-javascript-sdk.js.map b/dist/client/vwo-fme-javascript-sdk.js.map
index 54aafe6..0917686 100644
--- a/dist/client/vwo-fme-javascript-sdk.js.map
+++ b/dist/client/vwo-fme-javascript-sdk.js.map
@@ -1 +1 @@
-{"version":3,"file":"vwo-fme-javascript-sdk.js","mappings":"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;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;;AAErD;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAe;;;;;;;;;;;AC9NF;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,kBAAe;AACf;AACA;AACA;AACA;AACA,kBAAe;;;;;;;;;;;ACVF;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,kBAAe;AACf;AACA,kBAAe;;;;;;;;;;;ACPF;;AAEb,8CAA6C;AAC7C;AACA,CAAC,EAAC;AACF,kBAAe;;AAEf,uCAAuC,mBAAO,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AA2B;AACpD,iBAAiB,mBAAO,CAAC,kGAA2B;AACpD;;;;;;;;;;;;ACNa;;AAEb,8CAA6C,EAAE,aAAa,EAAC;;AAE7D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,8BAA8B;AAC9B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAA6C;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB;AACtB;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ,sBAAsB;AACtB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C;AAC9C,IAAI,IAAI;AACR;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB;AACtB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA,iCAAiC;AACjC,QAAQ;AACR;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,sBAAsB;AACtB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAiD;AACjD;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA,4CAA4C;AAC5C;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA,4CAA4C;AAC5C;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;;AAEA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA,GAAG;AACH;;AAEA,cAAc;AACd,mBAAmB;AACnB,WAAW;AACX,aAAa;AACb,cAAc;AACd,cAAc;AACd,eAAe;AACf,cAAc;AACd,cAAc;AACd,YAAY;AACZ,iBAAiB;AACjB,cAAc;AACd,kBAAkB;AAClB,eAAe;AACf,aAAa;AACb,aAAa;AACb,YAAY;AACZ,gBAAgB;AAChB,eAAe;AACf,oBAAoB;AACpB,UAAU;AACV,YAAY;AACZ,eAAe;AACf,WAAW;AACX,YAAY;AACZ,WAAW;AACX,WAAW;AACX,aAAa;AACb,gBAAgB;AAChB,cAAc;AACd,cAAc;AACd,YAAY;AACZ,gBAAgB;AAChB,eAAe;AACf,eAAe;AACf,YAAY;AACZ,cAAc;AACd,cAAc;AACd,cAAc;AACd,WAAW;AACX,YAAY;AACZ,cAAc;AACd,cAAc;AACd,eAAe;AACf,aAAa;AACb,YAAY;AACZ,aAAa;AACb,eAAe;AACf,gBAAgB;AAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UC5nCA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;;;;;;;;ACtBA;;;;;;;;;;;;;;GAcG;;;AAEH,oIAAoE;AAG3D,8FAHA,2BAAY,QAGA;AAFrB,iHAAyD;AAErB,kGAF3B,qBAAS,QAEkC;AACpD,6DAAqC;AAA5B,gGAAI;AAAE,oGAAM","sources":["webpack://vwoSdk/webpack/universalModuleDefinition","webpack://vwoSdk/./node_modules/murmurhash/murmurhash.js","webpack://vwoSdk/./lib/VWO.ts","webpack://vwoSdk/./lib/VWOBuilder.ts","webpack://vwoSdk/./lib/VWOClient.ts","webpack://vwoSdk/./lib/api/GetFlag.ts","webpack://vwoSdk/./lib/api/SetAttribute.ts","webpack://vwoSdk/./lib/api/TrackEvent.ts","webpack://vwoSdk/./lib/constants/Url.ts","webpack://vwoSdk/./lib/constants/index.ts","webpack://vwoSdk/./lib/decorators/StorageDecorator.ts","webpack://vwoSdk/./lib/enums/ApiEnum.ts","webpack://vwoSdk/./lib/enums/CampaignTypeEnum.ts","webpack://vwoSdk/./lib/enums/EventEnum.ts","webpack://vwoSdk/./lib/enums/HeadersEnum.ts","webpack://vwoSdk/./lib/enums/HttpMethodEnum.ts","webpack://vwoSdk/./lib/enums/PlatformEnum.ts","webpack://vwoSdk/./lib/enums/StatusEnum.ts","webpack://vwoSdk/./lib/enums/StorageEnum.ts","webpack://vwoSdk/./lib/enums/UrlEnum.ts","webpack://vwoSdk/./lib/enums/log-messages/index.ts","webpack://vwoSdk/./lib/models/campaign/CampaignModel.ts","webpack://vwoSdk/./lib/models/campaign/FeatureModel.ts","webpack://vwoSdk/./lib/models/campaign/ImpactCampaignModel.ts","webpack://vwoSdk/./lib/models/campaign/MetricModel.ts","webpack://vwoSdk/./lib/models/campaign/RuleModel.ts","webpack://vwoSdk/./lib/models/campaign/VariableModel.ts","webpack://vwoSdk/./lib/models/campaign/VariationModel.ts","webpack://vwoSdk/./lib/models/schemas/SettingsSchemaValidation.ts","webpack://vwoSdk/./lib/models/settings/SettingsModel.ts","webpack://vwoSdk/./lib/models/user/ContextModel.ts","webpack://vwoSdk/./lib/models/user/ContextVWOModel.ts","webpack://vwoSdk/./lib/packages/decision-maker/index.ts","webpack://vwoSdk/./lib/packages/logger/LogMessageBuilder.ts","webpack://vwoSdk/./lib/packages/logger/Logger.ts","webpack://vwoSdk/./lib/packages/logger/core/LogManager.ts","webpack://vwoSdk/./lib/packages/logger/core/TransportManager.ts","webpack://vwoSdk/./lib/packages/logger/enums/LogLevelEnum.ts","webpack://vwoSdk/./lib/packages/logger/index.ts","webpack://vwoSdk/./lib/packages/logger/transports/ConsoleTransport.ts","webpack://vwoSdk/./lib/packages/network-layer/client/NetworkBrowserClient.ts","webpack://vwoSdk/./lib/packages/network-layer/handlers/RequestHandler.ts","webpack://vwoSdk/./lib/packages/network-layer/index.ts","webpack://vwoSdk/./lib/packages/network-layer/manager/NetworkManager.ts","webpack://vwoSdk/./lib/packages/network-layer/models/GlobalRequestModel.ts","webpack://vwoSdk/./lib/packages/network-layer/models/RequestModel.ts","webpack://vwoSdk/./lib/packages/network-layer/models/ResponseModel.ts","webpack://vwoSdk/./lib/packages/segmentation-evaluator/core/SegmentationManger.ts","webpack://vwoSdk/./lib/packages/segmentation-evaluator/enums/SegmentOperandRegexEnum.ts","webpack://vwoSdk/./lib/packages/segmentation-evaluator/enums/SegmentOperandValueEnum.ts","webpack://vwoSdk/./lib/packages/segmentation-evaluator/enums/SegmentOperatorValueEnum.ts","webpack://vwoSdk/./lib/packages/segmentation-evaluator/evaluators/SegmentEvaluator.ts","webpack://vwoSdk/./lib/packages/segmentation-evaluator/evaluators/SegmentOperandEvaluator.ts","webpack://vwoSdk/./lib/packages/segmentation-evaluator/index.ts","webpack://vwoSdk/./lib/packages/segmentation-evaluator/utils/SegmentUtil.ts","webpack://vwoSdk/./lib/packages/storage/Connector.ts","webpack://vwoSdk/./lib/packages/storage/Storage.ts","webpack://vwoSdk/./lib/packages/storage/index.ts","webpack://vwoSdk/./lib/services/CampaignDecisionService.ts","webpack://vwoSdk/./lib/services/HooksService.ts","webpack://vwoSdk/./lib/services/SettingsService.ts","webpack://vwoSdk/./lib/services/StorageService.ts","webpack://vwoSdk/./lib/utils/CampaignUtil.ts","webpack://vwoSdk/./lib/utils/DataTypeUtil.ts","webpack://vwoSdk/./lib/utils/DecisionUtil.ts","webpack://vwoSdk/./lib/utils/FunctionUtil.ts","webpack://vwoSdk/./lib/utils/GatewayServiceUtil.ts","webpack://vwoSdk/./lib/utils/ImpressionUtil.ts","webpack://vwoSdk/./lib/utils/LogMessageUtil.ts","webpack://vwoSdk/./lib/utils/MegUtil.ts","webpack://vwoSdk/./lib/utils/NetworkUtil.ts","webpack://vwoSdk/./lib/utils/PromiseUtil.ts","webpack://vwoSdk/./lib/utils/RuleEvaluationUtil.ts","webpack://vwoSdk/./lib/utils/SettingsUtil.ts","webpack://vwoSdk/./lib/utils/UrlUtil.ts","webpack://vwoSdk/./lib/utils/UuidUtil.ts","webpack://vwoSdk/./lib/utils/XMLUtil.ts","webpack://vwoSdk/./node_modules/uuid/dist/commonjs-browser/index.js","webpack://vwoSdk/./node_modules/uuid/dist/commonjs-browser/md5.js","webpack://vwoSdk/./node_modules/uuid/dist/commonjs-browser/native.js","webpack://vwoSdk/./node_modules/uuid/dist/commonjs-browser/nil.js","webpack://vwoSdk/./node_modules/uuid/dist/commonjs-browser/parse.js","webpack://vwoSdk/./node_modules/uuid/dist/commonjs-browser/regex.js","webpack://vwoSdk/./node_modules/uuid/dist/commonjs-browser/rng.js","webpack://vwoSdk/./node_modules/uuid/dist/commonjs-browser/sha1.js","webpack://vwoSdk/./node_modules/uuid/dist/commonjs-browser/stringify.js","webpack://vwoSdk/./node_modules/uuid/dist/commonjs-browser/v1.js","webpack://vwoSdk/./node_modules/uuid/dist/commonjs-browser/v3.js","webpack://vwoSdk/./node_modules/uuid/dist/commonjs-browser/v35.js","webpack://vwoSdk/./node_modules/uuid/dist/commonjs-browser/v4.js","webpack://vwoSdk/./node_modules/uuid/dist/commonjs-browser/v5.js","webpack://vwoSdk/./node_modules/uuid/dist/commonjs-browser/validate.js","webpack://vwoSdk/./node_modules/uuid/dist/commonjs-browser/version.js","webpack://vwoSdk/./node_modules/vwo-fme-sdk-log-messages/index.js","webpack://vwoSdk/./node_modules/superstruct/lib/index.cjs","webpack://vwoSdk/webpack/bootstrap","webpack://vwoSdk/./lib/index.ts"],"sourcesContent":["(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, () => {\nreturn ","(function(){\n const _global = this;\n\n const createBuffer = (val) => new TextEncoder().encode(val)\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 {Uint8Array | 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 if (typeof str === 'string') str = createBuffer(str);\n let\n l = str.length,\n h = seed ^ l,\n i = 0,\n k;\n\n while (l >= 4) {\n k =\n ((str[i] & 0xff)) |\n ((str[++i] & 0xff) << 8) |\n ((str[++i] & 0xff) << 16) |\n ((str[++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[i + 2] & 0xff) << 16;\n case 2: h ^= (str[i + 1] & 0xff) << 8;\n case 1: h ^= (str[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 {Uint8Array | 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 if (typeof key === 'string') key = createBuffer(key);\n\n let 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[i] & 0xff)) |\n ((key[++i] & 0xff) << 8) |\n ((key[++i] & 0xff) << 16) |\n ((key[++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[i + 2] & 0xff) << 16;\n case 2: k1 ^= (key[i + 1] & 0xff) << 8;\n case 1: k1 ^= (key[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 const murmur = MurmurHashV3;\n murmur.v2 = MurmurHashV2;\n murmur.v3 = MurmurHashV3;\n\n if (typeof(module) != 'undefined') {\n module.exports = murmur;\n } else {\n const _previousRoot = _global.murmur;\n murmur.noConflict = function() {\n _global.murmur = _previousRoot;\n return murmur;\n }\n _global.murmur = murmur;\n }\n}());\n","/**\n * Copyright 2024 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 */\nimport { VWOBuilder } from './VWOBuilder';\nimport { IVWOClient } from './VWOClient';\nimport { IVWOOptions } from './models/VWOOptionsModel';\nimport { SettingsModel } from './models/settings/SettingsModel';\nimport { dynamic } from './types/Common';\nimport { isObject, isString } from './utils/DataTypeUtil';\nimport { Deferred } from './utils/PromiseUtil';\n\nimport { InfoLogMessagesEnum, ErrorLogMessagesEnum } from './enums/log-messages';\nimport { buildMessage } from './utils/LogMessageUtil';\nimport { PlatformEnum } from './enums/PlatformEnum';\n\nexport class VWO {\n private static vwoBuilder: VWOBuilder;\n private static instance: dynamic;\n\n /**\n * Constructor for the VWO class.\n * Initializes a new instance of VWO with the provided options.\n * @param {Record} options - Configuration options for the VWO instance.\n * @returns The instance of VWO.\n */\n constructor(options: IVWOOptions) {\n return VWO.setInstance(options);\n }\n\n /**\n * Sets the singleton instance of VWO.\n * Configures and builds the VWO instance using the provided options.\n * @param {Record} options - Configuration options for setting up VWO.\n * @returns A Promise resolving to the configured VWO instance.\n */\n private static setInstance(options: IVWOOptions): Promise {\n const optionsVWOBuilder: any = options?.vwoBuilder;\n this.vwoBuilder = optionsVWOBuilder || new VWOBuilder(options);\n\n this.instance = this.vwoBuilder\n .setLogger() // Sets up logging for debugging and monitoring.\n .setSettingsService() // Sets the settings service for configuration management.\n .setStorage() // Configures storage for data persistence.\n .setNetworkManager() // Configures network management for API communication.\n .setSegmentation() // Sets up segmentation for targeted functionality.\n // .initBatching() // Initializes batching for bulk data processing.\n .initPolling(); // Starts polling mechanism for regular updates.\n // .setAnalyticsCallback() // Sets up analytics callback for data analysis.\n\n return this.vwoBuilder.getSettings().then((settings: SettingsModel) => {\n return this.vwoBuilder.build(settings); // Builds the VWO instance with the fetched settings.\n });\n }\n\n /**\n * Gets the singleton instance of VWO.\n * @returns The singleton instance of VWO.\n */\n static get Instance(): dynamic {\n return this.instance;\n }\n}\n\nlet _global: Record = {};\n/**\n * Initializes a new instance of VWO with the provided options.\n * @param options Configuration options for the VWO instance.\n * @property {string} sdkKey - The SDK key for the VWO account.\n * @property {string} accountId - The account ID for the VWO account.\n * @property {GatewayServiceModel} gatewayService - The gateway service configuration.\n * @property {StorageService} storage - The storage configuration.\n * @returns\n */\n\nexport async function init(options: IVWOOptions): Promise {\n const apiName = 'init';\n const date = new Date().toISOString();\n\n try {\n if (!isObject(options)) {\n const msg = buildMessage(ErrorLogMessagesEnum.INIT_OPTIONS_ERROR, {\n date,\n });\n console.error(msg); // Ensures options is an object.\n }\n\n if (!options?.sdkKey || !isString(options?.sdkKey)) {\n const msg = buildMessage(ErrorLogMessagesEnum.INIT_OPTIONS_SDK_KEY_ERROR, {\n date,\n });\n console.error(msg); // Validates sdkKey presence and type.\n }\n\n if (!options.accountId) {\n const msg = buildMessage(ErrorLogMessagesEnum.INIT_OPTIONS_ACCOUNT_ID_ERROR, {\n date,\n });\n console.error(msg); // Validates accountId presence and type.\n }\n\n if (typeof process.env === 'undefined') {\n options.platform = PlatformEnum.CLIENT;\n } else {\n options.platform = PlatformEnum.SERVER;\n }\n\n const instance: any = new VWO(options); // Creates a new VWO instance with the validated options.\n\n _global = {\n vwoInitDeferred: new Deferred(),\n isSettingsFetched: false,\n instance: null,\n };\n\n return instance.then((_vwoInstance) => {\n _global.isSettingsFetched = true;\n _global.instance = _vwoInstance;\n _global.vwoInitDeferred.resolve(_vwoInstance);\n\n return _vwoInstance;\n });\n } catch (err) {\n const msg = buildMessage(ErrorLogMessagesEnum.API_THROW_ERROR, {\n apiName,\n err,\n });\n\n console.info(`[INFO]: VWO-SDK ${new Date().toISOString()} ${msg}`);\n }\n}\n\nexport async function onInit() {\n const apiName = 'onInit';\n\n try {\n _global.vwoInitDeferred = new Deferred();\n const date = new Date().toISOString();\n\n // If settings are already fetched, resolve the promise\n if (_global.isSettingsFetched) {\n const msg = buildMessage(InfoLogMessagesEnum.ON_INIT_ALREADY_RESOLVED, {\n date,\n apiName,\n });\n\n console.info(msg);\n _global.vwoInitDeferred.resolve(_global.instance);\n } else {\n // wait for five seconds, else reject the promise\n setTimeout(() => {\n if (_global.isSettingsFetched) {\n return;\n }\n\n const msg = buildMessage(InfoLogMessagesEnum.ON_INIT_SETTINGS_FAILED, {\n date,\n });\n\n console.error(msg);\n _global.vwoInitDeferred.reject(new Error('VWO settings could not be fetched'));\n }, 5000);\n }\n\n return _global.vwoInitDeferred.promise;\n } catch (err) {\n const msg = buildMessage(ErrorLogMessagesEnum.API_THROW_ERROR, {\n apiName,\n err,\n });\n\n console.info(`[INFO]: VWO-SDK ${new Date().toISOString()} ${msg}`);\n }\n}\n","/**\n * Copyright 2024 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 */\nimport { dynamic } from './types/Common';\n\nimport { ILogManager, LogManager } from './packages/logger';\nimport { NetworkManager } from './packages/network-layer';\nimport { SegmentationManager } from './packages/segmentation-evaluator';\n\nimport { Storage } from './packages/storage';\n\nimport { IVWOClient, VWOClient } from './VWOClient';\nimport { SettingsModel } from './models/settings/SettingsModel';\nimport { SettingsService } from './services/SettingsService';\n\nimport { DebugLogMessagesEnum, ErrorLogMessagesEnum, InfoLogMessagesEnum } from './enums/log-messages';\nimport { IVWOOptions } from './models/VWOOptionsModel';\nimport { isNumber } from './utils/DataTypeUtil';\nimport { cloneObject } from './utils/FunctionUtil';\nimport { buildMessage } from './utils/LogMessageUtil';\nimport { Deferred } from './utils/PromiseUtil';\nimport { setSettingsAndAddCampaignsToRules } from './utils/SettingsUtil';\nimport { getRandomUUID } from './utils/UuidUtil';\n\nexport interface IVWOBuilder {\n settings: SettingsModel; // Holds the configuration settings for the VWO client\n storage: Storage; // Interface for storage management\n logManager: ILogManager; // Manages logging across the VWO SDK\n isSettingsFetchInProgress: boolean; // Flag to check if settings fetch is in progress\n vwoInstance: IVWOClient;\n\n build(settings: SettingsModel): IVWOClient; // Builds and returns a new VWOClient instance\n\n fetchSettings(): Promise; // Asynchronously fetches settings from the server\n setSettingsService(): this; // Sets up the settings manager with provided options\n getSettings(force: boolean): Promise; // Fetches settings, optionally forcing a refresh\n setStorage(): this; // Sets up the storage connector based on provided options\n setNetworkManager(): this; // Configures the network manager with client and mode\n // initBatching(): this; // Initializes event batching with provided configuration\n // setAnalyticsCallback(): this; // Configures the analytics callback based on provided options\n initPolling(): this; // Sets up polling for settings at a specified interval\n setLogger(): this; // Sets up the logger with specified options\n setSegmentation(): this; // Configures the segmentation evaluator with provided options\n}\n\nexport class VWOBuilder implements IVWOBuilder {\n readonly sdkKey: string;\n readonly options: IVWOOptions;\n\n private settingFileManager: SettingsService;\n\n settings: SettingsModel;\n storage: Storage;\n logManager: ILogManager;\n originalSettings: dynamic;\n isSettingsFetchInProgress: boolean;\n vwoInstance: IVWOClient;\n\n constructor(options: IVWOOptions) {\n this.options = options;\n }\n\n /**\n * Sets the network manager with the provided client and development mode options.\n * @returns {this} The instance of this builder.\n */\n setNetworkManager(): this {\n const networkInstance = NetworkManager.Instance;\n // Attach the network client from options\n networkInstance.attachClient(this.options?.network?.client);\n\n LogManager.Instance.debug(\n buildMessage(DebugLogMessagesEnum.SERVICE_INITIALIZED, {\n service: `Network Layer`,\n }),\n );\n // Set the development mode based on options\n networkInstance.getConfig().setDevelopmentMode(this.options?.isDevelopmentMode);\n return this;\n }\n\n /**\n * Sets the segmentation evaluator with the provided segmentation options.\n * @returns {this} The instance of this builder.\n */\n setSegmentation(): this {\n SegmentationManager.Instance.attachEvaluator(this.options?.segmentation);\n LogManager.Instance.debug(\n buildMessage(DebugLogMessagesEnum.SERVICE_INITIALIZED, {\n service: `Segmentation Evaluator`,\n }),\n );\n return this;\n }\n\n /**\n * Fetches settings asynchronously, ensuring no parallel fetches.\n * @param {boolean} [force=false] - Force fetch ignoring cache.\n * @returns {Promise} A promise that resolves to the fetched settings.\n */\n fetchSettings(force?: boolean): Promise {\n const deferredObject = new Deferred();\n\n // Check if a fetch operation is already in progress\n if (!this.isSettingsFetchInProgress) {\n this.isSettingsFetchInProgress = true;\n this.settingFileManager.getSettings(force).then((settings: SettingsModel) => {\n // if force is false, update original settings, if true the request is from polling and no need to update original settings\n if (!force) {\n this.originalSettings = settings;\n }\n\n this.isSettingsFetchInProgress = false;\n deferredObject.resolve(settings);\n });\n\n return deferredObject.promise;\n } else {\n // Avoid parallel fetches by recursively calling fetchSettings\n return this.fetchSettings(force);\n }\n }\n\n /**\n * Gets the settings, fetching them if not cached or if forced.\n * @param {boolean} [force=false] - Force fetch ignoring cache.\n * @returns {Promise} A promise that resolves to the settings.\n */\n getSettings(force?: boolean): Promise {\n const deferredObject = new Deferred();\n\n try {\n // Use cached settings if available and not forced to fetch\n if (!force && this.settings) {\n LogManager.Instance.info('Using already fetched and cached settings');\n deferredObject.resolve(this.settings);\n } else {\n // Fetch settings if not cached or forced\n this.fetchSettings(force).then((settings: SettingsModel) => {\n deferredObject.resolve(settings);\n });\n }\n } catch (err) {\n LogManager.Instance.error('Failed to fetch settings. Error: ' + err);\n deferredObject.resolve({});\n }\n return deferredObject.promise;\n }\n\n /**\n * Sets the storage connector based on the provided storage options.\n * @returns {this} The instance of this builder.\n */\n setStorage(): this {\n if (this.options.storage) {\n // Attach the storage connector from options\n this.storage = Storage.Instance.attachConnector(this.options.storage);\n } else {\n // Set storage to null if no storage options provided\n this.storage = null;\n }\n\n return this;\n }\n\n /**\n * Sets the settings manager with the provided options.\n * @returns {this} The instance of this builder.\n */\n setSettingsService(): this {\n this.settingFileManager = new SettingsService(this.options);\n\n return this;\n }\n\n /**\n * Sets the logger with the provided logger options.\n * @returns {this} The instance of this builder.\n */\n setLogger(): this {\n this.logManager = new LogManager(this.options.logger || {});\n\n LogManager.Instance.debug(\n buildMessage(DebugLogMessagesEnum.SERVICE_INITIALIZED, {\n service: `Logger`,\n }),\n );\n return this;\n }\n\n /**\n * Sets the analytics callback with the provided analytics options.\n * @returns {this} The instance of this builder.\n */\n /* setAnalyticsCallback(): this {\n if (!isObject(this.options.analyticsEvent)) {\n // TODO: add logging here\n return this;\n }\n\n if (!isFunction(this.options.analyticsEvent.eventCallback)) {\n // TODO: add logging here\n return this;\n }\n\n if (\n this.options.analyticsEvent.isBatchingSupported &&\n !isBoolean(this.options.analyticsEvent.isBatchingSupported)\n ) {\n // TODO:- add logging here\n return this;\n }\n\n // AnalyticsEvent.Instance.attachCallback(\n // this.options.analyticsEvent.eventCallback,\n // this.options.analyticsEvent.isBatchingSupported\n // );\n return this;\n } */\n\n /**\n * Generates a random user ID based on the provided API key.\n * @returns {string} The generated random user ID.\n */\n getRandomUserId(): string {\n const apiName = 'getRandomUserId';\n try {\n LogManager.Instance.debug(\n buildMessage(DebugLogMessagesEnum.API_CALLED, {\n apiName,\n }),\n );\n\n return getRandomUUID(this.options.sdkKey);\n } catch (err) {\n LogManager.Instance.error(\n buildMessage(ErrorLogMessagesEnum.API_THROW_ERROR, {\n apiName,\n err,\n }),\n );\n }\n }\n\n /**\n * Initializes the batching with the provided batch events options.\n * @returns {this} The instance of this builder.\n */\n /* initBatching(): this {\n if (!isObject(this.options.batchEvents)) {\n // TODO:- add logging here\n return this;\n }\n\n if (\n isObject(this.options.batchEvents) &&\n (!(\n (isNumber(this.options.batchEvents.eventsPerRequest) &&\n this.options.batchEvents.eventsPerRequest > 0 &&\n this.options.batchEvents.eventsPerRequest <= Constants.MAX_EVENTS_PER_REQUEST) ||\n (isNumber(this.options.batchEvents.requestTimeInterval) && this.options.batchEvents.requestTimeInterval >= 1)\n ) ||\n !isFunction(this.options.batchEvents.flushCallback))\n ) {\n LogManager.Instance.error('Invalid batchEvents config');\n // throw new Error('Invalid batchEvents config');\n return this;\n }\n\n // BatchEventsQueue.Instance.setBatchConfig(this.options.batchEvents, this.options.sdkKey); // TODO\n\n return this;\n } */\n\n /**\n * Initializes the polling with the provided poll interval.\n * @returns {this} The instance of this builder.\n */\n initPolling(): this {\n if (!this.options.pollInterval) {\n return this;\n }\n\n if (this.options.pollInterval && !isNumber(this.options.pollInterval)) {\n LogManager.Instance.error(\n buildMessage(ErrorLogMessagesEnum.INIT_OPTIONS_INVALID, {\n key: 'pollInterval',\n correctType: 'number',\n }),\n );\n return this;\n }\n\n if (this.options.pollInterval && this.options.pollInterval < 1000) {\n LogManager.Instance.error(\n buildMessage(ErrorLogMessagesEnum.INIT_OPTIONS_INVALID, {\n key: 'pollInterval',\n correctType: 'number',\n }),\n );\n return this;\n }\n\n this.checkAndPoll();\n\n return this;\n }\n\n /**\n * Builds a new VWOClient instance with the provided settings.\n * @param {SettingsModel} settings - The settings for the VWOClient.\n * @returns {VWOClient} The new VWOClient instance.\n */\n build(settings: SettingsModel): IVWOClient {\n this.vwoInstance = new VWOClient(settings, this.options);\n\n return this.vwoInstance;\n }\n\n /**\n * Checks and polls for settings updates at the provided interval.\n */\n checkAndPoll(): void {\n const pollingInterval = this.options.pollInterval;\n\n setInterval(() => {\n this.getSettings(true)\n .then((latestSettings: SettingsModel) => {\n const lastSettings = JSON.stringify(this.originalSettings);\n const stringifiedLatestSettings = JSON.stringify(latestSettings);\n if (stringifiedLatestSettings !== lastSettings) {\n this.originalSettings = latestSettings;\n const clonedSettings = cloneObject(latestSettings);\n\n LogManager.Instance.info(InfoLogMessagesEnum.POLLING_SET_SETTINGS);\n setSettingsAndAddCampaignsToRules(clonedSettings, this.vwoInstance);\n } else {\n LogManager.Instance.info(InfoLogMessagesEnum.POLLING_NO_CHANGE_IN_SETTINGS);\n }\n })\n .catch(() => {\n LogManager.Instance.error(ErrorLogMessagesEnum.POLLING_FETCH_SETTINGS_FAILED);\n });\n }, pollingInterval);\n }\n}\n","/**\n * Copyright 2024 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 */\nimport { LogManager } from './packages/logger';\nimport { Storage } from './packages/storage';\n\nimport { FlagApi } from './api/GetFlag';\nimport { SetAttributeApi } from './api/SetAttribute';\nimport { TrackApi } from './api/TrackEvent';\n\nimport { DebugLogMessagesEnum, ErrorLogMessagesEnum, InfoLogMessagesEnum } from './enums/log-messages';\nimport { SettingsModel } from './models/settings/SettingsModel';\n\nimport { dynamic } from './types/Common';\n// import { BatchEventsQueue } from './services/batchEventsQueue';\n\nimport { SettingsSchema } from './models/schemas/SettingsSchemaValidation';\nimport { ContextModel } from './models/user/ContextModel';\nimport HooksService from './services/HooksService';\nimport { UrlUtil } from './utils/UrlUtil';\n\nimport { getType, isBoolean, isNumber, isObject, isString } from './utils/DataTypeUtil';\n\nimport { buildMessage } from './utils/LogMessageUtil';\nimport { Deferred } from './utils/PromiseUtil';\n\nimport { IVWOOptions } from './models/VWOOptionsModel';\nimport { setSettingsAndAddCampaignsToRules } from './utils/SettingsUtil';\nimport { setShouldWaitForTrackingCalls } from './utils/NetworkUtil';\n\nexport interface IVWOClient {\n readonly options?: IVWOOptions;\n settings: SettingsModel;\n\n getFlag(featureKey: string, context: Record): Record;\n trackEvent(\n eventName: string,\n context: Record,\n eventProperties: Record,\n ): Promise>;\n setAttribute(\n attributeKey: string,\n attributeValue: boolean | string | number,\n context: Record,\n ): Promise;\n}\n\nexport class VWOClient implements IVWOClient {\n settings: SettingsModel;\n originalSettings: Record;\n storage: Storage;\n\n constructor(settings: SettingsModel, options: IVWOOptions) {\n this.options = options;\n\n setSettingsAndAddCampaignsToRules(settings, this);\n\n UrlUtil.init({\n collectionPrefix: this.settings.getCollectionPrefix(),\n });\n\n setShouldWaitForTrackingCalls(this.options.shouldWaitForTrackingCalls || false);\n\n LogManager.Instance.info(InfoLogMessagesEnum.CLIENT_INITIALIZED);\n return this;\n }\n options?: IVWOOptions;\n /**\n * Retrieves the value of a feature flag for a given feature key and context.\n * This method validates the feature key and context, ensures the settings are valid, and then uses the FlagApi to get the flag value.\n *\n * @param {string} featureKey - The key of the feature to retrieve.\n * @param {ContextModel} context - The context in which the feature flag is being retrieved, must include a valid user ID.\n * @returns {Promise>} - A promise that resolves to the feature flag value.\n */\n getFlag(featureKey: string, context: Record): Record {\n const apiName = 'getFlag';\n const deferredObject = new Deferred();\n const errorReturnSchema = {\n isEnabled: (): boolean => false,\n getVariables: (): Array> => [],\n getVariable: (_key: string, defaultValue: any): dynamic => defaultValue,\n };\n\n try {\n const hooksService = new HooksService(this.options);\n\n LogManager.Instance.debug(\n buildMessage(DebugLogMessagesEnum.API_CALLED, {\n apiName,\n }),\n );\n\n // Validate featureKey is a string\n if (!isString(featureKey)) {\n LogManager.Instance.error(\n buildMessage(ErrorLogMessagesEnum.API_INVALID_PARAM, {\n apiName,\n key: 'featureKey',\n type: getType(featureKey),\n correctType: 'string',\n }),\n );\n\n throw new TypeError('TypeError: featureKey should be a string');\n }\n\n // Validate settings are loaded and valid\n if (!new SettingsSchema().isSettingsValid(this.originalSettings)) {\n LogManager.Instance.error(ErrorLogMessagesEnum.API_SETTING_INVALID);\n throw new Error('TypeError: Invalid Settings');\n }\n\n // Validate user ID is present in context\n if (!context || !context.id) {\n LogManager.Instance.error(ErrorLogMessagesEnum.API_CONTEXT_INVALID);\n throw new TypeError('TypeError: Invalid context');\n }\n\n const contextModel = new ContextModel().modelFromDictionary(context);\n\n new FlagApi()\n .get(featureKey, this.settings, contextModel, hooksService)\n .then((data: any) => {\n deferredObject.resolve(data);\n })\n .catch(() => {\n deferredObject.resolve(errorReturnSchema);\n });\n } catch (err) {\n LogManager.Instance.info(\n buildMessage(ErrorLogMessagesEnum.API_THROW_ERROR, {\n apiName,\n err,\n }),\n );\n\n deferredObject.resolve(errorReturnSchema);\n }\n\n return deferredObject.promise;\n }\n\n /**\n * Tracks an event with specified properties and context.\n * This method validates the types of the inputs and ensures the settings and user context are valid before proceeding.\n *\n * @param {string} eventName - The name of the event to track.\n * @param {ContextModel} context - The context in which the event is being tracked, must include a valid user ID.\n * @param {Record} eventProperties - The properties associated with the event.\n * @returns {Promise>} - A promise that resolves to the result of the tracking operation.\n */\n trackEvent(\n eventName: string,\n context: Record,\n eventProperties: Record = {},\n ): Promise> {\n const apiName = 'trackEvent';\n const deferredObject = new Deferred();\n\n try {\n const hooksService = new HooksService(this.options);\n\n // Log the API call\n LogManager.Instance.debug(\n buildMessage(DebugLogMessagesEnum.API_CALLED, {\n apiName,\n }),\n );\n\n // Validate eventName is a string\n if (!isString(eventName)) {\n LogManager.Instance.error(\n buildMessage(ErrorLogMessagesEnum.API_INVALID_PARAM, {\n apiName,\n key: 'eventName',\n type: getType(eventName),\n correctType: 'string',\n }),\n );\n\n throw new TypeError('TypeError: Event-name should be a string');\n }\n\n // Validate eventProperties is an object\n if (!isObject(eventProperties)) {\n LogManager.Instance.error(\n buildMessage(ErrorLogMessagesEnum.API_INVALID_PARAM, {\n apiName,\n key: 'eventProperties',\n type: getType(eventProperties),\n correctType: 'object',\n }),\n );\n\n throw new TypeError('TypeError: eventProperties should be an object');\n }\n\n // Validate settings are loaded and valid\n if (!new SettingsSchema().isSettingsValid(this.originalSettings)) {\n LogManager.Instance.error(ErrorLogMessagesEnum.API_SETTING_INVALID);\n throw new Error('TypeError: Invalid Settings');\n }\n\n // Validate user ID is present in context\n if (!context || !context.id) {\n LogManager.Instance.error(ErrorLogMessagesEnum.API_CONTEXT_INVALID);\n throw new TypeError('TypeError: Invalid context');\n }\n\n const contextModel = new ContextModel().modelFromDictionary(context);\n\n // Proceed with tracking the event\n new TrackApi()\n .track(this.settings, eventName, contextModel, eventProperties, hooksService)\n .then((data) => {\n deferredObject.resolve(data);\n })\n .catch(() => {\n deferredObject.resolve({ [eventName]: false });\n });\n } catch (err) {\n // Log any errors encountered during the operation\n LogManager.Instance.info(\n buildMessage(ErrorLogMessagesEnum.API_THROW_ERROR, {\n apiName,\n err,\n }),\n );\n\n deferredObject.resolve({ [eventName]: false });\n }\n\n return deferredObject.promise;\n }\n\n /**\n * Sets an attribute for a user in the context provided.\n * This method validates the types of the inputs before proceeding with the API call.\n *\n * @param {string} attributeKey - The key of the attribute to set.\n * @param {string} attributeValue - The value of the attribute to set.\n * @param {ContextModel} context - The context in which the attribute should be set, must include a valid user ID.\n */\n async setAttribute(\n attributeKey: string,\n attributeValue: boolean | string | number,\n context: Record,\n ): Promise {\n const apiName = 'setAttribute';\n\n try {\n // Log the API call\n LogManager.Instance.debug(\n buildMessage(DebugLogMessagesEnum.API_CALLED, {\n apiName,\n }),\n );\n\n // Validate attributeKey is a string\n if (!isString(attributeKey)) {\n LogManager.Instance.error(\n buildMessage(ErrorLogMessagesEnum.API_INVALID_PARAM, {\n apiName,\n key: 'attributeKey',\n type: getType(attributeKey),\n correctType: 'string',\n }),\n );\n\n throw new TypeError('TypeError: attributeKey should be a string');\n }\n // Validate attributeValue is a string\n if (!isString(attributeValue) && !isNumber(attributeValue) && !isBoolean(attributeValue)) {\n LogManager.Instance.error(\n buildMessage(ErrorLogMessagesEnum.API_INVALID_PARAM, {\n apiName,\n key: 'attributeValue',\n type: getType(attributeValue),\n correctType: 'boolean | string | number',\n }),\n );\n\n throw new TypeError('TypeError: attributeValue should be a string');\n }\n\n // Validate user ID is present in context\n if (!context || !context.id) {\n LogManager.Instance.error(ErrorLogMessagesEnum.API_CONTEXT_INVALID);\n throw new TypeError('TypeError: Invalid context');\n }\n\n const contextModel = new ContextModel().modelFromDictionary(context);\n\n // Proceed with setting the attribute if validation is successful\n await new SetAttributeApi().setAttribute(this.settings, attributeKey, attributeValue, contextModel);\n } catch (err) {\n // Log any errors encountered during the operation\n LogManager.Instance.info(\n buildMessage(ErrorLogMessagesEnum.API_THROW_ERROR, {\n apiName,\n err,\n }),\n );\n }\n }\n}\n","/**\n * Copyright 2024 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\nimport { FeatureModel } from '../models/campaign/FeatureModel';\nimport { SettingsModel } from '../models/settings/SettingsModel';\n\nimport { StorageDecorator } from '../decorators/StorageDecorator';\nimport { ApiEnum } from '../enums/ApiEnum';\nimport { CampaignTypeEnum } from '../enums/CampaignTypeEnum';\nimport { DebugLogMessagesEnum, ErrorLogMessagesEnum, InfoLogMessagesEnum } from '../enums/log-messages';\nimport { CampaignModel } from '../models/campaign/CampaignModel';\nimport { VariableModel } from '../models/campaign/VariableModel';\nimport { VariationModel } from '../models/campaign/VariationModel';\nimport { ContextModel } from '../models/user/ContextModel';\nimport { LogManager } from '../packages/logger';\nimport { SegmentationManager } from '../packages/segmentation-evaluator';\nimport IHooksService from '../services/HooksService';\nimport { StorageService } from '../services/StorageService';\nimport { getVariationFromCampaignKey } from '../utils/CampaignUtil';\nimport { isObject } from '../utils/DataTypeUtil';\nimport { evaluateTrafficAndGetVariation } from '../utils/DecisionUtil';\nimport { getAllExperimentRules, getFeatureFromKey, getSpecificRulesBasedOnType } from '../utils/FunctionUtil';\nimport { createAndSendImpressionForVariationShown } from '../utils/ImpressionUtil';\nimport { buildMessage } from '../utils/LogMessageUtil';\nimport { Deferred } from '../utils/PromiseUtil';\nimport { evaluateRule } from '../utils/RuleEvaluationUtil';\nimport { getShouldWaitForTrackingCalls } from '../utils/NetworkUtil';\n\ninterface IGetFlag {\n get(\n featureKey: string,\n settings: SettingsModel,\n context: ContextModel,\n hooksService: IHooksService,\n ): Promise;\n}\n\nexport class FlagApi implements IGetFlag {\n async get(\n featureKey: string,\n settings: SettingsModel,\n context: ContextModel,\n hooksService: IHooksService,\n ): Promise {\n let isEnabled = false;\n let rolloutVariationToReturn = null;\n let experimentVariationToReturn = null;\n let shouldCheckForExperimentsRules = false;\n\n const passedRulesInformation = {}; // for storing and integration callback\n const deferredObject = new Deferred();\n const evaluatedFeatureMap: Map = new Map();\n\n // get feature object from feature key\n const feature = getFeatureFromKey(settings, featureKey);\n const decision = {\n featureName: feature?.getName(),\n featureId: feature?.getId(),\n featureKey: feature?.getKey(),\n userId: context?.getId(),\n api: ApiEnum.GET_FLAG,\n };\n\n const storageService = new StorageService();\n const storedData: Record = await new StorageDecorator().getFeatureFromStorage(\n featureKey,\n context,\n storageService,\n );\n\n if (storedData?.experimentVariationId) {\n if (storedData.experimentKey) {\n const variation: VariationModel = getVariationFromCampaignKey(\n settings,\n storedData.experimentKey,\n storedData.experimentVariationId,\n );\n\n if (variation) {\n LogManager.Instance.info(\n buildMessage(InfoLogMessagesEnum.STORED_VARIATION_FOUND, {\n variationKey: variation.getKey(),\n userId: context.getId(),\n experimentType: 'experiment',\n experimentKey: storedData.experimentKey,\n }),\n );\n deferredObject.resolve({\n isEnabled: () => true,\n getVariables: () => variation?.getVariables(),\n getVariable: (\n key: string,\n defaultValue: string, // loop over all variables object and return the value where key is equal to given key else return given default value\n ) =>\n variation\n ?.getVariables()\n .find((variable) => new VariableModel().modelFromDictionary(variable).getKey() === key)\n ?.getValue() || defaultValue,\n });\n\n return deferredObject.promise;\n }\n }\n } else if (storedData?.rolloutKey && storedData?.rolloutId) {\n const variation: VariationModel = getVariationFromCampaignKey(\n settings,\n storedData.rolloutKey,\n storedData.rolloutVariationId,\n );\n if (variation) {\n LogManager.Instance.info(\n buildMessage(InfoLogMessagesEnum.STORED_VARIATION_FOUND, {\n variationKey: variation.getKey(),\n userId: context.getId(),\n experimentType: 'rollout',\n experimentKey: storedData.rolloutKey,\n }),\n );\n\n LogManager.Instance.debug(\n buildMessage(DebugLogMessagesEnum.EXPERIMENTS_EVALUATION_WHEN_ROLLOUT_PASSED, {\n userId: context.getId(),\n }),\n );\n\n isEnabled = true;\n shouldCheckForExperimentsRules = true;\n rolloutVariationToReturn = variation;\n const featureInfo = {\n rolloutId: storedData.rolloutId,\n rolloutKey: storedData.rolloutKey,\n rolloutVariationId: storedData.rolloutVariationId,\n };\n evaluatedFeatureMap.set(featureKey, featureInfo);\n Object.assign(passedRulesInformation, featureInfo);\n }\n }\n\n if (!isObject(feature) || feature === undefined) {\n LogManager.Instance.error(\n buildMessage(ErrorLogMessagesEnum.FEATURE_NOT_FOUND, {\n featureKey,\n }),\n );\n\n deferredObject.reject({});\n\n return deferredObject.promise;\n }\n\n // TODO: remove await from here, need not wait for gateway service at the time of calling getFlag\n await SegmentationManager.Instance.setContextualData(settings, feature, context);\n\n const rollOutRules = getSpecificRulesBasedOnType(feature, CampaignTypeEnum.ROLLOUT); // get all rollout rules\n\n if (rollOutRules.length > 0 && !isEnabled) {\n const rolloutRulesToEvaluate = [];\n\n for (const rule of rollOutRules) {\n const { preSegmentationResult, updatedDecision } = await evaluateRule(\n settings,\n feature,\n rule,\n context,\n evaluatedFeatureMap,\n null,\n storageService,\n decision,\n );\n\n Object.assign(decision, updatedDecision);\n\n if (preSegmentationResult) {\n // if pre segment passed, then break the loop and check the traffic allocation\n rolloutRulesToEvaluate.push(rule);\n\n evaluatedFeatureMap.set(featureKey, {\n rolloutId: rule.getId(),\n rolloutKey: rule.getKey(),\n rolloutVariationId: rule.getVariations()[0]?.getId(),\n });\n\n break;\n }\n\n continue; // if rule does not satisfy, then check for other ROLLOUT rules\n }\n\n if (rolloutRulesToEvaluate.length > 0) {\n const passedRolloutCampaign = new CampaignModel().modelFromDictionary(rolloutRulesToEvaluate[0]);\n const variation = evaluateTrafficAndGetVariation(settings, passedRolloutCampaign, context.getId());\n\n if (isObject(variation) && Object.keys(variation).length > 0) {\n isEnabled = true;\n shouldCheckForExperimentsRules = true;\n rolloutVariationToReturn = variation;\n\n _updateIntegrationsDecisionObject(passedRolloutCampaign, variation, passedRulesInformation, decision);\n\n if (getShouldWaitForTrackingCalls()) {\n await createAndSendImpressionForVariationShown(\n settings,\n passedRolloutCampaign.getId(),\n variation.getId(),\n context,\n );\n } else {\n createAndSendImpressionForVariationShown(\n settings,\n passedRolloutCampaign.getId(),\n variation.getId(),\n context,\n );\n }\n }\n }\n } else if (rollOutRules.length === 0) {\n LogManager.Instance.debug(DebugLogMessagesEnum.EXPERIMENTS_EVALUATION_WHEN_NO_ROLLOUT_PRESENT);\n shouldCheckForExperimentsRules = true;\n }\n\n if (shouldCheckForExperimentsRules) {\n const experimentRulesToEvaluate = [];\n\n // if rollout rule is passed, get all ab and Personalize rules\n const experimentRules = getAllExperimentRules(feature);\n const megGroupWinnerCampaigns: Map = new Map();\n\n for (const rule of experimentRules) {\n const { preSegmentationResult, whitelistedObject, updatedDecision } = await evaluateRule(\n settings,\n feature,\n rule,\n context,\n evaluatedFeatureMap,\n megGroupWinnerCampaigns,\n storageService,\n decision,\n );\n\n Object.assign(decision, updatedDecision);\n\n if (preSegmentationResult) {\n if (whitelistedObject === null) {\n // whitelistedObject will be null if pre segment passed but whitelisting failed\n experimentRulesToEvaluate.push(rule);\n } else {\n isEnabled = true;\n experimentVariationToReturn = whitelistedObject.variation;\n Object.assign(passedRulesInformation, {\n experimentId: rule.getId(),\n experimentKey: rule.getKey(),\n experimentVariationId: whitelistedObject.variationId,\n });\n }\n\n break;\n }\n continue;\n }\n\n if (experimentRulesToEvaluate.length > 0) {\n const campaign = new CampaignModel().modelFromDictionary(experimentRulesToEvaluate[0]);\n const variation = evaluateTrafficAndGetVariation(settings, campaign, context.getId());\n\n if (isObject(variation) && Object.keys(variation).length > 0) {\n isEnabled = true;\n experimentVariationToReturn = variation;\n\n _updateIntegrationsDecisionObject(campaign, variation, passedRulesInformation, decision);\n if (getShouldWaitForTrackingCalls()) {\n await createAndSendImpressionForVariationShown(settings, campaign.getId(), variation.getId(), context);\n } else {\n createAndSendImpressionForVariationShown(settings, campaign.getId(), variation.getId(), context);\n }\n }\n }\n }\n\n // If flag is enabled, store it in data\n if (isEnabled) {\n // set storage data\n new StorageDecorator().setDataInStorage(\n {\n featureKey,\n context,\n ...passedRulesInformation,\n },\n storageService,\n );\n }\n\n // call integration callback, if defined\n hooksService.set(decision);\n hooksService.execute(hooksService.get());\n\n // Send data for Impact Campaign, if defined\n if (feature.getImpactCampaign()?.getCampaignId()) {\n LogManager.Instance.info(\n buildMessage(InfoLogMessagesEnum.IMPACT_ANALYSIS, {\n userId: context.getId(),\n featureKey,\n status: isEnabled ? 'enabled' : 'disabled',\n }),\n );\n if (getShouldWaitForTrackingCalls()) {\n await createAndSendImpressionForVariationShown(\n settings,\n feature.getImpactCampaign()?.getCampaignId(),\n isEnabled ? 2 : 1, // 2 is for Variation(flag enabled), 1 is for Control(flag disabled)\n context,\n );\n } else {\n createAndSendImpressionForVariationShown(\n settings,\n feature.getImpactCampaign()?.getCampaignId(),\n isEnabled ? 2 : 1, // 2 is for Variation(flag enabled), 1 is for Control(flag disabled)\n context,\n );\n }\n }\n\n const variablesForEvaluatedFlag =\n experimentVariationToReturn?.variables ?? rolloutVariationToReturn?.variables ?? [];\n\n deferredObject.resolve({\n isEnabled: () => isEnabled,\n getVariables: () => variablesForEvaluatedFlag,\n getVariable: (\n key: string,\n defaultValue: string, // loop over all variables object and return the value where key is equal to given key else return given default value\n ) => {\n const variable = variablesForEvaluatedFlag.find((variable) => variable.key === key);\n\n return variable?.value ?? defaultValue;\n },\n });\n\n return deferredObject.promise;\n }\n}\n\n// Not PRIVATE methods but helper methods. If need be, move them to some util file to be reused by other API(s)\n\nfunction _updateIntegrationsDecisionObject(\n campaign: CampaignModel,\n variation: VariationModel,\n passedRulesInformation: any,\n decision: any,\n): void {\n if (campaign.getType() === CampaignTypeEnum.ROLLOUT) {\n Object.assign(passedRulesInformation, {\n rolloutId: campaign.getId(),\n rolloutKey: campaign.getKey(),\n rolloutVariationId: variation.getId(),\n });\n } else {\n Object.assign(passedRulesInformation, {\n experimentId: campaign.getId(),\n experimentKey: campaign.getKey(),\n experimentVariationId: variation.getId(),\n });\n }\n Object.assign(decision, passedRulesInformation);\n}\n","/**\n * Copyright 2024 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 */\nimport { ContextModel } from '../models/user/ContextModel';\nimport { EventEnum } from '../enums/EventEnum';\nimport {\n getEventsBaseProperties,\n getAttributePayloadData,\n sendPostApiRequest,\n getShouldWaitForTrackingCalls,\n} from '../utils/NetworkUtil';\nimport { SettingsModel } from '../models/settings/SettingsModel';\n\ninterface ISetAttribute {\n /**\n * Sets an attribute for a user.\n * @param settings Configuration settings.\n * @param attributeKey The key of the attribute to set.\n * @param attributeValue The value of the attribute.\n * @param context Context containing user information.\n */\n setAttribute(\n settings: SettingsModel,\n attributeKey: string,\n attributeValue: any,\n context: ContextModel,\n ): Promise;\n}\n\nexport class SetAttributeApi implements ISetAttribute {\n /**\n * Implementation of setAttribute to create an impression for a user attribute.\n * @param settings Configuration settings.\n * @param attributeKey The key of the attribute to set.\n * @param attributeValue The value of the attribute.\n * @param context Context containing user information.\n */\n async setAttribute(\n settings: SettingsModel,\n attributeKey: string,\n attributeValue: any,\n context: ContextModel,\n ): Promise {\n if (getShouldWaitForTrackingCalls()) {\n await createImpressionForAttribute(settings, attributeKey, attributeValue, context);\n } else {\n createImpressionForAttribute(settings, attributeKey, attributeValue, context);\n }\n }\n}\n\n/**\n * Creates an impression for a user attribute and sends it to the server.\n * @param settings Configuration settings.\n * @param attributeKey The key of the attribute.\n * @param attributeValue The value of the attribute.\n * @param user User details.\n */\nconst createImpressionForAttribute = async (\n settings: SettingsModel,\n attributeKey: string,\n attributeValue: any,\n context: ContextModel,\n) => {\n // Retrieve base properties for the event\n const properties = getEventsBaseProperties(\n settings,\n EventEnum.VWO_SYNC_VISITOR_PROP,\n encodeURIComponent(context.getUserAgent()),\n context.getIpAddress(),\n );\n // Construct payload data for the attribute\n const payload = getAttributePayloadData(\n settings,\n context.getId(),\n EventEnum.VWO_SYNC_VISITOR_PROP,\n attributeKey,\n attributeValue,\n context.getUserAgent(),\n context.getIpAddress(),\n );\n\n // Send the constructed payload via POST request\n await sendPostApiRequest(properties, payload);\n};\n","/**\n * Copyright 2024 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 */\nimport { ApiEnum } from '../enums/ApiEnum';\nimport { ErrorLogMessagesEnum } from '../enums/log-messages';\nimport { SettingsModel } from '../models/settings/SettingsModel';\nimport { ContextModel } from '../models/user/ContextModel';\nimport { LogManager } from '../packages/logger';\nimport IHooksService from '../services/HooksService';\nimport { dynamic } from '../types/Common';\nimport { doesEventBelongToAnyFeature } from '../utils/FunctionUtil';\nimport { buildMessage } from '../utils/LogMessageUtil';\nimport {\n getEventsBaseProperties,\n getTrackGoalPayloadData,\n sendPostApiRequest,\n getShouldWaitForTrackingCalls,\n} from '../utils/NetworkUtil';\n\ninterface ITrack {\n /**\n * Tracks an event with given properties and context.\n * @param settings Configuration settings for the tracking.\n * @param eventName Name of the event to track.\n * @param context Contextual information like user details.\n * @param eventProperties Properties associated with the event.\n * @param hooksService Manager for handling hooks and callbacks.\n * @returns A promise that resolves to a record indicating the success or failure of the event tracking.\n */\n track(\n settings: SettingsModel,\n eventName: string,\n context: ContextModel,\n eventProperties: Record,\n hooksService: IHooksService,\n ): Promise>;\n}\n\nexport class TrackApi implements ITrack {\n /**\n * Implementation of the track method to handle event tracking.\n * Checks if the event exists, creates an impression, and executes hooks.\n */\n async track(\n settings: SettingsModel,\n eventName: string,\n context: ContextModel,\n eventProperties: any,\n hooksService: IHooksService,\n ): Promise> {\n if (doesEventBelongToAnyFeature(eventName, settings)) {\n // Create an impression for the track event\n if (getShouldWaitForTrackingCalls()) {\n await createImpressionForTrack(settings, eventName, context, eventProperties);\n } else {\n createImpressionForTrack(settings, eventName, context, eventProperties);\n }\n // Set and execute integration callback for the track event\n hooksService.set({ eventName: eventName, api: ApiEnum.TRACK });\n hooksService.execute(hooksService.get());\n\n return { [eventName]: true };\n }\n // Log an error if the event does not exist\n LogManager.Instance.error(\n buildMessage(ErrorLogMessagesEnum.EVENT_NOT_FOUND, {\n eventName,\n }),\n );\n\n return { [eventName]: false };\n }\n}\n\n/**\n * Creates an impression for a track event and sends it via a POST API request.\n * @param settings Configuration settings for the tracking.\n * @param eventName Name of the event to track.\n * @param user User details.\n * @param eventProperties Properties associated with the event.\n */\nconst createImpressionForTrack = async (\n settings: SettingsModel,\n eventName: string,\n context: ContextModel,\n eventProperties: any,\n) => {\n // Get base properties for the event\n const properties = getEventsBaseProperties(\n settings,\n eventName,\n encodeURIComponent(context.getUserAgent()),\n context.getIpAddress(),\n );\n // Prepare the payload for the track goal\n const payload = getTrackGoalPayloadData(\n settings,\n context.getId(),\n eventName,\n eventProperties,\n context?.getUserAgent(),\n context?.getIpAddress(),\n );\n // Send the prepared payload via POST API request\n await sendPostApiRequest(properties, payload);\n};\n","/**\n * Copyright 2024 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 */\nexport const HTTP = 'http';\nexport const HTTPS = 'https';\n\nexport const SEED_URL = 'https://vwo.com';\nexport const HTTP_PROTOCOL = `${HTTP}://`;\nexport const HTTPS_PROTOCOL = `${HTTPS}://`;\nexport const BASE_URL = 'dev.visualwebsiteoptimizer.com';\n","/**\n * Copyright 2024 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/* global SDK_VERSION */\nimport { PlatformEnum } from '../enums/PlatformEnum';\nimport { SEED_URL, HTTP_PROTOCOL, HTTPS_PROTOCOL } from './Url';\n\nlet packageFile;\nlet platform;\n\n// For client-side SDK, to keep the build size low\n// avoid adding the whole package file in the bundle\nif (typeof process.env === 'undefined') {\n packageFile = {\n name: 'vwo-fme-javascript-sdk', // will be replaced by webpack for browser build\n // @ts-expect-error This will be relaved by webpack at the time of build for browser\n version: SDK_VERSION, // will be replaced by webpack for browser build\n };\n\n platform = PlatformEnum.CLIENT;\n} else {\n packageFile = require('../../package.json');\n platform = PlatformEnum.SERVER;\n}\n\nexport const Constants = {\n SDK_NAME: packageFile.name,\n SDK_VERSION: packageFile.version,\n\n PLATFORM: platform,\n\n MAX_TRAFFIC_PERCENT: 100,\n MAX_TRAFFIC_VALUE: 10000,\n STATUS_RUNNING: 'RUNNING',\n\n SEED_VALUE: 1,\n MAX_EVENTS_PER_REQUEST: 5000,\n DEFAULT_REQUEST_TIME_INTERVAL: 600, // 10 * 60(secs) = 600 secs i.e. 10 minutes\n DEFAULT_EVENTS_PER_REQUEST: 100,\n\n SEED_URL,\n HTTP_PROTOCOL,\n HTTPS_PROTOCOL,\n\n SETTINGS: 'settings',\n SETTINGS_EXPIRY: 10000000,\n SETTINGS_TIMEOUT: 50000,\n\n HOST_NAME: 'dev.visualwebsiteoptimizer.com',\n SETTINTS_ENDPOINT: '/server-side/v2-settings',\n LOCATION_ENDPOINT: '/getLocation',\n\n VWO_FS_ENVIRONMENT: 'vwo_fs_environment',\n\n RANDOM_ALGO: 1,\n\n API_VERSION: '1',\n\n VWO_META_MEG_KEY: '_vwo_meta_meg_',\n};\n","/**\n * Copyright 2024 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 */\nimport { LogManager } from '../packages/logger';\n\nimport { StorageEnum } from '../enums/StorageEnum';\nimport { FeatureModel } from '../models/campaign/FeatureModel';\nimport { VariationModel } from '../models/campaign/VariationModel';\nimport { IStorageService } from '../services/StorageService';\n\nimport { ErrorLogMessagesEnum } from '../enums/log-messages';\nimport { ContextModel } from '../models/user/ContextModel';\nimport { buildMessage } from '../utils/LogMessageUtil';\nimport { Deferred } from '../utils/PromiseUtil';\n\ninterface IStorageDecorator {\n /**\n * Sets data in storage.\n * @param data The data to be stored.\n * @param storageService The storage service instance.\n * @returns A promise that resolves to a VariationModel.\n */\n setDataInStorage(data: Record, storageService: IStorageService): Promise;\n\n /**\n * Retrieves a feature from storage.\n * @param featureKey The key of the feature to retrieve.\n * @param user The user object.\n * @param storageService The storage service instance.\n * @returns A promise that resolves to the retrieved feature or relevant status.\n */\n getFeatureFromStorage(featureKey: FeatureModel, context: ContextModel, storageService: IStorageService): Promise;\n}\n\nexport class StorageDecorator implements IStorageDecorator {\n /**\n * Asynchronously retrieves a feature from storage based on the feature key and user.\n * @param featureKey The key of the feature to retrieve.\n * @param user The user object.\n * @param storageService The storage service instance.\n * @returns A promise that resolves to the retrieved feature or relevant status.\n */\n async getFeatureFromStorage(featureKey: any, context: ContextModel, storageService: IStorageService): Promise {\n const deferredObject = new Deferred();\n storageService.getDataInStorage(featureKey, context).then((campaignMap: Record | StorageEnum) => {\n switch (campaignMap) {\n case StorageEnum.STORAGE_UNDEFINED:\n deferredObject.resolve(null); // No storage defined\n break;\n case StorageEnum.NO_DATA_FOUND:\n deferredObject.resolve(null); // No data found in storage\n break;\n case StorageEnum.INCORRECT_DATA:\n deferredObject.resolve(StorageEnum.INCORRECT_DATA); // Incorrect data found\n break;\n case StorageEnum.CAMPAIGN_PAUSED:\n deferredObject.resolve(null); // Campaign is paused\n break;\n case StorageEnum.VARIATION_NOT_FOUND:\n deferredObject.resolve(StorageEnum.VARIATION_NOT_FOUND); // No variation found\n break;\n case StorageEnum.WHITELISTED_VARIATION:\n deferredObject.resolve(null); // Whitelisted variation, handle accordingly\n break;\n default:\n deferredObject.resolve(campaignMap); // Valid data found, resolve with it\n }\n });\n\n return deferredObject.promise;\n }\n\n /**\n * Sets data in storage based on the provided data object.\n * @param data The data to be stored, including feature key and user details.\n * @param storageService The storage service instance.\n * @returns A promise that resolves when the data is successfully stored.\n */\n setDataInStorage(data: Record, storageService: IStorageService): Promise {\n const deferredObject = new Deferred();\n const {\n featureKey,\n context,\n rolloutId,\n rolloutKey,\n rolloutVariationId,\n experimentId,\n experimentKey,\n experimentVariationId,\n } = data;\n\n if (!featureKey) {\n LogManager.Instance.error(\n buildMessage(ErrorLogMessagesEnum.STORING_DATA_ERROR, {\n key: 'featureKey',\n }),\n );\n\n deferredObject.reject(); // Reject promise if feature key is invalid\n return;\n }\n if (!context.id) {\n LogManager.Instance.error(\n buildMessage(ErrorLogMessagesEnum.STORING_DATA_ERROR, {\n key: 'Context or Context.id',\n }),\n );\n\n deferredObject.reject(); // Reject promise if user ID is invalid\n return;\n }\n if (rolloutKey && !experimentKey && !rolloutVariationId) {\n LogManager.Instance.error(\n buildMessage(ErrorLogMessagesEnum.STORING_DATA_ERROR, {\n key: 'Variation:(rolloutKey, experimentKey or rolloutVariationId)',\n }),\n );\n\n deferredObject.reject(); // Reject promise if rollout variation is invalid\n return;\n }\n if (experimentKey && !experimentVariationId) {\n LogManager.Instance.error(\n buildMessage(ErrorLogMessagesEnum.STORING_DATA_ERROR, {\n key: 'Variation:(experimentKey or rolloutVariationId)',\n }),\n );\n\n deferredObject.reject(); // Reject promise if experiment variation is invalid\n return;\n }\n\n storageService.setDataInStorage({\n featureKey,\n userId: context.id,\n rolloutId,\n rolloutKey,\n rolloutVariationId,\n experimentId,\n experimentKey,\n experimentVariationId,\n });\n\n deferredObject.resolve(); // Resolve promise when data is successfully set\n\n return deferredObject.promise;\n }\n}\n","/**\n * Copyright 2024 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 */\nexport enum ApiEnum {\n GET_FLAG = 'getFlag',\n TRACK = 'track',\n}\n","/**\n * Copyright 2024 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 */\nexport enum CampaignTypeEnum {\n ROLLOUT = 'FLAG_ROLLOUT',\n AB = 'FLAG_TESTING',\n PERSONALIZE = 'FLAG_PERSONALIZE',\n}\n","/**\n * Copyright 2024 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 */\nexport enum EventEnum {\n VWO_VARIATION_SHOWN = 'vwo_variationShown',\n VWO_SYNC_VISITOR_PROP = 'vwo_syncVisitorProp',\n}\n","/**\n * Copyright 2024 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 */\nexport enum HeadersEnum {\n USER_AGENT = 'X-Device-User-Agent',\n IP = 'VWO-X-Forwarded-For',\n}\n","/**\n * Copyright 2024 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 */\nexport enum HttpMethodEnum {\n GET = 'GET',\n POST = 'POST',\n}\n","/**\n * Copyright 2024 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 */\nexport enum PlatformEnum {\n CLIENT = 'client',\n SERVER = 'server',\n}\n","/**\n * Copyright 2024 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 */\nexport enum StatusEnum {\n PASSED = 'passed',\n FAILED = 'failed',\n}\n","/**\n * Copyright 2024 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 */\nexport enum StorageEnum {\n STORAGE_UNDEFINED,\n INCORRECT_DATA,\n NO_DATA_FOUND,\n CAMPAIGN_PAUSED,\n VARIATION_NOT_FOUND,\n WHITELISTED_VARIATION,\n}\n","/**\n * Copyright 2024 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 */\nexport enum UrlEnum {\n BASE_URL = 'dev.visualwebsiteoptimizer.com',\n SETTINGS_URL = '/server-side/settings',\n // WEBHOOK_SETTINGS_URL = '/server-side/pull',\n // BATCH_EVENTS = '/server-side/batch-events',\n EVENTS = '/events/t',\n ATTRIBUTE_CHECK = '/check-attribute',\n GET_USER_DATA = '/get-user-details',\n}\n","/**\n * Copyright 2024 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 */\nimport * as messages from 'vwo-fme-sdk-log-messages';\n\nconst DebugLogMessagesEnum = messages.debugMessages;\nconst InfoLogMessagesEnum = messages.infoMessages;\nconst ErrorLogMessagesEnum = messages.errorMessages;\n\nexport { DebugLogMessagesEnum, InfoLogMessagesEnum, ErrorLogMessagesEnum };\n","/**\n * Copyright 2024 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 */\nimport { dynamic } from '../../types/Common';\nimport { MetricModel } from './MetricModel';\nimport { VariableModel } from './VariableModel';\nimport { VariationModel } from './VariationModel';\n\nexport class CampaignModel {\n private id: number;\n private segments: Record;\n private percentTraffic: number;\n private isUserListEnabled: boolean;\n private key: string;\n private type: string;\n private name: string;\n private isForcedVariationEnabled: boolean;\n private variations: Array = [];\n private metrics: Array = [];\n private variables: Array = [];\n private variationId: number;\n private campaignId: number;\n private ruleKey: string;\n\n copy(campaignModel: CampaignModel): void {\n this.metrics = campaignModel.metrics;\n this.variations = campaignModel.variations;\n this.variables = campaignModel.variables;\n this.processCampaignKeys(campaignModel);\n }\n\n modelFromDictionary(campaign: CampaignModel): this {\n this.processCampaignProperties(campaign);\n this.processCampaignKeys(campaign);\n return this;\n }\n\n processCampaignProperties(campaign: CampaignModel): void {\n if (campaign.variables) {\n // campaign.var ||\n if (\n // (campaign.var && campaign.var.constructor === {}.constructor) ||\n campaign.variables.constructor === {}.constructor\n ) {\n this.variables = [];\n } else {\n const variableList: Array = campaign.variables; // campaign.var ||\n variableList.forEach((variable: any) => {\n this.variables.push(new VariableModel().modelFromDictionary(variable));\n });\n }\n }\n\n if (campaign.variations) {\n // campaign.v ||\n if (\n // (campaign.v && campaign.v.constructor === {}.constructor) ||\n campaign.variations.constructor === {}.constructor\n ) {\n this.variations = [];\n } else {\n const variationList: Array = campaign.variations; // campaign.v ||\n variationList.forEach((variation: any) => {\n this.variations.push(new VariationModel().modelFromDictionary(variation));\n });\n }\n }\n\n if (campaign.metrics) {\n // campaign.m ||\n if (campaign.metrics && campaign.metrics.constructor === {}.constructor) {\n this.metrics = [];\n } else {\n const metricsList: Array = campaign.metrics || [];\n metricsList.forEach((metric: any) => {\n this.metrics.push(new MetricModel().modelFromDictionary(metric));\n });\n }\n }\n }\n\n processCampaignKeys(campaign: CampaignModel): void {\n this.id = campaign.id;\n this.percentTraffic = campaign.percentTraffic; // campaign.pT ||\n this.name = campaign.name; // campaign.n ||\n this.variationId = campaign.variationId; // campaign.vId ||\n this.campaignId = campaign.campaignId; // campaign.cId ||\n this.ruleKey = campaign.ruleKey; // campaign.rK ||\n this.isForcedVariationEnabled = campaign.isForcedVariationEnabled; // campaign.iFVE ||\n this.isUserListEnabled = campaign.isUserListEnabled; // campaign.iULE ||\n this.segments = campaign.segments;\n this.key = campaign.key; // campaign.k ||\n // this.priority = campaign.pr || campaign.priority;\n this.type = campaign.type; // campaign.t ||\n }\n\n getId(): number {\n return this.id;\n }\n\n getName(): string {\n return this.name;\n }\n\n getSegments(): Record {\n return this.segments;\n }\n\n getTraffic(): number {\n return this.percentTraffic;\n }\n\n getType(): string {\n return this.type;\n }\n\n getIsForcedVariationEnabled(): boolean {\n return this.isForcedVariationEnabled;\n }\n\n getIsUserListEnabled(): boolean {\n return this.isUserListEnabled;\n }\n\n getKey(): string {\n return this.key;\n }\n\n getMetrics(): Array {\n return this.metrics;\n }\n\n getVariations(): Array {\n return this.variations;\n }\n\n getVariables(): Array {\n return this.variables;\n }\n\n getRuleKey(): string {\n return this.ruleKey;\n }\n}\n","/**\n * Copyright 2024 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 */\nimport { CampaignModel } from './CampaignModel';\nimport { ImpactCapmaignModel } from './ImpactCampaignModel';\nimport { MetricModel } from './MetricModel';\nimport { RuleModel } from './RuleModel';\n\nexport class FeatureModel {\n private m: Array = [];\n private metrics: Array = [];\n private id: number;\n private key: string;\n private name: string;\n private type: string;\n private rules: Array = [];\n private impactCampaign: ImpactCapmaignModel = null;\n\n private rulesLinkedCampaign: Array = [];\n private isGatewayServiceRequired: boolean = false;\n\n modelFromDictionary(feature: FeatureModel): this {\n this.id = feature.id;\n this.key = feature.key;\n this.name = feature.name;\n this.type = feature.type;\n if (feature?.isGatewayServiceRequired) {\n this.isGatewayServiceRequired = feature.isGatewayServiceRequired;\n }\n if (feature.impactCampaign) {\n this.impactCampaign = new ImpactCapmaignModel().modelFromDictionary(feature.impactCampaign);\n }\n\n if ((feature.m && feature.m.constructor === {}.constructor) || feature.metrics?.constructor === {}.constructor) {\n this.metrics = [];\n } else {\n const metricList: Array = feature.m || feature.metrics;\n metricList?.forEach((metric) => {\n this.metrics.push(new MetricModel().modelFromDictionary(metric));\n });\n }\n\n if (feature?.rules?.constructor === {}.constructor) {\n this.rules = [];\n } else {\n const ruleList: Array = feature.rules;\n ruleList?.forEach((rule) => {\n this.rules.push(new RuleModel().modelFromDictionary(rule));\n });\n }\n\n if (feature?.rulesLinkedCampaign && feature.rulesLinkedCampaign?.constructor !== {}.constructor) {\n const linkedCampaignList: Array = feature.rulesLinkedCampaign;\n this.rulesLinkedCampaign = linkedCampaignList;\n }\n\n return this;\n }\n\n getName(): string {\n return this.name;\n }\n\n getType(): string {\n return this.type;\n }\n\n getId(): number {\n return this.id;\n }\n\n getKey(): string {\n return this.key;\n }\n\n getRules(): Array {\n return this.rules;\n }\n\n getImpactCampaign(): ImpactCapmaignModel {\n return this.impactCampaign;\n }\n\n getRulesLinkedCampaign(): Array {\n return this.rulesLinkedCampaign;\n }\n\n setRulesLinkedCampaign(rulesLinkedCampaign: Array): void {\n this.rulesLinkedCampaign = rulesLinkedCampaign;\n }\n\n getMetrics(): Array {\n return this.metrics;\n }\n\n getIsGatewayServiceRequired(): boolean {\n return this.isGatewayServiceRequired;\n }\n\n setIsGatewayServiceRequired(isGatewayServiceRequired: boolean): void {\n this.isGatewayServiceRequired = isGatewayServiceRequired;\n }\n}\n","/**\n * Copyright 2024 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 */\nexport class ImpactCapmaignModel {\n private campaignId: number;\n private type: string;\n\n modelFromDictionary(impactCampaign: ImpactCapmaignModel): this {\n this.type = impactCampaign.type;\n this.campaignId = impactCampaign.campaignId;\n return this;\n }\n\n getCampaignId(): number {\n return this.campaignId;\n }\n\n getType(): string {\n return this.type;\n }\n}\n","/**\n * Copyright 2024 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 */\nexport class MetricModel {\n private key: string;\n private identifier: string;\n\n private i: number;\n private id: number;\n\n private t: string;\n private type: string;\n\n modelFromDictionary(metric: MetricModel): this {\n this.identifier = metric.identifier || metric.key;\n this.id = metric.i || metric.id;\n this.type = metric.t || metric.type;\n return this;\n }\n\n getId(): number {\n return this.id;\n }\n\n getIdentifier(): string {\n return this.identifier;\n }\n\n getType(): string {\n return this.type;\n }\n}\n","/**\n * Copyright 2024 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 */\nexport class RuleModel {\n private status: boolean;\n private variationId: number;\n private campaignId: number;\n private type: string;\n private ruleKey: string;\n\n modelFromDictionary(rule: RuleModel): this {\n this.type = rule.type;\n this.status = rule.status;\n this.variationId = rule.variationId;\n this.campaignId = rule.campaignId;\n this.ruleKey = rule.ruleKey;\n return this;\n }\n\n getCampaignId(): number {\n return this.campaignId;\n }\n\n getVariationId(): number {\n return this.variationId;\n }\n\n getStatus(): boolean {\n return this.status;\n }\n\n getType(): string {\n return this.type;\n }\n\n getRuleKey(): string {\n return this.ruleKey;\n }\n}\n","/**\n * Copyright 2024 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 */\nimport { dynamic } from '../../types/Common';\n\nexport class VariableModel {\n private val: dynamic;\n private value: dynamic;\n\n private type: string;\n\n private k: string;\n private key: string;\n\n private i: number;\n private id: number;\n\n modelFromDictionary(variable: VariableModel): this {\n this.value = variable.val || variable.value;\n this.type = variable.type;\n this.key = variable.k || variable.key;\n this.id = variable.i || variable.id;\n\n return this;\n }\n\n setValue(value: dynamic): void {\n this.value = value;\n }\n\n setKey(key: string): void {\n this.key = key;\n }\n\n setType(type: string): void {\n this.type = type;\n }\n\n getId(): number {\n return this.id;\n }\n\n getValue(): dynamic {\n return this.value;\n }\n\n getType(): string {\n return this.type;\n }\n\n getKey(): string {\n return this.key;\n }\n}\n","/**\n * Copyright 2024 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 */\nimport { dynamic } from '../../types/Common';\nimport { VariableModel } from './VariableModel';\n\nexport class VariationModel {\n private i: number;\n private id: number;\n private type: string;\n\n private n: string;\n private key: string;\n private name: string;\n private ruleKey: string;\n\n private w: number;\n private weight: number;\n\n private startRangeVariation: number;\n private endRangeVariation: number;\n private variables: Array = [];\n private variations: Array = [];\n\n private seg: Record;\n private segments: Record;\n\n modelFromDictionary(variation: VariationModel): this {\n this.id = variation.i || variation.id;\n this.key = variation.n || variation.key || variation.name;\n this.weight = variation.w || variation.weight;\n this.ruleKey = variation.ruleKey;\n this.type = variation.type;\n this.setStartRange(variation.startRangeVariation);\n this.setEndRange(variation.endRangeVariation);\n if (variation.seg || variation.segments) {\n this.segments = variation.seg || variation.segments;\n }\n\n if (variation.variables) {\n if (variation.variables.constructor === {}.constructor) {\n this.variables = [];\n } else {\n const variableList: Array = variation.variables;\n variableList.forEach((variable) => {\n this.variables.push(new VariableModel().modelFromDictionary(variable));\n });\n }\n }\n\n if (variation.variations) {\n if (variation.variations.constructor === {}.constructor) {\n this.variations = [];\n } else {\n const variationList: Array = variation.variations;\n variationList.forEach((variation: any) => {\n this.variations.push(new VariationModel().modelFromDictionary(variation));\n });\n }\n }\n\n return this;\n }\n\n setStartRange(startRange: number): void {\n this.startRangeVariation = startRange;\n }\n\n setEndRange(endRange: number): void {\n this.endRangeVariation = endRange;\n }\n\n setWeight(weight: number): void {\n this.weight = weight;\n }\n\n getId(): number {\n return this.id;\n }\n\n getKey(): string {\n return this.key;\n }\n\n getRuleKey(): string {\n return this.ruleKey;\n }\n\n getWeight(): number {\n return this.weight;\n }\n\n getSegments(): Record {\n return this.segments;\n }\n\n getStartRangeVariation(): number {\n return this.startRangeVariation;\n }\n\n getEndRangeVariation(): number {\n return this.endRangeVariation;\n }\n\n getVariables(): Array {\n return this.variables;\n }\n\n getVariations(): Array {\n return this.variations;\n }\n\n getType(): string {\n return this.type;\n }\n}\n","/**\n * Copyright 2024 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 */\nimport { Struct, array, boolean, number, object, optional, string, union, validate } from 'superstruct';\nimport { dynamic } from '../../types/Common';\nimport { SettingsModel } from '../settings/SettingsModel';\n\nexport class SettingsSchema {\n private campaignMetricSchema: Struct;\n private variableObjectSchema: Struct;\n private campaignVariationSchema: Struct;\n private campaignObjectSchema: Struct;\n private settingsSchema: Struct;\n private featureSchema: Struct;\n private ruleSchema: Struct;\n\n constructor() {\n this.initializeSchemas();\n }\n\n private initializeSchemas(): void {\n this.campaignMetricSchema = object({\n id: union([number(), string()]),\n type: string(),\n identifier: string(),\n mca: optional(union([number(), string()])),\n hasProps: optional(boolean()),\n revenueProp: optional(string()),\n });\n\n this.variableObjectSchema = object({\n id: union([number(), string()]),\n type: string(),\n key: string(),\n value: union([number(), string(), boolean(), object()]),\n });\n\n this.campaignVariationSchema = object({\n id: union([number(), string()]),\n name: string(),\n weight: union([number(), string()]),\n segments: optional(object()),\n variables: optional(array(this.variableObjectSchema)),\n startRangeVariation: optional(number()),\n endRangeVariation: optional(number()),\n });\n\n this.campaignObjectSchema = object({\n id: union([number(), string()]),\n type: string(),\n key: string(),\n percentTraffic: optional(number()),\n status: string(),\n variations: array(this.campaignVariationSchema),\n segments: object(),\n isForcedVariationEnabled: optional(boolean()),\n isAlwaysCheckSegment: optional(boolean()),\n name: string(),\n });\n\n this.ruleSchema = object({\n type: string(),\n ruleKey: string(),\n campaignId: number(),\n variationId: optional(number()),\n });\n\n this.featureSchema = object({\n id: union([number(), string()]),\n key: string(),\n status: string(),\n name: string(),\n type: string(),\n metrics: array(this.campaignMetricSchema),\n impactCampaign: optional(object()),\n rules: optional(array(this.ruleSchema)),\n variables: optional(array(this.variableObjectSchema)),\n });\n\n this.settingsSchema = object({\n sdkKey: optional(string()),\n version: union([number(), string()]),\n accountId: union([number(), string()]),\n features: optional(array(this.featureSchema)),\n campaigns: array(this.campaignObjectSchema),\n groups: optional(object()),\n campaignGroups: optional(object()),\n collectionPrefix: optional(string()),\n });\n }\n\n isSettingsValid(settings: any | SettingsModel): boolean {\n if (!settings) {\n return false;\n }\n\n const [error] = validate(settings, this.settingsSchema);\n return !error;\n }\n}\n","/**\n * Copyright 2024 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 */\nimport { CampaignModel } from '../campaign/CampaignModel';\nimport { FeatureModel } from '../campaign/FeatureModel';\n\nexport class SettingsModel {\n private sK?: string;\n private sdkKey: string;\n\n private f?: Array = [];\n private features: Array = [];\n\n private c?: Array = [];\n private campaigns: Array = [];\n\n private campaignGroups?: Record = {};\n private cG?: Record = {};\n\n private groups?: Record = {};\n private g?: Record = {};\n\n private a?: string;\n private accountId: string;\n\n private v?: number;\n private version: number;\n private collectionPrefix?: string;\n\n constructor(settings: SettingsModel) {\n this.sdkKey = settings.sK || settings.sdkKey;\n this.accountId = settings.a || settings.accountId;\n this.version = settings.v || settings.version;\n this.collectionPrefix = settings.collectionPrefix;\n\n if (\n (settings.f && settings.f.constructor !== {}.constructor) ||\n (settings.features && settings.features.constructor !== {}.constructor)\n ) {\n const featureList: Array = settings.f || settings.features;\n featureList.forEach((feature) => {\n this.features.push(new FeatureModel().modelFromDictionary(feature));\n });\n }\n\n if (\n (settings.c && settings.c.constructor !== {}.constructor) ||\n (settings.campaigns && settings.campaigns.constructor !== {}.constructor)\n ) {\n const campaignList: Array = settings.c || settings.campaigns;\n campaignList.forEach((campaign) => {\n this.campaigns.push(new CampaignModel().modelFromDictionary(campaign));\n });\n }\n\n if (settings.cG || settings.campaignGroups) {\n this.campaignGroups = settings.cG || settings.campaignGroups;\n }\n\n if (settings.g || settings.groups) {\n this.groups = settings.g || settings.groups;\n }\n\n return this;\n }\n getFeatures(): Array {\n return this.features;\n }\n\n getCampaigns(): Array {\n return this.campaigns;\n }\n\n getSdkkey(): string {\n return this.sdkKey;\n }\n\n getAccountId(): string {\n return this.accountId;\n }\n\n getVersion(): number {\n return this.version;\n }\n\n getCollectionPrefix(): string {\n return this.collectionPrefix;\n }\n\n getCampaignGroups(): Record {\n return this.campaignGroups;\n }\n\n getGroups(): Record {\n return this.groups;\n }\n}\n","/**\n * Copyright 2024 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 */\nimport { dynamic } from '../../types/Common';\nimport { ContextVWOModel } from './ContextVWOModel';\n\nexport class ContextModel {\n private id: string | number;\n private userAgent?: string;\n private ipAddress?: string;\n private customVariables?: Record;\n private variationTargetingVariables?: Record;\n private _vwo?: ContextVWOModel;\n\n modelFromDictionary(context: Record): this {\n this.id = context.id;\n this.userAgent = context.userAgent;\n this.ipAddress = context.ipAddress;\n if (context?.customVariables) {\n this.customVariables = context.customVariables;\n }\n if (context?.variationTargetingVariables) {\n this.variationTargetingVariables = context.variationTargetingVariables;\n }\n if (context?._vwo) {\n this._vwo = new ContextVWOModel().modelFromDictionary(context._vwo);\n }\n return this;\n }\n\n getId(): string {\n return this.id?.toString();\n }\n\n getUserAgent(): string {\n return this.userAgent;\n }\n\n getIpAddress(): string {\n return this.ipAddress;\n }\n\n getCustomVariables(): Record {\n return this.customVariables;\n }\n\n setCustomVariables(customVariables: Record): void {\n this.customVariables = customVariables;\n }\n\n getVariationTargetingVariables(): Record {\n return this.variationTargetingVariables;\n }\n\n setVariationTargetingVariables(variationTargetingVariables: Record): void {\n this.variationTargetingVariables = variationTargetingVariables;\n }\n\n getVwo(): ContextVWOModel {\n return this._vwo;\n }\n\n setVwo(_vwo: ContextVWOModel): void {\n this._vwo = _vwo;\n }\n}\n","/**\n * Copyright 2024 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\nexport class ContextVWOModel {\n private location: Record;\n private userAgent: Record;\n\n modelFromDictionary(context: Record): this {\n if (context?.location) {\n this.location = context.location;\n }\n\n if (context?.userAgent) {\n this.userAgent = context.userAgent;\n }\n return this;\n }\n\n getLocation(): Record {\n return this.location;\n }\n\n getUaInfo(): Record {\n return this.userAgent;\n }\n}\n","/**\n * Copyright 2024 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\nimport * as Hasher from 'murmurhash';\n\nconst SEED_VALUE = 1; // Seed value for the hash function\nexport class DecisionMaker {\n /**\n * Generates a bucket value based on the hash value, maximum value, and an optional multiplier.\n *\n * @param {number} hashValue - The hash value used for calculation\n * @param {number} maxValue - The maximum value for bucket scaling\n * @param {number} [multiplier=1] - Optional multiplier to adjust the value\n * @returns {number} - The calculated bucket value\n */\n generateBucketValue(hashValue: number, maxValue: number, multiplier = 1): number {\n // Calculate the ratio based on the hash value\n const ratio = hashValue / Math.pow(2, 32);\n // Calculate the multiplied value\n const multipliedValue = (maxValue * ratio + 1) * multiplier;\n // Round down to get the final value\n const value = Math.floor(multipliedValue);\n\n return value;\n }\n\n /**\n * Gets the bucket value for a user based on the hash key and maximum value.\n *\n * @param {string} hashKey - The hash key for the user\n * @param {number} [maxValue=100] - The maximum value for bucket scaling\n * @returns {number} - The calculated bucket value for the user\n */\n getBucketValueForUser(hashKey: string, maxValue = 100): number {\n const hashValue = Hasher.v3(hashKey, SEED_VALUE); // Calculate the hash value\n const bucketValue = this.generateBucketValue(hashValue, maxValue); // Calculate the bucket value\n\n return bucketValue; // Return the calculated bucket value\n }\n\n /**\n * Calculates the bucket value for a given string with optional multiplier and maximum value.\n *\n * @param {string} str - The input string to calculate the bucket value for\n * @param {number} [multiplier=1] - Optional multiplier to adjust the value\n * @param {number} [maxValue=10000] - The maximum value for bucket scaling\n * @returns {number} - The calculated bucket value\n */\n calculateBucketValue(str: string, multiplier = 1, maxValue = 10000): number {\n const hashValue = this.generateHashValue(str); // Generate the hash value for the input string\n\n return this.generateBucketValue(hashValue, maxValue, multiplier); // Generate and return the bucket value\n }\n\n /**\n * Generates the hash value for a given hash key using murmurHash v3.\n *\n * @param {string} hashKey - The hash key for which the hash value is generated\n * @returns {number} - The generated hash value\n */\n generateHashValue(hashKey: string): number {\n return Hasher.v3(hashKey, SEED_VALUE); // Return the hash value generated using murmurHash\n }\n}\n","/**\n * Copyright 2024 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 */\nimport { dynamic } from '../../types/Common';\nimport { LogLevelEnum } from './enums/LogLevelEnum';\n\nconst 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};\n/**\n * Interface defining the structure for a log message builder.\n */\ninterface ILogMessageBuilder {\n loggerConfig: Record; // Configuration for the logger\n transportConfig: Record; // Configuration for the transport mechanism\n prefix: string; // Prefix to be added to each log message\n dateTimeFormat: dynamic; // Function or format for date and time in log messages\n\n formatMessage(level: string, message: string): string; // Method to format a log message\n getFormattedLevel(level: string): string; // Method to format the log level\n getFormattedDateTime(): string; // Method to get formatted date and time\n}\n\n/**\n * Implements the ILogMessageBuilder interface to provide a concrete log message builder.\n */\nexport class LogMessageBuilder implements ILogMessageBuilder {\n loggerConfig: Record;\n transportConfig: Record;\n prefix: string;\n dateTimeFormat: any;\n\n /**\n * Constructs a new LogMessageBuilder instance.\n * @param {Record} loggerConfig - Configuration for the logger.\n * @param {Record} transportConfig - Configuration for the transport mechanism.\n */\n constructor(loggerConfig: Record, transportConfig: Record) {\n this.loggerConfig = loggerConfig;\n this.transportConfig = transportConfig;\n\n // Set the prefix, defaulting to an empty string if not provided.\n this.prefix = this.transportConfig.prefix || this.loggerConfig.prefix || '';\n // Set the date and time format, defaulting to the logger's format if the transport's format is not provided.\n this.dateTimeFormat = this.transportConfig.dateTimeFormat || this.loggerConfig.dateTimeFormat;\n }\n\n /**\n * Formats a log message combining level, prefix, date/time, and the actual message.\n * @param {string} level - The log level.\n * @param {string} message - The message to log.\n * @returns {string} The formatted log message.\n */\n formatMessage(level: string, message: string): string {\n return `[${this.getFormattedLevel(level)}]: ${this.getFormattedPrefix(this.prefix)} ${this.getFormattedDateTime()} ${message}`;\n }\n\n getFormattedPrefix(prefix: string): string {\n if (this.loggerConfig.isAnsiColorEnabled) {\n return `${AnsiColorEnum.BOLD}${AnsiColorEnum.GREEN}${prefix}${AnsiColorEnum.RESET}`;\n }\n\n return `${prefix}`;\n }\n\n /**\n * Returns the formatted log level with appropriate coloring based on the log level.\n * @param {string} level - The log level.\n * @returns {string} The formatted log level.\n */\n getFormattedLevel(level: string): string {\n const upperCaseLevel = level.toUpperCase();\n let LogLevelColorInfoEnum;\n\n if (this.loggerConfig.isAnsiColorEnabled) {\n LogLevelColorInfoEnum = {\n [LogLevelEnum.TRACE]: `${AnsiColorEnum.BOLD}${AnsiColorEnum.WHITE}${upperCaseLevel}${AnsiColorEnum.RESET}`,\n [LogLevelEnum.DEBUG]: `${AnsiColorEnum.BOLD}${AnsiColorEnum.LIGHTBLUE}${upperCaseLevel}${AnsiColorEnum.RESET}`,\n [LogLevelEnum.INFO]: `${AnsiColorEnum.BOLD}${AnsiColorEnum.CYAN}${upperCaseLevel}${AnsiColorEnum.RESET}`,\n [LogLevelEnum.WARN]: `${AnsiColorEnum.BOLD}${AnsiColorEnum.YELLOW}${upperCaseLevel}${AnsiColorEnum.RESET}`,\n [LogLevelEnum.ERROR]: `${AnsiColorEnum.BOLD}${AnsiColorEnum.RED}${upperCaseLevel}${AnsiColorEnum.RESET}`,\n };\n } else {\n LogLevelColorInfoEnum = {\n [LogLevelEnum.TRACE]: upperCaseLevel,\n [LogLevelEnum.DEBUG]: upperCaseLevel,\n [LogLevelEnum.INFO]: upperCaseLevel,\n [LogLevelEnum.WARN]: upperCaseLevel,\n [LogLevelEnum.ERROR]: upperCaseLevel,\n };\n }\n\n return LogLevelColorInfoEnum[level];\n }\n\n /**\n * Retrieves the current date and time formatted according to the specified format.\n * @returns {string} The formatted date and time.\n */\n getFormattedDateTime(): string {\n return this.dateTimeFormat();\n }\n}\n","/**\n * Copyright 2024 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 * Abstract class representing a logger.\n * This class provides the structure for logging mechanisms and should be extended by specific logger implementations.\n */\nexport abstract class Logger {\n /**\n * Logs a message at the trace level.\n * @param {string} message - The message to log.\n */\n abstract trace(message: string): void;\n\n /**\n * Logs a message at the debug level.\n * @param {string} message - The message to log.\n */\n abstract debug(message: string): void;\n\n /**\n * Logs a message at the info level.\n * @param {string} message - The message to log.\n */\n abstract info(message: string): void;\n\n /**\n * Logs a message at the warn level.\n * @param {string} message - The message to log.\n */\n abstract warn(message: string): void;\n\n /**\n * Logs a message at the error level.\n * @param {string} message - The message to log.\n */\n abstract error(message: string): void;\n}\n","/**\n * Copyright 2024 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\nimport { v4 as uuidv4 } from 'uuid';\nimport { dynamic } from '../../../types/Common';\n\nimport { Logger } from '../Logger';\nimport { ConsoleTransport } from '../transports/ConsoleTransport';\nimport { LogTransportManager } from './TransportManager';\n\nimport { isObject } from '../../../utils/DataTypeUtil';\nimport { LogLevelEnum } from '../enums/LogLevelEnum';\n\n/**\n * Interface defining the structure and methods for LogManager.\n */\nexport interface ILogManager {\n transportManager?: LogTransportManager;\n config?: Record;\n name?: string;\n requestId?: string;\n level: string;\n prefix?: string;\n dateTimeFormat?: () => string;\n\n transport?: Record;\n transports?: Array>;\n\n addTransport?(transportObject: Record): void;\n addTransports?(transportsList: Array>): void;\n}\n\n/**\n * LogManager class provides logging functionality with support for multiple transports.\n * It is designed as a singleton to ensure a single instance throughout the application.\n */\nexport class LogManager extends Logger implements ILogManager {\n private static instance: LogManager; // Singleton instance of LogManager\n transportManager: LogTransportManager;\n config: Record;\n name = 'VWO Logger'; // Default logger name\n requestId = uuidv4(); // Unique request ID generated for each instance\n level = LogLevelEnum.ERROR; // Default logging level\n prefix = 'VWO-SDK'; // Default prefix for log messages\n public dateTimeFormat(): string {\n return new Date().toISOString(); // Default date-time format for log messages\n }\n transport: Record;\n transports: Array>;\n\n /**\n * Constructor for LogManager.\n * @param {Record} config - Configuration object for LogManager.\n */\n constructor(config?: Record) {\n super();\n\n this.config = config;\n\n if (config.isAlwaysNewInstance || !LogManager.instance) {\n LogManager.instance = this;\n\n // Initialize configuration with defaults or provided values\n this.config.name = config.name || this.name;\n this.config.requestId = config.requestId || this.requestId;\n this.config.level = config.level || this.level;\n this.config.prefix = config.prefix || this.prefix;\n this.config.dateTimeFormat = config.dateTimeFormat || this.dateTimeFormat;\n\n this.transportManager = new LogTransportManager(this.config);\n\n this.handleTransports();\n }\n\n return LogManager.instance;\n }\n\n /**\n * Provides access to the singleton instance of LogManager.\n * @returns {LogManager} The singleton instance.\n */\n static get Instance(): LogManager {\n return LogManager.instance;\n }\n\n /**\n * Handles the initialization and setup of transports based on configuration.\n */\n handleTransports(): void {\n const transports = this.config.transports;\n\n if (transports?.length) {\n this.addTransports(this.config.transports);\n } else if (this.config.transport && isObject(this.config.transport)) {\n this.addTransport(this.config.transport);\n } else {\n // if (this.config.defaultTransport)\n // Add default ConsoleTransport if no other transport is specified\n this.addTransport(\n new ConsoleTransport({\n level: this.config.level,\n }),\n );\n }\n }\n\n /**\n * Adds a single transport to the LogManager.\n * @param {Record} transport - The transport object to add.\n */\n addTransport(transport: Record): void {\n this.transportManager.addTransport(transport);\n }\n\n /**\n * Adds multiple transports to the LogManager.\n * @param {Array>} transports - The list of transport objects to add.\n */\n addTransports(transports: Record): void {\n for (let i = 0; i < transports.length; i++) {\n this.addTransport(transports[i]);\n }\n }\n\n /**\n * Logs a trace message.\n * @param {string} message - The message to log at trace level.\n */\n trace(message: string): void {\n this.transportManager.log(LogLevelEnum.TRACE, message);\n }\n\n /**\n * Logs a debug message.\n * @param {string} message - The message to log at debug level.\n */\n debug(message: string): void {\n this.transportManager.log(LogLevelEnum.DEBUG, message);\n }\n\n /**\n * Logs an informational message.\n * @param {string} message - The message to log at info level.\n */\n info(message: string): void {\n this.transportManager.log(LogLevelEnum.INFO, message);\n }\n\n /**\n * Logs a warning message.\n * @param {string} message - The message to log at warn level.\n */\n warn(message: string): void {\n this.transportManager.log(LogLevelEnum.WARN, message);\n }\n\n /**\n * Logs an error message.\n * @param {string} message - The message to log at error level.\n */\n error(message: string): void {\n this.transportManager.log(LogLevelEnum.ERROR, message);\n }\n}\n","/**\n * Copyright 2024 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\nimport { dynamic } from '../../../types/Common';\nimport { LogLevelEnum } from '../enums/LogLevelEnum';\nimport { LogMessageBuilder } from '../LogMessageBuilder';\nimport { Logger } from '../Logger';\nimport { isFunction } from '../../../utils/DataTypeUtil';\n\nenum LogLevelNumberEnum {\n TRACE = 0,\n DEBUG = 1,\n INFO = 2,\n WARN = 3,\n ERROR = 4,\n}\n\ninterface IlogTransport extends Logger {\n transports: Array>;\n config: Record;\n\n // Determines if a message should be logged based on the transport and configuration levels\n shouldLog(transportLevel: string, configLevel: string): boolean;\n // Logs a message at a specified level\n log(level: string, message: string): void;\n}\n\n/**\n * Manages logging transports and delegates logging messages to them based on configuration.\n * Implements the IlogTransport interface.\n */\nexport class LogTransportManager implements IlogTransport {\n transports: Array>;\n config: Record;\n\n /**\n * Initializes the manager with a configuration object.\n * @param {Record} config - Configuration settings for the log manager.\n */\n constructor(config: Record) {\n this.transports = [];\n this.config = config;\n }\n\n /**\n * Adds a new transport to the manager.\n * @param {Record} transport - The transport object to be added.\n */\n addTransport(transport: Record): void {\n this.transports.push(transport);\n }\n\n /**\n * Determines if the log should be processed based on the transport and configuration levels.\n * @param {string} transportLevel - The log level set for the transport.\n * @param {string} configLevel - The log level set in the configuration.\n * @returns {boolean} - Returns true if the log level is appropriate for logging, false otherwise.\n */\n shouldLog(transportLevel: string, configLevel: string): boolean {\n // Default to the most specific level available\n // transportLevel = transportLevel || configLevel || this.config.level;\n\n const targetLevel = LogLevelNumberEnum[transportLevel.toUpperCase()];\n const desiredLevel = LogLevelNumberEnum[(configLevel || this.config.level).toUpperCase()];\n\n return targetLevel >= desiredLevel;\n }\n\n /**\n * Logs a message at TRACE level.\n * @param {string} message - The message to log.\n */\n trace(message: string): void {\n this.log(LogLevelEnum.TRACE, message);\n }\n\n /**\n * Logs a message at DEBUG level.\n * @param {string} message - The message to log.\n */\n debug(message: string): void {\n this.log(LogLevelEnum.DEBUG, message);\n }\n\n /**\n * Logs a message at INFO level.\n * @param {string} message - The message to log.\n */\n info(message: string): void {\n this.log(LogLevelEnum.INFO, message);\n }\n\n /**\n * Logs a message at WARN level.\n * @param {string} message - The message to log.\n */\n warn(message: string): void {\n this.log(LogLevelEnum.WARN, message);\n }\n\n /**\n * Logs a message at ERROR level.\n * @param {string} message - The message to log.\n */\n error(message: string): void {\n this.log(LogLevelEnum.ERROR, message);\n }\n\n /**\n * Delegates the logging of messages to the appropriate transports.\n * @param {string} level - The level at which to log the message.\n * @param {string} message - The message to log.\n */\n log(level: string, message: string): void {\n for (let i = 0; i < this.transports.length; i++) {\n const logMessageBuilder = new LogMessageBuilder(this.config, this.transports[i]);\n const formattedMessage = logMessageBuilder.formatMessage(level, message);\n if (this.shouldLog(level, this.transports[i].level)) {\n if (this.transports[i].log && isFunction(this.transports[i].log)) {\n // Use custom log handler if available\n this.transports[i].log(level, message);\n } else {\n // Otherwise, use the default log method\n this.transports[i][level](formattedMessage);\n }\n }\n }\n }\n}\n","/**\n * Copyright 2024 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\nexport enum LogLevelEnum {\n TRACE = 'trace',\n DEBUG = 'debug',\n INFO = 'info',\n WARN = 'warn',\n ERROR = 'error',\n}\n","/**\n * Copyright 2024 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 */\nexport { LogManager, ILogManager } from './core/LogManager';\nexport { LogLevelEnum } from './enums/LogLevelEnum';\n","/**\n * Copyright 2024 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 */\nimport { LogLevelEnum } from '../enums/LogLevelEnum';\nimport { Logger } from '../Logger';\n\n/**\n * ConsoleTransport class implements the Logger interface to provide logging functionality.\n * It outputs logs to the console based on the log level set in the configuration.\n */\nexport class ConsoleTransport implements Logger {\n config: Record; // Configuration object for the logger\n level: string; // Current log level\n\n /**\n * Constructor initializes the ConsoleTransport with a configuration object.\n * @param {Record} config - Configuration settings for the logger, including 'level'.\n */\n constructor(config: Record = {}) {\n this.config = config; // Store the configuration\n this.level = this.config.level; // Set the logging level from the configuration\n }\n\n /**\n * Logs a trace message.\n * @param {string} message - The message to log.\n */\n trace(message: string): void {\n this.consoleLog(LogLevelEnum.TRACE, message);\n }\n\n /**\n * Logs a debug message.\n * @param {string} message - The message to log.\n */\n debug(message: string): void {\n this.consoleLog(LogLevelEnum.DEBUG, message);\n }\n\n /**\n * Logs an informational message.\n * @param {string} message - The message to log.\n */\n info(message: string): void {\n this.consoleLog(LogLevelEnum.INFO, message);\n }\n\n /**\n * Logs a warning message.\n * @param {string} message - The message to log.\n */\n warn(message: string): void {\n this.consoleLog(LogLevelEnum.WARN, message);\n }\n\n /**\n * Logs an error message.\n * @param {string} message - The message to log.\n */\n error(message: string): void {\n this.consoleLog(LogLevelEnum.ERROR, message);\n }\n\n /**\n * Generic log function that logs messages to the console based on the log level.\n * @param {string} level - The log level under which the message should be logged.\n * @param {string} message - The message to log.\n */\n consoleLog(level: string, message: string): void {\n console[level](message); // Use console's logging function dynamically based on the level\n }\n}\n","/**\n * Copyright 2024 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 */\nimport { sendGetCall, sendPostCall } from '../../../utils/XMLUtil';\nimport { dynamic } from '../../../types/Common';\nimport { Deferred } from '../../../utils/PromiseUtil';\n\nimport { RequestModel } from '../models/RequestModel';\nimport { ResponseModel } from '../models/ResponseModel';\nimport { NetworkClientInterface } from './NetworkClientInterface';\n\n/**\n * Implements the NetworkClientInterface to handle network requests.\n */\nexport class NetworkBrowserClient implements NetworkClientInterface {\n /**\n * Performs a GET request using the provided RequestModel.\n * @param {RequestModel} requestModel - The model containing request options.\n * @returns {Promise} A promise that resolves to a ResponseModel.\n */\n GET(requestModel: RequestModel): Promise {\n const deferred = new Deferred();\n\n // Extract network options from the request model.\n const networkOptions: Record = requestModel.getOptions();\n const responseModel = new ResponseModel();\n\n sendGetCall({\n networkOptions,\n successCallback: (data: dynamic) => {\n responseModel.setData(data);\n deferred.resolve(responseModel);\n },\n errorCallback: (error: dynamic) => {\n responseModel.setError(error);\n deferred.reject(responseModel);\n },\n });\n\n /*try {\n fetch(url)\n .then(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(text => {\n let jsonData = {};\n try {\n jsonData = JSON.parse(text);\n } catch (err) {\n console.info(\n `VWO-SDK - [INFO]: VWO didn't send JSON response which is expected: ${err}`\n );\n }\n\n if (res.status === 200) {\n responseModel.setData(jsonData);\n deferred.resolve(responseModel);\n } else {\n let error = `VWO-SDK - [ERROR]: Request failed for fetching account settings. Got Status Code: ${\n res.status\n }`;\n\n responseModel.setError(error);\n deferred.reject(responseModel);\n }\n });\n })\n .catch(err => {\n responseModel.setError(err);\n deferred.reject(responseModel);\n });\n } catch (err) {\n responseModel.setError(err);\n deferred.reject(responseModel);\n } */\n return deferred.promise;\n }\n\n /**\n * Performs a POST request using the provided RequestModel.\n * @param {RequestModel} request - The model containing request options.\n * @returns {Promise} A promise that resolves or rejects with a ResponseModel.\n */\n POST(request: RequestModel): Promise {\n const deferred = new Deferred();\n const networkOptions: Record = request.getOptions();\n const responseModel = new ResponseModel();\n\n sendPostCall({\n networkOptions,\n successCallback: (data: dynamic) => {\n responseModel.setData(data);\n deferred.resolve(responseModel);\n },\n errorCallback: (error: dynamic) => {\n responseModel.setError(error);\n deferred.reject(responseModel);\n },\n });\n\n /* try {\n const options: any = Object.assign(\n {},\n { method: HttpMethodEnum.POST },\n { body: networkOptions.body },\n { headers: networkOptions.headers }\n );\n\n fetch(url, options)\n .then(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(text => {\n let jsonData = {};\n try {\n jsonData = JSON.parse(text);\n } catch (err) {\n console.info(\n `VWO-SDK - [INFO]: VWO didn't send JSON response which is expected: ${err}`\n );\n }\n\n if (res.status === 200) {\n responseModel.setData(jsonData);\n deferred.resolve(responseModel);\n } else {\n let error = `VWO-SDK - [ERROR]: Request failed for fetching account settings. Got Status Code: ${\n res.status\n }`;\n\n responseModel.setError(error);\n deferred.reject(responseModel);\n }\n });\n })\n .catch(err => {\n responseModel.setError(err);\n deferred.reject(responseModel);\n });\n } catch (err) {\n responseModel.setError(err);\n deferred.reject(responseModel);\n } */\n\n return deferred.promise;\n }\n}\n","/**\n * Copyright 2024 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 */\nimport { dynamic } from '../../../types/Common';\nimport { GlobalRequestModel } from '../models/GlobalRequestModel';\nimport { RequestModel } from '../models/RequestModel';\n\n/**\n * A class responsible for creating and modifying request models based on a global configuration.\n */\nexport class RequestHandler {\n /**\n * Creates a new request by merging properties from a base request and a configuration model.\n * If both the request URL and the base URL from the configuration are missing, it returns null.\n * Otherwise, it merges the properties from the configuration into the request if they are not already set.\n *\n * @param {RequestModel} request - The initial request model.\n * @param {GlobalRequestModel} config - The global request configuration model.\n * @returns {RequestModel} The merged request model or null if both URLs are missing.\n */\n createRequest(request: RequestModel, config: GlobalRequestModel): RequestModel {\n // Check if both the request URL and the configuration base URL are missing\n if (\n (config.getBaseUrl() === null || config.getBaseUrl() === undefined) &&\n (request.getUrl() === null || request.getUrl() === undefined)\n ) {\n return null; // Return null if no URL is specified\n }\n // Set the request URL, defaulting to the configuration base URL if not set\n request.setUrl(request.getUrl() || config.getBaseUrl());\n // Set the request timeout, defaulting to the configuration timeout if not set\n request.setTimeout(request.getTimeout() || config.getTimeout());\n // Set the request body, defaulting to the configuration body if not set\n request.setBody(request.getBody() || config.getBody());\n // Set the request headers, defaulting to the configuration headers if not set\n request.setHeaders(request.getHeaders() || config.getHeaders());\n // Initialize request query parameters, defaulting to an empty object if not set\n const requestQueryParams: Record = request.getQuery() || {};\n // Initialize configuration query parameters, defaulting to an empty object if not set\n const configQueryParams: Record = config.getQuery() || {};\n\n // Merge configuration query parameters into the request query parameters if they don't exist\n for (const queryKey in configQueryParams) {\n if (!Object.prototype.hasOwnProperty.call(requestQueryParams, queryKey)) {\n requestQueryParams[queryKey] = configQueryParams[queryKey];\n }\n }\n // Set the merged query parameters back to the request\n request.setQuery(requestQueryParams);\n return request; // Return the modified request\n }\n}\n","/**\n * Copyright 2024 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\nlet NetworkClient;\n\nif ((typeof process.env as any) === 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n NetworkClient = require('./client/NetworkBrowserClient').NetworkBrowserClient;\n} else {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n NetworkClient = require('./client/NetworkClient').NetworkClient;\n}\n\nexport { NetworkClient };\nexport { NetworkClientInterface } from './client/NetworkClientInterface';\nexport { NetworkManager } from './manager/NetworkManager';\nexport { GlobalRequestModel } from './models/GlobalRequestModel';\nexport { RequestModel } from './models/RequestModel';\nexport { ResponseModel } from './models/ResponseModel';\n","/**\n * Copyright 2024 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 */\nimport { Deferred } from '../../../utils/PromiseUtil';\nimport { NetworkClientInterface } from '../client/NetworkClientInterface';\nimport { RequestHandler } from '../handlers/RequestHandler';\nimport { GlobalRequestModel } from '../models/GlobalRequestModel';\nimport { RequestModel } from '../models/RequestModel';\nimport { ResponseModel } from '../models/ResponseModel';\n\nexport class NetworkManager {\n private config: GlobalRequestModel; // Holds the global configuration for network requests\n private client: NetworkClientInterface; // Interface for the network client handling the actual HTTP requests\n private static instance: NetworkManager; // Singleton instance of NetworkManager\n\n /**\n * Attaches a network client to the manager, or uses a default if none provided.\n * @param {NetworkClientInterface} client - The client to attach, optional.\n */\n attachClient(client?: NetworkClientInterface): void {\n if ((typeof process.env as any) === 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const { NetworkBrowserClient } = require('../client/NetworkBrowserClient');\n\n this.client = client || new NetworkBrowserClient(); // Use provided client or default to NetworkClient\n } else {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const { NetworkClient } = require('../client/NetworkClient');\n\n this.client = client || new NetworkClient(); // Use provided client or default to NetworkClient\n }\n\n this.config = new GlobalRequestModel(null, null, null, null); // Initialize with default config\n }\n\n /**\n * Singleton accessor for the NetworkManager instance.\n * @returns {NetworkManager} The singleton instance.\n */\n static get Instance(): NetworkManager {\n this.instance = this.instance || new NetworkManager(); // Create instance if it doesn't exist\n return this.instance;\n }\n\n /**\n * Sets the global configuration for network requests.\n * @param {GlobalRequestModel} config - The configuration to set.\n */\n setConfig(config: GlobalRequestModel): void {\n this.config = config; // Set the global request configuration\n }\n\n /**\n * Retrieves the current global configuration.\n * @returns {GlobalRequestModel} The current configuration.\n */\n getConfig(): GlobalRequestModel {\n return this.config; // Return the global request configuration\n }\n\n /**\n * Creates a network request model by merging specific request data with global config.\n * @param {RequestModel} request - The specific request data.\n * @returns {RequestModel} The merged request model.\n */\n createRequest(request: RequestModel): RequestModel {\n const options: RequestModel = new RequestHandler().createRequest(request, this.config); // Merge and create request\n return options;\n }\n\n /**\n * Performs a GET request using the provided request model.\n * @param {RequestModel} request - The request model.\n * @returns {Promise} A promise that resolves to the response model.\n */\n get(request: RequestModel): Promise {\n const deferred = new Deferred(); // Create a new deferred promise\n\n const networkOptions: RequestModel = this.createRequest(request); // Create network request options\n if (!networkOptions.getUrl()) {\n deferred.reject(new Error('no url found')); // Reject if no URL is found\n } else {\n this.client\n .GET(networkOptions)\n .then((response: ResponseModel) => {\n deferred.resolve(response); // Resolve with the response\n })\n .catch((errorResponse: ResponseModel) => {\n deferred.reject(errorResponse); // Reject with the error response\n });\n }\n\n return deferred.promise; // Return the promise\n }\n\n /**\n * Performs a POST request using the provided request model.\n * @param {RequestModel} request - The request model.\n * @returns {Promise} A promise that resolves to the response model.\n */\n post(request: RequestModel): Promise {\n const deferred = new Deferred(); // Create a new deferred promise\n\n const networkOptions: RequestModel = this.createRequest(request); // Create network request options\n if (!networkOptions.getUrl()) {\n deferred.reject(new Error('no url found')); // Reject if no URL is found\n } else {\n this.client\n .POST(networkOptions)\n .then((response: ResponseModel) => {\n deferred.resolve(response); // Resolve with the response\n })\n .catch((error: ResponseModel) => {\n deferred.reject(error); // Reject with the error\n });\n }\n\n return deferred.promise; // Return the promise\n }\n}\n","/**\n * Copyright 2024 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 */\nimport { dynamic } from '../../../types/Common';\n\n/**\n * Represents a model for global HTTP requests configuration.\n * This class encapsulates all necessary details such as URL, query parameters, body, headers,\n * timeout settings, and development mode flag.\n */\nexport class GlobalRequestModel {\n private url: string; // Base URL of the HTTP request\n private timeout = 3000; // Default timeout for the HTTP request in milliseconds\n private query: Record; // Query parameters for the HTTP request\n private body: Record; // Body of the HTTP request\n private headers: Record; // HTTP headers\n private isDevelopmentMode: boolean; // Flag to indicate if the request is in development mode\n\n /**\n * Constructs an instance of the GlobalRequestModel.\n * @param url The base URL of the HTTP request.\n * @param query Query parameters as a record of key-value pairs.\n * @param body Body of the request as a record of key-value pairs.\n * @param headers HTTP headers as a record of key-value pairs.\n */\n constructor(\n url: string,\n query: Record,\n body: Record,\n headers: Record,\n ) {\n this.url = url;\n this.query = query;\n this.body = body;\n this.headers = headers;\n }\n\n /**\n * Sets the query parameters for the HTTP request.\n * @param query A record of key-value pairs representing the query parameters.\n */\n setQuery(query: Record): void {\n this.query = query;\n }\n\n /**\n * Retrieves the query parameters of the HTTP request.\n * @returns A record of key-value pairs representing the query parameters.\n */\n getQuery(): Record {\n return this.query;\n }\n\n /**\n * Sets the body of the HTTP request.\n * @param body A record of key-value pairs representing the body content.\n */\n setBody(body: Record): void {\n this.body = body;\n }\n\n /**\n * Retrieves the body of the HTTP request.\n * @returns A record of key-value pairs representing the body content.\n */\n getBody(): Record {\n return this.body;\n }\n\n /**\n * Sets the base URL of the HTTP request.\n * @param url The base URL as a string.\n */\n setBaseUrl(url: string): void {\n this.url = url;\n }\n\n /**\n * Retrieves the base URL of the HTTP request.\n * @returns The base URL as a string.\n */\n getBaseUrl(): string {\n return this.url;\n }\n\n /**\n * Sets the timeout duration for the HTTP request.\n * @param timeout Timeout in milliseconds.\n */\n setTimeout(timeout: number): void {\n this.timeout = timeout;\n }\n\n /**\n * Retrieves the timeout duration of the HTTP request.\n * @returns Timeout in milliseconds.\n */\n getTimeout(): number {\n return this.timeout;\n }\n\n /**\n * Sets the HTTP headers for the request.\n * @param headers A record of key-value pairs representing the HTTP headers.\n */\n setHeaders(headers: Record): void {\n this.headers = headers;\n }\n\n /**\n * Retrieves the HTTP headers of the request.\n * @returns A record of key-value pairs representing the HTTP headers.\n */\n getHeaders(): Record {\n return this.headers;\n }\n\n /**\n * Sets the development mode status for the request.\n * @param isDevelopmentMode Boolean flag indicating if the request is in development mode.\n */\n setDevelopmentMode(isDevelopmentMode: boolean): void {\n this.isDevelopmentMode = isDevelopmentMode;\n }\n\n /**\n * Retrieves the development mode status of the request.\n * @returns Boolean indicating if the request is in development mode.\n */\n getDevelopmentMode(): boolean {\n return this.isDevelopmentMode;\n }\n}\n","/**\n * Copyright 2024 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 */\nimport { HttpMethodEnum } from '../../../enums/HttpMethodEnum';\nimport { dynamic } from '../../../types/Common';\nimport { HTTPS } from '../../../constants/Url';\n\n/**\n * Represents a model for HTTP requests.\n * This class encapsulates all necessary details such as URL, method, path, query parameters, body, headers,\n * scheme, port, and timeout settings.\n */\nexport class RequestModel {\n private url: string; // Base URL of the HTTP request\n private method: string; // HTTP method (GET, POST, etc.)\n private scheme: string; // Protocol scheme (http, https)\n private port: number; // Port number\n private path: string; // Path of the URL\n private query: Record; // Query parameters\n private timeout: number; // Timeout for the HTTP request in milliseconds\n private body: Record; // Body of the HTTP request\n private headers: Record; // HTTP headers\n\n /**\n * Constructs an instance of the RequestModel.\n * @param url The base URL of the HTTP request.\n * @param method HTTP method, default is 'GET'.\n * @param path URL path.\n * @param query Query parameters as a record of key-value pairs.\n * @param body Body of the request as a record of key-value pairs.\n * @param headers HTTP headers as a record of key-value pairs.\n * @param scheme Protocol scheme, default is 'http'.\n * @param port Port number, default is 80.\n */\n constructor(\n url: string,\n method: string = HttpMethodEnum.GET,\n path: string,\n query: Record,\n body: Record,\n headers: Record,\n scheme: string = HTTPS,\n port: number,\n ) {\n this.url = url;\n this.method = method;\n this.path = path;\n this.query = query;\n this.body = body;\n this.headers = headers;\n this.scheme = scheme;\n this.port = port;\n }\n\n /**\n * Retrieves the HTTP method.\n * @returns The HTTP method as a string.\n */\n getMethod(): string {\n return this.method;\n }\n\n /**\n * Sets the HTTP method.\n * @param method The HTTP method to set.\n */\n setMethod(method: string): void {\n this.method = method;\n }\n\n /**\n * Retrieves the body of the HTTP request.\n * @returns A record of key-value pairs representing the body content.\n */\n getBody(): Record {\n return this.body;\n }\n\n /**\n * Sets the body of the HTTP request.\n * @param body A record of key-value pairs representing the body content.\n */\n setBody(body: Record): void {\n this.body = body;\n }\n\n /**\n * Sets the query parameters for the HTTP request.\n * @param query A record of key-value pairs representing the query parameters.\n */\n setQuery(query: Record): void {\n this.query = query;\n }\n\n /**\n * Retrieves the query parameters of the HTTP request.\n * @returns A record of key-value pairs representing the query parameters.\n */\n getQuery(): Record {\n return this.query;\n }\n\n /**\n * Sets the HTTP headers for the request.\n * @param headers A record of key-value pairs representing the HTTP headers.\n */\n setHeaders(headers: Record): this {\n this.headers = headers;\n return this;\n }\n\n /**\n * Retrieves the HTTP headers of the request.\n * @returns A record of key-value pairs representing the HTTP headers.\n */\n getHeaders(): Record {\n return this.headers;\n }\n\n /**\n * Sets the timeout duration for the HTTP request.\n * @param timeout Timeout in milliseconds.\n */\n setTimeout(timeout: number): this {\n this.timeout = timeout;\n return this;\n }\n\n /**\n * Retrieves the timeout duration of the HTTP request.\n * @returns Timeout in milliseconds.\n */\n getTimeout(): number {\n return this.timeout;\n }\n\n /**\n * Retrieves the base URL of the HTTP request.\n * @returns The base URL as a string.\n */\n getUrl(): string {\n return this.url;\n }\n\n /**\n * Sets the base URL of the HTTP request.\n * @param url The base URL as a string.\n */\n setUrl(url: string): this {\n this.url = url;\n return this;\n }\n\n /**\n * Retrieves the scheme of the HTTP request.\n * @returns The scheme as a string.\n */\n getScheme(): string {\n return this.scheme;\n }\n\n /**\n * Sets the scheme of the HTTP request.\n * @param scheme The scheme to set (http or https).\n */\n setScheme(scheme: string): this {\n this.scheme = scheme;\n return this;\n }\n\n /**\n * Retrieves the port number of the HTTP request.\n * @returns The port number as an integer.\n */\n getPort(): number {\n return this.port;\n }\n\n /**\n * Sets the port number for the HTTP request.\n * @param port The port number to set.\n */\n setPort(port: number): this {\n this.port = port;\n return this;\n }\n\n /**\n * Retrieves the path of the HTTP request.\n * @returns The path as a string.\n */\n getPath(): string {\n return this.path;\n }\n\n /**\n * Sets the path of the HTTP request.\n * @param path The path to set.\n */\n setPath(path: string): this {\n this.path = path;\n return this;\n }\n\n /**\n * Constructs the options for the HTTP request based on the current state of the model.\n * This method is used to prepare the request options for execution.\n * @returns A record containing all relevant options for the HTTP request.\n */\n getOptions(): Record {\n let queryParams = '';\n for (const key in this.query) {\n const queryString = `${key}=${this.query[key]}&`;\n queryParams += queryString;\n }\n\n const [hostname, collectionPrefix] = this.url.split('/');\n const options: Record = {\n hostname, // if url is example.com/as01, hostname will be example.com\n agent: false,\n };\n\n if (this.scheme) {\n options.scheme = this.scheme;\n }\n if (this.port) {\n options.port = this.port;\n }\n if (this.headers) {\n options.headers = this.headers;\n }\n\n if (this.method) {\n options.method = this.method;\n }\n\n if (this.body) {\n const postBody = JSON.stringify(this.body);\n options.headers = options.headers || {};\n options.headers['Content-Type'] = 'application/json';\n\n if (typeof Buffer === 'undefined') {\n options.headers['Content-Length'] = new TextEncoder().encode(postBody).length;\n } else {\n options.headers['Content-Length'] = Buffer.byteLength(postBody);\n }\n options.body = this.body;\n }\n\n if (this.path) {\n if (queryParams !== '') {\n options.path = this.path + '?' + queryParams || '';\n } else {\n options.path = this.path;\n }\n }\n\n if (collectionPrefix) {\n options.path = `/${collectionPrefix}` + options.path;\n }\n if (this.timeout) {\n options.timeout = this.timeout;\n }\n if (options.path.charAt(options.path.length - 1) === '&') {\n options.path = options.path.substring(0, options.path.length - 1);\n }\n\n return options;\n }\n}\n","/**\n * Copyright 2024 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 */\nimport { dynamic } from '../../../types/Common';\n\n/**\n * Represents the response model for network operations.\n * This class encapsulates details about the HTTP response including status code, headers, data, and errors.\n */\nexport class ResponseModel {\n private statusCode: number; // HTTP status code of the response\n private error: dynamic; // Error object if the request failed\n private headers: Record; // Headers received in the response\n private data: dynamic; // Data payload of the response\n\n /**\n * Sets the status code of the response.\n * @param {number} statusCode - The HTTP status code\n */\n setStatusCode(statusCode: number): void {\n this.statusCode = statusCode;\n }\n\n /**\n * Sets the headers of the response.\n * @param {Record} headers - The headers of the response\n */\n setHeaders(headers: Record): void {\n this.headers = headers;\n }\n\n /**\n * Sets the data of the response.\n * @param {dynamic} data - The data payload of the response\n */\n setData(data: dynamic): void {\n this.data = data;\n }\n\n /**\n * Sets the error object of the response.\n * @param {dynamic} error - The error object if the request failed\n */\n setError(error: dynamic): void {\n this.error = error;\n }\n\n /**\n * Retrieves the headers of the response.\n * @returns {Record} The headers of the response\n */\n getHeaders(): Record {\n return this.headers;\n }\n\n /**\n * Retrieves the data payload of the response.\n * @returns {dynamic} The data payload of the response\n */\n getData(): dynamic {\n return this.data;\n }\n\n /**\n * Retrieves the status code of the response.\n * @returns {number} The HTTP status code\n */\n getStatusCode(): number {\n return this.statusCode;\n }\n\n /**\n * Retrieves the error object of the response.\n * @returns {dynamic} The error object if the request failed\n */\n getError(): dynamic {\n return this.error;\n }\n}\n","/**\n * Copyright 2024 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 */\nimport { SegmentEvaluator } from '../evaluators/SegmentEvaluator';\nimport { dynamic } from '../../../types/Common';\nimport { SettingsModel } from '../../../models/settings/SettingsModel';\nimport { getFromGatewayService, getQueryParams } from '../../../utils/GatewayServiceUtil';\nimport { UrlEnum } from '../../../enums/UrlEnum';\nimport { LogManager } from '../../logger';\nimport { ContextModel } from '../../../models/user/ContextModel';\nimport { FeatureModel } from '../../../models/campaign/FeatureModel';\nimport { ContextVWOModel } from '../../../models/user/ContextVWOModel';\nimport { SettingsService } from '../../../services/SettingsService';\nimport { isUndefined } from '../../../utils/DataTypeUtil';\n\nexport class SegmentationManager {\n private static instance: SegmentationManager; // Singleton instance of SegmentationManager\n evaluator: SegmentEvaluator; // Holds the instance of SegmentEvaluator\n\n /**\n * Singleton pattern implementation for getting the instance of SegmentationManager.\n * @returns {SegmentationManager} The singleton instance.\n */\n static get Instance(): SegmentationManager {\n this.instance = this.instance || new SegmentationManager(); // Create new instance if it doesn't exist\n return this.instance;\n }\n\n /**\n * Attaches an evaluator to the manager, or creates a new one if none is provided.\n * @param {SegmentEvaluator} evaluator - Optional evaluator to attach.\n */\n attachEvaluator(evaluator?: SegmentEvaluator): void {\n this.evaluator = evaluator || new SegmentEvaluator(); // Use provided evaluator or create new one\n }\n\n /**\n * Sets the contextual data for the segmentation process.\n * @param {any} settings - The settings data.\n * @param {any} feature - The feature data including segmentation needs.\n * @param {any} context - The context data for the evaluation.\n */\n async setContextualData(settings: SettingsModel, feature: FeatureModel, context: ContextModel) {\n this.attachEvaluator(); // Ensure a fresh evaluator instance\n this.evaluator.settings = settings; // Set settings in evaluator\n this.evaluator.context = context; // Set context in evaluator\n this.evaluator.feature = feature; // Set feature in evaluator\n\n // if both user agent and ip is null then we should not get data from gateway service\n if (context?.getUserAgent() === null && context?.getIpAddress() === null) {\n return;\n }\n\n if (feature.getIsGatewayServiceRequired() === true) {\n if (\n SettingsService.Instance.isGatewayServiceProvided &&\n (isUndefined(context.getVwo()) || context.getVwo() === null)\n ) {\n const queryParams = {};\n if (context?.getUserAgent()) {\n queryParams['userAgent'] = context.getUserAgent();\n }\n\n if (context?.getIpAddress()) {\n queryParams['ipAddress'] = context.getIpAddress();\n }\n try {\n const params = getQueryParams(queryParams);\n const _vwo = await getFromGatewayService(params, UrlEnum.GET_USER_DATA);\n context.setVwo(new ContextVWOModel().modelFromDictionary(_vwo));\n } catch (err) {\n LogManager.Instance.error(`Error in setting contextual data for segmentation. Got error: ${err.error}`);\n }\n }\n }\n }\n\n /**\n * Validates the segmentation against provided DSL and properties.\n * @param {Record} dsl - The segmentation DSL.\n * @param {Record} properties - The properties to validate against.\n * @param {SettingsModel} settings - The settings model.\n * @param {any} context - Optional context.\n * @returns {Promise} True if segmentation is valid, otherwise false.\n */\n async validateSegmentation(dsl: Record, properties: Record): Promise {\n return await this.evaluator.isSegmentationValid(dsl, properties); // Delegate to evaluator's method\n }\n}\n","/**\n * Copyright 2024 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 */\nexport enum SegmentOperandRegexEnum {\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 * Copyright 2024 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 */\nexport enum SegmentOperandValueEnum {\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 * Copyright 2024 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 */\nexport enum SegmentOperatorValueEnum {\n AND = 'and',\n NOT = 'not',\n OR = 'or',\n CUSTOM_VARIABLE = 'custom_variable',\n USER = 'user',\n COUNTRY = 'country',\n REGION = 'region',\n CITY = 'city',\n OPERATING_SYSTEM = 'os',\n DEVICE_TYPE = 'device_type',\n DEVICE = 'device',\n BROWSER_AGENT = 'browser_string',\n UA = 'ua',\n FEATURE_ID = 'featureId',\n}\n","/**\n * Copyright 2024 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 */\nimport { StorageDecorator } from '../../../decorators/StorageDecorator';\nimport { SettingsModel } from '../../../models/settings/SettingsModel';\nimport { LogManager } from '../../logger';\nimport { StorageService } from '../../../services/StorageService';\nimport { dynamic } from '../../../types/Common';\nimport { isObject } from '../../../utils/DataTypeUtil';\nimport { SegmentOperatorValueEnum } from '../enums/SegmentOperatorValueEnum';\nimport { Segmentation } from '../Segmentation';\nimport { getKeyValue } from '../utils/SegmentUtil';\nimport { SegmentOperandEvaluator } from './SegmentOperandEvaluator';\nimport { ContextModel } from '../../../models/user/ContextModel';\nimport { FeatureModel } from '../../../models/campaign/FeatureModel';\n\nexport class SegmentEvaluator implements Segmentation {\n context: ContextModel;\n settings: SettingsModel;\n feature: FeatureModel;\n\n /**\n * Validates if the segmentation defined in the DSL is applicable based on the provided properties.\n * @param dsl The domain-specific language defining the segmentation rules.\n * @param properties The properties against which the DSL rules are evaluated.\n * @returns A Promise resolving to a boolean indicating if the segmentation is valid.\n */\n async isSegmentationValid(dsl: Record, properties: Record): Promise {\n const { key, value } = getKeyValue(dsl);\n const operator = key;\n const subDsl = value;\n\n // Evaluate based on the type of segmentation operator\n switch (operator) {\n case SegmentOperatorValueEnum.NOT:\n return !(await this.isSegmentationValid(subDsl, properties));\n case SegmentOperatorValueEnum.AND:\n return await this.every(subDsl, properties);\n case SegmentOperatorValueEnum.OR:\n return await this.some(subDsl, properties);\n case SegmentOperatorValueEnum.CUSTOM_VARIABLE:\n return await new SegmentOperandEvaluator().evaluateCustomVariableDSL(subDsl, properties);\n case SegmentOperatorValueEnum.USER:\n return new SegmentOperandEvaluator().evaluateUserDSL(subDsl, properties);\n case SegmentOperatorValueEnum.UA:\n return new SegmentOperandEvaluator().evaluateUserAgentDSL(subDsl, this.context);\n default:\n return false;\n }\n }\n\n /**\n * Evaluates if any of the DSL nodes are valid using the OR logic.\n * @param dslNodes Array of DSL nodes to evaluate.\n * @param customVariables Custom variables provided for evaluation.\n * @returns A Promise resolving to a boolean indicating if any of the nodes are valid.\n */\n async some(dslNodes: Array>, customVariables: Record): Promise {\n const uaParserMap: Record = {};\n let keyCount: number = 0; // Initialize count of keys encountered\n let isUaParser = false;\n\n for (const dsl of dslNodes) {\n for (const key in dsl) {\n // Check for user agent related keys\n if (\n key === SegmentOperatorValueEnum.OPERATING_SYSTEM ||\n key === SegmentOperatorValueEnum.BROWSER_AGENT ||\n key === SegmentOperatorValueEnum.DEVICE_TYPE ||\n key === SegmentOperatorValueEnum.DEVICE\n ) {\n isUaParser = true;\n const value = dsl[key];\n\n if (!uaParserMap[key]) {\n uaParserMap[key] = [];\n }\n\n // Ensure value is treated as an array of strings\n const valuesArray = Array.isArray(value) ? value : [value];\n valuesArray.forEach((val: dynamic) => {\n if (typeof val === 'string') {\n uaParserMap[key].push(val);\n }\n });\n\n keyCount++; // Increment count of keys encountered\n }\n\n // Check for feature toggle based on feature ID\n if (key === SegmentOperatorValueEnum.FEATURE_ID) {\n const featureIdObject = dsl[key] as Record;\n const featureIdKey: string = Object.keys(featureIdObject)[0];\n const featureIdValue: string = featureIdObject[featureIdKey];\n\n if (featureIdValue === 'on' || featureIdValue === 'off') {\n const features = this.settings.getFeatures();\n const feature = features.find((feature) => feature.getId() === parseInt(featureIdKey));\n\n if (feature) {\n const featureKey = feature.getKey();\n const result = await this.checkInUserStorage(this.settings, featureKey, this.context);\n // if the result is false, then we need to return true as feature is not present in the user storage\n if (featureIdValue === 'off') {\n return !result;\n }\n return result;\n } else {\n LogManager.Instance.error('Feature not found with featureIdKey: ' + featureIdKey);\n return null; // Handle the case when feature is not found\n }\n }\n }\n }\n\n // Check if the count of keys encountered is equal to dslNodes.length\n if (isUaParser && keyCount === dslNodes.length) {\n try {\n const uaParserResult = await this.checkUserAgentParser(uaParserMap);\n return uaParserResult;\n } catch (err) {\n LogManager.Instance.error('Failed to validate User Agent. Erro: ' + err);\n }\n }\n\n // Recursively check each DSL node\n if (await this.isSegmentationValid(dsl, customVariables)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Evaluates all DSL nodes using the AND logic.\n * @param dslNodes Array of DSL nodes to evaluate.\n * @param customVariables Custom variables provided for evaluation.\n * @returns A Promise resolving to a boolean indicating if all nodes are valid.\n */\n async every(dslNodes: Array>, customVariables: Record): Promise {\n const locationMap: Record = {};\n for (const dsl of dslNodes) {\n // Check if the DSL node contains location-related keys\n if (\n SegmentOperatorValueEnum.COUNTRY in dsl ||\n SegmentOperatorValueEnum.REGION in dsl ||\n SegmentOperatorValueEnum.CITY in dsl\n ) {\n this.addLocationValuesToMap(dsl, locationMap);\n // Check if the number of location keys matches the number of DSL nodes\n if (Object.keys(locationMap).length === dslNodes.length) {\n const segmentResult = await this.checkLocationPreSegmentation(locationMap);\n return segmentResult;\n }\n continue;\n }\n const res = await this.isSegmentationValid(dsl, customVariables);\n if (!res) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Adds location values from a DSL node to a map.\n * @param dsl DSL node containing location data.\n * @param locationMap Map to store location data.\n */\n addLocationValuesToMap(dsl: Record, locationMap: Record): void {\n // Add country, region, and city information to the location map if present\n if (SegmentOperatorValueEnum.COUNTRY in dsl) {\n locationMap[SegmentOperatorValueEnum.COUNTRY] = dsl[SegmentOperatorValueEnum.COUNTRY];\n }\n if (SegmentOperatorValueEnum.REGION in dsl) {\n locationMap[SegmentOperatorValueEnum.REGION] = dsl[SegmentOperatorValueEnum.REGION];\n }\n if (SegmentOperatorValueEnum.CITY in dsl) {\n locationMap[SegmentOperatorValueEnum.CITY] = dsl[SegmentOperatorValueEnum.CITY];\n }\n }\n\n /**\n * Checks if the user's location matches the expected location criteria.\n * @param locationMap Map of expected location values.\n * @returns A Promise resolving to a boolean indicating if the location matches.\n */\n async checkLocationPreSegmentation(locationMap: Record): Promise {\n // Ensure user's IP address is available\n if (this.context?.getIpAddress() === undefined) {\n LogManager.Instance.error('To evaluate location pre Segment, please pass ipAddress in context object');\n return false;\n }\n // Check if location data is available and matches the expected values\n if (\n !this.context?.getVwo()?.getLocation() ||\n this.context?.getVwo()?.getLocation() === undefined ||\n this.context?.getVwo()?.getLocation() === null\n ) {\n return false;\n }\n return this.valuesMatch(locationMap, this.context?.getVwo()?.getLocation());\n }\n\n /**\n * Checks if the user's device information matches the expected criteria.\n * @param uaParserMap Map of expected user agent values.\n * @returns A Promise resolving to a boolean indicating if the user agent matches.\n */\n async checkUserAgentParser(uaParserMap: Record): Promise {\n // Ensure user's user agent is available\n if (!this.context?.getUserAgent() || this.context?.getUserAgent() === undefined) {\n LogManager.Instance.error('To evaluate user agent related segments, please pass userAgent in context object');\n return false;\n }\n // Check if user agent data is available and matches the expected values\n if (!this.context?.getVwo()?.getUaInfo() || this.context?.getVwo()?.getUaInfo() === undefined) {\n return false;\n }\n\n return this.checkValuePresent(uaParserMap, this.context?.getVwo()?.getUaInfo());\n }\n\n /**\n * Checks if the feature is enabled for the user by querying the storage.\n * @param settings The settings model containing configuration.\n * @param featureKey The key of the feature to check.\n * @param user The user object to check against.\n * @returns A Promise resolving to a boolean indicating if the feature is enabled for the user.\n */\n async checkInUserStorage(settings: SettingsModel, featureKey: string, context: ContextModel): Promise {\n const storageService = new StorageService();\n // Retrieve feature data from storage\n const storedData: Record = await new StorageDecorator().getFeatureFromStorage(\n featureKey,\n context,\n storageService,\n );\n\n // Check if the stored data is an object and not empty\n if (isObject(storedData) && Object.keys(storedData).length > 0) {\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * Checks if the actual values match the expected values specified in the map.\n * @param expectedMap A map of expected values for different keys.\n * @param actualMap A map of actual values to compare against.\n * @returns A Promise resolving to a boolean indicating if all actual values match the expected values.\n */\n async checkValuePresent(expectedMap: Record, actualMap: Record): Promise {\n for (const key in actualMap) {\n if (Object.prototype.hasOwnProperty.call(expectedMap, key)) {\n const expectedValues = expectedMap[key];\n // convert expected values to lowercase\n expectedValues.forEach((value, index) => {\n expectedValues[index] = value.toLowerCase();\n });\n const actualValue = actualMap[key];\n\n // Handle wildcard patterns for all keys\n for (const val of expectedValues) {\n // Check if the value is a wildcard pattern and matches the actual value using regex\n if (val.startsWith('wildcard(') && val.endsWith(')')) {\n // Extract pattern from wildcard string\n const wildcardPattern = val.slice(9, -1);\n // Convert wildcard pattern to regex and check if it matches the actual value\n const regex = new RegExp(wildcardPattern.replace(/\\*/g, '.*'), 'i'); // Convert wildcard pattern to regex, 'i' for case-insensitive\n // Check if the actual value matches the regex pattern for the key\n if (regex.test(actualValue)) {\n // match found, return true as we only need to check if any of the expected values match the actual value\n return true;\n }\n }\n }\n\n // this will be checked for all cases where wildcard is not present\n if (expectedValues.includes(actualValue?.toLowerCase())) {\n return true; // Direct value match found, return true\n }\n }\n }\n return false; // No matches found\n }\n\n /**\n * Compares expected location values with user's location to determine a match.\n * @param expectedLocationMap A map of expected location values.\n * @param userLocation The user's actual location.\n * @returns A boolean indicating if the user's location matches the expected values.\n */\n async valuesMatch(expectedLocationMap, userLocation) {\n for (const [key, value] of Object.entries(expectedLocationMap)) {\n if (key in userLocation) {\n const normalizedValue1 = this.normalizeValue(value);\n const normalizedValue2 = this.normalizeValue(userLocation[key]);\n if (normalizedValue1 !== normalizedValue2) {\n return false;\n }\n } else {\n return false;\n }\n }\n return true; // If all values match, return true\n }\n\n /**\n * Normalizes a value to a consistent format for comparison.\n * @param value The value to normalize.\n * @returns The normalized value.\n */\n normalizeValue(value) {\n if (value === null || value === undefined) {\n return null;\n }\n // Remove quotes and trim whitespace\n return value.toString().replace(/^\"|\"$/g, '').trim();\n }\n}\n","/**\n * Copyright 2024 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 */\nimport { getKeyValue, matchWithRegex } from '../utils/SegmentUtil';\nimport { SegmentOperandValueEnum } from '../enums/SegmentOperandValueEnum';\nimport { SegmentOperandRegexEnum } from '../enums/SegmentOperandRegexEnum';\nimport { isBoolean } from '../../../utils/DataTypeUtil';\nimport { dynamic } from '../../../types/Common';\nimport { getFromGatewayService } from '../../../utils/GatewayServiceUtil';\nimport { UrlEnum } from '../../../enums/UrlEnum';\nimport { LogManager } from '../../logger';\nimport { ContextModel } from '../../../models/user/ContextModel';\n\n/**\n * SegmentOperandEvaluator class provides methods to evaluate different types of DSL (Domain Specific Language)\n * expressions based on the segment conditions defined for custom variables, user IDs, and user agents.\n */\nexport class SegmentOperandEvaluator {\n /**\n * Evaluates a custom variable DSL expression.\n * @param {Record} dslOperandValue - The DSL expression for the custom variable.\n * @param {Record} properties - The properties object containing the actual values to be matched against.\n * @returns {Promise} - A promise that resolves to a boolean indicating if the DSL condition is met.\n */\n async evaluateCustomVariableDSL(\n dslOperandValue: Record,\n properties: Record,\n ): Promise {\n // Extract key and value from the DSL operand\n const { key, value } = getKeyValue(dslOperandValue);\n const operandKey = key;\n const operand = value;\n\n // Check if the property exists\n if (!Object.prototype.hasOwnProperty.call(properties, operandKey)) {\n return false;\n }\n\n // Handle 'inlist' operand\n if (operand.includes('inlist')) {\n const listIdRegex = /inlist\\(([^)]+)\\)/;\n const match = operand.match(listIdRegex);\n if (!match || match.length < 2) {\n LogManager.Instance.error(\"Invalid 'inList' operand format\");\n return false;\n }\n\n // Process the tag value and prepare query parameters\n const tagValue = properties[operandKey];\n const attributeValue = this.preProcessTagValue(tagValue);\n const listId = match[1];\n const queryParamsObj = {\n attribute: attributeValue,\n listId: listId,\n };\n\n // Make a web service call to check the attribute against the list\n try {\n const res = await getFromGatewayService(queryParamsObj, UrlEnum.ATTRIBUTE_CHECK);\n if (!res || res === undefined || res === 'false' || res.status === 0) {\n return false;\n }\n return res;\n } catch (error) {\n LogManager.Instance.error('Error while fetching data: ' + error);\n return false;\n }\n } else {\n // Process other types of operands\n let tagValue = properties[operandKey];\n tagValue = this.preProcessTagValue(tagValue);\n const { operandType, operandValue } = this.preProcessOperandValue(operand);\n const processedValues = this.processValues(operandValue, tagValue);\n tagValue = processedValues.tagValue;\n return this.extractResult(operandType, processedValues.operandValue, tagValue);\n }\n }\n\n /**\n * Evaluates a user DSL expression to check if a user ID is in a specified list.\n * @param {Record} dslOperandValue - The DSL expression containing user IDs.\n * @param {Record} properties - The properties object containing the actual user ID to check.\n * @returns {boolean} - True if the user ID is in the list, otherwise false.\n */\n evaluateUserDSL(dslOperandValue: Record, properties: Record): boolean {\n const users = dslOperandValue.split(',');\n for (let i = 0; i < users.length; i++) {\n if (users[i].trim() == properties._vwoUserId) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Evaluates a user agent DSL expression.\n * @param {Record} dslOperandValue - The DSL expression for the user agent.\n * @param {any} context - The context object containing the user agent string.\n * @returns {boolean} - True if the user agent matches the DSL condition, otherwise false.\n */\n evaluateUserAgentDSL(dslOperandValue: Record, context: ContextModel): boolean {\n const operand = dslOperandValue;\n if (!context.getUserAgent() || context.getUserAgent() === undefined) {\n LogManager.Instance.info('To Evaluate UserAgent segmentation, please provide userAgent in context');\n return false;\n }\n let tagValue = decodeURIComponent(context.getUserAgent());\n const { operandType, operandValue } = this.preProcessOperandValue(operand);\n const processedValues = this.processValues(operandValue, tagValue);\n tagValue = processedValues.tagValue as string; // Fix: Type assertion to ensure tagValue is of type string\n return this.extractResult(operandType, processedValues.operandValue, tagValue);\n }\n\n /**\n * Pre-processes the tag value to ensure it is in the correct format for evaluation.\n * @param {any} tagValue - The value to be processed.\n * @returns {string | boolean} - The processed tag value, either as a string or a boolean.\n */\n preProcessTagValue(tagValue: any): string | boolean {\n // Default to empty string if undefined\n if (tagValue === undefined) {\n tagValue = '';\n }\n // Convert boolean values to boolean type\n if (isBoolean(tagValue)) {\n tagValue = tagValue ? true : false;\n }\n // Convert all non-null values to string\n if (tagValue !== null) {\n tagValue = tagValue.toString();\n }\n return tagValue;\n }\n\n /**\n * Pre-processes the operand value to determine its type and extract the value based on regex matches.\n * @param {any} operand - The operand to be processed.\n * @returns {Record} - An object containing the operand type and value.\n */\n preProcessOperandValue(operand: any): Record {\n let operandType: SegmentOperandValueEnum;\n let operandValue: dynamic;\n // Determine the type of operand and extract value based on regex patterns\n if (matchWithRegex(operand, SegmentOperandRegexEnum.LOWER_MATCH)) {\n operandType = SegmentOperandValueEnum.LOWER_VALUE;\n operandValue = this.extractOperandValue(operand, SegmentOperandRegexEnum.LOWER_MATCH);\n } else if (matchWithRegex(operand, SegmentOperandRegexEnum.WILDCARD_MATCH)) {\n operandValue = this.extractOperandValue(operand, SegmentOperandRegexEnum.WILDCARD_MATCH);\n const startingStar = matchWithRegex(operandValue, SegmentOperandRegexEnum.STARTING_STAR);\n const endingStar = matchWithRegex(operandValue, SegmentOperandRegexEnum.ENDING_STAR);\n // Determine specific wildcard type\n if (startingStar && endingStar) {\n operandType = SegmentOperandValueEnum.STARTING_ENDING_STAR_VALUE;\n } else if (startingStar) {\n operandType = SegmentOperandValueEnum.STARTING_STAR_VALUE;\n } else if (endingStar) {\n operandType = SegmentOperandValueEnum.ENDING_STAR_VALUE;\n }\n // Remove wildcard characters from the operand value\n operandValue = operandValue\n .replace(new RegExp(SegmentOperandRegexEnum.STARTING_STAR), '')\n .replace(new RegExp(SegmentOperandRegexEnum.ENDING_STAR), '');\n } else if (matchWithRegex(operand, SegmentOperandRegexEnum.REGEX_MATCH)) {\n operandType = SegmentOperandValueEnum.REGEX_VALUE;\n operandValue = this.extractOperandValue(operand, SegmentOperandRegexEnum.REGEX_MATCH);\n } else if (matchWithRegex(operand, SegmentOperandRegexEnum.GREATER_THAN_MATCH)) {\n operandType = SegmentOperandValueEnum.GREATER_THAN_VALUE;\n operandValue = this.extractOperandValue(operand, SegmentOperandRegexEnum.GREATER_THAN_MATCH);\n } else if (matchWithRegex(operand, SegmentOperandRegexEnum.GREATER_THAN_EQUAL_TO_MATCH)) {\n operandType = SegmentOperandValueEnum.GREATER_THAN_EQUAL_TO_VALUE;\n operandValue = this.extractOperandValue(operand, SegmentOperandRegexEnum.GREATER_THAN_EQUAL_TO_MATCH);\n } else if (matchWithRegex(operand, SegmentOperandRegexEnum.LESS_THAN_MATCH)) {\n operandType = SegmentOperandValueEnum.LESS_THAN_VALUE;\n operandValue = this.extractOperandValue(operand, SegmentOperandRegexEnum.LESS_THAN_MATCH);\n } else if (matchWithRegex(operand, SegmentOperandRegexEnum.LESS_THAN_EQUAL_TO_MATCH)) {\n operandType = SegmentOperandValueEnum.LESS_THAN_EQUAL_TO_VALUE;\n operandValue = this.extractOperandValue(operand, SegmentOperandRegexEnum.LESS_THAN_EQUAL_TO_MATCH);\n } else {\n operandType = SegmentOperandValueEnum.EQUAL_VALUE;\n operandValue = operand;\n }\n return {\n operandType,\n operandValue,\n };\n }\n\n /**\n * Extracts the operand value from a string based on a specified regex pattern.\n * @param {any} operand - The operand string to extract from.\n * @param {string} regex - The regex pattern to use for extraction.\n * @returns {string} - The extracted value.\n */\n extractOperandValue(operand: any, regex: string): string {\n // Match operand with regex and return the first capturing group\n return matchWithRegex(operand, regex) && matchWithRegex(operand, regex)[1];\n }\n\n /**\n * Processes numeric values from operand and tag values, converting them to strings.\n * @param {any} operandValue - The operand value to process.\n * @param {any} tagValue - The tag value to process.\n * @returns {Record} - An object containing the processed operand and tag values as strings.\n */\n processValues(operandValue: any, tagValue: any): Record {\n // Convert operand and tag values to floats\n const processedOperandValue = parseFloat(operandValue);\n const processedTagValue = parseFloat(tagValue);\n // Return original values if conversion fails\n if (!processedOperandValue || !processedTagValue) {\n return {\n operandValue: operandValue,\n tagValue: tagValue,\n };\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 // if (processedOperandValue === Math.floor(processedOperandValue)) {\n // processedOperandValue = parseInt(processedOperandValue, 10);\n // }\n // if (processedTagValue === Math.floor(processedTagValue)) {\n // processedTagValue = parseInt(processedTagValue, 10);\n // }\n // Convert numeric values back to strings\n return {\n operandValue: processedOperandValue.toString(),\n tagValue: processedTagValue.toString(),\n };\n }\n\n /**\n * Extracts the result of the evaluation based on the operand type and values.\n * @param {SegmentOperandValueEnum} operandType - The type of the operand.\n * @param {any} operandValue - The value of the operand.\n * @param {any} tagValue - The value of the tag to compare against.\n * @returns {boolean} - The result of the evaluation.\n */\n extractResult(operandType: SegmentOperandValueEnum, operandValue: any, tagValue: any): boolean {\n let result: boolean;\n\n switch (operandType) {\n case SegmentOperandValueEnum.LOWER_VALUE:\n // Check if both values are equal, ignoring case\n if (tagValue !== null) {\n result = operandValue.toLowerCase() === tagValue.toLowerCase();\n }\n break;\n case SegmentOperandValueEnum.STARTING_ENDING_STAR_VALUE:\n // Check if the tagValue contains the operandValue\n if (tagValue !== null) {\n result = tagValue.indexOf(operandValue) > -1;\n }\n break;\n case SegmentOperandValueEnum.STARTING_STAR_VALUE:\n // Check if the tagValue ends with the operandValue\n if (tagValue !== null) {\n result = tagValue.endsWith(operandValue);\n }\n break;\n case SegmentOperandValueEnum.ENDING_STAR_VALUE:\n // Check if the tagValue starts with the operandValue\n if (tagValue !== null) {\n result = tagValue.startsWith(operandValue);\n }\n break;\n case SegmentOperandValueEnum.REGEX_VALUE:\n // Evaluate the tagValue against the regex pattern of operandValue\n try {\n const pattern = new RegExp(operandValue, 'g');\n result = !!pattern.test(tagValue);\n } catch (err) {\n result = false;\n }\n break;\n case SegmentOperandValueEnum.GREATER_THAN_VALUE:\n if (tagValue !== null) {\n try {\n result = parseFloat(operandValue) < parseFloat(tagValue);\n } catch (err) {\n result = false;\n }\n }\n break;\n case SegmentOperandValueEnum.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 break;\n case SegmentOperandValueEnum.LESS_THAN_VALUE:\n if (tagValue !== null) {\n try {\n result = parseFloat(operandValue) > parseFloat(tagValue);\n } catch (err) {\n result = false;\n }\n }\n break;\n case SegmentOperandValueEnum.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 break;\n default:\n // Check if the tagValue is exactly equal to the operandValue\n result = tagValue === operandValue;\n }\n\n return result;\n }\n}\n","/**\n * Copyright 2024 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 */\nexport { SegmentationManager } from './core/SegmentationManger';\nexport { SegmentEvaluator } from './evaluators/SegmentEvaluator';\nexport { Segmentation } from './Segmentation';\n","/**\n * Copyright 2024 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 */\nimport { isObject } from '../../../utils/DataTypeUtil';\n\n/**\n * Extracts the first key-value pair from the provided object.\n * @param {Record} obj - The object from which to extract the key-value pair.\n * @returns {Record | undefined} An object containing the first key and value, or undefined if input is not an object.\n */\nexport function getKeyValue(obj: Record): Record | undefined {\n // Check if the input is a valid object using isObject utility function\n if (!isObject(obj)) {\n return;\n }\n\n // Extract the first key from the object\n const key = Object.keys(obj)[0];\n // Retrieve the value associated with the first key\n const value = obj[key];\n // Return an object containing the key and value\n return {\n key,\n value,\n };\n}\n\n/**\n * Matches a string against a regular expression and returns the match result.\n * @param {string} string - The string to match against the regex.\n * @param {string} regex - The regex pattern as a string.\n * @returns {RegExpMatchArray | null} The results of the regex match, or null if an error occurs.\n */\nexport function matchWithRegex(string: string, regex: string): RegExpMatchArray | null {\n try {\n // Attempt to match the string with the regex\n return string.match(new RegExp(regex));\n } catch (err) {\n // Return null if an error occurs during regex matching\n return null;\n }\n}\n","/**\n * Copyright 2024 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 */\nimport { dynamic } from '../../types/Common';\n\nexport abstract class Connector {\n // abstract connect(_config: Record): this;\n\n abstract set(_key: string, _data: dynamic): void | Promise;\n\n abstract get(_key: string): this | Promise;\n\n // abstract getAll(): Record | Promise>>;\n\n // abstract getKeys(): string[] | Promise;\n\n // abstract has(_key: string): boolean | Promise;\n\n // abstract hasData(): boolean | Promise;\n\n // abstract update(_key: string, _data: dynamic, ttl: number): Promise;\n\n // abstract remove(_key: string): this | Promise;\n\n // abstract clear(): this | Promise;\n\n // abstract close(): this; // TODO: stop\n}\n","/**\n * Copyright 2024 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 */\nimport { Connector } from './Connector';\n\n// TODO: move to file\n// enum ConnectorEnum {\n// MEMORY = 'memory',\n// REDIS = 'redis'\n// }\n\nexport class Storage {\n public static instance: Storage;\n public connector: Connector | Record; // RedisConnector |\n // public storageType: dynamic;\n\n public attachConnector(connector: any): any {\n if (connector?.prototype?.constructor?.toString()?.trim()?.substring(0, 5) === 'class') {\n this.connector = new connector();\n } else {\n this.connector = connector;\n }\n\n return this.connector;\n }\n\n public static get Instance(): Storage {\n this.instance = this.instance || new Storage();\n\n return this.instance;\n }\n\n public getConnector(): any {\n return this.connector;\n }\n}\n","/**\n * Copyright 2024 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 */\nexport { Storage } from './Storage';\n","/**\n * Copyright 2024 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 */\nimport { DecisionMaker } from '../packages/decision-maker';\nimport { LogManager } from '../packages/logger';\nimport { SegmentationManager } from '../packages/segmentation-evaluator';\n\nimport { Constants } from '../constants';\nimport { VariationModel } from '../models/campaign/VariationModel';\n\nimport { CampaignTypeEnum } from '../enums/CampaignTypeEnum';\nimport { DebugLogMessagesEnum, InfoLogMessagesEnum } from '../enums/log-messages';\nimport { CampaignModel } from '../models/campaign/CampaignModel';\nimport { ContextModel } from '../models/user/ContextModel';\nimport { isObject } from '../utils/DataTypeUtil';\nimport { buildMessage } from '../utils/LogMessageUtil';\n\ninterface ICampaignDecisionService {\n isUserPartOfCampaign(userId: any, campaign: CampaignModel): boolean;\n getVariation(variations: Array, bucketValue: number): VariationModel;\n checkInRange(variation: VariationModel, bucketValue: number): VariationModel;\n bucketUserToVariation(userId: any, accountId: any, campaign: CampaignModel): VariationModel;\n getPreSegmentationDecision(campaign: CampaignModel, context: ContextModel): Promise;\n getVariationAlloted(userId: any, accountId: any, campaign: CampaignModel): VariationModel;\n}\n\nexport class CampaignDecisionService implements ICampaignDecisionService {\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(userId: any, campaign: CampaignModel): boolean {\n // if (!ValidateUtil.isValidValue(userId) || !campaign) {\n // return false;\n // }\n\n if (!campaign || !userId) {\n return false;\n }\n let trafficAllocation;\n if (campaign.getType() === CampaignTypeEnum.ROLLOUT || campaign.getType() === CampaignTypeEnum.PERSONALIZE) {\n trafficAllocation = campaign.getVariations()[0].getWeight();\n } else {\n trafficAllocation = campaign.getTraffic();\n }\n const valueAssignedToUser = new DecisionMaker().getBucketValueForUser(`${campaign.getId()}_${userId}`);\n const isUserPart = valueAssignedToUser !== 0 && valueAssignedToUser <= trafficAllocation;\n\n LogManager.Instance.info(\n buildMessage(InfoLogMessagesEnum.USER_PART_OF_CAMPAIGN, {\n userId,\n notPart: isUserPart ? '' : 'not',\n campaignKey:\n campaign.getType() === CampaignTypeEnum.AB\n ? campaign.getKey()\n : campaign.getName() + '_' + campaign.getRuleKey(),\n }),\n );\n\n return isUserPart;\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(variations: Array, bucketValue: number): VariationModel {\n for (let i = 0; i < variations.length; i++) {\n const variation = variations[i];\n if (bucketValue >= variation.getStartRangeVariation() && bucketValue <= variation.getEndRangeVariation()) {\n return variation;\n }\n }\n\n return null;\n }\n\n checkInRange(variation: VariationModel, bucketValue: number): VariationModel {\n if (bucketValue >= variation.getStartRangeVariation() && bucketValue <= variation.getEndRangeVariation()) {\n return variation;\n }\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(userId: any, accountId: any, campaign: CampaignModel): VariationModel {\n let multiplier;\n\n if (!campaign || !userId) {\n return null;\n }\n\n if (campaign.getTraffic()) {\n multiplier = 1;\n }\n\n const percentTraffic = campaign.getTraffic();\n const hashValue = new DecisionMaker().generateHashValue(`${campaign.getId()}_${accountId}_${userId}`);\n const bucketValue = new DecisionMaker().generateBucketValue(hashValue, Constants.MAX_TRAFFIC_VALUE, multiplier);\n\n LogManager.Instance.debug(\n buildMessage(DebugLogMessagesEnum.USER_BUCKET_TO_VARIATION, {\n userId,\n campaignKey: campaign.getKey(),\n percentTraffic,\n bucketValue,\n hashValue,\n }),\n );\n\n return this.getVariation(campaign.getVariations(), bucketValue);\n }\n\n async getPreSegmentationDecision(campaign: CampaignModel, context: ContextModel): Promise {\n // validate segmentation\n const campaignType = campaign.getType();\n let segments = {};\n\n if (campaignType === CampaignTypeEnum.ROLLOUT || campaignType === CampaignTypeEnum.PERSONALIZE) {\n segments = campaign.getVariations()[0].getSegments();\n } else if (campaignType === CampaignTypeEnum.AB) {\n segments = campaign.getSegments();\n }\n if (isObject(segments) && !Object.keys(segments).length) {\n LogManager.Instance.info(\n buildMessage(InfoLogMessagesEnum.SEGMENTATION_SKIP, {\n userId: context.getId(),\n campaignKey:\n campaign.getType() === CampaignTypeEnum.AB\n ? campaign.getKey()\n : campaign.getName() + '_' + campaign.getRuleKey(),\n }),\n );\n\n return true;\n } else {\n const preSegmentationResult = await SegmentationManager.Instance.validateSegmentation(\n segments,\n context.getCustomVariables(),\n );\n\n if (!preSegmentationResult) {\n LogManager.Instance.info(\n buildMessage(InfoLogMessagesEnum.SEGMENTATION_STATUS, {\n userId: context.getId(),\n campaignKey:\n campaign.getType() === CampaignTypeEnum.AB\n ? campaign.getKey()\n : campaign.getName() + '_' + campaign.getRuleKey(),\n status: 'failed',\n }),\n );\n\n return false;\n }\n\n LogManager.Instance.info(\n buildMessage(InfoLogMessagesEnum.SEGMENTATION_STATUS, {\n userId: context.getId(),\n campaignKey:\n campaign.getType() === CampaignTypeEnum.AB\n ? campaign.getKey()\n : campaign.getName() + '_' + campaign.getRuleKey(),\n status: 'passed',\n }),\n );\n\n return true;\n }\n }\n\n getVariationAlloted(userId: any, accountId: any, campaign: CampaignModel): VariationModel {\n const isUserPart = this.isUserPartOfCampaign(userId, campaign);\n if (campaign.getType() === CampaignTypeEnum.ROLLOUT || campaign.getType() === CampaignTypeEnum.PERSONALIZE) {\n if (isUserPart) {\n return campaign.getVariations()[0];\n } else {\n return null;\n }\n } else {\n if (isUserPart) {\n return this.bucketUserToVariation(userId, accountId, campaign);\n } else {\n return null;\n }\n }\n }\n}\n","/**\n * Copyright 2024 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 */\nimport { IVWOOptions } from '../models/VWOOptionsModel';\nimport { isFunction } from '../utils/DataTypeUtil';\n\nexport interface IHooksService {\n execute(properties: Record): void;\n set(properties: Record): void;\n get(): Record