@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
@@ -1,4 +1,4 @@
1
- import { StorageType } from '../../storages/types';
1
+ import { StorageType } from '../../types';
2
2
  import { SDKMode } from '../../types';
3
3
 
4
4
  // Special treatments
@@ -19,7 +19,6 @@ export const SPLIT_EVENT = 'EVENT';
19
19
  // Impression collection modes
20
20
  export const DEBUG = 'DEBUG';
21
21
  export const OPTIMIZED = 'OPTIMIZED';
22
- export const NONE = 'NONE';
23
22
 
24
23
  // SDK Modes
25
24
  export const LOCALHOST_MODE: SDKMode = 'localhost';
@@ -1,5 +1,5 @@
1
1
  import { ERROR_NULL, ERROR_EMPTY, ERROR_INVALID, WARN_API_KEY, LOG_PREFIX_INSTANTIATION } from '../../logger/constants';
2
- import { ILogger } from '../../logger/types';
2
+ import { ILogger } from '../../types';
3
3
  import { isString } from '../lang';
4
4
 
5
5
  const item = 'api_key';
@@ -1,5 +1,5 @@
1
1
  import { isString, isFiniteNumber, isBoolean } from '../../utils/lang';
2
- import { ILogger } from '../../logger/types';
2
+ import { ILogger } from '../../types';
3
3
 
