@splitsoftware/splitio-commons 1.0.1-rc.4 → 1.1.1-rc.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 (565) 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 +10 -11
  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/MinEvents.js +13 -15
  123. package/cjs/utils/inputValidation/attribute.js +20 -0
  124. package/cjs/utils/inputValidation/attributes.js +13 -1
  125. package/cjs/utils/inputValidation/trafficTypeExistance.js +2 -3
  126. package/cjs/utils/lang/binarySearch.js +2 -1
  127. package/cjs/utils/lang/objectAssign.js +85 -0
  128. package/cjs/utils/promise/thenable.js +5 -1
  129. package/cjs/utils/promise/timeout.js +2 -1
  130. package/cjs/utils/promise/wrapper.js +2 -1
  131. package/cjs/utils/settingsValidation/impressionsMode.js +2 -1
  132. package/cjs/utils/settingsValidation/index.js +5 -6
  133. package/cjs/utils/settingsValidation/mode.js +2 -1
  134. package/cjs/utils/timeTracker/index.js +7 -8
  135. package/cjs/utils/timeTracker/now/browser.js +2 -2
  136. package/cjs/utils/timeTracker/now/node.js +2 -1
  137. package/cjs/utils/timeTracker/timer.js +3 -2
  138. package/esm/evaluator/Engine.js +3 -3
  139. package/esm/evaluator/combiners/and.js +2 -2
  140. package/esm/evaluator/combiners/ifelseif.js +2 -2
  141. package/esm/evaluator/condition/index.js +2 -2
  142. package/esm/evaluator/index.js +5 -6
  143. package/esm/evaluator/matchers/all.js +1 -1
  144. package/esm/evaluator/matchers/between.js +1 -1
  145. package/esm/evaluator/matchers/boolean.js +1 -1
  146. package/esm/evaluator/matchers/cont_all.js +1 -1
  147. package/esm/evaluator/matchers/cont_any.js +1 -1
  148. package/esm/evaluator/matchers/cont_str.js +1 -1
  149. package/esm/evaluator/matchers/dependency.js +2 -2
  150. package/esm/evaluator/matchers/eq.js +1 -1
  151. package/esm/evaluator/matchers/eq_set.js +1 -1
  152. package/esm/evaluator/matchers/ew.js +1 -1
  153. package/esm/evaluator/matchers/gte.js +1 -1
  154. package/esm/evaluator/matchers/index.js +35 -35
  155. package/esm/evaluator/matchers/lte.js +1 -1
  156. package/esm/evaluator/matchers/part_of.js +1 -1
  157. package/esm/evaluator/matchers/segment.js +2 -2
  158. package/esm/evaluator/matchers/string.js +1 -1
  159. package/esm/evaluator/matchers/sw.js +1 -1
  160. package/esm/evaluator/matchers/whitelist.js +1 -1
  161. package/esm/evaluator/matchersTransform/index.js +5 -5
  162. package/esm/evaluator/matchersTransform/segment.js +1 -1
  163. package/esm/evaluator/matchersTransform/set.js +1 -1
  164. package/esm/evaluator/matchersTransform/unaryNumeric.js +1 -1
  165. package/esm/evaluator/matchersTransform/whitelist.js +1 -1
  166. package/esm/evaluator/parser/index.js +11 -11
  167. package/esm/evaluator/treatments/index.js +1 -1
  168. package/esm/evaluator/value/index.js +3 -3
  169. package/esm/evaluator/value/sanitize.js +1 -1
  170. package/esm/integrations/browser.js +2 -2
  171. package/esm/integrations/ga/GaToSplit.js +1 -1
  172. package/esm/integrations/pluggable.js +1 -1
  173. package/esm/listeners/browser.js +2 -2
  174. package/esm/listeners/node.js +2 -2
  175. package/esm/logger/index.js +1 -1
  176. package/esm/logger/messages/info.js +1 -1
  177. package/esm/logger/messages/warn.js +2 -2
  178. package/esm/readiness/readinessManager.js +1 -1
  179. package/esm/readiness/sdkReadinessManager.js +3 -3
  180. package/esm/sdkClient/client.js +2 -2
  181. package/esm/sdkClient/clientAttributesDecoration.js +104 -0
  182. package/esm/sdkClient/clientCS.js +10 -8
  183. package/esm/sdkClient/clientInputValidation.js +2 -2
  184. package/esm/sdkClient/sdkClient.js +3 -3
  185. package/esm/sdkClient/sdkClientMethodCS.js +4 -4
  186. package/esm/sdkClient/sdkClientMethodCSWithTT.js +4 -4
  187. package/esm/sdkFactory/index.js +6 -6
  188. package/esm/sdkManager/index.js +2 -2
  189. package/esm/services/splitApi.js +1 -1
  190. package/esm/services/splitHttpClient.js +1 -1
  191. package/esm/storages/AbstractSegmentsCacheSync.js +1 -1
  192. package/esm/storages/AbstractSplitsCacheAsync.js +1 -1
  193. package/esm/storages/AbstractSplitsCacheSync.js +1 -1
  194. package/esm/storages/KeyBuilder.js +1 -1
  195. package/esm/storages/KeyBuilderCS.js +2 -2
  196. package/esm/storages/KeyBuilderSS.js +2 -2
  197. package/esm/storages/findLatencyIndex.js +1 -1
  198. package/esm/storages/inLocalStorage/MySegmentsCacheInLocal.js +2 -2
  199. package/esm/storages/inLocalStorage/SplitsCacheInLocal.js +2 -2
  200. package/esm/storages/inLocalStorage/index.js +8 -8
  201. package/esm/storages/inMemory/AttributesCacheInMemory.js +67 -0
  202. package/esm/storages/inMemory/CountsCacheInMemory.js +1 -1
  203. package/esm/storages/inMemory/EventsCacheInMemory.js +1 -1
  204. package/esm/storages/inMemory/ImpressionCountsCacheInMemory.js +1 -1
  205. package/esm/storages/inMemory/ImpressionsCacheInMemory.js +1 -1
  206. package/esm/storages/inMemory/InMemoryStorage.js +5 -5
  207. package/esm/storages/inMemory/InMemoryStorageCS.js +5 -5
  208. package/esm/storages/inMemory/LatenciesCacheInMemory.js +2 -2
  209. package/esm/storages/inMemory/MySegmentsCacheInMemory.js +2 -2
  210. package/esm/storages/inMemory/SegmentsCacheInMemory.js +2 -2
  211. package/esm/storages/inMemory/SplitsCacheInMemory.js +2 -2
  212. package/esm/storages/inRedis/CountsCacheInRedis.js +1 -1
  213. package/esm/storages/inRedis/EventsCacheInRedis.js +1 -1
  214. package/esm/storages/inRedis/ImpressionsCacheInRedis.js +1 -1
  215. package/esm/storages/inRedis/LatenciesCacheInRedis.js +2 -2
  216. package/esm/storages/inRedis/RedisAdapter.js +3 -3
  217. package/esm/storages/inRedis/SegmentsCacheInRedis.js +1 -1
  218. package/esm/storages/inRedis/SplitsCacheInRedis.js +2 -2
  219. package/esm/storages/inRedis/index.js +8 -8
  220. package/esm/storages/pluggable/SplitsCachePluggable.js +1 -1
  221. package/esm/storages/pluggable/index.js +4 -4
  222. package/esm/sync/offline/splitsParser/parseCondition.js +1 -1
  223. package/esm/sync/offline/splitsParser/splitsParserFromFile.js +1 -1
  224. package/esm/sync/offline/splitsParser/splitsParserFromSettings.js +1 -1
  225. package/esm/sync/offline/syncManagerOffline.js +2 -2
  226. package/esm/sync/offline/syncTasks/fromObjectSyncTask.js +2 -2
  227. package/esm/sync/polling/fetchers/mySegmentsFetcher.js +1 -1
  228. package/esm/sync/polling/fetchers/segmentChangesFetcher.js +1 -1
  229. package/esm/sync/polling/fetchers/splitChangesFetcher.js +1 -1
  230. package/esm/sync/polling/pollingManagerCS.js +3 -3
  231. package/esm/sync/polling/pollingManagerSS.js +4 -4
  232. package/esm/sync/polling/syncTasks/mySegmentsSyncTask.js +3 -3
  233. package/esm/sync/polling/syncTasks/segmentsSyncTask.js +3 -3
  234. package/esm/sync/polling/syncTasks/splitsSyncTask.js +3 -3
  235. package/esm/sync/polling/updaters/mySegmentsUpdater.js +1 -1
  236. package/esm/sync/polling/updaters/segmentChangesUpdater.js +1 -1
  237. package/esm/sync/polling/updaters/splitChangesUpdater.js +7 -4
  238. package/esm/sync/streaming/AuthClient/index.js +1 -1
  239. package/esm/sync/streaming/SSEClient/index.js +1 -1
  240. package/esm/sync/streaming/SSEHandler/NotificationKeeper.js +1 -1
  241. package/esm/sync/streaming/SSEHandler/index.js +2 -2
  242. package/esm/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.js +2 -2
  243. package/esm/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.js +2 -2
  244. package/esm/sync/streaming/UpdateWorkers/SplitsUpdateWorker.js +2 -2
  245. package/esm/sync/streaming/pushManager.js +10 -9
  246. package/esm/sync/submitters/submitterSyncTask.js +1 -1
  247. package/esm/sync/syncTask.js +1 -1
  248. package/esm/trackers/eventTracker.js +3 -3
  249. package/esm/trackers/impressionObserver/ImpressionObserver.js +2 -2
  250. package/esm/trackers/impressionObserver/impressionObserverCS.js +1 -1
  251. package/esm/trackers/impressionObserver/impressionObserverSS.js +1 -1
  252. package/esm/trackers/impressionsTracker.js +3 -3
  253. package/esm/utils/Backoff.js +1 -1
  254. package/esm/utils/LRUCache/index.js +1 -1
  255. package/esm/utils/MinEventEmitter.js +1 -1
  256. package/esm/utils/MinEvents.js +2 -5
  257. package/esm/utils/inputValidation/attribute.js +16 -0
  258. package/esm/utils/inputValidation/attributes.js +11 -0
  259. package/esm/utils/inputValidation/trafficTypeExistance.js +1 -1
  260. package/esm/utils/lang/binarySearch.js +1 -1
  261. package/esm/utils/lang/objectAssign.js +82 -0
  262. package/esm/utils/promise/thenable.js +3 -1
  263. package/esm/utils/promise/timeout.js +1 -1
  264. package/esm/utils/promise/wrapper.js +1 -1
  265. package/esm/utils/settingsValidation/impressionsMode.js +1 -1
  266. package/esm/utils/settingsValidation/index.js +3 -3
  267. package/esm/utils/settingsValidation/mode.js +1 -1
  268. package/esm/utils/timeTracker/index.js +4 -5
  269. package/esm/utils/timeTracker/now/browser.js +1 -2
  270. package/esm/utils/timeTracker/now/node.js +1 -1
  271. package/esm/utils/timeTracker/timer.js +1 -1
  272. package/package.json +2 -3
  273. package/src/evaluator/Engine.ts +3 -3
  274. package/src/evaluator/combiners/and.ts +2 -2
  275. package/src/evaluator/combiners/ifelseif.ts +2 -2
  276. package/src/evaluator/condition/index.ts +2 -2
  277. package/src/evaluator/index.ts +5 -6
  278. package/src/evaluator/matchers/all.ts +1 -1
  279. package/src/evaluator/matchers/between.ts +1 -1
  280. package/src/evaluator/matchers/boolean.ts +1 -1
  281. package/src/evaluator/matchers/cont_all.ts +1 -1
  282. package/src/evaluator/matchers/cont_any.ts +1 -1
  283. package/src/evaluator/matchers/cont_str.ts +1 -1
  284. package/src/evaluator/matchers/dependency.ts +2 -2
  285. package/src/evaluator/matchers/eq.ts +1 -1
  286. package/src/evaluator/matchers/eq_set.ts +1 -1
  287. package/src/evaluator/matchers/ew.ts +1 -1
  288. package/src/evaluator/matchers/gte.ts +1 -1
  289. package/src/evaluator/matchers/index.ts +35 -35
  290. package/src/evaluator/matchers/lte.ts +1 -1
  291. package/src/evaluator/matchers/part_of.ts +1 -1
  292. package/src/evaluator/matchers/segment.ts +2 -2
  293. package/src/evaluator/matchers/string.ts +1 -1
  294. package/src/evaluator/matchers/sw.ts +1 -1
  295. package/src/evaluator/matchers/whitelist.ts +1 -1
  296. package/src/evaluator/matchersTransform/index.ts +5 -5
  297. package/src/evaluator/matchersTransform/segment.ts +1 -1
  298. package/src/evaluator/matchersTransform/set.ts +1 -1
  299. package/src/evaluator/matchersTransform/unaryNumeric.ts +1 -1
  300. package/src/evaluator/matchersTransform/whitelist.ts +1 -1
  301. package/src/evaluator/parser/index.ts +12 -12
  302. package/src/evaluator/treatments/index.ts +1 -1
  303. package/src/evaluator/value/index.ts +3 -3
  304. package/src/evaluator/value/sanitize.ts +1 -1
  305. package/src/integrations/browser.ts +2 -2
  306. package/src/integrations/ga/GaToSplit.ts +1 -1
  307. package/src/integrations/pluggable.ts +1 -1
  308. package/src/listeners/browser.ts +2 -2
  309. package/src/listeners/node.ts +2 -2
  310. package/src/logger/index.ts +1 -1
  311. package/src/logger/messages/info.ts +1 -1
  312. package/src/logger/messages/warn.ts +2 -2
  313. package/src/readiness/readinessManager.ts +2 -2
  314. package/src/readiness/sdkReadinessManager.ts +3 -3
  315. package/src/sdkClient/client.ts +2 -2
  316. package/src/sdkClient/clientAttributesDecoration.ts +122 -0
  317. package/src/sdkClient/clientCS.ts +13 -8
  318. package/src/sdkClient/clientInputValidation.ts +2 -2
  319. package/src/sdkClient/sdkClient.ts +3 -3
  320. package/src/sdkClient/sdkClientMethodCS.ts +4 -2
  321. package/src/sdkClient/sdkClientMethodCSWithTT.ts +4 -2
  322. package/src/sdkFactory/index.ts +6 -6
  323. package/src/sdkManager/index.ts +2 -2
  324. package/src/services/splitApi.ts +1 -1
  325. package/src/services/splitHttpClient.ts +1 -1
  326. package/src/storages/AbstractSegmentsCacheSync.ts +1 -1
  327. package/src/storages/AbstractSplitsCacheAsync.ts +1 -1
  328. package/src/storages/AbstractSplitsCacheSync.ts +1 -1
  329. package/src/storages/KeyBuilder.ts +1 -1
  330. package/src/storages/KeyBuilderCS.ts +2 -2
  331. package/src/storages/KeyBuilderSS.ts +2 -2
  332. package/src/storages/findLatencyIndex.ts +1 -1
  333. package/src/storages/inLocalStorage/MySegmentsCacheInLocal.ts +3 -3
  334. package/src/storages/inLocalStorage/SplitsCacheInLocal.ts +3 -3
  335. package/src/storages/inLocalStorage/index.ts +8 -8
  336. package/src/storages/inMemory/AttributesCacheInMemory.ts +73 -0
  337. package/src/storages/inMemory/CountsCacheInMemory.ts +1 -1
  338. package/src/storages/inMemory/EventsCacheInMemory.ts +1 -1
  339. package/src/storages/inMemory/ImpressionCountsCacheInMemory.ts +1 -1
  340. package/src/storages/inMemory/ImpressionsCacheInMemory.ts +1 -1
  341. package/src/storages/inMemory/InMemoryStorage.ts +5 -5
  342. package/src/storages/inMemory/InMemoryStorageCS.ts +5 -5
  343. package/src/storages/inMemory/LatenciesCacheInMemory.ts +2 -2
  344. package/src/storages/inMemory/MySegmentsCacheInMemory.ts +2 -2
  345. package/src/storages/inMemory/SegmentsCacheInMemory.ts +2 -2
  346. package/src/storages/inMemory/SplitsCacheInMemory.ts +2 -2
  347. package/src/storages/inRedis/CountsCacheInRedis.ts +2 -2
  348. package/src/storages/inRedis/EventsCacheInRedis.ts +1 -1
  349. package/src/storages/inRedis/ImpressionsCacheInRedis.ts +1 -1
  350. package/src/storages/inRedis/LatenciesCacheInRedis.ts +3 -3
  351. package/src/storages/inRedis/RedisAdapter.ts +3 -3
  352. package/src/storages/inRedis/SegmentsCacheInRedis.ts +2 -2
  353. package/src/storages/inRedis/SplitsCacheInRedis.ts +3 -3
  354. package/src/storages/inRedis/index.ts +8 -8
  355. package/src/storages/pluggable/SegmentsCachePluggable.ts +1 -1
  356. package/src/storages/pluggable/SplitsCachePluggable.ts +2 -2
  357. package/src/storages/pluggable/index.ts +4 -4
  358. package/src/storages/types.ts +2 -2
  359. package/src/sync/offline/splitsParser/parseCondition.ts +1 -1
  360. package/src/sync/offline/splitsParser/splitsParserFromFile.ts +1 -1
  361. package/src/sync/offline/splitsParser/splitsParserFromSettings.ts +1 -1
  362. package/src/sync/offline/syncManagerOffline.ts +2 -2
  363. package/src/sync/offline/syncTasks/fromObjectSyncTask.ts +2 -2
  364. package/src/sync/polling/fetchers/mySegmentsFetcher.ts +1 -1
  365. package/src/sync/polling/fetchers/segmentChangesFetcher.ts +1 -1
  366. package/src/sync/polling/fetchers/splitChangesFetcher.ts +1 -1
  367. package/src/sync/polling/pollingManagerCS.ts +3 -3
  368. package/src/sync/polling/pollingManagerSS.ts +4 -4
  369. package/src/sync/polling/syncTasks/mySegmentsSyncTask.ts +3 -3
  370. package/src/sync/polling/syncTasks/segmentsSyncTask.ts +3 -3
  371. package/src/sync/polling/syncTasks/splitsSyncTask.ts +3 -3
  372. package/src/sync/polling/updaters/mySegmentsUpdater.ts +1 -1
  373. package/src/sync/polling/updaters/segmentChangesUpdater.ts +1 -1
  374. package/src/sync/polling/updaters/splitChangesUpdater.ts +6 -3
  375. package/src/sync/streaming/AuthClient/index.ts +1 -1
  376. package/src/sync/streaming/SSEClient/index.ts +1 -1
  377. package/src/sync/streaming/SSEHandler/NotificationKeeper.ts +1 -1
  378. package/src/sync/streaming/SSEHandler/index.ts +2 -2
  379. package/src/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.ts +2 -2
  380. package/src/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.ts +2 -2
  381. package/src/sync/streaming/UpdateWorkers/SplitsUpdateWorker.ts +2 -2
  382. package/src/sync/streaming/UpdateWorkers/types.ts +1 -1
  383. package/src/sync/streaming/pushManager.ts +10 -9
  384. package/src/sync/submitters/submitterSyncTask.ts +1 -1
  385. package/src/sync/syncTask.ts +1 -1
  386. package/src/trackers/eventTracker.ts +3 -3
  387. package/src/trackers/impressionObserver/ImpressionObserver.ts +2 -2
  388. package/src/trackers/impressionObserver/impressionObserverCS.ts +1 -1
  389. package/src/trackers/impressionObserver/impressionObserverSS.ts +1 -1
  390. package/src/trackers/impressionsTracker.ts +3 -3
  391. package/src/types.ts +39 -0
  392. package/src/utils/Backoff.ts +1 -1
  393. package/src/utils/LRUCache/index.ts +1 -1
  394. package/src/utils/MinEventEmitter.ts +1 -1
  395. package/src/utils/MinEvents.ts +2 -7
  396. package/src/utils/inputValidation/attribute.ts +21 -0
  397. package/src/utils/inputValidation/attributes.ts +14 -0
  398. package/src/utils/inputValidation/trafficTypeExistance.ts +1 -1
  399. package/src/utils/lang/binarySearch.ts +1 -1
  400. package/src/utils/lang/objectAssign.ts +104 -0
  401. package/src/utils/promise/thenable.ts +3 -1
  402. package/src/utils/promise/timeout.ts +1 -1
  403. package/src/utils/promise/wrapper.ts +1 -1
  404. package/src/utils/settingsValidation/impressionsMode.ts +1 -1
  405. package/src/utils/settingsValidation/index.ts +3 -3
  406. package/src/utils/settingsValidation/mode.ts +1 -1
  407. package/src/utils/timeTracker/index.ts +4 -6
  408. package/src/utils/timeTracker/now/browser.ts +1 -3
  409. package/src/utils/timeTracker/now/node.ts +1 -1
  410. package/src/utils/timeTracker/timer.ts +1 -1
  411. package/types/evaluator/Engine.d.ts +1 -1
  412. package/types/evaluator/combiners/and.d.ts +1 -1
  413. package/types/evaluator/combiners/ifelseif.d.ts +1 -1
  414. package/types/evaluator/condition/index.d.ts +1 -1
  415. package/types/evaluator/matchers/all.d.ts +1 -1
  416. package/types/evaluator/matchers/between.d.ts +1 -1
  417. package/types/evaluator/matchers/boolean.d.ts +1 -1
  418. package/types/evaluator/matchers/cont_all.d.ts +1 -1
  419. package/types/evaluator/matchers/cont_any.d.ts +1 -1
  420. package/types/evaluator/matchers/cont_str.d.ts +1 -1
  421. package/types/evaluator/matchers/dependency.d.ts +1 -1
  422. package/types/evaluator/matchers/eq.d.ts +1 -1
  423. package/types/evaluator/matchers/eq_set.d.ts +1 -1
  424. package/types/evaluator/matchers/ew.d.ts +1 -1
  425. package/types/evaluator/matchers/gte.d.ts +1 -1
  426. package/types/evaluator/matchers/index.d.ts +1 -1
  427. package/types/evaluator/matchers/lte.d.ts +1 -1
  428. package/types/evaluator/matchers/part_of.d.ts +1 -1
  429. package/types/evaluator/matchers/segment.d.ts +1 -1
  430. package/types/evaluator/matchers/string.d.ts +1 -1
  431. package/types/evaluator/matchers/sw.d.ts +1 -1
  432. package/types/evaluator/matchers/whitelist.d.ts +1 -1
  433. package/types/evaluator/matchersTransform/index.d.ts +1 -1
  434. package/types/evaluator/matchersTransform/segment.d.ts +1 -1
  435. package/types/evaluator/matchersTransform/set.d.ts +1 -1
  436. package/types/evaluator/matchersTransform/unaryNumeric.d.ts +1 -1
  437. package/types/evaluator/matchersTransform/whitelist.d.ts +1 -1
  438. package/types/evaluator/parser/index.d.ts +1 -1
  439. package/types/evaluator/treatments/index.d.ts +1 -1
  440. package/types/evaluator/value/index.d.ts +1 -1
  441. package/types/evaluator/value/sanitize.d.ts +1 -1
  442. package/types/integrations/browser.d.ts +1 -1
  443. package/types/integrations/pluggable.d.ts +1 -1
  444. package/types/listeners/browser.d.ts +1 -1
  445. package/types/listeners/node.d.ts +1 -1
  446. package/types/logger/browser/{debugLogger.d.ts → DebugLogger.d.ts} +0 -0
  447. package/types/logger/browser/{errorLogger.d.ts → ErrorLogger.d.ts} +0 -0
  448. package/types/logger/browser/{infoLogger.d.ts → InfoLogger.d.ts} +0 -0
  449. package/types/logger/browser/{warnLogger.d.ts → WarnLogger.d.ts} +0 -0
  450. package/types/readiness/sdkReadinessManager.d.ts +1 -1
  451. package/types/sdkClient/client.d.ts +1 -1
  452. package/types/sdkClient/clientAttributesDecoration.d.ts +51 -0
  453. package/types/sdkClient/clientCS.d.ts +2 -1
  454. package/types/sdkClient/clientInputValidation.d.ts +1 -1
  455. package/types/storages/AbstractSegmentsCacheSync.d.ts +1 -1
  456. package/types/storages/AbstractSplitsCacheAsync.d.ts +1 -1
  457. package/types/storages/AbstractSplitsCacheSync.d.ts +1 -1
  458. package/types/storages/KeyBuilder.d.ts +1 -1
  459. package/types/storages/KeyBuilderCS.d.ts +2 -2
  460. package/types/storages/KeyBuilderSS.d.ts +2 -2
  461. package/types/storages/findLatencyIndex.d.ts +1 -1
  462. package/types/storages/inLocalStorage/MySegmentsCacheInLocal.d.ts +3 -3
  463. package/types/storages/inLocalStorage/SplitsCacheInLocal.d.ts +3 -3
  464. package/types/storages/inMemory/AttributesCacheInMemory.d.ts +43 -0
  465. package/types/storages/inMemory/CountsCacheInMemory.d.ts +1 -1
  466. package/types/storages/inMemory/EventsCacheInMemory.d.ts +1 -1
  467. package/types/storages/inMemory/ImpressionCountsCacheInMemory.d.ts +1 -1
  468. package/types/storages/inMemory/ImpressionsCacheInMemory.d.ts +1 -1
  469. package/types/storages/inMemory/LatenciesCacheInMemory.d.ts +1 -1
  470. package/types/storages/inMemory/MySegmentsCacheInMemory.d.ts +2 -2
  471. package/types/storages/inMemory/SegmentsCacheInMemory.d.ts +2 -2
  472. package/types/storages/inMemory/SplitsCacheInMemory.d.ts +2 -2
  473. package/types/storages/inRedis/CountsCacheInRedis.d.ts +2 -2
  474. package/types/storages/inRedis/EventsCacheInRedis.d.ts +1 -1
  475. package/types/storages/inRedis/ImpressionsCacheInRedis.d.ts +1 -1
  476. package/types/storages/inRedis/LatenciesCacheInRedis.d.ts +2 -2
  477. package/types/storages/inRedis/RedisAdapter.d.ts +1 -1
  478. package/types/storages/inRedis/SegmentsCacheInRedis.d.ts +2 -2
  479. package/types/storages/inRedis/SplitsCacheInRedis.d.ts +3 -3
  480. package/types/storages/pluggable/SegmentsCachePluggable.d.ts +1 -1
  481. package/types/storages/pluggable/SplitsCachePluggable.d.ts +2 -2
  482. package/types/storages/types.d.ts +2 -2
  483. package/types/sync/offline/splitsParser/parseCondition.d.ts +1 -1
  484. package/types/sync/offline/syncTasks/fromObjectSyncTask.d.ts +1 -1
  485. package/types/sync/polling/fetchers/mySegmentsFetcher.d.ts +1 -1
  486. package/types/sync/polling/fetchers/segmentChangesFetcher.d.ts +1 -1
  487. package/types/sync/polling/fetchers/splitChangesFetcher.d.ts +1 -1
  488. package/types/sync/polling/pollingManagerCS.d.ts +1 -1
  489. package/types/sync/polling/pollingManagerSS.d.ts +1 -1
  490. package/types/sync/polling/syncTasks/mySegmentsSyncTask.d.ts +1 -1
  491. package/types/sync/polling/syncTasks/segmentsSyncTask.d.ts +1 -1
  492. package/types/sync/polling/syncTasks/splitsSyncTask.d.ts +1 -1
  493. package/types/sync/streaming/SSEClient/index.d.ts +1 -1
  494. package/types/sync/streaming/SSEHandler/NotificationKeeper.d.ts +1 -1
  495. package/types/sync/streaming/SSEHandler/index.d.ts +1 -1
  496. package/types/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.d.ts +2 -2
  497. package/types/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.d.ts +2 -2
  498. package/types/sync/streaming/UpdateWorkers/SplitsUpdateWorker.d.ts +2 -2
  499. package/types/sync/streaming/UpdateWorkers/types.d.ts +1 -1
  500. package/types/sync/streaming/pushManager.d.ts +1 -1
  501. package/types/sync/syncTask.d.ts +1 -1
  502. package/types/trackers/eventTracker.d.ts +1 -1
  503. package/types/trackers/impressionObserver/ImpressionObserver.d.ts +1 -1
  504. package/types/trackers/impressionObserver/impressionObserverCS.d.ts +1 -1
  505. package/types/trackers/impressionObserver/impressionObserverSS.d.ts +1 -1
  506. package/types/trackers/impressionsTracker.d.ts +1 -1
  507. package/types/types.d.ts +39 -0
  508. package/types/utils/Backoff.d.ts +1 -1
  509. package/types/utils/LRUCache/index.d.ts +1 -1
  510. package/types/utils/MinEventEmitter.d.ts +1 -1
  511. package/types/utils/MinEvents.d.ts +3 -2
  512. package/types/utils/inputValidation/attribute.d.ts +2 -0
  513. package/types/utils/inputValidation/attributes.d.ts +1 -0
  514. package/types/utils/lang/binarySearch.d.ts +1 -1
  515. package/types/utils/lang/objectAssign.d.ts +3 -0
  516. package/types/utils/promise/thenable.d.ts +1 -2
  517. package/types/utils/promise/timeout.d.ts +1 -1
  518. package/types/utils/promise/wrapper.d.ts +1 -1
  519. package/types/utils/settingsValidation/impressionsMode.d.ts +1 -1
  520. package/types/utils/settingsValidation/mode.d.ts +1 -1
  521. package/types/utils/timeTracker/index.d.ts +2 -2
  522. package/types/utils/timeTracker/now/browser.d.ts +1 -2
  523. package/types/utils/timeTracker/now/node.d.ts +1 -1
  524. package/types/utils/timeTracker/timer.d.ts +1 -1
  525. package/src/logger/.DS_Store +0 -0
  526. package/types/integrations/ga/GaToSplitPlugin.d.ts +0 -3
  527. package/types/integrations/ga/SplitToGaPlugin.d.ts +0 -4
  528. package/types/logger/codes.d.ts +0 -2
  529. package/types/logger/codesConstants.d.ts +0 -117
  530. package/types/logger/codesConstantsBrowser.d.ts +0 -2
  531. package/types/logger/codesConstantsNode.d.ts +0 -14
  532. package/types/logger/codesDebug.d.ts +0 -1
  533. package/types/logger/codesDebugBrowser.d.ts +0 -1
  534. package/types/logger/codesDebugNode.d.ts +0 -1
  535. package/types/logger/codesError.d.ts +0 -1
  536. package/types/logger/codesErrorNode.d.ts +0 -1
  537. package/types/logger/codesInfo.d.ts +0 -1
  538. package/types/logger/codesWarn.d.ts +0 -1
  539. package/types/logger/codesWarnNode.d.ts +0 -1
  540. package/types/logger/debugLogger.d.ts +0 -2
  541. package/types/logger/errorLogger.d.ts +0 -2
  542. package/types/logger/infoLogger.d.ts +0 -2
  543. package/types/logger/messages/debugBrowser.d.ts +0 -1
  544. package/types/logger/messages/debugNode.d.ts +0 -1
  545. package/types/logger/messages/errorNode.d.ts +0 -1
  546. package/types/logger/messages/warnNode.d.ts +0 -1
  547. package/types/logger/noopLogger.d.ts +0 -2
  548. package/types/logger/warnLogger.d.ts +0 -2
  549. package/types/sdkManager/sdkManagerMethod.d.ts +0 -6
  550. package/types/storages/getRegisteredSegments.d.ts +0 -10
  551. package/types/sync/polling/syncTasks/splitsSyncTask.copy.d.ts +0 -35
  552. package/types/sync/polling/syncTasks/splitsSyncTask.morelikeoriginal.d.ts +0 -35
  553. package/types/sync/streaming/AuthClient/indexV1.d.ts +0 -12
  554. package/types/sync/streaming/AuthClient/indexV2.d.ts +0 -8
  555. package/types/sync/streaming/pushManagerCS.d.ts +0 -12
  556. package/types/sync/streaming/pushManagerNoUsers.d.ts +0 -13
  557. package/types/sync/streaming/pushManagerSS.d.ts +0 -11
  558. package/types/sync/syncManagerFromFile.d.ts +0 -2
  559. package/types/sync/syncManagerFromObject.d.ts +0 -2
  560. package/types/sync/syncManagerOffline.d.ts +0 -9
  561. package/types/utils/lang/errors.d.ts +0 -10
  562. package/types/utils/murmur3/commons.d.ts +0 -12
  563. package/types/utils/settingsValidation/buildMetadata.d.ts +0 -3
  564. package/types/utils/settingsValidation/localhost/index.d.ts +0 -9
  565. package/types/utils/settingsValidation/logger.d.ts +0 -11
