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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/cjs/evaluator/index.js +10 -11
  2. package/cjs/integrations/ga/GaToSplit.js +8 -5
  3. package/cjs/sdkFactory/index.js +2 -3
  4. package/cjs/sdkManager/index.js +3 -11
  5. package/cjs/services/splitApi.js +0 -1
  6. package/cjs/storages/AbstractSplitsCacheAsync.js +7 -9
  7. package/cjs/storages/AbstractSplitsCacheSync.js +7 -9
  8. package/cjs/storages/dataLoader.js +1 -1
  9. package/cjs/storages/inLocalStorage/SplitsCacheInLocal.js +5 -6
  10. package/cjs/storages/inMemory/SplitsCacheInMemory.js +7 -10
  11. package/cjs/storages/inRedis/SplitsCacheInRedis.js +15 -9
  12. package/cjs/storages/pluggable/SplitsCachePluggable.js +14 -9
  13. package/cjs/sync/offline/syncTasks/fromObjectSyncTask.js +2 -3
  14. package/cjs/sync/polling/updaters/splitChangesUpdater.js +1 -1
  15. package/cjs/trackers/telemetryTracker.js +6 -0
  16. package/cjs/types.js +2 -0
  17. package/cjs/utils/key/index.js +1 -1
  18. package/cjs/utils/settingsValidation/index.js +0 -1
  19. package/esm/evaluator/index.js +10 -11
  20. package/esm/integrations/ga/GaToSplit.js +8 -5
  21. package/esm/sdkFactory/index.js +2 -3
  22. package/esm/sdkManager/index.js +3 -11
  23. package/esm/services/splitApi.js +0 -1
  24. package/esm/storages/AbstractSplitsCacheAsync.js +7 -9
  25. package/esm/storages/AbstractSplitsCacheSync.js +7 -9
  26. package/esm/storages/dataLoader.js +1 -1
  27. package/esm/storages/inLocalStorage/SplitsCacheInLocal.js +5 -6
  28. package/esm/storages/inMemory/SplitsCacheInMemory.js +7 -10
  29. package/esm/storages/inRedis/SplitsCacheInRedis.js +15 -9
  30. package/esm/storages/pluggable/SplitsCachePluggable.js +14 -9
  31. package/esm/sync/offline/syncTasks/fromObjectSyncTask.js +2 -3
  32. package/esm/sync/polling/updaters/splitChangesUpdater.js +1 -1
  33. package/esm/trackers/telemetryTracker.js +6 -0
  34. package/esm/types.js +1 -0
  35. package/esm/utils/key/index.js +1 -1
  36. package/esm/utils/settingsValidation/index.js +0 -1
  37. package/package.json +2 -2
  38. package/src/consent/sdkUserConsent.ts +3 -4
  39. package/src/dtos/types.ts +8 -0
  40. package/src/evaluator/Engine.ts +3 -3
  41. package/src/evaluator/combiners/and.ts +1 -1
  42. package/src/evaluator/combiners/ifelseif.ts +3 -3
  43. package/src/evaluator/condition/engineUtils.ts +1 -1
  44. package/src/evaluator/condition/index.ts +6 -6
  45. package/src/evaluator/index.ts +18 -19
  46. package/src/evaluator/matchers/all.ts +1 -1
  47. package/src/evaluator/matchers/between.ts +1 -1
  48. package/src/evaluator/matchers/boolean.ts +1 -1
  49. package/src/evaluator/matchers/cont_all.ts +1 -1
  50. package/src/evaluator/matchers/cont_any.ts +1 -1
  51. package/src/evaluator/matchers/cont_str.ts +1 -1
  52. package/src/evaluator/matchers/dependency.ts +1 -1
  53. package/src/evaluator/matchers/eq.ts +1 -1
  54. package/src/evaluator/matchers/eq_set.ts +1 -1
  55. package/src/evaluator/matchers/ew.ts +1 -1
  56. package/src/evaluator/matchers/gte.ts +1 -1
  57. package/src/evaluator/matchers/index.ts +1 -1
  58. package/src/evaluator/matchers/lte.ts +1 -1
  59. package/src/evaluator/matchers/part_of.ts +1 -1
  60. package/src/evaluator/matchers/segment.ts +1 -1
  61. package/src/evaluator/matchers/string.ts +1 -1
  62. package/src/evaluator/matchers/sw.ts +1 -1
  63. package/src/evaluator/matchers/whitelist.ts +1 -1
  64. package/src/evaluator/parser/index.ts +3 -3
  65. package/src/evaluator/types.ts +6 -6
  66. package/src/evaluator/value/index.ts +4 -4
  67. package/src/evaluator/value/sanitize.ts +4 -4
  68. package/src/integrations/ga/GaToSplit.ts +15 -11
  69. package/src/integrations/ga/SplitToGa.ts +10 -10
  70. package/src/integrations/ga/types.ts +4 -4
  71. package/src/integrations/pluggable.ts +3 -3
  72. package/src/integrations/types.ts +4 -3
  73. package/src/logger/index.ts +3 -3
  74. package/src/logger/sdkLogger.ts +2 -1
  75. package/src/logger/types.ts +16 -0
  76. package/src/readiness/sdkReadinessManager.ts +1 -1
  77. package/src/readiness/types.ts +9 -2
  78. package/src/sdkClient/client.ts +13 -13
  79. package/src/sdkClient/clientAttributesDecoration.ts +9 -9
  80. package/src/sdkClient/clientCS.ts +4 -3
  81. package/src/sdkClient/clientInputValidation.ts +15 -15
  82. package/src/sdkClient/sdkClient.ts +2 -2
  83. package/src/sdkClient/sdkClientMethod.ts +2 -2
  84. package/src/sdkClient/sdkClientMethodCS.ts +9 -9
  85. package/src/sdkClient/sdkClientMethodCSWithTT.ts +9 -9
  86. package/src/sdkFactory/index.ts +4 -5
  87. package/src/sdkFactory/types.ts +4 -4
  88. package/src/sdkManager/index.ts +7 -16
  89. package/src/services/splitApi.ts +0 -1
  90. package/src/storages/AbstractSplitsCacheAsync.ts +13 -14
  91. package/src/storages/AbstractSplitsCacheSync.ts +14 -16
  92. package/src/storages/dataLoader.ts +3 -3
  93. package/src/storages/inLocalStorage/MySegmentsCacheInLocal.ts +1 -1
  94. package/src/storages/inLocalStorage/SplitsCacheInLocal.ts +10 -12
  95. package/src/storages/inLocalStorage/index.ts +2 -3
  96. package/src/storages/inMemory/EventsCacheInMemory.ts +4 -4
  97. package/src/storages/inMemory/SplitsCacheInMemory.ts +10 -14
  98. package/src/storages/inRedis/EventsCacheInRedis.ts +4 -4
  99. package/src/storages/inRedis/ImpressionsCacheInRedis.ts +1 -1
  100. package/src/storages/inRedis/RedisAdapter.ts +1 -1
  101. package/src/storages/inRedis/SegmentsCacheInRedis.ts +1 -1
  102. package/src/storages/inRedis/SplitsCacheInRedis.ts +22 -18
  103. package/src/storages/inRedis/TelemetryCacheInRedis.ts +1 -1
  104. package/src/storages/inRedis/index.ts +2 -3
  105. package/src/storages/pluggable/EventsCachePluggable.ts +4 -4
  106. package/src/storages/pluggable/ImpressionsCachePluggable.ts +1 -1
  107. package/src/storages/pluggable/SegmentsCachePluggable.ts +1 -1
  108. package/src/storages/pluggable/SplitsCachePluggable.ts +21 -18
  109. package/src/storages/pluggable/TelemetryCachePluggable.ts +1 -1
  110. package/src/storages/pluggable/index.ts +3 -3
  111. package/src/storages/pluggable/wrapperAdapter.ts +1 -1
  112. package/src/storages/types.ts +30 -54
  113. package/src/sync/offline/LocalhostFromObject.ts +4 -4
  114. package/src/sync/offline/splitsParser/splitsParserFromSettings.ts +8 -8
  115. package/src/sync/offline/syncTasks/fromObjectSyncTask.ts +5 -6
  116. package/src/sync/polling/updaters/mySegmentsUpdater.ts +1 -1
  117. package/src/sync/polling/updaters/segmentChangesUpdater.ts +1 -1
  118. package/src/sync/polling/updaters/splitChangesUpdater.ts +3 -3
  119. package/src/sync/streaming/SSEHandler/index.ts +1 -1
  120. package/src/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.ts +1 -1
  121. package/src/sync/streaming/UpdateWorkers/SplitsUpdateWorker.ts +1 -1
  122. package/src/sync/submitters/submitter.ts +1 -1
  123. package/src/sync/submitters/types.ts +2 -2
  124. package/src/sync/syncTask.ts +1 -1
  125. package/src/trackers/eventTracker.ts +3 -3
  126. package/src/trackers/impressionsTracker.ts +3 -3
  127. package/src/trackers/telemetryTracker.ts +7 -2
  128. package/src/trackers/types.ts +8 -4
  129. package/src/types.ts +1263 -0
  130. package/src/utils/constants/index.ts +1 -1
  131. package/src/utils/inputValidation/apiKey.ts +1 -1
  132. package/src/utils/inputValidation/attribute.ts +1 -1
  133. package/src/utils/inputValidation/attributes.ts +3 -3
  134. package/src/utils/inputValidation/event.ts +1 -1
  135. package/src/utils/inputValidation/eventProperties.ts +3 -3
  136. package/src/utils/inputValidation/eventValue.ts +1 -1
  137. package/src/utils/inputValidation/isOperational.ts +1 -1
  138. package/src/utils/inputValidation/key.ts +3 -3
  139. package/src/utils/inputValidation/preloadedData.ts +3 -3
  140. package/src/utils/inputValidation/split.ts +1 -1
  141. package/src/utils/inputValidation/splitExistance.ts +1 -1
  142. package/src/utils/inputValidation/splits.ts +1 -1
  143. package/src/utils/inputValidation/trafficType.ts +1 -1
  144. package/src/utils/inputValidation/trafficTypeExistance.ts +1 -1
  145. package/src/utils/key/index.ts +9 -9
  146. package/src/utils/settingsValidation/consent.ts +2 -1
  147. package/src/utils/settingsValidation/impressionsMode.ts +3 -3
  148. package/src/utils/settingsValidation/index.ts +0 -1
  149. package/src/utils/settingsValidation/integrations/common.ts +1 -1
  150. package/src/utils/settingsValidation/integrations/configurable.ts +1 -1
  151. package/src/utils/settingsValidation/integrations/pluggable.ts +2 -1
  152. package/src/utils/settingsValidation/localhost/builtin.ts +2 -1
  153. package/src/utils/settingsValidation/localhost/pluggable.ts +2 -1
  154. package/src/utils/settingsValidation/logger/builtinLogger.ts +2 -1
  155. package/src/utils/settingsValidation/logger/pluggableLogger.ts +2 -1
  156. package/src/utils/settingsValidation/splitFilters.ts +9 -7
  157. package/src/utils/settingsValidation/storage/storageCS.ts +2 -1
  158. package/types/consent/sdkUserConsent.d.ts +9 -2
  159. package/types/dtos/types.d.ts +6 -0
  160. package/types/evaluator/Engine.d.ts +3 -3
  161. package/types/evaluator/combiners/and.d.ts +1 -1
  162. package/types/evaluator/combiners/ifelseif.d.ts +1 -1
  163. package/types/evaluator/condition/engineUtils.d.ts +1 -1
  164. package/types/evaluator/condition/index.d.ts +1 -1
  165. package/types/evaluator/index.d.ts +4 -4
  166. package/types/evaluator/matchers/all.d.ts +1 -1
  167. package/types/evaluator/matchers/between.d.ts +1 -1
  168. package/types/evaluator/matchers/boolean.d.ts +1 -1
  169. package/types/evaluator/matchers/cont_all.d.ts +1 -1
  170. package/types/evaluator/matchers/cont_any.d.ts +1 -1
  171. package/types/evaluator/matchers/cont_str.d.ts +1 -1
  172. package/types/evaluator/matchers/dependency.d.ts +1 -1
  173. package/types/evaluator/matchers/eq.d.ts +1 -1
  174. package/types/evaluator/matchers/eq_set.d.ts +1 -1
  175. package/types/evaluator/matchers/ew.d.ts +1 -1
  176. package/types/evaluator/matchers/gte.d.ts +1 -1
  177. package/types/evaluator/matchers/index.d.ts +1 -1
  178. package/types/evaluator/matchers/lte.d.ts +1 -1
  179. package/types/evaluator/matchers/part_of.d.ts +1 -1
  180. package/types/evaluator/matchers/segment.d.ts +1 -1
  181. package/types/evaluator/matchers/string.d.ts +1 -1
  182. package/types/evaluator/matchers/sw.d.ts +1 -1
  183. package/types/evaluator/matchers/whitelist.d.ts +1 -1
  184. package/types/evaluator/parser/index.d.ts +1 -1
  185. package/types/evaluator/types.d.ts +6 -6
  186. package/types/evaluator/value/index.d.ts +3 -3
  187. package/types/evaluator/value/sanitize.d.ts +3 -3
  188. package/types/integrations/ga/GaToSplit.d.ts +4 -4
  189. package/types/integrations/ga/SplitToGa.d.ts +4 -4
  190. package/types/integrations/ga/types.d.ts +4 -4
  191. package/types/integrations/types.d.ts +4 -3
  192. package/types/logger/index.d.ts +5 -3
  193. package/types/logger/sdkLogger.d.ts +2 -1
  194. package/types/logger/types.d.ts +11 -0
  195. package/types/readiness/sdkReadinessManager.d.ts +1 -1
  196. package/types/readiness/types.d.ts +8 -2
  197. package/types/sdkClient/client.d.ts +2 -2
  198. package/types/sdkClient/clientAttributesDecoration.d.ts +8 -8
  199. package/types/sdkClient/clientCS.d.ts +3 -2
  200. package/types/sdkClient/clientInputValidation.d.ts +2 -2
  201. package/types/sdkClient/sdkClient.d.ts +2 -2
  202. package/types/sdkClient/sdkClientMethod.d.ts +2 -2
  203. package/types/sdkClient/sdkClientMethodCS.d.ts +2 -2
  204. package/types/sdkClient/sdkClientMethodCSWithTT.d.ts +2 -2
  205. package/types/sdkFactory/index.d.ts +2 -2
  206. package/types/sdkFactory/types.d.ts +6 -6
  207. package/types/sdkManager/index.d.ts +3 -3
  208. package/types/storages/AbstractSplitsCacheAsync.d.ts +6 -5
  209. package/types/storages/AbstractSplitsCacheSync.d.ts +5 -5
  210. package/types/storages/dataLoader.d.ts +2 -2
  211. package/types/storages/inLocalStorage/MySegmentsCacheInLocal.d.ts +1 -1
  212. package/types/storages/inLocalStorage/SplitsCacheInLocal.d.ts +4 -3
  213. package/types/storages/inLocalStorage/index.d.ts +2 -2
  214. package/types/storages/inMemory/EventsCacheInMemory.d.ts +3 -3
  215. package/types/storages/inMemory/InMemoryStorage.d.ts +1 -1
  216. package/types/storages/inMemory/InMemoryStorageCS.d.ts +1 -1
  217. package/types/storages/inMemory/SplitsCacheInMemory.d.ts +3 -2
  218. package/types/storages/inRedis/EventsCacheInRedis.d.ts +3 -3
  219. package/types/storages/inRedis/ImpressionsCacheInRedis.d.ts +1 -1
  220. package/types/storages/inRedis/RedisAdapter.d.ts +1 -1
  221. package/types/storages/inRedis/SegmentsCacheInRedis.d.ts +1 -1
  222. package/types/storages/inRedis/SplitsCacheInRedis.d.ts +7 -6
  223. package/types/storages/inRedis/TelemetryCacheInRedis.d.ts +1 -1
  224. package/types/storages/inRedis/index.d.ts +2 -2
  225. package/types/storages/pluggable/EventsCachePluggable.d.ts +3 -3
  226. package/types/storages/pluggable/ImpressionsCachePluggable.d.ts +1 -1
  227. package/types/storages/pluggable/SegmentsCachePluggable.d.ts +1 -1
  228. package/types/storages/pluggable/SplitsCachePluggable.d.ts +7 -6
  229. package/types/storages/pluggable/TelemetryCachePluggable.d.ts +1 -1
  230. package/types/storages/pluggable/index.d.ts +2 -3
  231. package/types/storages/pluggable/wrapperAdapter.d.ts +1 -1
  232. package/types/storages/types.d.ts +28 -54
  233. package/types/sync/offline/LocalhostFromObject.d.ts +2 -2
  234. package/types/sync/polling/updaters/mySegmentsUpdater.d.ts +1 -1
  235. package/types/sync/polling/updaters/segmentChangesUpdater.d.ts +1 -1
  236. package/types/sync/polling/updaters/splitChangesUpdater.d.ts +2 -2
  237. package/types/sync/streaming/SSEHandler/index.d.ts +1 -1
  238. package/types/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.d.ts +1 -1
  239. package/types/sync/streaming/UpdateWorkers/SplitsUpdateWorker.d.ts +1 -1
  240. package/types/sync/submitters/submitter.d.ts +1 -1
  241. package/types/sync/submitters/types.d.ts +2 -2
  242. package/types/sync/syncTask.d.ts +1 -1
  243. package/types/trackers/types.d.ts +8 -4
  244. package/types/types.d.ts +1261 -0
  245. package/types/utils/constants/index.d.ts +1 -1
  246. package/types/utils/inputValidation/apiKey.d.ts +1 -1
  247. package/types/utils/inputValidation/attribute.d.ts +1 -1
  248. package/types/utils/inputValidation/attributes.d.ts +3 -3
  249. package/types/utils/inputValidation/event.d.ts +1 -1
  250. package/types/utils/inputValidation/eventProperties.d.ts +3 -3
  251. package/types/utils/inputValidation/eventValue.d.ts +1 -1
  252. package/types/utils/inputValidation/isOperational.d.ts +1 -1
  253. package/types/utils/inputValidation/key.d.ts +3 -3
  254. package/types/utils/inputValidation/preloadedData.d.ts +3 -3
  255. package/types/utils/inputValidation/split.d.ts +1 -1
  256. package/types/utils/inputValidation/splitExistance.d.ts +1 -1
  257. package/types/utils/inputValidation/splits.d.ts +1 -1
  258. package/types/utils/inputValidation/trafficType.d.ts +1 -1
  259. package/types/utils/inputValidation/trafficTypeExistance.d.ts +1 -1
  260. package/types/utils/key/index.d.ts +4 -4
  261. package/types/utils/settingsValidation/consent.d.ts +2 -1
  262. package/types/utils/settingsValidation/impressionsMode.d.ts +3 -3
  263. package/types/utils/settingsValidation/integrations/common.d.ts +1 -1
  264. package/types/utils/settingsValidation/integrations/configurable.d.ts +1 -1
  265. package/types/utils/settingsValidation/integrations/pluggable.d.ts +2 -1
  266. package/types/utils/settingsValidation/localhost/builtin.d.ts +2 -1
  267. package/types/utils/settingsValidation/localhost/pluggable.d.ts +2 -1
  268. package/types/utils/settingsValidation/logger/builtinLogger.d.ts +1 -1
  269. package/types/utils/settingsValidation/logger/pluggableLogger.d.ts +1 -1
  270. package/types/utils/settingsValidation/splitFilters.d.ts +2 -1
  271. package/types/utils/settingsValidation/storage/storageCS.d.ts +3 -2
  272. package/src/types.d.ts +0 -1646
