@splitsoftware/splitio-commons 1.6.2-rc.1 → 1.6.2-rc.4

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 (433) hide show
  1. package/cjs/listeners/browser.js +1 -2
  2. package/cjs/logger/constants.js +1 -2
  3. package/cjs/sdkClient/clientAttributesDecoration.js +1 -1
  4. package/cjs/sdkFactory/index.js +6 -13
  5. package/cjs/services/splitApi.js +1 -20
  6. package/cjs/storages/inMemory/AttributesCacheInMemory.js +1 -1
  7. package/cjs/sync/submitters/submitterManager.js +0 -3
  8. package/cjs/trackers/impressionsTracker.js +28 -7
  9. package/cjs/utils/constants/index.js +2 -3
  10. package/cjs/utils/key/index.js +1 -1
  11. package/cjs/utils/settingsValidation/impressionsMode.js +2 -2
  12. package/cjs/utils/settingsValidation/index.js +1 -3
  13. package/esm/listeners/browser.js +2 -3
  14. package/esm/logger/constants.js +0 -1
  15. package/esm/sdkClient/clientAttributesDecoration.js +1 -1
  16. package/esm/sdkFactory/index.js +6 -13
  17. package/esm/services/splitApi.js +1 -20
  18. package/esm/storages/inMemory/AttributesCacheInMemory.js +1 -1
  19. package/esm/sync/submitters/submitterManager.js +0 -3
  20. package/esm/trackers/impressionsTracker.js +28 -7
  21. package/esm/utils/constants/index.js +0 -1
  22. package/esm/utils/key/index.js +1 -1
  23. package/esm/utils/settingsValidation/impressionsMode.js +3 -3
  24. package/esm/utils/settingsValidation/index.js +1 -3
  25. package/package.json +4 -5
  26. package/src/consent/sdkUserConsent.ts +4 -3
  27. package/src/dtos/types.ts +0 -8
  28. package/src/evaluator/Engine.ts +3 -3
  29. package/src/evaluator/combiners/and.ts +1 -1
  30. package/src/evaluator/combiners/ifelseif.ts +3 -3
  31. package/src/evaluator/condition/engineUtils.ts +1 -1
  32. package/src/evaluator/condition/index.ts +6 -6
  33. package/src/evaluator/index.ts +10 -10
  34. package/src/evaluator/matchers/all.ts +1 -1
  35. package/src/evaluator/matchers/between.ts +1 -1
  36. package/src/evaluator/matchers/boolean.ts +1 -1
  37. package/src/evaluator/matchers/cont_all.ts +1 -1
  38. package/src/evaluator/matchers/cont_any.ts +1 -1
  39. package/src/evaluator/matchers/cont_str.ts +1 -1
  40. package/src/evaluator/matchers/dependency.ts +1 -1
  41. package/src/evaluator/matchers/eq.ts +1 -1
  42. package/src/evaluator/matchers/eq_set.ts +1 -1
  43. package/src/evaluator/matchers/ew.ts +1 -1
  44. package/src/evaluator/matchers/gte.ts +1 -1
  45. package/src/evaluator/matchers/index.ts +1 -1
  46. package/src/evaluator/matchers/lte.ts +1 -1
  47. package/src/evaluator/matchers/part_of.ts +1 -1
  48. package/src/evaluator/matchers/segment.ts +1 -1
  49. package/src/evaluator/matchers/string.ts +1 -1
  50. package/src/evaluator/matchers/sw.ts +1 -1
  51. package/src/evaluator/matchers/whitelist.ts +1 -1
  52. package/src/evaluator/parser/index.ts +3 -3
  53. package/src/evaluator/types.ts +6 -6
  54. package/src/evaluator/value/index.ts +4 -4
  55. package/src/evaluator/value/sanitize.ts +4 -4
  56. package/src/integrations/ga/GaToSplit.ts +6 -6
  57. package/src/integrations/ga/SplitToGa.ts +10 -10
  58. package/src/integrations/ga/types.ts +4 -4
  59. package/src/integrations/pluggable.ts +3 -3
  60. package/src/integrations/types.ts +2 -2
  61. package/src/listeners/browser.ts +2 -3
  62. package/src/logger/.DS_Store +0 -0
  63. package/src/logger/constants.ts +0 -1
  64. package/src/logger/index.ts +3 -3
  65. package/src/logger/sdkLogger.ts +1 -2
  66. package/src/logger/types.ts +0 -16
  67. package/src/readiness/sdkReadinessManager.ts +1 -1
  68. package/src/readiness/types.ts +2 -9
  69. package/src/sdkClient/client.ts +13 -13
  70. package/src/sdkClient/clientAttributesDecoration.ts +13 -13
  71. package/src/sdkClient/clientCS.ts +3 -4
  72. package/src/sdkClient/clientInputValidation.ts +15 -15
  73. package/src/sdkClient/sdkClient.ts +2 -2
  74. package/src/sdkClient/sdkClientMethod.ts +2 -2
  75. package/src/sdkClient/sdkClientMethodCS.ts +9 -9
  76. package/src/sdkClient/sdkClientMethodCSWithTT.ts +9 -9
  77. package/src/sdkFactory/index.ts +8 -17
  78. package/src/sdkFactory/types.ts +8 -11
  79. package/src/sdkManager/index.ts +5 -5
  80. package/src/services/splitApi.ts +1 -22
  81. package/src/services/types.ts +0 -6
  82. package/src/storages/dataLoader.ts +2 -2
  83. package/src/storages/inLocalStorage/MySegmentsCacheInLocal.ts +1 -1
  84. package/src/storages/inLocalStorage/SplitsCacheInLocal.ts +2 -2
  85. package/src/storages/inLocalStorage/index.ts +3 -2
  86. package/src/storages/inMemory/AttributesCacheInMemory.ts +13 -12
  87. package/src/storages/inMemory/EventsCacheInMemory.ts +4 -4
  88. package/src/storages/inRedis/EventsCacheInRedis.ts +4 -4
  89. package/src/storages/inRedis/ImpressionsCacheInRedis.ts +1 -1
  90. package/src/storages/inRedis/RedisAdapter.ts +1 -1
  91. package/src/storages/inRedis/SegmentsCacheInRedis.ts +1 -1
  92. package/src/storages/inRedis/SplitsCacheInRedis.ts +1 -1
  93. package/src/storages/inRedis/TelemetryCacheInRedis.ts +1 -1
  94. package/src/storages/inRedis/index.ts +3 -2
  95. package/src/storages/pluggable/EventsCachePluggable.ts +4 -4
  96. package/src/storages/pluggable/ImpressionsCachePluggable.ts +1 -1
  97. package/src/storages/pluggable/SegmentsCachePluggable.ts +1 -1
  98. package/src/storages/pluggable/SplitsCachePluggable.ts +1 -1
  99. package/src/storages/pluggable/TelemetryCachePluggable.ts +1 -1
  100. package/src/storages/pluggable/index.ts +3 -3
  101. package/src/storages/pluggable/wrapperAdapter.ts +1 -1
  102. package/src/storages/types.ts +46 -35
  103. package/src/sync/offline/LocalhostFromObject.ts +4 -4
  104. package/src/sync/offline/splitsParser/splitsParserFromSettings.ts +8 -8
  105. package/src/sync/polling/updaters/mySegmentsUpdater.ts +1 -1
  106. package/src/sync/polling/updaters/segmentChangesUpdater.ts +1 -1
  107. package/src/sync/polling/updaters/splitChangesUpdater.ts +1 -1
  108. package/src/sync/streaming/SSEHandler/index.ts +1 -1
  109. package/src/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.ts +1 -1
  110. package/src/sync/streaming/UpdateWorkers/SplitsUpdateWorker.ts +1 -1
  111. package/src/sync/submitters/submitter.ts +1 -1
  112. package/src/sync/submitters/submitterManager.ts +0 -2
  113. package/src/sync/submitters/types.ts +3 -22
  114. package/src/sync/syncTask.ts +1 -1
  115. package/src/trackers/eventTracker.ts +3 -3
  116. package/src/trackers/impressionsTracker.ts +37 -15
  117. package/src/trackers/types.ts +4 -34
  118. package/src/types.d.ts +1581 -0
  119. package/src/utils/constants/index.ts +1 -2
  120. package/src/utils/inputValidation/apiKey.ts +1 -1
  121. package/src/utils/inputValidation/attribute.ts +1 -1
  122. package/src/utils/inputValidation/attributes.ts +3 -3
  123. package/src/utils/inputValidation/event.ts +1 -1
  124. package/src/utils/inputValidation/eventProperties.ts +3 -3
  125. package/src/utils/inputValidation/eventValue.ts +1 -1
  126. package/src/utils/inputValidation/isOperational.ts +1 -1
  127. package/src/utils/inputValidation/key.ts +3 -3
  128. package/src/utils/inputValidation/preloadedData.ts +3 -3
  129. package/src/utils/inputValidation/split.ts +1 -1
  130. package/src/utils/inputValidation/splitExistance.ts +1 -1
  131. package/src/utils/inputValidation/splits.ts +1 -1
  132. package/src/utils/inputValidation/trafficType.ts +1 -1
  133. package/src/utils/inputValidation/trafficTypeExistance.ts +1 -1
  134. package/src/utils/key/index.ts +9 -9
  135. package/src/utils/settingsValidation/consent.ts +1 -2
  136. package/src/utils/settingsValidation/impressionsMode.ts +6 -6
  137. package/src/utils/settingsValidation/index.ts +1 -4
  138. package/src/utils/settingsValidation/integrations/common.ts +1 -1
  139. package/src/utils/settingsValidation/integrations/configurable.ts +1 -1
  140. package/src/utils/settingsValidation/integrations/pluggable.ts +1 -2
  141. package/src/utils/settingsValidation/localhost/builtin.ts +1 -2
  142. package/src/utils/settingsValidation/localhost/pluggable.ts +1 -2
  143. package/src/utils/settingsValidation/logger/builtinLogger.ts +1 -2
  144. package/src/utils/settingsValidation/logger/pluggableLogger.ts +1 -2
  145. package/src/utils/settingsValidation/splitFilters.ts +7 -9
  146. package/src/utils/settingsValidation/storage/storageCS.ts +1 -2
  147. package/cjs/sync/submitters/uniqueKeysSubmitter.js +0 -70
  148. package/cjs/trackers/strategy/strategyDebug.js +0 -25
  149. package/cjs/trackers/strategy/strategyNone.js +0 -29
  150. package/cjs/trackers/strategy/strategyOptimized.js +0 -34
  151. package/cjs/trackers/uniqueKeysTracker.js +0 -69
  152. package/cjs/types.js +0 -2
  153. package/esm/sync/submitters/uniqueKeysSubmitter.js +0 -64
  154. package/esm/trackers/strategy/strategyDebug.js +0 -21
  155. package/esm/trackers/strategy/strategyNone.js +0 -25
  156. package/esm/trackers/strategy/strategyOptimized.js +0 -30
  157. package/esm/trackers/uniqueKeysTracker.js +0 -65
  158. package/esm/types.js +0 -1
  159. package/src/sync/submitters/uniqueKeysSubmitter.ts +0 -79
  160. package/src/trackers/strategy/strategyDebug.ts +0 -28
  161. package/src/trackers/strategy/strategyNone.ts +0 -34
  162. package/src/trackers/strategy/strategyOptimized.ts +0 -42
  163. package/src/trackers/uniqueKeysTracker.ts +0 -80
  164. package/src/types.ts +0 -1264
  165. package/types/consent/index.d.ts +0 -2
  166. package/types/consent/sdkUserConsent.d.ts +0 -13
  167. package/types/dtos/types.d.ts +0 -172
  168. package/types/evaluator/Engine.d.ts +0 -15
  169. package/types/evaluator/combiners/and.d.ts +0 -4
  170. package/types/evaluator/combiners/ifelseif.d.ts +0 -3
  171. package/types/evaluator/condition/engineUtils.d.ts +0 -11
  172. package/types/evaluator/condition/index.d.ts +0 -6
  173. package/types/evaluator/convertions/index.d.ts +0 -2
  174. package/types/evaluator/index.d.ts +0 -7
  175. package/types/evaluator/matchers/all.d.ts +0 -2
  176. package/types/evaluator/matchers/between.d.ts +0 -3
  177. package/types/evaluator/matchers/boolean.d.ts +0 -2
  178. package/types/evaluator/matchers/cont_all.d.ts +0 -2
  179. package/types/evaluator/matchers/cont_any.d.ts +0 -2
  180. package/types/evaluator/matchers/cont_str.d.ts +0 -2
  181. package/types/evaluator/matchers/dependency.d.ts +0 -5
  182. package/types/evaluator/matchers/eq.d.ts +0 -2
  183. package/types/evaluator/matchers/eq_set.d.ts +0 -2
  184. package/types/evaluator/matchers/ew.d.ts +0 -2
  185. package/types/evaluator/matchers/gte.d.ts +0 -2
  186. package/types/evaluator/matchers/index.d.ts +0 -7
  187. package/types/evaluator/matchers/lte.d.ts +0 -2
  188. package/types/evaluator/matchers/matcherTypes.d.ts +0 -10
  189. package/types/evaluator/matchers/part_of.d.ts +0 -2
  190. package/types/evaluator/matchers/segment.d.ts +0 -6
  191. package/types/evaluator/matchers/string.d.ts +0 -2
  192. package/types/evaluator/matchers/sw.d.ts +0 -2
  193. package/types/evaluator/matchers/whitelist.d.ts +0 -3
  194. package/types/evaluator/matchersTransform/index.d.ts +0 -6
  195. package/types/evaluator/matchersTransform/segment.d.ts +0 -5
  196. package/types/evaluator/matchersTransform/set.d.ts +0 -5
  197. package/types/evaluator/matchersTransform/unaryNumeric.d.ts +0 -5
  198. package/types/evaluator/matchersTransform/whitelist.d.ts +0 -5
  199. package/types/evaluator/parser/index.d.ts +0 -5
  200. package/types/evaluator/treatments/index.d.ts +0 -8
  201. package/types/evaluator/types.d.ts +0 -28
  202. package/types/evaluator/value/index.d.ts +0 -7
  203. package/types/evaluator/value/sanitize.d.ts +0 -7
  204. package/types/index.d.ts +0 -5
  205. package/types/integrations/browser.d.ts +0 -12
  206. package/types/integrations/ga/GaToSplit.d.ts +0 -40
  207. package/types/integrations/ga/GoogleAnalyticsToSplit.d.ts +0 -3
  208. package/types/integrations/ga/SplitToGa.d.ts +0 -34
  209. package/types/integrations/ga/SplitToGoogleAnalytics.d.ts +0 -3
  210. package/types/integrations/ga/types.d.ts +0 -148
  211. package/types/integrations/pluggable.d.ts +0 -11
  212. package/types/integrations/types.d.ts +0 -17
  213. package/types/listeners/browser.d.ts +0 -40
  214. package/types/listeners/node.d.ts +0 -22
  215. package/types/listeners/types.d.ts +0 -4
  216. package/types/logger/browser/DebugLogger.d.ts +0 -2
  217. package/types/logger/browser/ErrorLogger.d.ts +0 -2
  218. package/types/logger/browser/InfoLogger.d.ts +0 -2
  219. package/types/logger/browser/WarnLogger.d.ts +0 -2
  220. package/types/logger/constants.d.ts +0 -142
  221. package/types/logger/index.d.ts +0 -22
  222. package/types/logger/messages/debug.d.ts +0 -1
  223. package/types/logger/messages/error.d.ts +0 -1
  224. package/types/logger/messages/info.d.ts +0 -1
  225. package/types/logger/messages/warn.d.ts +0 -1
  226. package/types/logger/sdkLogger.d.ts +0 -8
  227. package/types/logger/types.d.ts +0 -17
  228. package/types/readiness/constants.d.ts +0 -7
  229. package/types/readiness/readinessManager.d.ts +0 -6
  230. package/types/readiness/sdkReadinessManager.d.ts +0 -11
  231. package/types/readiness/types.d.ts +0 -60
  232. package/types/sdkClient/client.d.ts +0 -6
  233. package/types/sdkClient/clientAttributesDecoration.d.ts +0 -51
  234. package/types/sdkClient/clientCS.d.ts +0 -10
  235. package/types/sdkClient/clientInputValidation.d.ts +0 -7
  236. package/types/sdkClient/sdkClient.d.ts +0 -6
  237. package/types/sdkClient/sdkClientMethod.d.ts +0 -6
  238. package/types/sdkClient/sdkClientMethodCS.d.ts +0 -7
  239. package/types/sdkClient/sdkClientMethodCSWithTT.d.ts +0 -8
  240. package/types/sdkClient/types.d.ts +0 -18
  241. package/types/sdkFactory/index.d.ts +0 -6
  242. package/types/sdkFactory/types.d.ts +0 -82
  243. package/types/sdkManager/index.d.ts +0 -5
  244. package/types/services/splitApi.d.ts +0 -11
  245. package/types/services/splitHttpClient.d.ts +0 -10
  246. package/types/services/types.d.ts +0 -54
  247. package/types/storages/AbstractSegmentsCacheSync.d.ts +0 -55
  248. package/types/storages/AbstractSplitsCacheAsync.d.ts +0 -36
  249. package/types/storages/AbstractSplitsCacheSync.d.ts +0 -42
  250. package/types/storages/KeyBuilder.d.ts +0 -14
  251. package/types/storages/KeyBuilderCS.d.ts +0 -16
  252. package/types/storages/KeyBuilderSS.d.ts +0 -15
  253. package/types/storages/dataLoader.d.ts +0 -10
  254. package/types/storages/findLatencyIndex.d.ts +0 -7
  255. package/types/storages/inLocalStorage/MySegmentsCacheInLocal.d.ts +0 -25
  256. package/types/storages/inLocalStorage/SplitsCacheInLocal.d.ts +0 -51
  257. package/types/storages/inLocalStorage/constants.d.ts +0 -2
  258. package/types/storages/inLocalStorage/index.d.ts +0 -8
  259. package/types/storages/inMemory/AttributesCacheInMemory.d.ts +0 -43
  260. package/types/storages/inMemory/CountsCacheInMemory.d.ts +0 -20
  261. package/types/storages/inMemory/EventsCacheInMemory.d.ts +0 -35
  262. package/types/storages/inMemory/ImpressionCountsCacheInMemory.d.ts +0 -24
  263. package/types/storages/inMemory/ImpressionsCacheInMemory.d.ts +0 -30
  264. package/types/storages/inMemory/InMemoryStorage.d.ts +0 -10
  265. package/types/storages/inMemory/InMemoryStorageCS.d.ts +0 -10
  266. package/types/storages/inMemory/LatenciesCacheInMemory.d.ts +0 -20
  267. package/types/storages/inMemory/MySegmentsCacheInMemory.d.ts +0 -22
  268. package/types/storages/inMemory/SegmentsCacheInMemory.d.ts +0 -19
  269. package/types/storages/inMemory/SplitsCacheInMemory.d.ts +0 -20
  270. package/types/storages/inMemory/TelemetryCacheInMemory.d.ts +0 -53
  271. package/types/storages/inRedis/CountsCacheInRedis.d.ts +0 -9
  272. package/types/storages/inRedis/EventsCacheInRedis.d.ts +0 -32
  273. package/types/storages/inRedis/ImpressionsCacheInRedis.d.ts +0 -18
  274. package/types/storages/inRedis/LatenciesCacheInRedis.d.ts +0 -9
  275. package/types/storages/inRedis/RedisAdapter.d.ts +0 -24
  276. package/types/storages/inRedis/SegmentsCacheInRedis.d.ts +0 -18
  277. package/types/storages/inRedis/SplitsCacheInRedis.d.ts +0 -91
  278. package/types/storages/inRedis/TelemetryCacheInRedis.d.ts +0 -20
  279. package/types/storages/inRedis/constants.d.ts +0 -1
  280. package/types/storages/inRedis/index.d.ts +0 -10
  281. package/types/storages/metadataBuilder.d.ts +0 -3
  282. package/types/storages/pluggable/EventsCachePluggable.d.ts +0 -38
  283. package/types/storages/pluggable/ImpressionsCachePluggable.d.ts +0 -35
  284. package/types/storages/pluggable/SegmentsCachePluggable.d.ts +0 -54
  285. package/types/storages/pluggable/SplitsCachePluggable.d.ts +0 -89
  286. package/types/storages/pluggable/TelemetryCachePluggable.d.ts +0 -18
  287. package/types/storages/pluggable/constants.d.ts +0 -1
  288. package/types/storages/pluggable/inMemoryWrapper.d.ts +0 -13
  289. package/types/storages/pluggable/index.d.ts +0 -9
  290. package/types/storages/pluggable/wrapperAdapter.d.ts +0 -12
  291. package/types/storages/types.d.ts +0 -417
  292. package/types/sync/offline/LocalhostFromFile.d.ts +0 -2
  293. package/types/sync/offline/LocalhostFromObject.d.ts +0 -2
  294. package/types/sync/offline/splitsParser/parseCondition.d.ts +0 -7
  295. package/types/sync/offline/splitsParser/splitsParserFromFile.d.ts +0 -2
  296. package/types/sync/offline/splitsParser/splitsParserFromSettings.d.ts +0 -3
  297. package/types/sync/offline/splitsParser/types.d.ts +0 -3
  298. package/types/sync/offline/syncManagerOffline.d.ts +0 -10
  299. package/types/sync/offline/syncTasks/fromObjectSyncTask.d.ts +0 -17
  300. package/types/sync/polling/fetchers/mySegmentsFetcher.d.ts +0 -7
  301. package/types/sync/polling/fetchers/segmentChangesFetcher.d.ts +0 -7
  302. package/types/sync/polling/fetchers/splitChangesFetcher.d.ts +0 -7
  303. package/types/sync/polling/fetchers/types.d.ts +0 -5
  304. package/types/sync/polling/pollingManagerCS.d.ts +0 -7
  305. package/types/sync/polling/pollingManagerSS.d.ts +0 -6
  306. package/types/sync/polling/syncTasks/mySegmentsSyncTask.d.ts +0 -9
  307. package/types/sync/polling/syncTasks/segmentsSyncTask.d.ts +0 -9
  308. package/types/sync/polling/syncTasks/splitsSyncTask.d.ts +0 -9
  309. package/types/sync/polling/types.d.ts +0 -26
  310. package/types/sync/polling/updaters/mySegmentsUpdater.d.ts +0 -13
  311. package/types/sync/polling/updaters/segmentChangesUpdater.d.ts +0 -18
  312. package/types/sync/polling/updaters/splitChangesUpdater.d.ts +0 -39
  313. package/types/sync/streaming/AuthClient/index.d.ts +0 -12
  314. package/types/sync/streaming/AuthClient/types.d.ts +0 -17
  315. package/types/sync/streaming/SSEClient/index.d.ts +0 -34
  316. package/types/sync/streaming/SSEClient/types.d.ts +0 -11
  317. package/types/sync/streaming/SSEHandler/NotificationKeeper.d.ts +0 -14
  318. package/types/sync/streaming/SSEHandler/NotificationParser.d.ts +0 -20
  319. package/types/sync/streaming/SSEHandler/index.d.ts +0 -11
  320. package/types/sync/streaming/SSEHandler/types.d.ts +0 -67
  321. package/types/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.d.ts +0 -6
  322. package/types/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.d.ts +0 -8
  323. package/types/sync/streaming/UpdateWorkers/SplitsUpdateWorker.d.ts +0 -12
  324. package/types/sync/streaming/UpdateWorkers/constants.d.ts +0 -3
  325. package/types/sync/streaming/UpdateWorkers/types.d.ts +0 -4
  326. package/types/sync/streaming/constants.d.ts +0 -34
  327. package/types/sync/streaming/mySegmentsV2utils.d.ts +0 -27
  328. package/types/sync/streaming/pushManager.d.ts +0 -9
  329. package/types/sync/streaming/types.d.ts +0 -35
  330. package/types/sync/submitters/eventsSubmitter.d.ts +0 -5
  331. package/types/sync/submitters/eventsSyncTask.d.ts +0 -8
  332. package/types/sync/submitters/impressionCountsSubmitter.d.ts +0 -10
  333. package/types/sync/submitters/impressionCountsSyncTask.d.ts +0 -13
  334. package/types/sync/submitters/impressionsSubmitter.d.ts +0 -11
  335. package/types/sync/submitters/impressionsSyncTask.d.ts +0 -14
  336. package/types/sync/submitters/metricsSyncTask.d.ts +0 -12
  337. package/types/sync/submitters/submitter.d.ts +0 -12
  338. package/types/sync/submitters/submitterManager.d.ts +0 -3
  339. package/types/sync/submitters/submitterSyncTask.d.ts +0 -10
  340. package/types/sync/submitters/telemetrySubmitter.d.ts +0 -25
  341. package/types/sync/submitters/types.d.ts +0 -194
  342. package/types/sync/submitters/uniqueKeysSubmitter.d.ts +0 -19
  343. package/types/sync/syncManagerOnline.d.ts +0 -13
  344. package/types/sync/syncTask.d.ts +0 -13
  345. package/types/sync/syncTaskComposite.d.ts +0 -5
  346. package/types/sync/types.d.ts +0 -43
  347. package/types/trackers/eventTracker.d.ts +0 -10
  348. package/types/trackers/filter/bloomFilter.d.ts +0 -10
  349. package/types/trackers/filter/dictionaryFilter.d.ts +0 -8
  350. package/types/trackers/filter/types.d.ts +0 -5
  351. package/types/trackers/impressionObserver/ImpressionObserver.d.ts +0 -8
  352. package/types/trackers/impressionObserver/buildKey.d.ts +0 -2
  353. package/types/trackers/impressionObserver/impressionObserverCS.d.ts +0 -4
  354. package/types/trackers/impressionObserver/impressionObserverSS.d.ts +0 -4
  355. package/types/trackers/impressionObserver/types.d.ts +0 -4
  356. package/types/trackers/impressionObserver/utils.d.ts +0 -13
  357. package/types/trackers/impressionsTracker.d.ts +0 -13
  358. package/types/trackers/strategy/strategyDebug.d.ts +0 -9
  359. package/types/trackers/strategy/strategyNone.d.ts +0 -10
  360. package/types/trackers/strategy/strategyOptimized.d.ts +0 -11
  361. package/types/trackers/telemetryTracker.d.ts +0 -3
  362. package/types/trackers/types.d.ts +0 -65
  363. package/types/trackers/uniqueKeysTracker.d.ts +0 -13
  364. package/types/types.d.ts +0 -1262
  365. package/types/utils/Backoff.d.ts +0 -25
  366. package/types/utils/LRUCache/LinkedList.d.ts +0 -34
  367. package/types/utils/LRUCache/index.d.ts +0 -16
  368. package/types/utils/MinEventEmitter.d.ts +0 -12
  369. package/types/utils/MinEvents.d.ts +0 -4
  370. package/types/utils/base64/index.d.ts +0 -30
  371. package/types/utils/constants/browser.d.ts +0 -3
  372. package/types/utils/constants/index.d.ts +0 -63
  373. package/types/utils/decompress/index.d.ts +0 -16
  374. package/types/utils/env/isLocalStorageAvailable.d.ts +0 -1
  375. package/types/utils/env/isNode.d.ts +0 -5
  376. package/types/utils/inputValidation/apiKey.d.ts +0 -7
  377. package/types/utils/inputValidation/attribute.d.ts +0 -2
  378. package/types/utils/inputValidation/attributes.d.ts +0 -4
  379. package/types/utils/inputValidation/event.d.ts +0 -2
  380. package/types/utils/inputValidation/eventProperties.d.ts +0 -6
  381. package/types/utils/inputValidation/eventValue.d.ts +0 -2
  382. package/types/utils/inputValidation/index.d.ts +0 -13
  383. package/types/utils/inputValidation/isOperational.d.ts +0 -4
  384. package/types/utils/inputValidation/key.d.ts +0 -3
  385. package/types/utils/inputValidation/preloadedData.d.ts +0 -3
  386. package/types/utils/inputValidation/split.d.ts +0 -2
  387. package/types/utils/inputValidation/splitExistance.d.ts +0 -7
  388. package/types/utils/inputValidation/splits.d.ts +0 -2
  389. package/types/utils/inputValidation/trafficType.d.ts +0 -2
  390. package/types/utils/inputValidation/trafficTypeExistance.d.ts +0 -9
  391. package/types/utils/jwt/index.d.ts +0 -5
  392. package/types/utils/jwt/types.d.ts +0 -5
  393. package/types/utils/key/index.d.ts +0 -8
  394. package/types/utils/labels/index.d.ts +0 -7
  395. package/types/utils/lang/binarySearch.d.ts +0 -9
  396. package/types/utils/lang/getFnName.d.ts +0 -4
  397. package/types/utils/lang/getGlobal.d.ts +0 -4
  398. package/types/utils/lang/index.d.ts +0 -105
  399. package/types/utils/lang/maps.d.ts +0 -55
  400. package/types/utils/lang/objectAssign.d.ts +0 -3
  401. package/types/utils/lang/sets.d.ts +0 -60
  402. package/types/utils/murmur3/common.d.ts +0 -12
  403. package/types/utils/murmur3/legacy.d.ts +0 -2
  404. package/types/utils/murmur3/murmur3.d.ts +0 -2
  405. package/types/utils/murmur3/murmur3_128.d.ts +0 -6
  406. package/types/utils/murmur3/murmur3_128_x86.d.ts +0 -7
  407. package/types/utils/murmur3/murmur3_64.d.ts +0 -10
  408. package/types/utils/murmur3/utfx.d.ts +0 -27
  409. package/types/utils/promise/thenable.d.ts +0 -1
  410. package/types/utils/promise/timeout.d.ts +0 -1
  411. package/types/utils/promise/wrapper.d.ts +0 -21
  412. package/types/utils/settingsValidation/consent.d.ts +0 -6
  413. package/types/utils/settingsValidation/impressionsMode.d.ts +0 -3
  414. package/types/utils/settingsValidation/index.d.ts +0 -52
  415. package/types/utils/settingsValidation/integrations/common.d.ts +0 -14
  416. package/types/utils/settingsValidation/integrations/configurable.d.ts +0 -13
  417. package/types/utils/settingsValidation/integrations/pluggable.d.ts +0 -13
  418. package/types/utils/settingsValidation/localhost/builtin.d.ts +0 -16
  419. package/types/utils/settingsValidation/localhost/pluggable.d.ts +0 -16
  420. package/types/utils/settingsValidation/logger/builtinLogger.d.ts +0 -10
  421. package/types/utils/settingsValidation/logger/commons.d.ts +0 -9
  422. package/types/utils/settingsValidation/logger/pluggableLogger.d.ts +0 -11
  423. package/types/utils/settingsValidation/mode.d.ts +0 -1
  424. package/types/utils/settingsValidation/runtime.d.ts +0 -2
  425. package/types/utils/settingsValidation/splitFilters.d.ts +0 -16
  426. package/types/utils/settingsValidation/storage/storageCS.d.ts +0 -21
  427. package/types/utils/settingsValidation/types.d.ts +0 -32
  428. package/types/utils/settingsValidation/url.d.ts +0 -10
  429. package/types/utils/time/index.d.ts +0 -4
  430. package/types/utils/timeTracker/index.d.ts +0 -70
  431. package/types/utils/timeTracker/now/browser.d.ts +0 -1
  432. package/types/utils/timeTracker/now/node.d.ts +0 -1
  433. package/types/utils/timeTracker/timer.d.ts +0 -1