@@ -1,44 +1,44 @@
1
- import allMatcher from './all';
2
- import segmentMatcher from './segment';
3
- import whitelistMatcher from './whitelist';
4
- import eqMatcher from './eq';
5
- import gteMatcher from './gte';
6
- import lteMatcher from './lte';
7
- import betweenMatcher from './between';
8
- import equalToSetMatcher from './eq_set';
9
- import containsAllSetMatcher from './cont_all';
10
- import containsAnySetMatcher from './cont_any';
11
- import partOfSetMatcher from './part_of';
12
- import swMatcher from './sw';
13
- import ewMatcher from './ew';
14
- import containsStrMatcher from './cont_str';
15
- import dependencyMatcher from './dependency';
16
- import booleanMatcher from './boolean';
17
- import stringMatcher from './string';
1
+ import { allMatcherContext } from './all';
2
+ import { segmentMatcherContext } from './segment';
3
+ import { whitelistMatcherContext } from './whitelist';
4
+ import { equalToMatcherContext } from './eq';
5
+ import { greaterThanEqualMatcherContext } from './gte';
6
+ import { lessThanEqualMatcherContext } from './lte';
7
+ import { betweenMatcherContext } from './between';
8
+ import { equalToSetMatcherContext } from './eq_set';
9
+ import { containsAnySetMatcherContext } from './cont_any';
10
+ import { containsAllSetMatcherContext } from './cont_all';
11
+ import { partOfSetMatcherContext } from './part_of';
12
+ import { endsWithMatcherContext } from './ew';
13
+ import { startsWithMatcherContext } from './sw';
14
+ import { containsStringMatcherContext } from './cont_str';
15
+ import { dependencyMatcherContext } from './dependency';
16
+ import { booleanMatcherContext } from './boolean';
17
+ import { stringMatcherContext } from './string';
18
18
  var matchers = [
19
19
  undefined,
20
- allMatcher,
21
- segmentMatcher,
22
- whitelistMatcher,
23
- eqMatcher,
24
- gteMatcher,
25
- lteMatcher,
26
- betweenMatcher,
27
- equalToSetMatcher,
28
- containsAnySetMatcher,
29
- containsAllSetMatcher,
30
- partOfSetMatcher,
31
- ewMatcher,
32
- swMatcher,
33
- containsStrMatcher,
34
- dependencyMatcher,
35
- booleanMatcher,
36
- stringMatcher // MATCHES_STRING: 17
20
+ allMatcherContext,
21
+ segmentMatcherContext,
22
+ whitelistMatcherContext,
23
+ equalToMatcherContext,
24
+ greaterThanEqualMatcherContext,
25
+ lessThanEqualMatcherContext,
26
+ betweenMatcherContext,
27
+ equalToSetMatcherContext,
28
+ containsAnySetMatcherContext,
29
+ containsAllSetMatcherContext,
30
+ partOfSetMatcherContext,
31
+ endsWithMatcherContext,
32
+ startsWithMatcherContext,
33
+ containsStringMatcherContext,
34
+ dependencyMatcherContext,
35
+ booleanMatcherContext,
36
+ stringMatcherContext // MATCHES_STRING: 17
37
37
  ];
