vwo-fme-node-sdk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (385) hide show
  1. package/CONTRIBUTING.md +46 -0
  2. package/LICENSE +202 -0
  3. package/NOTICE +18 -0
  4. package/README.md +52 -0
  5. package/dist/VWO.d.ts +9 -0
  6. package/dist/VWO.js +100 -0
  7. package/dist/VWO.js.map +1 -0
  8. package/dist/VWOBuilder.d.ts +48 -0
  9. package/dist/VWOBuilder.js +173 -0
  10. package/dist/VWOBuilder.js.map +1 -0
  11. package/dist/VWOClient.d.ts +20 -0
  12. package/dist/VWOClient.js +249 -0
  13. package/dist/VWOClient.js.map +1 -0
  14. package/dist/api/GetFlag.d.ts +19 -0
  15. package/dist/api/GetFlag.js +394 -0
  16. package/dist/api/GetFlag.js.map +1 -0
  17. package/dist/api/GetVariable.d.ts +0 -0
  18. package/dist/api/GetVariable.js +1 -0
  19. package/dist/api/GetVariable.js.map +1 -0
  20. package/dist/api/GetVariables.d.ts +0 -0
  21. package/dist/api/GetVariables.js +1 -0
  22. package/dist/api/GetVariables.js.map +1 -0
  23. package/dist/api/SetAttribute.d.ts +7 -0
  24. package/dist/api/SetAttribute.js +62 -0
  25. package/dist/api/SetAttribute.js.map +1 -0
  26. package/dist/api/Track.js +76 -0
  27. package/dist/api/Track.js.map +1 -0
  28. package/dist/api/TrackEvent.d.ts +8 -0
  29. package/dist/api/TrackEvent.js +78 -0
  30. package/dist/api/TrackEvent.js.map +1 -0
  31. package/dist/constants/index.d.ts +24 -0
  32. package/dist/constants/index.js +31 -0
  33. package/dist/constants/index.js.map +1 -0
  34. package/dist/constants/url.d.ts +6 -0
  35. package/dist/constants/url.js +10 -0
  36. package/dist/constants/url.js.map +1 -0
  37. package/dist/decision-maker/index.js +75 -0
  38. package/dist/decision-maker/index.js.map +1 -0
  39. package/dist/decorators/StorageDecorator.d.ts +12 -0
  40. package/dist/decorators/StorageDecorator.js +119 -0
  41. package/dist/decorators/StorageDecorator.js.map +1 -0
  42. package/dist/enums/ApiEnum.d.ts +4 -0
  43. package/dist/enums/ApiEnum.js +9 -0
  44. package/dist/enums/ApiEnum.js.map +1 -0
  45. package/dist/enums/EventEnum.d.ts +4 -0
  46. package/dist/enums/EventEnum.js +9 -0
  47. package/dist/enums/EventEnum.js.map +1 -0
  48. package/dist/enums/HeadersEnum.d.ts +4 -0
  49. package/dist/enums/HeadersEnum.js +9 -0
  50. package/dist/enums/HeadersEnum.js.map +1 -0
  51. package/dist/enums/HooksEnum.d.ts +7 -0
  52. package/dist/enums/HooksEnum.js +8 -0
  53. package/dist/enums/HooksEnum.js.map +1 -0
  54. package/dist/enums/LogLevelEnum.d.ts +7 -0
  55. package/dist/enums/LogLevelEnum.js +12 -0
  56. package/dist/enums/LogLevelEnum.js.map +1 -0
  57. package/dist/enums/StatusEnum.d.ts +4 -0
  58. package/dist/enums/StorageEnum.d.ts +8 -0
  59. package/dist/enums/StorageEnum.js +13 -0
  60. package/dist/enums/StorageEnum.js.map +1 -0
  61. package/dist/enums/UrlEnum.d.ts +13 -0
  62. package/dist/enums/UrlEnum.js +18 -0
  63. package/dist/enums/UrlEnum.js.map +1 -0
  64. package/dist/enums/campaignTypeEnum.d.ts +5 -0
  65. package/dist/enums/campaignTypeEnum.js +10 -0
  66. package/dist/enums/campaignTypeEnum.js.map +1 -0
  67. package/dist/enums/logMessages/DbugLogMessageEnum.js +1 -0
  68. package/dist/enums/logMessages/DbugLogMessageEnum.js.map +1 -0
  69. package/dist/enums/logMessages/DebugLogMessageEnum.d.ts +3 -0
  70. package/dist/enums/logMessages/ErorLogMessageEnum.js +1 -0
  71. package/dist/enums/logMessages/ErorLogMessageEnum.js.map +1 -0
  72. package/dist/enums/logMessages/ErrorLogMessageEnum.d.ts +3 -0
  73. package/dist/enums/logMessages/debugLogMessageEnum.js +8 -0
  74. package/dist/enums/logMessages/debugLogMessageEnum.js.map +1 -0
  75. package/dist/enums/logMessages/errorLogMessageEnum.js +8 -0
  76. package/dist/enums/logMessages/errorLogMessageEnum.js.map +1 -0
  77. package/dist/enums/statusEnum.js +9 -0
  78. package/dist/enums/statusEnum.js.map +1 -0
  79. package/dist/index.d.ts +1 -0
  80. package/dist/index.js +7 -0
  81. package/dist/index.js.map +1 -0
  82. package/dist/logger/core/logManager.js +97 -0
  83. package/dist/logger/core/logManager.js.map +1 -0
  84. package/dist/logger/core/transportManager.js +60 -0
  85. package/dist/logger/core/transportManager.js.map +1 -0
  86. package/dist/logger/enums/logLevelEnum.js +12 -0
  87. package/dist/logger/enums/logLevelEnum.js.map +1 -0
  88. package/dist/logger/index.js +8 -0
  89. package/dist/logger/index.js.map +1 -0
  90. package/dist/logger/logMessageBuilder.js +43 -0
  91. package/dist/logger/logMessageBuilder.js.map +1 -0
  92. package/dist/logger/logger.js +10 -0
  93. package/dist/logger/logger.js.map +1 -0
  94. package/dist/logger/transports/consoleTransport.js +32 -0
  95. package/dist/logger/transports/consoleTransport.js.map +1 -0
  96. package/dist/models/CampaignModel.d.ts +32 -0
  97. package/dist/models/CampaignModel.js +149 -0
  98. package/dist/models/CampaignModel.js.map +1 -0
  99. package/dist/models/FeatureModel.d.ts +20 -0
  100. package/dist/models/FeatureModel.js +72 -0
  101. package/dist/models/FeatureModel.js.map +1 -0
  102. package/dist/models/ImpactCampaignModel.d.ts +7 -0
  103. package/dist/models/ImpactCampaignModel.js +21 -0
  104. package/dist/models/ImpactCampaignModel.js.map +1 -0
  105. package/dist/models/MetricModel.d.ts +12 -0
  106. package/dist/models/MetricModel.js +25 -0
  107. package/dist/models/MetricModel.js.map +1 -0
  108. package/dist/models/RuleModel.d.ts +11 -0
  109. package/dist/models/RuleModel.js +29 -0
  110. package/dist/models/RuleModel.js.map +1 -0
  111. package/dist/models/SettingsModel.d.ts +28 -0
  112. package/dist/models/SettingsModel.js +70 -0
  113. package/dist/models/SettingsModel.js.map +1 -0
  114. package/dist/models/VariableModel.d.ts +18 -0
  115. package/dist/models/VariableModel.js +38 -0
  116. package/dist/models/VariableModel.js.map +1 -0
  117. package/dist/models/VariationModel.d.ts +29 -0
  118. package/dist/models/VariationModel.js +80 -0
  119. package/dist/models/VariationModel.js.map +1 -0
  120. package/dist/models/schemas/SettingsSchemaValidation.d.ts +13 -0
  121. package/dist/models/schemas/SettingsSchemaValidation.js +70 -0
  122. package/dist/models/schemas/SettingsSchemaValidation.js.map +1 -0
  123. package/dist/modules/decision-maker/index.d.ts +38 -0
  124. package/dist/modules/decision-maker/index.js +67 -0
  125. package/dist/modules/decision-maker/index.js.map +1 -0
  126. package/dist/modules/logger/core/logManager.d.ts +40 -0
  127. package/dist/modules/logger/core/logManager.js +97 -0
  128. package/dist/modules/logger/core/logManager.js.map +1 -0
  129. package/dist/modules/logger/core/transportManager.d.ts +22 -0
  130. package/dist/modules/logger/core/transportManager.js +60 -0
  131. package/dist/modules/logger/core/transportManager.js.map +1 -0
  132. package/dist/modules/logger/enums/logLevelEnum.d.ts +7 -0
  133. package/dist/modules/logger/enums/logLevelEnum.js +12 -0
  134. package/dist/modules/logger/enums/logLevelEnum.js.map +1 -0
  135. package/dist/modules/logger/index.d.ts +2 -0
  136. package/dist/modules/logger/index.js +8 -0
  137. package/dist/modules/logger/index.js.map +1 -0
  138. package/dist/modules/logger/logMessageBuilder.d.ts +21 -0
  139. package/dist/modules/logger/logMessageBuilder.js +43 -0
  140. package/dist/modules/logger/logMessageBuilder.js.map +1 -0
  141. package/dist/modules/logger/logger.d.ts +7 -0
  142. package/dist/modules/logger/logger.js +10 -0
  143. package/dist/modules/logger/logger.js.map +1 -0
  144. package/dist/modules/logger/transports/consoleTransport.d.ts +12 -0
  145. package/dist/modules/logger/transports/consoleTransport.js +32 -0
  146. package/dist/modules/logger/transports/consoleTransport.js.map +1 -0
  147. package/dist/modules/networking/client/networkClient.d.ts +7 -0
  148. package/dist/modules/networking/client/networkClient.js +117 -0
  149. package/dist/modules/networking/client/networkClient.js.map +1 -0
  150. package/dist/modules/networking/client/networkClientInterface.d.ts +6 -0
  151. package/dist/modules/networking/client/networkClientInterface.js +3 -0
  152. package/dist/modules/networking/client/networkClientInterface.js.map +1 -0
  153. package/dist/modules/networking/handlers/requestHandler.d.ts +5 -0
  154. package/dist/modules/networking/handlers/requestHandler.js +29 -0
  155. package/dist/modules/networking/handlers/requestHandler.js.map +1 -0
  156. package/dist/modules/networking/index.d.ts +6 -0
  157. package/dist/modules/networking/index.js +14 -0
  158. package/dist/modules/networking/index.js.map +1 -0
  159. package/dist/modules/networking/manager/networkManager.d.ts +16 -0
  160. package/dist/modules/networking/manager/networkManager.js +72 -0
  161. package/dist/modules/networking/manager/networkManager.js.map +1 -0
  162. package/dist/modules/networking/models/globalRequestModel.d.ts +22 -0
  163. package/dist/modules/networking/models/globalRequestModel.js +51 -0
  164. package/dist/modules/networking/models/globalRequestModel.js.map +1 -0
  165. package/dist/modules/networking/models/requestModel.d.ts +32 -0
  166. package/dist/modules/networking/models/requestModel.js +128 -0
  167. package/dist/modules/networking/models/requestModel.js.map +1 -0
  168. package/dist/modules/networking/models/responseModel.d.ts +15 -0
  169. package/dist/modules/networking/models/responseModel.js +34 -0
  170. package/dist/modules/networking/models/responseModel.js.map +1 -0
  171. package/dist/modules/segmentor/core/segmentationManger.d.ts +10 -0
  172. package/dist/modules/segmentor/core/segmentationManger.js +68 -0
  173. package/dist/modules/segmentor/core/segmentationManger.js.map +1 -0
  174. package/dist/modules/segmentor/enums/segmentOperandRegexEnum.d.ts +10 -0
  175. package/dist/modules/segmentor/enums/segmentOperandRegexEnum.js +15 -0
  176. package/dist/modules/segmentor/enums/segmentOperandRegexEnum.js.map +1 -0
  177. package/dist/modules/segmentor/enums/segmentOperandValueEnum.d.ts +8 -0
  178. package/dist/modules/segmentor/enums/segmentOperandValueEnum.js +13 -0
  179. package/dist/modules/segmentor/enums/segmentOperandValueEnum.js.map +1 -0
  180. package/dist/modules/segmentor/enums/segmentOperatorValueEnum.d.ts +15 -0
  181. package/dist/modules/segmentor/enums/segmentOperatorValueEnum.js +20 -0
  182. package/dist/modules/segmentor/enums/segmentOperatorValueEnum.js.map +1 -0
  183. package/dist/modules/segmentor/evaluators/segmentEvaluator.d.ts +15 -0
  184. package/dist/modules/segmentor/evaluators/segmentEvaluator.js +379 -0
  185. package/dist/modules/segmentor/evaluators/segmentEvaluator.js.map +1 -0
  186. package/dist/modules/segmentor/evaluators/segmentOperandEvaluator.d.ts +12 -0
  187. package/dist/modules/segmentor/evaluators/segmentOperandEvaluator.js +248 -0
  188. package/dist/modules/segmentor/evaluators/segmentOperandEvaluator.js.map +1 -0
  189. package/dist/modules/segmentor/index.d.ts +3 -0
  190. package/dist/modules/segmentor/index.js +8 -0
  191. package/dist/modules/segmentor/index.js.map +1 -0
  192. package/dist/modules/segmentor/segmentation.d.ts +5 -0
  193. package/dist/modules/segmentor/segmentation.js +3 -0
  194. package/dist/modules/segmentor/segmentation.js.map +1 -0
  195. package/dist/modules/segmentor/utils/SegmentUtil.d.ts +2 -0
  196. package/dist/modules/segmentor/utils/SegmentUtil.js +26 -0
  197. package/dist/modules/segmentor/utils/SegmentUtil.js.map +1 -0
  198. package/dist/modules/storage/connector.d.ts +14 -0
  199. package/dist/modules/storage/connector.js +10 -0
  200. package/dist/modules/storage/connector.js.map +1 -0
  201. package/dist/modules/storage/connectors/index.d.ts +0 -0
  202. package/dist/modules/storage/connectors/index.js +3 -0
  203. package/dist/modules/storage/connectors/index.js.map +1 -0
  204. package/dist/modules/storage/connectors/memoryConnector.d.ts +26 -0
  205. package/dist/modules/storage/connectors/memoryConnector.js +103 -0
  206. package/dist/modules/storage/connectors/memoryConnector.js.map +1 -0
  207. package/dist/modules/storage/connectors/redisConnector.d.ts +0 -0
  208. package/dist/modules/storage/connectors/redisConnector.js +181 -0
  209. package/dist/modules/storage/connectors/redisConnector.js.map +1 -0
  210. package/dist/modules/storage/index.d.ts +1 -0
  211. package/dist/modules/storage/index.js +6 -0
  212. package/dist/modules/storage/index.js.map +1 -0
  213. package/dist/modules/storage/storage.d.ts +10 -0
  214. package/dist/modules/storage/storage.js +50 -0
  215. package/dist/modules/storage/storage.js.map +1 -0
  216. package/dist/networking/client/networkClient.js +117 -0
  217. package/dist/networking/client/networkClient.js.map +1 -0
  218. package/dist/networking/client/networkClientInterface.js +3 -0
  219. package/dist/networking/client/networkClientInterface.js.map +1 -0
  220. package/dist/networking/handlers/requestHandler.js +29 -0
  221. package/dist/networking/handlers/requestHandler.js.map +1 -0
  222. package/dist/networking/index.js +14 -0
  223. package/dist/networking/index.js.map +1 -0
  224. package/dist/networking/manager/networkManager.js +72 -0
  225. package/dist/networking/manager/networkManager.js.map +1 -0
  226. package/dist/networking/models/globalRequestModel.js +51 -0
  227. package/dist/networking/models/globalRequestModel.js.map +1 -0
  228. package/dist/networking/models/requestModel.js +107 -0
  229. package/dist/networking/models/requestModel.js.map +1 -0
  230. package/dist/networking/models/responseModel.js +34 -0
  231. package/dist/networking/models/responseModel.js.map +1 -0
  232. package/dist/segmentor/core/segmentationManger.js +25 -0
  233. package/dist/segmentor/core/segmentationManger.js.map +1 -0
  234. package/dist/segmentor/enums/segmentOperandRegexEnum.js +15 -0
  235. package/dist/segmentor/enums/segmentOperandRegexEnum.js.map +1 -0
  236. package/dist/segmentor/enums/segmentOperandValueEnum.js +13 -0
  237. package/dist/segmentor/enums/segmentOperandValueEnum.js.map +1 -0
  238. package/dist/segmentor/enums/segmentOperatorValueEnum.js +12 -0
  239. package/dist/segmentor/enums/segmentOperatorValueEnum.js.map +1 -0
  240. package/dist/segmentor/evaluators/segmentEvaluator.js +52 -0
  241. package/dist/segmentor/evaluators/segmentEvaluator.js.map +1 -0
  242. package/dist/segmentor/evaluators/segmentOperandEvaluator.js +158 -0
  243. package/dist/segmentor/evaluators/segmentOperandEvaluator.js.map +1 -0
  244. package/dist/segmentor/index.js +8 -0
  245. package/dist/segmentor/index.js.map +1 -0
  246. package/dist/segmentor/segmentation.js +3 -0
  247. package/dist/segmentor/segmentation.js.map +1 -0
  248. package/dist/segmentor/utils/SegmentUtil.js +27 -0
  249. package/dist/segmentor/utils/SegmentUtil.js.map +1 -0
  250. package/dist/services/CampaignDecisionService.d.ts +44 -0
  251. package/dist/services/CampaignDecisionService.js +175 -0
  252. package/dist/services/CampaignDecisionService.js.map +1 -0
  253. package/dist/services/HooksManager.d.ts +27 -0
  254. package/dist/services/HooksManager.js +40 -0
  255. package/dist/services/HooksManager.js.map +1 -0
  256. package/dist/services/SettingsManager.d.ts +21 -0
  257. package/dist/services/SettingsManager.js +168 -0
  258. package/dist/services/SettingsManager.js.map +1 -0
  259. package/dist/services/StorageService.d.ts +5 -0
  260. package/dist/services/StorageService.js +94 -0
  261. package/dist/services/StorageService.js.map +1 -0
  262. package/dist/services/UrlService.d.ts +13 -0
  263. package/dist/services/UrlService.js +37 -0
  264. package/dist/services/UrlService.js.map +1 -0
  265. package/dist/types/common.d.ts +2 -0
  266. package/dist/types/common.js +3 -0
  267. package/dist/types/common.js.map +1 -0
  268. package/dist/utils/CampaignUtil.d.ts +23 -0
  269. package/dist/utils/CampaignUtil.js +228 -0
  270. package/dist/utils/CampaignUtil.js.map +1 -0
  271. package/dist/utils/DataTypeUtil.d.ts +17 -0
  272. package/dist/utils/DataTypeUtil.js +86 -0
  273. package/dist/utils/DataTypeUtil.js.map +1 -0
  274. package/dist/utils/DecisionUtil.d.ts +4 -0
  275. package/dist/utils/DecisionUtil.js +197 -0
  276. package/dist/utils/DecisionUtil.js.map +1 -0
  277. package/dist/utils/FunctionUtil.d.ts +13 -0
  278. package/dist/utils/FunctionUtil.js +121 -0
  279. package/dist/utils/FunctionUtil.js.map +1 -0
  280. package/dist/utils/LogMessageUtil.d.ts +16 -0
  281. package/dist/utils/LogMessageUtil.js +53 -0
  282. package/dist/utils/LogMessageUtil.js.map +1 -0
  283. package/dist/utils/MegUtil.d.ts +7 -0
  284. package/dist/utils/MegUtil.js +413 -0
  285. package/dist/utils/MegUtil.js.map +1 -0
  286. package/dist/utils/NetworkUtil.d.ts +140 -0
  287. package/dist/utils/NetworkUtil.js +238 -0
  288. package/dist/utils/NetworkUtil.js.map +1 -0
  289. package/dist/utils/PromiseUtil.d.ts +1 -0
  290. package/dist/utils/PromiseUtil.js +13 -0
  291. package/dist/utils/PromiseUtil.js.map +1 -0
  292. package/dist/utils/SettingsUtil.d.ts +2 -0
  293. package/dist/utils/SettingsUtil.js +17 -0
  294. package/dist/utils/SettingsUtil.js.map +1 -0
  295. package/dist/utils/UuidUtil.d.ts +2 -0
  296. package/dist/utils/UuidUtil.js +30 -0
  297. package/dist/utils/UuidUtil.js.map +1 -0
  298. package/dist/utils/WebServiceUtil.d.ts +4 -0
  299. package/dist/utils/WebServiceUtil.js +93 -0
  300. package/dist/utils/WebServiceUtil.js.map +1 -0
  301. package/dist/utils/logMessageBuilder.d.ts +21 -0
  302. package/dist/utils/logMessageBuilder.js +43 -0
  303. package/dist/utils/logMessageBuilder.js.map +1 -0
  304. package/lib/VWO.ts +55 -0
  305. package/lib/VWOBuilder.ts +237 -0
  306. package/lib/VWOClient.ts +321 -0
  307. package/lib/api/GetFlag.ts +458 -0
  308. package/lib/api/GetVariable.ts +0 -0
  309. package/lib/api/GetVariables.ts +0 -0
  310. package/lib/api/SetAttribute.ts +33 -0
  311. package/lib/api/TrackEvent.ts +52 -0
  312. package/lib/constants/index.ts +35 -0
  313. package/lib/constants/url.ts +7 -0
  314. package/lib/decorators/StorageDecorator.ts +98 -0
  315. package/lib/enums/ApiEnum.ts +4 -0
  316. package/lib/enums/EventEnum.ts +4 -0
  317. package/lib/enums/HeadersEnum.ts +4 -0
  318. package/lib/enums/HooksEnum.ts +11 -0
  319. package/lib/enums/LogLevelEnum.ts +7 -0
  320. package/lib/enums/StatusEnum.ts +4 -0
  321. package/lib/enums/StorageEnum.ts +8 -0
  322. package/lib/enums/UrlEnum.ts +13 -0
  323. package/lib/enums/campaignTypeEnum.ts +5 -0
  324. package/lib/enums/logMessages/DebugLogMessageEnum.ts +3 -0
  325. package/lib/enums/logMessages/ErrorLogMessageEnum.ts +3 -0
  326. package/lib/index.ts +1 -0
  327. package/lib/models/CampaignModel.ts +176 -0
  328. package/lib/models/FeatureModel.ts +81 -0
  329. package/lib/models/ImpactCampaignModel.ts +20 -0
  330. package/lib/models/MetricModel.ts +31 -0
  331. package/lib/models/RuleModel.ts +35 -0
  332. package/lib/models/SettingsModel.ts +95 -0
  333. package/lib/models/VariableModel.ts +51 -0
  334. package/lib/models/VariationModel.ts +101 -0
  335. package/lib/models/schemas/SettingsSchemaValidation.ts +83 -0
  336. package/lib/modules/decision-maker/index.ts +65 -0
  337. package/lib/modules/logger/core/logManager.ts +113 -0
  338. package/lib/modules/logger/core/transportManager.ts +76 -0
  339. package/lib/modules/logger/enums/logLevelEnum.ts +7 -0
  340. package/lib/modules/logger/index.ts +2 -0
  341. package/lib/modules/logger/logMessageBuilder.ts +60 -0
  342. package/lib/modules/logger/logger.ts +7 -0
  343. package/lib/modules/logger/transports/consoleTransport.ts +37 -0
  344. package/lib/modules/networking/client/networkClient.ts +128 -0
  345. package/lib/modules/networking/client/networkClientInterface.ts +8 -0
  346. package/lib/modules/networking/handlers/requestHandler.ts +28 -0
  347. package/lib/modules/networking/index.ts +6 -0
  348. package/lib/modules/networking/manager/networkManager.ts +77 -0
  349. package/lib/modules/networking/models/globalRequestModel.ts +69 -0
  350. package/lib/modules/networking/models/requestModel.ts +164 -0
  351. package/lib/modules/networking/models/responseModel.ts +40 -0
  352. package/lib/modules/segmentor/core/segmentationManger.ts +22 -0
  353. package/lib/modules/segmentor/enums/segmentOperandRegexEnum.ts +10 -0
  354. package/lib/modules/segmentor/enums/segmentOperandValueEnum.ts +8 -0
  355. package/lib/modules/segmentor/enums/segmentOperatorValueEnum.ts +15 -0
  356. package/lib/modules/segmentor/evaluators/segmentEvaluator.ts +239 -0
  357. package/lib/modules/segmentor/evaluators/segmentOperandEvaluator.ts +199 -0
  358. package/lib/modules/segmentor/index.ts +3 -0
  359. package/lib/modules/segmentor/segmentation.ts +6 -0
  360. package/lib/modules/segmentor/utils/SegmentUtil.ts +23 -0
  361. package/lib/modules/storage/connector.ts +25 -0
  362. package/lib/modules/storage/connectors/index.ts +2 -0
  363. package/lib/modules/storage/connectors/memoryConnector.ts +115 -0
  364. package/lib/modules/storage/connectors/redisConnector.ts +180 -0
  365. package/lib/modules/storage/index.ts +1 -0
  366. package/lib/modules/storage/storage.ts +48 -0
  367. package/lib/services/CampaignDecisionService.ts +160 -0
  368. package/lib/services/HooksManager.ts +50 -0
  369. package/lib/services/SettingsManager.ts +167 -0
  370. package/lib/services/StorageService.ts +53 -0
  371. package/lib/services/UrlService.ts +50 -0
  372. package/lib/types/common.ts +13 -0
  373. package/lib/utils/CampaignUtil.ts +236 -0
  374. package/lib/utils/DataTypeUtil.ts +87 -0
  375. package/lib/utils/DecisionUtil.ts +180 -0
  376. package/lib/utils/FunctionUtil.ts +105 -0
  377. package/lib/utils/LogMessageUtil.ts +52 -0
  378. package/lib/utils/MegUtil.ts +408 -0
  379. package/lib/utils/NetworkUtil.ts +262 -0
  380. package/lib/utils/PromiseUtil.ts +10 -0
  381. package/lib/utils/SettingsUtil.ts +18 -0
  382. package/lib/utils/UuidUtil.ts +33 -0
  383. package/lib/utils/WebServiceUtil.ts +60 -0
  384. package/lib/utils/logMessageBuilder.ts +60 -0
  385. package/package.json +70 -0
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getType = exports.isPromise = exports.isRegex = exports.isFunction = exports.isDate = exports.isNaN = exports.isBoolean = exports.isString = exports.isNumber = exports.isDefined = exports.isUndefined = exports.isNull = exports.isArray = exports.isObject = void 0;
4
+ function isObject(val) {
5
+ return Object.prototype.toString.call(val) === '[object Object]';
6
+ }
7
+ exports.isObject = isObject;
8
+ function isArray(val) {
9
+ return Object.prototype.toString.call(val) === '[object Array]';
10
+ }
11
+ exports.isArray = isArray;
12
+ function isNull(val) {
13
+ return Object.prototype.toString.call(val) === '[object Null]';
14
+ }
15
+ exports.isNull = isNull;
16
+ function isUndefined(val) {
17
+ return Object.prototype.toString.call(val) === '[object Undefined]';
18
+ }
19
+ exports.isUndefined = isUndefined;
20
+ function isDefined(val) {
21
+ return !isUndefined(val) && !isNull(val);
22
+ }
23
+ exports.isDefined = isDefined;
24
+ function isNumber(val) {
25
+ // Note: NaN is also a number
26
+ return Object.prototype.toString.call(val) === '[object Number]';
27
+ }
28
+ exports.isNumber = isNumber;
29
+ function isString(val) {
30
+ return Object.prototype.toString.call(val) === '[object String]';
31
+ }
32
+ exports.isString = isString;
33
+ function isBoolean(val) {
34
+ return Object.prototype.toString.call(val) === '[object Boolean]';
35
+ }
36
+ exports.isBoolean = isBoolean;
37
+ function isNaN(val) {
38
+ // eslint-disable-next-line no-self-compare
39
+ return val !== val;
40
+ }
41
+ exports.isNaN = isNaN;
42
+ function isDate(val) {
43
+ return Object.prototype.toString.call(val) === '[object Date]';
44
+ }
45
+ exports.isDate = isDate;
46
+ function isFunction(val) {
47
+ return Object.prototype.toString.call(val) === '[object Function]';
48
+ }
49
+ exports.isFunction = isFunction;
50
+ function isRegex(val) {
51
+ return Object.prototype.toString.call(val) === '[object RegExp]';
52
+ }
53
+ exports.isRegex = isRegex;
54
+ function isPromise(val) {
55
+ return Object.prototype.toString.call(val) === '[object Promise]';
56
+ }
57
+ exports.isPromise = isPromise;
58
+ function getType(val) {
59
+ return isObject(val)
60
+ ? 'Object'
61
+ : isArray(val)
62
+ ? 'Array'
63
+ : isNull(val)
64
+ ? 'Null'
65
+ : isUndefined(val)
66
+ ? 'Undefined'
67
+ : isNaN(val)
68
+ ? 'NaN'
69
+ : isNumber(val)
70
+ ? 'Number'
71
+ : isString(val)
72
+ ? 'String'
73
+ : isBoolean(val)
74
+ ? 'Boolean'
75
+ : isDate(val)
76
+ ? 'Date'
77
+ : isRegex(val)
78
+ ? 'Regex'
79
+ : isFunction(val)
80
+ ? 'Function'
81
+ : isPromise(val)
82
+ ? 'Promise'
83
+ : 'Unknown Type';
84
+ }
85
+ exports.getType = getType;
86
+ //# sourceMappingURL=DataTypeUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataTypeUtil.js","sourceRoot":"","sources":["../../lib/utils/DataTypeUtil.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { CampaignModel } from '../models/CampaignModel';
2
+ import { VariationModel } from '../models/VariationModel';
3
+ export declare const checkWhitelistingAndPreSeg: (settings: any, campaign: CampaignModel, context: any, isMegWinnerRule: Boolean, decision: any) => Promise<[Boolean, any]>;
4
+ export declare const evaluateTrafficAndGetVariation: (settingsFile: any, campaign: CampaignModel, userId: any) => VariationModel;
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.evaluateTrafficAndGetVariation = exports.checkWhitelistingAndPreSeg = void 0;
40
+ var logger_1 = require("../modules/logger");
41
+ var DataTypeUtil_1 = require("../utils/DataTypeUtil");
42
+ var segmentor_1 = require("../modules/segmentor");
43
+ var UuidUtil_1 = require("./UuidUtil");
44
+ var types_1 = require("util/types");
45
+ var FunctionUtil_1 = require("./FunctionUtil");
46
+ var CampaignUtil_1 = require("./CampaignUtil");
47
+ var decision_maker_1 = require("../modules/decision-maker");
48
+ var CampaignDecisionService_1 = require("../services/CampaignDecisionService");
49
+ var campaignTypeEnum_1 = require("../enums/campaignTypeEnum");
50
+ var StatusEnum_1 = require("../enums/StatusEnum");
51
+ // import { CampaignTypeEnum } from '../enums/campaignTypeEnum';
52
+ var checkWhitelistingAndPreSeg = function (settings, campaign, context, isMegWinnerRule, decision) { return __awaiter(void 0, void 0, void 0, function () {
53
+ var vwoUserId, whitelistedVariation, preSegmentationResult;
54
+ return __generator(this, function (_a) {
55
+ switch (_a.label) {
56
+ case 0:
57
+ vwoUserId = (0, UuidUtil_1.getUUID)(context.user.id, settings.accountId);
58
+ if (!(campaign.getType() === campaignTypeEnum_1.CampaignTypeEnum.AB)) return [3 /*break*/, 3];
59
+ // set _vwoUserId for variation targeting variables
60
+ context.user.variationTargetingVariables = Object.assign({}, context.user.variationTargetingVariables, {
61
+ _vwoUserId: campaign.getIsUserListEnabled() ? vwoUserId : context.user.id,
62
+ });
63
+ Object.assign(decision, { variationTargetingVariables: context.user.variationTargetingVariables }); // for integration
64
+ if (!campaign.getIsForcedVariationEnabled()) return [3 /*break*/, 2];
65
+ return [4 /*yield*/, checkForWhitelisting(campaign, campaign.getKey(), settings, context)];
66
+ case 1:
67
+ whitelistedVariation = _a.sent();
68
+ if (whitelistedVariation && Object.keys(whitelistedVariation).length > 0) {
69
+ return [2 /*return*/, [true, whitelistedVariation]];
70
+ }
71
+ return [3 /*break*/, 3];
72
+ case 2:
73
+ logger_1.LogManager.Instance.info("WHITELISTING_SKIPPED: Whitelisting is not used for Campaign:".concat(campaign.getKey(), ", hence skipping evaluating whitelisting for User ID:").concat(context.user.id));
74
+ _a.label = 3;
75
+ case 3:
76
+ if (isMegWinnerRule) {
77
+ return [2 /*return*/, [true, null]]; // for MEG winner rule, no need to check for pre segmentation as it's already evaluated
78
+ }
79
+ // userlist segment is also available for campaign pre segmentation
80
+ context.user.customVariables = Object.assign({}, context.user.customVariables, {
81
+ _vwoUserId: campaign.getIsUserListEnabled() ? vwoUserId : context.user.id,
82
+ });
83
+ Object.assign(decision, { customVariables: context.user.customVariables }); // for integeration
84
+ return [4 /*yield*/, new CampaignDecisionService_1.CampaignDecisionService().getDecision(campaign, settings, context)];
85
+ case 4:
86
+ preSegmentationResult = _a.sent();
87
+ return [2 /*return*/, [preSegmentationResult, null]];
88
+ }
89
+ });
90
+ }); };
91
+ exports.checkWhitelistingAndPreSeg = checkWhitelistingAndPreSeg;
92
+ /**
93
+ * Check for whitelisting
94
+ * @param campaign Campaign object
95
+ * @param campaignKey Campaign key
96
+ * @param userId User ID
97
+ * @param variationTargetingVariables Variation targeting variables
98
+ * @returns
99
+ */
100
+ var checkForWhitelisting = function (campaign, campaignKey, settings, context) { return __awaiter(void 0, void 0, void 0, function () {
101
+ var status, whitelistingResult, variationString;
102
+ return __generator(this, function (_a) {
103
+ switch (_a.label) {
104
+ case 0: return [4 /*yield*/, _evaluateWhitelisting(campaign, campaignKey, settings, context)];
105
+ case 1:
106
+ whitelistingResult = _a.sent();
107
+ if (whitelistingResult) {
108
+ status = StatusEnum_1.StatusEnum.PASSED;
109
+ variationString = whitelistingResult.variation.key;
110
+ }
111
+ else {
112
+ status = StatusEnum_1.StatusEnum.FAILED;
113
+ variationString = '';
114
+ }
115
+ logger_1.LogManager.Instance.info("SEGMENTATION_STATUS: User ID:".concat(context.user.id, " for Campaign:").concat(campaignKey, " with variables:").concat(JSON.stringify(context.user.variationTargetingVariables), " ").concat(status, " whitelisting ").concat(variationString));
116
+ return [2 /*return*/, whitelistingResult];
117
+ }
118
+ });
119
+ }); };
120
+ var _evaluateWhitelisting = function (campaign, campaignKey, settings, context) { return __awaiter(void 0, void 0, void 0, function () {
121
+ var whitelistedVariation, status, targetedVariations, promises, i, currentAllocation, stepFactor;
122
+ return __generator(this, function (_a) {
123
+ switch (_a.label) {
124
+ case 0:
125
+ targetedVariations = [];
126
+ promises = [];
127
+ campaign.getVariations().forEach(function (variation) {
128
+ if ((0, DataTypeUtil_1.isObject)(variation.getSegments()) && !Object.keys(variation.getSegments()).length) {
129
+ logger_1.LogManager.Instance.debug("SEGMENTATION_SKIPPED: Segmentation is not used for Campaign:".concat(campaignKey, ", hence skipping evaluating segmentation ").concat(variation, " for User ID:").concat(context.user.id));
130
+ return;
131
+ }
132
+ // check for segmentation and evaluate
133
+ if ((0, DataTypeUtil_1.isObject)(variation.getSegments())) {
134
+ var SegmentEvaluatorResult = segmentor_1.SegmentationManager.Instance.validateSegmentation(variation.getSegments(), context.user.variationTargetingVariables, settings);
135
+ var promise = (0, types_1.isPromise)(SegmentEvaluatorResult)
136
+ ? SegmentEvaluatorResult.then(function (evaluationResult) {
137
+ if (evaluationResult) {
138
+ status = StatusEnum_1.StatusEnum.PASSED;
139
+ targetedVariations.push((0, FunctionUtil_1.cloneObject)(variation));
140
+ }
141
+ else {
142
+ status = StatusEnum_1.StatusEnum.FAILED;
143
+ }
144
+ })
145
+ : Promise.resolve(SegmentEvaluatorResult).then(function (evaluationResult) {
146
+ if (evaluationResult) {
147
+ status = StatusEnum_1.StatusEnum.PASSED;
148
+ targetedVariations.push((0, FunctionUtil_1.cloneObject)(variation));
149
+ }
150
+ else {
151
+ status = StatusEnum_1.StatusEnum.FAILED;
152
+ }
153
+ });
154
+ promises.push(promise);
155
+ }
156
+ else {
157
+ status = StatusEnum_1.StatusEnum.FAILED;
158
+ }
159
+ });
160
+ // Wait for all promises to resolve
161
+ return [4 /*yield*/, Promise.all(promises)];
162
+ case 1:
163
+ // Wait for all promises to resolve
164
+ _a.sent();
165
+ if (targetedVariations.length > 1) {
166
+ (0, CampaignUtil_1.scaleVariationWeights)(targetedVariations);
167
+ for (i = 0, currentAllocation = 0, stepFactor = 0; i < targetedVariations.length; i++) {
168
+ stepFactor = (0, CampaignUtil_1.assignRangeValues)(targetedVariations[i], currentAllocation);
169
+ currentAllocation += stepFactor;
170
+ }
171
+ whitelistedVariation = new CampaignDecisionService_1.CampaignDecisionService().getVariation(targetedVariations, new decision_maker_1.DecisionMaker().calculateBucketValue((0, CampaignUtil_1.getBucketingSeed)(context.user.id, campaign, null)));
172
+ }
173
+ else {
174
+ whitelistedVariation = targetedVariations[0];
175
+ }
176
+ if (whitelistedVariation) {
177
+ return [2 /*return*/, {
178
+ variation: whitelistedVariation,
179
+ variationName: whitelistedVariation.name,
180
+ variationId: whitelistedVariation.id,
181
+ }];
182
+ }
183
+ return [2 /*return*/];
184
+ }
185
+ });
186
+ }); };
187
+ var evaluateTrafficAndGetVariation = function (settingsFile, campaign, userId) {
188
+ var variation = new CampaignDecisionService_1.CampaignDecisionService().getVariationAlloted(userId, settingsFile.accountId, campaign);
189
+ if (!variation) {
190
+ logger_1.LogManager.Instance.debug("USER_NOT_BUCKETED: User ID:".concat(userId, " for Campaign:").concat(campaign.getKey(), " did not get any variation"));
191
+ return null;
192
+ }
193
+ logger_1.LogManager.Instance.debug("USER_BUCKETED: User ID:".concat(userId, " for Campaign:").concat(campaign.getKey(), " ").concat(variation.getKey() ? "got variation:".concat(variation.getKey()) : 'did not get any variation'));
194
+ return variation;
195
+ };
196
+ exports.evaluateTrafficAndGetVariation = evaluateTrafficAndGetVariation;
197
+ //# sourceMappingURL=DecisionUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DecisionUtil.js","sourceRoot":"","sources":["../../lib/utils/DecisionUtil.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { SettingsModel } from '../models/SettingsModel';
2
+ import { dynamic } from '../types/common';
3
+ export declare function cloneObject(obj: dynamic): any;
4
+ export declare function getCurrentUnixTimestamp(): number;
5
+ export declare function getCurrentUnixTimestampInMillis(): number;
6
+ export declare function getRandomNumber(): number;
7
+ export declare function getSpecificRulesBasedOnType(settings: any, featureKey: any, type?: any): any;
8
+ export declare function getAllAbAndPersonaliseRules(settings: any, featureKey: any): any;
9
+ export declare function getFeatureFromKey(settings: any, featureKey: any): any;
10
+ export declare function eventExists(eventName: string, settings: any): boolean;
11
+ export declare function addLInkedCampaignsToSettings(settingsFile: any): void;
12
+ export declare function getFeatureNameFromKey(settings: SettingsModel, featureKey: string): string;
13
+ export declare function getFeatureIdFromKey(settings: SettingsModel, featureKey: string): number;
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.getFeatureIdFromKey = exports.getFeatureNameFromKey = exports.addLInkedCampaignsToSettings = exports.eventExists = exports.getFeatureFromKey = exports.getAllAbAndPersonaliseRules = exports.getSpecificRulesBasedOnType = exports.getRandomNumber = exports.getCurrentUnixTimestampInMillis = exports.getCurrentUnixTimestamp = exports.cloneObject = void 0;
15
+ var campaignTypeEnum_1 = require("../enums/campaignTypeEnum");
16
+ var DataTypeUtil_1 = require("./DataTypeUtil");
17
+ function cloneObject(obj) {
18
+ if (!obj) {
19
+ return obj;
20
+ }
21
+ var clonedObj = JSON.parse(JSON.stringify(obj));
22
+ return clonedObj;
23
+ }
24
+ exports.cloneObject = cloneObject;
25
+ function getCurrentUnixTimestamp() {
26
+ return Math.ceil(+new Date() / 1000);
27
+ }
28
+ exports.getCurrentUnixTimestamp = getCurrentUnixTimestamp;
29
+ function getCurrentUnixTimestampInMillis() {
30
+ return +new Date();
31
+ }
32
+ exports.getCurrentUnixTimestampInMillis = getCurrentUnixTimestampInMillis;
33
+ function getRandomNumber() {
34
+ return Math.random();
35
+ }
36
+ exports.getRandomNumber = getRandomNumber;
37
+ function getSpecificRulesBasedOnType(settings, featureKey, type) {
38
+ if (type === void 0) { type = null; }
39
+ var feature = getFeatureFromKey(settings, featureKey);
40
+ if (feature && !feature.rulesLinkedCampaign) {
41
+ return [];
42
+ }
43
+ if (feature && feature.rulesLinkedCampaign && type && (0, DataTypeUtil_1.isString)(type)) {
44
+ return feature.rulesLinkedCampaign.filter(function (rule) { return rule.type === type; });
45
+ }
46
+ return feature.rulesLinkedCampaign;
47
+ }
48
+ exports.getSpecificRulesBasedOnType = getSpecificRulesBasedOnType;
49
+ function getAllAbAndPersonaliseRules(settings, featureKey) {
50
+ var feature = getFeatureFromKey(settings, featureKey);
51
+ return feature.rulesLinkedCampaign.filter(function (rule) { return rule.type === campaignTypeEnum_1.CampaignTypeEnum.AB || rule.type === campaignTypeEnum_1.CampaignTypeEnum.PERSONALIZE; });
52
+ }
53
+ exports.getAllAbAndPersonaliseRules = getAllAbAndPersonaliseRules;
54
+ function getFeatureFromKey(settings, featureKey) {
55
+ var _a;
56
+ return (_a = settings === null || settings === void 0 ? void 0 : settings.features) === null || _a === void 0 ? void 0 : _a.find(function (feature) { return feature.key === featureKey; });
57
+ }
58
+ exports.getFeatureFromKey = getFeatureFromKey;
59
+ function eventExists(eventName, settings) {
60
+ for (var _i = 0, _a = settings.features; _i < _a.length; _i++) {
61
+ var feature = _a[_i];
62
+ for (var _b = 0, _c = feature.metrics; _b < _c.length; _b++) {
63
+ var metric = _c[_b];
64
+ if (metric.identifier === eventName) {
65
+ return true;
66
+ }
67
+ }
68
+ }
69
+ return false;
70
+ }
71
+ exports.eventExists = eventExists;
72
+ function addLInkedCampaignsToSettings(settingsFile) {
73
+ // loop over all features
74
+ for (var _i = 0, _a = settingsFile.features; _i < _a.length; _i++) {
75
+ var feature = _a[_i];
76
+ var rules = feature.rules;
77
+ var campaigns = settingsFile.campaigns;
78
+ var rulesLinkedCampaign = [];
79
+ var _loop_1 = function (rule) {
80
+ var campaignId = rule.campaignId, variationId = rule.variationId;
81
+ if (campaignId) {
82
+ // find the campaign with the given campaignId
83
+ var campaign = campaigns.find(function (c) { return c.id === campaignId; });
84
+ if (campaign) {
85
+ // create a linked campaign object with the rule and campaign
86
+ var linkedCampaign = __assign(__assign({ key: campaign.key }, rule), campaign);
87
+ if (variationId) {
88
+ // find the variation with the given variationId
89
+ var variation = campaign.variations.find(function (v) { return v.id === variationId; });
90
+ if (variation) {
91
+ // add the variation to the linked campaign
92
+ linkedCampaign.variations = [variation];
93
+ }
94
+ }
95
+ // add the linked campaign to the rulesLinkedCampaign array
96
+ rulesLinkedCampaign.push(linkedCampaign);
97
+ }
98
+ }
99
+ };
100
+ // loop over all rules of a feature
101
+ for (var _b = 0, rules_1 = rules; _b < rules_1.length; _b++) {
102
+ var rule = rules_1[_b];
103
+ _loop_1(rule);
104
+ }
105
+ feature.rulesLinkedCampaign = rulesLinkedCampaign;
106
+ }
107
+ }
108
+ exports.addLInkedCampaignsToSettings = addLInkedCampaignsToSettings;
109
+ // get feature name from feature key using settings
110
+ function getFeatureNameFromKey(settings, featureKey) {
111
+ var feature = settings.getFeatures().find(function (f) { return f.getKey() === featureKey; });
112
+ return feature ? feature.getName() : '';
113
+ }
114
+ exports.getFeatureNameFromKey = getFeatureNameFromKey;
115
+ // get feature id from feature key using settings
116
+ function getFeatureIdFromKey(settings, featureKey) {
117
+ var feature = settings.getFeatures().find(function (f) { return f.getKey() === featureKey; });
118
+ return feature ? feature.getId() : null;
119
+ }
120
+ exports.getFeatureIdFromKey = getFeatureIdFromKey;
121
+ //# sourceMappingURL=FunctionUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FunctionUtil.js","sourceRoot":"","sources":["../../lib/utils/FunctionUtil.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Copyright 2019-2020 Wingify Software Pvt. Ltd.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export declare function buildMessage(template: string, data: Record<string, any>): string;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright 2019-2020 Wingify Software Pvt. Ltd.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.buildMessage = void 0;
19
+ var DataTypeUtil_1 = require("../utils/DataTypeUtil");
20
+ var nargs = /\{([0-9a-zA-Z_]+)\}/g;
21
+ function buildMessage(template, data) {
22
+ try {
23
+ return template.replace(nargs, function (match, key, index) {
24
+ var result;
25
+ var isKey;
26
+ if (template[index - 1] === '{' && template[index + match.length] === '}') {
27
+ return key;
28
+ }
29
+ else {
30
+ isKey = Object.prototype.hasOwnProperty.call(data, key);
31
+ if (isKey) {
32
+ var value = data[key];
33
+ if ((0, DataTypeUtil_1.isFunction)(value)) {
34
+ value = data[key]();
35
+ }
36
+ result = value;
37
+ }
38
+ else {
39
+ result = null;
40
+ }
41
+ if ((0, DataTypeUtil_1.isNull)(result) || (0, DataTypeUtil_1.isUndefined)(result)) {
42
+ return '';
43
+ }
44
+ return result;
45
+ }
46
+ });
47
+ }
48
+ catch (err) {
49
+ return template;
50
+ }
51
+ }
52
+ exports.buildMessage = buildMessage;
53
+ //# sourceMappingURL=LogMessageUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogMessageUtil.js","sourceRoot":"","sources":["../../lib/utils/LogMessageUtil.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,sDAAwE;AAExE,IAAM,KAAK,GAAG,sBAAsB,CAAC;AAErC,SAAgB,YAAY,CAAC,QAAgB,EAAE,IAAyB;IACtE,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,UAAC,KAAK,EAAE,GAAG,EAAE,KAAK;YAC/C,IAAI,MAAM,CAAC;YACX,IAAI,KAAK,CAAC;YAEV,IAAI,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC1E,OAAO,GAAG,CAAC;YACb,CAAC;iBAAM,CAAC;gBACN,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAExD,IAAI,KAAK,EAAE,CAAC;oBACV,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;oBAEtB,IAAI,IAAA,yBAAU,EAAC,KAAK,CAAC,EAAE,CAAC;wBACtB,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBACtB,CAAC;oBACD,MAAM,GAAG,KAAK,CAAC;gBACjB,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,IAAI,CAAC;gBAChB,CAAC;gBACD,IAAI,IAAA,qBAAM,EAAC,MAAM,CAAC,IAAI,IAAA,0BAAW,EAAC,MAAM,CAAC,EAAE,CAAC;oBAC1C,OAAO,EAAE,CAAC;gBACZ,CAAC;gBAED,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AA/BD,oCA+BC"}
@@ -0,0 +1,7 @@
1
+ import { SettingsModel } from '../models/SettingsModel';
2
+ import { StorageService } from '../services/StorageService';
3
+ export declare const evaluateGroups: (settings: SettingsModel, featureKey: any, feature: any, listOfMegCampaignsGroups: any[], evaluatedFeatureMap: Map<string, any>, context: any, storageService: StorageService, campaignToSkip: any[], decision: any) => Promise<any>;
4
+ export declare function getFeatureKeysFromGroup(settings: SettingsModel, groupId: any): {
5
+ featureKeys: any[];
6
+ groupCampaignIds: any;
7
+ };