@splitsoftware/splitio-commons 1.0.1-rc.5 → 1.0.1-rc.6

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 (492) hide show
  1. package/cjs/evaluator/Engine.js +6 -5
  2. package/cjs/evaluator/combiners/and.js +4 -4
  3. package/cjs/evaluator/combiners/ifelseif.js +4 -3
  4. package/cjs/evaluator/condition/index.js +4 -3
  5. package/cjs/evaluator/index.js +7 -7
  6. package/cjs/evaluator/matchers/all.js +2 -1
  7. package/cjs/evaluator/matchers/between.js +2 -1
  8. package/cjs/evaluator/matchers/boolean.js +2 -1
  9. package/cjs/evaluator/matchers/cont_all.js +3 -2
  10. package/cjs/evaluator/matchers/cont_any.js +3 -2
  11. package/cjs/evaluator/matchers/cont_str.js +2 -1
  12. package/cjs/evaluator/matchers/dependency.js +4 -4
  13. package/cjs/evaluator/matchers/eq.js +2 -1
  14. package/cjs/evaluator/matchers/eq_set.js +2 -1
  15. package/cjs/evaluator/matchers/ew.js +2 -1
  16. package/cjs/evaluator/matchers/gte.js +2 -1
  17. package/cjs/evaluator/matchers/index.js +36 -36
  18. package/cjs/evaluator/matchers/lte.js +2 -1
  19. package/cjs/evaluator/matchers/part_of.js +3 -2
  20. package/cjs/evaluator/matchers/segment.js +5 -5
  21. package/cjs/evaluator/matchers/string.js +2 -1
  22. package/cjs/evaluator/matchers/sw.js +2 -1
  23. package/cjs/evaluator/matchers/whitelist.js +2 -1
  24. package/cjs/evaluator/matchersTransform/index.js +12 -12
  25. package/cjs/evaluator/matchersTransform/segment.js +3 -2
  26. package/cjs/evaluator/matchersTransform/set.js +3 -2
  27. package/cjs/evaluator/matchersTransform/unaryNumeric.js +3 -2
  28. package/cjs/evaluator/matchersTransform/whitelist.js +3 -2
  29. package/cjs/evaluator/parser/index.js +16 -16
  30. package/cjs/evaluator/treatments/index.js +2 -1
  31. package/cjs/evaluator/value/index.js +5 -5
  32. package/cjs/evaluator/value/sanitize.js +2 -1
  33. package/cjs/integrations/browser.js +4 -4
  34. package/cjs/integrations/ga/GaToSplit.js +3 -4
  35. package/cjs/integrations/pluggable.js +3 -2
  36. package/cjs/listeners/browser.js +4 -4
  37. package/cjs/listeners/node.js +4 -4
  38. package/cjs/logger/index.js +2 -3
  39. package/cjs/logger/messages/warn.js +2 -2
  40. package/cjs/readiness/readinessManager.js +3 -4
  41. package/cjs/readiness/sdkReadinessManager.js +7 -7
  42. package/cjs/sdkClient/client.js +5 -5
  43. package/cjs/sdkClient/clientCS.js +4 -4
  44. package/cjs/sdkClient/clientInputValidation.js +5 -5
  45. package/cjs/sdkClient/sdkClient.js +5 -6
  46. package/cjs/sdkClient/sdkClientMethodCS.js +4 -5
  47. package/cjs/sdkClient/sdkClientMethodCSWithTT.js +4 -5
  48. package/cjs/sdkFactory/index.js +7 -8
  49. package/cjs/sdkManager/index.js +6 -7
  50. package/cjs/services/splitApi.js +2 -3
  51. package/cjs/services/splitHttpClient.js +3 -4
  52. package/cjs/storages/AbstractSegmentsCacheSync.js +2 -1
  53. package/cjs/storages/AbstractSplitsCacheAsync.js +2 -1
  54. package/cjs/storages/AbstractSplitsCacheSync.js +2 -2
  55. package/cjs/storages/KeyBuilder.js +2 -2
  56. package/cjs/storages/KeyBuilderCS.js +4 -3
  57. package/cjs/storages/KeyBuilderSS.js +4 -3
  58. package/cjs/storages/findLatencyIndex.js +2 -1
  59. package/cjs/storages/inLocalStorage/MySegmentsCacheInLocal.js +4 -3
  60. package/cjs/storages/inLocalStorage/SplitsCacheInLocal.js +4 -3
  61. package/cjs/storages/inLocalStorage/index.js +20 -21
  62. package/cjs/storages/inMemory/CountsCacheInMemory.js +2 -1
  63. package/cjs/storages/inMemory/EventsCacheInMemory.js +2 -1
  64. package/cjs/storages/inMemory/ImpressionCountsCacheInMemory.js +2 -1
  65. package/cjs/storages/inMemory/ImpressionsCacheInMemory.js +2 -1
  66. package/cjs/storages/inMemory/InMemoryStorage.js +10 -11
  67. package/cjs/storages/inMemory/InMemoryStorageCS.js +12 -13
  68. package/cjs/storages/inMemory/LatenciesCacheInMemory.js +4 -4
  69. package/cjs/storages/inMemory/MySegmentsCacheInMemory.js +4 -3
  70. package/cjs/storages/inMemory/SegmentsCacheInMemory.js +4 -3
  71. package/cjs/storages/inMemory/SplitsCacheInMemory.js +4 -3
  72. package/cjs/storages/inRedis/CountsCacheInRedis.js +2 -1
  73. package/cjs/storages/inRedis/EventsCacheInRedis.js +2 -1
  74. package/cjs/storages/inRedis/ImpressionsCacheInRedis.js +2 -1
  75. package/cjs/storages/inRedis/LatenciesCacheInRedis.js +4 -4
  76. package/cjs/storages/inRedis/RedisAdapter.js +6 -5
  77. package/cjs/storages/inRedis/SegmentsCacheInRedis.js +2 -1
  78. package/cjs/storages/inRedis/SplitsCacheInRedis.js +4 -3
  79. package/cjs/storages/inRedis/index.js +16 -17
  80. package/cjs/storages/pluggable/SplitsCachePluggable.js +2 -2
  81. package/cjs/storages/pluggable/index.js +8 -8
  82. package/cjs/sync/offline/splitsParser/parseCondition.js +2 -1
  83. package/cjs/sync/offline/splitsParser/splitsParserFromFile.js +3 -3
  84. package/cjs/sync/offline/splitsParser/splitsParserFromSettings.js +2 -3
  85. package/cjs/sync/offline/syncManagerOffline.js +3 -4
  86. package/cjs/sync/offline/syncTasks/fromObjectSyncTask.js +4 -5
  87. package/cjs/sync/polling/fetchers/mySegmentsFetcher.js +2 -1
  88. package/cjs/sync/polling/fetchers/segmentChangesFetcher.js +2 -1
  89. package/cjs/sync/polling/fetchers/splitChangesFetcher.js +2 -1
  90. package/cjs/sync/polling/pollingManagerCS.js +6 -6
  91. package/cjs/sync/polling/pollingManagerSS.js +8 -8
  92. package/cjs/sync/polling/syncTasks/mySegmentsSyncTask.js +5 -5
  93. package/cjs/sync/polling/syncTasks/segmentsSyncTask.js +5 -5
  94. package/cjs/sync/polling/syncTasks/splitsSyncTask.js +5 -5
  95. package/cjs/sync/polling/updaters/mySegmentsUpdater.js +2 -3
  96. package/cjs/sync/polling/updaters/segmentChangesUpdater.js +2 -3
  97. package/cjs/sync/polling/updaters/splitChangesUpdater.js +2 -3
  98. package/cjs/sync/streaming/AuthClient/index.js +2 -3
  99. package/cjs/sync/streaming/SSEClient/index.js +2 -1
  100. package/cjs/sync/streaming/SSEHandler/NotificationKeeper.js +2 -1
  101. package/cjs/sync/streaming/SSEHandler/index.js +4 -4
  102. package/cjs/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.js +4 -4
  103. package/cjs/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.js +4 -4
  104. package/cjs/sync/streaming/UpdateWorkers/SplitsUpdateWorker.js +4 -4
  105. package/cjs/sync/streaming/pushManager.js +16 -16
  106. package/cjs/sync/submitters/submitterSyncTask.js +2 -3
  107. package/cjs/sync/syncTask.js +2 -1
  108. package/cjs/trackers/eventTracker.js +7 -7
  109. package/cjs/trackers/impressionObserver/ImpressionObserver.js +4 -4
  110. package/cjs/trackers/impressionObserver/impressionObserverCS.js +2 -3
  111. package/cjs/trackers/impressionObserver/impressionObserverSS.js +2 -3
  112. package/cjs/trackers/impressionsTracker.js +6 -6
  113. package/cjs/utils/Backoff.js +2 -1
  114. package/cjs/utils/LRUCache/index.js +2 -1
  115. package/cjs/utils/MinEventEmitter.js +2 -1
  116. package/cjs/utils/inputValidation/trafficTypeExistance.js +2 -3
  117. package/cjs/utils/lang/binarySearch.js +2 -1
  118. package/cjs/utils/lang/objectAssign.js +85 -0
  119. package/cjs/utils/promise/thenable.js +5 -1
  120. package/cjs/utils/promise/timeout.js +2 -1
  121. package/cjs/utils/promise/wrapper.js +2 -1
  122. package/cjs/utils/settingsValidation/impressionsMode.js +2 -1
  123. package/cjs/utils/settingsValidation/index.js +4 -5
  124. package/cjs/utils/settingsValidation/mode.js +2 -1
  125. package/cjs/utils/timeTracker/index.js +7 -8
  126. package/cjs/utils/timeTracker/now/browser.js +2 -2
  127. package/cjs/utils/timeTracker/now/node.js +2 -1
  128. package/cjs/utils/timeTracker/timer.js +3 -2
  129. package/esm/evaluator/Engine.js +3 -3
  130. package/esm/evaluator/combiners/and.js +2 -2
  131. package/esm/evaluator/combiners/ifelseif.js +2 -2
  132. package/esm/evaluator/condition/index.js +2 -2
  133. package/esm/evaluator/index.js +2 -2
  134. package/esm/evaluator/matchers/all.js +1 -1
  135. package/esm/evaluator/matchers/between.js +1 -1
  136. package/esm/evaluator/matchers/boolean.js +1 -1
  137. package/esm/evaluator/matchers/cont_all.js +1 -1
  138. package/esm/evaluator/matchers/cont_any.js +1 -1
  139. package/esm/evaluator/matchers/cont_str.js +1 -1
  140. package/esm/evaluator/matchers/dependency.js +2 -2
  141. package/esm/evaluator/matchers/eq.js +1 -1
  142. package/esm/evaluator/matchers/eq_set.js +1 -1
  143. package/esm/evaluator/matchers/ew.js +1 -1
  144. package/esm/evaluator/matchers/gte.js +1 -1
  145. package/esm/evaluator/matchers/index.js +35 -35
  146. package/esm/evaluator/matchers/lte.js +1 -1
  147. package/esm/evaluator/matchers/part_of.js +1 -1
  148. package/esm/evaluator/matchers/segment.js +2 -2
  149. package/esm/evaluator/matchers/string.js +1 -1
  150. package/esm/evaluator/matchers/sw.js +1 -1
  151. package/esm/evaluator/matchers/whitelist.js +1 -1
  152. package/esm/evaluator/matchersTransform/index.js +5 -5
  153. package/esm/evaluator/matchersTransform/segment.js +1 -1
  154. package/esm/evaluator/matchersTransform/set.js +1 -1
  155. package/esm/evaluator/matchersTransform/unaryNumeric.js +1 -1
  156. package/esm/evaluator/matchersTransform/whitelist.js +1 -1
  157. package/esm/evaluator/parser/index.js +11 -11
  158. package/esm/evaluator/treatments/index.js +1 -1
  159. package/esm/evaluator/value/index.js +3 -3
  160. package/esm/evaluator/value/sanitize.js +1 -1
  161. package/esm/integrations/browser.js +2 -2
  162. package/esm/integrations/ga/GaToSplit.js +1 -1
  163. package/esm/integrations/pluggable.js +1 -1
  164. package/esm/listeners/browser.js +2 -2
  165. package/esm/listeners/node.js +2 -2
  166. package/esm/logger/index.js +1 -1
  167. package/esm/logger/messages/warn.js +2 -2
  168. package/esm/readiness/readinessManager.js +1 -1
  169. package/esm/readiness/sdkReadinessManager.js +3 -3
  170. package/esm/sdkClient/client.js +2 -2
  171. package/esm/sdkClient/clientCS.js +2 -2
  172. package/esm/sdkClient/clientInputValidation.js +2 -2
  173. package/esm/sdkClient/sdkClient.js +3 -3
  174. package/esm/sdkClient/sdkClientMethodCS.js +2 -2
  175. package/esm/sdkClient/sdkClientMethodCSWithTT.js +2 -2
  176. package/esm/sdkFactory/index.js +4 -4
  177. package/esm/sdkManager/index.js +2 -2
  178. package/esm/services/splitApi.js +1 -1
  179. package/esm/services/splitHttpClient.js +1 -1
  180. package/esm/storages/AbstractSegmentsCacheSync.js +1 -1
  181. package/esm/storages/AbstractSplitsCacheAsync.js +1 -1
  182. package/esm/storages/AbstractSplitsCacheSync.js +1 -1
  183. package/esm/storages/KeyBuilder.js +1 -1
  184. package/esm/storages/KeyBuilderCS.js +2 -2
  185. package/esm/storages/KeyBuilderSS.js +2 -2
  186. package/esm/storages/findLatencyIndex.js +1 -1
  187. package/esm/storages/inLocalStorage/MySegmentsCacheInLocal.js +2 -2
  188. package/esm/storages/inLocalStorage/SplitsCacheInLocal.js +2 -2
  189. package/esm/storages/inLocalStorage/index.js +8 -8
  190. package/esm/storages/inMemory/CountsCacheInMemory.js +1 -1
  191. package/esm/storages/inMemory/EventsCacheInMemory.js +1 -1
  192. package/esm/storages/inMemory/ImpressionCountsCacheInMemory.js +1 -1
  193. package/esm/storages/inMemory/ImpressionsCacheInMemory.js +1 -1
  194. package/esm/storages/inMemory/InMemoryStorage.js +5 -5
  195. package/esm/storages/inMemory/InMemoryStorageCS.js +5 -5
  196. package/esm/storages/inMemory/LatenciesCacheInMemory.js +2 -2
  197. package/esm/storages/inMemory/MySegmentsCacheInMemory.js +2 -2
  198. package/esm/storages/inMemory/SegmentsCacheInMemory.js +2 -2
  199. package/esm/storages/inMemory/SplitsCacheInMemory.js +2 -2
  200. package/esm/storages/inRedis/CountsCacheInRedis.js +1 -1
  201. package/esm/storages/inRedis/EventsCacheInRedis.js +1 -1
  202. package/esm/storages/inRedis/ImpressionsCacheInRedis.js +1 -1
  203. package/esm/storages/inRedis/LatenciesCacheInRedis.js +2 -2
  204. package/esm/storages/inRedis/RedisAdapter.js +3 -3
  205. package/esm/storages/inRedis/SegmentsCacheInRedis.js +1 -1
  206. package/esm/storages/inRedis/SplitsCacheInRedis.js +2 -2
  207. package/esm/storages/inRedis/index.js +8 -8
  208. package/esm/storages/pluggable/SplitsCachePluggable.js +1 -1
  209. package/esm/storages/pluggable/index.js +4 -4
  210. package/esm/sync/offline/splitsParser/parseCondition.js +1 -1
  211. package/esm/sync/offline/splitsParser/splitsParserFromFile.js +1 -1
  212. package/esm/sync/offline/splitsParser/splitsParserFromSettings.js +1 -1
  213. package/esm/sync/offline/syncManagerOffline.js +2 -2
  214. package/esm/sync/offline/syncTasks/fromObjectSyncTask.js +2 -2
  215. package/esm/sync/polling/fetchers/mySegmentsFetcher.js +1 -1
  216. package/esm/sync/polling/fetchers/segmentChangesFetcher.js +1 -1
  217. package/esm/sync/polling/fetchers/splitChangesFetcher.js +1 -1
  218. package/esm/sync/polling/pollingManagerCS.js +3 -3
  219. package/esm/sync/polling/pollingManagerSS.js +4 -4
  220. package/esm/sync/polling/syncTasks/mySegmentsSyncTask.js +3 -3
  221. package/esm/sync/polling/syncTasks/segmentsSyncTask.js +3 -3
  222. package/esm/sync/polling/syncTasks/splitsSyncTask.js +3 -3
  223. package/esm/sync/polling/updaters/mySegmentsUpdater.js +1 -1
  224. package/esm/sync/polling/updaters/segmentChangesUpdater.js +1 -1
  225. package/esm/sync/polling/updaters/splitChangesUpdater.js +1 -1
  226. package/esm/sync/streaming/AuthClient/index.js +1 -1
  227. package/esm/sync/streaming/SSEClient/index.js +1 -1
  228. package/esm/sync/streaming/SSEHandler/NotificationKeeper.js +1 -1
  229. package/esm/sync/streaming/SSEHandler/index.js +2 -2
  230. package/esm/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.js +2 -2
  231. package/esm/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.js +2 -2
  232. package/esm/sync/streaming/UpdateWorkers/SplitsUpdateWorker.js +2 -2
  233. package/esm/sync/streaming/pushManager.js +8 -8
  234. package/esm/sync/submitters/submitterSyncTask.js +1 -1
  235. package/esm/sync/syncTask.js +1 -1
  236. package/esm/trackers/eventTracker.js +3 -3
  237. package/esm/trackers/impressionObserver/ImpressionObserver.js +2 -2
  238. package/esm/trackers/impressionObserver/impressionObserverCS.js +1 -1
  239. package/esm/trackers/impressionObserver/impressionObserverSS.js +1 -1
  240. package/esm/trackers/impressionsTracker.js +3 -3
  241. package/esm/utils/Backoff.js +1 -1
  242. package/esm/utils/LRUCache/index.js +1 -1
  243. package/esm/utils/MinEventEmitter.js +1 -1
  244. package/esm/utils/inputValidation/trafficTypeExistance.js +1 -1
  245. package/esm/utils/lang/binarySearch.js +1 -1
  246. package/esm/utils/lang/objectAssign.js +82 -0
  247. package/esm/utils/promise/thenable.js +3 -1
  248. package/esm/utils/promise/timeout.js +1 -1
  249. package/esm/utils/promise/wrapper.js +1 -1
  250. package/esm/utils/settingsValidation/impressionsMode.js +1 -1
  251. package/esm/utils/settingsValidation/index.js +2 -2
  252. package/esm/utils/settingsValidation/mode.js +1 -1
  253. package/esm/utils/timeTracker/index.js +4 -5
  254. package/esm/utils/timeTracker/now/browser.js +1 -2
  255. package/esm/utils/timeTracker/now/node.js +1 -1
  256. package/esm/utils/timeTracker/timer.js +1 -1
  257. package/package.json +2 -3
  258. package/src/evaluator/Engine.ts +3 -3
  259. package/src/evaluator/combiners/and.ts +2 -2
  260. package/src/evaluator/combiners/ifelseif.ts +2 -2
  261. package/src/evaluator/condition/index.ts +2 -2
  262. package/src/evaluator/index.ts +2 -2
  263. package/src/evaluator/matchers/all.ts +1 -1
  264. package/src/evaluator/matchers/between.ts +1 -1
  265. package/src/evaluator/matchers/boolean.ts +1 -1
  266. package/src/evaluator/matchers/cont_all.ts +1 -1
  267. package/src/evaluator/matchers/cont_any.ts +1 -1
  268. package/src/evaluator/matchers/cont_str.ts +1 -1
  269. package/src/evaluator/matchers/dependency.ts +2 -2
  270. package/src/evaluator/matchers/eq.ts +1 -1
  271. package/src/evaluator/matchers/eq_set.ts +1 -1
  272. package/src/evaluator/matchers/ew.ts +1 -1
  273. package/src/evaluator/matchers/gte.ts +1 -1
  274. package/src/evaluator/matchers/index.ts +35 -35
  275. package/src/evaluator/matchers/lte.ts +1 -1
  276. package/src/evaluator/matchers/part_of.ts +1 -1
  277. package/src/evaluator/matchers/segment.ts +2 -2
  278. package/src/evaluator/matchers/string.ts +1 -1
  279. package/src/evaluator/matchers/sw.ts +1 -1
  280. package/src/evaluator/matchers/whitelist.ts +1 -1
  281. package/src/evaluator/matchersTransform/index.ts +5 -5
  282. package/src/evaluator/matchersTransform/segment.ts +1 -1
  283. package/src/evaluator/matchersTransform/set.ts +1 -1
  284. package/src/evaluator/matchersTransform/unaryNumeric.ts +1 -1
  285. package/src/evaluator/matchersTransform/whitelist.ts +1 -1
  286. package/src/evaluator/parser/index.ts +12 -12
  287. package/src/evaluator/treatments/index.ts +1 -1
  288. package/src/evaluator/value/index.ts +3 -3
  289. package/src/evaluator/value/sanitize.ts +1 -1
  290. package/src/integrations/browser.ts +2 -2
  291. package/src/integrations/ga/GaToSplit.ts +1 -1
  292. package/src/integrations/pluggable.ts +1 -1
  293. package/src/listeners/browser.ts +2 -2
  294. package/src/listeners/node.ts +2 -2
  295. package/src/logger/index.ts +1 -1
  296. package/src/logger/messages/warn.ts +2 -2
  297. package/src/readiness/readinessManager.ts +2 -2
  298. package/src/readiness/sdkReadinessManager.ts +3 -3
  299. package/src/sdkClient/client.ts +2 -2
  300. package/src/sdkClient/clientCS.ts +2 -2
  301. package/src/sdkClient/clientInputValidation.ts +2 -2
  302. package/src/sdkClient/sdkClient.ts +3 -3
  303. package/src/sdkClient/sdkClientMethodCS.ts +2 -2
  304. package/src/sdkClient/sdkClientMethodCSWithTT.ts +2 -2
  305. package/src/sdkFactory/index.ts +4 -4
  306. package/src/sdkManager/index.ts +2 -2
  307. package/src/services/splitApi.ts +1 -1
  308. package/src/services/splitHttpClient.ts +1 -1
  309. package/src/storages/AbstractSegmentsCacheSync.ts +1 -1
  310. package/src/storages/AbstractSplitsCacheAsync.ts +1 -1
  311. package/src/storages/AbstractSplitsCacheSync.ts +1 -1
  312. package/src/storages/KeyBuilder.ts +1 -1
  313. package/src/storages/KeyBuilderCS.ts +2 -2
  314. package/src/storages/KeyBuilderSS.ts +2 -2
  315. package/src/storages/findLatencyIndex.ts +1 -1
  316. package/src/storages/inLocalStorage/MySegmentsCacheInLocal.ts +3 -3
  317. package/src/storages/inLocalStorage/SplitsCacheInLocal.ts +3 -3
  318. package/src/storages/inLocalStorage/index.ts +8 -8
  319. package/src/storages/inMemory/CountsCacheInMemory.ts +1 -1
  320. package/src/storages/inMemory/EventsCacheInMemory.ts +1 -1
  321. package/src/storages/inMemory/ImpressionCountsCacheInMemory.ts +1 -1
  322. package/src/storages/inMemory/ImpressionsCacheInMemory.ts +1 -1
  323. package/src/storages/inMemory/InMemoryStorage.ts +5 -5
  324. package/src/storages/inMemory/InMemoryStorageCS.ts +5 -5
  325. package/src/storages/inMemory/LatenciesCacheInMemory.ts +2 -2
  326. package/src/storages/inMemory/MySegmentsCacheInMemory.ts +2 -2
  327. package/src/storages/inMemory/SegmentsCacheInMemory.ts +2 -2
  328. package/src/storages/inMemory/SplitsCacheInMemory.ts +2 -2
  329. package/src/storages/inRedis/CountsCacheInRedis.ts +2 -2
  330. package/src/storages/inRedis/EventsCacheInRedis.ts +1 -1
  331. package/src/storages/inRedis/ImpressionsCacheInRedis.ts +1 -1
  332. package/src/storages/inRedis/LatenciesCacheInRedis.ts +3 -3
  333. package/src/storages/inRedis/RedisAdapter.ts +3 -3
  334. package/src/storages/inRedis/SegmentsCacheInRedis.ts +2 -2
  335. package/src/storages/inRedis/SplitsCacheInRedis.ts +3 -3
  336. package/src/storages/inRedis/index.ts +8 -8
  337. package/src/storages/pluggable/SegmentsCachePluggable.ts +1 -1
  338. package/src/storages/pluggable/SplitsCachePluggable.ts +2 -2
  339. package/src/storages/pluggable/index.ts +4 -4
  340. package/src/storages/types.ts +2 -2
  341. package/src/sync/offline/splitsParser/parseCondition.ts +1 -1
  342. package/src/sync/offline/splitsParser/splitsParserFromFile.ts +1 -1
  343. package/src/sync/offline/splitsParser/splitsParserFromSettings.ts +1 -1
  344. package/src/sync/offline/syncManagerOffline.ts +2 -2
  345. package/src/sync/offline/syncTasks/fromObjectSyncTask.ts +2 -2
  346. package/src/sync/polling/fetchers/mySegmentsFetcher.ts +1 -1
  347. package/src/sync/polling/fetchers/segmentChangesFetcher.ts +1 -1
  348. package/src/sync/polling/fetchers/splitChangesFetcher.ts +1 -1
  349. package/src/sync/polling/pollingManagerCS.ts +3 -3
  350. package/src/sync/polling/pollingManagerSS.ts +4 -4
  351. package/src/sync/polling/syncTasks/mySegmentsSyncTask.ts +3 -3
  352. package/src/sync/polling/syncTasks/segmentsSyncTask.ts +3 -3
  353. package/src/sync/polling/syncTasks/splitsSyncTask.ts +3 -3
  354. package/src/sync/polling/updaters/mySegmentsUpdater.ts +1 -1
  355. package/src/sync/polling/updaters/segmentChangesUpdater.ts +1 -1
  356. package/src/sync/polling/updaters/splitChangesUpdater.ts +1 -1
  357. package/src/sync/streaming/AuthClient/index.ts +1 -1
  358. package/src/sync/streaming/SSEClient/index.ts +1 -1
  359. package/src/sync/streaming/SSEHandler/NotificationKeeper.ts +1 -1
  360. package/src/sync/streaming/SSEHandler/index.ts +2 -2
  361. package/src/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.ts +2 -2
  362. package/src/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.ts +2 -2
  363. package/src/sync/streaming/UpdateWorkers/SplitsUpdateWorker.ts +2 -2
  364. package/src/sync/streaming/UpdateWorkers/types.ts +1 -1
  365. package/src/sync/streaming/pushManager.ts +8 -8
  366. package/src/sync/submitters/submitterSyncTask.ts +1 -1
  367. package/src/sync/syncTask.ts +1 -1
  368. package/src/trackers/eventTracker.ts +3 -3
  369. package/src/trackers/impressionObserver/ImpressionObserver.ts +2 -2
  370. package/src/trackers/impressionObserver/impressionObserverCS.ts +1 -1
  371. package/src/trackers/impressionObserver/impressionObserverSS.ts +1 -1
  372. package/src/trackers/impressionsTracker.ts +3 -3
  373. package/src/utils/Backoff.ts +1 -1
  374. package/src/utils/LRUCache/index.ts +1 -1
  375. package/src/utils/MinEventEmitter.ts +1 -1
  376. package/src/utils/inputValidation/trafficTypeExistance.ts +1 -1
  377. package/src/utils/lang/binarySearch.ts +1 -1
  378. package/src/utils/lang/objectAssign.ts +104 -0
  379. package/src/utils/promise/thenable.ts +3 -1
  380. package/src/utils/promise/timeout.ts +1 -1
  381. package/src/utils/promise/wrapper.ts +1 -1
  382. package/src/utils/settingsValidation/impressionsMode.ts +1 -1
  383. package/src/utils/settingsValidation/index.ts +2 -2
  384. package/src/utils/settingsValidation/mode.ts +1 -1
  385. package/src/utils/timeTracker/index.ts +4 -6
  386. package/src/utils/timeTracker/now/browser.ts +1 -3
  387. package/src/utils/timeTracker/now/node.ts +1 -1
  388. package/src/utils/timeTracker/timer.ts +1 -1
  389. package/types/evaluator/Engine.d.ts +1 -1
  390. package/types/evaluator/combiners/and.d.ts +1 -1
  391. package/types/evaluator/combiners/ifelseif.d.ts +1 -1
  392. package/types/evaluator/condition/index.d.ts +1 -1
  393. package/types/evaluator/matchers/all.d.ts +1 -1
  394. package/types/evaluator/matchers/between.d.ts +1 -1
  395. package/types/evaluator/matchers/boolean.d.ts +1 -1
  396. package/types/evaluator/matchers/cont_all.d.ts +1 -1
  397. package/types/evaluator/matchers/cont_any.d.ts +1 -1
  398. package/types/evaluator/matchers/cont_str.d.ts +1 -1
  399. package/types/evaluator/matchers/dependency.d.ts +1 -1
  400. package/types/evaluator/matchers/eq.d.ts +1 -1
  401. package/types/evaluator/matchers/eq_set.d.ts +1 -1
  402. package/types/evaluator/matchers/ew.d.ts +1 -1
  403. package/types/evaluator/matchers/gte.d.ts +1 -1
  404. package/types/evaluator/matchers/index.d.ts +1 -1
  405. package/types/evaluator/matchers/lte.d.ts +1 -1
  406. package/types/evaluator/matchers/part_of.d.ts +1 -1
  407. package/types/evaluator/matchers/segment.d.ts +1 -1
  408. package/types/evaluator/matchers/string.d.ts +1 -1
  409. package/types/evaluator/matchers/sw.d.ts +1 -1
  410. package/types/evaluator/matchers/whitelist.d.ts +1 -1
  411. package/types/evaluator/matchersTransform/index.d.ts +1 -1
  412. package/types/evaluator/matchersTransform/segment.d.ts +1 -1
  413. package/types/evaluator/matchersTransform/set.d.ts +1 -1
  414. package/types/evaluator/matchersTransform/unaryNumeric.d.ts +1 -1
  415. package/types/evaluator/matchersTransform/whitelist.d.ts +1 -1
  416. package/types/evaluator/parser/index.d.ts +1 -1
  417. package/types/evaluator/treatments/index.d.ts +1 -1
  418. package/types/evaluator/value/index.d.ts +1 -1
  419. package/types/evaluator/value/sanitize.d.ts +1 -1
  420. package/types/integrations/browser.d.ts +1 -1
  421. package/types/integrations/pluggable.d.ts +1 -1
  422. package/types/listeners/browser.d.ts +1 -1
  423. package/types/listeners/node.d.ts +1 -1
  424. package/types/readiness/sdkReadinessManager.d.ts +1 -1
  425. package/types/sdkClient/client.d.ts +1 -1
  426. package/types/sdkClient/clientCS.d.ts +1 -1
  427. package/types/sdkClient/clientInputValidation.d.ts +1 -1
  428. package/types/storages/AbstractSegmentsCacheSync.d.ts +1 -1
  429. package/types/storages/AbstractSplitsCacheAsync.d.ts +1 -1
  430. package/types/storages/AbstractSplitsCacheSync.d.ts +1 -1
  431. package/types/storages/KeyBuilder.d.ts +1 -1
  432. package/types/storages/KeyBuilderCS.d.ts +2 -2
  433. package/types/storages/KeyBuilderSS.d.ts +2 -2
  434. package/types/storages/findLatencyIndex.d.ts +1 -1
  435. package/types/storages/inLocalStorage/MySegmentsCacheInLocal.d.ts +3 -3
  436. package/types/storages/inLocalStorage/SplitsCacheInLocal.d.ts +3 -3
  437. package/types/storages/inMemory/CountsCacheInMemory.d.ts +1 -1
  438. package/types/storages/inMemory/EventsCacheInMemory.d.ts +1 -1
  439. package/types/storages/inMemory/ImpressionCountsCacheInMemory.d.ts +1 -1
  440. package/types/storages/inMemory/ImpressionsCacheInMemory.d.ts +1 -1
  441. package/types/storages/inMemory/LatenciesCacheInMemory.d.ts +1 -1
  442. package/types/storages/inMemory/MySegmentsCacheInMemory.d.ts +2 -2
  443. package/types/storages/inMemory/SegmentsCacheInMemory.d.ts +2 -2
  444. package/types/storages/inMemory/SplitsCacheInMemory.d.ts +2 -2
  445. package/types/storages/inRedis/CountsCacheInRedis.d.ts +2 -2
  446. package/types/storages/inRedis/EventsCacheInRedis.d.ts +1 -1
  447. package/types/storages/inRedis/ImpressionsCacheInRedis.d.ts +1 -1
  448. package/types/storages/inRedis/LatenciesCacheInRedis.d.ts +2 -2
  449. package/types/storages/inRedis/RedisAdapter.d.ts +1 -1
  450. package/types/storages/inRedis/SegmentsCacheInRedis.d.ts +2 -2
  451. package/types/storages/inRedis/SplitsCacheInRedis.d.ts +3 -3
  452. package/types/storages/pluggable/SegmentsCachePluggable.d.ts +1 -1
  453. package/types/storages/pluggable/SplitsCachePluggable.d.ts +2 -2
  454. package/types/storages/types.d.ts +2 -2
  455. package/types/sync/offline/splitsParser/parseCondition.d.ts +1 -1
  456. package/types/sync/offline/syncTasks/fromObjectSyncTask.d.ts +1 -1
  457. package/types/sync/polling/fetchers/mySegmentsFetcher.d.ts +1 -1
  458. package/types/sync/polling/fetchers/segmentChangesFetcher.d.ts +1 -1
  459. package/types/sync/polling/fetchers/splitChangesFetcher.d.ts +1 -1
  460. package/types/sync/polling/pollingManagerCS.d.ts +1 -1
  461. package/types/sync/polling/pollingManagerSS.d.ts +1 -1
  462. package/types/sync/polling/syncTasks/mySegmentsSyncTask.d.ts +1 -1
  463. package/types/sync/polling/syncTasks/segmentsSyncTask.d.ts +1 -1
  464. package/types/sync/polling/syncTasks/splitsSyncTask.d.ts +1 -1
  465. package/types/sync/streaming/SSEClient/index.d.ts +1 -1
  466. package/types/sync/streaming/SSEHandler/NotificationKeeper.d.ts +1 -1
  467. package/types/sync/streaming/SSEHandler/index.d.ts +1 -1
  468. package/types/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.d.ts +2 -2
  469. package/types/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.d.ts +2 -2
  470. package/types/sync/streaming/UpdateWorkers/SplitsUpdateWorker.d.ts +2 -2
  471. package/types/sync/streaming/UpdateWorkers/types.d.ts +1 -1
  472. package/types/sync/streaming/pushManager.d.ts +1 -1
  473. package/types/sync/syncTask.d.ts +1 -1
  474. package/types/trackers/eventTracker.d.ts +1 -1
  475. package/types/trackers/impressionObserver/ImpressionObserver.d.ts +1 -1
  476. package/types/trackers/impressionObserver/impressionObserverCS.d.ts +1 -1
  477. package/types/trackers/impressionObserver/impressionObserverSS.d.ts +1 -1
  478. package/types/trackers/impressionsTracker.d.ts +1 -1
  479. package/types/utils/Backoff.d.ts +1 -1
  480. package/types/utils/LRUCache/index.d.ts +1 -1
  481. package/types/utils/MinEventEmitter.d.ts +1 -1
  482. package/types/utils/lang/binarySearch.d.ts +1 -1
  483. package/types/utils/lang/objectAssign.d.ts +3 -0
  484. package/types/utils/promise/thenable.d.ts +1 -2
  485. package/types/utils/promise/timeout.d.ts +1 -1
  486. package/types/utils/promise/wrapper.d.ts +1 -1
  487. package/types/utils/settingsValidation/impressionsMode.d.ts +1 -1
  488. package/types/utils/settingsValidation/mode.d.ts +1 -1
  489. package/types/utils/timeTracker/index.d.ts +2 -2
  490. package/types/utils/timeTracker/now/browser.d.ts +1 -2
  491. package/types/utils/timeTracker/now/node.d.ts +1 -1
  492. package/types/utils/timeTracker/timer.d.ts +1 -1
