@splitsoftware/splitio-commons 1.2.1-rc.0 → 1.2.1-rc.11

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 (316) hide show
  1. package/cjs/evaluator/Engine.js +6 -6
  2. package/cjs/evaluator/combiners/and.js +1 -1
  3. package/cjs/evaluator/combiners/ifelseif.js +2 -2
  4. package/cjs/evaluator/condition/engineUtils.js +2 -2
  5. package/cjs/evaluator/condition/index.js +4 -4
  6. package/cjs/evaluator/index.js +5 -5
  7. package/cjs/evaluator/matchers/cont_all.js +1 -1
  8. package/cjs/evaluator/matchers/cont_any.js +1 -1
  9. package/cjs/evaluator/matchers/cont_str.js +1 -1
  10. package/cjs/evaluator/matchers/dependency.js +1 -1
  11. package/cjs/evaluator/matchers/eq_set.js +1 -1
  12. package/cjs/evaluator/matchers/ew.js +3 -3
  13. package/cjs/evaluator/matchers/part_of.js +1 -1
  14. package/cjs/evaluator/matchers/segment.js +1 -1
  15. package/cjs/evaluator/matchers/sw.js +1 -1
  16. package/cjs/evaluator/matchers/whitelist.js +1 -1
  17. package/cjs/evaluator/matchersTransform/index.js +12 -12
  18. package/cjs/evaluator/parser/index.js +6 -6
  19. package/cjs/evaluator/treatments/index.js +1 -1
  20. package/cjs/evaluator/value/index.js +1 -1
  21. package/cjs/evaluator/value/sanitize.js +4 -4
  22. package/cjs/integrations/browser.js +3 -3
  23. package/cjs/integrations/ga/GaToSplit.js +14 -14
  24. package/cjs/integrations/ga/GoogleAnalyticsToSplit.js +5 -3
  25. package/cjs/integrations/ga/SplitToGa.js +1 -1
  26. package/cjs/integrations/ga/SplitToGoogleAnalytics.js +4 -2
  27. package/cjs/listeners/browser.js +15 -11
  28. package/cjs/listeners/node.js +1 -1
  29. package/cjs/logger/constants.js +9 -3
  30. package/cjs/logger/index.js +2 -2
  31. package/cjs/logger/messages/debug.js +4 -4
  32. package/cjs/logger/messages/error.js +5 -4
  33. package/cjs/logger/messages/info.js +8 -5
  34. package/cjs/logger/messages/warn.js +1 -1
  35. package/cjs/logger/sdkLogger.js +1 -1
  36. package/cjs/readiness/readinessManager.js +2 -2
  37. package/cjs/readiness/sdkReadinessManager.js +4 -4
  38. package/cjs/sdkClient/client.js +12 -11
  39. package/cjs/sdkClient/clientAttributesDecoration.js +4 -4
  40. package/cjs/sdkClient/clientCS.js +3 -3
  41. package/cjs/sdkClient/clientInputValidation.js +20 -22
  42. package/cjs/sdkClient/sdkClient.js +3 -6
  43. package/cjs/sdkClient/sdkClientMethod.js +1 -1
  44. package/cjs/sdkClient/sdkClientMethodCS.js +6 -10
  45. package/cjs/sdkClient/sdkClientMethodCSWithTT.js +7 -15
  46. package/cjs/sdkFactory/index.js +14 -12
  47. package/cjs/sdkFactory/userConsentProps.js +40 -0
  48. package/cjs/sdkManager/index.js +11 -11
  49. package/cjs/services/splitApi.js +3 -2
  50. package/cjs/services/splitHttpClient.js +2 -2
  51. package/cjs/storages/KeyBuilder.js +2 -6
  52. package/cjs/storages/KeyBuilderCS.js +13 -3
  53. package/cjs/storages/KeyBuilderSS.js +1 -1
  54. package/cjs/storages/findLatencyIndex.js +1 -1
  55. package/cjs/storages/inLocalStorage/MySegmentsCacheInLocal.js +24 -4
  56. package/cjs/storages/inLocalStorage/SplitsCacheInLocal.js +12 -12
  57. package/cjs/storages/inLocalStorage/index.js +4 -4
  58. package/cjs/storages/inMemory/AttributesCacheInMemory.js +1 -1
  59. package/cjs/storages/inMemory/ImpressionCountsCacheInMemory.js +1 -1
  60. package/cjs/storages/inMemory/ImpressionsCacheInMemory.js +15 -1
  61. package/cjs/storages/inMemory/InMemoryStorage.js +1 -1
  62. package/cjs/storages/inMemory/InMemoryStorageCS.js +1 -1
  63. package/cjs/storages/inMemory/LatenciesCacheInMemory.js +1 -1
  64. package/cjs/storages/inMemory/MySegmentsCacheInMemory.js +1 -1
  65. package/cjs/storages/inMemory/SegmentsCacheInMemory.js +2 -2
  66. package/cjs/storages/inMemory/SplitsCacheInMemory.js +5 -5
  67. package/cjs/storages/inRedis/LatenciesCacheInRedis.js +1 -1
  68. package/cjs/storages/inRedis/RedisAdapter.js +24 -11
  69. package/cjs/storages/inRedis/SegmentsCacheInRedis.js +1 -1
  70. package/cjs/storages/inRedis/SplitsCacheInRedis.js +3 -3
  71. package/cjs/storages/inRedis/index.js +1 -1
  72. package/cjs/storages/pluggable/SegmentsCachePluggable.js +1 -1
  73. package/cjs/storages/pluggable/SplitsCachePluggable.js +3 -3
  74. package/cjs/storages/pluggable/inMemoryWrapper.js +4 -4
  75. package/cjs/storages/pluggable/index.js +6 -6
  76. package/cjs/sync/offline/LocalhostFromFile.js +1 -1
  77. package/cjs/sync/offline/LocalhostFromObject.js +1 -1
  78. package/cjs/sync/offline/splitsParser/parseCondition.js +1 -1
  79. package/cjs/sync/offline/splitsParser/splitsParserFromFile.js +13 -13
  80. package/cjs/sync/offline/splitsParser/splitsParserFromSettings.js +3 -3
  81. package/cjs/sync/offline/syncManagerOffline.js +1 -1
  82. package/cjs/sync/offline/syncTasks/fromObjectSyncTask.js +2 -2
  83. package/cjs/sync/polling/fetchers/mySegmentsFetcher.js +2 -2
  84. package/cjs/sync/polling/fetchers/segmentChangesFetcher.js +1 -1
  85. package/cjs/sync/polling/pollingManagerCS.js +8 -7
  86. package/cjs/sync/polling/pollingManagerSS.js +5 -4
  87. package/cjs/sync/polling/syncTasks/mySegmentsSyncTask.js +1 -1
  88. package/cjs/sync/polling/syncTasks/segmentsSyncTask.js +1 -1
  89. package/cjs/sync/polling/syncTasks/splitsSyncTask.js +1 -1
  90. package/cjs/sync/polling/updaters/mySegmentsUpdater.js +3 -3
  91. package/cjs/sync/polling/updaters/segmentChangesUpdater.js +2 -2
  92. package/cjs/sync/polling/updaters/splitChangesUpdater.js +2 -2
  93. package/cjs/sync/streaming/AuthClient/index.js +3 -3
  94. package/cjs/sync/streaming/SSEClient/index.js +2 -1
  95. package/cjs/sync/streaming/SSEHandler/NotificationParser.js +1 -1
  96. package/cjs/sync/streaming/SSEHandler/index.js +3 -3
  97. package/cjs/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.js +1 -1
  98. package/cjs/sync/streaming/mySegmentsV2utils.js +1 -1
  99. package/cjs/sync/streaming/pushManager.js +27 -19
  100. package/cjs/sync/submitters/eventsSyncTask.js +17 -5
  101. package/cjs/sync/submitters/impressionCountsSyncTask.js +1 -1
  102. package/cjs/sync/submitters/impressionsSyncTask.js +15 -3
  103. package/cjs/sync/submitters/metricsSyncTask.js +3 -3
  104. package/cjs/sync/submitters/submitterManager.js +6 -5
  105. package/cjs/sync/submitters/submitterSyncTask.js +1 -1
  106. package/cjs/sync/syncManagerOnline.js +14 -15
  107. package/cjs/trackers/eventTracker.js +11 -4
  108. package/cjs/trackers/impressionObserver/impressionObserverCS.js +1 -1
  109. package/cjs/trackers/impressionObserver/impressionObserverSS.js +1 -1
  110. package/cjs/trackers/impressionObserver/utils.js +8 -1
  111. package/cjs/trackers/impressionsTracker.js +9 -8
  112. package/cjs/utils/MinEvents.js +2 -1
  113. package/cjs/utils/consent.js +10 -0
  114. package/cjs/utils/constants/index.js +5 -1
  115. package/cjs/utils/inputValidation/apiKey.js +1 -1
  116. package/cjs/utils/inputValidation/attribute.js +4 -4
  117. package/cjs/utils/inputValidation/attributes.js +2 -2
  118. package/cjs/utils/inputValidation/event.js +1 -1
  119. package/cjs/utils/inputValidation/eventProperties.js +7 -5
  120. package/cjs/utils/inputValidation/eventValue.js +1 -1
  121. package/cjs/utils/inputValidation/key.js +6 -5
  122. package/cjs/utils/inputValidation/preloadedData.js +8 -8
  123. package/cjs/utils/inputValidation/split.js +1 -1
  124. package/cjs/utils/inputValidation/splits.js +2 -2
  125. package/cjs/utils/inputValidation/trafficType.js +1 -1
  126. package/cjs/utils/inputValidation/trafficTypeExistance.js +1 -1
  127. package/cjs/utils/jwt/index.js +1 -1
  128. package/cjs/utils/key/index.js +3 -3
  129. package/cjs/utils/lang/index.js +13 -16
  130. package/cjs/utils/lang/maps.js +16 -2
  131. package/cjs/utils/murmur3/common.js +1 -1
  132. package/cjs/utils/murmur3/murmur3.js +10 -10
  133. package/cjs/utils/murmur3/murmur3_128.js +1 -1
  134. package/cjs/utils/murmur3/murmur3_128_x86.js +37 -37
  135. package/cjs/utils/murmur3/murmur3_64.js +1 -1
  136. package/cjs/utils/settingsValidation/consent.js +16 -0
  137. package/cjs/utils/settingsValidation/impressionsMode.js +6 -6
  138. package/cjs/utils/settingsValidation/index.js +32 -14
  139. package/cjs/utils/settingsValidation/integrations/configurable.js +1 -1
  140. package/cjs/utils/settingsValidation/integrations/pluggable.js +1 -1
  141. package/cjs/utils/settingsValidation/localhost/builtin.js +2 -2
  142. package/cjs/utils/settingsValidation/logger/builtinLogger.js +3 -3
  143. package/cjs/utils/settingsValidation/logger/commons.js +1 -1
  144. package/cjs/utils/settingsValidation/logger/pluggableLogger.js +1 -1
  145. package/cjs/utils/settingsValidation/runtime.js +11 -0
  146. package/cjs/utils/settingsValidation/splitFilters.js +1 -1
  147. package/cjs/utils/settingsValidation/storage/storageCS.js +1 -1
  148. package/cjs/utils/timeTracker/index.js +3 -3
  149. package/esm/evaluator/matchers/ew.js +4 -4
  150. package/esm/integrations/ga/GoogleAnalyticsToSplit.js +4 -2
  151. package/esm/integrations/ga/SplitToGoogleAnalytics.js +4 -2
  152. package/esm/listeners/browser.js +14 -10
  153. package/esm/logger/constants.js +6 -2
  154. package/esm/logger/messages/debug.js +3 -3
  155. package/esm/logger/messages/error.js +4 -3
  156. package/esm/logger/messages/info.js +7 -4
  157. package/esm/sdkClient/client.js +3 -2
  158. package/esm/sdkClient/clientCS.js +1 -1
  159. package/esm/sdkClient/clientInputValidation.js +6 -8
  160. package/esm/sdkClient/sdkClient.js +1 -4
  161. package/esm/sdkClient/sdkClientMethodCS.js +1 -5
  162. package/esm/sdkClient/sdkClientMethodCSWithTT.js +1 -9
  163. package/esm/sdkFactory/index.js +8 -6
  164. package/esm/sdkFactory/userConsentProps.js +36 -0
  165. package/esm/services/splitApi.js +2 -1
  166. package/esm/storages/KeyBuilder.js +2 -6
  167. package/esm/storages/KeyBuilderCS.js +11 -1
  168. package/esm/storages/inLocalStorage/MySegmentsCacheInLocal.js +23 -3
  169. package/esm/storages/inLocalStorage/index.js +1 -1
  170. package/esm/storages/inMemory/ImpressionsCacheInMemory.js +15 -1
  171. package/esm/storages/inMemory/InMemoryStorage.js +1 -1
  172. package/esm/storages/inMemory/InMemoryStorageCS.js +1 -1
  173. package/esm/storages/inRedis/RedisAdapter.js +15 -2
  174. package/esm/storages/pluggable/index.js +2 -2
  175. package/esm/sync/offline/splitsParser/splitsParserFromFile.js +1 -1
  176. package/esm/sync/polling/fetchers/mySegmentsFetcher.js +2 -2
  177. package/esm/sync/polling/fetchers/segmentChangesFetcher.js +2 -2
  178. package/esm/sync/polling/pollingManagerCS.js +2 -1
  179. package/esm/sync/polling/pollingManagerSS.js +2 -1
  180. package/esm/sync/polling/syncTasks/mySegmentsSyncTask.js +1 -1
  181. package/esm/sync/polling/updaters/mySegmentsUpdater.js +2 -2
  182. package/esm/sync/streaming/SSEClient/index.js +2 -1
  183. package/esm/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.js +1 -1
  184. package/esm/sync/streaming/pushManager.js +13 -5
  185. package/esm/sync/submitters/eventsSyncTask.js +18 -6
  186. package/esm/sync/submitters/impressionsSyncTask.js +13 -1
  187. package/esm/sync/submitters/submitterManager.js +2 -1
  188. package/esm/sync/syncManagerOnline.js +14 -15
  189. package/esm/trackers/eventTracker.js +8 -1
  190. package/esm/trackers/impressionObserver/utils.js +7 -1
  191. package/esm/trackers/impressionsTracker.js +6 -5
  192. package/esm/utils/consent.js +6 -0
  193. package/esm/utils/constants/index.js +4 -0
  194. package/esm/utils/inputValidation/attributes.js +1 -1
  195. package/esm/utils/inputValidation/eventProperties.js +4 -2
  196. package/esm/utils/inputValidation/key.js +2 -1
  197. package/esm/utils/lang/index.js +12 -15
  198. package/esm/utils/lang/maps.js +14 -1
  199. package/esm/utils/settingsValidation/consent.js +12 -0
  200. package/esm/utils/settingsValidation/impressionsMode.js +7 -7
  201. package/esm/utils/settingsValidation/index.js +28 -10
  202. package/esm/utils/settingsValidation/runtime.js +7 -0
  203. package/package.json +6 -6
  204. package/src/evaluator/matchers/ew.ts +4 -4
  205. package/src/evaluator/parser/index.ts +1 -1
  206. package/src/evaluator/types.ts +2 -2
  207. package/src/evaluator/value/index.ts +2 -2
  208. package/src/evaluator/value/sanitize.ts +2 -2
  209. package/src/integrations/ga/GoogleAnalyticsToSplit.ts +7 -4
  210. package/src/integrations/ga/SplitToGoogleAnalytics.ts +7 -4
  211. package/src/integrations/pluggable.ts +2 -2
  212. package/src/integrations/types.ts +5 -0
  213. package/src/listeners/browser.ts +13 -9
  214. package/src/logger/constants.ts +6 -2
  215. package/src/logger/messages/debug.ts +3 -3
  216. package/src/logger/messages/error.ts +4 -3
  217. package/src/logger/messages/info.ts +7 -4
  218. package/src/logger/types.ts +4 -0
  219. package/src/sdkClient/client.ts +3 -2
  220. package/src/sdkClient/clientCS.ts +1 -1
  221. package/src/sdkClient/clientInputValidation.ts +8 -7
  222. package/src/sdkClient/sdkClient.ts +2 -5
  223. package/src/sdkClient/sdkClientMethodCS.ts +1 -6
  224. package/src/sdkClient/sdkClientMethodCSWithTT.ts +2 -11
  225. package/src/sdkFactory/index.ts +9 -7
  226. package/src/sdkFactory/types.ts +2 -1
  227. package/src/sdkFactory/userConsentProps.ts +42 -0
  228. package/src/storages/KeyBuilder.ts +2 -6
  229. package/src/storages/KeyBuilderCS.ts +13 -1
  230. package/src/storages/inLocalStorage/MySegmentsCacheInLocal.ts +23 -3
  231. package/src/storages/inLocalStorage/index.ts +1 -1
  232. package/src/storages/inMemory/ImpressionsCacheInMemory.ts +22 -1
  233. package/src/storages/inMemory/InMemoryStorage.ts +1 -1
  234. package/src/storages/inMemory/InMemoryStorageCS.ts +1 -1
  235. package/src/storages/inRedis/RedisAdapter.ts +8 -2
  236. package/src/storages/pluggable/index.ts +2 -2
  237. package/src/storages/types.ts +6 -2
  238. package/src/sync/offline/splitsParser/splitsParserFromFile.ts +1 -1
  239. package/src/sync/polling/fetchers/mySegmentsFetcher.ts +2 -1
  240. package/src/sync/polling/fetchers/types.ts +1 -0
  241. package/src/sync/polling/pollingManagerCS.ts +3 -6
  242. package/src/sync/polling/pollingManagerSS.ts +3 -8
  243. package/src/sync/polling/syncTasks/mySegmentsSyncTask.ts +2 -1
  244. package/src/sync/polling/types.ts +0 -12
  245. package/src/sync/polling/updaters/mySegmentsUpdater.ts +2 -1
  246. package/src/sync/streaming/SSEClient/index.ts +2 -1
  247. package/src/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.ts +1 -1
  248. package/src/sync/streaming/pushManager.ts +19 -16
  249. package/src/sync/streaming/types.ts +5 -25
  250. package/src/sync/submitters/eventsSyncTask.ts +19 -6
  251. package/src/sync/submitters/impressionsSyncTask.ts +16 -1
  252. package/src/sync/submitters/submitterManager.ts +4 -8
  253. package/src/sync/syncManagerOnline.ts +20 -24
  254. package/src/sync/types.ts +4 -1
  255. package/src/trackers/eventTracker.ts +11 -3
  256. package/src/trackers/impressionObserver/utils.ts +8 -1
  257. package/src/trackers/impressionsTracker.ts +7 -8
  258. package/src/types.ts +22 -1
  259. package/src/utils/consent.ts +8 -0
  260. package/src/utils/constants/index.ts +5 -0
  261. package/src/utils/inputValidation/attributes.ts +1 -2
  262. package/src/utils/inputValidation/eventProperties.ts +4 -2
  263. package/src/utils/lang/index.ts +15 -18
  264. package/src/utils/lang/maps.ts +15 -1
  265. package/src/utils/settingsValidation/consent.ts +16 -0
  266. package/src/utils/settingsValidation/impressionsMode.ts +8 -8
  267. package/src/utils/settingsValidation/index.ts +29 -10
  268. package/src/utils/settingsValidation/runtime.ts +9 -0
  269. package/src/utils/settingsValidation/types.ts +12 -6
  270. package/types/evaluator/types.d.ts +2 -2
  271. package/types/evaluator/value/index.d.ts +1 -1
  272. package/types/evaluator/value/sanitize.d.ts +1 -1
  273. package/types/integrations/ga/GoogleAnalyticsToSplit.d.ts +2 -2
  274. package/types/integrations/ga/SplitToGoogleAnalytics.d.ts +2 -3
  275. package/types/integrations/types.d.ts +4 -0
  276. package/types/logger/constants.d.ts +6 -2
  277. package/types/logger/types.d.ts +4 -0
  278. package/types/sdkClient/clientAttributesDecoration.d.ts +1 -1
  279. package/types/sdkClient/clientInputValidation.d.ts +2 -3
  280. package/types/sdkFactory/types.d.ts +1 -1
  281. package/types/sdkFactory/userConsentProps.d.ts +6 -0
  282. package/types/storages/KeyBuilderCS.d.ts +2 -0
  283. package/types/storages/inMemory/ImpressionsCacheInMemory.d.ts +9 -0
  284. package/types/storages/inMemory/index.d.ts +10 -0
  285. package/types/storages/inRedis/RedisAdapter.d.ts +1 -1
  286. package/types/storages/parseSegments.d.ts +6 -0
  287. package/types/storages/types.d.ts +3 -1
  288. package/types/sync/polling/fetchers/mySegmentsFetcher.d.ts +1 -1
  289. package/types/sync/polling/fetchers/types.d.ts +1 -1
  290. package/types/sync/polling/pollingManagerCS.d.ts +2 -5
  291. package/types/sync/polling/pollingManagerSS.d.ts +2 -5
  292. package/types/sync/polling/types.d.ts +0 -11
  293. package/types/sync/polling/updaters/mySegmentsUpdater.d.ts +1 -1
  294. package/types/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.d.ts +1 -1
  295. package/types/sync/streaming/pushManager.d.ts +3 -7
  296. package/types/sync/streaming/pushManagerCS.d.ts +1 -12
  297. package/types/sync/streaming/pushManagerSS.d.ts +1 -11
  298. package/types/sync/streaming/types.d.ts +3 -23
  299. package/types/sync/submitters/submitterManager.d.ts +2 -4
  300. package/types/sync/syncManagerOnline.d.ts +3 -3
  301. package/types/sync/types.d.ts +3 -0
  302. package/types/trackers/eventTracker.d.ts +2 -2
  303. package/types/trackers/impressionObserver/utils.d.ts +4 -0
  304. package/types/trackers/impressionsTracker.d.ts +2 -3
  305. package/types/types.d.ts +22 -1
  306. package/types/utils/consent.d.ts +2 -0
  307. package/types/utils/constants/index.d.ts +3 -0
  308. package/types/utils/lang/index.d.ts +6 -5
  309. package/types/utils/lang/maps.d.ts +7 -0
  310. package/types/utils/settingsValidation/consent.d.ts +6 -0
  311. package/types/utils/settingsValidation/impressionsMode.d.ts +1 -1
  312. package/types/utils/settingsValidation/runtime/browser.d.ts +2 -0
  313. package/types/utils/settingsValidation/runtime/node.d.ts +2 -0
  314. package/types/utils/settingsValidation/runtime.d.ts +2 -0
  315. package/types/utils/settingsValidation/types.d.ts +12 -6
  316. package/types/utils/settingsValidation/userConsent.d.ts +5 -0