@@ -1,6 +1,7 @@
1
1
  import { KeyBuilderSS } from '../KeyBuilderSS';
2
2
  import { Redis } from 'ioredis';
3
- import { ILogger } from '../../types';
3
+ import { ILogger } from '../../logger/types';
4
+ import { ISplit } from '../../dtos/types';
4
5
  import { AbstractSplitsCacheAsync } from '../AbstractSplitsCacheAsync';
5
6
  /**
6
7
  * ISplitsCacheAsync implementation that stores split definitions in Redis.
@@ -19,13 +20,13 @@ export declare class SplitsCacheInRedis extends AbstractSplitsCacheAsync {
19
20
  * The returned promise is resolved when the operation success
20
21
  * or rejected if it fails (e.g., redis operation fails)
21
22
  */
22
- addSplit(name: string, split: string): Promise<boolean>;
23
+ addSplit(name: string, split: ISplit): Promise<boolean>;
23
24
  /**
24
25
  * Add a list of splits.
25
26
  * The returned promise is resolved when the operation success
26
27
  * or rejected if it fails (e.g., redis operation fails)
27
28
  */
28
- addSplits(entries: [string, string][]): Promise<boolean[]>;
29
+ addSplits(entries: [string, ISplit][]): Promise<boolean[]>;
29
30
  /**
30
31
  * Remove a given split.
31
32
  * The returned promise is resolved when the operation success, with 1 or 0 indicating if the split existed or not.
@@ -42,7 +43,7 @@ export declare class SplitsCacheInRedis extends AbstractSplitsCacheAsync {
42
43
  * Get split definition or null if it's not defined.
43
44
  * Returned promise is rejected if redis operation fails.
44
45
  */
