@splitsoftware/splitio-commons 1.0.1-rc.5 → 1.2.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 (561) hide show
  1. package/CHANGES.txt +13 -3
  2. package/LICENSE +1 -1
  3. package/README.md +1 -1
  4. package/cjs/evaluator/Engine.js +6 -5
  5. package/cjs/evaluator/combiners/and.js +4 -4
  6. package/cjs/evaluator/combiners/ifelseif.js +4 -3
  7. package/cjs/evaluator/condition/index.js +4 -3
  8. package/cjs/evaluator/index.js +7 -7
  9. package/cjs/evaluator/matchers/all.js +2 -1
  10. package/cjs/evaluator/matchers/between.js +2 -1
  11. package/cjs/evaluator/matchers/boolean.js +2 -1
  12. package/cjs/evaluator/matchers/cont_all.js +3 -2
  13. package/cjs/evaluator/matchers/cont_any.js +3 -2
  14. package/cjs/evaluator/matchers/cont_str.js +2 -1
  15. package/cjs/evaluator/matchers/dependency.js +4 -4
  16. package/cjs/evaluator/matchers/eq.js +2 -1
  17. package/cjs/evaluator/matchers/eq_set.js +2 -1
  18. package/cjs/evaluator/matchers/ew.js +2 -1
  19. package/cjs/evaluator/matchers/gte.js +2 -1
  20. package/cjs/evaluator/matchers/index.js +36 -36
  21. package/cjs/evaluator/matchers/lte.js +2 -1
  22. package/cjs/evaluator/matchers/part_of.js +3 -2
  23. package/cjs/evaluator/matchers/segment.js +5 -5
  24. package/cjs/evaluator/matchers/string.js +2 -1
  25. package/cjs/evaluator/matchers/sw.js +2 -1
  26. package/cjs/evaluator/matchers/whitelist.js +2 -1
  27. package/cjs/evaluator/matchersTransform/index.js +12 -12
  28. package/cjs/evaluator/matchersTransform/segment.js +3 -2
  29. package/cjs/evaluator/matchersTransform/set.js +3 -2
  30. package/cjs/evaluator/matchersTransform/unaryNumeric.js +3 -2
  31. package/cjs/evaluator/matchersTransform/whitelist.js +3 -2
  32. package/cjs/evaluator/parser/index.js +16 -16
  33. package/cjs/evaluator/treatments/index.js +2 -1
  34. package/cjs/evaluator/value/index.js +5 -5
  35. package/cjs/evaluator/value/sanitize.js +2 -1
  36. package/cjs/integrations/browser.js +4 -4
  37. package/cjs/integrations/ga/GaToSplit.js +3 -4
  38. package/cjs/integrations/pluggable.js +3 -2
  39. package/cjs/listeners/browser.js +4 -4
  40. package/cjs/listeners/node.js +4 -4
  41. package/cjs/logger/index.js +2 -3
  42. package/cjs/logger/messages/info.js +1 -1
  43. package/cjs/logger/messages/warn.js +2 -2
  44. package/cjs/readiness/readinessManager.js +3 -4
  45. package/cjs/readiness/sdkReadinessManager.js +7 -7
  46. package/cjs/sdkClient/client.js +5 -5
  47. package/cjs/sdkClient/clientAttributesDecoration.js +108 -0
  48. package/cjs/sdkClient/clientCS.js +12 -10
  49. package/cjs/sdkClient/clientInputValidation.js +5 -5
  50. package/cjs/sdkClient/sdkClient.js +5 -6
  51. package/cjs/sdkClient/sdkClientMethodCS.js +4 -5
  52. package/cjs/sdkClient/sdkClientMethodCSWithTT.js +4 -5
  53. package/cjs/sdkFactory/index.js +9 -10
  54. package/cjs/sdkManager/index.js +6 -7
  55. package/cjs/services/splitApi.js +2 -3
  56. package/cjs/services/splitHttpClient.js +3 -4
  57. package/cjs/storages/AbstractSegmentsCacheSync.js +2 -1
  58. package/cjs/storages/AbstractSplitsCacheAsync.js +2 -1
  59. package/cjs/storages/AbstractSplitsCacheSync.js +2 -2
  60. package/cjs/storages/KeyBuilder.js +2 -2
  61. package/cjs/storages/KeyBuilderCS.js +4 -3
  62. package/cjs/storages/KeyBuilderSS.js +4 -3
  63. package/cjs/storages/findLatencyIndex.js +2 -1
  64. package/cjs/storages/inLocalStorage/MySegmentsCacheInLocal.js +4 -3
  65. package/cjs/storages/inLocalStorage/SplitsCacheInLocal.js +4 -3
  66. package/cjs/storages/inLocalStorage/index.js +20 -21
  67. package/cjs/storages/inMemory/AttributesCacheInMemory.js +70 -0
  68. package/cjs/storages/inMemory/CountsCacheInMemory.js +2 -1
  69. package/cjs/storages/inMemory/EventsCacheInMemory.js +2 -1
  70. package/cjs/storages/inMemory/ImpressionCountsCacheInMemory.js +2 -1
  71. package/cjs/storages/inMemory/ImpressionsCacheInMemory.js +2 -1
  72. package/cjs/storages/inMemory/InMemoryStorage.js +10 -11
  73. package/cjs/storages/inMemory/InMemoryStorageCS.js +12 -13
  74. package/cjs/storages/inMemory/LatenciesCacheInMemory.js +4 -4
  75. package/cjs/storages/inMemory/MySegmentsCacheInMemory.js +4 -3
  76. package/cjs/storages/inMemory/SegmentsCacheInMemory.js +4 -3
  77. package/cjs/storages/inMemory/SplitsCacheInMemory.js +4 -3
  78. package/cjs/storages/inRedis/CountsCacheInRedis.js +2 -1
  79. package/cjs/storages/inRedis/EventsCacheInRedis.js +2 -1
  80. package/cjs/storages/inRedis/ImpressionsCacheInRedis.js +2 -1
  81. package/cjs/storages/inRedis/LatenciesCacheInRedis.js +4 -4
  82. package/cjs/storages/inRedis/RedisAdapter.js +6 -5
  83. package/cjs/storages/inRedis/SegmentsCacheInRedis.js +2 -1
  84. package/cjs/storages/inRedis/SplitsCacheInRedis.js +4 -3
  85. package/cjs/storages/inRedis/index.js +16 -17
  86. package/cjs/storages/pluggable/SplitsCachePluggable.js +2 -2
  87. package/cjs/storages/pluggable/index.js +8 -8
  88. package/cjs/sync/offline/splitsParser/parseCondition.js +2 -1
  89. package/cjs/sync/offline/splitsParser/splitsParserFromFile.js +3 -3
  90. package/cjs/sync/offline/splitsParser/splitsParserFromSettings.js +2 -3
  91. package/cjs/sync/offline/syncManagerOffline.js +3 -4
  92. package/cjs/sync/offline/syncTasks/fromObjectSyncTask.js +4 -5
  93. package/cjs/sync/polling/fetchers/mySegmentsFetcher.js +2 -1
  94. package/cjs/sync/polling/fetchers/segmentChangesFetcher.js +2 -1
  95. package/cjs/sync/polling/fetchers/splitChangesFetcher.js +2 -1
  96. package/cjs/sync/polling/pollingManagerCS.js +6 -6
  97. package/cjs/sync/polling/pollingManagerSS.js +8 -8
  98. package/cjs/sync/polling/syncTasks/mySegmentsSyncTask.js +5 -5
  99. package/cjs/sync/polling/syncTasks/segmentsSyncTask.js +5 -5
  100. package/cjs/sync/polling/syncTasks/splitsSyncTask.js +5 -5
  101. package/cjs/sync/polling/updaters/mySegmentsUpdater.js +2 -3
  102. package/cjs/sync/polling/updaters/segmentChangesUpdater.js +2 -3
  103. package/cjs/sync/polling/updaters/splitChangesUpdater.js +8 -6
  104. package/cjs/sync/streaming/AuthClient/index.js +2 -3
  105. package/cjs/sync/streaming/SSEClient/index.js +2 -1
  106. package/cjs/sync/streaming/SSEHandler/NotificationKeeper.js +2 -1
  107. package/cjs/sync/streaming/SSEHandler/index.js +4 -4
  108. package/cjs/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.js +4 -4
  109. package/cjs/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.js +4 -4
  110. package/cjs/sync/streaming/UpdateWorkers/SplitsUpdateWorker.js +4 -4
  111. package/cjs/sync/streaming/pushManager.js +18 -17
  112. package/cjs/sync/submitters/submitterSyncTask.js +2 -3
  113. package/cjs/sync/syncTask.js +2 -1
  114. package/cjs/trackers/eventTracker.js +7 -7
  115. package/cjs/trackers/impressionObserver/ImpressionObserver.js +4 -4
  116. package/cjs/trackers/impressionObserver/impressionObserverCS.js +2 -3
  117. package/cjs/trackers/impressionObserver/impressionObserverSS.js +2 -3
  118. package/cjs/trackers/impressionsTracker.js +6 -6
  119. package/cjs/utils/Backoff.js +2 -1
  120. package/cjs/utils/LRUCache/index.js +2 -1
  121. package/cjs/utils/MinEventEmitter.js +2 -1
  122. package/cjs/utils/inputValidation/attribute.js +20 -0
  123. package/cjs/utils/inputValidation/attributes.js +13 -1
  124. package/cjs/utils/inputValidation/trafficTypeExistance.js +2 -3
  125. package/cjs/utils/lang/binarySearch.js +2 -1
  126. package/cjs/utils/lang/objectAssign.js +85 -0
  127. package/cjs/utils/promise/thenable.js +5 -1
  128. package/cjs/utils/promise/timeout.js +2 -1
  129. package/cjs/utils/promise/wrapper.js +2 -1
  130. package/cjs/utils/settingsValidation/impressionsMode.js +2 -1
  131. package/cjs/utils/settingsValidation/index.js +5 -6
  132. package/cjs/utils/settingsValidation/mode.js +2 -1
  133. package/cjs/utils/timeTracker/index.js +7 -8
  134. package/cjs/utils/timeTracker/now/browser.js +2 -2
  135. package/cjs/utils/timeTracker/now/node.js +2 -1
  136. package/cjs/utils/timeTracker/timer.js +3 -2
  137. package/esm/evaluator/Engine.js +3 -3
  138. package/esm/evaluator/combiners/and.js +2 -2
  139. package/esm/evaluator/combiners/ifelseif.js +2 -2
  140. package/esm/evaluator/condition/index.js +2 -2
  141. package/esm/evaluator/index.js +2 -2
  142. package/esm/evaluator/matchers/all.js +1 -1
  143. package/esm/evaluator/matchers/between.js +1 -1
  144. package/esm/evaluator/matchers/boolean.js +1 -1
  145. package/esm/evaluator/matchers/cont_all.js +1 -1
  146. package/esm/evaluator/matchers/cont_any.js +1 -1
  147. package/esm/evaluator/matchers/cont_str.js +1 -1
  148. package/esm/evaluator/matchers/dependency.js +2 -2
  149. package/esm/evaluator/matchers/eq.js +1 -1
  150. package/esm/evaluator/matchers/eq_set.js +1 -1
  151. package/esm/evaluator/matchers/ew.js +1 -1
  152. package/esm/evaluator/matchers/gte.js +1 -1
  153. package/esm/evaluator/matchers/index.js +35 -35
  154. package/esm/evaluator/matchers/lte.js +1 -1
  155. package/esm/evaluator/matchers/part_of.js +1 -1
  156. package/esm/evaluator/matchers/segment.js +2 -2
  157. package/esm/evaluator/matchers/string.js +1 -1
  158. package/esm/evaluator/matchers/sw.js +1 -1
  159. package/esm/evaluator/matchers/whitelist.js +1 -1
  160. package/esm/evaluator/matchersTransform/index.js +5 -5
  161. package/esm/evaluator/matchersTransform/segment.js +1 -1
  162. package/esm/evaluator/matchersTransform/set.js +1 -1
  163. package/esm/evaluator/matchersTransform/unaryNumeric.js +1 -1
  164. package/esm/evaluator/matchersTransform/whitelist.js +1 -1
  165. package/esm/evaluator/parser/index.js +11 -11
  166. package/esm/evaluator/treatments/index.js +1 -1
  167. package/esm/evaluator/value/index.js +3 -3
  168. package/esm/evaluator/value/sanitize.js +1 -1
  169. package/esm/integrations/browser.js +2 -2
  170. package/esm/integrations/ga/GaToSplit.js +1 -1
  171. package/esm/integrations/pluggable.js +1 -1
  172. package/esm/listeners/browser.js +2 -2
  173. package/esm/listeners/node.js +2 -2
  174. package/esm/logger/index.js +1 -1
  175. package/esm/logger/messages/info.js +1 -1
  176. package/esm/logger/messages/warn.js +2 -2
  177. package/esm/readiness/readinessManager.js +1 -1
  178. package/esm/readiness/sdkReadinessManager.js +3 -3
  179. package/esm/sdkClient/client.js +2 -2
  180. package/esm/sdkClient/clientAttributesDecoration.js +104 -0
  181. package/esm/sdkClient/clientCS.js +10 -8
  182. package/esm/sdkClient/clientInputValidation.js +2 -2
  183. package/esm/sdkClient/sdkClient.js +3 -3
  184. package/esm/sdkClient/sdkClientMethodCS.js +4 -4
  185. package/esm/sdkClient/sdkClientMethodCSWithTT.js +4 -4
  186. package/esm/sdkFactory/index.js +6 -6
  187. package/esm/sdkManager/index.js +2 -2
  188. package/esm/services/splitApi.js +1 -1
  189. package/esm/services/splitHttpClient.js +1 -1
  190. package/esm/storages/AbstractSegmentsCacheSync.js +1 -1
  191. package/esm/storages/AbstractSplitsCacheAsync.js +1 -1
  192. package/esm/storages/AbstractSplitsCacheSync.js +1 -1
  193. package/esm/storages/KeyBuilder.js +1 -1
  194. package/esm/storages/KeyBuilderCS.js +2 -2
  195. package/esm/storages/KeyBuilderSS.js +2 -2
  196. package/esm/storages/findLatencyIndex.js +1 -1
  197. package/esm/storages/inLocalStorage/MySegmentsCacheInLocal.js +2 -2
  198. package/esm/storages/inLocalStorage/SplitsCacheInLocal.js +2 -2
  199. package/esm/storages/inLocalStorage/index.js +8 -8
  200. package/esm/storages/inMemory/AttributesCacheInMemory.js +67 -0
  201. package/esm/storages/inMemory/CountsCacheInMemory.js +1 -1
  202. package/esm/storages/inMemory/EventsCacheInMemory.js +1 -1
  203. package/esm/storages/inMemory/ImpressionCountsCacheInMemory.js +1 -1
  204. package/esm/storages/inMemory/ImpressionsCacheInMemory.js +1 -1
  205. package/esm/storages/inMemory/InMemoryStorage.js +5 -5
  206. package/esm/storages/inMemory/InMemoryStorageCS.js +5 -5
  207. package/esm/storages/inMemory/LatenciesCacheInMemory.js +2 -2
  208. package/esm/storages/inMemory/MySegmentsCacheInMemory.js +2 -2
  209. package/esm/storages/inMemory/SegmentsCacheInMemory.js +2 -2
  210. package/esm/storages/inMemory/SplitsCacheInMemory.js +2 -2
  211. package/esm/storages/inRedis/CountsCacheInRedis.js +1 -1
  212. package/esm/storages/inRedis/EventsCacheInRedis.js +1 -1
  213. package/esm/storages/inRedis/ImpressionsCacheInRedis.js +1 -1
  214. package/esm/storages/inRedis/LatenciesCacheInRedis.js +2 -2
  215. package/esm/storages/inRedis/RedisAdapter.js +3 -3
  216. package/esm/storages/inRedis/SegmentsCacheInRedis.js +1 -1
  217. package/esm/storages/inRedis/SplitsCacheInRedis.js +2 -2
  218. package/esm/storages/inRedis/index.js +8 -8
  219. package/esm/storages/pluggable/SplitsCachePluggable.js +1 -1
  220. package/esm/storages/pluggable/index.js +4 -4
  221. package/esm/sync/offline/splitsParser/parseCondition.js +1 -1
  222. package/esm/sync/offline/splitsParser/splitsParserFromFile.js +1 -1
  223. package/esm/sync/offline/splitsParser/splitsParserFromSettings.js +1 -1
  224. package/esm/sync/offline/syncManagerOffline.js +2 -2
  225. package/esm/sync/offline/syncTasks/fromObjectSyncTask.js +2 -2
  226. package/esm/sync/polling/fetchers/mySegmentsFetcher.js +1 -1
  227. package/esm/sync/polling/fetchers/segmentChangesFetcher.js +1 -1
  228. package/esm/sync/polling/fetchers/splitChangesFetcher.js +1 -1
  229. package/esm/sync/polling/pollingManagerCS.js +3 -3
  230. package/esm/sync/polling/pollingManagerSS.js +4 -4
  231. package/esm/sync/polling/syncTasks/mySegmentsSyncTask.js +3 -3
  232. package/esm/sync/polling/syncTasks/segmentsSyncTask.js +3 -3
  233. package/esm/sync/polling/syncTasks/splitsSyncTask.js +3 -3
  234. package/esm/sync/polling/updaters/mySegmentsUpdater.js +1 -1
  235. package/esm/sync/polling/updaters/segmentChangesUpdater.js +1 -1
  236. package/esm/sync/polling/updaters/splitChangesUpdater.js +7 -4
  237. package/esm/sync/streaming/AuthClient/index.js +1 -1
  238. package/esm/sync/streaming/SSEClient/index.js +1 -1
  239. package/esm/sync/streaming/SSEHandler/NotificationKeeper.js +1 -1
  240. package/esm/sync/streaming/SSEHandler/index.js +2 -2
  241. package/esm/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.js +2 -2
  242. package/esm/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.js +2 -2
  243. package/esm/sync/streaming/UpdateWorkers/SplitsUpdateWorker.js +2 -2
  244. package/esm/sync/streaming/pushManager.js +10 -9
  245. package/esm/sync/submitters/submitterSyncTask.js +1 -1
  246. package/esm/sync/syncTask.js +1 -1
  247. package/esm/trackers/eventTracker.js +3 -3
  248. package/esm/trackers/impressionObserver/ImpressionObserver.js +2 -2
  249. package/esm/trackers/impressionObserver/impressionObserverCS.js +1 -1
  250. package/esm/trackers/impressionObserver/impressionObserverSS.js +1 -1
  251. package/esm/trackers/impressionsTracker.js +3 -3
  252. package/esm/utils/Backoff.js +1 -1
  253. package/esm/utils/LRUCache/index.js +1 -1
  254. package/esm/utils/MinEventEmitter.js +1 -1
  255. package/esm/utils/inputValidation/attribute.js +16 -0
  256. package/esm/utils/inputValidation/attributes.js +11 -0
  257. package/esm/utils/inputValidation/trafficTypeExistance.js +1 -1
  258. package/esm/utils/lang/binarySearch.js +1 -1
  259. package/esm/utils/lang/objectAssign.js +82 -0
  260. package/esm/utils/promise/thenable.js +3 -1
  261. package/esm/utils/promise/timeout.js +1 -1
  262. package/esm/utils/promise/wrapper.js +1 -1
  263. package/esm/utils/settingsValidation/impressionsMode.js +1 -1
  264. package/esm/utils/settingsValidation/index.js +3 -3
  265. package/esm/utils/settingsValidation/mode.js +1 -1
  266. package/esm/utils/timeTracker/index.js +4 -5
  267. package/esm/utils/timeTracker/now/browser.js +1 -2
  268. package/esm/utils/timeTracker/now/node.js +1 -1
  269. package/esm/utils/timeTracker/timer.js +1 -1
  270. package/package.json +2 -3
  271. package/src/evaluator/Engine.ts +3 -3
  272. package/src/evaluator/combiners/and.ts +2 -2
  273. package/src/evaluator/combiners/ifelseif.ts +2 -2
  274. package/src/evaluator/condition/index.ts +2 -2
  275. package/src/evaluator/index.ts +2 -2
  276. package/src/evaluator/matchers/all.ts +1 -1
  277. package/src/evaluator/matchers/between.ts +1 -1
  278. package/src/evaluator/matchers/boolean.ts +1 -1
  279. package/src/evaluator/matchers/cont_all.ts +1 -1
  280. package/src/evaluator/matchers/cont_any.ts +1 -1
  281. package/src/evaluator/matchers/cont_str.ts +1 -1
  282. package/src/evaluator/matchers/dependency.ts +2 -2
  283. package/src/evaluator/matchers/eq.ts +1 -1
  284. package/src/evaluator/matchers/eq_set.ts +1 -1
  285. package/src/evaluator/matchers/ew.ts +1 -1
  286. package/src/evaluator/matchers/gte.ts +1 -1
  287. package/src/evaluator/matchers/index.ts +35 -35
  288. package/src/evaluator/matchers/lte.ts +1 -1
  289. package/src/evaluator/matchers/part_of.ts +1 -1
  290. package/src/evaluator/matchers/segment.ts +2 -2
  291. package/src/evaluator/matchers/string.ts +1 -1
  292. package/src/evaluator/matchers/sw.ts +1 -1
  293. package/src/evaluator/matchers/whitelist.ts +1 -1
  294. package/src/evaluator/matchersTransform/index.ts +5 -5
  295. package/src/evaluator/matchersTransform/segment.ts +1 -1
  296. package/src/evaluator/matchersTransform/set.ts +1 -1
  297. package/src/evaluator/matchersTransform/unaryNumeric.ts +1 -1
  298. package/src/evaluator/matchersTransform/whitelist.ts +1 -1
  299. package/src/evaluator/parser/index.ts +12 -12
  300. package/src/evaluator/treatments/index.ts +1 -1
  301. package/src/evaluator/value/index.ts +3 -3
  302. package/src/evaluator/value/sanitize.ts +1 -1
  303. package/src/integrations/browser.ts +2 -2
  304. package/src/integrations/ga/GaToSplit.ts +1 -1
  305. package/src/integrations/pluggable.ts +1 -1
  306. package/src/listeners/browser.ts +2 -2
  307. package/src/listeners/node.ts +2 -2
  308. package/src/logger/index.ts +1 -1
  309. package/src/logger/messages/info.ts +1 -1
  310. package/src/logger/messages/warn.ts +2 -2
  311. package/src/readiness/readinessManager.ts +2 -2
  312. package/src/readiness/sdkReadinessManager.ts +3 -3
  313. package/src/sdkClient/client.ts +2 -2
  314. package/src/sdkClient/clientAttributesDecoration.ts +122 -0
  315. package/src/sdkClient/clientCS.ts +13 -8
  316. package/src/sdkClient/clientInputValidation.ts +2 -2
  317. package/src/sdkClient/sdkClient.ts +3 -3
  318. package/src/sdkClient/sdkClientMethodCS.ts +4 -2
  319. package/src/sdkClient/sdkClientMethodCSWithTT.ts +4 -2
  320. package/src/sdkFactory/index.ts +6 -6
  321. package/src/sdkManager/index.ts +2 -2
  322. package/src/services/splitApi.ts +1 -1
  323. package/src/services/splitHttpClient.ts +1 -1
  324. package/src/storages/AbstractSegmentsCacheSync.ts +1 -1
  325. package/src/storages/AbstractSplitsCacheAsync.ts +1 -1
  326. package/src/storages/AbstractSplitsCacheSync.ts +1 -1
  327. package/src/storages/KeyBuilder.ts +1 -1
  328. package/src/storages/KeyBuilderCS.ts +2 -2
  329. package/src/storages/KeyBuilderSS.ts +2 -2
  330. package/src/storages/findLatencyIndex.ts +1 -1
  331. package/src/storages/inLocalStorage/MySegmentsCacheInLocal.ts +3 -3
  332. package/src/storages/inLocalStorage/SplitsCacheInLocal.ts +3 -3
  333. package/src/storages/inLocalStorage/index.ts +8 -8
  334. package/src/storages/inMemory/AttributesCacheInMemory.ts +73 -0
  335. package/src/storages/inMemory/CountsCacheInMemory.ts +1 -1
  336. package/src/storages/inMemory/EventsCacheInMemory.ts +1 -1
  337. package/src/storages/inMemory/ImpressionCountsCacheInMemory.ts +1 -1
  338. package/src/storages/inMemory/ImpressionsCacheInMemory.ts +1 -1
  339. package/src/storages/inMemory/InMemoryStorage.ts +5 -5
  340. package/src/storages/inMemory/InMemoryStorageCS.ts +5 -5
  341. package/src/storages/inMemory/LatenciesCacheInMemory.ts +2 -2
  342. package/src/storages/inMemory/MySegmentsCacheInMemory.ts +2 -2
  343. package/src/storages/inMemory/SegmentsCacheInMemory.ts +2 -2
  344. package/src/storages/inMemory/SplitsCacheInMemory.ts +2 -2
  345. package/src/storages/inRedis/CountsCacheInRedis.ts +2 -2
  346. package/src/storages/inRedis/EventsCacheInRedis.ts +1 -1
  347. package/src/storages/inRedis/ImpressionsCacheInRedis.ts +1 -1
  348. package/src/storages/inRedis/LatenciesCacheInRedis.ts +3 -3
  349. package/src/storages/inRedis/RedisAdapter.ts +3 -3
  350. package/src/storages/inRedis/SegmentsCacheInRedis.ts +2 -2
  351. package/src/storages/inRedis/SplitsCacheInRedis.ts +3 -3
  352. package/src/storages/inRedis/index.ts +8 -8
  353. package/src/storages/pluggable/SegmentsCachePluggable.ts +1 -1
  354. package/src/storages/pluggable/SplitsCachePluggable.ts +2 -2
  355. package/src/storages/pluggable/index.ts +4 -4
  356. package/src/storages/types.ts +2 -2
  357. package/src/sync/offline/splitsParser/parseCondition.ts +1 -1
  358. package/src/sync/offline/splitsParser/splitsParserFromFile.ts +1 -1
  359. package/src/sync/offline/splitsParser/splitsParserFromSettings.ts +1 -1
  360. package/src/sync/offline/syncManagerOffline.ts +2 -2
  361. package/src/sync/offline/syncTasks/fromObjectSyncTask.ts +2 -2
  362. package/src/sync/polling/fetchers/mySegmentsFetcher.ts +1 -1
  363. package/src/sync/polling/fetchers/segmentChangesFetcher.ts +1 -1
  364. package/src/sync/polling/fetchers/splitChangesFetcher.ts +1 -1
  365. package/src/sync/polling/pollingManagerCS.ts +3 -3
  366. package/src/sync/polling/pollingManagerSS.ts +4 -4
  367. package/src/sync/polling/syncTasks/mySegmentsSyncTask.ts +3 -3
  368. package/src/sync/polling/syncTasks/segmentsSyncTask.ts +3 -3
  369. package/src/sync/polling/syncTasks/splitsSyncTask.ts +3 -3
  370. package/src/sync/polling/updaters/mySegmentsUpdater.ts +1 -1
  371. package/src/sync/polling/updaters/segmentChangesUpdater.ts +1 -1
  372. package/src/sync/polling/updaters/splitChangesUpdater.ts +6 -3
  373. package/src/sync/streaming/AuthClient/index.ts +1 -1
  374. package/src/sync/streaming/SSEClient/index.ts +1 -1
  375. package/src/sync/streaming/SSEHandler/NotificationKeeper.ts +1 -1
  376. package/src/sync/streaming/SSEHandler/index.ts +2 -2
  377. package/src/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.ts +2 -2
  378. package/src/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.ts +2 -2
  379. package/src/sync/streaming/UpdateWorkers/SplitsUpdateWorker.ts +2 -2
  380. package/src/sync/streaming/UpdateWorkers/types.ts +1 -1
  381. package/src/sync/streaming/pushManager.ts +10 -9
  382. package/src/sync/submitters/submitterSyncTask.ts +1 -1
  383. package/src/sync/syncTask.ts +1 -1
  384. package/src/trackers/eventTracker.ts +3 -3
  385. package/src/trackers/impressionObserver/ImpressionObserver.ts +2 -2
  386. package/src/trackers/impressionObserver/impressionObserverCS.ts +1 -1
  387. package/src/trackers/impressionObserver/impressionObserverSS.ts +1 -1
  388. package/src/trackers/impressionsTracker.ts +3 -3
  389. package/src/types.ts +39 -0
  390. package/src/utils/Backoff.ts +1 -1
  391. package/src/utils/LRUCache/index.ts +1 -1
  392. package/src/utils/MinEventEmitter.ts +1 -1
  393. package/src/utils/inputValidation/attribute.ts +21 -0
  394. package/src/utils/inputValidation/attributes.ts +14 -0
  395. package/src/utils/inputValidation/trafficTypeExistance.ts +1 -1
  396. package/src/utils/lang/binarySearch.ts +1 -1
  397. package/src/utils/lang/objectAssign.ts +104 -0
  398. package/src/utils/promise/thenable.ts +3 -1
  399. package/src/utils/promise/timeout.ts +1 -1
  400. package/src/utils/promise/wrapper.ts +1 -1
  401. package/src/utils/settingsValidation/impressionsMode.ts +1 -1
  402. package/src/utils/settingsValidation/index.ts +3 -3
  403. package/src/utils/settingsValidation/mode.ts +1 -1
  404. package/src/utils/timeTracker/index.ts +4 -6
  405. package/src/utils/timeTracker/now/browser.ts +1 -3
  406. package/src/utils/timeTracker/now/node.ts +1 -1
  407. package/src/utils/timeTracker/timer.ts +1 -1
  408. package/types/evaluator/Engine.d.ts +1 -1
  409. package/types/evaluator/combiners/and.d.ts +1 -1
  410. package/types/evaluator/combiners/ifelseif.d.ts +1 -1
  411. package/types/evaluator/condition/index.d.ts +1 -1
  412. package/types/evaluator/matchers/all.d.ts +1 -1
  413. package/types/evaluator/matchers/between.d.ts +1 -1
  414. package/types/evaluator/matchers/boolean.d.ts +1 -1
  415. package/types/evaluator/matchers/cont_all.d.ts +1 -1
  416. package/types/evaluator/matchers/cont_any.d.ts +1 -1
  417. package/types/evaluator/matchers/cont_str.d.ts +1 -1
  418. package/types/evaluator/matchers/dependency.d.ts +1 -1
  419. package/types/evaluator/matchers/eq.d.ts +1 -1
  420. package/types/evaluator/matchers/eq_set.d.ts +1 -1
  421. package/types/evaluator/matchers/ew.d.ts +1 -1
  422. package/types/evaluator/matchers/gte.d.ts +1 -1
  423. package/types/evaluator/matchers/index.d.ts +1 -1
  424. package/types/evaluator/matchers/lte.d.ts +1 -1
  425. package/types/evaluator/matchers/part_of.d.ts +1 -1
  426. package/types/evaluator/matchers/segment.d.ts +1 -1
  427. package/types/evaluator/matchers/string.d.ts +1 -1
  428. package/types/evaluator/matchers/sw.d.ts +1 -1
  429. package/types/evaluator/matchers/whitelist.d.ts +1 -1
  430. package/types/evaluator/matchersTransform/index.d.ts +1 -1
  431. package/types/evaluator/matchersTransform/segment.d.ts +1 -1
  432. package/types/evaluator/matchersTransform/set.d.ts +1 -1
  433. package/types/evaluator/matchersTransform/unaryNumeric.d.ts +1 -1
  434. package/types/evaluator/matchersTransform/whitelist.d.ts +1 -1
  435. package/types/evaluator/parser/index.d.ts +1 -1
  436. package/types/evaluator/treatments/index.d.ts +1 -1
  437. package/types/evaluator/value/index.d.ts +1 -1
  438. package/types/evaluator/value/sanitize.d.ts +1 -1
  439. package/types/integrations/browser.d.ts +1 -1
  440. package/types/integrations/pluggable.d.ts +1 -1
  441. package/types/listeners/browser.d.ts +1 -1
  442. package/types/listeners/node.d.ts +1 -1
  443. package/types/logger/browser/{debugLogger.d.ts → DebugLogger.d.ts} +0 -0
  444. package/types/logger/browser/{errorLogger.d.ts → ErrorLogger.d.ts} +0 -0
  445. package/types/logger/browser/{infoLogger.d.ts → InfoLogger.d.ts} +0 -0
  446. package/types/logger/browser/{warnLogger.d.ts → WarnLogger.d.ts} +0 -0
  447. package/types/readiness/sdkReadinessManager.d.ts +1 -1
  448. package/types/sdkClient/client.d.ts +1 -1
  449. package/types/sdkClient/clientAttributesDecoration.d.ts +51 -0
  450. package/types/sdkClient/clientCS.d.ts +2 -1
  451. package/types/sdkClient/clientInputValidation.d.ts +1 -1
  452. package/types/storages/AbstractSegmentsCacheSync.d.ts +1 -1
  453. package/types/storages/AbstractSplitsCacheAsync.d.ts +1 -1
  454. package/types/storages/AbstractSplitsCacheSync.d.ts +1 -1
  455. package/types/storages/KeyBuilder.d.ts +1 -1
  456. package/types/storages/KeyBuilderCS.d.ts +2 -2
  457. package/types/storages/KeyBuilderSS.d.ts +2 -2
  458. package/types/storages/findLatencyIndex.d.ts +1 -1
  459. package/types/storages/inLocalStorage/MySegmentsCacheInLocal.d.ts +3 -3
  460. package/types/storages/inLocalStorage/SplitsCacheInLocal.d.ts +3 -3
  461. package/types/storages/inMemory/AttributesCacheInMemory.d.ts +43 -0
  462. package/types/storages/inMemory/CountsCacheInMemory.d.ts +1 -1
  463. package/types/storages/inMemory/EventsCacheInMemory.d.ts +1 -1
  464. package/types/storages/inMemory/ImpressionCountsCacheInMemory.d.ts +1 -1
  465. package/types/storages/inMemory/ImpressionsCacheInMemory.d.ts +1 -1
  466. package/types/storages/inMemory/LatenciesCacheInMemory.d.ts +1 -1
  467. package/types/storages/inMemory/MySegmentsCacheInMemory.d.ts +2 -2
  468. package/types/storages/inMemory/SegmentsCacheInMemory.d.ts +2 -2
  469. package/types/storages/inMemory/SplitsCacheInMemory.d.ts +2 -2
  470. package/types/storages/inRedis/CountsCacheInRedis.d.ts +2 -2
  471. package/types/storages/inRedis/EventsCacheInRedis.d.ts +1 -1
  472. package/types/storages/inRedis/ImpressionsCacheInRedis.d.ts +1 -1
  473. package/types/storages/inRedis/LatenciesCacheInRedis.d.ts +2 -2
  474. package/types/storages/inRedis/RedisAdapter.d.ts +1 -1
  475. package/types/storages/inRedis/SegmentsCacheInRedis.d.ts +2 -2
  476. package/types/storages/inRedis/SplitsCacheInRedis.d.ts +3 -3
  477. package/types/storages/pluggable/SegmentsCachePluggable.d.ts +1 -1
  478. package/types/storages/pluggable/SplitsCachePluggable.d.ts +2 -2
  479. package/types/storages/types.d.ts +2 -2
  480. package/types/sync/offline/splitsParser/parseCondition.d.ts +1 -1
  481. package/types/sync/offline/syncTasks/fromObjectSyncTask.d.ts +1 -1
  482. package/types/sync/polling/fetchers/mySegmentsFetcher.d.ts +1 -1
  483. package/types/sync/polling/fetchers/segmentChangesFetcher.d.ts +1 -1
  484. package/types/sync/polling/fetchers/splitChangesFetcher.d.ts +1 -1
  485. package/types/sync/polling/pollingManagerCS.d.ts +1 -1
  486. package/types/sync/polling/pollingManagerSS.d.ts +1 -1
  487. package/types/sync/polling/syncTasks/mySegmentsSyncTask.d.ts +1 -1
  488. package/types/sync/polling/syncTasks/segmentsSyncTask.d.ts +1 -1
  489. package/types/sync/polling/syncTasks/splitsSyncTask.d.ts +1 -1
  490. package/types/sync/streaming/SSEClient/index.d.ts +1 -1
  491. package/types/sync/streaming/SSEHandler/NotificationKeeper.d.ts +1 -1
  492. package/types/sync/streaming/SSEHandler/index.d.ts +1 -1
  493. package/types/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.d.ts +2 -2
  494. package/types/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.d.ts +2 -2
  495. package/types/sync/streaming/UpdateWorkers/SplitsUpdateWorker.d.ts +2 -2
  496. package/types/sync/streaming/UpdateWorkers/types.d.ts +1 -1
  497. package/types/sync/streaming/pushManager.d.ts +1 -1
  498. package/types/sync/syncTask.d.ts +1 -1
  499. package/types/trackers/eventTracker.d.ts +1 -1
  500. package/types/trackers/impressionObserver/ImpressionObserver.d.ts +1 -1
  501. package/types/trackers/impressionObserver/impressionObserverCS.d.ts +1 -1
  502. package/types/trackers/impressionObserver/impressionObserverSS.d.ts +1 -1
  503. package/types/trackers/impressionsTracker.d.ts +1 -1
  504. package/types/types.d.ts +39 -0
  505. package/types/utils/Backoff.d.ts +1 -1
  506. package/types/utils/LRUCache/index.d.ts +1 -1
  507. package/types/utils/MinEventEmitter.d.ts +1 -1
  508. package/types/utils/inputValidation/attribute.d.ts +2 -0
  509. package/types/utils/inputValidation/attributes.d.ts +1 -0
  510. package/types/utils/lang/binarySearch.d.ts +1 -1
  511. package/types/utils/lang/objectAssign.d.ts +3 -0
  512. package/types/utils/promise/thenable.d.ts +1 -2
  513. package/types/utils/promise/timeout.d.ts +1 -1
  514. package/types/utils/promise/wrapper.d.ts +1 -1
  515. package/types/utils/settingsValidation/impressionsMode.d.ts +1 -1
  516. package/types/utils/settingsValidation/mode.d.ts +1 -1
  517. package/types/utils/timeTracker/index.d.ts +2 -2
  518. package/types/utils/timeTracker/now/browser.d.ts +1 -2
  519. package/types/utils/timeTracker/now/node.d.ts +1 -1
  520. package/types/utils/timeTracker/timer.d.ts +1 -1
  521. package/src/logger/.DS_Store +0 -0
  522. package/types/integrations/ga/GaToSplitPlugin.d.ts +0 -3
  523. package/types/integrations/ga/SplitToGaPlugin.d.ts +0 -4
  524. package/types/logger/codes.d.ts +0 -2
  525. package/types/logger/codesConstants.d.ts +0 -117
  526. package/types/logger/codesConstantsBrowser.d.ts +0 -2
  527. package/types/logger/codesConstantsNode.d.ts +0 -14
  528. package/types/logger/codesDebug.d.ts +0 -1
  529. package/types/logger/codesDebugBrowser.d.ts +0 -1
  530. package/types/logger/codesDebugNode.d.ts +0 -1
  531. package/types/logger/codesError.d.ts +0 -1
  532. package/types/logger/codesErrorNode.d.ts +0 -1
  533. package/types/logger/codesInfo.d.ts +0 -1
  534. package/types/logger/codesWarn.d.ts +0 -1
  535. package/types/logger/codesWarnNode.d.ts +0 -1
  536. package/types/logger/debugLogger.d.ts +0 -2
  537. package/types/logger/errorLogger.d.ts +0 -2
  538. package/types/logger/infoLogger.d.ts +0 -2
  539. package/types/logger/messages/debugBrowser.d.ts +0 -1
  540. package/types/logger/messages/debugNode.d.ts +0 -1
  541. package/types/logger/messages/errorNode.d.ts +0 -1
  542. package/types/logger/messages/warnNode.d.ts +0 -1
  543. package/types/logger/noopLogger.d.ts +0 -2
  544. package/types/logger/warnLogger.d.ts +0 -2
  545. package/types/sdkManager/sdkManagerMethod.d.ts +0 -6
  546. package/types/storages/getRegisteredSegments.d.ts +0 -10
  547. package/types/sync/polling/syncTasks/splitsSyncTask.copy.d.ts +0 -35
  548. package/types/sync/polling/syncTasks/splitsSyncTask.morelikeoriginal.d.ts +0 -35
  549. package/types/sync/streaming/AuthClient/indexV1.d.ts +0 -12
  550. package/types/sync/streaming/AuthClient/indexV2.d.ts +0 -8
  551. package/types/sync/streaming/pushManagerCS.d.ts +0 -12
  552. package/types/sync/streaming/pushManagerNoUsers.d.ts +0 -13
  553. package/types/sync/streaming/pushManagerSS.d.ts +0 -11
  554. package/types/sync/syncManagerFromFile.d.ts +0 -2
  555. package/types/sync/syncManagerFromObject.d.ts +0 -2
  556. package/types/sync/syncManagerOffline.d.ts +0 -9
  557. package/types/utils/lang/errors.d.ts +0 -10
  558. package/types/utils/murmur3/commons.d.ts +0 -12
  559. package/types/utils/settingsValidation/buildMetadata.d.ts +0 -3
  560. package/types/utils/settingsValidation/localhost/index.d.ts +0 -9
  561. package/types/utils/settingsValidation/logger.d.ts +0 -11
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setTransform = void 0;
3
4
  /**
4
5
  * Extract whitelist array. Used by set and string matchers
5
6
  */
