@splitsoftware/splitio-commons 1.6.2-rc.2 → 1.6.2-rc.3

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 (315) hide show
  1. package/cjs/listeners/browser.js +1 -2
  2. package/cjs/logger/constants.js +1 -2
  3. package/cjs/sdkFactory/index.js +6 -14
  4. package/cjs/services/splitApi.js +1 -20
  5. package/cjs/storages/inLocalStorage/index.js +0 -4
  6. package/cjs/storages/inMemory/InMemoryStorage.js +1 -5
  7. package/cjs/storages/inMemory/InMemoryStorageCS.js +1 -5
  8. package/cjs/sync/submitters/submitterManager.js +0 -3
  9. package/cjs/sync/submitters/telemetrySubmitter.js +0 -1
  10. package/cjs/trackers/impressionsTracker.js +28 -7
  11. package/cjs/utils/constants/index.js +2 -4
  12. package/cjs/utils/key/index.js +1 -1
  13. package/cjs/utils/settingsValidation/impressionsMode.js +2 -2
  14. package/cjs/utils/settingsValidation/index.js +1 -3
  15. package/esm/listeners/browser.js +2 -3
  16. package/esm/logger/constants.js +0 -1
  17. package/esm/sdkFactory/index.js +6 -14
  18. package/esm/services/splitApi.js +1 -20
  19. package/esm/storages/inLocalStorage/index.js +1 -5
  20. package/esm/storages/inMemory/InMemoryStorage.js +2 -6
  21. package/esm/storages/inMemory/InMemoryStorageCS.js +2 -6
  22. package/esm/sync/submitters/submitterManager.js +0 -3
  23. package/esm/sync/submitters/telemetrySubmitter.js +1 -2
  24. package/esm/trackers/impressionsTracker.js +28 -7
  25. package/esm/utils/constants/index.js +0 -2
  26. package/esm/utils/key/index.js +1 -1
  27. package/esm/utils/settingsValidation/impressionsMode.js +3 -3
  28. package/esm/utils/settingsValidation/index.js +1 -3
  29. package/package.json +2 -2
  30. package/src/consent/sdkUserConsent.ts +4 -3
  31. package/src/dtos/types.ts +0 -8
  32. package/src/evaluator/Engine.ts +3 -3
  33. package/src/evaluator/combiners/and.ts +1 -1
  34. package/src/evaluator/combiners/ifelseif.ts +3 -3
  35. package/src/evaluator/condition/engineUtils.ts +1 -1
  36. package/src/evaluator/condition/index.ts +6 -6
  37. package/src/evaluator/index.ts +10 -10
  38. package/src/evaluator/matchers/all.ts +1 -1
  39. package/src/evaluator/matchers/between.ts +1 -1
  40. package/src/evaluator/matchers/boolean.ts +1 -1
  41. package/src/evaluator/matchers/cont_all.ts +1 -1
  42. package/src/evaluator/matchers/cont_any.ts +1 -1
  43. package/src/evaluator/matchers/cont_str.ts +1 -1
  44. package/src/evaluator/matchers/dependency.ts +1 -1
  45. package/src/evaluator/matchers/eq.ts +1 -1
  46. package/src/evaluator/matchers/eq_set.ts +1 -1
  47. package/src/evaluator/matchers/ew.ts +1 -1
  48. package/src/evaluator/matchers/gte.ts +1 -1
  49. package/src/evaluator/matchers/index.ts +1 -1
  50. package/src/evaluator/matchers/lte.ts +1 -1
  51. package/src/evaluator/matchers/part_of.ts +1 -1
  52. package/src/evaluator/matchers/segment.ts +1 -1
  53. package/src/evaluator/matchers/string.ts +1 -1
  54. package/src/evaluator/matchers/sw.ts +1 -1
  55. package/src/evaluator/matchers/whitelist.ts +1 -1
  56. package/src/evaluator/parser/index.ts +3 -3
  57. package/src/evaluator/types.ts +6 -6
  58. package/src/evaluator/value/index.ts +4 -4
  59. package/src/evaluator/value/sanitize.ts +4 -4
  60. package/src/integrations/ga/GaToSplit.ts +6 -6
  61. package/src/integrations/ga/SplitToGa.ts +10 -10
  62. package/src/integrations/ga/types.ts +4 -4
  63. package/src/integrations/pluggable.ts +3 -3
  64. package/src/integrations/types.ts +2 -2
  65. package/src/listeners/browser.ts +2 -3
  66. package/src/logger/.DS_Store +0 -0
  67. package/src/logger/constants.ts +0 -1
  68. package/src/logger/index.ts +3 -3
  69. package/src/logger/sdkLogger.ts +1 -2
  70. package/src/logger/types.ts +0 -16
  71. package/src/readiness/sdkReadinessManager.ts +1 -1
  72. package/src/readiness/types.ts +2 -9
  73. package/src/sdkClient/client.ts +13 -13
  74. package/src/sdkClient/clientAttributesDecoration.ts +9 -9
  75. package/src/sdkClient/clientCS.ts +3 -4
  76. package/src/sdkClient/clientInputValidation.ts +15 -15
  77. package/src/sdkClient/sdkClient.ts +2 -2
  78. package/src/sdkClient/sdkClientMethod.ts +2 -2
  79. package/src/sdkClient/sdkClientMethodCS.ts +9 -9
  80. package/src/sdkClient/sdkClientMethodCSWithTT.ts +9 -9
  81. package/src/sdkFactory/index.ts +8 -18
  82. package/src/sdkFactory/types.ts +8 -11
  83. package/src/sdkManager/index.ts +5 -5
  84. package/src/services/splitApi.ts +1 -22
  85. package/src/services/types.ts +0 -6
  86. package/src/storages/dataLoader.ts +2 -2
  87. package/src/storages/inLocalStorage/MySegmentsCacheInLocal.ts +1 -1
  88. package/src/storages/inLocalStorage/SplitsCacheInLocal.ts +2 -2
  89. package/src/storages/inLocalStorage/index.ts +4 -6
  90. package/src/storages/inMemory/EventsCacheInMemory.ts +4 -4
  91. package/src/storages/inMemory/InMemoryStorage.ts +2 -5
  92. package/src/storages/inMemory/InMemoryStorageCS.ts +2 -6
  93. package/src/storages/inRedis/EventsCacheInRedis.ts +4 -4
  94. package/src/storages/inRedis/ImpressionsCacheInRedis.ts +1 -1
  95. package/src/storages/inRedis/RedisAdapter.ts +1 -1
  96. package/src/storages/inRedis/SegmentsCacheInRedis.ts +1 -1
  97. package/src/storages/inRedis/SplitsCacheInRedis.ts +1 -1
  98. package/src/storages/inRedis/TelemetryCacheInRedis.ts +1 -1
  99. package/src/storages/inRedis/index.ts +3 -2
  100. package/src/storages/pluggable/EventsCachePluggable.ts +4 -4
  101. package/src/storages/pluggable/ImpressionsCachePluggable.ts +1 -1
  102. package/src/storages/pluggable/SegmentsCachePluggable.ts +1 -1
  103. package/src/storages/pluggable/SplitsCachePluggable.ts +1 -1
  104. package/src/storages/pluggable/TelemetryCachePluggable.ts +1 -1
  105. package/src/storages/pluggable/index.ts +3 -3
  106. package/src/storages/pluggable/wrapperAdapter.ts +1 -1
  107. package/src/storages/types.ts +48 -40
  108. package/src/sync/offline/LocalhostFromObject.ts +4 -4
  109. package/src/sync/offline/splitsParser/splitsParserFromSettings.ts +8 -8
  110. package/src/sync/polling/updaters/mySegmentsUpdater.ts +1 -1
  111. package/src/sync/polling/updaters/segmentChangesUpdater.ts +1 -1
  112. package/src/sync/polling/updaters/splitChangesUpdater.ts +1 -1
  113. package/src/sync/streaming/SSEHandler/index.ts +1 -1
  114. package/src/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.ts +1 -1
  115. package/src/sync/streaming/UpdateWorkers/SplitsUpdateWorker.ts +1 -1
  116. package/src/sync/submitters/submitter.ts +1 -1
  117. package/src/sync/submitters/submitterManager.ts +0 -2
  118. package/src/sync/submitters/telemetrySubmitter.ts +3 -4
  119. package/src/sync/submitters/types.ts +3 -22
  120. package/src/sync/syncTask.ts +1 -1
  121. package/src/trackers/eventTracker.ts +3 -3
  122. package/src/trackers/impressionsTracker.ts +38 -15
  123. package/src/trackers/types.ts +4 -30
  124. package/src/types.d.ts +1646 -0
  125. package/src/utils/constants/index.ts +1 -3
  126. package/src/utils/inputValidation/apiKey.ts +1 -1
  127. package/src/utils/inputValidation/attribute.ts +1 -1
  128. package/src/utils/inputValidation/attributes.ts +3 -3
  129. package/src/utils/inputValidation/event.ts +1 -1
  130. package/src/utils/inputValidation/eventProperties.ts +3 -3
  131. package/src/utils/inputValidation/eventValue.ts +1 -1
  132. package/src/utils/inputValidation/isOperational.ts +1 -1
  133. package/src/utils/inputValidation/key.ts +3 -3
  134. package/src/utils/inputValidation/preloadedData.ts +3 -3
  135. package/src/utils/inputValidation/split.ts +1 -1
  136. package/src/utils/inputValidation/splitExistance.ts +1 -1
  137. package/src/utils/inputValidation/splits.ts +1 -1
  138. package/src/utils/inputValidation/trafficType.ts +1 -1
  139. package/src/utils/inputValidation/trafficTypeExistance.ts +1 -1
  140. package/src/utils/key/index.ts +9 -9
  141. package/src/utils/settingsValidation/consent.ts +1 -2
  142. package/src/utils/settingsValidation/impressionsMode.ts +6 -6
  143. package/src/utils/settingsValidation/index.ts +1 -4
  144. package/src/utils/settingsValidation/integrations/common.ts +1 -1
  145. package/src/utils/settingsValidation/integrations/configurable.ts +1 -1
  146. package/src/utils/settingsValidation/integrations/pluggable.ts +1 -2
  147. package/src/utils/settingsValidation/localhost/builtin.ts +1 -2
  148. package/src/utils/settingsValidation/localhost/pluggable.ts +1 -2
  149. package/src/utils/settingsValidation/logger/builtinLogger.ts +1 -2
  150. package/src/utils/settingsValidation/logger/pluggableLogger.ts +1 -2
  151. package/src/utils/settingsValidation/splitFilters.ts +7 -9
  152. package/src/utils/settingsValidation/storage/storageCS.ts +1 -2
  153. package/types/consent/sdkUserConsent.d.ts +2 -9
  154. package/types/dtos/types.d.ts +0 -6
  155. package/types/evaluator/Engine.d.ts +3 -3
  156. package/types/evaluator/combiners/and.d.ts +1 -1
  157. package/types/evaluator/combiners/ifelseif.d.ts +1 -1
  158. package/types/evaluator/condition/engineUtils.d.ts +1 -1
  159. package/types/evaluator/condition/index.d.ts +1 -1
  160. package/types/evaluator/index.d.ts +4 -4
  161. package/types/evaluator/matchers/all.d.ts +1 -1
  162. package/types/evaluator/matchers/between.d.ts +1 -1
  163. package/types/evaluator/matchers/boolean.d.ts +1 -1
  164. package/types/evaluator/matchers/cont_all.d.ts +1 -1
  165. package/types/evaluator/matchers/cont_any.d.ts +1 -1
  166. package/types/evaluator/matchers/cont_str.d.ts +1 -1
  167. package/types/evaluator/matchers/dependency.d.ts +1 -1
  168. package/types/evaluator/matchers/eq.d.ts +1 -1
  169. package/types/evaluator/matchers/eq_set.d.ts +1 -1
  170. package/types/evaluator/matchers/ew.d.ts +1 -1
  171. package/types/evaluator/matchers/gte.d.ts +1 -1
  172. package/types/evaluator/matchers/index.d.ts +1 -1
  173. package/types/evaluator/matchers/lte.d.ts +1 -1
  174. package/types/evaluator/matchers/part_of.d.ts +1 -1
  175. package/types/evaluator/matchers/segment.d.ts +1 -1
  176. package/types/evaluator/matchers/string.d.ts +1 -1
  177. package/types/evaluator/matchers/sw.d.ts +1 -1
  178. package/types/evaluator/matchers/whitelist.d.ts +1 -1
  179. package/types/evaluator/parser/index.d.ts +1 -1
  180. package/types/evaluator/types.d.ts +6 -6
  181. package/types/evaluator/value/index.d.ts +3 -3
  182. package/types/evaluator/value/sanitize.d.ts +3 -3
  183. package/types/integrations/ga/GaToSplit.d.ts +4 -4
  184. package/types/integrations/ga/SplitToGa.d.ts +4 -4
  185. package/types/integrations/ga/types.d.ts +4 -4
  186. package/types/integrations/types.d.ts +2 -2
  187. package/types/logger/constants.d.ts +0 -1
  188. package/types/logger/index.d.ts +3 -5
  189. package/types/logger/sdkLogger.d.ts +1 -2
  190. package/types/logger/types.d.ts +0 -11
  191. package/types/readiness/sdkReadinessManager.d.ts +1 -1
  192. package/types/readiness/types.d.ts +2 -8
  193. package/types/sdkClient/client.d.ts +2 -2
  194. package/types/sdkClient/clientAttributesDecoration.d.ts +8 -8
  195. package/types/sdkClient/clientCS.d.ts +2 -3
  196. package/types/sdkClient/clientInputValidation.d.ts +2 -2
  197. package/types/sdkClient/sdkClient.d.ts +2 -2
  198. package/types/sdkClient/sdkClientMethod.d.ts +2 -2
  199. package/types/sdkClient/sdkClientMethodCS.d.ts +2 -2
  200. package/types/sdkClient/sdkClientMethodCSWithTT.d.ts +2 -2
  201. package/types/sdkFactory/index.d.ts +2 -2
  202. package/types/sdkFactory/types.d.ts +8 -10
  203. package/types/sdkManager/index.d.ts +3 -3
  204. package/types/services/types.d.ts +0 -4
  205. package/types/storages/dataLoader.d.ts +2 -2
  206. package/types/storages/inLocalStorage/MySegmentsCacheInLocal.d.ts +1 -1
  207. package/types/storages/inLocalStorage/SplitsCacheInLocal.d.ts +1 -2
  208. package/types/storages/inLocalStorage/index.d.ts +2 -2
  209. package/types/storages/inMemory/EventsCacheInMemory.d.ts +3 -3
  210. package/types/storages/inMemory/InMemoryStorage.d.ts +1 -1
  211. package/types/storages/inMemory/InMemoryStorageCS.d.ts +1 -1
  212. package/types/storages/inRedis/EventsCacheInRedis.d.ts +3 -3
  213. package/types/storages/inRedis/ImpressionsCacheInRedis.d.ts +1 -1
  214. package/types/storages/inRedis/RedisAdapter.d.ts +1 -1
  215. package/types/storages/inRedis/SegmentsCacheInRedis.d.ts +1 -1
  216. package/types/storages/inRedis/SplitsCacheInRedis.d.ts +1 -1
  217. package/types/storages/inRedis/TelemetryCacheInRedis.d.ts +1 -1
  218. package/types/storages/inRedis/index.d.ts +2 -2
  219. package/types/storages/pluggable/EventsCachePluggable.d.ts +3 -3
  220. package/types/storages/pluggable/ImpressionsCachePluggable.d.ts +1 -1
  221. package/types/storages/pluggable/SegmentsCachePluggable.d.ts +1 -1
  222. package/types/storages/pluggable/SplitsCachePluggable.d.ts +1 -1
  223. package/types/storages/pluggable/TelemetryCachePluggable.d.ts +1 -1
  224. package/types/storages/pluggable/index.d.ts +3 -2
  225. package/types/storages/pluggable/wrapperAdapter.d.ts +1 -1
  226. package/types/storages/types.d.ts +46 -30
  227. package/types/sync/offline/LocalhostFromObject.d.ts +2 -2
  228. package/types/sync/polling/updaters/mySegmentsUpdater.d.ts +1 -1
  229. package/types/sync/polling/updaters/segmentChangesUpdater.d.ts +1 -1
  230. package/types/sync/polling/updaters/splitChangesUpdater.d.ts +1 -1
  231. package/types/sync/streaming/SSEHandler/index.d.ts +1 -1
  232. package/types/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.d.ts +1 -1
  233. package/types/sync/streaming/UpdateWorkers/SplitsUpdateWorker.d.ts +1 -1
  234. package/types/sync/submitters/submitter.d.ts +1 -1
  235. package/types/sync/submitters/types.d.ts +3 -20
  236. package/types/sync/syncTask.d.ts +1 -1
  237. package/types/trackers/impressionsTracker.d.ts +6 -4
  238. package/types/trackers/types.d.ts +4 -25
  239. package/types/utils/constants/index.d.ts +1 -3
  240. package/types/utils/inputValidation/apiKey.d.ts +1 -1
  241. package/types/utils/inputValidation/attribute.d.ts +1 -1
  242. package/types/utils/inputValidation/attributes.d.ts +3 -3
  243. package/types/utils/inputValidation/event.d.ts +1 -1
  244. package/types/utils/inputValidation/eventProperties.d.ts +3 -3
  245. package/types/utils/inputValidation/eventValue.d.ts +1 -1
  246. package/types/utils/inputValidation/isOperational.d.ts +1 -1
  247. package/types/utils/inputValidation/key.d.ts +3 -3
  248. package/types/utils/inputValidation/preloadedData.d.ts +3 -3
  249. package/types/utils/inputValidation/split.d.ts +1 -1
  250. package/types/utils/inputValidation/splitExistance.d.ts +1 -1
  251. package/types/utils/inputValidation/splits.d.ts +1 -1
  252. package/types/utils/inputValidation/trafficType.d.ts +1 -1
  253. package/types/utils/inputValidation/trafficTypeExistance.d.ts +1 -1
  254. package/types/utils/key/index.d.ts +4 -4
  255. package/types/utils/settingsValidation/consent.d.ts +1 -2
  256. package/types/utils/settingsValidation/impressionsMode.d.ts +3 -3
  257. package/types/utils/settingsValidation/index.d.ts +0 -1
  258. package/types/utils/settingsValidation/integrations/common.d.ts +1 -1
  259. package/types/utils/settingsValidation/integrations/configurable.d.ts +1 -1
  260. package/types/utils/settingsValidation/integrations/pluggable.d.ts +1 -2
  261. package/types/utils/settingsValidation/localhost/builtin.d.ts +1 -2
  262. package/types/utils/settingsValidation/localhost/pluggable.d.ts +1 -2
  263. package/types/utils/settingsValidation/logger/builtinLogger.d.ts +1 -1
  264. package/types/utils/settingsValidation/logger/pluggableLogger.d.ts +1 -1
  265. package/types/utils/settingsValidation/splitFilters.d.ts +1 -2
  266. package/types/utils/settingsValidation/storage/storageCS.d.ts +2 -3
  267. package/cjs/storages/inMemory/uniqueKeysCacheInMemory.js +0 -73
  268. package/cjs/storages/inMemory/uniqueKeysCacheInMemoryCS.js +0 -78
  269. package/cjs/sync/submitters/uniqueKeysSubmitter.js +0 -26
  270. package/cjs/trackers/strategy/strategyDebug.js +0 -25
  271. package/cjs/trackers/strategy/strategyNone.js +0 -29
  272. package/cjs/trackers/strategy/strategyOptimized.js +0 -34
  273. package/cjs/trackers/uniqueKeysTracker.js +0 -31
  274. package/cjs/types.js +0 -2
  275. package/esm/storages/inMemory/uniqueKeysCacheInMemory.js +0 -70
  276. package/esm/storages/inMemory/uniqueKeysCacheInMemoryCS.js +0 -75
  277. package/esm/sync/submitters/uniqueKeysSubmitter.js +0 -22
  278. package/esm/trackers/strategy/strategyDebug.js +0 -21
  279. package/esm/trackers/strategy/strategyNone.js +0 -25
  280. package/esm/trackers/strategy/strategyOptimized.js +0 -30
  281. package/esm/trackers/uniqueKeysTracker.js +0 -27
  282. package/esm/types.js +0 -1
  283. package/src/storages/inMemory/uniqueKeysCacheInMemory.ts +0 -83
  284. package/src/storages/inMemory/uniqueKeysCacheInMemoryCS.ts +0 -89
  285. package/src/sync/submitters/uniqueKeysSubmitter.ts +0 -35
  286. package/src/trackers/strategy/strategyDebug.ts +0 -28
  287. package/src/trackers/strategy/strategyNone.ts +0 -34
  288. package/src/trackers/strategy/strategyOptimized.ts +0 -42
  289. package/src/trackers/uniqueKeysTracker.ts +0 -37
  290. package/src/types.ts +0 -1265
  291. package/types/sdkClient/types.d.ts +0 -18
  292. package/types/storages/inMemory/CountsCacheInMemory.d.ts +0 -20
  293. package/types/storages/inMemory/LatenciesCacheInMemory.d.ts +0 -20
  294. package/types/storages/inMemory/uniqueKeysCacheInMemory.d.ts +0 -32
  295. package/types/storages/inMemory/uniqueKeysCacheInMemoryCS.d.ts +0 -37
  296. package/types/storages/inRedis/CountsCacheInRedis.d.ts +0 -9
  297. package/types/storages/inRedis/LatenciesCacheInRedis.d.ts +0 -9
  298. package/types/sync/offline/LocalhostFromFile.d.ts +0 -2
  299. package/types/sync/offline/splitsParser/splitsParserFromFile.d.ts +0 -2
  300. package/types/sync/submitters/eventsSyncTask.d.ts +0 -8
  301. package/types/sync/submitters/impressionCountsSyncTask.d.ts +0 -13
  302. package/types/sync/submitters/impressionsSyncTask.d.ts +0 -14
  303. package/types/sync/submitters/metricsSyncTask.d.ts +0 -12
  304. package/types/sync/submitters/submitterSyncTask.d.ts +0 -10
  305. package/types/sync/submitters/uniqueKeysSubmitter.d.ts +0 -5
  306. package/types/sync/syncTaskComposite.d.ts +0 -5
  307. package/types/trackers/filter/bloomFilter.d.ts +0 -10
  308. package/types/trackers/filter/dictionaryFilter.d.ts +0 -8
  309. package/types/trackers/filter/types.d.ts +0 -5
  310. package/types/trackers/strategy/strategyDebug.d.ts +0 -9
  311. package/types/trackers/strategy/strategyNone.d.ts +0 -10
  312. package/types/trackers/strategy/strategyOptimized.d.ts +0 -11
  313. package/types/trackers/uniqueKeysTracker.d.ts +0 -13
  314. package/types/types.d.ts +0 -1263
  315. package/types/utils/timeTracker/index.d.ts +0 -70