38
38
  /**
39
39
  * Matcher factory.
40
40
  */
41
- export default function matcherFactory(log, matcherDto, storage) {
41
+ export function matcherFactory(log, matcherDto, storage) {
42
42
  var type = matcherDto.type, value = matcherDto.value;
43
43
  var matcherFn;
44
44
  // @ts-ignore
@@ -1,5 +1,5 @@
1
1
  import { ENGINE_MATCHER_LESS } from '../../logger/constants';
2
- export default function lessThanEqualMatcherContext(log, ruleAttr) {
2
+ export function lessThanEqualMatcherContext(log, ruleAttr) {
3
3
  return function lessThanEqualMatcher(runtimeAttr) {
4
4
  var isLessEqualThan = runtimeAttr <= ruleAttr;
5
5
  log.debug(ENGINE_MATCHER_LESS, [runtimeAttr, ruleAttr, isLessEqualThan]);
@@ -1,6 +1,6 @@
1
1
  import { findIndex } from '../../utils/lang';
2
2
  import { ENGINE_MATCHER_PART_OF } from '../../logger/constants';
3
- export default function partOfMatcherContext(log, ruleAttr) {
3
+ export function partOfSetMatcherContext(log, ruleAttr) {
4
4
  return function partOfMatcher(runtimeAttr) {
5
5
  // To be part of the length should be minor or equal.
6
6
  var isPartOf = runtimeAttr.length <= ruleAttr.length;
@@ -1,6 +1,6 @@
1
- import thenable from '../../utils/promise/thenable';
1
+ import { thenable } from '../../utils/promise/thenable';
2
2
  import { ENGINE_MATCHER_SEGMENT } from '../../logger/constants';
3
- export default function matcherSegmentContext(log, segmentName, storage) {
3
+ export function segmentMatcherContext(log, segmentName, storage) {
4
4
  return function segmentMatcher(key) {
5
5
  var isInSegment = storage.segments.isInSegment(segmentName, key);
6
6
  if (thenable(isInSegment)) {
@@ -1,5 +1,5 @@
1
1
  import { ENGINE_MATCHER_STRING_INVALID, ENGINE_MATCHER_STRING } from '../../logger/constants';
2
- export default function stringMatcherContext(log, ruleAttr) {
2
+ export function stringMatcherContext(log, ruleAttr) {
3
3
  return function stringMatcher(runtimeAttr) {
4
4
  var re;
5
5
  try {
@@ -1,6 +1,6 @@
1
1
  import { ENGINE_MATCHER_STARTS_WITH } from '../../logger/constants';
2
2
  import { startsWith } from '../../utils/lang';
3
- export default function startsWithMatcherContext(log, ruleAttr) {
3
+ export function startsWithMatcherContext(log, ruleAttr) {
4
4
  return function startsWithMatcher(runtimeAttr) {
5
5
  var matches = ruleAttr.some(function (e) { return startsWith(runtimeAttr, e); });
6
6
  log.debug(ENGINE_MATCHER_STARTS_WITH, [runtimeAttr, ruleAttr, matches]);
@@ -1,6 +1,6 @@
1
1
  import { setToArray } from '../../utils/lang/sets';
2
2
  import { ENGINE_MATCHER_WHITELIST } from '../../logger/constants';
3
- export default function whitelistMatcherContext(log, ruleAttr) {
3
+ export function whitelistMatcherContext(log, ruleAttr) {
4
4
  return function whitelistMatcher(runtimeAttr) {
5
5
  var isInWhitelist = ruleAttr.has(runtimeAttr);
6
6
  log.debug(ENGINE_MATCHER_WHITELIST, [runtimeAttr, setToArray(ruleAttr).join(','), isInWhitelist]);
@@ -1,14 +1,14 @@
1
1
  import { findIndex } from '../../utils/lang';
2
2
  import { matcherTypes, matcherTypesMapper, matcherDataTypes } from '../matchers/matcherTypes';
3
- import segmentTransform from './segment';
4
- import whitelistTransform from './whitelist';
5
- import setTransform from './set';
6
- import numericTransform from './unaryNumeric';
3
+ import { segmentTransform } from './segment';
4
+ import { whitelistTransform } from './whitelist';
5
+ import { setTransform } from './set';
6
+ import { numericTransform } from './unaryNumeric';
7
7
  import { zeroSinceHH, zeroSinceSS } from '../convertions';
8
8
  /**
9
9
  * Flat the complex matcherGroup structure into something handy.
10
10
  */
11
- export default function matchersTransform(matchers) {
11
+ export function matchersTransform(matchers) {
12
12
  var parsedMatchers = matchers.map(function (matcher) {
13
13
  var matcherType = matcher.matcherType /* string */, negate = matcher.negate /* boolean */, keySelector = matcher.keySelector /* keySelectorObject */, segmentObject = matcher.userDefinedSegmentMatcherData /* segmentObject */, whitelistObject = matcher.whitelistMatcherData /* whiteListObject, provided by 'WHITELIST', set and string matchers */, unaryNumericObject = matcher.unaryNumericMatcherData /* unaryNumericObject */, betweenObject = matcher.betweenMatcherData /* betweenObject */, dependencyObject = matcher.dependencyMatcherData /* dependencyObject */, booleanMatcherData = matcher.booleanMatcherData, stringMatcherData = matcher.stringMatcherData;
14
14
  var attribute = keySelector && keySelector.attribute;
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Extract segment name as a plain string.
3
3
  */
4
- export default function transform(segment) {
4
+ export function segmentTransform(segment) {
5
5
  return segment ? segment.segmentName : undefined;
6
6
  }
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Extract whitelist array. Used by set and string matchers
3
3
  */
4
- export default function transform(whitelistObject) {
4
+ export function setTransform(whitelistObject) {
5
5
  return whitelistObject.whitelist;
6
6
  }
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Extract value from unary matcher data.
3
3
  */
4
- export default function transform(unaryNumericObject) {
4
+ export function numericTransform(unaryNumericObject) {
5
5
  return unaryNumericObject.value;
6
6
  }
@@ -2,6 +2,6 @@ import { _Set } from '../../utils/lang/sets';
2
2
  /**
3
3
  * Extract whitelist as a set. Used by 'WHITELIST' matcher.
4
4
  */
5
- export default function transform(whitelistObject) {
5
+ export function whitelistTransform(whitelistObject) {
6
6
  return new _Set(whitelistObject.whitelist);
7
7
  }
@@ -1,12 +1,12 @@
1
- import matchersTransform from '../matchersTransform';
2
- import Treatments from '../treatments';
3
- import matcherFactory from '../matchers';
4
- import sanitizeValue from '../value';
5
- import conditionFactory from '../condition';
6
- import ifElseIfCombiner from '../combiners/ifelseif';
7
- import andCombiner from '../combiners/and';
8
- import thenable from '../../utils/promise/thenable';
9
- export default function parser(log, conditions, storage) {
1
+ import { matchersTransform } from '../matchersTransform';
2
+ import { Treatments } from '../treatments';
3
+ import { matcherFactory } from '../matchers';
4
+ import { sanitizeValue } from '../value';
5
+ import { conditionContext } from '../condition';
6
+ import { ifElseIfCombinerContext } from '../combiners/ifelseif';
7
+ import { andCombinerContext } from '../combiners/and';
8
+ import { thenable } from '../../utils/promise/thenable';
9
+ export function parser(log, conditions, storage) {
10
10
  var predicates = [];
11
11
  for (var i = 0; i < conditions.length; i++) {
12
12
  var _a = conditions[i], matcherGroup = _a.matcherGroup, partitions = _a.partitions, label = _a.label, conditionType = _a.conditionType;
@@ -35,8 +35,8 @@ export default function parser(log, conditions, storage) {
35
35
  // and break the loop
36
36
  break;
37
37
  }
38
- predicates.push(conditionFactory(log, andCombiner(log, expressions), Treatments.parse(partitions), label, conditionType));
38
+ predicates.push(conditionContext(log, andCombinerContext(log, expressions), Treatments.parse(partitions), label, conditionType));
39
39
  }
40
40
  // Instanciate evaluator given the set of conditions using if else if logic
41
- return ifElseIfCombiner(log, predicates);
41
+ return ifElseIfCombinerContext(log, predicates);
42
42
  }
@@ -36,4 +36,4 @@ var Treatments = /** @class */ (function () {
36
36
  };
37
37
  return Treatments;
38
38
  }());
39
- export default Treatments;
39
+ export { Treatments };
@@ -1,4 +1,4 @@
1
- import sanitizeValue from './sanitize';
1
+ import { sanitize } from './sanitize';
2
2
  import { ENGINE_VALUE, ENGINE_VALUE_NO_ATTRIBUTES, ENGINE_VALUE_INVALID } from '../../logger/constants';
3
3
  function parseValue(log, key, attributeName, attributes) {
4
4
  var value = undefined;
@@ -19,10 +19,10 @@ function parseValue(log, key, attributeName, attributes) {
19
19
  /**
20
20
  * Defines value to be matched (key / attribute).
21
21
  */
22
- export default function value(log, key, matcherDto, attributes) {
22
+ export function sanitizeValue(log, key, matcherDto, attributes) {
23
23
  var attributeName = matcherDto.attribute;
24
24
  var valueToMatch = parseValue(log, key, attributeName, attributes);
25
- var sanitizedValue = sanitizeValue(log, matcherDto.type, valueToMatch, matcherDto.dataType, attributes);
25
+ var sanitizedValue = sanitize(log, matcherDto.type, valueToMatch, matcherDto.dataType, attributes);
26
26
  if (sanitizedValue !== undefined) {
27
27
  return sanitizedValue;
28
28
  }
@@ -57,7 +57,7 @@ function getProcessingFunction(matcherTypeID, dataType) {
57
57
  /**
58
58
  * Sanitize matcher value
59
59
  */
60
- export default function sanitize(log, matcherTypeID, value, dataType, attributes) {
60
+ export function sanitize(log, matcherTypeID, value, dataType, attributes) {
61
61
  var processor = getProcessingFunction(matcherTypeID, dataType);
62
62
  var sanitizedValue;
63
63
  switch (dataType) {
@@ -1,5 +1,5 @@
1
1
  import { GOOGLE_ANALYTICS_TO_SPLIT, SPLIT_TO_GOOGLE_ANALYTICS } from '../utils/constants/browser';
2
- import pluggableIntegrationsManagerFactory from './pluggable';
2
+ import { pluggableIntegrationsManagerFactory } from './pluggable';
3
3
  import { GoogleAnalyticsToSplit } from './ga/GoogleAnalyticsToSplit';
4
4
  import { SplitToGoogleAnalytics } from './ga/SplitToGoogleAnalytics';
5
5
  /**
@@ -11,7 +11,7 @@ import { SplitToGoogleAnalytics } from './ga/SplitToGoogleAnalytics';
11
11
  *
12
12
  * @returns integration manager or undefined if `integrations` are not present in settings.
13
13
  */
14
- export default function integrationsManagerFactory(integrations, params) {
14
+ export function integrationsManagerFactory(integrations, params) {
15
15
  // maps integration config items into integration factories to reuse the pluggable integration manager
16
16
  var integrationFactories = integrations
17
17
  .map(function (integrationOptions) {
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable no-undef */
2
- import objectAssign from 'object-assign';
2
+ import { objectAssign } from '../../utils/lang/objectAssign';
3
3
  import { isString, isFiniteNumber, uniqAsStrings } from '../../utils/lang';
4
4
  import { validateEvent, validateEventValue, validateEventProperties, validateKey, validateTrafficType, } from '../../utils/inputValidation';
5
5
  var logPrefix = 'ga-to-split: ';
@@ -8,7 +8,7 @@ import { SPLIT_IMPRESSION, SPLIT_EVENT } from '../utils/constants';
8
8
  *
9
9
  * @returns integration manager or undefined if `integrations` are not present in settings.
10
10
  */
11
- export default function integrationsManagerFactory(integrations, params) {
11
+ export function pluggableIntegrationsManagerFactory(integrations, params) {
12
12
  var listeners = [];
13
13
  // No need to check if `settings.integrations` is an array of functions. It was already validated
14
14
  integrations.forEach(function (integrationFactory) {
@@ -1,7 +1,7 @@
1
1
  import { fromImpressionsCollector } from '../sync/submitters/impressionsSyncTask';
2
2
  import { fromImpressionCountsCollector } from '../sync/submitters/impressionCountsSyncTask';
3
3
  import { OPTIMIZED, DEBUG } from '../utils/constants';
4
- import objectAssign from 'object-assign';
4
+ import { objectAssign } from '../utils/lang/objectAssign';
5
5
  import { CLEANUP_REGISTERING, CLEANUP_DEREGISTERING } from '../logger/constants';
6
6
  // 'unload' event is used instead of 'beforeunload', since 'unload' is not a cancelable event, so no other listeners can stop the event from occurring.
7
7
  var UNLOAD_DOM_EVENT = 'unload';
@@ -95,4 +95,4 @@ var BrowserSignalListener = /** @class */ (function () {
95
95
  };
96
96
  return BrowserSignalListener;
97
97
  }());
98
- export default BrowserSignalListener;
98
+ export { BrowserSignalListener };
@@ -1,4 +1,4 @@
1
- import thenable from '../utils/promise/thenable';
1
+ import { thenable } from '../utils/promise/thenable';
2
2
  import { LOG_PREFIX_CLEANUP, CLEANUP_REGISTERING, CLEANUP_DEREGISTERING } from '../logger/constants';
3
3
  var SIGTERM = 'SIGTERM';
4
4
  var EVENT_NAME = 'for SIGTERM signal.';
@@ -62,4 +62,4 @@ var NodeSignalListener = /** @class */ (function () {
62
62
  };
63
63
  return NodeSignalListener;
64
64
  }());
65
- export default NodeSignalListener;
65
+ export { NodeSignalListener };
@@ -1,4 +1,4 @@
1
- import objectAssign from 'object-assign';
1
+ import { objectAssign } from '../utils/lang/objectAssign';
2
2
  import { find } from '../utils/lang';
3
3
  import { _Map } from '../utils/lang/maps';
4
4
  export var LogLevels = {
@@ -21,7 +21,7 @@ export var codesInfo = codesWarn.concat([
21
21
  [c.SUBMITTERS_PUSH, c.LOG_PREFIX_SYNC_SUBMITTERS + 'Pushing %s %s.'],
22
22
  [c.STREAMING_REFRESH_TOKEN, c.LOG_PREFIX_SYNC_STREAMING + 'Refreshing streaming token in %s seconds, and connecting streaming in %s seconds.'],
23
23
  [c.STREAMING_RECONNECT, c.LOG_PREFIX_SYNC_STREAMING + 'Attempting to reconnect in %s seconds.'],
24
- [c.STREAMING_CONNECTING, c.LOG_PREFIX_SYNC_STREAMING + '%sConnecting to streaming.'],
24
+ [c.STREAMING_CONNECTING, c.LOG_PREFIX_SYNC_STREAMING + 'Connecting to streaming.'],
25
25
  [c.STREAMING_DISABLED, c.LOG_PREFIX_SYNC_STREAMING + 'Streaming is disabled for given Api key. Switching to polling mode.'],
26
26
  [c.STREAMING_DISCONNECTING, c.LOG_PREFIX_SYNC_STREAMING + 'Disconnecting from streaming.'],
27
27
  [c.SYNC_START_POLLING, c.LOG_PREFIX_SYNC_MANAGER + 'Streaming not available. Starting polling.'],
@@ -20,9 +20,9 @@ export var codesWarn = codesError.concat([
20
20
  [c.WARN_TRIMMING_PROPERTIES, '%s: Event has more than 300 properties. Some of them will be trimmed when processed.'],
21
21
  [c.WARN_CONVERTING, '%s: %s "%s" is not of type string, converting.'],
22
22
  [c.WARN_TRIMMING, '%s: %s "%s" has extra whitespace, trimming.'],
23
- [c.WARN_NOT_EXISTENT_SPLIT, '%s: split "%s" does not exist in this environment, please double check what splits exist in the web console.'],
23
+ [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.'],
24
24
  [c.WARN_LOWERCASE_TRAFFIC_TYPE, '%s: traffic_type_name should be all lowercase - converting string to lowercase.'],
25
- [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.'],
25
+ [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.'],
26
26
  // initialization / settings validation
27
27
  [c.WARN_INTEGRATION_INVALID, c.LOG_PREFIX_SETTINGS + ': %s integration item(s) at settings is invalid. %s'],
28
28
  [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,4 +1,4 @@
1
- import objectAssign from 'object-assign';
1
+ import { objectAssign } from '../utils/lang/objectAssign';
2
2
  import { SDK_SPLITS_ARRIVED, SDK_SPLITS_CACHE_LOADED, SDK_SEGMENTS_ARRIVED, SDK_READY_TIMED_OUT, SDK_READY_FROM_CACHE, SDK_UPDATE, SDK_READY } from './constants';
3
3
  function splitsEventEmitterFactory(EventEmitter) {
4
4
  var splitsEventEmitter = objectAssign(new EventEmitter(), {
@@ -1,5 +1,5 @@
1
- import objectAssign from 'object-assign';
2
- import promiseWrapper from '../utils/promise/wrapper';
1
+ import { objectAssign } from '../utils/lang/objectAssign';
2
+ import { promiseWrapper } from '../utils/promise/wrapper';
3
3
  import { readinessManagerFactory } from './readinessManager';
4
4
  import { SDK_READY, SDK_READY_TIMED_OUT, SDK_READY_FROM_CACHE, SDK_UPDATE } from './constants';
5
5
  import { ERROR_CLIENT_LISTENER, CLIENT_READY_FROM_CACHE, CLIENT_READY, CLIENT_NO_LISTENER } from '../logger/constants';
@@ -14,7 +14,7 @@ var REMOVE_LISTENER_EVENT = 'removeListener';
14
14
  * by the SDK. It is required to properly log the warning 'No listeners for SDK Readiness detected'
15
15
  * @param readinessManager optional readinessManager to use. only used internally for `shared` method
16
16
  */
17
- export default function sdkReadinessManagerFactory(log, EventEmitter, readyTimeout, internalReadyCbCount, readinessManager) {
17
+ export function sdkReadinessManagerFactory(log, EventEmitter, readyTimeout, internalReadyCbCount, readinessManager) {
18
18
  if (readyTimeout === void 0) { readyTimeout = 0; }
19
19
  if (internalReadyCbCount === void 0) { internalReadyCbCount = 0; }
20
20
  if (readinessManager === void 0) { readinessManager = readinessManagerFactory(EventEmitter, readyTimeout); }
@@ -1,5 +1,5 @@
1
1
  import { evaluateFeature, evaluateFeatures } from '../evaluator';
2
- import thenable from '../utils/promise/thenable';
2
+ import { thenable } from '../utils/promise/thenable';
3
3
  import { getMatching, getBucketing } from '../utils/key';
4
4
  import { validateSplitExistance } from '../utils/inputValidation/splitExistance';
5
5
  import { validateTrafficTypeExistance } from '../utils/inputValidation/trafficTypeExistance';
@@ -10,7 +10,7 @@ import { IMPRESSION, IMPRESSION_QUEUEING } from '../logger/constants';
10
10
  * Creator of base client with getTreatments and track methods.
11
11
  */
12
12
  // @TODO missing time tracking to collect telemetry
13
- export default function clientFactory(params) {
13
+ export function clientFactory(params) {
14
14
  var readinessManager = params.sdkReadinessManager.readinessManager, storage = params.storage, _a = params.settings, log = _a.log, mode = _a.mode, impressionsTracker = params.impressionsTracker, eventTracker = params.eventTracker;
15
15
  function getTreatment(key, splitName, attributes, withConfig) {
16
16
  if (withConfig === void 0) { withConfig = false; }
@@ -0,0 +1,104 @@
1
+ import { AttributesCacheInMemory } from '../storages/inMemory/AttributesCacheInMemory';
2
+ import { validateAttributesDeep } from '../utils/inputValidation/attributes';
3
+ import { objectAssign } from '../utils/lang/objectAssign';
4
+ /**
5
+ * Add in memory attributes storage methods and combine them with any attribute received from the getTreatment/s call
6
+ */
7
+ export function clientAttributesDecoration(log, client) {
8
+ var attributeStorage = new AttributesCacheInMemory();
9
+ // Keep a reference to the original methods
10
+ var clientGetTreatment = client.getTreatment;
11
+ var clientGetTreatmentWithConfig = client.getTreatmentWithConfig;
12
+ var clientGetTreatments = client.getTreatments;
13
+ var clientGetTreatmentsWithConfig = client.getTreatmentsWithConfig;
14
+ var clientTrack = client.track;
15
+ function getTreatment(maybeKey, maybeSplit, maybeAttributes) {
16
+ return clientGetTreatment(maybeKey, maybeSplit, combineAttributes(maybeAttributes));
17
+ }
18
+ function getTreatmentWithConfig(maybeKey, maybeSplit, maybeAttributes) {
19
+ return clientGetTreatmentWithConfig(maybeKey, maybeSplit, combineAttributes(maybeAttributes));
20
+ }
21
+ function getTreatments(maybeKey, maybeSplits, maybeAttributes) {
22
+ return clientGetTreatments(maybeKey, maybeSplits, combineAttributes(maybeAttributes));
23
+ }
24
+ function getTreatmentsWithConfig(maybeKey, maybeSplits, maybeAttributes) {
25
+ return clientGetTreatmentsWithConfig(maybeKey, maybeSplits, combineAttributes(maybeAttributes));
26
+ }
27
+ function track(maybeKey, maybeTT, maybeEvent, maybeEventValue, maybeProperties) {
28
+ return clientTrack(maybeKey, maybeTT, maybeEvent, maybeEventValue, maybeProperties);
29
+ }
30
+ function combineAttributes(maybeAttributes) {
31
+ var storedAttributes = attributeStorage.getAll();
32
+ if (Object.keys(storedAttributes).length > 0) {
33
+ return objectAssign({}, storedAttributes, maybeAttributes);
34
+ }
35
+ return maybeAttributes;
36
+ }
37
+ return objectAssign(client, {
38
+ getTreatment: getTreatment,
39
+ getTreatmentWithConfig: getTreatmentWithConfig,
40
+ getTreatments: getTreatments,
41
+ getTreatmentsWithConfig: getTreatmentsWithConfig,
42
+ track: track,
43
+ /**
44
+ * Add an attribute to client's in memory attributes storage
45
+ *
46
+ * @param {string} attributeName Attrinute name
47
+ * @param {string, number, boolean, list} attributeValue Attribute value
48
+ * @returns {boolean} true if the attribute was stored and false otherways
49
+ */
50
+ setAttribute: function (attributeName, attributeValue) {
51
+ var attribute = {};
52
+ attribute[attributeName] = attributeValue;
53
+ if (!validateAttributesDeep(log, attribute, 'setAttribute'))
54
+ return false;
55
+ log.debug("stored " + attributeValue + " for attribute " + attributeName);
56
+ return attributeStorage.setAttribute(attributeName, attributeValue);
57
+ },
58
+ /**
59
+ * Returns the attribute with the given key
60
+ *
61
+ * @param {string} attributeName Attribute name
62
+ * @returns {Object} Attribute with the given key
63
+ */
64
+ getAttribute: function (attributeName) {
65
+ log.debug("retrieved attribute " + attributeName);
66
+ return attributeStorage.getAttribute(attributeName + '');
67
+ },
68
+ /**
69
+ * Add to client's in memory attributes storage the attributes in 'attributes'
70
+ *
71
+ * @param {Object} attributes Object with attributes to store
72
+ * @returns true if attributes were stored an false otherways
73
+ */
74
+ setAttributes: function (attributes) {
75
+ if (!validateAttributesDeep(log, attributes, 'setAttributes'))
76
+ return false;
77
+ return attributeStorage.setAttributes(attributes);
78
+ },
79
+ /**
80
+ * Return all the attributes stored in client's in memory attributes storage
81
+ *
82
+ * @returns {Object} returns all the stored attributes
83
+ */
84
+ getAttributes: function () {
85
+ return attributeStorage.getAll();
86
+ },
87
+ /**
88
+ * Removes from client's in memory attributes storage the attribute with the given key
89
+ *
90
+ * @param {string} attributeName
91
+ * @returns {boolean} true if attribute was removed and false otherways
92
+ */
93
+ removeAttribute: function (attributeName) {
94
+ log.debug("removed attribute " + attributeName);
95
+ return attributeStorage.removeAttribute(attributeName + '');
96
+ },
97
+ /**
98
+ * Remove all the stored attributes in the client's in memory attribute storage
99
+ */
100
+ clearAttributes: function () {
101
+ return attributeStorage.clear();
102
+ }
103
+ });
104
+ }
@@ -1,4 +1,5 @@
1
- import objectAssign from 'object-assign';
1
+ import { objectAssign } from '../utils/lang/objectAssign';
2
+ import { clientAttributesDecoration } from './clientAttributesDecoration';
2
3
  /**
3
4
  * Decorator that binds a key and (optionally) a traffic type to client methods
4
5
  *
@@ -6,14 +7,15 @@ import objectAssign from 'object-assign';
6
7
  * @param key validated split key
7
8
  * @param trafficType validated traffic type
8
9
  */
9
- export default function clientCSDecorator(client, key, trafficType) {
10
- return objectAssign(client, {
10
+ export function clientCSDecorator(log, client, key, trafficType) {
11
+ var clientCS = clientAttributesDecoration(log, client);
12
+ return objectAssign(clientCS, {
11
13
  // In the client-side API, we bind a key to the client `getTreatment*` methods
12
- getTreatment: client.getTreatment.bind(client, key),
13
- getTreatmentWithConfig: client.getTreatmentWithConfig.bind(client, key),
14
- getTreatments: client.getTreatments.bind(client, key),
15
- getTreatmentsWithConfig: client.getTreatmentsWithConfig.bind(client, key),
14
+ getTreatment: clientCS.getTreatment.bind(clientCS, key),
15
+ getTreatmentWithConfig: clientCS.getTreatmentWithConfig.bind(clientCS, key),
16
+ getTreatments: clientCS.getTreatments.bind(clientCS, key),
17
+ getTreatmentsWithConfig: clientCS.getTreatmentsWithConfig.bind(clientCS, key),
16
18
  // Key is bound to the `track` method. Same thing happens with trafficType but only if provided
17
- track: trafficType ? client.track.bind(client, key, trafficType) : client.track.bind(client, key)
19
+ track: trafficType ? clientCS.track.bind(clientCS, key, trafficType) : clientCS.track.bind(clientCS, key)
18
20
  });
19
21
  }
@@ -1,4 +1,4 @@
1
- import objectAssign from 'object-assign';
1
+ import { objectAssign } from '../utils/lang/objectAssign';
2
2
  import { validateAttributes, validateEvent, validateEventValue, validateEventProperties, validateKey, validateSplit, validateSplits, validateTrafficType, validateIfNotDestroyed, validateIfOperational } from '../utils/inputValidation';
3
3
  import { startsWith } from '../utils/lang';
4
4
  import { CONTROL, CONTROL_WITH_CONFIG } from '../utils/constants';
@@ -6,7 +6,7 @@ import { CONTROL, CONTROL_WITH_CONFIG } from '../utils/constants';
6
6
  * Decorator that validates the input before actually executing the client methods.
7
7
  * We should "guard" the client here, while not polluting the "real" implementation of those methods.
8
8
  */
9
- export default function clientInputValidationDecorator(log, client, readinessManager, isStorageSync) {
9
+ export function clientInputValidationDecorator(log, client, readinessManager, isStorageSync) {
10
10
  if (isStorageSync === void 0) { isStorageSync = false; }
11
11
  /**
12
12
  * Avoid repeating this validations code
@@ -1,8 +1,8 @@
1
- import objectAssign from 'object-assign';
1
+ import { objectAssign } from '../utils/lang/objectAssign';
2
2
  import { CONSUMER_MODE, CONSUMER_PARTIAL_MODE } from '../utils/constants';
3
3
  import { releaseApiKey } from '../utils/inputValidation/apiKey';
4
- import clientFactory from './client';
5
- import clientInputValidationDecorator from './clientInputValidation';
4
+ import { clientFactory } from './client';
5
+ import { clientInputValidationDecorator } from './clientInputValidation';
6
6
  /**
7
7
  * Creates an Sdk client, i.e., a base client with status and destroy interface
8
8
  */
@@ -1,8 +1,8 @@
1
- import clientCSDecorator from './clientCS';
1
+ import { clientCSDecorator } from './clientCS';
2
2
  import { validateKey } from '../utils/inputValidation/key';
3
3
  import { getMatching, keyParser } from '../utils/key';
4
4
  import { sdkClientFactory } from './sdkClient';
5
- import objectAssign from 'object-assign';
5
+ import { objectAssign } from '../utils/lang/objectAssign';
6
6
  import { RETRIEVE_CLIENT_DEFAULT, NEW_SHARED_CLIENT, RETRIEVE_CLIENT_EXISTING } from '../logger/constants';
7
7
  import { SDK_SEGMENTS_ARRIVED } from '../readiness/constants';
8
8
  function buildInstanceId(key) {
@@ -20,7 +20,7 @@ export function sdkClientMethodCSFactory(params) {
20
20
  // `false` value is used as binded key of the default client, but trafficType is ignored
21
21
  // @TODO handle as a non-recoverable error
22
22
  var validKey = validateKey(log, key, method);
23
- var mainClientInstance = clientCSDecorator(sdkClientFactory(params), // @ts-ignore
23
+ var mainClientInstance = clientCSDecorator(log, sdkClientFactory(params), // @ts-ignore
24
24
  validKey);
25
25
  var parsedDefaultKey = keyParser(key);
26
26
  var defaultInstanceId = buildInstanceId(parsedDefaultKey);
@@ -55,7 +55,7 @@ export function sdkClientMethodCSFactory(params) {
55
55
  var sharedSyncManager = syncManager && sharedStorage && syncManager.shared(matchingKey, sharedSdkReadiness_1.readinessManager, sharedStorage);
56
56
  // As shared clients reuse all the storage information, we don't need to check here if we
57
57
  // will use offline or online mode. We should stick with the original decision.
58
- clientInstances[instanceId] = clientCSDecorator(sdkClientFactory(objectAssign({}, params, {
58
+ clientInstances[instanceId] = clientCSDecorator(log, sdkClientFactory(objectAssign({}, params, {
59
59
  sdkReadinessManager: sharedSdkReadiness_1,
60
60
  storage: sharedStorage || storage,
61
61
  syncManager: sharedSyncManager,