@@ -1,7 +1,7 @@
1
1
  import { IMySegmentsFetcher } from '../fetchers/types';
2
2
  import { ISegmentsCacheSync, ISplitsCacheSync } from '../../../storages/types';
3
3
  import { ISegmentsEventEmitter } from '../../../readiness/types';
4
- import timeout from '../../../utils/promise/timeout';
4
+ import { timeout } from '../../../utils/promise/timeout';
5
5
  import { SDK_SEGMENTS_ARRIVED } from '../../../readiness/constants';
6
6
  import { ILogger } from '../../../logger/types';
7
7
  import { SYNC_MYSEGMENTS_FETCH_RETRY } from '../../../logger/constants';
@@ -6,7 +6,7 @@ import { findIndex } from '../../../utils/lang';
6
6
  import { SDK_SEGMENTS_ARRIVED } from '../../../readiness/constants';
7
7
  import { ILogger } from '../../../logger/types';
8
8
  import { LOG_PREFIX_INSTANTIATION, LOG_PREFIX_SYNC_SEGMENTS } from '../../../logger/constants';
9
- import thenable from '../../../utils/promise/thenable';
9
+ import { thenable } from '../../../utils/promise/thenable';
10
10
 
11
11
  type ISegmentChangesUpdater = (segmentNames?: string[], noCache?: boolean, fetchOnlyNew?: boolean) => Promise<boolean>