45
- getSplit(name: string): Promise<string | null>;
46
+ getSplit(name: string): Promise<ISplit | null>;
46
47
  /**
47
48
  * Set till number.
48
49
  * The returned promise is resolved when the operation success,
@@ -63,7 +64,7 @@ export declare class SplitsCacheInRedis extends AbstractSplitsCacheAsync {
63
64
  * @TODO we need to benchmark which is the maximun number of commands we could
64
65
  * pipeline without kill redis performance.
65
66
  */
66
- getAll(): Promise<string[]>;
67
+ getAll(): Promise<ISplit[]>;
67
68
  /**
68
69
  * Get list of split names.
69
70
  * The returned promise is resolved with the list of split names,
@@ -87,5 +88,5 @@ export declare class SplitsCacheInRedis extends AbstractSplitsCacheAsync {
87
88
  * Fetches multiple splits definitions.
88
89
  * Returned promise is rejected if redis operation fails.
89
90
  */
90
- getSplits(names: string[]): Promise<Record<string, string | null>>;
91
+ getSplits(names: string[]): Promise<Record<string, ISplit | null>>;
91
92
  }
@@ -1,4 +1,4 @@
1
- import { ILogger } from '../../types';
1
+ import { ILogger } from '../../logger/types';
2
2
  import { Method } from '../../sync/submitters/types';