@@ -4,7 +4,7 @@ import { impressionsTrackerFactory } from '../trackers/impressionsTracker';
4
4
  import { eventTrackerFactory } from '../trackers/eventTracker';
5
5
  import { telemetryTrackerFactory } from '../trackers/telemetryTracker';
6
6
  import { IStorageFactoryParams } from '../storages/types';
7
- import { SplitIO } from '../types';
7
+ import { IBasicSDK } from '../types';
8
8
  import { getMatching } from '../utils/key';
9
9
  import { shouldBeOptimized } from '../trackers/impressionObserver/utils';
10
10
  import { validateAndTrackApiKey } from '../utils/inputValidation/apiKey';
@@ -13,23 +13,16 @@ import { NEW_FACTORY, RETRIEVE_MANAGER } from '../logger/constants';
13
13
  import { metadataBuilder } from '../storages/metadataBuilder';
14
14
  import { SDK_SPLITS_ARRIVED, SDK_SEGMENTS_ARRIVED } from '../readiness/constants';
15
15
  import { objectAssign } from '../utils/lang/objectAssign';
16
- import { strategyDebugFactory } from '../trackers/strategy/strategyDebug';
17
- import { strategyOptimizedFactory } from '../trackers/strategy/strategyOptimized';
18
- import { strategyNoneFactory } from '../trackers/strategy/strategyNone';
19
- import { uniqueKeysTrackerFactory } from '../trackers/uniqueKeysTracker';
20
- import { NONE } from '../utils/constants';
21
16
 