4
4
  export function validateAttribute(log: ILogger, attributeKey: string, attributeValue: Object, method: string): boolean {
5
5
  if (!isString(attributeKey) || attributeKey.length === 0) {
@@ -1,10 +1,10 @@
1
1
  import { isObject } from '../lang';
2
- import { SplitIO } from '../../types';
3
- import { ILogger } from '../../logger/types';
2
+ import { Attributes } from '../../types';
3
+ import { ILogger } from '../../types';
4
4
  import { validateAttribute } from './attribute';
5
5
  import { ERROR_NOT_PLAIN_OBJECT } from '../../logger/constants';
6
6
 
7
- export function validateAttributes(log: ILogger, maybeAttrs: any, method: string): SplitIO.Attributes | undefined | false {
7
+ export function validateAttributes(log: ILogger, maybeAttrs: any, method: string): Attributes | undefined | false {
8
8
  // Attributes are optional
9
9
  if (maybeAttrs == undefined || isObject(maybeAttrs)) // eslint-disable-line eqeqeq
10
10
  return maybeAttrs;
@@ -1,5 +1,5 @@
1
1
  import { ERROR_EVENT_TYPE_FORMAT, ERROR_NULL, ERROR_INVALID, ERROR_EMPTY } from '../../logger/constants';
2
- import { ILogger } from '../../logger/types';
2
+ import { ILogger } from '../../types';
3
3
  import { isString } from '../lang';
4
4
 
5
5
  const EVENT_TYPE_REGEX = /^[a-zA-Z0-9][-_.:a-zA-Z0-9]{0,79}$/;
@@ -1,7 +1,7 @@
1
1
  import { isObject, isString, isFiniteNumber, isBoolean } from '../lang';
2
2
  import { objectAssign } from '../lang/objectAssign';
3
- import { SplitIO } from '../../types';
4
- import { ILogger } from '../../logger/types';
3
+ import { Properties } from '../../types';
4
+ import { ILogger } from '../../types';
5
5
  import { ERROR_NOT_PLAIN_OBJECT, ERROR_SIZE_EXCEEDED, WARN_SETTING_NULL, WARN_TRIMMING_PROPERTIES } from '../../logger/constants';
6
6
 
7
7
  const ECMA_SIZES = {
@@ -14,7 +14,7 @@ const MAX_PROPERTIES_AMOUNT = 300;
14
14
  const MAX_EVENT_SIZE = 1024 * 32;
15
15
  const BASE_EVENT_SIZE = 1024; // We assume 1kb events without properties (avg measured)
16
16
 
17
- export function validateEventProperties(log: ILogger, maybeProperties: any, method: string): { properties: SplitIO.Properties | null | false, size: number } {
17
+ export function validateEventProperties(log: ILogger, maybeProperties: any, method: string): { properties: Properties | null | false, size: number } {
18
18
  if (maybeProperties == undefined) return { properties: null, size: BASE_EVENT_SIZE }; // eslint-disable-line eqeqeq
19
19
 
20
20
  if (!isObject(maybeProperties)) {
@@ -1,5 +1,5 @@
1
1
  import { ERROR_NOT_FINITE } from '../../logger/constants';
2
- import { ILogger } from '../../logger/types';
2
+ import { ILogger } from '../../types';
3
3
  import { isFiniteNumber } from '../lang';
4
4
 
5
5
  export function validateEventValue(log: ILogger, maybeValue: any, method: string): number | false {
@@ -1,5 +1,5 @@
1
1
  import { ERROR_CLIENT_DESTROYED, CLIENT_NOT_READY } from '../../logger/constants';
2
- import { ILogger } from '../../logger/types';
2
+ import { ILogger } from '../../types';
3
3
  import { IReadinessManager } from '../../readiness/types';
4
4
 
5
5
  export function validateIfNotDestroyed(log: ILogger, readinessManager: IReadinessManager, method: string): boolean {
@@ -1,6 +1,6 @@
1
1
  import { isObject, isString, isFiniteNumber, toString } from '../lang';
2
- import { SplitIO } from '../../types';
3
- import { ILogger } from '../../logger/types';
2
+ import { SplitKey } from '../../types';
3
+ import { ILogger } from '../../types';
4
4
  import { ERROR_NULL, WARN_CONVERTING, ERROR_EMPTY, ERROR_TOO_LONG, ERROR_INVALID, ERROR_INVALID_KEY_OBJECT } from '../../logger/constants';
5
5
 
6
6
  const KEY_MAX_LENGTH = 250;
@@ -33,7 +33,7 @@ function validateKeyValue(log: ILogger, maybeKey: any, method: string, type: str
33
33
  return false;
34
34
  }
35
35
 
36
- export function validateKey(log: ILogger, maybeKey: any, method: string): SplitIO.SplitKey | false {
36
+ export function validateKey(log: ILogger, maybeKey: any, method: string): SplitKey | false {
37
37
  if (isObject(maybeKey)) {
38
38
  // Validate key object
39
39
  const matchingKey = validateKeyValue(log, maybeKey.matchingKey, method, 'matchingKey');
@@ -1,7 +1,7 @@
1
1
  import { isObject, isString, isFiniteNumber } from '../lang';
2
2
  import { validateSplit } from './split';
3
- import { SplitIO } from '../../types';
4
- import { ILogger } from '../../logger/types';
3
+ import { ILogger } from '../../types';
4
+ import { PreloadedData } from '../../storages/types';
5
5
 
6
6
  function validateTimestampData(log: ILogger, maybeTimestamp: any, method: string, item: string) {
7
7
  if (isFiniteNumber(maybeTimestamp) && maybeTimestamp > -1) return true;
@@ -42,7 +42,7 @@ function validateSegmentsData(log: ILogger, maybeSegmentsData: any, method: stri
42
42
  return false;
43
43
  }
44
44
 
45
- export function validatePreloadedData(log: ILogger, maybePreloadedData: any, method: string): maybePreloadedData is SplitIO.PreloadedData {
45
+ export function validatePreloadedData(log: ILogger, maybePreloadedData: any, method: string): maybePreloadedData is PreloadedData {
46
46
  if (!isObject(maybePreloadedData)) {
47
47
  log.error(`${method}: preloadedData must be an object.`);
48
48
  } else if (
@@ -1,5 +1,5 @@
1
1
  import { ERROR_NULL, ERROR_INVALID, WARN_TRIMMING, ERROR_EMPTY } from '../../logger/constants';
2
- import { ILogger } from '../../logger/types';
2
+ import { ILogger } from '../../types';
3
3
  import { isString } from '../lang';
4
4
 
5
5
  // include BOM and nbsp
@@ -1,6 +1,6 @@
1
1
  import { SPLIT_NOT_FOUND } from '../labels';
2
2
  import { IReadinessManager } from '../../readiness/types';
3
- import { ILogger } from '../../logger/types';
3
+ import { ILogger } from '../../types';
4
4
  import { WARN_NOT_EXISTENT_SPLIT } from '../../logger/constants';
5
5
 
6
6
  /**
@@ -1,5 +1,5 @@
1
1
  import { ERROR_EMPTY_ARRAY } from '../../logger/constants';
2
- import { ILogger } from '../../logger/types';
2
+ import { ILogger } from '../../types';
3
3
  import { uniq } from '../lang';
4
4
  import { validateSplit } from './split';
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { ERROR_NULL, ERROR_INVALID, ERROR_EMPTY, WARN_LOWERCASE_TRAFFIC_TYPE } from '../../logger/constants';
2
- import { ILogger } from '../../logger/types';
2
+ import { ILogger } from '../../types';
3
3
  import { isString } from '../lang';
4
4
 
5
5
  const CAPITAL_LETTERS_REGEX = /[A-Z]/;
@@ -4,7 +4,7 @@ import { ISplitsCacheBase } from '../../storages/types';
4
4
  import { IReadinessManager } from '../../readiness/types';
5
5
  import { SDKMode } from '../../types';
6
6
  import { MaybeThenable } from '../../dtos/types';
7
- import { ILogger } from '../../logger/types';
7
+ import { ILogger } from '../../types';
8
8
  import { WARN_NOT_EXISTENT_TT } from '../../logger/constants';
9
9
 
10
10
  function logTTExistanceWarning(log: ILogger, maybeTT: string, method: string) {
@@ -1,29 +1,29 @@
1
- import { SplitIO } from '../../types';
1
+ import { SplitKey, SplitKeyObject } from '../../types';
2
2
  import { isObject } from '../lang';
3
3
 
4
- // function isSplitKeyObject(key: any): key is SplitIO.SplitKeyObject {
4
+ // function isSplitKeyObject(key: any): key is SplitKeyObject {
5
5
  // return key !== undefined && key !== null && typeof key.matchingKey === 'string';
6
6
  // }
7
7
 
8
8
  // returns the matchingKey if the Key is defined as an object or the key itself if it is a string
9
- export function getMatching(key: SplitIO.SplitKey): string {
10
- return isObject(key) ? (key as SplitIO.SplitKeyObject).matchingKey : key as string;
9
+ export function getMatching(key?: SplitKey): string {
10
+ return isObject(key) ? (key as SplitKeyObject).matchingKey : key as string;
11
11
  }
12
12
 
13
13
  // if the key is a string, there's no bucketingKey (undefined)
14
- export function getBucketing(key: SplitIO.SplitKey): string | undefined {
15
- return isObject(key) ? (key as SplitIO.SplitKeyObject).bucketingKey : undefined;
14
+ export function getBucketing(key: SplitKey): string | undefined {
15
+ return isObject(key) ? (key as SplitKeyObject).bucketingKey : undefined;
16
16
  }
17
17
 
18
18
  /**
19
19
  * Verify type of key and return a valid object key used for get treatment for a
20
20
  * specific split.
21
21
  */
22
- export function keyParser(key: SplitIO.SplitKey): SplitIO.SplitKeyObject {
22
+ export function keyParser(key: SplitKey): SplitKeyObject {
23
23
  if (isObject(key)) {
24
24
  return {
25
- matchingKey: (key as SplitIO.SplitKeyObject).matchingKey,
26
- bucketingKey: (key as SplitIO.SplitKeyObject).bucketingKey
25
+ matchingKey: (key as SplitKeyObject).matchingKey,
26
+ bucketingKey: (key as SplitKeyObject).bucketingKey
27
27
  };
28
28
  } else {
29
29
  return {
@@ -1,6 +1,5 @@
1
1
  import { ERROR_INVALID_CONFIG_PARAM } from '../../logger/constants';
2
- import { ILogger } from '../../logger/types';
3
- import { ConsentStatus } from '../../types';
2
+ import { ConsentStatus, ILogger } from '../../types';
4
3
  import { CONSENT_DECLINED, CONSENT_GRANTED, CONSENT_UNKNOWN } from '../constants';
5
4
  import { stringToUpperCase } from '../lang';
6
5
 
@@ -1,14 +1,14 @@
1
1
  import { ERROR_INVALID_CONFIG_PARAM } from '../../logger/constants';
2
- import { ILogger } from '../../logger/types';
3
- import { SplitIO } from '../../types';
4
- import { DEBUG, OPTIMIZED, NONE } from '../constants';
2
+ import { ILogger } from '../../types';
3
+ import { ImpressionsMode } from '../../types';
4
+ import { DEBUG, OPTIMIZED } from '../constants';
5
5
  import { stringToUpperCase } from '../lang';
6
6
 
7
- export function validImpressionsMode(log: ILogger, impressionsMode: any): SplitIO.ImpressionsMode {
7
+ export function validImpressionsMode(log: ILogger, impressionsMode: any): ImpressionsMode {
8
8
  impressionsMode = stringToUpperCase(impressionsMode);
9
9
 
10
- if ([DEBUG, OPTIMIZED, NONE].indexOf(impressionsMode) > -1) return impressionsMode;
10
+ if ([DEBUG, OPTIMIZED].indexOf(impressionsMode) > -1) return impressionsMode;
11
11
 
12
- log.error(ERROR_INVALID_CONFIG_PARAM, ['impressionsMode', [DEBUG, OPTIMIZED, NONE], OPTIMIZED]);
12
+ log.error(ERROR_INVALID_CONFIG_PARAM, ['impressionsMode', [DEBUG, OPTIMIZED], OPTIMIZED]);
13
13
  return OPTIMIZED;
14
14
  }
@@ -36,8 +36,6 @@ export const base = {
36
36
  telemetryRefreshRate: 3600,
37
37
  // publish evaluations each 300 sec (default value for OPTIMIZED impressions mode)
38
38
  impressionsRefreshRate: 300,
39
- // publish unique Keys each 900 sec (15 min)
40
- uniqueKeysRefreshRate: 900,
41
39
  // fetch offline changes each 15 sec
42
40
  offlineRefreshRate: 15,
43
41
  // publish events every 60 seconds after the first flush
@@ -132,13 +130,11 @@ export function settingsValidation(config: unknown, validationParams: ISettingsV
132
130
  scheduler.segmentsRefreshRate = fromSecondsToMillis(scheduler.segmentsRefreshRate);
133
131
  scheduler.offlineRefreshRate = fromSecondsToMillis(scheduler.offlineRefreshRate);
134
132
  scheduler.eventsPushRate = fromSecondsToMillis(scheduler.eventsPushRate);
135
- scheduler.uniqueKeysRefreshRate = fromSecondsToMillis(scheduler.uniqueKeysRefreshRate);
136
133
  scheduler.telemetryRefreshRate = fromSecondsToMillis(validateMinValue('telemetryRefreshRate', scheduler.telemetryRefreshRate, 60));
137
134
 
138
135
  // Default impressionsRefreshRate for DEBUG mode is 60 secs
139
136
  if (get(config, 'scheduler.impressionsRefreshRate') === undefined && withDefaults.sync.impressionsMode === DEBUG) scheduler.impressionsRefreshRate = 60;
140
137
  scheduler.impressionsRefreshRate = fromSecondsToMillis(scheduler.impressionsRefreshRate);
141
-
142
138
 
143
139
  // Log deprecation for old telemetry param
144
140
  if (scheduler.metricsRefreshRate) log.warn('`metricsRefreshRate` will be deprecated soon. For configuring telemetry rates, update `telemetryRefreshRate` value in configs');
@@ -204,6 +200,7 @@ export function settingsValidation(config: unknown, validationParams: ISettingsV
204
200
  // validate the `splitFilters` settings and parse splits query
205
201
  const splitFiltersValidation = validateSplitFilters(log, withDefaults.sync.splitFilters, withDefaults.mode);
206
202
  withDefaults.sync.splitFilters = splitFiltersValidation.validFilters;
203
+ // @ts-ignore
207
204
  withDefaults.sync.__splitFiltersValidation = splitFiltersValidation;
208
205
 
209
206
  // ensure a valid user consent value
@@ -1,5 +1,5 @@
1
1
  import { WARN_INTEGRATION_INVALID } from '../../../logger/constants';
2
- import { ILogger } from '../../../logger/types';
2
+ import { ILogger } from '../../../types';
3
3
 
4
4
  /**
5
5
  * This function validates `settings.integrations` object
@@ -1,6 +1,6 @@
1
1
  import { validateIntegrations } from './common';
2
2
  import { isString } from '../../lang';
3
- import { ILogger } from '../../../logger/types';
3
+ import { ILogger } from '../../../types';
4
4
 
5
5
  /**
6
6
  * This function validates `settings.integrations` object that consists of a list of configuration items, used by the isomorphic JS SDK.
@@ -1,6 +1,5 @@
1
- import { ISettings } from '../../../types';
1
+ import { ISettings, ILogger } from '../../../types';
2
2
  import { validateIntegrations } from './common';
3
- import { ILogger } from '../../../logger/types';
4
3
 
5
4
  /**
6
5
  * This function validates `settings.integrations` object that consists of a list of pluggable integration factories.
@@ -1,5 +1,4 @@
1
- import { ILogger } from '../../../logger/types';
2
- import { SDKMode, } from '../../../types';
1
+ import { SDKMode, ILogger } from '../../../types';
3
2
  import { LocalhostFromObject } from '../../../sync/offline/LocalhostFromObject';
4
3
  import { validateLocalhost } from './pluggable';
5
4
 
@@ -1,6 +1,5 @@
1
1
  import { ERROR_LOCALHOST_MODULE_REQUIRED } from '../../../logger/constants';
2
- import { ILogger } from '../../../logger/types';
3
- import { SDKMode, } from '../../../types';
2
+ import { SDKMode, ILogger } from '../../../types';
4
3
  import { LOCALHOST_MODE } from '../../constants';
5
4
 
6
5
  /**
@@ -1,11 +1,10 @@
1
1
  import { isLogLevelString, Logger, LogLevels } from '../../../logger';
2
- import { ILogger } from '../../../logger/types';
3
2
  import { isLocalStorageAvailable } from '../../env/isLocalStorageAvailable';
4
3
  import { isNode } from '../../env/isNode';
5
4
  import { codesDebug } from '../../../logger/messages/debug';
6
5
  import { _Map } from '../../lang/maps';
7
6
  import { getLogLevel } from './commons';
8
- import { LogLevel } from '../../../types';
7
+ import { LogLevel, ILogger } from '../../../types';
9
8
 
10
9
  const allCodes = new _Map(codesDebug);
11
10
 
@@ -1,6 +1,5 @@
1
1
  import { Logger, LogLevels } from '../../../logger';
2
- import { ILogger } from '../../../logger/types';
3
- import { LogLevel } from '../../../types';
2
+ import { LogLevel, ILogger } from '../../../types';
4
3
  import { getLogLevel } from './commons';
5
4
 
6
5
  function isLogger(log: any): log is ILogger {
@@ -1,20 +1,18 @@
1
1
  import { STANDALONE_MODE } from '../constants';
2
2
  import { validateSplits } from '../inputValidation/splits';
3
- import { ISplitFiltersValidation } from '../../dtos/types';
4
- import { SplitIO } from '../../types';
5
- import { ILogger } from '../../logger/types';
3
+ import { ISplitFiltersValidation, SplitFilterType, ILogger } from '../../types';
6
4
  import { WARN_SPLITS_FILTER_IGNORED, WARN_SPLITS_FILTER_EMPTY, WARN_SPLITS_FILTER_INVALID, SETTINGS_SPLITS_FILTER, LOG_PREFIX_SETTINGS } from '../../logger/constants';
7
5
 
8
6
  // Split filters metadata.
9
7
  // Ordered according to their precedency when forming the filter query string: `&names=<values>&prefixes=<values>`
10
8
  const FILTERS_METADATA = [
11
9
  {
12
- type: 'byName' as SplitIO.SplitFilterType,
10
+ type: 'byName' as SplitFilterType,
13
11
  maxLength: 400,
14
12
  queryParam: 'names='
15
13
  },
16
14
  {
17
- type: 'byPrefix' as SplitIO.SplitFilterType,
15
+ type: 'byPrefix' as SplitFilterType,
18
16
  maxLength: 50,
19
17
  queryParam: 'prefixes='
20
18
  }
@@ -23,7 +21,7 @@ const FILTERS_METADATA = [
23
21
  /**
24
22
  * Validates that the given value is a valid filter type
25
23
  */
26
- function validateFilterType(maybeFilterType: any): maybeFilterType is SplitIO.SplitFilterType {
24
+ function validateFilterType(maybeFilterType: any): maybeFilterType is SplitFilterType {
27
25
  return FILTERS_METADATA.some(filterMetadata => filterMetadata.type === maybeFilterType);
28
26
  }
29
27
 
@@ -37,7 +35,7 @@ function validateFilterType(maybeFilterType: any): maybeFilterType is SplitIO.Sp
37
35
  *
38
36
  * @throws Error if the sanitized list exceeds the length indicated by `maxLength`
39
37
  */
40
- function validateSplitFilter(log: ILogger, type: SplitIO.SplitFilterType, values: string[], maxLength: number) {
38
+ function validateSplitFilter(log: ILogger, type: SplitFilterType, values: string[], maxLength: number) {
41
39
  // validate and remove invalid and duplicated values
42
40
  let result = validateSplits(log, values, LOG_PREFIX_SETTINGS, `${type} filter`, `${type} filter value`);
43
41
 
@@ -63,7 +61,7 @@ function validateSplitFilter(log: ILogger, type: SplitIO.SplitFilterType, values
63
61
  * @param {Object} groupedFilters object of filters. Each filter must be a list of valid, unique and ordered string values.
64
62
  * @returns null or string with the `split filter query` component of the URL.
65
63
  */
66
- function queryStringBuilder(groupedFilters: Record<SplitIO.SplitFilterType, string[]>) {
64
+ function queryStringBuilder(groupedFilters: Record<SplitFilterType, string[]>) {
67
65
  const queryParams: string[] = [];
68
66
  FILTERS_METADATA.forEach(({ type, queryParam }) => {
69
67
  const filter = groupedFilters[type];
@@ -109,7 +107,7 @@ export function validateSplitFilters(log: ILogger, maybeSplitFilters: any, mode:
109
107
  // Validate filters and group their values by filter type inside `groupedFilters` object
110
108
  res.validFilters = maybeSplitFilters.filter((filter, index) => {
111
109
  if (filter && validateFilterType(filter.type) && Array.isArray(filter.values)) {
112
- res.groupedFilters[filter.type as SplitIO.SplitFilterType] = res.groupedFilters[filter.type as SplitIO.SplitFilterType].concat(filter.values);
110
+ res.groupedFilters[filter.type as SplitFilterType] = res.groupedFilters[filter.type as SplitFilterType].concat(filter.values);
113
111
  return true;
114
112
  } else {
115
113
  log.warn(WARN_SPLITS_FILTER_INVALID, [index]);
@@ -1,6 +1,5 @@
1
1
  import { InMemoryStorageCSFactory } from '../../../storages/inMemory/InMemoryStorageCS';
2
- import { ISettings, SDKMode } from '../../../types';
3
- import { ILogger } from '../../../logger/types';
2
+ import { ISettings, SDKMode, ILogger } from '../../../types';
4
3
  import { ERROR_STORAGE_INVALID } from '../../../logger/constants';
5
4
  import { LOCALHOST_MODE, STANDALONE_MODE, STORAGE_PLUGGABLE, STORAGE_LOCALSTORAGE, STORAGE_MEMORY } from '../../../utils/constants';
6
5
  import { IStorageFactoryParams, IStorageSync } from '../../../storages/types';
@@ -1,70 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.uniqueKeysSubmitterFactory = exports.fromUniqueKeysCollectorSs = exports.fromUniqueKeysCollectorCs = void 0;
4
- var sets_1 = require("../../utils/lang/sets");
5
- var submitter_1 = require("./submitter");
6
- /**
7
- * Invert keys for feature to features for key
8
- */
9
- function invertUniqueKeys(uniqueKeys) {
10
- var featureNames = Object.keys(uniqueKeys);
11
- var inverted = {};
12
- for (var i = 0; i < featureNames.length; i++) {
13
- var featureName = featureNames[i];
14
- var featureKeys = (0, sets_1.setToArray)(uniqueKeys[featureName]);
15
- for (var j = 0; j < featureKeys.length; j++) {
16
- var featureKey = featureKeys[j];
17
- if (!inverted[featureKey])
18
- inverted[featureKey] = [];
19
- inverted[featureKey].push(featureName);
20
- }
21
- }
22
- return inverted;
23
- }
24
- /**
25
- * Converts `uniqueKeys` data from cache into request payload for CS.
26
- */
27
- function fromUniqueKeysCollectorCs(uniqueKeys) {
28
- var payload = [];
29
- var featuresPerKey = invertUniqueKeys(uniqueKeys);
30
- var keys = Object.keys(featuresPerKey);
31
- for (var k = 0; k < keys.length; k++) {
32
- var key = keys[k];
33
- var uniqueKeysPayload = {
34
- k: key,
35
- fs: featuresPerKey[key]
36
- };
37
- payload.push(uniqueKeysPayload);
38
- }
39
- return { keys: payload };
40
- }
41
- exports.fromUniqueKeysCollectorCs = fromUniqueKeysCollectorCs;
42
- /**
43
- * Converts `uniqueKeys` data from cache into request payload for SS.
44
- */
45
- function fromUniqueKeysCollectorSs(uniqueKeys) {
46
- var payload = [];
47
- var featureNames = Object.keys(uniqueKeys);
48
- for (var i = 0; i < featureNames.length; i++) {
49
- var featureName = featureNames[i];
50
- var featureKeys = (0, sets_1.setToArray)(uniqueKeys[featureName]);
51
- var uniqueKeysPayload = {
52
- f: featureName,
53
- ks: featureKeys
54
- };
55
- payload.push(uniqueKeysPayload);
56
- }
57
- return { keys: payload };
58
- }
59
- exports.fromUniqueKeysCollectorSs = fromUniqueKeysCollectorSs;
60
- /**
61
- * Submitter that periodically posts impression counts
62
- */
63
- function uniqueKeysSubmitterFactory(params) {
64
- var _a = params.settings, log = _a.log, uniqueKeysRefreshRate = _a.scheduler.uniqueKeysRefreshRate, key = _a.core.key, _b = params.splitApi, postUniqueKeysBulkCs = _b.postUniqueKeysBulkCs, postUniqueKeysBulkSs = _b.postUniqueKeysBulkSs, uniqueKeys = params.storage.uniqueKeys;
65
- var isClientSide = key !== undefined;
66
- var postUniqueKeysBulk = isClientSide ? postUniqueKeysBulkCs : postUniqueKeysBulkSs;
67
- var fromUniqueKeysCollector = isClientSide ? fromUniqueKeysCollectorCs : fromUniqueKeysCollectorSs;
68
- return (0, submitter_1.submitterFactory)(log, postUniqueKeysBulk, uniqueKeys, uniqueKeysRefreshRate, 'unique keys', fromUniqueKeysCollector);
69
- }
70
- exports.uniqueKeysSubmitterFactory = uniqueKeysSubmitterFactory;
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.strategyDebugFactory = void 0;
4
- /**
5
- * Debug strategy for impressions tracker. Wraps impressions to store and adds previousTime if it corresponds
6
- *
7
- * @param impressionsObserver impression observer. Previous time (pt property) is included in impression instances
8
- * @returns IStrategyResult
9
- */
10
- function strategyDebugFactory(impressionsObserver) {
11
- return {
12
- process: function (impressions) {
13
- impressions.forEach(function (impression) {
14
- // Adds previous time if it is enabled
15
- impression.pt = impressionsObserver.testAndSet(impression);
16
- });
17
- return {
18
- impressionsToStore: impressions,
19
- impressionsToListener: impressions,
20
- deduped: 0
21
- };
22
- }
23
- };
24
- }
25
- exports.strategyDebugFactory = strategyDebugFactory;
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.strategyNoneFactory = void 0;
4
- /**
5
- * None strategy for impressions tracker.
6
- *
7
- * @param impressionsCounter cache to save impressions count. impressions will be deduped (OPTIMIZED mode)
8
- * @param uniqueKeysTracker unique keys tracker in charge of tracking the unique keys per split.
9
- * @returns IStrategyResult
10
- */
11
- function strategyNoneFactory(impressionsCounter, uniqueKeysTracker) {
12
- return {
13
- process: function (impressions) {
14
- impressions.forEach(function (impression) {
15
- var now = Date.now();
16
- // Increments impression counter per featureName
17
- impressionsCounter.track(impression.feature, now, 1);
18
- // Keep track by unique key
19
- uniqueKeysTracker.track(impression.feature, impression.keyName);
20
- });
21
- return {
22
- impressionsToStore: [],
23
- impressionsToListener: impressions,
24
- deduped: 0
25
- };
26
- }
27
- };
28
- }
29
- exports.strategyNoneFactory = strategyNoneFactory;
@@ -1,34 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.strategyOptimizedFactory = void 0;
4
- var time_1 = require("../../utils/time");
5
- /**
6
- * Optimized strategy for impressions tracker. Wraps impressions to store and adds previousTime if it corresponds
7
- *
8
- * @param impressionsObserver impression observer. previous time (pt property) is included in impression instances
9
- * @param impressionsCounter cache to save impressions count. impressions will be deduped (OPTIMIZED mode)
10
- * @returns IStrategyResult
11
- */
12
- function strategyOptimizedFactory(impressionsObserver, impressionsCounter) {
13
- return {
14
- process: function (impressions) {
15
- var impressionsToStore = [];
16
- impressions.forEach(function (impression) {
17
- impression.pt = impressionsObserver.testAndSet(impression);
18
- var now = Date.now();
19
- // Increments impression counter per featureName
20
- impressionsCounter.track(impression.feature, now, 1);
21
- // Checks if the impression should be added in queue to be sent
22
- if (!impression.pt || impression.pt < (0, time_1.truncateTimeFrame)(now)) {
23
- impressionsToStore.push(impression);
24
- }
25
- });
26
- return {
27
- impressionsToStore: impressionsToStore,
28
- impressionsToListener: impressions,
29
- deduped: impressions.length - impressionsToStore.length
30
- };
31
- }
32
- };
33
- }
34
- exports.strategyOptimizedFactory = strategyOptimizedFactory;