12
12
 
@@ -3,7 +3,7 @@ import { ISegmentsCacheBase, ISplitsCacheBase } from '../../../storages/types';
3
3
  import { ISplitChangesFetcher } from '../fetchers/types';
4
4
  import { ISplit, ISplitChangesResponse } from '../../../dtos/types';
5
5
  import { ISplitsEventEmitter } from '../../../readiness/types';
6
- import timeout from '../../../utils/promise/timeout';
6
+ import { timeout } from '../../../utils/promise/timeout';
7
7
  import { SDK_SPLITS_ARRIVED, SDK_SPLITS_CACHE_LOADED } from '../../../readiness/constants';
8
8
  import { ILogger } from '../../../logger/types';
9
9
  import { SYNC_SPLITS_FETCH, SYNC_SPLITS_NEW, SYNC_SPLITS_REMOVED, SYNC_SPLITS_SEGMENTS, SYNC_SPLITS_FETCH_FAILS, SYNC_SPLITS_FETCH_RETRY } from '../../../logger/constants';
@@ -1,6 +1,6 @@
1
1
  import { IFetchAuth } from '../../../services/types';
2
2
  import { IAuthenticate, IAuthToken } from './types';
3
- import objectAssign from 'object-assign';
3
+ import { objectAssign } from '../../../utils/lang/objectAssign';
4
4
  import { encodeToBase64 } from '../../../utils/base64';