@@ -9,7 +9,7 @@ var lang_1 = require("../../utils/lang");
9
9
  * Supported by all JS runtimes.
10
10
  */
11
11
  var SplitsCacheInMemory = /** @class */ (function (_super) {
12
- tslib_1.__extends(SplitsCacheInMemory, _super);
12
+ (0, tslib_1.__extends)(SplitsCacheInMemory, _super);
13
13
  function SplitsCacheInMemory() {
14
14
  var _this = _super !== null && _super.apply(this, arguments) || this;
15
15
  _this.splitsCache = {};
@@ -34,7 +34,7 @@ var SplitsCacheInMemory = /** @class */ (function (_super) {
34
34
  if (!this.ttCache[previousTtName])
35
35
  delete this.ttCache[previousTtName];
36
36
  }
37
- if (AbstractSplitsCacheSync_1.usesSegments(previousSplit)) { // Substract from segments count for the previous version of this Split.
37
+ if ((0, AbstractSplitsCacheSync_1.usesSegments)(previousSplit)) { // Substract from segments count for the previous version of this Split.
38
38
  this.splitsWithSegmentsCount--;
39
39
  }
40
40
  }
@@ -50,7 +50,7 @@ var SplitsCacheInMemory = /** @class */ (function (_super) {
50
50
  this.ttCache[ttName]++;
51
51
  }
52
52
  // Add to segments count for the new version of the Split
53
- if (AbstractSplitsCacheSync_1.usesSegments(parsedSplit))
53
+ if ((0, AbstractSplitsCacheSync_1.usesSegments)(parsedSplit))
54
54
  this.splitsWithSegmentsCount++;
55
55
  return true;
56
56
  }
@@ -71,7 +71,7 @@ var SplitsCacheInMemory = /** @class */ (function (_super) {
71
71
  delete this.ttCache[ttName];
72
72
  }
73
73
  // Update the segments count.
74
- if (AbstractSplitsCacheSync_1.usesSegments(parsedSplit))
74
+ if ((0, AbstractSplitsCacheSync_1.usesSegments)(parsedSplit))
75
75
  this.splitsWithSegmentsCount--;
76
76
  return true;
77
77
  }
@@ -93,7 +93,7 @@ var SplitsCacheInMemory = /** @class */ (function (_super) {
93
93
  return Object.keys(this.splitsCache);
94
94
  };
95
95
  SplitsCacheInMemory.prototype.trafficTypeExists = function (trafficType) {
96
- return lang_1.isFiniteNumber(this.ttCache[trafficType]) && this.ttCache[trafficType] > 0;
96
+ return (0, lang_1.isFiniteNumber)(this.ttCache[trafficType]) && this.ttCache[trafficType] > 0;
97
97
  };
98
98
  SplitsCacheInMemory.prototype.usesSegments = function () {
99
99
  return this.getChangeNumber() === -1 || this.splitsWithSegmentsCount > 0;
@@ -8,7 +8,7 @@ var LatenciesCacheInRedis = /** @class */ (function () {
8
8
  this.redis = redis;
9
9
  }
10
10
  LatenciesCacheInRedis.prototype.track = function (metricName, latency) {
11
- var bucketNumber = findLatencyIndex_1.findLatencyIndex(latency);
11
+ var bucketNumber = (0, findLatencyIndex_1.findLatencyIndex)(latency);
12
12
  return this.redis.incr(this.keys.buildLatencyKey(metricName, bucketNumber)).catch(function () {
13
13
  // noop, for telemetry metrics there's no need to throw.
14
14
  }).then(function () { return true; });
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RedisAdapter = void 0;
4
4
  var tslib_1 = require("tslib");
5
- var ioredis_1 = tslib_1.__importDefault(require("ioredis"));
5
+ var ioredis_1 = (0, tslib_1.__importDefault)(require("ioredis"));
6
6
  var lang_1 = require("../../utils/lang");
7
7
  var sets_1 = require("../../utils/lang/sets");
8
8
  var thenable_1 = require("../../utils/promise/thenable");
@@ -25,7 +25,7 @@ var DEFAULT_LIBRARY_OPTIONS = {
25
25
  * Redis adapter on top of the library of choice (written with ioredis) for some extra control.
26
26
  */
27
27
  var RedisAdapter = /** @class */ (function (_super) {
28
- tslib_1.__extends(RedisAdapter, _super);
28
+ (0, tslib_1.__extends)(RedisAdapter, _super);
29
29
  function RedisAdapter(log, storageSettings) {
30
30
  var _this = this;
31
31
  var options = RedisAdapter._defineOptions(storageSettings);
@@ -66,7 +66,7 @@ var RedisAdapter = /** @class */ (function (_super) {
66
66
  instance.log.debug(LOG_PREFIX + ("Executing " + method + "."));
67
67
  // Return original method
68
68
  var result = originalMethod.apply(instance, params);
69
- if (thenable_1.thenable(result)) {
69
+ if ((0, thenable_1.thenable)(result)) {
70
70
  // For handling pending commands on disconnect, add to the set and remove once finished.
71
71
  // On sync commands there's no need, only thenables.
72
72
  instance._runningCommands.add(result);
@@ -75,7 +75,7 @@ var RedisAdapter = /** @class */ (function (_super) {
75
75
  };
76
76
  // Both success and error remove from queue.
77
77
  result.then(cleanUpRunningCommandsCb, cleanUpRunningCommandsCb);
78
- return timeout_1.timeout(instance._options.operationTimeout, result).catch(function (err) {
78
+ return (0, timeout_1.timeout)(instance._options.operationTimeout, result).catch(function (err) {
79
79
  instance.log.error(LOG_PREFIX + (method + " operation threw an error or exceeded configured timeout of " + instance._options.operationTimeout + "ms. Message: " + err));
80
80
  // Handling is not the adapter responsibility.
81
81
  throw err;
@@ -110,7 +110,7 @@ var RedisAdapter = /** @class */ (function (_super) {
110
110
  setTimeout(function deferedDisconnect() {
111
111
  if (instance._runningCommands.size > 0) {
112
112
  instance.log.info(LOG_PREFIX + ("Attempting to disconnect but there are " + instance._runningCommands.size + " commands still waiting for resolution. Defering disconnection until those finish."));
113
- Promise.all(sets_1.setToArray(instance._runningCommands))
113
+ Promise.all((0, sets_1.setToArray)(instance._runningCommands))
114
114
  .then(function () {
115
115
  instance.log.debug(LOG_PREFIX + 'Pending commands finished successfully, disconnecting.');
116
116
  originalMethod.apply(instance, params);
@@ -133,10 +133,10 @@ var RedisAdapter = /** @class */ (function (_super) {
133
133
  * Keeping both redis setup options for backwards compatibility.
134
134
  */
135
135
  RedisAdapter._defineLibrarySettings = function (options) {
136
- var opts = lang_1.merge({}, DEFAULT_LIBRARY_OPTIONS);
136
+ var opts = (0, lang_1.merge)({}, DEFAULT_LIBRARY_OPTIONS);
137
137
  var result = [opts];
138
- if (!lang_1.isString(options.url)) {
139
- lang_1.merge(opts, {
138
+ if (!(0, lang_1.isString)(options.url)) {
139
+ (0, lang_1.merge)(opts, {
140
140
  host: options.host,
141
141
  port: options.port,
142
142
  db: options.db,
@@ -146,17 +146,30 @@ var RedisAdapter = /** @class */ (function (_super) {
146
146
  else { // If it IS the string URL, that'll be the first param for ioredis.
147
147
  result.unshift(options.url);
148
148
  }
149
+ if (options.connectionTimeout) {
150
+ (0, lang_1.merge)(opts, { connectTimeout: options.connectionTimeout });
151
+ }
152
+ if (options.tls) {
153
+ (0, lang_1.merge)(opts, { tls: options.tls });
154
+ }
149
155
  return result;
150
156
  };
151
157
  /**
152
158
  * Parses the options into what we care about.
153
159
  */
154
160
  RedisAdapter._defineOptions = function (_a) {
155
- var connectionTimeout = _a.connectionTimeout, operationTimeout = _a.operationTimeout, url = _a.url, host = _a.host, port = _a.port, db = _a.db, pass = _a.pass;
161
+ var connectionTimeout = _a.connectionTimeout, operationTimeout = _a.operationTimeout, url = _a.url, host = _a.host, port = _a.port, db = _a.db, pass = _a.pass, tls = _a.tls;
156
162
  var parsedOptions = {
157
- connectionTimeout: connectionTimeout, operationTimeout: operationTimeout, url: url, host: host, port: port, db: db, pass: pass
163
+ connectionTimeout: connectionTimeout,
164
+ operationTimeout: operationTimeout,
165
+ url: url,
166
+ host: host,
167
+ port: port,
168
+ db: db,
169
+ pass: pass,
170
+ tls: tls
158
171
  };
159
- return lang_1.merge({}, DEFAULT_OPTIONS, parsedOptions);
172
+ return (0, lang_1.merge)({}, DEFAULT_OPTIONS, parsedOptions);
160
173
  };
161
174
  return RedisAdapter;
162
175
  }(ioredis_1.default));
@@ -37,7 +37,7 @@ var SegmentsCacheInRedis = /** @class */ (function () {
37
37
  var _this = this;
38
38
  return this.redis.get(this.keys.buildSegmentTillKey(name)).then(function (value) {
39
39
  var i = parseInt(value, 10);
40
- return lang_1.isNaNNumber(i) ? -1 : i;
40
+ return (0, lang_1.isNaNNumber)(i) ? -1 : i;
41
41
  }).catch(function (e) {
42
42
  _this.log.error(constants_1.LOG_PREFIX + 'Could not retrieve changeNumber from segments storage. Error: ' + e);
43
43
  return -1;
@@ -20,7 +20,7 @@ function processPipelineAnswer(results) {
20
20
  * Supported by Node.
21
21
  */
22
22
  var SplitsCacheInRedis = /** @class */ (function (_super) {
23
- tslib_1.__extends(SplitsCacheInRedis, _super);
23
+ (0, tslib_1.__extends)(SplitsCacheInRedis, _super);
24
24
  function SplitsCacheInRedis(log, keys, redis) {
25
25
  var _this = _super.call(this) || this;
26
26
  _this.log = log;
@@ -142,7 +142,7 @@ var SplitsCacheInRedis = /** @class */ (function (_super) {
142
142
  var _this = this;
143
143
  return this.redis.get(this.keys.buildSplitsTillKey()).then(function (value) {
144
144
  var i = parseInt(value, 10);
145
- return lang_1.isNaNNumber(i) ? -1 : i;
145
+ return (0, lang_1.isNaNNumber)(i) ? -1 : i;
146
146
  }).catch(function (e) {
147
147
  _this.log.error(constants_1.LOG_PREFIX + 'Could not retrieve changeNumber from storage. Error: ' + e);
148
148
  return -1;
@@ -183,7 +183,7 @@ var SplitsCacheInRedis = /** @class */ (function (_super) {
183
183
  if (ttCount === null)
184
184
  return false; // if entry doesn't exist, means that TT doesn't exist
185
185
  ttCount = parseInt(ttCount, 10);
186
- if (!lang_1.isFiniteNumber(ttCount) || ttCount < 0) {
186
+ if (!(0, lang_1.isFiniteNumber)(ttCount) || ttCount < 0) {
187
187
  _this.log.info(constants_1.LOG_PREFIX + ("Could not validate traffic type existance of " + trafficType + " due to data corruption of some sorts."));
188
188
  return false;
189
189
  }
@@ -17,7 +17,7 @@ var constants_1 = require("../../utils/constants");
17
17
  */
18
18
  function InRedisStorage(options) {
19
19
  if (options === void 0) { options = {}; }
20
- var prefix = KeyBuilder_1.validatePrefix(options.prefix);
20
+ var prefix = (0, KeyBuilder_1.validatePrefix)(options.prefix);
21
21
  function InRedisStorageFactory(_a) {
22
22
  var log = _a.log, metadata = _a.metadata, onReadyCb = _a.onReadyCb;
23
23
  var keys = new KeyBuilderSS_1.KeyBuilderSS(prefix, metadata);
@@ -66,7 +66,7 @@ var SegmentsCachePluggable = /** @class */ (function () {
66
66
  var _this = this;
67
67
  return this.wrapper.get(this.keys.buildSegmentTillKey(name)).then(function (value) {
68
68
  var i = parseInt(value, 10);
69
- return lang_1.isNaNNumber(i) ? -1 : i;
69
+ return (0, lang_1.isNaNNumber)(i) ? -1 : i;
70
70
  }).catch(function (e) {
71
71
  _this.log.error(constants_1.LOG_PREFIX + 'Could not retrieve changeNumber from segments storage. Error: ' + e);
72
72
  return -1;
@@ -9,7 +9,7 @@ var AbstractSplitsCacheAsync_1 = require("../AbstractSplitsCacheAsync");
9
9
  * ISplitsCacheAsync implementation for pluggable storages.
10
10
  */
11
11
  var SplitsCachePluggable = /** @class */ (function (_super) {
12
- tslib_1.__extends(SplitsCachePluggable, _super);
12
+ (0, tslib_1.__extends)(SplitsCachePluggable, _super);
13
13
  /**
14
14
  * Create a SplitsCache that uses a storage wrapper.
15
15
  * @param log Logger instance.
@@ -154,7 +154,7 @@ var SplitsCachePluggable = /** @class */ (function (_super) {
154
154
  if (ttCount === null)
155
155
  return false; // if entry doesn't exist, means that TT doesn't exist
156
156
  ttCount = parseInt(ttCount, 10);
157
- if (!lang_1.isFiniteNumber(ttCount) || ttCount < 0) {
157
+ if (!(0, lang_1.isFiniteNumber)(ttCount) || ttCount < 0) {
158
158
  _this.log.info(constants_1.LOG_PREFIX + ("Could not validate traffic type existence of " + trafficType + " due to data corruption of some sorts."));
159
159
  return false;
160
160
  }
@@ -182,7 +182,7 @@ var SplitsCachePluggable = /** @class */ (function (_super) {
182
182
  var _this = this;
183
183
  return this.wrapper.get(this.keys.buildSplitsTillKey()).then(function (value) {
184
184
  var i = parseInt(value, 10);
185
- return lang_1.isNaNNumber(i) ? -1 : i;
185
+ return (0, lang_1.isNaNNumber)(i) ? -1 : i;
186
186
  }).catch(function (e) {
187
187
  _this.log.error(constants_1.LOG_PREFIX + 'Could not retrieve changeNumber from storage. Error: ' + e);
188
188
  return -1;
@@ -35,11 +35,11 @@ function inMemoryWrapperFactory(connDelay) {
35
35
  return Promise.resolve(result);
36
36
  },
37
37
  getKeysByPrefix: function (prefix) {
38
- return Promise.resolve(Object.keys(_cache).filter(function (key) { return lang_1.startsWith(key, prefix); }));
38
+ return Promise.resolve(Object.keys(_cache).filter(function (key) { return (0, lang_1.startsWith)(key, prefix); }));
39
39
  },
40
40
  incr: function (key) {
41
41
  if (key in _cache) {
42
- var count = lang_1.toNumber(_cache[key]) + 1;
42
+ var count = (0, lang_1.toNumber)(_cache[key]) + 1;
43
43
  if (isNaN(count))
44
44
  return Promise.reject('Given key is not a number');
45
45
  _cache[key] = count + '';
@@ -52,7 +52,7 @@ function inMemoryWrapperFactory(connDelay) {
52
52
  },
53
53
  decr: function (key) {
54
54
  if (key in _cache) {
55
- var count = lang_1.toNumber(_cache[key]) - 1;
55
+ var count = (0, lang_1.toNumber)(_cache[key]) - 1;
56
56
  if (isNaN(count))
57
57
  return Promise.reject('Given key is not a number');
58
58
  _cache[key] = count + '';
@@ -117,7 +117,7 @@ function inMemoryWrapperFactory(connDelay) {
117
117
  if (!set)
118
118
  return Promise.resolve([]);
119
119
  if (set instanceof sets_1._Set)
120
- return Promise.resolve(sets_1.setToArray(set));
120
+ return Promise.resolve((0, sets_1.setToArray)(set));
121
121
  return Promise.reject('key is not a set');
122
122
  },
123
123
  // always connects and disconnects
@@ -23,7 +23,7 @@ var NO_VALID_WRAPPER_INTERFACE = 'The provided wrapper instance doesn’t follow
23
23
  * @throws Will throw an error if the options are invalid. Example: wrapper is not provided or doesn't have some methods.
24
24
  */
25
25
  function validatePluggableStorageOptions(options) {
26
- if (!lang_1.isObject(options) || !lang_1.isObject(options.wrapper))
26
+ if (!(0, lang_1.isObject)(options) || !(0, lang_1.isObject)(options.wrapper))
27
27
  throw new Error(NO_VALID_WRAPPER);
28
28
  var wrapper = options.wrapper;
29
29
  var missingMethods = wrapperAdapter_1.METHODS_TO_PROMISE_WRAP.filter(function (method) { return typeof wrapper[method] !== 'function'; });
@@ -52,18 +52,18 @@ function promisifyEventsTrack(events) {
52
52
  */
53
53
  function PluggableStorage(options) {
54
54
  validatePluggableStorageOptions(options);
55
- var prefix = KeyBuilder_1.validatePrefix(options.prefix);
55
+ var prefix = (0, KeyBuilder_1.validatePrefix)(options.prefix);
56
56
  function PluggableStorageFactory(_a) {
57
- var log = _a.log, metadata = _a.metadata, onReadyCb = _a.onReadyCb, mode = _a.mode, eventsQueueSize = _a.eventsQueueSize, optimize = _a.optimize;
57
+ var log = _a.log, metadata = _a.metadata, onReadyCb = _a.onReadyCb, mode = _a.mode, eventsQueueSize = _a.eventsQueueSize, impressionsQueueSize = _a.impressionsQueueSize, optimize = _a.optimize;
58
58
  var keys = new KeyBuilderSS_1.KeyBuilderSS(prefix, metadata);
59
- var wrapper = wrapperAdapter_1.wrapperAdapter(log, options.wrapper);
59
+ var wrapper = (0, wrapperAdapter_1.wrapperAdapter)(log, options.wrapper);
60
60
  var isPartialConsumer = mode === constants_1.CONSUMER_PARTIAL_MODE;
61
61
  // Connects to wrapper and emits SDK_READY event on main client
62
62
  wrapperConnect(wrapper, onReadyCb);
63
63
  return {
64
64
  splits: new SplitsCachePluggable_1.SplitsCachePluggable(log, keys, wrapper),
65
65
  segments: new SegmentsCachePluggable_1.SegmentsCachePluggable(log, keys, wrapper),
66
- impressions: isPartialConsumer ? new ImpressionsCacheInMemory_1.ImpressionsCacheInMemory() : new ImpressionsCachePluggable_1.ImpressionsCachePluggable(log, keys.buildImpressionsKey(), wrapper, metadata),
66
+ impressions: isPartialConsumer ? new ImpressionsCacheInMemory_1.ImpressionsCacheInMemory(impressionsQueueSize) : new ImpressionsCachePluggable_1.ImpressionsCachePluggable(log, keys.buildImpressionsKey(), wrapper, metadata),
67
67
  impressionCounts: optimize ? new ImpressionCountsCacheInMemory_1.ImpressionCountsCacheInMemory() : undefined,
68
68
  events: isPartialConsumer ? promisifyEventsTrack(new EventsCacheInMemory_1.EventsCacheInMemory(eventsQueueSize)) : new EventsCachePluggable_1.EventsCachePluggable(log, keys.buildEventsKey(), wrapper, metadata),
69
69
  // @TODO add telemetry cache when required
@@ -74,7 +74,7 @@ function PluggableStorage(options) {
74
74
  // emits SDK_READY event on shared clients and returns a reference to the storage
75
75
  shared: function (_, onReadyCb) {
76
76
  wrapperConnect(wrapper, onReadyCb);
77
- return tslib_1.__assign(tslib_1.__assign({}, this), {
77
+ return (0, tslib_1.__assign)((0, tslib_1.__assign)({}, this), {
78
78
  // no-op destroy, to disconnect the wrapper only when the main client is destroyed
79
79
  destroy: function () { } });
80
80
  }
@@ -5,7 +5,7 @@ var splitsParserFromFile_1 = require("./splitsParser/splitsParserFromFile");
5
5
  var syncManagerOffline_1 = require("./syncManagerOffline");
6
6
  // Singleton instance of the factory function for offline SyncManager from YAML file (a.k.a. localhostFromFile)
7
7
  // Requires Node 'fs' and 'path' APIs.
8
- var localhostFromFile = syncManagerOffline_1.syncManagerOfflineFactory(splitsParserFromFile_1.splitsParserFromFileFactory);
8
+ var localhostFromFile = (0, syncManagerOffline_1.syncManagerOfflineFactory)(splitsParserFromFile_1.splitsParserFromFileFactory);
9
9
  localhostFromFile.type = 'LocalhostFromFile';
10
10
  function LocalhostFromFile() {
11
11
  return localhostFromFile;
@@ -5,7 +5,7 @@ var splitsParserFromSettings_1 = require("./splitsParser/splitsParserFromSetting
5
5
  var syncManagerOffline_1 = require("./syncManagerOffline");
6
6
  // Singleton instance of the factory function for offline SyncManager from object (a.k.a. localhostFromObject)
7
7
  // SDK instances instantiate their SyncManagers with the same factory
8
- var localhostFromObject = syncManagerOffline_1.syncManagerOfflineFactory(splitsParserFromSettings_1.splitsParserFromSettingsFactory);
8
+ var localhostFromObject = (0, syncManagerOffline_1.syncManagerOfflineFactory)(splitsParserFromSettings_1.splitsParserFromSettingsFactory);
9
9
  localhostFromObject.type = 'LocalhostFromObject';
10
10
  function LocalhostFromObject() {
11
11
  return localhostFromObject;
@@ -15,7 +15,7 @@ function parseCondition(data) {
15
15
  matcherType: 'WHITELIST',
16
16
  negate: false,
17
17
  whitelistMatcherData: {
18
- whitelist: lang_1.isString(data.keys) ? [data.keys] : data.keys
18
+ whitelist: (0, lang_1.isString)(data.keys) ? [data.keys] : data.keys
19
19
  }
20
20
  }
21
21
  ]
@@ -4,16 +4,16 @@ exports.splitsParserFromFileFactory = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  /* eslint-disable no-undef */
6
6
  // @TODO consider moving it to Node-SDK and remove js-yaml dependency from Js-commons
7
- var fs_1 = tslib_1.__importDefault(require("fs"));
8
- var path_1 = tslib_1.__importDefault(require("path"));
7
+ var fs_1 = (0, tslib_1.__importDefault)(require("fs"));
8
+ var path_1 = (0, tslib_1.__importDefault)(require("path"));
9
9
  // @ts-ignore
10
- var js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
10
+ var js_yaml_1 = (0, tslib_1.__importDefault)(require("js-yaml"));
11
11
  var lang_1 = require("../../../utils/lang");
12
12
  var parseCondition_1 = require("./parseCondition");
13
13
  var logPrefix = 'sync:offline:splits-fetcher: ';
14
14
  var DEFAULT_FILENAME = '.split';
15
15
  function configFilesPath(configFilePath) {
16
- if (configFilePath === DEFAULT_FILENAME || !lang_1.isString(configFilePath)) {
16
+ if (configFilePath === DEFAULT_FILENAME || !(0, lang_1.isString)(configFilePath)) {
17
17
  var root = process.env.HOME;
18
18
  if (process.env.SPLIT_CONFIG_ROOT)
19
19
  root = process.env.SPLIT_CONFIG_ROOT;
@@ -22,7 +22,7 @@ function configFilesPath(configFilePath) {
22
22
  configFilePath = path_1.default.join(root, DEFAULT_FILENAME);
23
23
  }
24
24
  // Validate the extensions
25
- if (!(lang_1.endsWith(configFilePath, '.yaml', true) || lang_1.endsWith(configFilePath, '.yml', true) || lang_1.endsWith(configFilePath, '.split', true)))
25
+ if (!((0, lang_1.endsWith)(configFilePath, '.yaml', true) || (0, lang_1.endsWith)(configFilePath, '.yml', true) || (0, lang_1.endsWith)(configFilePath, '.split', true)))
26
26
  throw new Error("Invalid extension specified for Splits mock file. Accepted extensions are \".yml\" and \".yaml\". Your specified file is " + configFilePath);
27
27
  if (!fs_1.default.existsSync(configFilePath))
28
28
  throw new Error("Split configuration not found in " + configFilePath + " - Please review your Split file location.");
@@ -32,13 +32,13 @@ function configFilesPath(configFilePath) {
32
32
  // for behaviour that's ensured by the BE.
33
33
  function arrangeConditions(mocksData) {
34
34
  // Iterate through each Split data
35
- lang_1.forOwn(mocksData, function (data) {
35
+ (0, lang_1.forOwn)(mocksData, function (data) {
36
36
  var conditions = data.conditions;
37
37
  // On the manager, as the split jsons come with all treatments on the partitions prop,
38
38
  // we'll add all the treatments to the first condition.
39
- var firstRolloutCondition = lang_1.find(conditions, function (cond) { return cond.conditionType === 'ROLLOUT'; });
39
+ var firstRolloutCondition = (0, lang_1.find)(conditions, function (cond) { return cond.conditionType === 'ROLLOUT'; });
40
40
  // Malformed mocks may have
41
- var treatments = lang_1.uniq(data.treatments);
41
+ var treatments = (0, lang_1.uniq)(data.treatments);
42
42
  // If they're only specifying a whitelist we add the treatments there.
43
43
  var allTreatmentsCondition = firstRolloutCondition ? firstRolloutCondition : conditions[0];
44
44
  var fullyAllocatedTreatment = allTreatmentsCondition.partitions[0].treatment;
@@ -66,7 +66,7 @@ function splitsParserFromFileFactory() {
66
66
  data = fs_1.default.readFileSync(filePath, 'utf-8');
67
67
  }
68
68
  catch (e) {
69
- log.error(e.message);
69
+ log.error(e && e.message);
70
70
  return {};
71
71
  }
72
72
  if (data === previousMock)
@@ -84,7 +84,7 @@ function splitsParserFromFileFactory() {
84
84
  }
85
85
  else {
86
86
  var splitName = tuple[SPLIT_POSITION];
87
- var condition = parseCondition_1.parseCondition({ treatment: tuple[TREATMENT_POSITION] });
87
+ var condition = (0, parseCondition_1.parseCondition)({ treatment: tuple[TREATMENT_POSITION] });
88
88
  accum[splitName] = { conditions: [condition], configurations: {}, trafficTypeName: 'localhost' };
89
89
  }
90
90
  }
@@ -110,7 +110,7 @@ function splitsParserFromFileFactory() {
110
110
  // Each entry will be mapped to a condition, but we'll also keep the configurations map.
111
111
  var mocksData = yamldoc.reduce(function (accum, splitEntry) {
112
112
  var splitName = Object.keys(splitEntry)[0];
113
- if (!splitName || !lang_1.isString(splitEntry[splitName].treatment))
113
+ if (!splitName || !(0, lang_1.isString)(splitEntry[splitName].treatment))
114
114
  log.error(logPrefix + 'Ignoring entry on YAML since the format is incorrect.');
115
115
  var mockData = splitEntry[splitName];
116
116
  // "Template" for each split accumulated data
@@ -123,7 +123,7 @@ function splitsParserFromFileFactory() {
123
123
  if (mockData.config)
124
124
  accum[splitName].configurations[mockData.treatment] = mockData.config;
125
125
  // Parse the condition from the entry.
126
- var condition = parseCondition_1.parseCondition(mockData);
126
+ var condition = (0, parseCondition_1.parseCondition)(mockData);
127
127
  accum[splitName].conditions[condition.conditionType === 'ROLLOUT' ? 'push' : 'unshift'](condition);
128
128
  // Also keep track of the treatments, will be useful for manager functionality.
129
129
  accum[splitName].treatments.push(mockData.treatment);
@@ -138,7 +138,7 @@ function splitsParserFromFileFactory() {
138
138
  var filePath = configFilesPath(features);
139
139
  var mockData;
140
140
  // If we have a filePath, it means the extension is correct, choose the parser.
141
- if (lang_1.endsWith(filePath, '.split')) {
141
+ if ((0, lang_1.endsWith)(filePath, '.split')) {
142
142
  log.warn(logPrefix + '.split mocks will be deprecated soon in favor of YAML files, which provide more targeting power. Take a look in our documentation.');
143
143
  mockData = readSplitConfigFile(log, filePath);
144
144
  }
@@ -40,10 +40,10 @@ function splitsParserFromSettingsFactory() {
40
40
  if (!mockUpdated(features))
41
41
  return false;
42
42
  var splitObjects = {};
43
- lang_1.forOwn(features, function (data, splitName) {
43
+ (0, lang_1.forOwn)(features, function (data, splitName) {
44
44
  var treatment = data;
45
45
  var config = null;
46
- if (lang_1.isObject(data)) {
46
+ if ((0, lang_1.isObject)(data)) {
47
47
  treatment = data.treatment;
48
48
  config = data.config || config;
49
49
  }
@@ -52,7 +52,7 @@ function splitsParserFromSettingsFactory() {
52
52
  configurations[treatment] = config;
53
53
  splitObjects[splitName] = {
54
54
  trafficTypeName: 'localhost',
55
- conditions: [parseCondition_1.parseCondition({ treatment: treatment })],
55
+ conditions: [(0, parseCondition_1.parseCondition)({ treatment: treatment })],
56
56
  configurations: configurations
57
57
  };
58
58
  });
@@ -19,7 +19,7 @@ function syncManagerOfflineFactory(splitsParserFactory) {
19
19
  */
20
20
  return function (_a) {
21
21
  var settings = _a.settings, readiness = _a.readiness, storage = _a.storage;
22
- return objectAssign_1.objectAssign(fromObjectSyncTask_1.fromObjectSyncTaskFactory(splitsParserFactory(), storage, readiness, settings), {
22
+ return (0, objectAssign_1.objectAssign)((0, fromObjectSyncTask_1.fromObjectSyncTaskFactory)(splitsParserFactory(), storage, readiness, settings), {
23
23
  // fake flush, that resolves immediately
24
24
  flush: flush,
25
25
  // [Only used for client-side]
@@ -25,7 +25,7 @@ function fromObjectUpdaterFactory(splitsParser, storage, readiness, settings) {
25
25
  }
26
26
  if (!loadError && splitsMock) {
27
27
  log.debug(constants_3.SYNC_OFFLINE_DATA, [JSON.stringify(splitsMock)]);
28
- lang_1.forOwn(splitsMock, function (val, name) {
28
+ (0, lang_1.forOwn)(splitsMock, function (val, name) {
29
29
  splits.push([
30
30
  name,
31
31
  JSON.stringify({
@@ -68,6 +68,6 @@ exports.fromObjectUpdaterFactory = fromObjectUpdaterFactory;
68
68
  * PollingManager in Offline mode
69
69
  */
70
70
  function fromObjectSyncTaskFactory(splitsParser, storage, readiness, settings) {
71
- return syncTask_1.syncTaskFactory(settings.log, fromObjectUpdaterFactory(splitsParser, storage, readiness, settings), settings.scheduler.offlineRefreshRate, 'offlineUpdater');
71
+ return (0, syncTask_1.syncTaskFactory)(settings.log, fromObjectUpdaterFactory(splitsParser, storage, readiness, settings), settings.scheduler.offlineRefreshRate, 'offlineUpdater');
72
72
  }
73
73
  exports.fromObjectSyncTaskFactory = fromObjectSyncTaskFactory;
@@ -5,8 +5,8 @@ exports.mySegmentsFetcherFactory = void 0;
5
5
  * Factory of MySegments fetcher.
6
6
  * MySegments fetcher is a wrapper around `mySegments` API service that parses the response and handle errors.
7
7
  */
8
- function mySegmentsFetcherFactory(fetchMySegments, userMatchingKey) {
9
- return function mySegmentsFetcher(noCache,
8
+ function mySegmentsFetcherFactory(fetchMySegments) {
9
+ return function mySegmentsFetcher(userMatchingKey, noCache,
10
10
  // Optional decorator for `fetchMySegments` promise, such as timeout or time tracker
11
11
  decorator) {
12
12
  var mySegmentsPromise = fetchMySegments(userMatchingKey, noCache);
@@ -12,7 +12,7 @@ function greedyFetch(fetchSegmentChanges, since, segmentName, noCache) {
12
12
  }
13
13
  else {
14
14
  return Promise.all([json, greedyFetch(fetchSegmentChanges, till, segmentName, noCache)]).then(function (flatMe) {
15
- return tslib_1.__spreadArrays([flatMe[0]], flatMe[1]);
15
+ return (0, tslib_1.__spreadArray)([flatMe[0]], flatMe[1], true);
16
16
  });
17
17
  }
18
18
  });
@@ -11,20 +11,21 @@ var constants_2 = require("../../logger/constants");
11
11
  * Expose start / stop mechanism for polling data from services.
12
12
  * For client-side API with multiple clients.
13
13
  */
14
- function pollingManagerCSFactory(splitApi, storage, readiness, settings) {
14
+ function pollingManagerCSFactory(params) {
15
+ var splitApi = params.splitApi, storage = params.storage, readiness = params.readiness, settings = params.settings;
15
16
  var log = settings.log;
16
- var splitsSyncTask = splitsSyncTask_1.splitsSyncTaskFactory(splitApi.fetchSplitChanges, storage, readiness, settings);
17
+ var splitsSyncTask = (0, splitsSyncTask_1.splitsSyncTaskFactory)(splitApi.fetchSplitChanges, storage, readiness, settings);
17
18
  // Map of matching keys to their corresponding MySegmentsSyncTask.
18
19
  var mySegmentsSyncTasks = {};
19
- var matchingKey = key_1.getMatching(settings.core.key);
20
+ var matchingKey = (0, key_1.getMatching)(settings.core.key);
20
21
  var mySegmentsSyncTask = add(matchingKey, readiness, storage);
21
22
  function startMySegmentsSyncTasks() {
22
- lang_1.forOwn(mySegmentsSyncTasks, function (mySegmentsSyncTask) {
23
+ (0, lang_1.forOwn)(mySegmentsSyncTasks, function (mySegmentsSyncTask) {
23
24
  mySegmentsSyncTask.start();
24
25
  });
25
26
  }
26
27
  function stopMySegmentsSyncTasks() {
27
- lang_1.forOwn(mySegmentsSyncTasks, function (mySegmentsSyncTask) {
28
+ (0, lang_1.forOwn)(mySegmentsSyncTasks, function (mySegmentsSyncTask) {
28
29
  if (mySegmentsSyncTask.isRunning())
29
30
  mySegmentsSyncTask.stop();
30
31
  });
@@ -45,7 +46,7 @@ function pollingManagerCSFactory(splitApi, storage, readiness, settings) {
45
46
  }
46
47
  });
47
48
  function add(matchingKey, readiness, storage) {
48
- var mySegmentsSyncTask = mySegmentsSyncTask_1.mySegmentsSyncTaskFactory(splitApi.fetchMySegments, storage, readiness, settings, matchingKey);
49
+ var mySegmentsSyncTask = (0, mySegmentsSyncTask_1.mySegmentsSyncTaskFactory)(splitApi.fetchMySegments, storage, readiness, settings, matchingKey);
49
50
  // smart ready
50
51
  function smartReady() {
51
52
  if (!readiness.isReady() && !storage.splits.usesSegments())
@@ -80,7 +81,7 @@ function pollingManagerCSFactory(splitApi, storage, readiness, settings) {
80
81
  // fetch splits and segments
81
82
  syncAll: function () {
82
83
  var promises = [splitsSyncTask.execute()];
83
- lang_1.forOwn(mySegmentsSyncTasks, function (mySegmentsSyncTask) {
84
+ (0, lang_1.forOwn)(mySegmentsSyncTasks, function (mySegmentsSyncTask) {
84
85
  promises.push(mySegmentsSyncTask.execute());
85
86
  });
86
87
  return Promise.all(promises);
@@ -8,10 +8,11 @@ var constants_1 = require("../../logger/constants");
8
8
  /**
9
9
  * Expose start / stop mechanism for pulling data from services.
10
10
  */
11
- function pollingManagerSSFactory(splitApi, storage, readiness, settings) {
11
+ function pollingManagerSSFactory(params) {
12
+ var splitApi = params.splitApi, storage = params.storage, readiness = params.readiness, settings = params.settings;
12
13
  var log = settings.log;
13
- var splitsSyncTask = splitsSyncTask_1.splitsSyncTaskFactory(splitApi.fetchSplitChanges, storage, readiness, settings);
14
- var segmentsSyncTask = segmentsSyncTask_1.segmentsSyncTaskFactory(splitApi.fetchSegmentChanges, storage, readiness, settings);
14
+ var splitsSyncTask = (0, splitsSyncTask_1.splitsSyncTaskFactory)(splitApi.fetchSplitChanges, storage, readiness, settings);
15
+ var segmentsSyncTask = (0, segmentsSyncTask_1.segmentsSyncTaskFactory)(splitApi.fetchSegmentChanges, storage, readiness, settings);
15
16
  return {
16
17
  splitsSyncTask: splitsSyncTask,
17
18
  segmentsSyncTask: segmentsSyncTask,
@@ -21,7 +22,7 @@ function pollingManagerSSFactory(splitApi, storage, readiness, settings) {
21
22
  log.debug(constants_1.LOG_PREFIX_SYNC_POLLING + ("Splits will be refreshed each " + settings.scheduler.featuresRefreshRate + " millis"));
22
23
  log.debug(constants_1.LOG_PREFIX_SYNC_POLLING + ("Segments will be refreshed each " + settings.scheduler.segmentsRefreshRate + " millis"));
23
24
  var startingUp = splitsSyncTask.start();
24
- if (thenable_1.thenable(startingUp)) {
25
+ if ((0, thenable_1.thenable)(startingUp)) {
25
26
  startingUp.then(function () {
26
27
  segmentsSyncTask.start();
27
28
  });
@@ -8,6 +8,6 @@ var mySegmentsUpdater_1 = require("../updaters/mySegmentsUpdater");
8
8
  * Creates a sync task that periodically executes a `mySegmentsUpdater` task
9
9
  */
10
10
  function mySegmentsSyncTaskFactory(fetchMySegments, storage, readiness, settings, matchingKey) {
11
- return syncTask_1.syncTaskFactory(settings.log, mySegmentsUpdater_1.mySegmentsUpdaterFactory(settings.log, mySegmentsFetcher_1.mySegmentsFetcherFactory(fetchMySegments, matchingKey), storage.splits, storage.segments, readiness.segments, settings.startup.requestTimeoutBeforeReady, settings.startup.retriesOnFailureBeforeReady), settings.scheduler.segmentsRefreshRate, 'mySegmentsUpdater');
11
+ return (0, syncTask_1.syncTaskFactory)(settings.log, (0, mySegmentsUpdater_1.mySegmentsUpdaterFactory)(settings.log, (0, mySegmentsFetcher_1.mySegmentsFetcherFactory)(fetchMySegments), storage.splits, storage.segments, readiness.segments, settings.startup.requestTimeoutBeforeReady, settings.startup.retriesOnFailureBeforeReady, matchingKey), settings.scheduler.segmentsRefreshRate, 'mySegmentsUpdater');
12
12
  }
13
13
  exports.mySegmentsSyncTaskFactory = mySegmentsSyncTaskFactory;
@@ -8,6 +8,6 @@ var segmentChangesUpdater_1 = require("../updaters/segmentChangesUpdater");
8
8
  * Creates a sync task that periodically executes a `segmentChangesUpdater` task
9
9
  */
10
10
  function segmentsSyncTaskFactory(fetchSegmentChanges, storage, readiness, settings) {
11
- return syncTask_1.syncTaskFactory(settings.log, segmentChangesUpdater_1.segmentChangesUpdaterFactory(settings.log, segmentChangesFetcher_1.segmentChangesFetcherFactory(fetchSegmentChanges), storage.segments, readiness), settings.scheduler.segmentsRefreshRate, 'segmentChangesUpdater');
11
+ return (0, syncTask_1.syncTaskFactory)(settings.log, (0, segmentChangesUpdater_1.segmentChangesUpdaterFactory)(settings.log, (0, segmentChangesFetcher_1.segmentChangesFetcherFactory)(fetchSegmentChanges), storage.segments, readiness), settings.scheduler.segmentsRefreshRate, 'segmentChangesUpdater');
12
12
  }
13
13
  exports.segmentsSyncTaskFactory = segmentsSyncTaskFactory;
@@ -8,6 +8,6 @@ var splitChangesUpdater_1 = require("../updaters/splitChangesUpdater");
8
8
  * Creates a sync task that periodically executes a `splitChangesUpdater` task
9
9
  */
10
10
  function splitsSyncTaskFactory(fetchSplitChanges, storage, readiness, settings) {
11
- return syncTask_1.syncTaskFactory(settings.log, splitChangesUpdater_1.splitChangesUpdaterFactory(settings.log, splitChangesFetcher_1.splitChangesFetcherFactory(fetchSplitChanges), storage.splits, storage.segments, readiness.splits, settings.startup.requestTimeoutBeforeReady, settings.startup.retriesOnFailureBeforeReady), settings.scheduler.featuresRefreshRate, 'splitChangesUpdater');
11
+ return (0, syncTask_1.syncTaskFactory)(settings.log, (0, splitChangesUpdater_1.splitChangesUpdaterFactory)(settings.log, (0, splitChangesFetcher_1.splitChangesFetcherFactory)(fetchSplitChanges), storage.splits, storage.segments, readiness.splits, settings.startup.requestTimeoutBeforeReady, settings.startup.retriesOnFailureBeforeReady), settings.scheduler.featuresRefreshRate, 'splitChangesUpdater');
12
12
  }
13
13
  exports.splitsSyncTaskFactory = splitsSyncTaskFactory;
@@ -10,13 +10,13 @@ var constants_2 = require("../../../logger/constants");
10
10
  * - updates `mySegmentsCache`
11
11
  * - uses `segmentsEventEmitter` to emit events related to segments data updates
12
12
  */
13
- function mySegmentsUpdaterFactory(log, mySegmentsFetcher, splitsCache, mySegmentsCache, segmentsEventEmitter, requestTimeoutBeforeReady, retriesOnFailureBeforeReady) {
13
+ function mySegmentsUpdaterFactory(log, mySegmentsFetcher, splitsCache, mySegmentsCache, segmentsEventEmitter, requestTimeoutBeforeReady, retriesOnFailureBeforeReady, matchingKey) {
14
14
  var readyOnAlreadyExistentState = true;
15
15
  var startingUp = true;
16
16
  /** timeout and telemetry decorator for `splitChangesFetcher` promise */
17
17
  function _promiseDecorator(promise) {
18
18
  if (startingUp)
19
- promise = timeout_1.timeout(requestTimeoutBeforeReady, promise);
19
+ promise = (0, timeout_1.timeout)(requestTimeoutBeforeReady, promise);
20
20
  return promise;
21
21
  // @TODO telemetry
22
22
  // NOTE: We only collect metrics on startup.
@@ -54,7 +54,7 @@ function mySegmentsUpdaterFactory(log, mySegmentsFetcher, splitsCache, mySegment
54
54
  // If segmentsData is provided, there is no need to fetch mySegments
55
55
  new Promise(function (res) { updateSegments(segmentsData); res(true); }) :
56
56
  // If not provided, fetch mySegments
57
- mySegmentsFetcher(noCache, _promiseDecorator).then(function (segments) {
57
+ mySegmentsFetcher(matchingKey, noCache, _promiseDecorator).then(function (segments) {
58
58
  // Only when we have downloaded segments completely, we should not keep retrying anymore
59
59
  startingUp = false;
60
60
  updateSegments(segments);