3
3
  import { KeyBuilderSS } from '../KeyBuilderSS';
4
4
  import { ITelemetryCacheAsync } from '../types';
@@ -1,4 +1,4 @@
1
- import { StorageAsyncFactory } from '../../types';
1
+ import { IStorageAsyncFactory } from '../types';
2
2
  export interface InRedisStorageOptions {
3
3
  prefix?: string;
4
4
  options?: Record<string, any>;
@@ -7,4 +7,4 @@ export interface InRedisStorageOptions {
7
7
  * InRedis storage factory for consumer server-side SplitFactory, that uses `Ioredis` Redis client for Node.
8
8
  * @see {@link https://www.npmjs.com/package/ioredis}
9
9
  */
10
- export declare function InRedisStorage(options?: InRedisStorageOptions): StorageAsyncFactory;
10
+ export declare function InRedisStorage(options?: InRedisStorageOptions): IStorageAsyncFactory;
@@ -1,7 +1,7 @@
1
1
  import { IPluggableStorageWrapper, IEventsCacheAsync } from '../types';
2
2
  import { IMetadata } from '../../dtos/types';
3
- import { EventData } from '../../types';
4
- import { ILogger } from '../../types';
3
+ import { SplitIO } from '../../types';
4
+ import { ILogger } from '../../logger/types';
5
5
  import { StoredEventWithMetadata } from '../../sync/submitters/types';
6
6
  export declare class EventsCachePluggable implements IEventsCacheAsync {
7
7
  private readonly log;
@@ -15,7 +15,7 @@ export declare class EventsCachePluggable implements IEventsCacheAsync {
15
15
  * @returns A promise that is resolved with a boolean value indicating if the push operation succeeded or failed.
16
16
  * Unlike `impressions::track`, The promise will never be rejected.
17
17
  */
18
- track(eventData: EventData): Promise<boolean>;
18
+ track(eventData: SplitIO.EventData): Promise<boolean>;
19
19
  private _toJSON;
20
20
  /**
21
21
  * Returns a promise that resolves with the count of stored events, or 0 if there was some error.
@@ -1,7 +1,7 @@
1
1
  import { IPluggableStorageWrapper, IImpressionsCacheAsync } from '../types';
2
2
  import { IMetadata } from '../../dtos/types';
3
3
  import { ImpressionDTO } from '../../types';
4
- import { ILogger } from '../../types';
4
+ import { ILogger } from '../../logger/types';
5
5
  import { StoredImpressionWithMetadata } from '../../sync/submitters/types';
6
6
  export declare class ImpressionsCachePluggable implements IImpressionsCacheAsync {
7
7
  private readonly log;
@@ -1,6 +1,6 @@
1
1
  import { KeyBuilderSS } from '../KeyBuilderSS';
2
2
  import { IPluggableStorageWrapper, ISegmentsCacheAsync } from '../types';
3
- import { ILogger } from '../../types';
3
+ import { ILogger } from '../../logger/types';
4
4
  /**
5
5
  * ISegmentsCacheAsync implementation for pluggable storages.
6
6
  */
@@ -1,6 +1,7 @@
1
1
  import { KeyBuilder } from '../KeyBuilder';
2
2
  import { IPluggableStorageWrapper } from '../types';
3
- import { ILogger } from '../../types';
3
+ import { ILogger } from '../../logger/types';
4
+ import { ISplit } from '../../dtos/types';
4
5
  import { AbstractSplitsCacheAsync } from '../AbstractSplitsCacheAsync';
5
6
  /**
6
7
  * ISplitsCacheAsync implementation for pluggable storages.
@@ -23,13 +24,13 @@ export declare class SplitsCachePluggable extends AbstractSplitsCacheAsync {
23
24
  * The returned promise is resolved when the operation success
24
25
  * or rejected if it fails (e.g., wrapper operation fails)
25
26
  */
26
- addSplit(name: string, split: string): Promise<boolean>;
27
+ addSplit(name: string, split: ISplit): Promise<boolean>;
27
28
  /**
28
29
  * Add a list of splits.
29
30
  * The returned promise is resolved when the operation success
30
31
  * or rejected if it fails (e.g., wrapper operation fails)
31
32
  */
32
- addSplits(entries: [string, string][]): Promise<boolean[]>;
33
+ addSplits(entries: [string, ISplit][]): Promise<boolean[]>;
33
34
  /**
34
35
  * Remove a given split.
35
36
  * The returned promise is resolved when the operation success, with a boolean indicating if the split existed or not.
@@ -47,19 +48,19 @@ export declare class SplitsCachePluggable extends AbstractSplitsCacheAsync {
47
48
  * The returned promise is resolved with the split definition or null if it's not defined,
48
49
  * or rejected if wrapper operation fails.
49
50
  */
50
- getSplit(name: string): Promise<string | null>;
51
+ getSplit(name: string): Promise<ISplit | null>;
51
52
  /**
52
53
  * Get list of splits.
53
54
  * The returned promise is resolved with a map of split names to their split definition or null if it's not defined,
54
55
  * or rejected if wrapper operation fails.
55
56
  */
56
- getSplits(names: string[]): Promise<Record<string, string | null>>;
57
+ getSplits(names: string[]): Promise<Record<string, ISplit | null>>;
57
58
  /**
58
59
  * Get list of all split definitions.
59
60
  * The returned promise is resolved with the list of split definitions,
60
61
  * or rejected if wrapper operation fails.
61
62
  */
62
- getAll(): Promise<string[]>;
63
+ getAll(): Promise<ISplit[]>;
63
64
  /**
64
65
  * Get list of split names.
65
66
  * The returned promise is resolved with the list of split names,
@@ -1,4 +1,4 @@
1
- import { ILogger } from '../../types';
1
+ import { ILogger } from '../../logger/types';
2
2
  import { Method } from '../../sync/submitters/types';
3
3
  import { KeyBuilderSS } from '../KeyBuilderSS';
4
4
  import { IPluggableStorageWrapper, ITelemetryCacheAsync } from '../types';
@@ -1,5 +1,4 @@
1
- import { IPluggableStorageWrapper } from '../types';
2
- import { StorageAsyncFactory } from '../../types';
1
+ import { IPluggableStorageWrapper, IStorageAsyncFactory } from '../types';
3
2
  export interface PluggableStorageOptions {
4
3
  prefix?: string;
5
4
  wrapper: IPluggableStorageWrapper;
@@ -7,4 +6,4 @@ export interface PluggableStorageOptions {
7
6
  /**
8
7
  * Pluggable storage factory for consumer server-side & client-side SplitFactory.
9
8
  */
10
- export declare function PluggableStorage(options: PluggableStorageOptions): StorageAsyncFactory;
9
+ export declare function PluggableStorage(options: PluggableStorageOptions): IStorageAsyncFactory;
@@ -1,4 +1,4 @@
1
- import { ILogger } from '../../types';
1
+ import { ILogger } from '../../logger/types';
2
2
  import { IPluggableStorageWrapper } from '../types';
3
3
  export declare const METHODS_TO_PROMISE_WRAP: string[];
4
4
  /**
@@ -1,6 +1,7 @@
1
- import { MaybeThenable, IMetadata } from '../dtos/types';
1
+ import { MaybeThenable, IMetadata, ISplitFiltersValidation, ISplit } from '../dtos/types';
2
+ import { ILogger } from '../logger/types';
2
3
  import { EventDataType, HttpErrors, HttpLatencies, ImpressionDataType, LastSync, Method, MethodExceptions, MethodLatencies, OperationType, StoredEventWithMetadata, StoredImpressionWithMetadata, StreamingEvent } from '../sync/submitters/types';
3
- import { ImpressionDTO, SDKMode, ILogger, EventData, ISplitFiltersValidation } from '../types';
4
+ import { SplitIO, ImpressionDTO, SDKMode } from '../types';
4
5
  /**
5
6
  * Interface of a pluggable storage wrapper.
6
7
  */
@@ -177,13 +178,13 @@ export interface IPluggableStorageWrapper {
177
178
  }
178
179
  /** Splits cache */
179
180
  export interface ISplitsCacheBase {
180
- addSplits(entries: [string, string][]): MaybeThenable<boolean[] | void>;
181
+ addSplits(entries: [string, ISplit][]): MaybeThenable<boolean[] | void>;
181
182
  removeSplits(names: string[]): MaybeThenable<boolean[] | void>;
182
- getSplit(name: string): MaybeThenable<string | null>;
183
- getSplits(names: string[]): MaybeThenable<Record<string, string | null>>;
183
+ getSplit(name: string): MaybeThenable<ISplit | null>;
184
+ getSplits(names: string[]): MaybeThenable<Record<string, ISplit | null>>;
184
185
  setChangeNumber(changeNumber: number): MaybeThenable<boolean | void>;
185
186
  getChangeNumber(): MaybeThenable<number>;
186
- getAll(): MaybeThenable<string[]>;
187
+ getAll(): MaybeThenable<ISplit[]>;
187
188
  getSplitNames(): MaybeThenable<string[]>;
188
189
  trafficTypeExists(trafficType: string): MaybeThenable<boolean>;
189
190
  usesSegments(): MaybeThenable<boolean>;
@@ -192,13 +193,13 @@ export interface ISplitsCacheBase {
192
193
  killLocally(name: string, defaultTreatment: string, changeNumber: number): MaybeThenable<boolean>;
193
194
  }
194
195
  export interface ISplitsCacheSync extends ISplitsCacheBase {
195
- addSplits(entries: [string, string][]): boolean[];
196
+ addSplits(entries: [string, ISplit][]): boolean[];
196
197
  removeSplits(names: string[]): boolean[];
197
- getSplit(name: string): string | null;
198
- getSplits(names: string[]): Record<string, string | null>;
198
+ getSplit(name: string): ISplit | null;
199
+ getSplits(names: string[]): Record<string, ISplit | null>;
199
200
  setChangeNumber(changeNumber: number): boolean;
200
201
  getChangeNumber(): number;
201
- getAll(): string[];
202
+ getAll(): ISplit[];
202
203
  getSplitNames(): string[];
203
204
  trafficTypeExists(trafficType: string): boolean;
204
205
  usesSegments(): boolean;
@@ -207,13 +208,13 @@ export interface ISplitsCacheSync extends ISplitsCacheBase {
207
208
  killLocally(name: string, defaultTreatment: string, changeNumber: number): boolean;
208
209
  }
209
210
  export interface ISplitsCacheAsync extends ISplitsCacheBase {
210
- addSplits(entries: [string, string][]): Promise<boolean[] | void>;
211
+ addSplits(entries: [string, ISplit][]): Promise<boolean[] | void>;
211
212
  removeSplits(names: string[]): Promise<boolean[] | void>;
212
- getSplit(name: string): Promise<string | null>;
213
- getSplits(names: string[]): Promise<Record<string, string | null>>;
213
+ getSplit(name: string): Promise<ISplit | null>;
214
+ getSplits(names: string[]): Promise<Record<string, ISplit | null>>;
214
215
  setChangeNumber(changeNumber: number): Promise<boolean | void>;
215
216
  getChangeNumber(): Promise<number>;
216
- getAll(): Promise<string[]>;
217
+ getAll(): Promise<ISplit[]>;
217
218
  getSplitNames(): Promise<string[]>;
218
219
  trafficTypeExists(trafficType: string): Promise<boolean>;
219
220
  usesSegments(): Promise<boolean>;
@@ -259,7 +260,7 @@ export interface IImpressionsCacheBase {
259
260
  track(data: ImpressionDTO[]): MaybeThenable<void>;
260
261
  }
261
262
  export interface IEventsCacheBase {
262
- track(data: EventData, size?: number): MaybeThenable<boolean>;
263
+ track(data: SplitIO.EventData, size?: number): MaybeThenable<boolean>;
263
264
  }
264
265
  /** Impressions and events cache for standalone mode (sync) */
265
266
  export interface IRecorderCacheProducerSync<T> {
@@ -271,8 +272,8 @@ export interface IImpressionsCacheSync extends IImpressionsCacheBase, IRecorderC
271
272
  track(data: ImpressionDTO[]): void;
272
273
  setOnFullQueueCb(cb: () => void): void;
273
274
  }
274
- export interface IEventsCacheSync extends IEventsCacheBase, IRecorderCacheProducerSync<EventData[]> {
275
- track(data: EventData, size?: number): boolean;
275
+ export interface IEventsCacheSync extends IEventsCacheBase, IRecorderCacheProducerSync<SplitIO.EventData[]> {
276
+ track(data: SplitIO.EventData, size?: number): boolean;
276
277
  setOnFullQueueCb(cb: () => void): void;
277
278
  }
278
279
  /** Impressions and events cache for consumer and producer mode (async) */
@@ -285,7 +286,7 @@ export interface IImpressionsCacheAsync extends IImpressionsCacheBase, IRecorder
285
286
  track(data: ImpressionDTO[]): Promise<void>;
286
287
  }
287
288
  export interface IEventsCacheAsync extends IEventsCacheBase, IRecorderCacheProducerAsync<StoredEventWithMetadata[]> {
288
- track(data: EventData, size?: number): Promise<boolean>;
289
+ track(data: SplitIO.EventData, size?: number): Promise<boolean>;
289
290
  }
290
291
  /**
291
292
  * Impression counts cache for impressions dedup in standalone and producer mode.
@@ -392,39 +393,12 @@ export interface IStorageFactoryParams {
392
393
  onReadyCb: (error?: any) => void;
393
394
  metadata: IMetadata;
394
395
  }
395
- /**
396
- * Defines the format of Split data to preload on the factory storage (cache).
397
- */
398
- export interface PreloadedData {
399
- /**
400
- * Timestamp of the last moment the data was synchronized with Split servers.
401
- * If this value is older than 10 days ago (expiration time policy), the data is not used to update the storage content.
402
- * @TODO configurable expiration time policy?
403
- */
404
- lastUpdated: number;
405
- /**
406
- * Change number of the preloaded data.
407
- * If this value is older than the current changeNumber at the storage, the data is not used to update the storage content.
408
- */
409
- since: number;
410
- /**
411
- * Map of splits to their serialized definitions.
412
- */
413
- splitsData: {
414
- [splitName: string]: string;
415
- };
416
- /**
417
- * Optional map of user keys to their list of segments.
418
- * @TODO remove when releasing first version
419
- */
420
- mySegmentsData?: {
421
- [key: string]: string[];
422
- };
423
- /**
424
- * Optional map of segments to their serialized definitions.
425
- * This property is ignored if `mySegmentsData` was provided.
426
- */
427
- segmentsData?: {
428
- [segmentName: string]: string;
429
- };
430
- }
396
+ export declare type StorageType = 'MEMORY' | 'LOCALSTORAGE' | 'REDIS' | 'PLUGGABLE';
397
+ export declare type IStorageSyncFactory = {
398
+ readonly type: StorageType;
399
+ (params: IStorageFactoryParams): IStorageSync;
400
+ };
401
+ export declare type IStorageAsyncFactory = {
402
+ type: StorageType;
403
+ (params: IStorageFactoryParams): IStorageAsync;
404
+ };
@@ -1,2 +1,2 @@
1
- import { LocalhostFactory } from '../../types';
2
- export declare function LocalhostFromObject(): LocalhostFactory;
1
+ import { SplitIO } from '../../types';
2
+ export declare function LocalhostFromObject(): SplitIO.LocalhostFactory;
@@ -1,7 +1,7 @@
1
1
  import { IMySegmentsFetcher } from '../fetchers/types';
2
2
  import { ISegmentsCacheSync, ISplitsCacheSync } from '../../../storages/types';
3
3
  import { ISegmentsEventEmitter } from '../../../readiness/types';
4
- import { ILogger } from '../../../types';
4
+ import { ILogger } from '../../../logger/types';
5
5
  declare type IMySegmentsUpdater = (segmentList?: string[], noCache?: boolean) => Promise<boolean>;
6
6
  /**
7
7
  * factory of MySegments updater, a task that:
@@ -1,7 +1,7 @@
1
1
  import { ISegmentChangesFetcher } from '../fetchers/types';
2
2
  import { ISegmentsCacheBase } from '../../../storages/types';
3
3
  import { IReadinessManager } from '../../../readiness/types';
4
- import { ILogger } from '../../../types';
4
+ import { ILogger } from '../../../logger/types';
5
5
  declare type ISegmentChangesUpdater = (fetchOnlyNew?: boolean, segmentName?: string, noCache?: boolean, till?: number) => Promise<boolean>;
6
6
  /**
7
7
  * Factory of SegmentChanges updater, a task that:
@@ -3,7 +3,7 @@ import { ISegmentsCacheBase, ISplitsCacheBase } from '../../../storages/types';
3
3
  import { ISplitChangesFetcher } from '../fetchers/types';
4
4
  import { ISplit } from '../../../dtos/types';
5
5
  import { ISplitsEventEmitter } from '../../../readiness/types';
6
- import { ILogger } from '../../../types';
6
+ import { ILogger } from '../../../logger/types';
7
7
  declare type ISplitChangesUpdater = (noCache?: boolean, till?: number) => Promise<boolean>;
8
8
  /**
9
9
  * Collect segments from a raw split definition.
@@ -11,7 +11,7 @@ declare type ISplitChangesUpdater = (noCache?: boolean, till?: number) => Promis
11
11
  */
12
12
  export declare function parseSegments({ conditions }: ISplit): ISet<string>;
13
13
  interface ISplitMutations {
14
- added: [string, string][];
14
+ added: [string, ISplit][];
15
15
  removed: string[];
16
16
  segments: string[];
17
17
  }
@@ -1,6 +1,6 @@
1
1
  import { IPushEventEmitter } from '../types';
2
2
  import { ISseEventHandler } from '../SSEClient/types';
3
- import { ILogger } from '../../../types';
3
+ import { ILogger } from '../../../logger/types';
4
4
  import { ITelemetryTracker } from '../../../trackers/types';
5
5
  /**
6
6
  * Factory for SSEHandler, which processes SSEClient messages and emits the corresponding push events.
@@ -1,4 +1,4 @@
1
- import { ILogger } from '../../../types';
1
+ import { ILogger } from '../../../logger/types';
2
2
  import { ISegmentsCacheSync } from '../../../storages/types';
3
3
  import { ISegmentsSyncTask } from '../../polling/types';
4
4
  import { IUpdateWorker } from './types';
@@ -1,4 +1,4 @@
1
- import { ILogger } from '../../../types';
1
+ import { ILogger } from '../../../logger/types';
2
2
  import { ISplitsEventEmitter } from '../../../readiness/types';
3
3
  import { ISplitsCacheSync } from '../../../storages/types';
4
4
  import { ISegmentsSyncTask, ISplitsSyncTask } from '../../polling/types';
@@ -1,6 +1,6 @@
1
1
  import { ISyncTask } from '../types';
2
2
  import { IRecorderCacheProducerSync } from '../../storages/types';
3
- import { ILogger } from '../../types';
3
+ import { ILogger } from '../../logger/types';
4
4
  import { IResponse } from '../../services/types';
5
5
  /**
6
6
  * Base function to create submitters, such as ImpressionsSubmitter and EventsSubmitter
@@ -1,5 +1,5 @@
1
1
  import { IMetadata } from '../../dtos/types';
2
- import { EventData } from '../../types';
2
+ import { SplitIO } from '../../types';
3
3
  import { ISyncTask } from '../types';
4
4
  export declare type ImpressionsPayload = {
5
5
  /** Split name */
@@ -57,7 +57,7 @@ export declare type StoredEventWithMetadata = {
57
57
  /** Metadata */
58
58
  m: IMetadata;
59
59
  /** Stored event */
60
- e: EventData;
60
+ e: SplitIO.EventData;
61
61
  };
62
62
  /**
63
63
  * Telemetry usage stats
@@ -1,4 +1,4 @@
1
- import { ILogger } from '../types';
1
+ import { ILogger } from '../logger/types';
2
2
  import { ISyncTask } from './types';
3
3
  /**
4
4
  * Creates an object that handles the periodic execution of a given task via "start" and "stop" methods.
@@ -1,18 +1,18 @@
1
- import { ImpressionDTO, EventData, ImpressionData, Attributes } from '../types';
1
+ import { SplitIO, ImpressionDTO } from '../types';
2
2
  import { StreamingEventType, Method, OperationType } from '../sync/submitters/types';
3
3
  import { IEventsCacheBase } from '../storages/types';
4
4
  import { NetworkError } from '../services/types';
5
5
  /** Events tracker */
6
6
  export interface IEventsHandler {
7
- handleEvent(eventData: EventData): any;
7
+ handleEvent(eventData: SplitIO.EventData): any;
8
8
  }
9
9
  export declare type IEventTracker = IEventsCacheBase;
10
10
  /** Impressions tracker */
11
11
  export interface IImpressionsHandler {
12
- handleImpression(impressionData: ImpressionData): any;
12
+ handleImpression(impressionData: SplitIO.ImpressionData): any;
13
13
  }
14
14
  export interface IImpressionsTracker {
15
- track(impressions: ImpressionDTO[], attributes?: Attributes): void;
15
+ track(impressions: ImpressionDTO[], attributes?: SplitIO.Attributes): void;
16
16
  }
17
17
  /** Telemetry tracker */
18
18
  export declare type AUTH_REJECTION = 80;
@@ -33,4 +33,8 @@ export interface ITelemetryTracker {
33
33
  * Records streaming event
34
34
  */
35
35
  streamingEvent(e: StreamingEventType | AUTH_REJECTION, d?: number): void;
36
+ /**
37
+ * Records tag
38
+ */
39
+ addTag(tag: string): void;
36
40
  }