5
5
  import { decodeJWTtoken } from '../../../utils/jwt';
6
6
  import { hash } from '../../../utils/murmur3/murmur3';
@@ -30,7 +30,7 @@ function buildSSEHeaders(settings: ISettings) {
30
30
  /**
31
31
  * Handles streaming connections with EventSource API
32
32
  */
33
- export default class SSEClient implements ISSEClient {
33
+ export class SSEClient implements ISSEClient {
34
34
  // Instance properties:
35
35
  eventSource?: IEventSourceConstructor;
36
36
  streamingUrl: string;
@@ -9,7 +9,7 @@ const CONTROL_CHANNEL_REGEXS = [/control_pri$/, /control_sec$/];
9
9
  * @param pushEmitter emitter for events related to streaming support
10
10
  */
11
11
  // @TODO update logic to handle OCCUPANCY for any region and rename according to new spec (e.g.: PUSH_SUBSYSTEM_UP --> PUSH_SUBSYSTEM_UP)
12
- export default function notificationKeeperFactory(pushEmitter: IPushEventEmitter) {
12
+ export function notificationKeeperFactory(pushEmitter: IPushEventEmitter) {
13
13
 
14
14
  let channels = CONTROL_CHANNEL_REGEXS.map(regex => ({
15
15
  regex,
@@ -1,5 +1,5 @@
1
1
  import { errorParser, messageParser } from './NotificationParser';
2
- import notificationKeeperFactory from './NotificationKeeper';
2
+ import { notificationKeeperFactory } from './NotificationKeeper';
3
3
  import { PUSH_RETRYABLE_ERROR, PUSH_NONRETRYABLE_ERROR, OCCUPANCY, CONTROL, MY_SEGMENTS_UPDATE, MY_SEGMENTS_UPDATE_V2, SEGMENT_UPDATE, SPLIT_KILL, SPLIT_UPDATE } from '../constants';
4
4
  import { IPushEventEmitter } from '../types';
5
5
  import { ISseEventHandler } from '../SSEClient/types';
@@ -25,7 +25,7 @@ function isRetryableError(error: INotificationError) {
25
25
  * @param log factory logger
26
26
  * @param pushEmitter emitter for events related to streaming support
27
27
  */
28
- export default function SSEHandlerFactory(log: ILogger, pushEmitter: IPushEventEmitter): ISseEventHandler {
28
+ export function SSEHandlerFactory(log: ILogger, pushEmitter: IPushEventEmitter): ISseEventHandler {
29
29
 
30
30
  const notificationKeeper = notificationKeeperFactory(pushEmitter);
31
31
 
@@ -1,12 +1,12 @@
1
1
  import { ISegmentsSyncTask } from '../../polling/types';
2
- import Backoff from '../../../utils/Backoff';
2
+ import { Backoff } from '../../../utils/Backoff';
3
3
  import { IUpdateWorker } from './types';
4
4
  import { SegmentsData } from '../SSEHandler/types';
5
5
 
6
6
  /**
7
7
  * MySegmentsUpdateWorker class
8
8
  */
9
- export default class MySegmentsUpdateWorker implements IUpdateWorker {
9
+ export class MySegmentsUpdateWorker implements IUpdateWorker {
10
10
 
11
11
  private readonly mySegmentsSyncTask: ISegmentsSyncTask;
12
12
  private maxChangeNumber: number;
@@ -1,5 +1,5 @@
1
1
  import { ISegmentsCacheSync } from '../../../storages/types';
2
- import Backoff from '../../../utils/Backoff';
2
+ import { Backoff } from '../../../utils/Backoff';
3
3
  import { ISegmentsSyncTask } from '../../polling/types';
4
4
  import { ISegmentUpdateData } from '../SSEHandler/types';
5
5
  import { IUpdateWorker } from './types';
@@ -7,7 +7,7 @@ import { IUpdateWorker } from './types';
7
7
  /**
8
8
  * SegmentUpdateWorker class
9
9
  */
10
- export default class SegmentsUpdateWorker implements IUpdateWorker {
10
+ export class SegmentsUpdateWorker implements IUpdateWorker {
11
11
 
12
12
  private readonly segmentsCache: ISegmentsCacheSync;
13
13
  private readonly segmentsSyncTask: ISegmentsSyncTask;
@@ -1,7 +1,7 @@
1
1
  import { SDK_SPLITS_ARRIVED } from '../../../readiness/constants';
2
2
  import { ISplitsEventEmitter } from '../../../readiness/types';
3
3
  import { ISplitsCacheSync } from '../../../storages/types';
4
- import Backoff from '../../../utils/Backoff';
4
+ import { Backoff } from '../../../utils/Backoff';
5
5
  import { ISegmentsSyncTask, ISplitsSyncTask } from '../../polling/types';
6
6
  import { ISplitKillData, ISplitUpdateData } from '../SSEHandler/types';
7
7
  import { IUpdateWorker } from './types';
@@ -9,7 +9,7 @@ import { IUpdateWorker } from './types';
9
9
  /**
10
10
  * SplitsUpdateWorker class
11
11
  */
12
- export default class SplitsUpdateWorker implements IUpdateWorker {
12
+ export class SplitsUpdateWorker implements IUpdateWorker {
13
13
 
14
14
  private readonly splitsCache: ISplitsCacheSync;
15
15
  private readonly splitsSyncTask: ISplitsSyncTask;
@@ -1,4 +1,4 @@
1
- import Backoff from '../../../utils/Backoff';
1
+ import { Backoff } from '../../../utils/Backoff';
2
2
 
3
3
  export interface IUpdateWorker {
4
4
  readonly backoff: Backoff,
@@ -3,15 +3,15 @@ import { ISSEClient } from './SSEClient/types';
3
3
  import { IStorageSync } from '../../storages/types';
4
4
  import { IReadinessManager } from '../../readiness/types';
5
5
  import { ISegmentsSyncTask, IPollingManager } from '../polling/types';
6
- import objectAssign from 'object-assign';
7
- import Backoff from '../../utils/Backoff';
8
- import SSEHandlerFactory from './SSEHandler';
9
- import MySegmentsUpdateWorker from './UpdateWorkers/MySegmentsUpdateWorker';
10
- import SegmentsUpdateWorker from './UpdateWorkers/SegmentsUpdateWorker';
11
- import SplitsUpdateWorker from './UpdateWorkers/SplitsUpdateWorker';
6
+ import { objectAssign } from '../../utils/lang/objectAssign';
7
+ import { Backoff } from '../../utils/Backoff';
8
+ import { SSEHandlerFactory } from './SSEHandler';
9
+ import { MySegmentsUpdateWorker } from './UpdateWorkers/MySegmentsUpdateWorker';
10
+ import { SegmentsUpdateWorker } from './UpdateWorkers/SegmentsUpdateWorker';
11
+ import { SplitsUpdateWorker } from './UpdateWorkers/SplitsUpdateWorker';
12
12
  import { authenticateFactory, hashUserKey } from './AuthClient';
13
13
  import { forOwn } from '../../utils/lang';
14
- import SSEClient from './SSEClient';
14
+ import { SSEClient } from './SSEClient';
15
15
  import { IFetchAuth } from '../../services/types';
16
16
  import { ISettings } from '../../types';
17
17
  import { getMatching } from '../../utils/key';
@@ -29,7 +29,7 @@ import { IAuthTokenPushEnabled } from './AuthClient/types';
29
29
  * - for server-side if key is not provided in settings.
30
30
  * - for client-side, with support for multiple clients, if key is provided in settings
31
31
  */
32
- export default function pushManagerFactory(
32
+ export function pushManagerFactory(
33
33
  pollingManager: IPollingManager,
34
34
  storage: IStorageSync,
35
35
  readiness: IReadinessManager,
@@ -1,4 +1,4 @@
1
- import syncTaskFactory from '../syncTask';
1
+ import { syncTaskFactory } from '../syncTask';
2
2
  import { ISyncTask, ITimeTracker } from '../types';
3
3
  import { IRecorderCacheProducerSync } from '../../storages/types';
4
4
  import { ILogger } from '../../logger/types';
@@ -13,7 +13,7 @@ import { ISyncTask } from './types';
13
13
  * @param taskName Optional task name for logging.
14
14
  * @returns A sync task that wraps the given task.
15
15
  */
16
- export default function syncTaskFactory<Input extends any[], Output = any>(log: ILogger, task: (...args: Input) => Promise<Output>, period: number, taskName = 'task'): ISyncTask<Input, Output> {
16
+ export function syncTaskFactory<Input extends any[], Output = any>(log: ILogger, task: (...args: Input) => Promise<Output>, period: number, taskName = 'task'): ISyncTask<Input, Output> {
17
17
 
18
18
  // Flag that indicates if the task is being executed
19
19
  let executing = false;
@@ -1,5 +1,5 @@
1
- import objectAssign from 'object-assign';
2
- import thenable from '../utils/promise/thenable';
1
+ import { objectAssign } from '../utils/lang/objectAssign';
2
+ import { thenable } from '../utils/promise/thenable';
3
3
  import { IEventsCacheBase } from '../storages/types';
4
4
  import { IEventsHandler, IEventTracker } from './types';
5
5
  import { SplitIO } from '../types';
@@ -12,7 +12,7 @@ import { EVENTS_TRACKER_SUCCESS, ERROR_EVENTS_TRACKER } from '../logger/constant
12
12
  * @param eventsCache cache to save events
13
13
  * @param integrationsManager optional event handler used for integrations
14
14
  */
15
- export default function eventTrackerFactory(
15
+ export function eventTrackerFactory(
16
16
  log: ILogger,
17
17
  eventsCache: IEventsCacheBase,
18
18
  integrationsManager?: IEventsHandler
@@ -1,8 +1,8 @@
1
1
  import { ImpressionDTO } from '../../types';
2
- import LRUCache from '../../utils/LRUCache';
2
+ import { LRUCache } from '../../utils/LRUCache';
3
3
  import { IImpressionObserver } from './types';
4
4
 
5
- export default class ImpressionObserver<K extends string | number = string> implements IImpressionObserver {
5
+ export class ImpressionObserver<K extends string | number = string> implements IImpressionObserver {
6
6
  private cache: LRUCache<K, number>;
7
7
  private hasher: (impression: ImpressionDTO) => K;
8
8
 
@@ -1,4 +1,4 @@
1
- import ImpressionObserver from './ImpressionObserver';
1
+ import { ImpressionObserver } from './ImpressionObserver';
2
2
  import { hash } from '../../utils/murmur3/murmur3';
3
3
  import { buildKey } from './buildKey';
4
4
  import { ImpressionDTO } from '../../types';
@@ -1,4 +1,4 @@
1
- import ImpressionObserver from './ImpressionObserver';
1
+ import { ImpressionObserver } from './ImpressionObserver';
2
2
  import { hash128 } from '../../utils/murmur3/murmur3_128_x86';
3
3
  import { buildKey } from './buildKey';
4
4
  import { ImpressionDTO } from '../../types';
@@ -1,5 +1,5 @@
1
- import objectAssign from 'object-assign';
2
- import thenable from '../utils/promise/thenable';
1
+ import { objectAssign } from '../utils/lang/objectAssign';
2
+ import { thenable } from '../utils/promise/thenable';
3
3
  import { truncateTimeFrame } from '../utils/time';
4
4
  import { IImpressionCountsCacheSync, IImpressionsCacheBase } from '../storages/types';
5
5
  import { IImpressionsHandler, IImpressionsTracker } from './types';
@@ -18,7 +18,7 @@ import { IMPRESSIONS_TRACKER_SUCCESS, ERROR_IMPRESSIONS_TRACKER, ERROR_IMPRESSIO
18
18
  * @param observer optional impression observer. If provided, previous time (pt property) is included in impression instances
19
19
  * @param countsCache optional cache to save impressions count. If provided, impressions will be deduped (OPTIMIZED mode)
20
20
  */
21
- export default function impressionsTrackerFactory(
21
+ export function impressionsTrackerFactory(
22
22
  log: ILogger,
23
23
  impressionsCache: IImpressionsCacheBase,
24
24
 
@@ -1,4 +1,4 @@
1
- export default class Backoff {
1
+ export class Backoff {
2
2
 
3
3
  static DEFAULT_BASE_MILLIS = 1000; // 1 second
4
4
  static DEFAULT_MAX_MILLIS = 1800000; // 30 minutes
@@ -1,7 +1,7 @@
1
1
  import { IMap, _Map } from '../lang/maps';
2
2
  import { LinkedList, Node } from './LinkedList';
3
3
 
4
- export default class LRUCache<K, V> {
4
+ export class LRUCache<K, V> {
5
5
  maxLen: number;
6
6
  items: IMap<K, Node<{ key: K, value: V }>>;
7
7
  lru: LinkedList<{ key: K, value: V }>;
@@ -11,7 +11,7 @@ function checkListener(listener: unknown) {
11
11
  }
12
12
 
13
13
  // @TODO implement missing methods, check spec and add UTs
14
- export default class EventEmitter implements IEventEmitter {
14
+ export class EventEmitter implements IEventEmitter {
15
15
 
16
16
  private listeners: Record<string, Array<[
17
17
  (...args: any[]) => void, // the event listener
@@ -1,4 +1,4 @@
1
- import thenable from '../promise/thenable';
1
+ import { thenable } from '../promise/thenable';
2
2
  import { LOCALHOST_MODE } from '../constants';
3
3
  import { ISplitsCacheBase } from '../../storages/types';
4
4
  import { IReadinessManager } from '../../readiness/types';
@@ -6,7 +6,7 @@
6
6
  * @returns integer number between 0 and `items.length`. This value is the index of the search value,
7
7
  * if it is contained in the array, or the index at which the value should be inserted to keep the array ordered.
8
8
  */
9
- export default function binarySearch(items: number[], value: number): number {
9
+ export function binarySearch(items: number[], value: number): number {
10
10
  let startIndex = 0;
11
11
  let stopIndex = items.length - 1;
12
12
  let middle = Math.floor((stopIndex + startIndex) / 2);
@@ -0,0 +1,104 @@
1
+ /*
2
+ Adaptation of "object-assign" library (https://www.npmjs.com/package/object-assign)
3
+ exported as an ES module instead of CommonJS, to avoid extra configuration steps when using
4
+ the ESM build of the SDK with tools that doesn't support CommonJS by default (e.g. Rollup).
5
+
6
+ object-assign
7
+ (c) Sindre Sorhus
8
+ @license MIT
9
+ */
10
+
11
+ /* eslint-disable */
12
+ // @ts-nocheck
13
+
14
+ var getOwnPropertySymbols = Object.getOwnPropertySymbols;
15
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
16
+ var propIsEnumerable = Object.prototype.propertyIsEnumerable;
17
+
18
+ function toObject(val) {
19
+ if (val === null || val === undefined) {
20
+ throw new TypeError('Object.assign cannot be called with null or undefined');
21
+ }
22
+
23
+ return Object(val);
24
+ }
25
+
26
+ function shouldUseNative() {
27
+ try {
28
+ if (!Object.assign) {
29
+ return false;
30
+ }
31
+
32
+ // Detect buggy property enumeration order in older V8 versions.
33
+
34
+ // https://bugs.chromium.org/p/v8/issues/detail?id=4118
35
+ var test1 = new String('abc');
36
+ test1[5] = 'de';
37
+ if (Object.getOwnPropertyNames(test1)[0] === '5') {
38
+ return false;
39
+ }
40
+
41
+ // https://bugs.chromium.org/p/v8/issues/detail?id=3056
42
+ var test2 = {};
43
+ for (var i = 0; i < 10; i++) {
44
+ test2['_' + String.fromCharCode(i)] = i;
45
+ }
46
+ var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
47
+ return test2[n];
48
+ });
49
+ if (order2.join('') !== '0123456789') {
50
+ return false;
51
+ }
52
+
53
+ // https://bugs.chromium.org/p/v8/issues/detail?id=3056
54
+ var test3 = {};
55
+ 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
56
+ test3[letter] = letter;
57
+ });
58
+ if (Object.keys(Object.assign({}, test3)).join('') !==
59
+ 'abcdefghijklmnopqrst') {
60
+ return false;
61
+ }
62
+
63
+ return true;
64
+ } catch (err) {
65
+ // We don't expect any of the above to throw, but better to be safe.
66
+ return false;
67
+ }
68
+ }
69
+
70
+ // https://www.npmjs.com/package/@types/object-assign
71
+ type ObjectAssign = (<T, U>(target: T, source: U) => T & U) &
72
+ (<T, U, V>(target: T, source1: U, source2: V) => T & U & V) &
73
+ (<T, U, V, W>(target: T, source1: U, source2: V, source3: W) => T & U & V & W) &
74
+ (<T, U, V, W, Q>(target: T, source1: U, source2: V, source3: W, source4: Q) => T & U & V & W & Q) &
75
+ (<T, U, V, W, Q, R>(target: T, source1: U, source2: V, source3: W, source4: Q, source5: R) => T & U & V & W & Q & R) &
76
+ ((target: any, ...sources: any[]) => any);
77
+
78
+ export const objectAssign: ObjectAssign = shouldUseNative() ? Object.assign : function (target, source) {
79
+ var from;
80
+ var to = toObject(target);
81
+ var symbols;
82
+
83
+ for (var s = 1; s < arguments.length; s++) {
84
+ from = Object(arguments[s]);
85
+
86
+ // eslint-disable-next-line no-restricted-syntax
87
+ for (var key in from) {
88
+ if (hasOwnProperty.call(from, key)) {
89
+ to[key] = from[key];
90
+ }
91
+ }
92
+
93
+ if (getOwnPropertySymbols) {
94
+ symbols = getOwnPropertySymbols(from);
95
+ for (var i = 0; i < symbols.length; i++) {
96
+ if (propIsEnumerable.call(from, symbols[i])) {
97
+ to[symbols[i]] = from[symbols[i]];
98
+ }
99
+ }
100
+ }
101
+ }
102
+
103
+ return to;
104
+ };
@@ -1,2 +1,4 @@
1
1
  // returns true if the given value is a thenable object
2
- export default (o: any): o is Promise<any> => o !== undefined && o !== null && typeof o.then === 'function';
2
+ export function thenable(o: any): o is Promise<any> {
3
+ return o !== undefined && o !== null && typeof o.then === 'function';
4
+ }
@@ -1,4 +1,4 @@
1
- export default function timeout<T>(ms: number, promise: Promise<T>): Promise<T> {
1
+ export function timeout<T>(ms: number, promise: Promise<T>): Promise<T> {
2
2
  if (ms < 1) return promise;
3
3
 
4
4
  return new Promise((resolve, reject) => {
@@ -16,7 +16,7 @@
16
16
  * @returns a promise that doesn't need to be handled for rejection (except when using async/await syntax) and
17
17
  * includes a method named `hasOnFulfilled` that returns true if the promise has attached an onFulfilled handler.
18
18
  */
19
- export default function promiseWrapper<T>(customPromise: Promise<T>, defaultOnRejected: (_: any) => any): Promise<T> & { hasOnFulfilled: () => boolean } {
19
+ export function promiseWrapper<T>(customPromise: Promise<T>, defaultOnRejected: (_: any) => any): Promise<T> & { hasOnFulfilled: () => boolean } {
20
20
 
21
21
  let hasOnFulfilled = false;
22
22
  let hasOnRejected = false;
@@ -3,7 +3,7 @@ import { ILogger } from '../../logger/types';
3
3
  import { SplitIO } from '../../types';
4
4
  import { DEBUG, OPTIMIZED } from '../constants';
5
5
 
6
- export default function validImpressionsMode(log: ILogger, impressionsMode: string): SplitIO.ImpressionsMode {
6
+ export function validImpressionsMode(log: ILogger, impressionsMode: string): SplitIO.ImpressionsMode {
7
7
  impressionsMode = impressionsMode.toUpperCase();
8
8
  if ([DEBUG, OPTIMIZED].indexOf(impressionsMode) === -1) {
9
9
  log.error(ERROR_INVALID_IMPRESSIONS_MODE, [[DEBUG, OPTIMIZED], OPTIMIZED]);
@@ -1,8 +1,8 @@
1
1
  import { merge } from '../lang';
2
- import mode from './mode';
2
+ import { mode } from './mode';
3
3
  import { validateSplitFilters } from './splitFilters';
4
4
  import { STANDALONE_MODE, OPTIMIZED, LOCALHOST_MODE } from '../constants';
5
- import validImpressionsMode from './impressionsMode';
5
+ import { validImpressionsMode } from './impressionsMode';
6
6
  import { ISettingsValidationParams } from './types';
7
7
  import { ISettings } from '../../types';
8
8
 
@@ -1,6 +1,6 @@
1
1
  import { LOCALHOST_MODE, STANDALONE_MODE, PRODUCER_MODE, CONSUMER_MODE, CONSUMER_PARTIAL_MODE } from '../constants';
2
2
 
3
- export default function mode(key: string, mode: string) {
3
+ export function mode(key: string, mode: string) {
4
4
  // Leaving the comparison as is, in case we change the mode name but not the setting.
5
5
  if (key === 'localhost') return LOCALHOST_MODE;
6
6
 
@@ -1,6 +1,6 @@
1
1
  import { uniqueId } from '../lang';
2
- import timer from './timer';
3
- import thenable from '../promise/thenable';
2
+ import { timer } from './timer';
3
+ import { thenable } from '../promise/thenable';
4
4
  import { ILogger } from '../../logger/types';
5
5
  import { IResponse } from '../../services/types';
6
6
 
@@ -112,7 +112,8 @@ function getCallbackForTask(task: string, collector: MetricsCollector | false):
112
112
  return false;
113
113
  }
114
114
 
115
- const TrackerAPI = {
115
+ // Our "time tracker" API
116
+ export const TrackerAPI = {
116
117
  /**
117
118
  * "Private" method, used to attach count/countException and stop callbacks to a promise.
118
119
  *
@@ -223,6 +224,3 @@ const TrackerAPI = {
223
224
  */
224
225
  TaskNames: CONSTANTS
225
226
  };
226
-
227
- // Our "time tracker" API
228
- export default TrackerAPI;
@@ -9,6 +9,4 @@ function nowFactory() {
9
9
  }
10
10
  }
11
11
 
12
- const now = nowFactory();
13
-
14
- export default now;
12
+ export const now = nowFactory();
@@ -1,5 +1,5 @@
1
1
  // @TODO migrate to Node SDK package eventually
2
- export default function now() {
2
+ export function now() {
3
3
  // eslint-disable-next-line no-undef
4
4
  let time = process.hrtime();
5
5
 
@@ -1,4 +1,4 @@
1
- export default function start(now?: () => number) {
1
+ export function timer(now?: () => number) {
2
2
  const st = now ? now() : Date.now();
3
3
 
4
4
  return function stop() {
@@ -3,7 +3,7 @@ import { SplitIO } from '../types';
3
3
  import { IStorageAsync, IStorageSync } from '../storages/types';
4
4
  import { IEvaluationResult, IEvaluator, ISplitEvaluator } from './types';
5
5
  import { ILogger } from '../logger/types';
6
- export default class Engine {
6
+ export declare class Engine {
7
7
  private baseInfo;
8
8
  private evaluator;
9
9
  constructor(baseInfo: ISplit, evaluator: IEvaluator);
@@ -1,4 +1,4 @@
1
1
  import { ILogger } from '../../logger/types';
2
2
  import { MaybeThenable } from '../../dtos/types';
3
3
  import { IMatcher } from '../types';
4
- export default function andCombinerContext(log: ILogger, matchers: IMatcher[]): (...params: any) => MaybeThenable<boolean>;
4
+ export declare function andCombinerContext(log: ILogger, matchers: IMatcher[]): (...params: any) => MaybeThenable<boolean>;
@@ -1,3 +1,3 @@
1
1
  import { ILogger } from '../../logger/types';
2
2
  import { IEvaluator } from '../types';
3
- export default function ifElseIfCombinerContext(log: ILogger, predicates: IEvaluator[]): IEvaluator;
3
+ export declare function ifElseIfCombinerContext(log: ILogger, predicates: IEvaluator[]): IEvaluator;
@@ -1,6 +1,6 @@
1
1
  import { MaybeThenable } from '../../dtos/types';
2
2
  import { IEvaluator } from '../types';
3
3
  import { ILogger } from '../../logger/types';
4
- export default function conditionContext(log: ILogger, matcherEvaluator: (...args: any) => MaybeThenable<boolean>, treatments: {
4
+ export declare function conditionContext(log: ILogger, matcherEvaluator: (...args: any) => MaybeThenable<boolean>, treatments: {
5
5
  getTreatmentFor: (x: number) => string;
6
6
  }, label: string, conditionType: 'ROLLOUT' | 'WHITELIST'): IEvaluator;
@@ -1,2 +1,2 @@
1
1
  import { ILogger } from '../../logger/types';
2
- export default function allMatcherContext(log: ILogger): (runtimeAttr: string) => boolean;
2
+ export declare function allMatcherContext(log: ILogger): (runtimeAttr: string) => boolean;
@@ -1,3 +1,3 @@
1
1
  import { IBetweenMatcherData } from '../../dtos/types';
2
2
  import { ILogger } from '../../logger/types';
3
- export default function betweenMatcherContext(log: ILogger, ruleVO: IBetweenMatcherData): (runtimeAttr: number) => boolean;
3
+ export declare function betweenMatcherContext(log: ILogger, ruleVO: IBetweenMatcherData): (runtimeAttr: number) => boolean;
@@ -1,2 +1,2 @@
1
1
  import { ILogger } from '../../logger/types';
2
- export default function booleanMatcherContext(log: ILogger, ruleAttr: boolean): (runtimeAttr: boolean) => boolean;
2
+ export declare function booleanMatcherContext(log: ILogger, ruleAttr: boolean): (runtimeAttr: boolean) => boolean;
@@ -1,2 +1,2 @@
1
1
  import { ILogger } from '../../logger/types';
2
- export default function containsAllMatcherContext(log: ILogger, ruleAttr: string[]): (runtimeAttr: string[]) => boolean;
2
+ export declare function containsAllSetMatcherContext(log: ILogger, ruleAttr: string[]): (runtimeAttr: string[]) => boolean;
@@ -1,2 +1,2 @@
1
1
  import { ILogger } from '../../logger/types';
2
- export default function containsAnyMatcherContext(log: ILogger, ruleAttr: string[]): (runtimeAttr: string[]) => boolean;
2
+ export declare function containsAnySetMatcherContext(log: ILogger, ruleAttr: string[]): (runtimeAttr: string[]) => boolean;
@@ -1,2 +1,2 @@
1
1
  import { ILogger } from '../../logger/types';
2
- export default function containsStringMatcherContext(log: ILogger, ruleAttr: string[]): (runtimeAttr: string) => boolean;
2
+ export declare function containsStringMatcherContext(log: ILogger, ruleAttr: string[]): (runtimeAttr: string) => boolean;
@@ -2,4 +2,4 @@ import { IDependencyMatcherData, MaybeThenable } from '../../dtos/types';
2
2
  import { IStorageAsync, IStorageSync } from '../../storages/types';
3
3
  import { ILogger } from '../../logger/types';
4
4
  import { IDependencyMatcherValue, ISplitEvaluator } from '../types';
5
- export default function dependencyMatcherContext(log: ILogger, { split, treatments }: IDependencyMatcherData, storage: IStorageSync | IStorageAsync): ({ key, attributes }: IDependencyMatcherValue, splitEvaluator: ISplitEvaluator) => MaybeThenable<boolean>;
5
+ export declare function dependencyMatcherContext(log: ILogger, { split, treatments }: IDependencyMatcherData, storage: IStorageSync | IStorageAsync): ({ key, attributes }: IDependencyMatcherValue, splitEvaluator: ISplitEvaluator) => MaybeThenable<boolean>;
@@ -1,2 +1,2 @@
1
1
  import { ILogger } from '../../logger/types';
2
- export default function equalToMatcherContext(log: ILogger, ruleAttr: number): (runtimeAttr: number) => boolean;
2
+ export declare function equalToMatcherContext(log: ILogger, ruleAttr: number): (runtimeAttr: number) => boolean;
@@ -1,2 +1,2 @@
1
1
  import { ILogger } from '../../logger/types';
2
- export default function equalToSetMatcherContext(log: ILogger, ruleAttr: string[]): (runtimeAttr: string[]) => boolean;
2
+ export declare function equalToSetMatcherContext(log: ILogger, ruleAttr: string[]): (runtimeAttr: string[]) => boolean;
@@ -1,2 +1,2 @@
1
1
  import { ILogger } from '../../logger/types';
2
- export default function endsWithMatcherContext(log: ILogger, ruleAttr: string[]): (runtimeAttr: string) => boolean;
2
+ export declare function endsWithMatcherContext(log: ILogger, ruleAttr: string[]): (runtimeAttr: string) => boolean;
@@ -1,2 +1,2 @@
1
1
  import { ILogger } from '../../logger/types';
2
- export default function greaterThanEqualMatcherContext(log: ILogger, ruleAttr: number): (runtimeAttr: number) => boolean;
2
+ export declare function greaterThanEqualMatcherContext(log: ILogger, ruleAttr: number): (runtimeAttr: number) => boolean;
@@ -4,4 +4,4 @@ import { ILogger } from '../../logger/types';
4
4
  /**
5
5
  * Matcher factory.
6
6
  */
7
- export default function matcherFactory(log: ILogger, matcherDto: IMatcherDto, storage?: IStorageSync | IStorageAsync): IMatcher | undefined;
7
+ export declare function matcherFactory(log: ILogger, matcherDto: IMatcherDto, storage?: IStorageSync | IStorageAsync): IMatcher | undefined;
@@ -1,2 +1,2 @@
1
1
  import { ILogger } from '../../logger/types';
2
- export default function lessThanEqualMatcherContext(log: ILogger, ruleAttr: number): (runtimeAttr: number) => boolean;
2
+ export declare function lessThanEqualMatcherContext(log: ILogger, ruleAttr: number): (runtimeAttr: number) => boolean;
@@ -1,2 +1,2 @@
1
1
  import { ILogger } from '../../logger/types';
2
- export default function partOfMatcherContext(log: ILogger, ruleAttr: string[]): (runtimeAttr: string[]) => boolean;
2
+ export declare function partOfSetMatcherContext(log: ILogger, ruleAttr: string[]): (runtimeAttr: string[]) => boolean;