6
- function transform(whitelistObject) {
7
+ function setTransform(whitelistObject) {
7
8
  return whitelistObject.whitelist;
8
9
  }
9
- exports.default = transform;
10
+ exports.setTransform = setTransform;
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.numericTransform = void 0;
3
4
  /**
4
5
  * Extract value from unary matcher data.
5
6
  */
6
- function transform(unaryNumericObject) {
7
+ function numericTransform(unaryNumericObject) {
7
8
  return unaryNumericObject.value;
8
9
  }
9
- exports.default = transform;
10
+ exports.numericTransform = numericTransform;
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.whitelistTransform = void 0;
3
4
  var sets_1 = require("../../utils/lang/sets");
4
5
  /**
5
6
  * Extract whitelist as a set. Used by 'WHITELIST' matcher.
6
7
  */
7
- function transform(whitelistObject) {
8
+ function whitelistTransform(whitelistObject) {
8
9
  return new sets_1._Set(whitelistObject.whitelist);
9
10
  }
10
- exports.default = transform;
11
+ exports.whitelistTransform = whitelistTransform;
@@ -1,28 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
4
- var matchersTransform_1 = tslib_1.__importDefault(require("../matchersTransform"));
5
- var treatments_1 = tslib_1.__importDefault(require("../treatments"));
6
- var matchers_1 = tslib_1.__importDefault(require("../matchers"));
7
- var value_1 = tslib_1.__importDefault(require("../value"));
8
- var condition_1 = tslib_1.__importDefault(require("../condition"));
9
- var ifelseif_1 = tslib_1.__importDefault(require("../combiners/ifelseif"));
10
- var and_1 = tslib_1.__importDefault(require("../combiners/and"));
11
- var thenable_1 = tslib_1.__importDefault(require("../../utils/promise/thenable"));
3
+ exports.parser = void 0;
4
+ var matchersTransform_1 = require("../matchersTransform");
5
+ var treatments_1 = require("../treatments");
6
+ var matchers_1 = require("../matchers");
7
+ var value_1 = require("../value");
8
+ var condition_1 = require("../condition");
9
+ var ifelseif_1 = require("../combiners/ifelseif");
10
+ var and_1 = require("../combiners/and");
11
+ var thenable_1 = require("../../utils/promise/thenable");
12
12
  function parser(log, conditions, storage) {
13
13
  var predicates = [];
14
14
  for (var i = 0; i < conditions.length; i++) {
15
15
  var _a = conditions[i], matcherGroup = _a.matcherGroup, partitions = _a.partitions, label = _a.label, conditionType = _a.conditionType;
16
16
  // transform data structure
17
- var matchers = matchersTransform_1.default(matcherGroup.matchers);
17
+ var matchers = matchersTransform_1.matchersTransform(matcherGroup.matchers);
18
18
  // create a set of pure functions from the matcher's dto
19
19
  var expressions = matchers.map(function (matcherDto) {
20
- var matcher = matchers_1.default(log, matcherDto, storage);
20
+ var matcher = matchers_1.matcherFactory(log, matcherDto, storage);
21
21
  // Evaluator function.
22
22
  return function (key, attributes, splitEvaluator) {
23
- var value = value_1.default(log, key, matcherDto, attributes);
23
+ var value = value_1.sanitizeValue(log, key, matcherDto, attributes);
24
24
  var result = value !== undefined && matcher ? matcher(value, splitEvaluator) : false;
25
- if (thenable_1.default(result)) {
25
+ if (thenable_1.thenable(result)) {
26
26
  // @ts-ignore
27
27
  return result.then(function (res) { return Boolean(res ^ matcherDto.negate); });
28
28
  }
@@ -38,9 +38,9 @@ function parser(log, conditions, storage) {
38
38
  // and break the loop
39
39
  break;
40
40
  }
41
- predicates.push(condition_1.default(log, and_1.default(log, expressions), treatments_1.default.parse(partitions), label, conditionType));
41
+ predicates.push(condition_1.conditionContext(log, and_1.andCombinerContext(log, expressions), treatments_1.Treatments.parse(partitions), label, conditionType));
42
42
  }
43
43
  // Instanciate evaluator given the set of conditions using if else if logic
44
- return ifelseif_1.default(log, predicates);
44
+ return ifelseif_1.ifElseIfCombinerContext(log, predicates);
45
45
  }
46
- exports.default = parser;
46
+ exports.parser = parser;
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Treatments = void 0;
3
4
  var lang_1 = require("../../utils/lang");
4
5
  var Treatments = /** @class */ (function () {
5
6
  function Treatments(ranges, treatments) {
@@ -38,4 +39,4 @@ var Treatments = /** @class */ (function () {
38
39
  };
39
40
  return Treatments;
40
41
  }());
41
- exports.default = Treatments;
42
+ exports.Treatments = Treatments;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
4
- var sanitize_1 = tslib_1.__importDefault(require("./sanitize"));
3
+ exports.sanitizeValue = void 0;
4
+ var sanitize_1 = require("./sanitize");
5
5
  var constants_1 = require("../../logger/constants");
6
6
  function parseValue(log, key, attributeName, attributes) {
7
7
  var value = undefined;
@@ -22,10 +22,10 @@ function parseValue(log, key, attributeName, attributes) {
22
22
  /**
23
23
  * Defines value to be matched (key / attribute).
24
24
  */
25
- function value(log, key, matcherDto, attributes) {
25
+ function sanitizeValue(log, key, matcherDto, attributes) {
26
26
  var attributeName = matcherDto.attribute;
27
27
  var valueToMatch = parseValue(log, key, attributeName, attributes);
28
- var sanitizedValue = sanitize_1.default(log, matcherDto.type, valueToMatch, matcherDto.dataType, attributes);
28
+ var sanitizedValue = sanitize_1.sanitize(log, matcherDto.type, valueToMatch, matcherDto.dataType, attributes);
29
29
  if (sanitizedValue !== undefined) {
30
30
  return sanitizedValue;
31
31
  }
@@ -34,4 +34,4 @@ function value(log, key, matcherDto, attributes) {
34
34
  return;
35
35
  }
36
36
  }
37
- exports.default = value;
37
+ exports.sanitizeValue = sanitizeValue;
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sanitize = void 0;
3
4
  var lang_1 = require("../../utils/lang");
4
5
  var convertions_1 = require("../convertions");
5
6
  var matcherTypes_1 = require("../matchers/matcherTypes");
@@ -89,4 +90,4 @@ function sanitize(log, matcherTypeID, value, dataType, attributes) {
89
90
  log.debug(constants_1.ENGINE_SANITIZE, [value, dataType, sanitizedValue instanceof Object ? JSON.stringify(sanitizedValue) : sanitizedValue]);
90
91
  return sanitizedValue;
91
92
  }
92
- exports.default = sanitize;
93
+ exports.sanitize = sanitize;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
3
+ exports.integrationsManagerFactory = void 0;
4
4
  var browser_1 = require("../utils/constants/browser");
5
- var pluggable_1 = tslib_1.__importDefault(require("./pluggable"));
5
+ var pluggable_1 = require("./pluggable");
6
6
  var GoogleAnalyticsToSplit_1 = require("./ga/GoogleAnalyticsToSplit");
7
7
  var SplitToGoogleAnalytics_1 = require("./ga/SplitToGoogleAnalytics");
8
8
  /**
@@ -26,6 +26,6 @@ function integrationsManagerFactory(integrations, params) {
26
26
  .filter(function (integrationFactory) {
27
27
  return integrationFactory && typeof integrationFactory === 'function';
28
28
  });
29
- return pluggable_1.default(integrationFactories, params);
29
+ return pluggable_1.pluggableIntegrationsManagerFactory(integrationFactories, params);
30
30
  }
31
- exports.default = integrationsManagerFactory;
31
+ exports.integrationsManagerFactory = integrationsManagerFactory;
@@ -1,9 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GaToSplit = exports.fixEventTypeId = exports.validateEventData = exports.validateIdentities = exports.defaultPrefix = exports.defaultMapper = void 0;
4
- var tslib_1 = require("tslib");
5
4
  /* eslint-disable no-undef */
6
- var object_assign_1 = tslib_1.__importDefault(require("object-assign"));
5
+ var objectAssign_1 = require("../../utils/lang/objectAssign");
7
6
  var lang_1 = require("../../utils/lang");
8
7
  var inputValidation_1 = require("../../utils/inputValidation");
9
8
  var logPrefix = 'ga-to-split: ';
@@ -173,7 +172,7 @@ function GaToSplit(sdkOptions, params) {
173
172
  // Constructor for the SplitTracker plugin.
174
173
  function SplitTracker(tracker, pluginOptions) {
175
174
  // precedence of options: SDK options (config.integrations) overwrite pluginOptions (`ga('require', 'splitTracker', pluginOptions)`)
176
- var opts = object_assign_1.default({}, defaultOptions, sdkOptions, pluginOptions);
175
+ var opts = objectAssign_1.objectAssign({}, defaultOptions, sdkOptions, pluginOptions);
177
176
  this.tracker = tracker;
178
177
  // Validate identities
179
178
  var validIdentities = validateIdentities(opts.identities);
@@ -234,7 +233,7 @@ function GaToSplit(sdkOptions, params) {
234
233
  }
235
234
  else { // Store the event for each Key-TT pair (identities), if key and TT is not present in eventData
236
235
  opts.identities.forEach(function (identity) {
237
- var event = object_assign_1.default({
236
+ var event = objectAssign_1.objectAssign({
238
237
  key: identity.key,
239
238
  trafficTypeName: identity.trafficType,
240
239
  }, eventData);
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pluggableIntegrationsManagerFactory = void 0;
3
4
  var constants_1 = require("../utils/constants");
4
5
  /**
5
6
  * Factory function for IntegrationsManager with pluggable integrations.
@@ -10,7 +11,7 @@ var constants_1 = require("../utils/constants");
10
11
  *
11
12
  * @returns integration manager or undefined if `integrations` are not present in settings.
12
13
  */
13
- function integrationsManagerFactory(integrations, params) {
14
+ function pluggableIntegrationsManagerFactory(integrations, params) {
14
15
  var listeners = [];
15
16
  // No need to check if `settings.integrations` is an array of functions. It was already validated
16
17
  integrations.forEach(function (integrationFactory) {
@@ -31,4 +32,4 @@ function integrationsManagerFactory(integrations, params) {
31
32
  }
32
33
  };
33
34
  }
34
- exports.default = integrationsManagerFactory;
35
+ exports.pluggableIntegrationsManagerFactory = pluggableIntegrationsManagerFactory;
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
3
+ exports.BrowserSignalListener = void 0;
4
4
  var impressionsSyncTask_1 = require("../sync/submitters/impressionsSyncTask");
5
5
  var impressionCountsSyncTask_1 = require("../sync/submitters/impressionCountsSyncTask");
6
6
  var constants_1 = require("../utils/constants");
7
- var object_assign_1 = tslib_1.__importDefault(require("object-assign"));
7
+ var objectAssign_1 = require("../utils/lang/objectAssign");
8
8
  var constants_2 = require("../logger/constants");
9
9
  // 'unload' event is used instead of 'beforeunload', since 'unload' is not a cancelable event, so no other listeners can stop the event from occurring.
10
10
  var UNLOAD_DOM_EVENT = 'unload';
@@ -88,7 +88,7 @@ var BrowserSignalListener = /** @class */ (function () {
88
88
  };
89
89
  // Extend with endpoint specific metadata where needed
90
90
  if (extraMetadata)
91
- object_assign_1.default(json, extraMetadata);
91
+ objectAssign_1.objectAssign(json, extraMetadata);
92
92
  // Stringify the payload
93
93
  var payload = JSON.stringify(json);
94
94
  // eslint-disable-next-line compat/compat
@@ -98,4 +98,4 @@ var BrowserSignalListener = /** @class */ (function () {
98
98
  };
99
99
  return BrowserSignalListener;
100
100
  }());
101
- exports.default = BrowserSignalListener;
101
+ exports.BrowserSignalListener = BrowserSignalListener;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
4
- var thenable_1 = tslib_1.__importDefault(require("../utils/promise/thenable"));
3
+ exports.NodeSignalListener = void 0;
4
+ var thenable_1 = require("../utils/promise/thenable");
5
5
  var constants_1 = require("../logger/constants");
6
6
  var SIGTERM = 'SIGTERM';
7
7
  var EVENT_NAME = 'for SIGTERM signal.';
@@ -55,7 +55,7 @@ var NodeSignalListener = /** @class */ (function () {
55
55
  catch (err) {
56
56
  this.settings.log.error(constants_1.LOG_PREFIX_CLEANUP + "Error with Split SDK graceful shutdown: " + err);
57
57
  }
58
- if (thenable_1.default(handlerResult)) {
58
+ if (thenable_1.thenable(handlerResult)) {
59
59
  // Always exit, even with errors. The promise is returned for UT purposses.
60
60
  return handlerResult.then(wrapUp).catch(wrapUp);
61
61
  }
@@ -65,4 +65,4 @@ var NodeSignalListener = /** @class */ (function () {
65
65
  };
66
66
  return NodeSignalListener;
67
67
  }());
68
- exports.default = NodeSignalListener;
68
+ exports.NodeSignalListener = NodeSignalListener;
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Logger = exports._sprintf = exports.isLogLevelString = exports.LogLevels = void 0;
4
- var tslib_1 = require("tslib");
5
- var object_assign_1 = tslib_1.__importDefault(require("object-assign"));
4
+ var objectAssign_1 = require("../utils/lang/objectAssign");
6
5
  var lang_1 = require("../utils/lang");
7
6
  var maps_1 = require("../utils/lang/maps");
8
7
  exports.LogLevels = {
@@ -40,7 +39,7 @@ var defaultOptions = {
40
39
  };
41
40
  var Logger = /** @class */ (function () {
42
41
  function Logger(options, codes) {
43
- this.options = object_assign_1.default({}, defaultOptions, options);
42
+ this.options = objectAssign_1.objectAssign({}, defaultOptions, options);
44
43
  this.codes = codes || new maps_1._Map();
45
44
  this.logLevel = LogLevelIndexes[this.options.logLevel];
46
45
  }
@@ -25,7 +25,7 @@ exports.codesInfo = warn_1.codesWarn.concat([
25
25
  [c.SUBMITTERS_PUSH, c.LOG_PREFIX_SYNC_SUBMITTERS + 'Pushing %s %s.'],
26
26
  [c.STREAMING_REFRESH_TOKEN, c.LOG_PREFIX_SYNC_STREAMING + 'Refreshing streaming token in %s seconds, and connecting streaming in %s seconds.'],
27
27
  [c.STREAMING_RECONNECT, c.LOG_PREFIX_SYNC_STREAMING + 'Attempting to reconnect in %s seconds.'],
28
- [c.STREAMING_CONNECTING, c.LOG_PREFIX_SYNC_STREAMING + '%sConnecting to streaming.'],
28
+ [c.STREAMING_CONNECTING, c.LOG_PREFIX_SYNC_STREAMING + 'Connecting to streaming.'],
29
29
  [c.STREAMING_DISABLED, c.LOG_PREFIX_SYNC_STREAMING + 'Streaming is disabled for given Api key. Switching to polling mode.'],
30
30
  [c.STREAMING_DISCONNECTING, c.LOG_PREFIX_SYNC_STREAMING + 'Disconnecting from streaming.'],
31
31
  [c.SYNC_START_POLLING, c.LOG_PREFIX_SYNC_MANAGER + 'Streaming not available. Starting polling.'],
@@ -24,9 +24,9 @@ exports.codesWarn = error_1.codesError.concat([
24
24
  [c.WARN_TRIMMING_PROPERTIES, '%s: Event has more than 300 properties. Some of them will be trimmed when processed.'],
25
25
  [c.WARN_CONVERTING, '%s: %s "%s" is not of type string, converting.'],
26
26
  [c.WARN_TRIMMING, '%s: %s "%s" has extra whitespace, trimming.'],
27
- [c.WARN_NOT_EXISTENT_SPLIT, '%s: split "%s" does not exist in this environment, please double check what splits exist in the web console.'],
27
+ [c.WARN_NOT_EXISTENT_SPLIT, '%s: split "%s" does not exist in this environment, please double check what splits exist in the Split web console.'],
28
28
  [c.WARN_LOWERCASE_TRAFFIC_TYPE, '%s: traffic_type_name should be all lowercase - converting string to lowercase.'],
29
- [c.WARN_NOT_EXISTENT_TT, '%s: traffic type "%s" does not have any corresponding split in this environment, make sure you\'re tracking your events to a valid traffic type defined in the web console.'],
29
+ [c.WARN_NOT_EXISTENT_TT, '%s: traffic type "%s" does not have any corresponding split in this environment, make sure you\'re tracking your events to a valid traffic type defined in the Split web console.'],
30
30
  // initialization / settings validation
31
31
  [c.WARN_INTEGRATION_INVALID, c.LOG_PREFIX_SETTINGS + ': %s integration item(s) at settings is invalid. %s'],
32
32
  [c.WARN_SPLITS_FILTER_IGNORED, c.LOG_PREFIX_SETTINGS + ': split filters have been configured but will have no effect if mode is not "%s", since synchronization is being deferred to an external tool.'],
@@ -1,11 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.readinessManagerFactory = void 0;
4
- var tslib_1 = require("tslib");
5
- var object_assign_1 = tslib_1.__importDefault(require("object-assign"));
4
+ var objectAssign_1 = require("../utils/lang/objectAssign");
6
5
  var constants_1 = require("./constants");
7
6
  function splitsEventEmitterFactory(EventEmitter) {
8
- var splitsEventEmitter = object_assign_1.default(new EventEmitter(), {
7
+ var splitsEventEmitter = objectAssign_1.objectAssign(new EventEmitter(), {
9
8
  splitsArrived: false,
10
9
  splitsCacheLoaded: false,
11
10
  });
@@ -18,7 +17,7 @@ function splitsEventEmitterFactory(EventEmitter) {
18
17
  return splitsEventEmitter;
19
18
  }
20
19
  function segmentsEventEmitterFactory(EventEmitter) {
21
- var segmentsEventEmitter = object_assign_1.default(new EventEmitter(), {
20
+ var segmentsEventEmitter = objectAssign_1.objectAssign(new EventEmitter(), {
22
21
  segmentsArrived: false
23
22
  });
24
23
  segmentsEventEmitter.once(constants_1.SDK_SEGMENTS_ARRIVED, function () { segmentsEventEmitter.segmentsArrived = true; });
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
4
- var object_assign_1 = tslib_1.__importDefault(require("object-assign"));
5
- var wrapper_1 = tslib_1.__importDefault(require("../utils/promise/wrapper"));
3
+ exports.sdkReadinessManagerFactory = void 0;
4
+ var objectAssign_1 = require("../utils/lang/objectAssign");
5
+ var wrapper_1 = require("../utils/promise/wrapper");
6
6
  var readinessManager_1 = require("./readinessManager");
7
7
  var constants_1 = require("./constants");
8
8
  var constants_2 = require("../logger/constants");
@@ -47,7 +47,7 @@ function sdkReadinessManagerFactory(log, EventEmitter, readyTimeout, internalRea
47
47
  log.error(err);
48
48
  }
49
49
  function generateReadyPromise() {
50
- var promise = wrapper_1.default(new Promise(function (resolve, reject) {
50
+ var promise = wrapper_1.promiseWrapper(new Promise(function (resolve, reject) {
51
51
  readinessManager.gate.once(constants_1.SDK_READY, function () {
52
52
  log.info(constants_2.CLIENT_READY);
53
53
  if (readyCbCount === internalReadyCbCount && !promise.hasOnFulfilled())
@@ -65,7 +65,7 @@ function sdkReadinessManagerFactory(log, EventEmitter, readyTimeout, internalRea
65
65
  if (internalReadyCbCount === void 0) { internalReadyCbCount = 0; }
66
66
  return sdkReadinessManagerFactory(log, EventEmitter, readyTimeout, internalReadyCbCount, readinessManager.shared(readyTimeout));
67
67
  },
68
- sdkStatus: object_assign_1.default(
68
+ sdkStatus: objectAssign_1.objectAssign(
69
69
  // Expose Event Emitter functionality
70
70
  Object.create(readinessManager.gate), {
71
71
  // Expose the event constants without changing the interface
@@ -97,7 +97,7 @@ function sdkReadinessManagerFactory(log, EventEmitter, readyTimeout, internalRea
97
97
  ready: function () {
98
98
  if (readinessManager.hasTimedout()) {
99
99
  if (!readinessManager.isReady()) {
100
- return wrapper_1.default(Promise.reject('Split SDK has emitted SDK_READY_TIMED_OUT event.'), defaultOnRejected);
100
+ return wrapper_1.promiseWrapper(Promise.reject('Split SDK has emitted SDK_READY_TIMED_OUT event.'), defaultOnRejected);
101
101
  }
102
102
  else {
103
103
  return Promise.resolve();
@@ -118,4 +118,4 @@ function sdkReadinessManagerFactory(log, EventEmitter, readyTimeout, internalRea
118
118
  })
119
119
  };
120
120
  }
121
- exports.default = sdkReadinessManagerFactory;
121
+ exports.sdkReadinessManagerFactory = sdkReadinessManagerFactory;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
3
+ exports.clientFactory = void 0;
4
4
  var evaluator_1 = require("../evaluator");
5
- var thenable_1 = tslib_1.__importDefault(require("../utils/promise/thenable"));
5
+ var thenable_1 = require("../utils/promise/thenable");
6
6
  var key_1 = require("../utils/key");
7
7
  var splitExistance_1 = require("../utils/inputValidation/splitExistance");
8
8
  var trafficTypeExistance_1 = require("../utils/inputValidation/trafficTypeExistance");
@@ -24,7 +24,7 @@ function clientFactory(params) {
24
24
  return treatment;
25
25
  };
26
26
  var evaluation = evaluator_1.evaluateFeature(log, key, splitName, attributes, storage);
27
- return thenable_1.default(evaluation) ? evaluation.then(function (res) { return wrapUp(res); }) : wrapUp(evaluation);
27
+ return thenable_1.thenable(evaluation) ? evaluation.then(function (res) { return wrapUp(res); }) : wrapUp(evaluation);
28
28
  }
29
29
  function getTreatmentWithConfig(key, splitName, attributes) {
30
30
  return getTreatment(key, splitName, attributes, true);
@@ -41,7 +41,7 @@ function clientFactory(params) {
41
41
  return treatments;
42
42
  };
43
43
  var evaluations = evaluator_1.evaluateFeatures(log, key, splitNames, attributes, storage);
44
- return thenable_1.default(evaluations) ? evaluations.then(function (res) { return wrapUp(res); }) : wrapUp(evaluations);
44
+ return thenable_1.thenable(evaluations) ? evaluations.then(function (res) { return wrapUp(res); }) : wrapUp(evaluations);
45
45
  }
46
46
  function getTreatmentsWithConfig(key, splitNames, attributes) {
47
47
  return getTreatments(key, splitNames, attributes, true);
@@ -101,4 +101,4 @@ function clientFactory(params) {
101
101
  track: track
102
102
  };
103
103
  }
104
- exports.default = clientFactory;
104
+ exports.clientFactory = clientFactory;
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.clientAttributesDecoration = void 0;
4
+ var AttributesCacheInMemory_1 = require("../storages/inMemory/AttributesCacheInMemory");
5
+ var attributes_1 = require("../utils/inputValidation/attributes");
6
+ var objectAssign_1 = require("../utils/lang/objectAssign");
7
+ /**
8
+ * Add in memory attributes storage methods and combine them with any attribute received from the getTreatment/s call
9
+ */
10
+ function clientAttributesDecoration(log, client) {
11
+ var attributeStorage = new AttributesCacheInMemory_1.AttributesCacheInMemory();
12
+ // Keep a reference to the original methods
13
+ var clientGetTreatment = client.getTreatment;
14
+ var clientGetTreatmentWithConfig = client.getTreatmentWithConfig;
15
+ var clientGetTreatments = client.getTreatments;
16
+ var clientGetTreatmentsWithConfig = client.getTreatmentsWithConfig;
17
+ var clientTrack = client.track;
18
+ function getTreatment(maybeKey, maybeSplit, maybeAttributes) {
19
+ return clientGetTreatment(maybeKey, maybeSplit, combineAttributes(maybeAttributes));
20
+ }
21
+ function getTreatmentWithConfig(maybeKey, maybeSplit, maybeAttributes) {
22
+ return clientGetTreatmentWithConfig(maybeKey, maybeSplit, combineAttributes(maybeAttributes));
23
+ }
24
+ function getTreatments(maybeKey, maybeSplits, maybeAttributes) {
25
+ return clientGetTreatments(maybeKey, maybeSplits, combineAttributes(maybeAttributes));
26
+ }
27
+ function getTreatmentsWithConfig(maybeKey, maybeSplits, maybeAttributes) {
28
+ return clientGetTreatmentsWithConfig(maybeKey, maybeSplits, combineAttributes(maybeAttributes));
29
+ }
30
+ function track(maybeKey, maybeTT, maybeEvent, maybeEventValue, maybeProperties) {
31
+ return clientTrack(maybeKey, maybeTT, maybeEvent, maybeEventValue, maybeProperties);
32
+ }
33
+ function combineAttributes(maybeAttributes) {
34
+ var storedAttributes = attributeStorage.getAll();
35
+ if (Object.keys(storedAttributes).length > 0) {
36
+ return objectAssign_1.objectAssign({}, storedAttributes, maybeAttributes);
37
+ }
38
+ return maybeAttributes;
39
+ }
40
+ return objectAssign_1.objectAssign(client, {
41
+ getTreatment: getTreatment,
42
+ getTreatmentWithConfig: getTreatmentWithConfig,
43
+ getTreatments: getTreatments,
44
+ getTreatmentsWithConfig: getTreatmentsWithConfig,
45
+ track: track,
46
+ /**
47
+ * Add an attribute to client's in memory attributes storage
48
+ *
49
+ * @param {string} attributeName Attrinute name
50
+ * @param {string, number, boolean, list} attributeValue Attribute value
51
+ * @returns {boolean} true if the attribute was stored and false otherways
52
+ */
53
+ setAttribute: function (attributeName, attributeValue) {
54
+ var attribute = {};
55
+ attribute[attributeName] = attributeValue;
56
+ if (!attributes_1.validateAttributesDeep(log, attribute, 'setAttribute'))
57
+ return false;
58
+ log.debug("stored " + attributeValue + " for attribute " + attributeName);
59
+ return attributeStorage.setAttribute(attributeName, attributeValue);
60
+ },
61
+ /**
62
+ * Returns the attribute with the given key
63
+ *
64
+ * @param {string} attributeName Attribute name
65
+ * @returns {Object} Attribute with the given key
66
+ */
67
+ getAttribute: function (attributeName) {
68
+ log.debug("retrieved attribute " + attributeName);
69
+ return attributeStorage.getAttribute(attributeName + '');
70
+ },
71
+ /**
72
+ * Add to client's in memory attributes storage the attributes in 'attributes'
73
+ *
74
+ * @param {Object} attributes Object with attributes to store
75
+ * @returns true if attributes were stored an false otherways
76
+ */
77
+ setAttributes: function (attributes) {
78
+ if (!attributes_1.validateAttributesDeep(log, attributes, 'setAttributes'))
79
+ return false;
80
+ return attributeStorage.setAttributes(attributes);
81
+ },
82
+ /**
83
+ * Return all the attributes stored in client's in memory attributes storage
84
+ *
85
+ * @returns {Object} returns all the stored attributes
86
+ */
87
+ getAttributes: function () {
88
+ return attributeStorage.getAll();
89
+ },
90
+ /**
91
+ * Removes from client's in memory attributes storage the attribute with the given key
92
+ *
93
+ * @param {string} attributeName
94
+ * @returns {boolean} true if attribute was removed and false otherways
95
+ */
96
+ removeAttribute: function (attributeName) {
97
+ log.debug("removed attribute " + attributeName);
98
+ return attributeStorage.removeAttribute(attributeName + '');
99
+ },
100
+ /**
101
+ * Remove all the stored attributes in the client's in memory attribute storage
102
+ */
103
+ clearAttributes: function () {
104
+ return attributeStorage.clear();
105
+ }
106
+ });
107
+ }
108
+ exports.clientAttributesDecoration = clientAttributesDecoration;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
4
- var object_assign_1 = tslib_1.__importDefault(require("object-assign"));
3
+ exports.clientCSDecorator = void 0;
4
+ var objectAssign_1 = require("../utils/lang/objectAssign");
5
+ var clientAttributesDecoration_1 = require("./clientAttributesDecoration");
5
6
  /**
6
7
  * Decorator that binds a key and (optionally) a traffic type to client methods
7
8
  *
@@ -9,15 +10,16 @@ var object_assign_1 = tslib_1.__importDefault(require("object-assign"));
9
10
  * @param key validated split key
10
11
  * @param trafficType validated traffic type
11
12
  */
12
- function clientCSDecorator(client, key, trafficType) {
13
- return object_assign_1.default(client, {
13
+ function clientCSDecorator(log, client, key, trafficType) {
14
+ var clientCS = clientAttributesDecoration_1.clientAttributesDecoration(log, client);
15
+ return objectAssign_1.objectAssign(clientCS, {
14
16
  // In the client-side API, we bind a key to the client `getTreatment*` methods
15
- getTreatment: client.getTreatment.bind(client, key),
16
- getTreatmentWithConfig: client.getTreatmentWithConfig.bind(client, key),
17
- getTreatments: client.getTreatments.bind(client, key),
18
- getTreatmentsWithConfig: client.getTreatmentsWithConfig.bind(client, key),
17
+ getTreatment: clientCS.getTreatment.bind(clientCS, key),
18
+ getTreatmentWithConfig: clientCS.getTreatmentWithConfig.bind(clientCS, key),
19
+ getTreatments: clientCS.getTreatments.bind(clientCS, key),
20
+ getTreatmentsWithConfig: clientCS.getTreatmentsWithConfig.bind(clientCS, key),
19
21
  // Key is bound to the `track` method. Same thing happens with trafficType but only if provided
20
- track: trafficType ? client.track.bind(client, key, trafficType) : client.track.bind(client, key)
22
+ track: trafficType ? clientCS.track.bind(clientCS, key, trafficType) : clientCS.track.bind(clientCS, key)
21
23
  });
22
24
  }
23
- exports.default = clientCSDecorator;
25
+ exports.clientCSDecorator = clientCSDecorator;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
4
- var object_assign_1 = tslib_1.__importDefault(require("object-assign"));
3
+ exports.clientInputValidationDecorator = void 0;
4
+ var objectAssign_1 = require("../utils/lang/objectAssign");
5
5
  var inputValidation_1 = require("../utils/inputValidation");
6
6
  var lang_1 = require("../utils/lang");
7
7
  var constants_1 = require("../utils/constants");
@@ -49,7 +49,7 @@ function clientInputValidationDecorator(log, client, readinessManager, isStorage
49
49
  return client.getTreatmentWithConfig(params.key, params.splitOrSplits, params.attributes);
50
50
  }
51
51
  else {
52
- return wrapResult(object_assign_1.default({}, constants_1.CONTROL_WITH_CONFIG));
52
+ return wrapResult(objectAssign_1.objectAssign({}, constants_1.CONTROL_WITH_CONFIG));
53
53
  }
54
54
  }
55
55
  function getTreatments(maybeKey, maybeSplits, maybeAttributes) {
@@ -72,7 +72,7 @@ function clientInputValidationDecorator(log, client, readinessManager, isStorage
72
72
  else {
73
73
  var res_2 = {};
74
74
  if (params.splitOrSplits)
75
- params.splitOrSplits.forEach(function (split) { return res_2[split] = object_assign_1.default({}, constants_1.CONTROL_WITH_CONFIG); });
75
+ params.splitOrSplits.forEach(function (split) { return res_2[split] = objectAssign_1.objectAssign({}, constants_1.CONTROL_WITH_CONFIG); });
76
76
  return wrapResult(res_2);
77
77
  }
78
78
  }
@@ -100,4 +100,4 @@ function clientInputValidationDecorator(log, client, readinessManager, isStorage
100
100
  track: track
101
101
  };
102
102
  }
103
- exports.default = clientInputValidationDecorator;
103
+ exports.clientInputValidationDecorator = clientInputValidationDecorator;
@@ -1,22 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.sdkClientFactory = void 0;
4
- var tslib_1 = require("tslib");
5
- var object_assign_1 = tslib_1.__importDefault(require("object-assign"));
4
+ var objectAssign_1 = require("../utils/lang/objectAssign");
6
5
  var constants_1 = require("../utils/constants");
7
6
  var apiKey_1 = require("../utils/inputValidation/apiKey");
8
- var client_1 = tslib_1.__importDefault(require("./client"));
9
- var clientInputValidation_1 = tslib_1.__importDefault(require("./clientInputValidation"));
7
+ var client_1 = require("./client");
8
+ var clientInputValidation_1 = require("./clientInputValidation");
10
9
  /**
11
10
  * Creates an Sdk client, i.e., a base client with status and destroy interface
12
11
  */
13
12
  function sdkClientFactory(params) {
14
13
  var sdkReadinessManager = params.sdkReadinessManager, syncManager = params.syncManager, storage = params.storage, signalListener = params.signalListener, settings = params.settings, sharedClient = params.sharedClient;
15
- return object_assign_1.default(
14
+ return objectAssign_1.objectAssign(
16
15
  // Proto-linkage of the readiness Event Emitter
17
16
  Object.create(sdkReadinessManager.sdkStatus),
18
17
  // Client API (getTreatment* & track methods)
19
- clientInputValidation_1.default(settings.log, client_1.default(params), sdkReadinessManager.readinessManager,
18
+ clientInputValidation_1.clientInputValidationDecorator(settings.log, client_1.clientFactory(params), sdkReadinessManager.readinessManager,
20
19
  // storage is async if and only if mode is consumer or partial consumer
21
20
  [constants_1.CONSUMER_MODE, constants_1.CONSUMER_PARTIAL_MODE].indexOf(settings.mode) === -1 ? true : false),
22
21
  // Sdk destroy