22
17
  /**
23
18
  * Modular SDK factory
24
19
  */
25
- export function sdkFactory(params: ISdkFactoryParams): SplitIO.ICsSDK | SplitIO.ISDK | SplitIO.IAsyncSDK {
20
+ export function sdkFactory(params: ISdkFactoryParams): IBasicSDK<any, any> {
26
21
 
27
22
  const { settings, platform, storageFactory, splitApiFactory, extraProps,
28
23
  syncManagerFactory, SignalListener, impressionsObserverFactory,
29
- integrationsManagerFactory, sdkManagerFactory, sdkClientMethodFactory,
30
- filterAdapterFactory } = params;
24
+ integrationsManagerFactory, sdkManagerFactory, sdkClientMethodFactory } = params;
31
25
  const log = settings.log;
32
- const impressionsMode = settings.sync.impressionsMode;
33
26
 
34
27
  // @TODO handle non-recoverable errors, such as, global `fetch` not available, invalid API Key, etc.
35
28
  // On non-recoverable errors, we should mark the SDK as destroyed and not start synchronization.
@@ -48,6 +41,7 @@ export function sdkFactory(params: ISdkFactoryParams): SplitIO.ICsSDK | SplitIO.
48
41
 
49
42
  // ATM, only used by InLocalStorage
50
43
  matchingKey: getMatching(settings.core.key),
44
+ // @ts-ignore
51
45
  splitFiltersValidation: settings.sync.__splitFiltersValidation,
52
46
 
53
47
  // ATM, only used by PluggableStorage
@@ -69,19 +63,16 @@ export function sdkFactory(params: ISdkFactoryParams): SplitIO.ICsSDK | SplitIO.
69
63
 
70
64
  const integrationsManager = integrationsManagerFactory && integrationsManagerFactory({ settings, storage });
71
65
 
72
- const observer = impressionsObserverFactory();
73
- const uniqueKeysTracker = impressionsMode === NONE ? uniqueKeysTrackerFactory(log, filterAdapterFactory && filterAdapterFactory()) : undefined;
74
- const strategy = (storageFactoryParams.optimize) ? strategyOptimizedFactory(observer, storage.impressionCounts!) :
75
- (impressionsMode === NONE) ? strategyNoneFactory(storage.impressionCounts!, uniqueKeysTracker!) : strategyDebugFactory(observer);
76
-
77
- const impressionsTracker = impressionsTrackerFactory(settings, storage.impressions, strategy, integrationsManager, storage.telemetry);
66
+ // trackers
67
+ const observer = impressionsObserverFactory && impressionsObserverFactory();
68
+ const impressionsTracker = impressionsTrackerFactory(settings, storage.impressions, integrationsManager, observer, storage.impressionCounts, storage.telemetry);
78
69
  const eventTracker = eventTrackerFactory(settings, storage.events, integrationsManager, storage.telemetry);
79
70
  const telemetryTracker = telemetryTrackerFactory(storage.telemetry, platform.now);
80
71
 
81
72
  // splitApi is used by SyncManager and Browser signal listener
82
73
  const splitApi = splitApiFactory && splitApiFactory(settings, platform, telemetryTracker);
83
74
 
84
- const ctx: ISdkFactoryContext = { splitApi, eventTracker, impressionsTracker, telemetryTracker, uniqueKeysTracker, sdkReadinessManager, readiness, settings, storage, platform };
75
+ const ctx: ISdkFactoryContext = { splitApi, eventTracker, impressionsTracker, telemetryTracker, sdkReadinessManager, readiness, settings, storage, platform };
85
76
 
86
77
  const syncManager = syncManagerFactory && syncManagerFactory(ctx as ISdkFactoryContextSync);
87
78
  ctx.syncManager = syncManager;
@@ -1,13 +1,13 @@
1
1
  import { IIntegrationManager, IIntegrationFactoryParams } from '../integrations/types';
2
2
  import { ISignalListener } from '../listeners/types';
3
- import { ILogger } from '../logger/types';
3
+ import { IAsyncClientSS, IAsyncManager, IClientSS, IClientWithKey, ILogger, IManager, SplitKey } from '../types';
4
4
  import { IReadinessManager, ISdkReadinessManager } from '../readiness/types';
5
5
  import { IFetch, ISplitApi, IEventSourceConstructor } from '../services/types';
6
6
  import { IStorageAsync, IStorageSync, ISplitsCacheSync, ISplitsCacheAsync, IStorageFactoryParams } from '../storages/types';
7
7
  import { ISyncManager } from '../sync/types';
8
8
  import { IImpressionObserver } from '../trackers/impressionObserver/types';
9
- import { IImpressionsTracker, IEventTracker, ITelemetryTracker, IFilterAdapter, IUniqueKeysTracker } from '../trackers/types';
10
- import { SplitIO, ISettings, IEventEmitter } from '../types';
9
+ import { IImpressionsTracker, IEventTracker, ITelemetryTracker } from '../trackers/types';
10
+ import { ISettings, IEventEmitter } from '../types';
11
11
 
12
12
  /**
13
13
  * Environment related dependencies.
@@ -44,7 +44,6 @@ export interface ISdkFactoryContext {
44
44
  eventTracker: IEventTracker,
45
45
  telemetryTracker: ITelemetryTracker,
46
46
  storage: IStorageSync | IStorageAsync,
47
- uniqueKeysTracker?: IUniqueKeysTracker,
48
47
  signalListener?: ISignalListener
49
48
  splitApi?: ISplitApi
50
49
  syncManager?: ISyncManager,
@@ -91,16 +90,11 @@ export interface ISdkFactoryParams {
91
90
  log: ILogger,
92
91
  splits: ISplitsCacheSync | ISplitsCacheAsync,
93
92
  sdkReadinessManager: ISdkReadinessManager
94
- ) => SplitIO.IManager | SplitIO.IAsyncManager,
93
+ ) => IManager | IAsyncManager,
95
94
 
96
95
  // Sdk client method factory (ISDK::client method).
97
96
  // It Allows to distinguish SDK clients with the client-side API (`ICsSDK`) or server-side API (`ISDK` or `IAsyncSDK`).
98
- sdkClientMethodFactory: (params: ISdkFactoryContext) => ({ (): SplitIO.ICsClient; (key: SplitIO.SplitKey, trafficType?: string | undefined): SplitIO.ICsClient; } | (() => SplitIO.IClient) | (() => SplitIO.IAsyncClient))
99
-
100
- // Impression observer factory. If provided, will be used for impressions dedupe
101
- impressionsObserverFactory: () => IImpressionObserver
102
-
103
- filterAdapterFactory?: () => IFilterAdapter
97
+ sdkClientMethodFactory: (params: ISdkFactoryContext) => ({ (): IClientWithKey; (key: SplitKey, trafficType?: string | undefined): IClientWithKey; } | (() => IClientSS) | (() => IAsyncClientSS))
104
98
 
105
99
  // Optional signal listener constructor. Used to handle special app states, like shutdown, app paused or resumed.
106
100
  // Pass only if `syncManager` (used by Node listener) and `splitApi` (used by Browser listener) are passed.
@@ -113,6 +107,9 @@ export interface ISdkFactoryParams {
113
107
  // @TODO review impressionListener and integrations interfaces. What about handling impressionListener as an integration ?
114
108
  integrationsManagerFactory?: (params: IIntegrationFactoryParams) => IIntegrationManager | undefined,
115
109
 
110
+ // Impression observer factory. If provided, will be used for impressions dedupe
111
+ impressionsObserverFactory?: () => IImpressionObserver
112
+
116
113
  // Optional function to assign additional properties to the factory instance
117
114
  extraProps?: (params: ISdkFactoryContext) => object
118
115
  }
@@ -5,8 +5,8 @@ import { validateSplit, validateSplitExistance, validateIfNotDestroyed, validate
5
5
  import { ISplitsCacheAsync, ISplitsCacheSync } from '../storages/types';
6
6
  import { ISdkReadinessManager } from '../readiness/types';
7
7
  import { ISplit } from '../dtos/types';
8
- import { SplitIO } from '../types';
9
- import { ILogger } from '../logger/types';
8
+ import { IAsyncManager, IManager, SplitView } from '../types';
9
+ import { ILogger } from '../types';
10
10
 
11
11
  function collectTreatments(splitObject: ISplit) {
12
12
  const conditions = splitObject.conditions;
@@ -18,7 +18,7 @@ function collectTreatments(splitObject: ISplit) {
18
18
  return allTreatmentsCondition ? allTreatmentsCondition.partitions.map(v => v.treatment) : [];
19
19
  }
20
20
 
21
- function objectToView(json: string | null): SplitIO.SplitView | null {
21
+ function objectToView(json: string | null): SplitView | null {
22
22
  let splitObject: ISplit | null;
23
23
 
24
24
  try {
@@ -41,7 +41,7 @@ function objectToView(json: string | null): SplitIO.SplitView | null {
41
41
  }
42
42
 
43
43
  function objectsToViews(jsons: string[]) {
44
- let views: SplitIO.SplitView[] = [];
44
+ let views: SplitView[] = [];
45
45
 
46
46
  jsons.forEach(split => {
47
47
  const view = objectToView(split);
@@ -55,7 +55,7 @@ export function sdkManagerFactory<TSplitCache extends ISplitsCacheSync | ISplits
55
55
  log: ILogger,
56
56
  splits: TSplitCache,
57
57
  { readinessManager, sdkStatus }: ISdkReadinessManager
58
- ): TSplitCache extends ISplitsCacheAsync ? SplitIO.IAsyncManager : SplitIO.IManager {
58
+ ): TSplitCache extends ISplitsCacheAsync ? IAsyncManager : IManager {
59
59
  const SPLIT_FN_LABEL = 'split';
60
60
 
61
61
  return objectAssign(
@@ -25,6 +25,7 @@ export function splitApiFactory(
25
25
  ): ISplitApi {
26
26
 
27
27
  const urls = settings.urls;
28
+ // @ts-ignore
28
29
  const filterQueryString = settings.sync.__splitFiltersValidation && settings.sync.__splitFiltersValidation.queryString;
29
30
  const SplitSDKImpressionsMode = settings.sync.impressionsMode;
30
31
  const splitHttpClient = splitHttpClientFactory(settings, platform.getFetch, platform.getOptions);
@@ -106,28 +107,6 @@ export function splitApiFactory(
106
107
  const url = `${urls.events}/testImpressions/count`;
107
108
  return splitHttpClient(url, { method: 'POST', body, headers }, telemetryTracker.trackHttp(IMPRESSIONS_COUNT));
108
109
  },
109
-
110
- /**
111
- * Post unique keys for client side.
112
- *
113
- * @param body unique keys payload
114
- * @param headers Optionals headers to overwrite default ones. For example, it is used in producer mode to overwrite metadata headers.
115
- */
116
- postUniqueKeysBulkCs(body: string, headers?: Record<string, string>) {
117
- const url = `${urls.telemetry}/api/v1/keys/cs`;
118
- return splitHttpClient(url, { method: 'POST', body, headers }, telemetryTracker.trackHttp(TELEMETRY));
119
- },
120
-
121
- /**
122
- * Post unique keys for server side.
123
- *
124
- * @param body unique keys payload
125
- * @param headers Optionals headers to overwrite default ones. For example, it is used in producer mode to overwrite metadata headers.
126
- */
127
- postUniqueKeysBulkSs(body: string, headers?: Record<string, string>) {
128
- const url = `${urls.telemetry}/api/v1/keys/ss`;
129
- return splitHttpClient(url, { method: 'POST', body, headers }, telemetryTracker.trackHttp(TELEMETRY));
130
- },
131
110
 
132
111
  postMetricsConfig(body: string) {
133
112
  const url = `${urls.telemetry}/v1/metrics/config`;
@@ -43,10 +43,6 @@ export type IFetchMySegments = (userMatchingKey: string, noCache?: boolean) => P
43
43
 
44
44
  export type IPostEventsBulk = (body: string, headers?: Record<string, string>) => Promise<IResponse>
45
45
 
46
- export type IPostUniqueKeysBulkCs = (body: string, headers?: Record<string, string>) => Promise<IResponse>
47
-
48
- export type IPostUniqueKeysBulkSs = (body: string, headers?: Record<string, string>) => Promise<IResponse>
49
-
50
46
  export type IPostTestImpressionsBulk = (body: string, headers?: Record<string, string>) => Promise<IResponse>
51
47
 
52
48
  export type IPostTestImpressionsCount = (body: string, headers?: Record<string, string>) => Promise<IResponse>
@@ -63,8 +59,6 @@ export interface ISplitApi {
63
59
  fetchSegmentChanges: IFetchSegmentChanges
64
60
  fetchMySegments: IFetchMySegments
65
61
  postEventsBulk: IPostEventsBulk
66
- postUniqueKeysBulkCs: IPostUniqueKeysBulkCs
67
- postUniqueKeysBulkSs: IPostUniqueKeysBulkSs
68
62
  postTestImpressionsBulk: IPostTestImpressionsBulk
69
63
  postTestImpressionsCount: IPostTestImpressionsCount
70
64
  postMetricsConfig: IPostMetricsConfig
@@ -1,4 +1,4 @@
1
- import { SplitIO } from '../types';
1
+ import { PreloadedData } from './types';
2
2
  import { DEFAULT_CACHE_EXPIRATION_IN_MILLIS } from '../utils/constants/browser';
3
3
  import { DataLoader, ISegmentsCacheSync, ISplitsCacheSync } from './types';
4
4
 
@@ -9,7 +9,7 @@ import { DataLoader, ISegmentsCacheSync, ISplitsCacheSync } from './types';
9
9
  * and extended with a `mySegmentsData` property.
10
10
  * @returns function to preload the storage
11
11
  */
12
- export function dataLoaderFactory(preloadedData: SplitIO.PreloadedData): DataLoader {
12
+ export function dataLoaderFactory(preloadedData: PreloadedData): DataLoader {
13
13
 
14
14
  /**
15
15
  * Storage-agnostic adaptation of `loadDataIntoLocalStorage` function
@@ -1,4 +1,4 @@
1
- import { ILogger } from '../../logger/types';
1
+ import { ILogger } from '../../types';
2
2
  import { AbstractSegmentsCacheSync } from '../AbstractSegmentsCacheSync';
3
3
  import { KeyBuilderCS } from '../KeyBuilderCS';
4
4
  import { LOG_PREFIX, DEFINED } from './constants';
@@ -1,8 +1,8 @@
1
- import { ISplit, ISplitFiltersValidation } from '../../dtos/types';
1
+ import { ISplit } from '../../dtos/types';
2
2
  import { AbstractSplitsCacheSync, usesSegments } from '../AbstractSplitsCacheSync';
3
3
  import { isFiniteNumber, toNumber, isNaNNumber } from '../../utils/lang';
4
4
  import { KeyBuilderCS } from '../KeyBuilderCS';
5
- import { ILogger } from '../../logger/types';
5
+ import { ILogger, ISplitFiltersValidation } from '../../types';
6
6
  import { LOG_PREFIX } from './constants';
7
7
 
8
8
  /**
@@ -1,7 +1,8 @@
1
1
  import { ImpressionsCacheInMemory } from '../inMemory/ImpressionsCacheInMemory';
2
2
  import { ImpressionCountsCacheInMemory } from '../inMemory/ImpressionCountsCacheInMemory';
3
3
  import { EventsCacheInMemory } from '../inMemory/EventsCacheInMemory';
4
- import { IStorageFactoryParams, IStorageSync, IStorageSyncFactory } from '../types';
4
+ import { IStorageFactoryParams, IStorageSync } from '../types';
5
+ import { StorageSyncFactory } from '../../types';
5
6
  import { validatePrefix } from '../KeyBuilder';
6
7
  import { KeyBuilderCS } from '../KeyBuilderCS';
7
8
  import { isLocalStorageAvailable } from '../../utils/env/isLocalStorageAvailable';
@@ -22,7 +23,7 @@ export interface InLocalStorageOptions {
22
23
  /**
23
24
  * InLocal storage factory for standalone client-side SplitFactory
24
25
  */
25
- export function InLocalStorage(options: InLocalStorageOptions = {}): IStorageSyncFactory {
26
+ export function InLocalStorage(options: InLocalStorageOptions = {}): StorageSyncFactory {
26
27
 
27
28
  const prefix = validatePrefix(options.prefix);
28
29
 
@@ -1,35 +1,36 @@
1
+ import { AttributeType } from '../../types';
1
2
  import { objectAssign } from '../../utils/lang/objectAssign';
2
3
 
3
4
  export class AttributesCacheInMemory {
4
5
 
5
- private attributesCache: Record<string, Object> = {};
6
+ private attributesCache: Record<string, AttributeType> = {};
6
7
 
7
8
 
8
9
  /**
9
10
  * Create or update the value for the given attribute
10
- *
11
+ *
11
12
  * @param {string} attributeName attribute name
12
13
  * @param {Object} attributeValue attribute value
13
- * @returns {boolean} the attribute was stored
14
+ * @returns {boolean} the attribute was stored
14
15
  */
15
- setAttribute(attributeName: string, attributeValue: Object): boolean {
16
+ setAttribute(attributeName: string, attributeValue: AttributeType): boolean {
16
17
  this.attributesCache[attributeName] = attributeValue;
17
18
  return true;
18
19
  }
19
20
 
20
21
  /**
21
22
  * Retrieves the value of a given attribute
22
- *
23
+ *
23
24
  * @param {string} attributeName attribute name
24
25
  * @returns {Object?} stored attribute value
25
26
  */
26
- getAttribute(attributeName: string): Object {
27
+ getAttribute(attributeName: string): AttributeType {
27
28
  return this.attributesCache[attributeName];
28
29
  }
29
30
 
30
31
  /**
31
32
  * Create or update all the given attributes
32
- *
33
+ *
33
34
  * @param {[string, Object]} attributes attributes to create or update
34
35
  * @returns {boolean} attributes were stored
35
36
  */
@@ -40,16 +41,16 @@ export class AttributesCacheInMemory {
40
41
 
41
42
  /**
42
43
  * Retrieve the full attributes map
43
- *
44
- * @returns {Map<string, Object>} stored attributes
44
+ *
45
+ * @returns {Map<string, AttributeType>} stored attributes
45
46
  */
46
- getAll(): Record<string, Object> {
47
+ getAll(): Record<string, AttributeType> {
47
48
  return this.attributesCache;
48
49
  }
49
50
 
50
51
  /**
51
52
  * Removes a given attribute from the map
52
- *
53
+ *
53
54
  * @param {string} attributeName attribute to remove
54
55
  * @returns {boolean} attribute removed
55
56
  */
@@ -63,7 +64,7 @@ export class AttributesCacheInMemory {
63
64
 
64
65
  /**
65
66
  * Clears all attributes stored in the SDK
66
- *
67
+ *
67
68
  */
68
69
  clear() {
69
70
  this.attributesCache = {};
@@ -1,4 +1,4 @@
1
- import { SplitIO } from '../../types';
1
+ import { EventData } from '../../types';
2
2
  import { IEventsCacheSync } from '../types';
3
3
 
4
4
  const MAX_QUEUE_BYTE_SIZE = 5 * 1024 * 1024; // 5M
@@ -7,7 +7,7 @@ export class EventsCacheInMemory implements IEventsCacheSync {
7
7
 
8
8
  private onFullQueue?: () => void;
9
9
  private readonly maxQueue: number;
10
- private queue: SplitIO.EventData[];
10
+ private queue: EventData[];
11
11
  private queueByteSize: number;
12
12
 
13
13
  /**
@@ -28,7 +28,7 @@ export class EventsCacheInMemory implements IEventsCacheSync {
28
28
  /**
29
29
  * Add a new event object at the end of the queue.
30
30
  */
31
- track(data: SplitIO.EventData, size = 0) {
31
+ track(data: EventData, size = 0) {
32
32
  this.queueByteSize += size;
33
33
  this.queue.push(data);
34
34
 
@@ -48,7 +48,7 @@ export class EventsCacheInMemory implements IEventsCacheSync {
48
48
  /**
49
49
  * Pop the collected data, used as payload for posting.
50
50
  */
51
- pop(toMerge?: SplitIO.EventData[]) {
51
+ pop(toMerge?: EventData[]) {
52
52
  const data = this.queue;
53
53
  this.clear();
54
54
  return toMerge ? toMerge.concat(data) : data;
@@ -1,8 +1,8 @@
1
1
  import { IEventsCacheAsync } from '../types';
2
2
  import { IMetadata } from '../../dtos/types';
3
3
  import { Redis } from 'ioredis';
4
- import { SplitIO } from '../../types';
5
- import { ILogger } from '../../logger/types';
4
+ import { EventData } from '../../types';
5
+ import { ILogger } from '../../types';
6
6
  import { LOG_PREFIX } from './constants';
7
7
  import { StoredEventWithMetadata } from '../../sync/submitters/types';
8
8
 
@@ -24,7 +24,7 @@ export class EventsCacheInRedis implements IEventsCacheAsync {
24
24
  * Add a new event object into the queue.
25
25
  * Unlike `impressions::track`, result promise is never rejected.
26
26
  */
27
- track(eventData: SplitIO.EventData): Promise<boolean> {
27
+ track(eventData: EventData): Promise<boolean> {
28
28
  return this.redis.rpush(
29
29
  this.key,
30
30
  this._toJSON(eventData)
@@ -40,7 +40,7 @@ export class EventsCacheInRedis implements IEventsCacheAsync {
40
40
  /**
41
41
  * Generates the JSON as we'll store it on Redis.
42
42
  */
43
- private _toJSON(eventData: SplitIO.EventData): string {
43
+ private _toJSON(eventData: EventData): string {
44
44
  return JSON.stringify({
45
45
  m: this.metadata,
46
46
  e: eventData
@@ -3,7 +3,7 @@ import { IMetadata } from '../../dtos/types';
3
3
  import { ImpressionDTO } from '../../types';
4
4
  import { Redis } from 'ioredis';
5
5
  import { StoredImpressionWithMetadata } from '../../sync/submitters/types';
6
- import { ILogger } from '../../logger/types';
6
+ import { ILogger } from '../../types';
7
7
 
8
8
  const IMPRESSIONS_TTL_REFRESH = 3600; // 1 hr
9
9
 
@@ -1,5 +1,5 @@
1
1
  import ioredis from 'ioredis';
2
- import { ILogger } from '../../logger/types';
2
+ import { ILogger } from '../../types';
3
3
  import { merge, isString } from '../../utils/lang';
4
4
  import { _Set, setToArray, ISet } from '../../utils/lang/sets';
5
5
  import { thenable } from '../../utils/promise/thenable';
@@ -1,5 +1,5 @@
1
1
  import { Redis } from 'ioredis';
2
- import { ILogger } from '../../logger/types';
2
+ import { ILogger } from '../../types';
3
3
  import { isNaNNumber } from '../../utils/lang';
4
4
  import { LOG_PREFIX } from '../inLocalStorage/constants';
5
5
  import { KeyBuilderSS } from '../KeyBuilderSS';
@@ -1,7 +1,7 @@
1
1
  import { isFiniteNumber, isNaNNumber } from '../../utils/lang';
2
2
  import { KeyBuilderSS } from '../KeyBuilderSS';
3
3
  import { Redis } from 'ioredis';
4
- import { ILogger } from '../../logger/types';
4
+ import { ILogger } from '../../types';
5
5
  import { LOG_PREFIX } from './constants';
6
6
  import { ISplit } from '../../dtos/types';
7
7
  import { AbstractSplitsCacheAsync } from '../AbstractSplitsCacheAsync';
@@ -1,4 +1,4 @@
1
- import { ILogger } from '../../logger/types';
1
+ import { ILogger } from '../../types';
2
2
  import { Method } from '../../sync/submitters/types';
3
3
  import { KeyBuilderSS } from '../KeyBuilderSS';
4
4
  import { ITelemetryCacheAsync } from '../types';
@@ -1,5 +1,6 @@
1
1
  import { RedisAdapter } from './RedisAdapter';
2
- import { IStorageAsync, IStorageAsyncFactory, IStorageFactoryParams } from '../types';
2
+ import { IStorageAsync, IStorageFactoryParams } from '../types';
3
+ import { StorageAsyncFactory } from '../../types';
3
4
  import { validatePrefix } from '../KeyBuilder';
4
5
  import { KeyBuilderSS } from '../KeyBuilderSS';
5
6
  import { SplitsCacheInRedis } from './SplitsCacheInRedis';
@@ -18,7 +19,7 @@ export interface InRedisStorageOptions {
18
19
  * InRedis storage factory for consumer server-side SplitFactory, that uses `Ioredis` Redis client for Node.
19
20
  * @see {@link https://www.npmjs.com/package/ioredis}
20
21
  */
21
- export function InRedisStorage(options: InRedisStorageOptions = {}): IStorageAsyncFactory {
22
+ export function InRedisStorage(options: InRedisStorageOptions = {}): StorageAsyncFactory {
22
23
 
23
24
  const prefix = validatePrefix(options.prefix);
24
25
 
@@ -1,7 +1,7 @@
1
1
  import { IPluggableStorageWrapper, IEventsCacheAsync } from '../types';
2
2
  import { IMetadata } from '../../dtos/types';
3
- import { SplitIO } from '../../types';
4
- import { ILogger } from '../../logger/types';
3
+ import { EventData } from '../../types';
4
+ import { ILogger } from '../../types';
5
5
  import { LOG_PREFIX } from './constants';
6
6
  import { StoredEventWithMetadata } from '../../sync/submitters/types';
7
7
 
@@ -25,7 +25,7 @@ export class EventsCachePluggable implements IEventsCacheAsync {
25
25
  * @returns A promise that is resolved with a boolean value indicating if the push operation succeeded or failed.
26
26
  * Unlike `impressions::track`, The promise will never be rejected.
27
27
  */
28
- track(eventData: SplitIO.EventData): Promise<boolean> {
28
+ track(eventData: EventData): Promise<boolean> {
29
29
  return this.wrapper.pushItems(
30
30
  this.key,
31
31
  [this._toJSON(eventData)]
@@ -38,7 +38,7 @@ export class EventsCachePluggable implements IEventsCacheAsync {
38
38
  });
39
39
  }
40
40
 
41
- private _toJSON(eventData: SplitIO.EventData): string {
41
+ private _toJSON(eventData: EventData): string {
42
42
  return JSON.stringify({
43
43
  m: this.metadata,
44
44
  e: eventData
@@ -1,7 +1,7 @@
1
1
  import { IPluggableStorageWrapper, IImpressionsCacheAsync } from '../types';
2
2
  import { IMetadata } from '../../dtos/types';
3
3
  import { ImpressionDTO } from '../../types';
4
- import { ILogger } from '../../logger/types';
4
+ import { ILogger } from '../../types';
5
5
  import { StoredImpressionWithMetadata } from '../../sync/submitters/types';
6
6
 
7
7
  export class ImpressionsCachePluggable implements IImpressionsCacheAsync {
@@ -3,7 +3,7 @@
3
3
  import { isNaNNumber } from '../../utils/lang';
4
4
  import { KeyBuilderSS } from '../KeyBuilderSS';
5
5
  import { IPluggableStorageWrapper, ISegmentsCacheAsync } from '../types';
6
- import { ILogger } from '../../logger/types';
6
+ import { ILogger } from '../../types';
7
7
  import { LOG_PREFIX } from './constants';
8
8
  import { _Set } from '../../utils/lang/sets';
9
9
 
@@ -1,7 +1,7 @@
1
1
  import { isFiniteNumber, isNaNNumber } from '../../utils/lang';
2
2
  import { KeyBuilder } from '../KeyBuilder';
3
3
  import { IPluggableStorageWrapper } from '../types';
4
- import { ILogger } from '../../logger/types';
4
+ import { ILogger } from '../../types';
5
5
  import { ISplit } from '../../dtos/types';
6
6
  import { LOG_PREFIX } from './constants';
7
7
  import { AbstractSplitsCacheAsync } from '../AbstractSplitsCacheAsync';
@@ -1,4 +1,4 @@
1
- import { ILogger } from '../../logger/types';
1
+ import { ILogger } from '../../types';
2
2
  import { Method } from '../../sync/submitters/types';
3
3
  import { KeyBuilderSS } from '../KeyBuilderSS';
4
4
  import { IPluggableStorageWrapper, ITelemetryCacheAsync } from '../types';
@@ -1,5 +1,5 @@
1
- import { IPluggableStorageWrapper, IStorageAsync, IStorageAsyncFactory, IStorageFactoryParams } from '../types';
2
-
1
+ import { IPluggableStorageWrapper, IStorageAsync, IStorageFactoryParams } from '../types';
2
+ import { StorageAsyncFactory } from '../../types';
3
3
  import { KeyBuilderSS } from '../KeyBuilderSS';
4
4
  import { SplitsCachePluggable } from './SplitsCachePluggable';
5
5
  import { SegmentsCachePluggable } from './SegmentsCachePluggable';
@@ -58,7 +58,7 @@ function promisifyEventsTrack(events: any) {
58
58
  /**
59
59
  * Pluggable storage factory for consumer server-side & client-side SplitFactory.
60
60
  */
61
- export function PluggableStorage(options: PluggableStorageOptions): IStorageAsyncFactory {
61
+ export function PluggableStorage(options: PluggableStorageOptions): StorageAsyncFactory {
62
62
 
63
63
  validatePluggableStorageOptions(options);
64
64
 
@@ -1,4 +1,4 @@
1
- import { ILogger } from '../../logger/types';
1
+ import { ILogger } from '../../types';
2
2
  import { IPluggableStorageWrapper } from '../types';
3
3
  import { LOG_PREFIX } from './constants';
4
4