@@ -1,6 +1,6 @@
1
- import { SplitIO } from '../../types';
1
+ import { Attributes } from '../../types';
2
2
  import { IDependencyMatcherValue } from '../types';
3
- import { ILogger } from '../../logger/types';
3
+ import { ILogger } from '../../types';
4
4
  import { isObject, uniq, toString, toNumber } from '../../utils/lang';
5
5
  import { zeroSinceHH, zeroSinceSS } from '../convertions';
6
6
  import { matcherTypes, matcherDataTypes } from '../matchers/matcherTypes';
@@ -41,7 +41,7 @@ function sanitizeBoolean(val: any): boolean | undefined {
41
41
  return undefined;
42
42
  }
43
43
 
44
- function dependencyProcessor(sanitizedValue: string, attributes?: SplitIO.Attributes): IDependencyMatcherValue {
44
+ function dependencyProcessor(sanitizedValue: string, attributes?: Attributes): IDependencyMatcherValue {
45
45
  return {
46
46
  key: sanitizedValue,
47
47
  attributes
@@ -69,7 +69,7 @@ function getProcessingFunction(matcherTypeID: number, dataType: string) {
69
69
  /**
70
70
  * Sanitize matcher value
71
71
  */
72
- export function sanitize(log: ILogger, matcherTypeID: number, value: string | number | boolean | Array<string | number> | undefined, dataType: string, attributes?: SplitIO.Attributes) {
72
+ export function sanitize(log: ILogger, matcherTypeID: number, value: string | number | boolean | Array<string | number> | undefined, dataType: string, attributes?: Attributes) {
73
73
  const processor = getProcessingFunction(matcherTypeID, dataType);
74
74
  let sanitizedValue: string | number | boolean | Array<string | number> | IDependencyMatcherValue | undefined;
75
75
 
@@ -8,9 +8,9 @@ import {
8
8
  validateKey,
9
9
  validateTrafficType,
10
10
  } from '../../utils/inputValidation';
11
- import { SplitIO } from '../../types';
11
+ import { EventData } from '../../types';
12
12
  import { Identity, GoogleAnalyticsToSplitOptions } from './types';
13
- import { ILogger } from '../../logger/types';
13
+ import { ILogger } from '../../types';
14
14
  import { IIntegrationFactoryParams } from '../types';
15
15
 
16
16
  const logPrefix = 'ga-to-split: ';
@@ -67,7 +67,7 @@ const defaultMapping = {
67
67
  * @param {object} mapping
68
68
  */
69
69
  function mapperBuilder(mapping: typeof defaultMapping) {
70
- return function (model: UniversalAnalytics.Model): SplitIO.EventData {
70
+ return function (model: UniversalAnalytics.Model): EventData {
71
71
  const hitType: string = model.get('hitType');
72
72
  // @ts-expect-error
73
73
  const eventTypeId = model.get(mapping.eventTypeId[hitType] || 'hitType');
@@ -133,7 +133,7 @@ export function validateIdentities(identities?: Identity[]) {
133
133
  * @param {EventData} data event data instance to validate. Precondition: data != undefined
134
134
  * @returns {boolean} Whether the data instance is a valid EventData or not.
135
135
  */
136
- export function validateEventData(log: ILogger, eventData: any): eventData is SplitIO.EventData {
136
+ export function validateEventData(log: ILogger, eventData: any): eventData is EventData {
137
137
  if (!validateEvent(log, eventData.eventTypeId, logNameMapper))
138
138
  return false;
139
139
 
@@ -251,10 +251,10 @@ export function GaToSplit(sdkOptions: GoogleAnalyticsToSplitOptions, params: IIn
251
251
  }
252
252
 
253
253
  // map hit into an EventData instance
254
- let eventData: SplitIO.EventData = defaultMapper(model);
254
+ let eventData: EventData = defaultMapper(model);
255
255
  if (opts.mapper) {
256
256
  try {
257
- eventData = opts.mapper(model, eventData as SplitIO.EventData);
257
+ eventData = opts.mapper(model, eventData as EventData);
258
258
  } catch (err) {
259
259
  log.warn(logPrefix + `custom mapper threw: ${err}`);
260
260
  return;
@@ -1,10 +1,10 @@
1
1
  /* eslint-disable no-undef */
2
2
  import { uniq } from '../../utils/lang';
3
3
  import { SPLIT_IMPRESSION, SPLIT_EVENT } from '../../utils/constants';
4
- import { SplitIO } from '../../types';
4
+ import { IntegrationData, ImpressionData, EventData } from '../../types';
5
5
  import { IIntegration } from '../types';
6
6
  import { SplitToGoogleAnalyticsOptions } from './types';
7
- import { ILogger } from '../../logger/types';
7
+ import { ILogger } from '../../types';
8
8
 
9
9
  const logPrefix = 'split-to-ga: ';
10
10
  const noGaWarning = '`ga` command queue not found.';
@@ -16,29 +16,29 @@ export class SplitToGa implements IIntegration {
16
16
  static defaultTrackerNames = [''];
17
17
 
18
18
  private trackerNames: string[];
19
- private filter?: (data: SplitIO.IntegrationData) => boolean;
20
- private mapper?: (data: SplitIO.IntegrationData, defaultMapping: UniversalAnalytics.FieldsObject) => UniversalAnalytics.FieldsObject;
19
+ private filter?: (data: IntegrationData) => boolean;
20
+ private mapper?: (data: IntegrationData, defaultMapping: UniversalAnalytics.FieldsObject) => UniversalAnalytics.FieldsObject;
21
21
  private impressions: boolean | undefined;
22
22
  private events: boolean | undefined;
23
23
  private log: ILogger;
24
24
 
25
25
  // Default mapper function.
26
- static defaultMapper({ type, payload }: SplitIO.IntegrationData): UniversalAnalytics.FieldsObject {
26
+ static defaultMapper({ type, payload }: IntegrationData): UniversalAnalytics.FieldsObject {
27
27
  switch (type) {
28
28
  case SPLIT_IMPRESSION:
29
29
  return {
30
30
  hitType: 'event',
31
31
  eventCategory: 'split-impression',
32
- eventAction: 'Evaluate ' + (payload as SplitIO.ImpressionData).impression.feature,
33
- eventLabel: 'Treatment: ' + (payload as SplitIO.ImpressionData).impression.treatment + '. Targeting rule: ' + (payload as SplitIO.ImpressionData).impression.label + '.',
32
+ eventAction: 'Evaluate ' + (payload as ImpressionData).impression.feature,
33
+ eventLabel: 'Treatment: ' + (payload as ImpressionData).impression.treatment + '. Targeting rule: ' + (payload as ImpressionData).impression.label + '.',
34
34
  nonInteraction: true,
35
35
  };
36
36
  case SPLIT_EVENT:
37
37
  return {
38
38
  hitType: 'event',
39
39
  eventCategory: 'split-event',
40
- eventAction: (payload as SplitIO.EventData).eventTypeId,
41
- eventValue: (payload as SplitIO.EventData).value,
40
+ eventAction: (payload as EventData).eventTypeId,
41
+ eventValue: (payload as EventData).value,
42
42
  nonInteraction: true,
43
43
  };
44
44
  }
@@ -93,7 +93,7 @@ export class SplitToGa implements IIntegration {
93
93
  if (typeof SplitToGa.getGa() !== 'function') log.warn(logPrefix + `${noGaWarning} No hits will be sent until it is available.`);
94
94
  }
95
95
 
96
- queue(data: SplitIO.IntegrationData) {
96
+ queue(data: IntegrationData) {
97
97
  // access ga command queue via `getGa` method, accounting for the possibility that
98
98
  // the global `ga` reference was not yet mutated by analytics.js.
99
99
  const ga = SplitToGa.getGa();
@@ -1,4 +1,4 @@
1
- import { SplitIO } from '../../types';
1
+ import { IntegrationData, EventData } from '../../types';
2
2
 
3
3
  /**
4
4
  * A pair of user key and it's trafficType, required for tracking valid Split events.
@@ -41,7 +41,7 @@ export interface GoogleAnalyticsToSplitOptions {
41
41
  * return defaultMapping;
42
42
  * }`
43
43
  */
44
- mapper?: (model: UniversalAnalytics.Model, defaultMapping: SplitIO.EventData) => SplitIO.EventData,
44
+ mapper?: (model: UniversalAnalytics.Model, defaultMapping: EventData) => EventData,
45
45
  /**
46
46
  * Optional prefix for EventTypeId, to prevent any kind of data collision between events.
47
47
  * @property {string} prefix
@@ -97,7 +97,7 @@ export interface SplitToGoogleAnalyticsOptions {
97
97
  * For example, the following filter allows to track only impressions, equivalent to setting events to false:
98
98
  * `(data) => data.type === 'IMPRESSION'`
99
99
  */
100
- filter?: (data: SplitIO.IntegrationData) => boolean,
100
+ filter?: (data: IntegrationData) => boolean,
101
101
  /**
102
102
  * Optional function useful when you need to modify the GA hit before sending it.
103
103
  * This function is invoked with two arguments:
@@ -128,7 +128,7 @@ export interface SplitToGoogleAnalyticsOptions {
128
128
  * nonInteraction: true,
129
129
  * }`
130
130
  */
131
- mapper?: (data: SplitIO.IntegrationData, defaultMapping: UniversalAnalytics.FieldsObject) => UniversalAnalytics.FieldsObject,
131
+ mapper?: (data: IntegrationData, defaultMapping: UniversalAnalytics.FieldsObject) => UniversalAnalytics.FieldsObject,
132
132
  /**
133
133
  * List of tracker names to send the hit. An empty string represents the default tracker.
134
134
  * If not provided, hits are only sent to default tracker.
@@ -1,5 +1,5 @@
1
1
  import { SPLIT_IMPRESSION, SPLIT_EVENT } from '../utils/constants';
2
- import { SplitIO } from '../types';
2
+ import { ImpressionData, EventData } from '../types';
3
3
  import { IIntegration, IIntegrationManager, IIntegrationFactoryParams } from './types';
4
4
 
5
5
  /**
@@ -29,10 +29,10 @@ export function pluggableIntegrationsManagerFactory(
29
29
 
30
30
  // Exception safe methods: each integration module is responsable for handling errors
31
31
  return {
32
- handleImpression(impressionData: SplitIO.ImpressionData) {
32
+ handleImpression(impressionData: ImpressionData) {
33
33
  listeners.forEach(listener => listener.queue({ type: SPLIT_IMPRESSION, payload: impressionData }));
34
34
  },
35
- handleEvent(eventData: SplitIO.EventData) {
35
+ handleEvent(eventData: EventData) {
36
36
  listeners.forEach(listener => listener.queue({ type: SPLIT_EVENT, payload: eventData }));
37
37
  }
38
38
  };
@@ -1,9 +1,9 @@
1
1
  import { IEventsCacheBase } from '../storages/types';
2
2
  import { IEventsHandler, IImpressionsHandler } from '../trackers/types';
3
- import { ISettings, SplitIO } from '../types';
3
+ import { ISettings, IntegrationData } from '../types';
4
4
 
5
5
  export interface IIntegration {
6
- queue(data: SplitIO.IntegrationData): void
6
+ queue(data: IntegrationData): void
7
7
  }
8
8
 
9
9
  export type IIntegrationManager = IEventsHandler & IImpressionsHandler;
@@ -7,7 +7,7 @@ import { fromImpressionCountsCollector } from '../sync/submitters/impressionCoun
7
7
  import { IResponse, ISplitApi } from '../services/types';
8
8
  import { ImpressionDTO, ISettings } from '../types';
9
9
  import { ImpressionsPayload } from '../sync/submitters/types';
10
- import { OPTIMIZED, DEBUG, NONE } from '../utils/constants';
10
+ import { OPTIMIZED, DEBUG } from '../utils/constants';
11
11
  import { objectAssign } from '../utils/lang/objectAssign';
12
12
  import { CLEANUP_REGISTERING, CLEANUP_DEREGISTERING } from '../logger/constants';
13
13
  import { ISyncManager } from '../sync/types';
@@ -88,10 +88,9 @@ export class BrowserSignalListener implements ISignalListener {
88
88
  // Flush impressions & events data if there is user consent
89
89
  if (isConsentGranted(this.settings)) {
90
90
  const eventsUrl = this.settings.urls.events;
91
- const sim = this.settings.sync.impressionsMode;
92
91
  const extraMetadata = {
93
92
  // sim stands for Sync/Split Impressions Mode
94
- sim: sim === OPTIMIZED ? OPTIMIZED : sim === DEBUG ? DEBUG : NONE
93
+ sim: this.settings.sync.impressionsMode === OPTIMIZED ? OPTIMIZED : DEBUG
95
94
  };
96
95
 
97
96
  this._flushData(eventsUrl + '/testImpressions/beacon', this.storage.impressions, this.serviceApi.postTestImpressionsBulk, this.fromImpressionsCollector, extraMetadata);
Binary file
@@ -143,5 +143,4 @@ export const LOG_PREFIX_SYNC_POLLING = LOG_PREFIX_SYNC + ':polling-manager: ';
143
143
  export const LOG_PREFIX_SYNC_SUBMITTERS = LOG_PREFIX_SYNC + ':submitter: ';
144
144
  export const LOG_PREFIX_IMPRESSIONS_TRACKER = 'impressions-tracker: ';
145
145
  export const LOG_PREFIX_EVENTS_TRACKER = 'events-tracker: ';
146
- export const LOG_PREFIX_UNIQUE_KEYS_TRACKER = 'unique-keys-tracker: ';
147
146
  export const LOG_PREFIX_CLEANUP = 'cleanup: ';
@@ -1,10 +1,10 @@
1
1
  import { objectAssign } from '../utils/lang/objectAssign';
2
- import { ILoggerOptions, ILogger } from './types';
2
+ import { ILoggerOptions } from './types';
3
3
  import { find } from '../utils/lang';
4
- import { LogLevel } from '../types';
4
+ import { LogLevel, ILogger, ILoggerAPI } from '../types';
5
5
  import { IMap, _Map } from '../utils/lang/maps';
6
6
 
7
- export const LogLevels: { [level: string]: LogLevel } = {
7
+ export const LogLevels: ILoggerAPI['LogLevel'] = {
8
8
  DEBUG: 'DEBUG',
9
9
  INFO: 'INFO',
10
10
  WARN: 'WARN',
@@ -1,6 +1,5 @@
1
1
  import { LogLevels, isLogLevelString } from './index';
2
- import { ILoggerAPI } from '../types';
3
- import { ILogger } from './types';
2
+ import { ILoggerAPI, ILogger } from '../types';
4
3
  import { ERROR_LOGLEVEL_INVALID } from './constants';
5
4
 
6
5
  /**
@@ -5,19 +5,3 @@ export interface ILoggerOptions {
5
5
  logLevel?: LogLevel,
6
6
  showLevel?: boolean, // @TODO remove this param eventually since it is not being set `false` anymore
7
7
  }
8
-
9
- export interface ILogger {
10
- setLogLevel(logLevel: LogLevel): void
11
-
12
- debug(msg: any): void
13
- debug(msg: string | number, args?: any[]): void
14
-
15
- info(msg: any): void
16
- info(msg: string | number, args?: any[]): void
17
-
18
- warn(msg: any): void
19
- warn(msg: string | number, args?: any[]): void
20
-
21
- error(msg: any): void
22
- error(msg: string | number, args?: any[]): void
23
- }
@@ -4,7 +4,7 @@ import { readinessManagerFactory } from './readinessManager';
4
4
  import { ISdkReadinessManager } from './types';
5
5
  import { IEventEmitter } from '../types';
6
6
  import { SDK_READY, SDK_READY_TIMED_OUT, SDK_READY_FROM_CACHE, SDK_UPDATE } from './constants';
7
- import { ILogger } from '../logger/types';
7
+ import { ILogger } from '../types';
8
8
  import { ERROR_CLIENT_LISTENER, CLIENT_READY_FROM_CACHE, CLIENT_READY, CLIENT_NO_LISTENER } from '../logger/constants';
9
9
 
10
10
  const NEW_LISTENER_EVENT = 'newListener';
@@ -1,4 +1,4 @@
1
- import { IEventEmitter, IStatusInterface } from '../types';
1
+ import { IEventEmitter, IStatusInterface, Event } from '../types';
2
2
 
3
3
  /** Splits data emitter */
4
4
 
@@ -28,15 +28,8 @@ export interface ISegmentsEventEmitter extends IEventEmitter {
28
28
 
29
29
  /** Readiness emitter */
30
30
 
31
- export type SDK_READY_TIMED_OUT = 'init::timeout'
32
- export type SDK_READY = 'init::ready'
33
- export type SDK_READY_FROM_CACHE = 'init::cache-ready'
34
- export type SDK_UPDATE = 'state::update'
35
- export type SDK_DESTROY = 'state::destroy'
36
- export type IReadinessEvent = SDK_READY_TIMED_OUT | SDK_READY | SDK_READY_FROM_CACHE | SDK_UPDATE | SDK_DESTROY
37
-
38
31
  export interface IReadinessEventEmitter extends IEventEmitter {
39
- emit(event: IReadinessEvent, ...args: any[]): boolean
32
+ emit(event: Event, ...args: any[]): boolean
40
33
  }
41
34
 
42
35
  /** Readiness manager */
@@ -6,18 +6,18 @@ import { validateTrafficTypeExistance } from '../utils/inputValidation/trafficTy
6
6
  import { SDK_NOT_READY } from '../utils/labels';
7
7
  import { CONTROL, TREATMENT, TREATMENTS, TREATMENT_WITH_CONFIG, TREATMENTS_WITH_CONFIG, TRACK } from '../utils/constants';
8
8
  import { IEvaluationResult } from '../evaluator/types';
9
- import { SplitIO, ImpressionDTO } from '../types';
9
+ import { SplitKey, Attributes,ImpressionDTO, Treatment, TreatmentWithConfig, Properties, EventData, IClientSS, IAsyncClientSS } from '../types';
10
10
  import { IMPRESSION, IMPRESSION_QUEUEING } from '../logger/constants';
11
11
  import { ISdkFactoryContext } from '../sdkFactory/types';
12
12
 
13
13
  /**
14
14
  * Creator of base client with getTreatments and track methods.
15
15
  */
16
- export function clientFactory(params: ISdkFactoryContext): SplitIO.IClient | SplitIO.IAsyncClient {
16
+ export function clientFactory(params: ISdkFactoryContext): IClientSS | IAsyncClientSS {
17
17
  const { sdkReadinessManager: { readinessManager }, storage, settings, impressionsTracker, eventTracker, telemetryTracker } = params;
18
18
  const { log, mode } = settings;
19
19
 
20
- function getTreatment(key: SplitIO.SplitKey, splitName: string, attributes: SplitIO.Attributes | undefined, withConfig = false) {
20
+ function getTreatment(key: SplitKey, splitName: string, attributes: Attributes | undefined, withConfig = false) {
21
21
  const stopTelemetryTracker = telemetryTracker.trackEval(withConfig ? TREATMENT_WITH_CONFIG : TREATMENT);
22
22
 
23
23
  const wrapUp = (evaluationResult: IEvaluationResult) => {
@@ -34,16 +34,16 @@ export function clientFactory(params: ISdkFactoryContext): SplitIO.IClient | Spl
34
34
  return thenable(evaluation) ? evaluation.then((res) => wrapUp(res)) : wrapUp(evaluation);
35
35
  }
36
36
 
37
- function getTreatmentWithConfig(key: SplitIO.SplitKey, splitName: string, attributes: SplitIO.Attributes | undefined) {
37
+ function getTreatmentWithConfig(key: SplitKey, splitName: string, attributes: Attributes | undefined) {
38
38
  return getTreatment(key, splitName, attributes, true);
39
39
  }
40
40
 
41
- function getTreatments(key: SplitIO.SplitKey, splitNames: string[], attributes: SplitIO.Attributes | undefined, withConfig = false) {
41
+ function getTreatments(key: SplitKey, splitNames: string[], attributes: Attributes | undefined, withConfig = false) {
42
42
  const stopTelemetryTracker = telemetryTracker.trackEval(withConfig ? TREATMENTS_WITH_CONFIG : TREATMENTS);
43
43
 
44
44
  const wrapUp = (evaluationResults: Record<string, IEvaluationResult>) => {
45
45
  const queue: ImpressionDTO[] = [];
46
- const treatments: Record<string, SplitIO.Treatment | SplitIO.TreatmentWithConfig> = {};
46
+ const treatments: Record<string, Treatment | TreatmentWithConfig> = {};
47
47
  Object.keys(evaluationResults).forEach(splitName => {
48
48
  treatments[splitName] = processEvaluation(evaluationResults[splitName], splitName, key, attributes, withConfig, `getTreatments${withConfig ? 'withConfig' : ''}`, queue);
49
49
  });
@@ -58,7 +58,7 @@ export function clientFactory(params: ISdkFactoryContext): SplitIO.IClient | Spl
58
58
  return thenable(evaluations) ? evaluations.then((res) => wrapUp(res)) : wrapUp(evaluations);
59
59
  }
60
60
 
61
- function getTreatmentsWithConfig(key: SplitIO.SplitKey, splitNames: string[], attributes: SplitIO.Attributes | undefined) {
61
+ function getTreatmentsWithConfig(key: SplitKey, splitNames: string[], attributes: Attributes | undefined) {
62
62
  return getTreatments(key, splitNames, attributes, true);
63
63
  }
64
64
 
@@ -66,12 +66,12 @@ export function clientFactory(params: ISdkFactoryContext): SplitIO.IClient | Spl
66
66
  function processEvaluation(
67
67
  evaluation: IEvaluationResult,
68
68
  splitName: string,
69
- key: SplitIO.SplitKey,
70
- attributes: SplitIO.Attributes | undefined,
69
+ key: SplitKey,
70
+ attributes: Attributes | undefined,
71
71
  withConfig: boolean,
72
72
  invokingMethodName: string,
73
73
  queue: ImpressionDTO[]
74
- ): SplitIO.Treatment | SplitIO.TreatmentWithConfig {
74
+ ): Treatment | TreatmentWithConfig {
75
75
  const isSdkReady = readinessManager.isReady() || readinessManager.isReadyFromCache();
76
76
  const matchingKey = getMatching(key);
77
77
  const bucketingKey = getBucketing(key);
@@ -107,12 +107,12 @@ export function clientFactory(params: ISdkFactoryContext): SplitIO.IClient | Spl
107
107
  return treatment;
108
108
  }
109
109
 
110
- function track(key: SplitIO.SplitKey, trafficTypeName: string, eventTypeId: string, value?: number, properties?: SplitIO.Properties, size = 1024) {
110
+ function track(key: SplitKey, trafficTypeName: string, eventTypeId: string, value?: number, properties?: Properties, size = 1024) {
111
111
  const stopTelemetryTracker = telemetryTracker.trackEval(TRACK);
112
112
 
113
113
  const matchingKey = getMatching(key);
114
114
  const timestamp = Date.now();
115
- const eventData: SplitIO.EventData = {
115
+ const eventData: EventData = {
116
116
  eventTypeId,
117
117
  trafficTypeName,
118
118
  value,
@@ -144,5 +144,5 @@ export function clientFactory(params: ISdkFactoryContext): SplitIO.IClient | Spl
144
144
  getTreatmentsWithConfig,
145
145
  track,
146
146
  isClientSide: false
147
- } as SplitIO.IClient | SplitIO.IAsyncClient;
147
+ } as any;
148
148
  }
@@ -1,13 +1,13 @@
1
1
  import { AttributesCacheInMemory } from '../storages/inMemory/AttributesCacheInMemory';
2
2
  import { validateAttributesDeep } from '../utils/inputValidation/attributes';
3
- import { SplitIO } from '../types';
4
- import { ILogger } from '../logger/types';
3
+ import { Attributes, IAsyncClientSS, IClientSS, Properties, SplitKey } from '../types';
4
+ import { ILogger } from '../types';
5
5
  import { objectAssign } from '../utils/lang/objectAssign';
6
6
 
7
7
  /**
8
8
  * Add in memory attributes storage methods and combine them with any attribute received from the getTreatment/s call
9
9
  */
10
- export function clientAttributesDecoration<TClient extends SplitIO.IClient | SplitIO.IAsyncClient>(log: ILogger, client: TClient) {
10
+ export function clientAttributesDecoration(log: ILogger, client: IClientSS | IAsyncClientSS) {
11
11
 
12
12
  const attributeStorage = new AttributesCacheInMemory();
13
13
 
@@ -18,27 +18,27 @@ export function clientAttributesDecoration<TClient extends SplitIO.IClient | Spl
18
18
  const clientGetTreatmentsWithConfig = client.getTreatmentsWithConfig;
19
19
  const clientTrack = client.track;
20
20
 
21
- function getTreatment(maybeKey: SplitIO.SplitKey, maybeSplit: string, maybeAttributes?: SplitIO.Attributes) {
21
+ function getTreatment(maybeKey: SplitKey, maybeSplit: string, maybeAttributes?: Attributes) {
22
22
  return clientGetTreatment(maybeKey, maybeSplit, combineAttributes(maybeAttributes));
23
23
  }
24
24
 
25
- function getTreatmentWithConfig(maybeKey: SplitIO.SplitKey, maybeSplit: string, maybeAttributes?: SplitIO.Attributes) {
25
+ function getTreatmentWithConfig(maybeKey: SplitKey, maybeSplit: string, maybeAttributes?: Attributes) {
26
26
  return clientGetTreatmentWithConfig(maybeKey, maybeSplit, combineAttributes(maybeAttributes));
27
27
  }
28
28
 
29
- function getTreatments(maybeKey: SplitIO.SplitKey, maybeSplits: string[], maybeAttributes?: SplitIO.Attributes) {
29
+ function getTreatments(maybeKey: SplitKey, maybeSplits: string[], maybeAttributes?: Attributes) {
30
30
  return clientGetTreatments(maybeKey, maybeSplits, combineAttributes(maybeAttributes));
31
31
  }
32
32
 
33
- function getTreatmentsWithConfig(maybeKey: SplitIO.SplitKey, maybeSplits: string[], maybeAttributes?: SplitIO.Attributes) {
33
+ function getTreatmentsWithConfig(maybeKey: SplitKey, maybeSplits: string[], maybeAttributes?: Attributes) {
34
34
  return clientGetTreatmentsWithConfig(maybeKey, maybeSplits, combineAttributes(maybeAttributes));
35
35
  }
36
36
 
37
- function track(maybeKey: SplitIO.SplitKey, maybeTT: string, maybeEvent: string, maybeEventValue?: number, maybeProperties?: SplitIO.Properties) {
37
+ function track(maybeKey: SplitKey, maybeTT: string, maybeEvent: string, maybeEventValue?: number, maybeProperties?: Properties) {
38
38
  return clientTrack(maybeKey, maybeTT, maybeEvent, maybeEventValue, maybeProperties);
39
39
  }
40
40
 
41
- function combineAttributes(maybeAttributes: SplitIO.Attributes | undefined): SplitIO.Attributes | undefined{
41
+ function combineAttributes(maybeAttributes: Attributes | undefined): Attributes | undefined{
42
42
  const storedAttributes = attributeStorage.getAll();
43
43
  if (Object.keys(storedAttributes).length > 0) {
44
44
  return objectAssign({}, storedAttributes, maybeAttributes);
@@ -1,6 +1,5 @@
1
1
  import { objectAssign } from '../utils/lang/objectAssign';
2
- import { ILogger } from '../logger/types';
3
- import { SplitIO } from '../types';
2
+ import { IClientSS, IClientWithKeyLegacy, ILogger, SplitKey } from '../types';
4
3
  import { clientAttributesDecoration } from './clientAttributesDecoration';
5
4
 
6
5
 
@@ -11,7 +10,7 @@ import { clientAttributesDecoration } from './clientAttributesDecoration';
11
10
  * @param key validated split key
12
11
  * @param trafficType validated traffic type
13
12
  */
14
- export function clientCSDecorator(log: ILogger, client: SplitIO.IClient, key: SplitIO.SplitKey, trafficType?: string): SplitIO.ICsClient {
13
+ export function clientCSDecorator(log: ILogger, client: IClientSS, key: SplitKey, trafficType?: string): IClientWithKeyLegacy {
15
14
 
16
15
  let clientCS = clientAttributesDecoration(log, client);
17
16
 
@@ -26,5 +25,5 @@ export function clientCSDecorator(log: ILogger, client: SplitIO.IClient, key: Sp
26
25
  track: trafficType ? clientCS.track.bind(clientCS, key, trafficType) : clientCS.track.bind(clientCS, key),
27
26
 
28
27
  isClientSide: true
29
- }) as SplitIO.ICsClient;
28
+ }) as any;
30
29
  }
@@ -15,14 +15,14 @@ import { startsWith } from '../utils/lang';
15
15
  import { CONTROL, CONTROL_WITH_CONFIG } from '../utils/constants';
16
16
  import { IReadinessManager } from '../readiness/types';
17
17
  import { MaybeThenable } from '../dtos/types';
18
- import { ISettings, SplitIO } from '../types';
18
+ import { ISettings, SplitKey, Treatments, TreatmentsWithConfig, Properties, Attributes, IClientSS, IAsyncClientSS } from '../types';
19
19
  import { isStorageSync } from '../trackers/impressionObserver/utils';
20
20
 
21
21
  /**
22
22
  * Decorator that validates the input before actually executing the client methods.
23
23
  * We should "guard" the client here, while not polluting the "real" implementation of those methods.
24
24
  */
25
- export function clientInputValidationDecorator<TClient extends SplitIO.IClient | SplitIO.IAsyncClient>(settings: ISettings, client: TClient, readinessManager: IReadinessManager): TClient {
25
+ export function clientInputValidationDecorator(settings: ISettings, client: IClientSS | IAsyncClientSS, readinessManager: IReadinessManager): IClientSS | IAsyncClientSS {
26
26
 
27
27
  const log = settings.log;
28
28
  const isSync = isStorageSync(settings);
@@ -30,7 +30,7 @@ export function clientInputValidationDecorator<TClient extends SplitIO.IClient |
30
30
  /**
31
31
  * Avoid repeating this validations code
32
32
  */
33
- function validateEvaluationParams(maybeKey: SplitIO.SplitKey, maybeSplitOrSplits: string | string[], maybeAttributes: SplitIO.Attributes | undefined, methodName: string) {
33
+ function validateEvaluationParams(maybeKey: SplitKey, maybeSplitOrSplits: string | string[], maybeAttributes: Attributes | undefined, methodName: string) {
34
34
  const multi = startsWith(methodName, 'getTreatments');
35
35
  const key = validateKey(log, maybeKey, methodName);
36
36
  const splitOrSplits = multi ? validateSplits(log, maybeSplitOrSplits, methodName) : validateSplit(log, maybeSplitOrSplits, methodName);
@@ -53,53 +53,53 @@ export function clientInputValidationDecorator<TClient extends SplitIO.IClient |
53
53
  return isSync ? value : Promise.resolve(value);
54
54
  }
55
55
 
56
- function getTreatment(maybeKey: SplitIO.SplitKey, maybeSplit: string, maybeAttributes?: SplitIO.Attributes) {
56
+ function getTreatment(maybeKey: SplitKey, maybeSplit: string, maybeAttributes?: Attributes) {
57
57
  const params = validateEvaluationParams(maybeKey, maybeSplit, maybeAttributes, 'getTreatment');
58
58
 
59
59
  if (params.valid) {
60
- return client.getTreatment(params.key as SplitIO.SplitKey, params.splitOrSplits as string, params.attributes as SplitIO.Attributes | undefined);
60
+ return client.getTreatment(params.key as SplitKey, params.splitOrSplits as string, params.attributes as Attributes | undefined);
61
61
  } else {
62
62
  return wrapResult(CONTROL);
63
63
  }
64
64
  }
65
65
 
66
- function getTreatmentWithConfig(maybeKey: SplitIO.SplitKey, maybeSplit: string, maybeAttributes?: SplitIO.Attributes) {
66
+ function getTreatmentWithConfig(maybeKey: SplitKey, maybeSplit: string, maybeAttributes?: Attributes) {
67
67
  const params = validateEvaluationParams(maybeKey, maybeSplit, maybeAttributes, 'getTreatmentWithConfig');
68
68
 
69
69
  if (params.valid) {
70
- return client.getTreatmentWithConfig(params.key as SplitIO.SplitKey, params.splitOrSplits as string, params.attributes as SplitIO.Attributes | undefined);
70
+ return client.getTreatmentWithConfig(params.key as SplitKey, params.splitOrSplits as string, params.attributes as Attributes | undefined);
71
71
  } else {
72
72
  return wrapResult(objectAssign({}, CONTROL_WITH_CONFIG));
73
73
  }
74
74
  }
75
75
 
76
- function getTreatments(maybeKey: SplitIO.SplitKey, maybeSplits: string[], maybeAttributes?: SplitIO.Attributes) {
76
+ function getTreatments(maybeKey: SplitKey, maybeSplits: string[], maybeAttributes?: Attributes) {
77
77
  const params = validateEvaluationParams(maybeKey, maybeSplits, maybeAttributes, 'getTreatments');
78
78
 
79
79
  if (params.valid) {
80
- return client.getTreatments(params.key as SplitIO.SplitKey, params.splitOrSplits as string[], params.attributes as SplitIO.Attributes | undefined);
80
+ return client.getTreatments(params.key as SplitKey, params.splitOrSplits as string[], params.attributes as Attributes | undefined);
81
81
  } else {
82
- const res: SplitIO.Treatments = {};
82
+ const res: Treatments = {};
83
83
  if (params.splitOrSplits) (params.splitOrSplits as string[]).forEach((split: string) => res[split] = CONTROL);
84
84
 
85
85
  return wrapResult(res);
86
86
  }
87
87
  }
88
88
 
89
- function getTreatmentsWithConfig(maybeKey: SplitIO.SplitKey, maybeSplits: string[], maybeAttributes?: SplitIO.Attributes) {
89
+ function getTreatmentsWithConfig(maybeKey: SplitKey, maybeSplits: string[], maybeAttributes?: Attributes) {
90
90
  const params = validateEvaluationParams(maybeKey, maybeSplits, maybeAttributes, 'getTreatmentsWithConfig');
91
91
 
92
92
  if (params.valid) {
93
- return client.getTreatmentsWithConfig(params.key as SplitIO.SplitKey, params.splitOrSplits as string[], params.attributes as SplitIO.Attributes | undefined);
93
+ return client.getTreatmentsWithConfig(params.key as SplitKey, params.splitOrSplits as string[], params.attributes as Attributes | undefined);
94
94
  } else {
95
- const res: SplitIO.TreatmentsWithConfig = {};
95
+ const res: TreatmentsWithConfig = {};
96
96
  if (params.splitOrSplits) (params.splitOrSplits as string[]).forEach(split => res[split] = objectAssign({}, CONTROL_WITH_CONFIG));
97
97
 
98
98
  return wrapResult(res);
99
99
  }
100
100
  }
101
101
 
102
- function track(maybeKey: SplitIO.SplitKey, maybeTT: string, maybeEvent: string, maybeEventValue?: number, maybeProperties?: SplitIO.Properties) {
102
+ function track(maybeKey: SplitKey, maybeTT: string, maybeEvent: string, maybeEventValue?: number, maybeProperties?: Properties) {
103
103
  const key = validateKey(log, maybeKey, 'track');
104
104
  const tt = validateTrafficType(log, maybeTT, 'track');
105
105
  const event = validateEvent(log, maybeEvent, 'track');
@@ -120,5 +120,5 @@ export function clientInputValidationDecorator<TClient extends SplitIO.IClient |
120
120
  getTreatments,
121
121
  getTreatmentsWithConfig,
122
122
  track
123
- } as TClient;
123
+ } as IClientSS | IAsyncClientSS;
124
124
  }
@@ -1,5 +1,5 @@
1
1
  import { objectAssign } from '../utils/lang/objectAssign';
2
- import { IStatusInterface, SplitIO } from '../types';
2
+ import { IBasicClient, IStatusInterface } from '../types';
3
3
  import { releaseApiKey } from '../utils/inputValidation/apiKey';
4
4
  import { clientFactory } from './client';
5
5
  import { clientInputValidationDecorator } from './clientInputValidation';
@@ -8,7 +8,7 @@ import { ISdkFactoryContext } from '../sdkFactory/types';
8
8
  /**
9
9
  * Creates an Sdk client, i.e., a base client with status and destroy interface
10
10
  */
11
- export function sdkClientFactory(params: ISdkFactoryContext, isSharedClient?: boolean): SplitIO.IClient | SplitIO.IAsyncClient {
11
+ export function sdkClientFactory(params: ISdkFactoryContext, isSharedClient?: boolean): IBasicClient {
12
12
  const { sdkReadinessManager, syncManager, storage, signalListener, settings, telemetryTracker } = params;
13
13
 
14
14
  return objectAssign(
@@ -1,4 +1,4 @@
1
- import { SplitIO } from '../types';
1
+ import { IBasicClient } from '../types';
2
2
  import { sdkClientFactory } from './sdkClient';
3
3
  import { RETRIEVE_CLIENT_DEFAULT } from '../logger/constants';
4
4
  import { ISdkFactoryContext } from '../sdkFactory/types';
@@ -6,7 +6,7 @@ import { ISdkFactoryContext } from '../sdkFactory/types';
6
6
  /**
7
7
  * Factory of client method for server-side SDKs (ISDK and IAsyncSDK)
8
8
  */
9
- export function sdkClientMethodFactory(params: ISdkFactoryContext): () => SplitIO.IClient | SplitIO.IAsyncClient {
9
+ export function sdkClientMethodFactory(params: ISdkFactoryContext): () => IBasicClient {
10
10
  const log = params.settings.log;
11
11
  const clientInstance = sdkClientFactory(params);
12
12