@splitsoftware/splitio-commons 2.5.0-rc.0 → 11.5.0-rc.0

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 (881) hide show
  1. package/CHANGES.txt +893 -142
  2. package/CONTRIBUTORS-GUIDE.md +26 -16
  3. package/README.md +43 -5
  4. package/cjs/factory/browser.js +73 -0
  5. package/cjs/factory/node.js +79 -0
  6. package/cjs/factory/package.json +4 -0
  7. package/cjs/index.js +3 -16
  8. package/cjs/{utils/MinEvents.js → platform/EventEmitter.js} +153 -27
  9. package/cjs/platform/browser.js +15 -0
  10. package/cjs/platform/filter/bloomFilter.js +32 -0
  11. package/cjs/platform/getEventSource/browser.js +7 -0
  12. package/cjs/platform/getEventSource/eventsource.js +480 -0
  13. package/cjs/platform/getEventSource/node.js +25 -0
  14. package/cjs/platform/getEventSource/package.json +4 -0
  15. package/cjs/platform/getFetch/browser.js +9 -0
  16. package/cjs/platform/getFetch/node.js +26 -0
  17. package/cjs/platform/getFetch/package.json +4 -0
  18. package/cjs/platform/getOptions/node.js +25 -0
  19. package/cjs/platform/node.js +18 -0
  20. package/cjs/platform/package.json +4 -0
  21. package/cjs/settings/browser.js +21 -0
  22. package/cjs/settings/defaults/browser.js +21 -0
  23. package/cjs/settings/defaults/node.js +23 -0
  24. package/cjs/{listeners/types.js → settings/defaults/version.js} +2 -0
  25. package/cjs/settings/integrations/browser.js +9 -0
  26. package/cjs/settings/node.js +22 -0
  27. package/cjs/settings/package.json +4 -0
  28. package/cjs/settings/runtime/node.js +22 -0
  29. package/cjs/settings/storage/browser.js +35 -0
  30. package/cjs/settings/storage/node.js +67 -0
  31. package/cjs/sync/offline/LocalhostFromFile.js +8 -0
  32. package/cjs/sync/offline/splitsParserFromFile.js +148 -0
  33. package/cjs/umd.js +5 -0
  34. package/cjs/utils/ip.js +114 -0
  35. package/client/package.json +5 -0
  36. package/esm/factory/browser.js +69 -0
  37. package/esm/factory/node.js +75 -0
  38. package/esm/factory/package.json +4 -0
  39. package/esm/index.js +1 -10
  40. package/esm/{utils/MinEvents.js → platform/EventEmitter.js} +143 -17
  41. package/esm/platform/browser.js +12 -0
  42. package/esm/platform/filter/bloomFilter.js +28 -0
  43. package/esm/platform/getEventSource/browser.js +3 -0
  44. package/esm/platform/getEventSource/eventsource.js +480 -0
  45. package/esm/platform/getEventSource/node.js +19 -0
  46. package/esm/platform/getEventSource/package.json +4 -0
  47. package/esm/platform/getFetch/browser.js +4 -0
  48. package/esm/platform/getFetch/node.js +21 -0
  49. package/esm/platform/getFetch/package.json +4 -0
  50. package/esm/platform/getOptions/node.js +20 -0
  51. package/esm/platform/node.js +14 -0
  52. package/esm/platform/package.json +4 -0
  53. package/esm/settings/browser.js +17 -0
  54. package/esm/settings/defaults/browser.js +18 -0
  55. package/esm/settings/defaults/node.js +20 -0
  56. package/esm/settings/defaults/version.js +1 -0
  57. package/esm/settings/integrations/browser.js +5 -0
  58. package/esm/settings/node.js +18 -0
  59. package/esm/settings/package.json +4 -0
  60. package/esm/settings/runtime/node.js +17 -0
  61. package/esm/settings/storage/browser.js +31 -0
  62. package/esm/settings/storage/node.js +63 -0
  63. package/esm/sync/offline/LocalhostFromFile.js +5 -0
  64. package/esm/sync/offline/splitsParserFromFile.js +143 -0
  65. package/esm/umd.js +3 -0
  66. package/esm/utils/ip.js +109 -0
  67. package/package.json +99 -58
  68. package/server/package.json +5 -0
  69. package/src/factory/browser.js +85 -0
  70. package/src/factory/node.js +92 -0
  71. package/src/factory/package.json +4 -0
  72. package/src/index.js +1 -0
  73. package/src/{utils/MinEvents.ts → platform/EventEmitter.js} +164 -19
  74. package/src/platform/browser.js +14 -0
  75. package/src/platform/filter/bloomFilter.js +33 -0
  76. package/src/platform/getEventSource/browser.js +3 -0
  77. package/src/platform/getEventSource/eventsource.js +519 -0
  78. package/src/platform/getEventSource/node.js +20 -0
  79. package/src/platform/getEventSource/package.json +4 -0
  80. package/src/platform/getFetch/browser.js +5 -0
  81. package/src/platform/getFetch/node.js +24 -0
  82. package/src/platform/getFetch/package.json +4 -0
  83. package/src/platform/getOptions/node.js +23 -0
  84. package/src/platform/node.js +16 -0
  85. package/src/platform/package.json +4 -0
  86. package/src/settings/browser.js +20 -0
  87. package/src/settings/defaults/browser.js +21 -0
  88. package/src/settings/defaults/node.js +23 -0
  89. package/src/settings/defaults/version.js +1 -0
  90. package/src/settings/integrations/browser.js +6 -0
  91. package/src/settings/node.js +21 -0
  92. package/src/settings/package.json +4 -0
  93. package/src/settings/runtime/node.js +21 -0
  94. package/src/settings/storage/browser.js +47 -0
  95. package/src/settings/storage/node.js +84 -0
  96. package/src/sync/offline/LocalhostFromFile.js +6 -0
  97. package/src/sync/offline/splitsParserFromFile.js +173 -0
  98. package/src/umd.js +4 -0
  99. package/src/utils/ip.js +123 -0
  100. package/types/client/index.d.ts +15 -0
  101. package/types/index.d.ts +24 -1
  102. package/types/server/index.d.ts +21 -0
  103. package/types/splitio.d.ts +2 -2087
  104. package/cjs/consent/index.js +0 -10
  105. package/cjs/consent/sdkUserConsent.js +0 -60
  106. package/cjs/dtos/types.js +0 -2
  107. package/cjs/evaluator/Engine.js +0 -58
  108. package/cjs/evaluator/combiners/and.js +0 -25
  109. package/cjs/evaluator/combiners/ifelseif.js +0 -48
  110. package/cjs/evaluator/condition/engineUtils.js +0 -29
  111. package/cjs/evaluator/condition/index.js +0 -41
  112. package/cjs/evaluator/convertions/index.js +0 -11
  113. package/cjs/evaluator/index.js +0 -134
  114. package/cjs/evaluator/matchers/all.js +0 -9
  115. package/cjs/evaluator/matchers/between.js +0 -10
  116. package/cjs/evaluator/matchers/boolean.js +0 -10
  117. package/cjs/evaluator/matchers/cont_all.js +0 -23
  118. package/cjs/evaluator/matchers/cont_any.js +0 -18
  119. package/cjs/evaluator/matchers/cont_str.js +0 -11
  120. package/cjs/evaluator/matchers/dependency.js +0 -28
  121. package/cjs/evaluator/matchers/eq.js +0 -10
  122. package/cjs/evaluator/matchers/eq_set.js +0 -20
  123. package/cjs/evaluator/matchers/ew.js +0 -11
  124. package/cjs/evaluator/matchers/gte.js +0 -10
  125. package/cjs/evaluator/matchers/index.js +0 -66
  126. package/cjs/evaluator/matchers/large_segment.js +0 -10
  127. package/cjs/evaluator/matchers/lte.js +0 -10
  128. package/cjs/evaluator/matchers/matcherTypes.js +0 -46
  129. package/cjs/evaluator/matchers/part_of.js +0 -20
  130. package/cjs/evaluator/matchers/prerequisites.js +0 -22
  131. package/cjs/evaluator/matchers/rbsegment.js +0 -56
  132. package/cjs/evaluator/matchers/segment.js +0 -10
  133. package/cjs/evaluator/matchers/semver_between.js +0 -14
  134. package/cjs/evaluator/matchers/semver_eq.js +0 -13
  135. package/cjs/evaluator/matchers/semver_gte.js +0 -13
  136. package/cjs/evaluator/matchers/semver_inlist.js +0 -16
  137. package/cjs/evaluator/matchers/semver_lte.js +0 -13
  138. package/cjs/evaluator/matchers/string.js +0 -11
  139. package/cjs/evaluator/matchers/sw.js +0 -11
  140. package/cjs/evaluator/matchers/whitelist.js +0 -11
  141. package/cjs/evaluator/matchersTransform/index.js +0 -104
  142. package/cjs/evaluator/matchersTransform/segment.js +0 -12
  143. package/cjs/evaluator/matchersTransform/unaryNumeric.js +0 -10
  144. package/cjs/evaluator/matchersTransform/whitelist.js +0 -10
  145. package/cjs/evaluator/parser/index.js +0 -61
  146. package/cjs/evaluator/treatments/index.js +0 -42
  147. package/cjs/evaluator/types.js +0 -2
  148. package/cjs/evaluator/value/index.js +0 -37
  149. package/cjs/evaluator/value/sanitize.js +0 -94
  150. package/cjs/integrations/pluggable.js +0 -35
  151. package/cjs/integrations/types.js +0 -2
  152. package/cjs/listeners/browser.js +0 -121
  153. package/cjs/listeners/node.js +0 -68
  154. package/cjs/logger/browser/DebugLogger.js +0 -9
  155. package/cjs/logger/browser/ErrorLogger.js +0 -9
  156. package/cjs/logger/browser/InfoLogger.js +0 -9
  157. package/cjs/logger/browser/WarnLogger.js +0 -9
  158. package/cjs/logger/constants.js +0 -140
  159. package/cjs/logger/index.js +0 -100
  160. package/cjs/logger/messages/debug.js +0 -36
  161. package/cjs/logger/messages/error.js +0 -42
  162. package/cjs/logger/messages/info.js +0 -37
  163. package/cjs/logger/messages/warn.js +0 -42
  164. package/cjs/logger/sdkLogger.js +0 -45
  165. package/cjs/logger/types.js +0 -2
  166. package/cjs/readiness/constants.js +0 -13
  167. package/cjs/readiness/readinessManager.js +0 -154
  168. package/cjs/readiness/sdkReadinessManager.js +0 -104
  169. package/cjs/readiness/types.js +0 -2
  170. package/cjs/sdkClient/client.js +0 -183
  171. package/cjs/sdkClient/clientAttributesDecoration.js +0 -122
  172. package/cjs/sdkClient/clientCS.js +0 -30
  173. package/cjs/sdkClient/clientInputValidation.js +0 -147
  174. package/cjs/sdkClient/identity.js +0 -7
  175. package/cjs/sdkClient/sdkClient.js +0 -64
  176. package/cjs/sdkClient/sdkClientMethod.js +0 -22
  177. package/cjs/sdkClient/sdkClientMethodCS.js +0 -66
  178. package/cjs/sdkFactory/index.js +0 -108
  179. package/cjs/sdkFactory/types.js +0 -2
  180. package/cjs/sdkManager/index.js +0 -96
  181. package/cjs/services/decorateHeaders.js +0 -40
  182. package/cjs/services/splitApi.js +0 -131
  183. package/cjs/services/splitHttpClient.js +0 -82
  184. package/cjs/services/types.js +0 -2
  185. package/cjs/storages/AbstractMySegmentsCacheSync.js +0 -60
  186. package/cjs/storages/AbstractSplitsCacheAsync.js +0 -51
  187. package/cjs/storages/AbstractSplitsCacheSync.js +0 -75
  188. package/cjs/storages/KeyBuilder.js +0 -68
  189. package/cjs/storages/KeyBuilderCS.js +0 -65
  190. package/cjs/storages/KeyBuilderSS.js +0 -60
  191. package/cjs/storages/dataLoader.js +0 -109
  192. package/cjs/storages/findLatencyIndex.js +0 -18
  193. package/cjs/storages/inLocalStorage/MySegmentsCacheInLocal.js +0 -81
  194. package/cjs/storages/inLocalStorage/RBSegmentsCacheInLocal.js +0 -121
  195. package/cjs/storages/inLocalStorage/SplitsCacheInLocal.js +0 -208
  196. package/cjs/storages/inLocalStorage/constants.js +0 -5
  197. package/cjs/storages/inLocalStorage/index.js +0 -73
  198. package/cjs/storages/inLocalStorage/validateCache.js +0 -80
  199. package/cjs/storages/inMemory/AttributesCacheInMemory.js +0 -70
  200. package/cjs/storages/inMemory/EventsCacheInMemory.js +0 -63
  201. package/cjs/storages/inMemory/ImpressionCountsCacheInMemory.js +0 -65
  202. package/cjs/storages/inMemory/ImpressionsCacheInMemory.js +0 -51
  203. package/cjs/storages/inMemory/InMemoryStorage.js +0 -46
  204. package/cjs/storages/inMemory/InMemoryStorageCS.js +0 -81
  205. package/cjs/storages/inMemory/MySegmentsCacheInMemory.js +0 -46
  206. package/cjs/storages/inMemory/RBSegmentsCacheInMemory.js +0 -65
  207. package/cjs/storages/inMemory/SegmentsCacheInMemory.js +0 -61
  208. package/cjs/storages/inMemory/SplitsCacheInMemory.js +0 -121
  209. package/cjs/storages/inMemory/TelemetryCacheInMemory.js +0 -207
  210. package/cjs/storages/inMemory/UniqueKeysCacheInMemory.js +0 -72
  211. package/cjs/storages/inMemory/UniqueKeysCacheInMemoryCS.js +0 -71
  212. package/cjs/storages/inRedis/EventsCacheInRedis.js +0 -60
  213. package/cjs/storages/inRedis/ImpressionCountsCacheInRedis.js +0 -85
  214. package/cjs/storages/inRedis/ImpressionsCacheInRedis.js +0 -45
  215. package/cjs/storages/inRedis/RBSegmentsCacheInRedis.js +0 -64
  216. package/cjs/storages/inRedis/RedisAdapter.js +0 -195
  217. package/cjs/storages/inRedis/SegmentsCacheInRedis.js +0 -57
  218. package/cjs/storages/inRedis/SplitsCacheInRedis.js +0 -243
  219. package/cjs/storages/inRedis/TelemetryCacheInRedis.js +0 -124
  220. package/cjs/storages/inRedis/UniqueKeysCacheInRedis.js +0 -69
  221. package/cjs/storages/inRedis/constants.js +0 -7
  222. package/cjs/storages/inRedis/index.js +0 -73
  223. package/cjs/storages/pluggable/EventsCachePluggable.js +0 -64
  224. package/cjs/storages/pluggable/ImpressionCountsCachePluggable.js +0 -81
  225. package/cjs/storages/pluggable/ImpressionsCachePluggable.js +0 -48
  226. package/cjs/storages/pluggable/RBSegmentsCachePluggable.js +0 -64
  227. package/cjs/storages/pluggable/SegmentsCachePluggable.js +0 -80
  228. package/cjs/storages/pluggable/SplitsCachePluggable.js +0 -212
  229. package/cjs/storages/pluggable/TelemetryCachePluggable.js +0 -141
  230. package/cjs/storages/pluggable/UniqueKeysCachePluggable.js +0 -62
  231. package/cjs/storages/pluggable/constants.js +0 -4
  232. package/cjs/storages/pluggable/inMemoryWrapper.js +0 -141
  233. package/cjs/storages/pluggable/index.js +0 -135
  234. package/cjs/storages/pluggable/wrapperAdapter.js +0 -53
  235. package/cjs/storages/types.js +0 -2
  236. package/cjs/storages/utils.js +0 -74
  237. package/cjs/sync/offline/LocalhostFromObject.js +0 -8
  238. package/cjs/sync/offline/splitsParser/parseCondition.js +0 -55
  239. package/cjs/sync/offline/splitsParser/splitsParserFromSettings.js +0 -62
  240. package/cjs/sync/offline/splitsParser/types.js +0 -2
  241. package/cjs/sync/offline/syncManagerOffline.js +0 -52
  242. package/cjs/sync/offline/syncTasks/fromObjectSyncTask.js +0 -72
  243. package/cjs/sync/polling/fetchers/mySegmentsFetcher.js +0 -18
  244. package/cjs/sync/polling/fetchers/segmentChangesFetcher.js +0 -34
  245. package/cjs/sync/polling/fetchers/splitChangesFetcher.js +0 -68
  246. package/cjs/sync/polling/fetchers/types.js +0 -2
  247. package/cjs/sync/polling/pollingManagerCS.js +0 -100
  248. package/cjs/sync/polling/pollingManagerSS.js +0 -49
  249. package/cjs/sync/polling/syncTasks/mySegmentsSyncTask.js +0 -13
  250. package/cjs/sync/polling/syncTasks/segmentsSyncTask.js +0 -13
  251. package/cjs/sync/polling/syncTasks/splitsSyncTask.js +0 -13
  252. package/cjs/sync/polling/types.js +0 -2
  253. package/cjs/sync/polling/updaters/mySegmentsUpdater.js +0 -81
  254. package/cjs/sync/polling/updaters/segmentChangesUpdater.js +0 -80
  255. package/cjs/sync/polling/updaters/splitChangesUpdater.js +0 -188
  256. package/cjs/sync/streaming/AuthClient/index.js +0 -43
  257. package/cjs/sync/streaming/AuthClient/types.js +0 -2
  258. package/cjs/sync/streaming/SSEClient/index.js +0 -86
  259. package/cjs/sync/streaming/SSEClient/types.js +0 -2
  260. package/cjs/sync/streaming/SSEHandler/NotificationKeeper.js +0 -98
  261. package/cjs/sync/streaming/SSEHandler/NotificationParser.js +0 -41
  262. package/cjs/sync/streaming/SSEHandler/index.js +0 -97
  263. package/cjs/sync/streaming/SSEHandler/types.js +0 -16
  264. package/cjs/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.js +0 -124
  265. package/cjs/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.js +0 -92
  266. package/cjs/sync/streaming/UpdateWorkers/SplitsUpdateWorker.js +0 -136
  267. package/cjs/sync/streaming/UpdateWorkers/constants.js +0 -6
  268. package/cjs/sync/streaming/UpdateWorkers/types.js +0 -2
  269. package/cjs/sync/streaming/constants.js +0 -43
  270. package/cjs/sync/streaming/parseUtils.js +0 -98
  271. package/cjs/sync/streaming/pushManager.js +0 -317
  272. package/cjs/sync/streaming/types.js +0 -2
  273. package/cjs/sync/submitters/eventsSubmitter.js +0 -28
  274. package/cjs/sync/submitters/impressionCountsSubmitter.js +0 -36
  275. package/cjs/sync/submitters/impressionsSubmitter.js +0 -54
  276. package/cjs/sync/submitters/submitter.js +0 -66
  277. package/cjs/sync/submitters/submitterManager.js +0 -46
  278. package/cjs/sync/submitters/telemetrySubmitter.js +0 -125
  279. package/cjs/sync/submitters/types.js +0 -2
  280. package/cjs/sync/submitters/uniqueKeysSubmitter.js +0 -27
  281. package/cjs/sync/syncManagerOnline.js +0 -172
  282. package/cjs/sync/syncTask.js +0 -84
  283. package/cjs/sync/types.js +0 -2
  284. package/cjs/trackers/eventTracker.js +0 -62
  285. package/cjs/trackers/impressionObserver/ImpressionObserver.js +0 -18
  286. package/cjs/trackers/impressionObserver/buildKey.js +0 -7
  287. package/cjs/trackers/impressionObserver/impressionObserverCS.js +0 -15
  288. package/cjs/trackers/impressionObserver/impressionObserverSS.js +0 -15
  289. package/cjs/trackers/impressionObserver/types.js +0 -2
  290. package/cjs/trackers/impressionsTracker.js +0 -78
  291. package/cjs/trackers/strategy/strategyDebug.js +0 -20
  292. package/cjs/trackers/strategy/strategyNone.js +0 -24
  293. package/cjs/trackers/strategy/strategyOptimized.js +0 -28
  294. package/cjs/trackers/telemetryTracker.js +0 -75
  295. package/cjs/trackers/types.js +0 -2
  296. package/cjs/trackers/uniqueKeysTracker.js +0 -40
  297. package/cjs/types.js +0 -2
  298. package/cjs/utils/Backoff.js +0 -41
  299. package/cjs/utils/LRUCache/LinkedList.js +0 -114
  300. package/cjs/utils/LRUCache/index.js +0 -42
  301. package/cjs/utils/MinEventEmitter.js +0 -100
  302. package/cjs/utils/Semver.js +0 -103
  303. package/cjs/utils/base64/index.js +0 -75
  304. package/cjs/utils/constants/index.js +0 -100
  305. package/cjs/utils/decompress/index.js +0 -427
  306. package/cjs/utils/env/isLocalStorageAvailable.js +0 -16
  307. package/cjs/utils/env/isNode.js +0 -9
  308. package/cjs/utils/inputValidation/apiKey.js +0 -54
  309. package/cjs/utils/inputValidation/attribute.js +0 -20
  310. package/cjs/utils/inputValidation/attributes.js +0 -25
  311. package/cjs/utils/inputValidation/event.js +0 -28
  312. package/cjs/utils/inputValidation/eventProperties.js +0 -74
  313. package/cjs/utils/inputValidation/eventValue.js +0 -12
  314. package/cjs/utils/inputValidation/index.js +0 -34
  315. package/cjs/utils/inputValidation/isOperational.js +0 -18
  316. package/cjs/utils/inputValidation/key.js +0 -51
  317. package/cjs/utils/inputValidation/preloadedData.js +0 -59
  318. package/cjs/utils/inputValidation/split.js +0 -30
  319. package/cjs/utils/inputValidation/splitExistence.js +0 -19
  320. package/cjs/utils/inputValidation/splits.js +0 -25
  321. package/cjs/utils/inputValidation/trafficType.js +0 -29
  322. package/cjs/utils/inputValidation/trafficTypeExistence.js +0 -31
  323. package/cjs/utils/jwt/index.js +0 -17
  324. package/cjs/utils/jwt/types.js +0 -2
  325. package/cjs/utils/key/index.js +0 -36
  326. package/cjs/utils/labels/index.js +0 -12
  327. package/cjs/utils/lang/binarySearch.js +0 -42
  328. package/cjs/utils/lang/getFnName.js +0 -12
  329. package/cjs/utils/lang/getGlobal.js +0 -18
  330. package/cjs/utils/lang/index.js +0 -281
  331. package/cjs/utils/lang/objectAssign.js +0 -20
  332. package/cjs/utils/lang/sets.js +0 -23
  333. package/cjs/utils/murmur3/common.js +0 -46
  334. package/cjs/utils/murmur3/legacy.js +0 -44
  335. package/cjs/utils/murmur3/murmur3.js +0 -62
  336. package/cjs/utils/murmur3/murmur3_128.js +0 -219
  337. package/cjs/utils/murmur3/murmur3_128_x86.js +0 -154
  338. package/cjs/utils/murmur3/murmur3_64.js +0 -36
  339. package/cjs/utils/murmur3/utfx.js +0 -108
  340. package/cjs/utils/promise/thenable.js +0 -8
  341. package/cjs/utils/promise/timeout.js +0 -20
  342. package/cjs/utils/promise/wrapper.js +0 -58
  343. package/cjs/utils/settingsValidation/consent.js +0 -16
  344. package/cjs/utils/settingsValidation/impressionsMode.js +0 -14
  345. package/cjs/utils/settingsValidation/index.js +0 -184
  346. package/cjs/utils/settingsValidation/integrations/common.js +0 -27
  347. package/cjs/utils/settingsValidation/integrations/configurable.js +0 -18
  348. package/cjs/utils/settingsValidation/integrations/pluggable.js +0 -15
  349. package/cjs/utils/settingsValidation/logger/builtinLogger.js +0 -46
  350. package/cjs/utils/settingsValidation/logger/commons.js +0 -28
  351. package/cjs/utils/settingsValidation/logger/pluggableLogger.js +0 -32
  352. package/cjs/utils/settingsValidation/mode.js +0 -20
  353. package/cjs/utils/settingsValidation/runtime.js +0 -11
  354. package/cjs/utils/settingsValidation/splitFilters.js +0 -188
  355. package/cjs/utils/settingsValidation/storage/storageCS.js +0 -49
  356. package/cjs/utils/settingsValidation/types.js +0 -2
  357. package/cjs/utils/settingsValidation/url.js +0 -31
  358. package/cjs/utils/time/index.js +0 -11
  359. package/cjs/utils/timeTracker/now/browser.js +0 -15
  360. package/cjs/utils/timeTracker/now/node.js +0 -9
  361. package/cjs/utils/timeTracker/timer.js +0 -10
  362. package/esm/consent/index.js +0 -6
  363. package/esm/consent/sdkUserConsent.js +0 -56
  364. package/esm/dtos/types.js +0 -1
  365. package/esm/evaluator/Engine.js +0 -54
  366. package/esm/evaluator/combiners/and.js +0 -21
  367. package/esm/evaluator/combiners/ifelseif.js +0 -44
  368. package/esm/evaluator/condition/engineUtils.js +0 -24
  369. package/esm/evaluator/condition/index.js +0 -37
  370. package/esm/evaluator/convertions/index.js +0 -6
  371. package/esm/evaluator/index.js +0 -128
  372. package/esm/evaluator/matchers/all.js +0 -5
  373. package/esm/evaluator/matchers/between.js +0 -6
  374. package/esm/evaluator/matchers/boolean.js +0 -6
  375. package/esm/evaluator/matchers/cont_all.js +0 -19
  376. package/esm/evaluator/matchers/cont_any.js +0 -14
  377. package/esm/evaluator/matchers/cont_str.js +0 -7
  378. package/esm/evaluator/matchers/dependency.js +0 -24
  379. package/esm/evaluator/matchers/eq.js +0 -6
  380. package/esm/evaluator/matchers/eq_set.js +0 -16
  381. package/esm/evaluator/matchers/ew.js +0 -7
  382. package/esm/evaluator/matchers/gte.js +0 -6
  383. package/esm/evaluator/matchers/index.js +0 -62
  384. package/esm/evaluator/matchers/large_segment.js +0 -6
  385. package/esm/evaluator/matchers/lte.js +0 -6
  386. package/esm/evaluator/matchers/matcherTypes.js +0 -42
  387. package/esm/evaluator/matchers/part_of.js +0 -16
  388. package/esm/evaluator/matchers/prerequisites.js +0 -18
  389. package/esm/evaluator/matchers/rbsegment.js +0 -52
  390. package/esm/evaluator/matchers/segment.js +0 -6
  391. package/esm/evaluator/matchers/semver_between.js +0 -10
  392. package/esm/evaluator/matchers/semver_eq.js +0 -9
  393. package/esm/evaluator/matchers/semver_gte.js +0 -9
  394. package/esm/evaluator/matchers/semver_inlist.js +0 -12
  395. package/esm/evaluator/matchers/semver_lte.js +0 -9
  396. package/esm/evaluator/matchers/string.js +0 -7
  397. package/esm/evaluator/matchers/sw.js +0 -7
  398. package/esm/evaluator/matchers/whitelist.js +0 -7
  399. package/esm/evaluator/matchersTransform/index.js +0 -100
  400. package/esm/evaluator/matchersTransform/segment.js +0 -8
  401. package/esm/evaluator/matchersTransform/unaryNumeric.js +0 -6
  402. package/esm/evaluator/matchersTransform/whitelist.js +0 -6
  403. package/esm/evaluator/parser/index.js +0 -57
  404. package/esm/evaluator/treatments/index.js +0 -39
  405. package/esm/evaluator/types.js +0 -1
  406. package/esm/evaluator/value/index.js +0 -33
  407. package/esm/evaluator/value/sanitize.js +0 -90
  408. package/esm/integrations/pluggable.js +0 -31
  409. package/esm/integrations/types.js +0 -1
  410. package/esm/listeners/browser.js +0 -118
  411. package/esm/listeners/node.js +0 -65
  412. package/esm/listeners/types.js +0 -1
  413. package/esm/logger/browser/DebugLogger.js +0 -5
  414. package/esm/logger/browser/ErrorLogger.js +0 -5
  415. package/esm/logger/browser/InfoLogger.js +0 -5
  416. package/esm/logger/browser/WarnLogger.js +0 -5
  417. package/esm/logger/constants.js +0 -135
  418. package/esm/logger/index.js +0 -95
  419. package/esm/logger/messages/debug.js +0 -32
  420. package/esm/logger/messages/error.js +0 -38
  421. package/esm/logger/messages/info.js +0 -33
  422. package/esm/logger/messages/warn.js +0 -38
  423. package/esm/logger/sdkLogger.js +0 -41
  424. package/esm/logger/types.js +0 -1
  425. package/esm/readiness/constants.js +0 -10
  426. package/esm/readiness/readinessManager.js +0 -150
  427. package/esm/readiness/sdkReadinessManager.js +0 -100
  428. package/esm/readiness/types.js +0 -1
  429. package/esm/sdkClient/client.js +0 -179
  430. package/esm/sdkClient/clientAttributesDecoration.js +0 -118
  431. package/esm/sdkClient/clientCS.js +0 -26
  432. package/esm/sdkClient/clientInputValidation.js +0 -143
  433. package/esm/sdkClient/identity.js +0 -3
  434. package/esm/sdkClient/sdkClient.js +0 -60
  435. package/esm/sdkClient/sdkClientMethod.js +0 -18
  436. package/esm/sdkClient/sdkClientMethodCS.js +0 -62
  437. package/esm/sdkFactory/index.js +0 -104
  438. package/esm/sdkFactory/types.js +0 -1
  439. package/esm/sdkManager/index.js +0 -92
  440. package/esm/services/decorateHeaders.js +0 -35
  441. package/esm/services/splitApi.js +0 -127
  442. package/esm/services/splitHttpClient.js +0 -78
  443. package/esm/services/types.js +0 -1
  444. package/esm/storages/AbstractMySegmentsCacheSync.js +0 -57
  445. package/esm/storages/AbstractSplitsCacheAsync.js +0 -48
  446. package/esm/storages/AbstractSplitsCacheSync.js +0 -70
  447. package/esm/storages/KeyBuilder.js +0 -63
  448. package/esm/storages/KeyBuilderCS.js +0 -61
  449. package/esm/storages/KeyBuilderSS.js +0 -57
  450. package/esm/storages/dataLoader.js +0 -104
  451. package/esm/storages/findLatencyIndex.js +0 -14
  452. package/esm/storages/inLocalStorage/MySegmentsCacheInLocal.js +0 -78
  453. package/esm/storages/inLocalStorage/RBSegmentsCacheInLocal.js +0 -118
  454. package/esm/storages/inLocalStorage/SplitsCacheInLocal.js +0 -205
  455. package/esm/storages/inLocalStorage/constants.js +0 -2
  456. package/esm/storages/inLocalStorage/index.js +0 -69
  457. package/esm/storages/inLocalStorage/validateCache.js +0 -76
  458. package/esm/storages/inMemory/AttributesCacheInMemory.js +0 -67
  459. package/esm/storages/inMemory/EventsCacheInMemory.js +0 -60
  460. package/esm/storages/inMemory/ImpressionCountsCacheInMemory.js +0 -62
  461. package/esm/storages/inMemory/ImpressionsCacheInMemory.js +0 -48
  462. package/esm/storages/inMemory/InMemoryStorage.js +0 -42
  463. package/esm/storages/inMemory/InMemoryStorageCS.js +0 -77
  464. package/esm/storages/inMemory/MySegmentsCacheInMemory.js +0 -43
  465. package/esm/storages/inMemory/RBSegmentsCacheInMemory.js +0 -62
  466. package/esm/storages/inMemory/SegmentsCacheInMemory.js +0 -58
  467. package/esm/storages/inMemory/SplitsCacheInMemory.js +0 -118
  468. package/esm/storages/inMemory/TelemetryCacheInMemory.js +0 -202
  469. package/esm/storages/inMemory/UniqueKeysCacheInMemory.js +0 -68
  470. package/esm/storages/inMemory/UniqueKeysCacheInMemoryCS.js +0 -68
  471. package/esm/storages/inRedis/EventsCacheInRedis.js +0 -57
  472. package/esm/storages/inRedis/ImpressionCountsCacheInRedis.js +0 -82
  473. package/esm/storages/inRedis/ImpressionsCacheInRedis.js +0 -42
  474. package/esm/storages/inRedis/RBSegmentsCacheInRedis.js +0 -61
  475. package/esm/storages/inRedis/RedisAdapter.js +0 -192
  476. package/esm/storages/inRedis/SegmentsCacheInRedis.js +0 -54
  477. package/esm/storages/inRedis/SplitsCacheInRedis.js +0 -240
  478. package/esm/storages/inRedis/TelemetryCacheInRedis.js +0 -121
  479. package/esm/storages/inRedis/UniqueKeysCacheInRedis.js +0 -66
  480. package/esm/storages/inRedis/constants.js +0 -4
  481. package/esm/storages/inRedis/index.js +0 -69
  482. package/esm/storages/pluggable/EventsCachePluggable.js +0 -61
  483. package/esm/storages/pluggable/ImpressionCountsCachePluggable.js +0 -78
  484. package/esm/storages/pluggable/ImpressionsCachePluggable.js +0 -45
  485. package/esm/storages/pluggable/RBSegmentsCachePluggable.js +0 -61
  486. package/esm/storages/pluggable/SegmentsCachePluggable.js +0 -77
  487. package/esm/storages/pluggable/SplitsCachePluggable.js +0 -209
  488. package/esm/storages/pluggable/TelemetryCachePluggable.js +0 -138
  489. package/esm/storages/pluggable/UniqueKeysCachePluggable.js +0 -59
  490. package/esm/storages/pluggable/constants.js +0 -1
  491. package/esm/storages/pluggable/inMemoryWrapper.js +0 -137
  492. package/esm/storages/pluggable/index.js +0 -131
  493. package/esm/storages/pluggable/wrapperAdapter.js +0 -49
  494. package/esm/storages/types.js +0 -1
  495. package/esm/storages/utils.js +0 -66
  496. package/esm/sync/offline/LocalhostFromObject.js +0 -5
  497. package/esm/sync/offline/splitsParser/parseCondition.js +0 -51
  498. package/esm/sync/offline/splitsParser/splitsParserFromSettings.js +0 -58
  499. package/esm/sync/offline/splitsParser/types.js +0 -1
  500. package/esm/sync/offline/syncManagerOffline.js +0 -48
  501. package/esm/sync/offline/syncTasks/fromObjectSyncTask.js +0 -67
  502. package/esm/sync/polling/fetchers/mySegmentsFetcher.js +0 -14
  503. package/esm/sync/polling/fetchers/segmentChangesFetcher.js +0 -30
  504. package/esm/sync/polling/fetchers/splitChangesFetcher.js +0 -64
  505. package/esm/sync/polling/fetchers/types.js +0 -1
  506. package/esm/sync/polling/pollingManagerCS.js +0 -96
  507. package/esm/sync/polling/pollingManagerSS.js +0 -45
  508. package/esm/sync/polling/syncTasks/mySegmentsSyncTask.js +0 -9
  509. package/esm/sync/polling/syncTasks/segmentsSyncTask.js +0 -9
  510. package/esm/sync/polling/syncTasks/splitsSyncTask.js +0 -9
  511. package/esm/sync/polling/types.js +0 -1
  512. package/esm/sync/polling/updaters/mySegmentsUpdater.js +0 -77
  513. package/esm/sync/polling/updaters/segmentChangesUpdater.js +0 -76
  514. package/esm/sync/polling/updaters/splitChangesUpdater.js +0 -182
  515. package/esm/sync/streaming/AuthClient/index.js +0 -38
  516. package/esm/sync/streaming/AuthClient/types.js +0 -1
  517. package/esm/sync/streaming/SSEClient/index.js +0 -83
  518. package/esm/sync/streaming/SSEClient/types.js +0 -1
  519. package/esm/sync/streaming/SSEHandler/NotificationKeeper.js +0 -94
  520. package/esm/sync/streaming/SSEHandler/NotificationParser.js +0 -36
  521. package/esm/sync/streaming/SSEHandler/index.js +0 -93
  522. package/esm/sync/streaming/SSEHandler/types.js +0 -13
  523. package/esm/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.js +0 -120
  524. package/esm/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.js +0 -88
  525. package/esm/sync/streaming/UpdateWorkers/SplitsUpdateWorker.js +0 -132
  526. package/esm/sync/streaming/UpdateWorkers/constants.js +0 -3
  527. package/esm/sync/streaming/UpdateWorkers/types.js +0 -1
  528. package/esm/sync/streaming/constants.js +0 -40
  529. package/esm/sync/streaming/parseUtils.js +0 -90
  530. package/esm/sync/streaming/pushManager.js +0 -313
  531. package/esm/sync/streaming/types.js +0 -1
  532. package/esm/sync/submitters/eventsSubmitter.js +0 -24
  533. package/esm/sync/submitters/impressionCountsSubmitter.js +0 -31
  534. package/esm/sync/submitters/impressionsSubmitter.js +0 -49
  535. package/esm/sync/submitters/submitter.js +0 -61
  536. package/esm/sync/submitters/submitterManager.js +0 -42
  537. package/esm/sync/submitters/telemetrySubmitter.js +0 -119
  538. package/esm/sync/submitters/types.js +0 -1
  539. package/esm/sync/submitters/uniqueKeysSubmitter.js +0 -23
  540. package/esm/sync/syncManagerOnline.js +0 -168
  541. package/esm/sync/syncTask.js +0 -80
  542. package/esm/sync/types.js +0 -1
  543. package/esm/trackers/eventTracker.js +0 -58
  544. package/esm/trackers/impressionObserver/ImpressionObserver.js +0 -15
  545. package/esm/trackers/impressionObserver/buildKey.js +0 -3
  546. package/esm/trackers/impressionObserver/impressionObserverCS.js +0 -10
  547. package/esm/trackers/impressionObserver/impressionObserverSS.js +0 -10
  548. package/esm/trackers/impressionObserver/types.js +0 -1
  549. package/esm/trackers/impressionsTracker.js +0 -74
  550. package/esm/trackers/strategy/strategyDebug.js +0 -16
  551. package/esm/trackers/strategy/strategyNone.js +0 -20
  552. package/esm/trackers/strategy/strategyOptimized.js +0 -24
  553. package/esm/trackers/telemetryTracker.js +0 -71
  554. package/esm/trackers/types.js +0 -1
  555. package/esm/trackers/uniqueKeysTracker.js +0 -36
  556. package/esm/types.js +0 -1
  557. package/esm/utils/Backoff.js +0 -38
  558. package/esm/utils/LRUCache/LinkedList.js +0 -111
  559. package/esm/utils/LRUCache/index.js +0 -39
  560. package/esm/utils/MinEventEmitter.js +0 -97
  561. package/esm/utils/Semver.js +0 -100
  562. package/esm/utils/base64/index.js +0 -70
  563. package/esm/utils/constants/index.js +0 -96
  564. package/esm/utils/decompress/index.js +0 -424
  565. package/esm/utils/env/isLocalStorageAvailable.js +0 -12
  566. package/esm/utils/env/isNode.js +0 -6
  567. package/esm/utils/inputValidation/apiKey.js +0 -48
  568. package/esm/utils/inputValidation/attribute.js +0 -16
  569. package/esm/utils/inputValidation/attributes.js +0 -20
  570. package/esm/utils/inputValidation/event.js +0 -24
  571. package/esm/utils/inputValidation/eventProperties.js +0 -69
  572. package/esm/utils/inputValidation/eventValue.js +0 -8
  573. package/esm/utils/inputValidation/index.js +0 -14
  574. package/esm/utils/inputValidation/isOperational.js +0 -13
  575. package/esm/utils/inputValidation/key.js +0 -47
  576. package/esm/utils/inputValidation/preloadedData.js +0 -55
  577. package/esm/utils/inputValidation/split.js +0 -26
  578. package/esm/utils/inputValidation/splitExistence.js +0 -15
  579. package/esm/utils/inputValidation/splits.js +0 -21
  580. package/esm/utils/inputValidation/trafficType.js +0 -25
  581. package/esm/utils/inputValidation/trafficTypeExistence.js +0 -27
  582. package/esm/utils/jwt/index.js +0 -13
  583. package/esm/utils/jwt/types.js +0 -1
  584. package/esm/utils/key/index.js +0 -30
  585. package/esm/utils/labels/index.js +0 -9
  586. package/esm/utils/lang/binarySearch.js +0 -38
  587. package/esm/utils/lang/getFnName.js +0 -8
  588. package/esm/utils/lang/getGlobal.js +0 -14
  589. package/esm/utils/lang/index.js +0 -258
  590. package/esm/utils/lang/objectAssign.js +0 -17
  591. package/esm/utils/lang/sets.js +0 -17
  592. package/esm/utils/murmur3/common.js +0 -39
  593. package/esm/utils/murmur3/legacy.js +0 -39
  594. package/esm/utils/murmur3/murmur3.js +0 -57
  595. package/esm/utils/murmur3/murmur3_128.js +0 -215
  596. package/esm/utils/murmur3/murmur3_128_x86.js +0 -150
  597. package/esm/utils/murmur3/murmur3_64.js +0 -32
  598. package/esm/utils/murmur3/utfx.js +0 -102
  599. package/esm/utils/promise/thenable.js +0 -4
  600. package/esm/utils/promise/timeout.js +0 -16
  601. package/esm/utils/promise/wrapper.js +0 -54
  602. package/esm/utils/settingsValidation/consent.js +0 -12
  603. package/esm/utils/settingsValidation/impressionsMode.js +0 -10
  604. package/esm/utils/settingsValidation/index.js +0 -180
  605. package/esm/utils/settingsValidation/integrations/common.js +0 -23
  606. package/esm/utils/settingsValidation/integrations/configurable.js +0 -14
  607. package/esm/utils/settingsValidation/integrations/pluggable.js +0 -11
  608. package/esm/utils/settingsValidation/logger/builtinLogger.js +0 -42
  609. package/esm/utils/settingsValidation/logger/commons.js +0 -24
  610. package/esm/utils/settingsValidation/logger/pluggableLogger.js +0 -28
  611. package/esm/utils/settingsValidation/mode.js +0 -15
  612. package/esm/utils/settingsValidation/runtime.js +0 -7
  613. package/esm/utils/settingsValidation/splitFilters.js +0 -183
  614. package/esm/utils/settingsValidation/storage/storageCS.js +0 -44
  615. package/esm/utils/settingsValidation/types.js +0 -1
  616. package/esm/utils/settingsValidation/url.js +0 -27
  617. package/esm/utils/time/index.js +0 -7
  618. package/esm/utils/timeTracker/now/browser.js +0 -12
  619. package/esm/utils/timeTracker/now/node.js +0 -5
  620. package/esm/utils/timeTracker/timer.js +0 -6
  621. package/src/consent/index.ts +0 -8
  622. package/src/consent/sdkUserConsent.ts +0 -60
  623. package/src/dtos/types.ts +0 -294
  624. package/src/evaluator/Engine.ts +0 -73
  625. package/src/evaluator/combiners/and.ts +0 -29
  626. package/src/evaluator/combiners/ifelseif.ts +0 -56
  627. package/src/evaluator/condition/engineUtils.ts +0 -31
  628. package/src/evaluator/condition/index.ts +0 -50
  629. package/src/evaluator/convertions/index.ts +0 -7
  630. package/src/evaluator/index.ts +0 -199
  631. package/src/evaluator/matchers/all.ts +0 -6
  632. package/src/evaluator/matchers/between.ts +0 -10
  633. package/src/evaluator/matchers/boolean.ts +0 -8
  634. package/src/evaluator/matchers/cont_all.ts +0 -18
  635. package/src/evaluator/matchers/cont_any.ts +0 -13
  636. package/src/evaluator/matchers/cont_str.ts +0 -9
  637. package/src/evaluator/matchers/dependency.ts +0 -32
  638. package/src/evaluator/matchers/eq.ts +0 -8
  639. package/src/evaluator/matchers/eq_set.ts +0 -15
  640. package/src/evaluator/matchers/ew.ts +0 -9
  641. package/src/evaluator/matchers/gte.ts +0 -8
  642. package/src/evaluator/matchers/index.ts +0 -70
  643. package/src/evaluator/matchers/large_segment.ts +0 -11
  644. package/src/evaluator/matchers/lte.ts +0 -8
  645. package/src/evaluator/matchers/matcherTypes.ts +0 -42
  646. package/src/evaluator/matchers/part_of.ts +0 -15
  647. package/src/evaluator/matchers/prerequisites.ts +0 -24
  648. package/src/evaluator/matchers/rbsegment.ts +0 -74
  649. package/src/evaluator/matchers/segment.ts +0 -11
  650. package/src/evaluator/matchers/semver_between.ts +0 -15
  651. package/src/evaluator/matchers/semver_eq.ts +0 -13
  652. package/src/evaluator/matchers/semver_gte.ts +0 -13
  653. package/src/evaluator/matchers/semver_inlist.ts +0 -16
  654. package/src/evaluator/matchers/semver_lte.ts +0 -13
  655. package/src/evaluator/matchers/string.ts +0 -9
  656. package/src/evaluator/matchers/sw.ts +0 -9
  657. package/src/evaluator/matchers/whitelist.ts +0 -9
  658. package/src/evaluator/matchersTransform/index.ts +0 -118
  659. package/src/evaluator/matchersTransform/segment.ts +0 -10
  660. package/src/evaluator/matchersTransform/unaryNumeric.ts +0 -8
  661. package/src/evaluator/matchersTransform/whitelist.ts +0 -8
  662. package/src/evaluator/parser/index.ts +0 -82
  663. package/src/evaluator/treatments/index.ts +0 -53
  664. package/src/evaluator/types.ts +0 -34
  665. package/src/evaluator/value/index.ts +0 -37
  666. package/src/evaluator/value/sanitize.ts +0 -106
  667. package/src/index.ts +0 -14
  668. package/src/integrations/pluggable.ts +0 -39
  669. package/src/integrations/types.ts +0 -21
  670. package/src/listeners/browser.ts +0 -138
  671. package/src/listeners/node.ts +0 -81
  672. package/src/listeners/types.ts +0 -4
  673. package/src/logger/browser/DebugLogger.ts +0 -6
  674. package/src/logger/browser/ErrorLogger.ts +0 -6
  675. package/src/logger/browser/InfoLogger.ts +0 -6
  676. package/src/logger/browser/WarnLogger.ts +0 -6
  677. package/src/logger/constants.ts +0 -139
  678. package/src/logger/index.ts +0 -110
  679. package/src/logger/messages/debug.ts +0 -33
  680. package/src/logger/messages/error.ts +0 -39
  681. package/src/logger/messages/info.ts +0 -36
  682. package/src/logger/messages/warn.ts +0 -40
  683. package/src/logger/sdkLogger.ts +0 -46
  684. package/src/logger/types.ts +0 -21
  685. package/src/readiness/constants.ts +0 -12
  686. package/src/readiness/readinessManager.ts +0 -170
  687. package/src/readiness/sdkReadinessManager.ts +0 -121
  688. package/src/readiness/types.ts +0 -85
  689. package/src/sdkClient/client.ts +0 -217
  690. package/src/sdkClient/clientAttributesDecoration.ts +0 -139
  691. package/src/sdkClient/clientCS.ts +0 -34
  692. package/src/sdkClient/clientInputValidation.ts +0 -178
  693. package/src/sdkClient/identity.ts +0 -5
  694. package/src/sdkClient/sdkClient.ts +0 -77
  695. package/src/sdkClient/sdkClientMethod.ts +0 -24
  696. package/src/sdkClient/sdkClientMethodCS.ts +0 -85
  697. package/src/sdkFactory/index.ts +0 -132
  698. package/src/sdkFactory/types.ts +0 -119
  699. package/src/sdkManager/index.ts +0 -114
  700. package/src/services/decorateHeaders.ts +0 -37
  701. package/src/services/splitApi.ts +0 -148
  702. package/src/services/splitHttpClient.ts +0 -84
  703. package/src/services/types.ts +0 -86
  704. package/src/storages/AbstractMySegmentsCacheSync.ts +0 -94
  705. package/src/storages/AbstractSplitsCacheAsync.ts +0 -63
  706. package/src/storages/AbstractSplitsCacheSync.ts +0 -94
  707. package/src/storages/KeyBuilder.ts +0 -81
  708. package/src/storages/KeyBuilderCS.ts +0 -79
  709. package/src/storages/KeyBuilderSS.ts +0 -74
  710. package/src/storages/dataLoader.ts +0 -113
  711. package/src/storages/findLatencyIndex.ts +0 -16
  712. package/src/storages/inLocalStorage/MySegmentsCacheInLocal.ts +0 -86
  713. package/src/storages/inLocalStorage/RBSegmentsCacheInLocal.ts +0 -140
  714. package/src/storages/inLocalStorage/SplitsCacheInLocal.ts +0 -244
  715. package/src/storages/inLocalStorage/constants.ts +0 -2
  716. package/src/storages/inLocalStorage/index.ts +0 -83
  717. package/src/storages/inLocalStorage/validateCache.ts +0 -93
  718. package/src/storages/inMemory/AttributesCacheInMemory.ts +0 -74
  719. package/src/storages/inMemory/EventsCacheInMemory.ts +0 -76
  720. package/src/storages/inMemory/ImpressionCountsCacheInMemory.ts +0 -69
  721. package/src/storages/inMemory/ImpressionsCacheInMemory.ts +0 -58
  722. package/src/storages/inMemory/InMemoryStorage.ts +0 -50
  723. package/src/storages/inMemory/InMemoryStorageCS.ts +0 -92
  724. package/src/storages/inMemory/MySegmentsCacheInMemory.ts +0 -49
  725. package/src/storages/inMemory/RBSegmentsCacheInMemory.ts +0 -72
  726. package/src/storages/inMemory/SegmentsCacheInMemory.ts +0 -74
  727. package/src/storages/inMemory/SplitsCacheInMemory.ts +0 -130
  728. package/src/storages/inMemory/TelemetryCacheInMemory.ts +0 -263
  729. package/src/storages/inMemory/UniqueKeysCacheInMemory.ts +0 -79
  730. package/src/storages/inMemory/UniqueKeysCacheInMemoryCS.ts +0 -80
  731. package/src/storages/inRedis/EventsCacheInRedis.ts +0 -75
  732. package/src/storages/inRedis/ImpressionCountsCacheInRedis.ts +0 -95
  733. package/src/storages/inRedis/ImpressionsCacheInRedis.ts +0 -61
  734. package/src/storages/inRedis/RBSegmentsCacheInRedis.ts +0 -79
  735. package/src/storages/inRedis/RedisAdapter.ts +0 -209
  736. package/src/storages/inRedis/SegmentsCacheInRedis.ts +0 -70
  737. package/src/storages/inRedis/SplitsCacheInRedis.ts +0 -268
  738. package/src/storages/inRedis/TelemetryCacheInRedis.ts +0 -144
  739. package/src/storages/inRedis/UniqueKeysCacheInRedis.ts +0 -75
  740. package/src/storages/inRedis/constants.ts +0 -4
  741. package/src/storages/inRedis/index.ts +0 -85
  742. package/src/storages/package.json +0 -3
  743. package/src/storages/pluggable/EventsCachePluggable.ts +0 -79
  744. package/src/storages/pluggable/ImpressionCountsCachePluggable.ts +0 -92
  745. package/src/storages/pluggable/ImpressionsCachePluggable.ts +0 -63
  746. package/src/storages/pluggable/RBSegmentsCachePluggable.ts +0 -76
  747. package/src/storages/pluggable/SegmentsCachePluggable.ts +0 -90
  748. package/src/storages/pluggable/SplitsCachePluggable.ts +0 -230
  749. package/src/storages/pluggable/TelemetryCachePluggable.ts +0 -159
  750. package/src/storages/pluggable/UniqueKeysCachePluggable.ts +0 -67
  751. package/src/storages/pluggable/constants.ts +0 -1
  752. package/src/storages/pluggable/inMemoryWrapper.ts +0 -130
  753. package/src/storages/pluggable/index.ts +0 -152
  754. package/src/storages/pluggable/wrapperAdapter.ts +0 -58
  755. package/src/storages/types.ts +0 -522
  756. package/src/storages/utils.ts +0 -80
  757. package/src/sync/offline/LocalhostFromObject.ts +0 -6
  758. package/src/sync/offline/splitsParser/parseCondition.ts +0 -59
  759. package/src/sync/offline/splitsParser/splitsParserFromSettings.ts +0 -72
  760. package/src/sync/offline/splitsParser/types.ts +0 -5
  761. package/src/sync/offline/syncManagerOffline.ts +0 -66
  762. package/src/sync/offline/syncTasks/fromObjectSyncTask.ts +0 -98
  763. package/src/sync/polling/fetchers/mySegmentsFetcher.ts +0 -25
  764. package/src/sync/polling/fetchers/segmentChangesFetcher.ts +0 -41
  765. package/src/sync/polling/fetchers/splitChangesFetcher.ts +0 -85
  766. package/src/sync/polling/fetchers/types.ts +0 -25
  767. package/src/sync/polling/pollingManagerCS.ts +0 -116
  768. package/src/sync/polling/pollingManagerSS.ts +0 -56
  769. package/src/sync/polling/syncTasks/mySegmentsSyncTask.ts +0 -34
  770. package/src/sync/polling/syncTasks/segmentsSyncTask.ts +0 -30
  771. package/src/sync/polling/syncTasks/splitsSyncTask.ts +0 -35
  772. package/src/sync/polling/types.ts +0 -33
  773. package/src/sync/polling/updaters/mySegmentsUpdater.ts +0 -102
  774. package/src/sync/polling/updaters/segmentChangesUpdater.ts +0 -92
  775. package/src/sync/polling/updaters/splitChangesUpdater.ts +0 -218
  776. package/src/sync/streaming/AuthClient/index.ts +0 -42
  777. package/src/sync/streaming/AuthClient/types.ts +0 -20
  778. package/src/sync/streaming/SSEClient/index.ts +0 -103
  779. package/src/sync/streaming/SSEClient/types.ts +0 -13
  780. package/src/sync/streaming/SSEHandler/NotificationKeeper.ts +0 -107
  781. package/src/sync/streaming/SSEHandler/NotificationParser.ts +0 -40
  782. package/src/sync/streaming/SSEHandler/index.ts +0 -105
  783. package/src/sync/streaming/SSEHandler/types.ts +0 -73
  784. package/src/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.ts +0 -134
  785. package/src/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.ts +0 -99
  786. package/src/sync/streaming/UpdateWorkers/SplitsUpdateWorker.ts +0 -145
  787. package/src/sync/streaming/UpdateWorkers/constants.ts +0 -3
  788. package/src/sync/streaming/UpdateWorkers/types.ts +0 -4
  789. package/src/sync/streaming/constants.ts +0 -44
  790. package/src/sync/streaming/parseUtils.ts +0 -100
  791. package/src/sync/streaming/pushManager.ts +0 -358
  792. package/src/sync/streaming/types.ts +0 -51
  793. package/src/sync/submitters/eventsSubmitter.ts +0 -35
  794. package/src/sync/submitters/impressionCountsSubmitter.ts +0 -44
  795. package/src/sync/submitters/impressionsSubmitter.ts +0 -66
  796. package/src/sync/submitters/submitter.ts +0 -76
  797. package/src/sync/submitters/submitterManager.ts +0 -48
  798. package/src/sync/submitters/telemetrySubmitter.ts +0 -148
  799. package/src/sync/submitters/types.ts +0 -241
  800. package/src/sync/submitters/uniqueKeysSubmitter.ts +0 -35
  801. package/src/sync/syncManagerOnline.ts +0 -190
  802. package/src/sync/syncTask.ts +0 -83
  803. package/src/sync/types.ts +0 -48
  804. package/src/trackers/eventTracker.ts +0 -72
  805. package/src/trackers/impressionObserver/ImpressionObserver.ts +0 -20
  806. package/src/trackers/impressionObserver/buildKey.ts +0 -5
  807. package/src/trackers/impressionObserver/impressionObserverCS.ts +0 -14
  808. package/src/trackers/impressionObserver/impressionObserverSS.ts +0 -14
  809. package/src/trackers/impressionObserver/types.ts +0 -5
  810. package/src/trackers/impressionsTracker.ts +0 -87
  811. package/src/trackers/strategy/strategyDebug.ts +0 -23
  812. package/src/trackers/strategy/strategyNone.ts +0 -28
  813. package/src/trackers/strategy/strategyOptimized.ts +0 -35
  814. package/src/trackers/telemetryTracker.ts +0 -73
  815. package/src/trackers/types.ts +0 -86
  816. package/src/trackers/uniqueKeysTracker.ts +0 -50
  817. package/src/types.ts +0 -44
  818. package/src/utils/Backoff.ts +0 -51
  819. package/src/utils/LRUCache/LinkedList.ts +0 -130
  820. package/src/utils/LRUCache/index.ts +0 -43
  821. package/src/utils/MinEventEmitter.ts +0 -102
  822. package/src/utils/Semver.ts +0 -111
  823. package/src/utils/base64/index.ts +0 -74
  824. package/src/utils/constants/index.ts +0 -116
  825. package/src/utils/decompress/index.ts +0 -429
  826. package/src/utils/env/isLocalStorageAvailable.ts +0 -11
  827. package/src/utils/env/isNode.ts +0 -6
  828. package/src/utils/inputValidation/apiKey.ts +0 -52
  829. package/src/utils/inputValidation/attribute.ts +0 -21
  830. package/src/utils/inputValidation/attributes.ts +0 -26
  831. package/src/utils/inputValidation/event.ts +0 -24
  832. package/src/utils/inputValidation/eventProperties.ts +0 -78
  833. package/src/utils/inputValidation/eventValue.ts +0 -11
  834. package/src/utils/inputValidation/index.ts +0 -14
  835. package/src/utils/inputValidation/isOperational.ts +0 -17
  836. package/src/utils/inputValidation/key.ts +0 -51
  837. package/src/utils/inputValidation/preloadedData.ts +0 -57
  838. package/src/utils/inputValidation/split.ts +0 -27
  839. package/src/utils/inputValidation/splitExistence.ts +0 -19
  840. package/src/utils/inputValidation/splits.ts +0 -21
  841. package/src/utils/inputValidation/trafficType.ts +0 -27
  842. package/src/utils/inputValidation/trafficTypeExistence.ts +0 -33
  843. package/src/utils/jwt/index.ts +0 -16
  844. package/src/utils/jwt/types.ts +0 -10
  845. package/src/utils/key/index.ts +0 -34
  846. package/src/utils/labels/index.ts +0 -9
  847. package/src/utils/lang/binarySearch.ts +0 -41
  848. package/src/utils/lang/getFnName.ts +0 -8
  849. package/src/utils/lang/getGlobal.ts +0 -17
  850. package/src/utils/lang/index.ts +0 -279
  851. package/src/utils/lang/objectAssign.ts +0 -25
  852. package/src/utils/lang/sets.ts +0 -17
  853. package/src/utils/murmur3/common.ts +0 -54
  854. package/src/utils/murmur3/legacy.ts +0 -48
  855. package/src/utils/murmur3/murmur3.ts +0 -74
  856. package/src/utils/murmur3/murmur3_128.ts +0 -273
  857. package/src/utils/murmur3/murmur3_128_x86.ts +0 -188
  858. package/src/utils/murmur3/murmur3_64.ts +0 -36
  859. package/src/utils/murmur3/utfx.ts +0 -109
  860. package/src/utils/promise/thenable.ts +0 -4
  861. package/src/utils/promise/timeout.ts +0 -17
  862. package/src/utils/promise/wrapper.ts +0 -60
  863. package/src/utils/settingsValidation/consent.ts +0 -16
  864. package/src/utils/settingsValidation/impressionsMode.ts +0 -14
  865. package/src/utils/settingsValidation/index.ts +0 -207
  866. package/src/utils/settingsValidation/integrations/common.ts +0 -27
  867. package/src/utils/settingsValidation/integrations/configurable.ts +0 -20
  868. package/src/utils/settingsValidation/integrations/pluggable.ts +0 -19
  869. package/src/utils/settingsValidation/logger/builtinLogger.ts +0 -54
  870. package/src/utils/settingsValidation/logger/commons.ts +0 -24
  871. package/src/utils/settingsValidation/logger/pluggableLogger.ts +0 -35
  872. package/src/utils/settingsValidation/mode.ts +0 -17
  873. package/src/utils/settingsValidation/runtime.ts +0 -9
  874. package/src/utils/settingsValidation/splitFilters.ts +0 -197
  875. package/src/utils/settingsValidation/storage/storageCS.ts +0 -52
  876. package/src/utils/settingsValidation/types.ts +0 -27
  877. package/src/utils/settingsValidation/url.ts +0 -30
  878. package/src/utils/time/index.ts +0 -8
  879. package/src/utils/timeTracker/now/browser.ts +0 -12
  880. package/src/utils/timeTracker/now/node.ts +0 -6
  881. package/src/utils/timeTracker/timer.ts +0 -7
@@ -1,100 +0,0 @@
1
- import { objectAssign } from '../utils/lang/objectAssign';
2
- import { promiseWrapper } from '../utils/promise/wrapper';
3
- import { readinessManagerFactory } from './readinessManager';
4
- import { SDK_READY, SDK_READY_TIMED_OUT, SDK_READY_FROM_CACHE, SDK_UPDATE } from './constants';
5
- import { ERROR_CLIENT_LISTENER, CLIENT_READY_FROM_CACHE, CLIENT_READY, CLIENT_NO_LISTENER } from '../logger/constants';
6
- var NEW_LISTENER_EVENT = 'newListener';
7
- var REMOVE_LISTENER_EVENT = 'removeListener';
8
- /**
9
- * SdkReadinessManager factory, which provides the public status API of SDK clients and manager: ready promise, readiness event emitter and constants (SDK_READY, etc).
10
- * It also updates logs related warnings and errors.
11
- *
12
- * @param readyTimeout - time in millis to emit SDK_READY_TIME_OUT event
13
- * @param readinessManager - optional readinessManager to use. only used internally for `shared` method
14
- */
15
- export function sdkReadinessManagerFactory(EventEmitter, settings, readinessManager) {
16
- if (readinessManager === void 0) { readinessManager = readinessManagerFactory(EventEmitter, settings); }
17
- var log = settings.log;
18
- /** Ready callback warning */
19
- var internalReadyCbCount = 0;
20
- var readyCbCount = 0;
21
- readinessManager.gate.on(REMOVE_LISTENER_EVENT, function (event) {
22
- if (event === SDK_READY)
23
- readyCbCount--;
24
- });
25
- readinessManager.gate.on(NEW_LISTENER_EVENT, function (event) {
26
- if (event === SDK_READY || event === SDK_READY_TIMED_OUT) {
27
- if (readinessManager.isReady()) {
28
- log.error(ERROR_CLIENT_LISTENER, [event === SDK_READY ? 'SDK_READY' : 'SDK_READY_TIMED_OUT']);
29
- }
30
- else if (event === SDK_READY) {
31
- readyCbCount++;
32
- }
33
- }
34
- });
35
- /** Ready promise */
36
- var readyPromise = generateReadyPromise();
37
- readinessManager.gate.once(SDK_READY_FROM_CACHE, function () {
38
- log.info(CLIENT_READY_FROM_CACHE);
39
- });
40
- // default onRejected handler, that just logs the error, if ready promise doesn't have one.
41
- function defaultOnRejected(err) {
42
- log.error(err && err.message);
43
- }
44
- function generateReadyPromise() {
45
- var promise = promiseWrapper(new Promise(function (resolve, reject) {
46
- readinessManager.gate.once(SDK_READY, function () {
47
- log.info(CLIENT_READY);
48
- if (readyCbCount === internalReadyCbCount && !promise.hasOnFulfilled())
49
- log.warn(CLIENT_NO_LISTENER);
50
- resolve();
51
- });
52
- readinessManager.gate.once(SDK_READY_TIMED_OUT, function (message) {
53
- reject(new Error(message));
54
- });
55
- }), defaultOnRejected);
56
- return promise;
57
- }
58
- return {
59
- readinessManager: readinessManager,
60
- shared: function () {
61
- return sdkReadinessManagerFactory(EventEmitter, settings, readinessManager.shared());
62
- },
63
- incInternalReadyCbCount: function () {
64
- internalReadyCbCount++;
65
- },
66
- sdkStatus: objectAssign(
67
- // Expose Event Emitter functionality
68
- Object.create(readinessManager.gate), {
69
- // Expose the event constants without changing the interface
70
- Event: {
71
- SDK_READY: SDK_READY,
72
- SDK_READY_FROM_CACHE: SDK_READY_FROM_CACHE,
73
- SDK_UPDATE: SDK_UPDATE,
74
- SDK_READY_TIMED_OUT: SDK_READY_TIMED_OUT,
75
- },
76
- ready: function () {
77
- if (readinessManager.hasTimedout()) {
78
- if (!readinessManager.isReady()) {
79
- return promiseWrapper(Promise.reject(new Error('Split SDK has emitted SDK_READY_TIMED_OUT event.')), defaultOnRejected);
80
- }
81
- else {
82
- return Promise.resolve();
83
- }
84
- }
85
- return readyPromise;
86
- },
87
- __getStatus: function () {
88
- return {
89
- isReady: readinessManager.isReady(),
90
- isReadyFromCache: readinessManager.isReadyFromCache(),
91
- isTimedout: readinessManager.isTimedout(),
92
- hasTimedout: readinessManager.hasTimedout(),
93
- isDestroyed: readinessManager.isDestroyed(),
94
- isOperational: readinessManager.isOperational(),
95
- lastUpdate: readinessManager.lastUpdate(),
96
- };
97
- },
98
- })
99
- };
100
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,179 +0,0 @@
1
- import { evaluateFeature, evaluateFeatures, evaluateFeaturesByFlagSets } from '../evaluator';
2
- import { thenable } from '../utils/promise/thenable';
3
- import { getMatching, getBucketing } from '../utils/key';
4
- import { validateSplitExistence } from '../utils/inputValidation/splitExistence';
5
- import { validateTrafficTypeExistence } from '../utils/inputValidation/trafficTypeExistence';
6
- import { SDK_NOT_READY } from '../utils/labels';
7
- import { CONTROL, TREATMENT, TREATMENTS, TREATMENT_WITH_CONFIG, TREATMENTS_WITH_CONFIG, TRACK, TREATMENTS_WITH_CONFIG_BY_FLAGSETS, TREATMENTS_BY_FLAGSETS, TREATMENTS_BY_FLAGSET, TREATMENTS_WITH_CONFIG_BY_FLAGSET, GET_TREATMENTS_WITH_CONFIG, GET_TREATMENTS_BY_FLAG_SETS, GET_TREATMENTS_WITH_CONFIG_BY_FLAG_SETS, GET_TREATMENTS_BY_FLAG_SET, GET_TREATMENTS_WITH_CONFIG_BY_FLAG_SET, GET_TREATMENT_WITH_CONFIG, GET_TREATMENT, GET_TREATMENTS, TRACK_FN_LABEL } from '../utils/constants';
8
- import { IMPRESSION, IMPRESSION_QUEUEING } from '../logger/constants';
9
- import { isConsumerMode } from '../utils/settingsValidation/mode';
10
- var treatmentNotReady = { treatment: CONTROL, label: SDK_NOT_READY };
11
- function treatmentsNotReady(featureFlagNames) {
12
- var evaluations = {};
13
- featureFlagNames.forEach(function (featureFlagName) {
14
- evaluations[featureFlagName] = treatmentNotReady;
15
- });
16
- return evaluations;
17
- }
18
- function stringify(options) {
19
- if (options && options.properties) {
20
- try {
21
- return JSON.stringify(options.properties);
22
- }
23
- catch ( /* JSON.stringify should never throw with validated options, but handling just in case */_a) { /* JSON.stringify should never throw with validated options, but handling just in case */ }
24
- }
25
- }
26
- /**
27
- * Creator of base client with getTreatments and track methods.
28
- */
29
- export function clientFactory(params) {
30
- var readinessManager = params.sdkReadinessManager.readinessManager, storage = params.storage, settings = params.settings, impressionsTracker = params.impressionsTracker, eventTracker = params.eventTracker, telemetryTracker = params.telemetryTracker;
31
- var log = settings.log, mode = settings.mode;
32
- var isAsync = isConsumerMode(mode);
33
- function getTreatment(key, featureFlagName, attributes, options, withConfig, methodName) {
34
- if (withConfig === void 0) { withConfig = false; }
35
- if (methodName === void 0) { methodName = GET_TREATMENT; }
36
- var stopTelemetryTracker = telemetryTracker.trackEval(withConfig ? TREATMENT_WITH_CONFIG : TREATMENT);
37
- var wrapUp = function (evaluationResult) {
38
- var queue = [];
39
- var treatment = processEvaluation(evaluationResult, featureFlagName, key, stringify(options), withConfig, methodName, queue);
40
- impressionsTracker.track(queue, attributes);
41
- stopTelemetryTracker(queue[0] && queue[0].imp.label);
42
- return treatment;
43
- };
44
- var evaluation = readinessManager.isReady() || readinessManager.isReadyFromCache() ?
45
- evaluateFeature(log, key, featureFlagName, attributes, storage) :
46
- isAsync ? // If the SDK is not ready, treatment may be incorrect due to having splits but not segments data, or storage is not connected
47
- Promise.resolve(treatmentNotReady) :
48
- treatmentNotReady;
49
- return thenable(evaluation) ? evaluation.then(function (res) { return wrapUp(res); }) : wrapUp(evaluation);
50
- }
51
- function getTreatmentWithConfig(key, featureFlagName, attributes, options) {
52
- return getTreatment(key, featureFlagName, attributes, options, true, GET_TREATMENT_WITH_CONFIG);
53
- }
54
- function getTreatments(key, featureFlagNames, attributes, options, withConfig, methodName) {
55
- if (withConfig === void 0) { withConfig = false; }
56
- if (methodName === void 0) { methodName = GET_TREATMENTS; }
57
- var stopTelemetryTracker = telemetryTracker.trackEval(withConfig ? TREATMENTS_WITH_CONFIG : TREATMENTS);
58
- var wrapUp = function (evaluationResults) {
59
- var queue = [];
60
- var treatments = {};
61
- var properties = stringify(options);
62
- Object.keys(evaluationResults).forEach(function (featureFlagName) {
63
- treatments[featureFlagName] = processEvaluation(evaluationResults[featureFlagName], featureFlagName, key, properties, withConfig, methodName, queue);
64
- });
65
- impressionsTracker.track(queue, attributes);
66
- stopTelemetryTracker(queue[0] && queue[0].imp.label);
67
- return treatments;
68
- };
69
- var evaluations = readinessManager.isReady() || readinessManager.isReadyFromCache() ?
70
- evaluateFeatures(log, key, featureFlagNames, attributes, storage) :
71
- isAsync ? // If the SDK is not ready, treatment may be incorrect due to having splits but not segments data, or storage is not connected
72
- Promise.resolve(treatmentsNotReady(featureFlagNames)) :
73
- treatmentsNotReady(featureFlagNames);
74
- return thenable(evaluations) ? evaluations.then(function (res) { return wrapUp(res); }) : wrapUp(evaluations);
75
- }
76
- function getTreatmentsWithConfig(key, featureFlagNames, attributes, options) {
77
- return getTreatments(key, featureFlagNames, attributes, options, true, GET_TREATMENTS_WITH_CONFIG);
78
- }
79
- function getTreatmentsByFlagSets(key, flagSetNames, attributes, options, withConfig, method, methodName) {
80
- if (withConfig === void 0) { withConfig = false; }
81
- if (method === void 0) { method = TREATMENTS_BY_FLAGSETS; }
82
- if (methodName === void 0) { methodName = GET_TREATMENTS_BY_FLAG_SETS; }
83
- var stopTelemetryTracker = telemetryTracker.trackEval(method);
84
- var wrapUp = function (evaluationResults) {
85
- var queue = [];
86
- var treatments = {};
87
- var properties = stringify(options);
88
- Object.keys(evaluationResults).forEach(function (featureFlagName) {
89
- treatments[featureFlagName] = processEvaluation(evaluationResults[featureFlagName], featureFlagName, key, properties, withConfig, methodName, queue);
90
- });
91
- impressionsTracker.track(queue, attributes);
92
- stopTelemetryTracker(queue[0] && queue[0].imp.label);
93
- return treatments;
94
- };
95
- var evaluations = readinessManager.isReady() || readinessManager.isReadyFromCache() ?
96
- evaluateFeaturesByFlagSets(log, key, flagSetNames, attributes, storage, methodName) :
97
- isAsync ?
98
- Promise.resolve({}) :
99
- {};
100
- return thenable(evaluations) ? evaluations.then(function (res) { return wrapUp(res); }) : wrapUp(evaluations);
101
- }
102
- function getTreatmentsWithConfigByFlagSets(key, flagSetNames, attributes, options) {
103
- return getTreatmentsByFlagSets(key, flagSetNames, attributes, options, true, TREATMENTS_WITH_CONFIG_BY_FLAGSETS, GET_TREATMENTS_WITH_CONFIG_BY_FLAG_SETS);
104
- }
105
- function getTreatmentsByFlagSet(key, flagSetName, attributes, options) {
106
- return getTreatmentsByFlagSets(key, [flagSetName], attributes, options, false, TREATMENTS_BY_FLAGSET, GET_TREATMENTS_BY_FLAG_SET);
107
- }
108
- function getTreatmentsWithConfigByFlagSet(key, flagSetName, attributes, options) {
109
- return getTreatmentsByFlagSets(key, [flagSetName], attributes, options, true, TREATMENTS_WITH_CONFIG_BY_FLAGSET, GET_TREATMENTS_WITH_CONFIG_BY_FLAG_SET);
110
- }
111
- // Internal function
112
- function processEvaluation(evaluation, featureFlagName, key, properties, withConfig, invokingMethodName, queue) {
113
- var matchingKey = getMatching(key);
114
- var bucketingKey = getBucketing(key);
115
- var treatment = evaluation.treatment, label = evaluation.label, changeNumber = evaluation.changeNumber, _a = evaluation.config, config = _a === void 0 ? null : _a, impressionsDisabled = evaluation.impressionsDisabled;
116
- log.info(IMPRESSION, [featureFlagName, matchingKey, treatment, label]);
117
- if (validateSplitExistence(log, readinessManager, featureFlagName, label, invokingMethodName)) {
118
- log.info(IMPRESSION_QUEUEING);
119
- queue.push({
120
- imp: {
121
- feature: featureFlagName,
122
- keyName: matchingKey,
123
- treatment: treatment,
124
- time: Date.now(),
125
- bucketingKey: bucketingKey,
126
- label: label,
127
- changeNumber: changeNumber,
128
- properties: properties
129
- },
130
- disabled: impressionsDisabled
131
- });
132
- }
133
- if (withConfig) {
134
- return {
135
- treatment: treatment,
136
- config: config
137
- };
138
- }
139
- return treatment;
140
- }
141
- function track(key, trafficTypeName, eventTypeId, value, properties, size) {
142
- if (size === void 0) { size = 1024; }
143
- var stopTelemetryTracker = telemetryTracker.trackEval(TRACK);
144
- var matchingKey = getMatching(key);
145
- var timestamp = Date.now();
146
- var eventData = {
147
- eventTypeId: eventTypeId,
148
- trafficTypeName: trafficTypeName,
149
- value: value,
150
- timestamp: timestamp,
151
- key: matchingKey,
152
- properties: properties
153
- };
154
- // This may be async but we only warn, we don't actually care if it is valid or not in terms of queueing the event.
155
- validateTrafficTypeExistence(log, readinessManager, storage.splits, mode, trafficTypeName, TRACK_FN_LABEL);
156
- var result = eventTracker.track(eventData, size);
157
- if (thenable(result)) {
158
- return result.then(function (result) {
159
- stopTelemetryTracker();
160
- return result;
161
- });
162
- }
163
- else {
164
- stopTelemetryTracker();
165
- return result;
166
- }
167
- }
168
- return {
169
- getTreatment: getTreatment,
170
- getTreatmentWithConfig: getTreatmentWithConfig,
171
- getTreatments: getTreatments,
172
- getTreatmentsWithConfig: getTreatmentsWithConfig,
173
- getTreatmentsByFlagSets: getTreatmentsByFlagSets,
174
- getTreatmentsWithConfigByFlagSets: getTreatmentsWithConfigByFlagSets,
175
- getTreatmentsByFlagSet: getTreatmentsByFlagSet,
176
- getTreatmentsWithConfigByFlagSet: getTreatmentsWithConfigByFlagSet,
177
- track: track,
178
- };
179
- }
@@ -1,118 +0,0 @@
1
- import { AttributesCacheInMemory } from '../storages/inMemory/AttributesCacheInMemory';
2
- import { validateAttributesDeep } from '../utils/inputValidation/attributes';
3
- import { objectAssign } from '../utils/lang/objectAssign';
4
- /**
5
- * Add in memory attributes storage methods and combine them with any attribute received from the getTreatment/s call
6
- */
7
- export function clientAttributesDecoration(log, client) {
8
- var attributeStorage = new AttributesCacheInMemory();
9
- // Keep a reference to the original methods
10
- var clientGetTreatment = client.getTreatment;
11
- var clientGetTreatmentWithConfig = client.getTreatmentWithConfig;
12
- var clientGetTreatments = client.getTreatments;
13
- var clientGetTreatmentsWithConfig = client.getTreatmentsWithConfig;
14
- var clientGetTreatmentsByFlagSets = client.getTreatmentsByFlagSets;
15
- var clientGetTreatmentsWithConfigByFlagSets = client.getTreatmentsWithConfigByFlagSets;
16
- var clientGetTreatmentsByFlagSet = client.getTreatmentsByFlagSet;
17
- var clientGetTreatmentsWithConfigByFlagSet = client.getTreatmentsWithConfigByFlagSet;
18
- function getTreatment(maybeKey, maybeFeatureFlagName, maybeAttributes, maybeOptions) {
19
- return clientGetTreatment(maybeKey, maybeFeatureFlagName, combineAttributes(maybeAttributes), maybeOptions);
20
- }
21
- function getTreatmentWithConfig(maybeKey, maybeFeatureFlagName, maybeAttributes, maybeOptions) {
22
- return clientGetTreatmentWithConfig(maybeKey, maybeFeatureFlagName, combineAttributes(maybeAttributes), maybeOptions);
23
- }
24
- function getTreatments(maybeKey, maybeFeatureFlagNames, maybeAttributes, maybeOptions) {
25
- return clientGetTreatments(maybeKey, maybeFeatureFlagNames, combineAttributes(maybeAttributes), maybeOptions);
26
- }
27
- function getTreatmentsWithConfig(maybeKey, maybeFeatureFlagNames, maybeAttributes, maybeOptions) {
28
- return clientGetTreatmentsWithConfig(maybeKey, maybeFeatureFlagNames, combineAttributes(maybeAttributes), maybeOptions);
29
- }
30
- function getTreatmentsByFlagSets(maybeKey, maybeFlagSets, maybeAttributes, maybeOptions) {
31
- return clientGetTreatmentsByFlagSets(maybeKey, maybeFlagSets, combineAttributes(maybeAttributes), maybeOptions);
32
- }
33
- function getTreatmentsWithConfigByFlagSets(maybeKey, maybeFlagSets, maybeAttributes, maybeOptions) {
34
- return clientGetTreatmentsWithConfigByFlagSets(maybeKey, maybeFlagSets, combineAttributes(maybeAttributes), maybeOptions);
35
- }
36
- function getTreatmentsByFlagSet(maybeKey, maybeFlagSet, maybeAttributes, maybeOptions) {
37
- return clientGetTreatmentsByFlagSet(maybeKey, maybeFlagSet, combineAttributes(maybeAttributes), maybeOptions);
38
- }
39
- function getTreatmentsWithConfigByFlagSet(maybeKey, maybeFlagSet, maybeAttributes, maybeOptions) {
40
- return clientGetTreatmentsWithConfigByFlagSet(maybeKey, maybeFlagSet, combineAttributes(maybeAttributes), maybeOptions);
41
- }
42
- function combineAttributes(maybeAttributes) {
43
- var storedAttributes = attributeStorage.getAll();
44
- return Object.keys(storedAttributes).length > 0 ?
45
- objectAssign({}, storedAttributes, maybeAttributes) :
46
- maybeAttributes;
47
- }
48
- return objectAssign(client, {
49
- getTreatment: getTreatment,
50
- getTreatmentWithConfig: getTreatmentWithConfig,
51
- getTreatments: getTreatments,
52
- getTreatmentsWithConfig: getTreatmentsWithConfig,
53
- getTreatmentsByFlagSets: getTreatmentsByFlagSets,
54
- getTreatmentsWithConfigByFlagSets: getTreatmentsWithConfigByFlagSets,
55
- getTreatmentsByFlagSet: getTreatmentsByFlagSet,
56
- getTreatmentsWithConfigByFlagSet: getTreatmentsWithConfigByFlagSet,
57
- /**
58
- * Add an attribute to client's in memory attributes storage
59
- *
60
- * @param attributeName - Attribute name
61
- * @param attributeValue - Attribute value
62
- * @returns true if the attribute was stored and false otherways
63
- */
64
- setAttribute: function (attributeName, attributeValue) {
65
- var attribute = {};
66
- attribute[attributeName] = attributeValue;
67
- if (!validateAttributesDeep(log, attribute, 'setAttribute'))
68
- return false;
69
- log.debug("stored " + attributeValue + " for attribute " + attributeName);
70
- return attributeStorage.setAttribute(attributeName, attributeValue);
71
- },
72
- /**
73
- * Returns the attribute with the given name
74
- *
75
- * @param attributeName - Attribute name
76
- * @returns Attribute with the given name
77
- */
78
- getAttribute: function (attributeName) {
79
- log.debug("retrieved attribute " + attributeName);
80
- return attributeStorage.getAttribute(attributeName + '');
81
- },
82
- /**
83
- * Add to client's in memory attributes storage the attributes in 'attributes'
84
- *
85
- * @param attributes - Object with attributes to store
86
- * @returns true if attributes were stored an false otherways
87
- */
88
- setAttributes: function (attributes) {
89
- if (!validateAttributesDeep(log, attributes, 'setAttributes'))
90
- return false;
91
- return attributeStorage.setAttributes(attributes);
92
- },
93
- /**
94
- * Return all the attributes stored in client's in memory attributes storage
95
- *
96
- * @returns returns all the stored attributes
97
- */
98
- getAttributes: function () {
99
- return attributeStorage.getAll();
100
- },
101
- /**
102
- * Removes from client's in memory attributes storage the attribute with the given name
103
- *
104
- * @param attributeName - Attribute name
105
- * @returns true if attribute was removed and false otherways
106
- */
107
- removeAttribute: function (attributeName) {
108
- log.debug("removed attribute " + attributeName);
109
- return attributeStorage.removeAttribute(attributeName + '');
110
- },
111
- /**
112
- * Remove all the stored attributes in the client's in memory attribute storage
113
- */
114
- clearAttributes: function () {
115
- return attributeStorage.clear();
116
- }
117
- });
118
- }
@@ -1,26 +0,0 @@
1
- import { objectAssign } from '../utils/lang/objectAssign';
2
- import { clientAttributesDecoration } from './clientAttributesDecoration';
3
- /**
4
- * Decorator that binds a key to client methods
5
- *
6
- * @param client - sync client instance
7
- * @param key - validated split key
8
- */
9
- export function clientCSDecorator(log, client, key) {
10
- var clientCS = clientAttributesDecoration(log, client);
11
- return objectAssign(clientCS, {
12
- // In the client-side API, we bind a key to the client `getTreatment*` and `track` methods
13
- getTreatment: clientCS.getTreatment.bind(clientCS, key),
14
- getTreatmentWithConfig: clientCS.getTreatmentWithConfig.bind(clientCS, key),
15
- getTreatments: clientCS.getTreatments.bind(clientCS, key),
16
- getTreatmentsWithConfig: clientCS.getTreatmentsWithConfig.bind(clientCS, key),
17
- getTreatmentsByFlagSets: clientCS.getTreatmentsByFlagSets.bind(clientCS, key),
18
- getTreatmentsWithConfigByFlagSets: clientCS.getTreatmentsWithConfigByFlagSets.bind(clientCS, key),
19
- getTreatmentsByFlagSet: clientCS.getTreatmentsByFlagSet.bind(clientCS, key),
20
- getTreatmentsWithConfigByFlagSet: clientCS.getTreatmentsWithConfigByFlagSet.bind(clientCS, key),
21
- track: clientCS.track.bind(clientCS, key),
22
- // Not part of the public API. These properties are used to support other modules (e.g., Split Suite)
23
- isClientSide: true,
24
- key: key
25
- });
26
- }
@@ -1,143 +0,0 @@
1
- import { objectAssign } from '../utils/lang/objectAssign';
2
- import { validateAttributes, validateEvent, validateEventValue, validateEventProperties, validateKey, validateSplit, validateSplits, validateTrafficType, validateIfNotDestroyed, validateIfOperational, validateEvaluationOptions } from '../utils/inputValidation';
3
- import { startsWith } from '../utils/lang';
4
- import { CONTROL, CONTROL_WITH_CONFIG, GET_TREATMENT, GET_TREATMENTS, GET_TREATMENTS_BY_FLAG_SET, GET_TREATMENTS_BY_FLAG_SETS, GET_TREATMENTS_WITH_CONFIG, GET_TREATMENTS_WITH_CONFIG_BY_FLAG_SET, GET_TREATMENTS_WITH_CONFIG_BY_FLAG_SETS, GET_TREATMENT_WITH_CONFIG, TRACK_FN_LABEL } from '../utils/constants';
5
- import { isConsumerMode } from '../utils/settingsValidation/mode';
6
- import { validateFlagSets } from '../utils/settingsValidation/splitFilters';
7
- /**
8
- * Decorator that validates the input before actually executing the client methods.
9
- * We should "guard" the client here, while not polluting the "real" implementation of those methods.
10
- */
11
- export function clientInputValidationDecorator(settings, client, readinessManager) {
12
- var log = settings.log, mode = settings.mode;
13
- var isAsync = isConsumerMode(mode);
14
- /**
15
- * Avoid repeating this validations code
16
- */
17
- function validateEvaluationParams(methodName, maybeKey, maybeNameOrNames, maybeAttributes, maybeOptions) {
18
- var key = validateKey(log, maybeKey, methodName);
19
- var nameOrNames = methodName.indexOf('ByFlagSet') > -1 ?
20
- validateFlagSets(log, methodName, maybeNameOrNames, settings.sync.__splitFiltersValidation.groupedFilters.bySet) :
21
- startsWith(methodName, GET_TREATMENTS) ?
22
- validateSplits(log, maybeNameOrNames, methodName) :
23
- validateSplit(log, maybeNameOrNames, methodName);
24
- var attributes = validateAttributes(log, maybeAttributes, methodName);
25
- var isNotDestroyed = validateIfNotDestroyed(log, readinessManager, methodName);
26
- var options = validateEvaluationOptions(log, maybeOptions, methodName);
27
- validateIfOperational(log, readinessManager, methodName, nameOrNames);
28
- var valid = isNotDestroyed && key && nameOrNames && attributes !== false;
29
- return {
30
- valid: valid,
31
- key: key,
32
- nameOrNames: nameOrNames,
33
- attributes: attributes,
34
- options: options
35
- };
36
- }
37
- function wrapResult(value) {
38
- return isAsync ? Promise.resolve(value) : value;
39
- }
40
- function getTreatment(maybeKey, maybeFeatureFlagName, maybeAttributes, maybeOptions) {
41
- var params = validateEvaluationParams(GET_TREATMENT, maybeKey, maybeFeatureFlagName, maybeAttributes, maybeOptions);
42
- if (params.valid) {
43
- return client.getTreatment(params.key, params.nameOrNames, params.attributes, params.options);
44
- }
45
- else {
46
- return wrapResult(CONTROL);
47
- }
48
- }
49
- function getTreatmentWithConfig(maybeKey, maybeFeatureFlagName, maybeAttributes, maybeOptions) {
50
- var params = validateEvaluationParams(GET_TREATMENT_WITH_CONFIG, maybeKey, maybeFeatureFlagName, maybeAttributes, maybeOptions);
51
- if (params.valid) {
52
- return client.getTreatmentWithConfig(params.key, params.nameOrNames, params.attributes, params.options);
53
- }
54
- else {
55
- return wrapResult(objectAssign({}, CONTROL_WITH_CONFIG));
56
- }
57
- }
58
- function getTreatments(maybeKey, maybeFeatureFlagNames, maybeAttributes, maybeOptions) {
59
- var params = validateEvaluationParams(GET_TREATMENTS, maybeKey, maybeFeatureFlagNames, maybeAttributes, maybeOptions);
60
- if (params.valid) {
61
- return client.getTreatments(params.key, params.nameOrNames, params.attributes, params.options);
62
- }
63
- else {
64
- var res_1 = {};
65
- if (params.nameOrNames)
66
- params.nameOrNames.forEach(function (split) { return res_1[split] = CONTROL; });
67
- return wrapResult(res_1);
68
- }
69
- }
70
- function getTreatmentsWithConfig(maybeKey, maybeFeatureFlagNames, maybeAttributes, maybeOptions) {
71
- var params = validateEvaluationParams(GET_TREATMENTS_WITH_CONFIG, maybeKey, maybeFeatureFlagNames, maybeAttributes, maybeOptions);
72
- if (params.valid) {
73
- return client.getTreatmentsWithConfig(params.key, params.nameOrNames, params.attributes, params.options);
74
- }
75
- else {
76
- var res_2 = {};
77
- if (params.nameOrNames)
78
- params.nameOrNames.forEach(function (split) { return res_2[split] = objectAssign({}, CONTROL_WITH_CONFIG); });
79
- return wrapResult(res_2);
80
- }
81
- }
82
- function getTreatmentsByFlagSets(maybeKey, maybeFlagSets, maybeAttributes, maybeOptions) {
83
- var params = validateEvaluationParams(GET_TREATMENTS_BY_FLAG_SETS, maybeKey, maybeFlagSets, maybeAttributes, maybeOptions);
84
- if (params.valid) {
85
- return client.getTreatmentsByFlagSets(params.key, params.nameOrNames, params.attributes, params.options);
86
- }
87
- else {
88
- return wrapResult({});
89
- }
90
- }
91
- function getTreatmentsWithConfigByFlagSets(maybeKey, maybeFlagSets, maybeAttributes, maybeOptions) {
92
- var params = validateEvaluationParams(GET_TREATMENTS_WITH_CONFIG_BY_FLAG_SETS, maybeKey, maybeFlagSets, maybeAttributes, maybeOptions);
93
- if (params.valid) {
94
- return client.getTreatmentsWithConfigByFlagSets(params.key, params.nameOrNames, params.attributes, params.options);
95
- }
96
- else {
97
- return wrapResult({});
98
- }
99
- }
100
- function getTreatmentsByFlagSet(maybeKey, maybeFlagSet, maybeAttributes, maybeOptions) {
101
- var params = validateEvaluationParams(GET_TREATMENTS_BY_FLAG_SET, maybeKey, [maybeFlagSet], maybeAttributes, maybeOptions);
102
- if (params.valid) {
103
- return client.getTreatmentsByFlagSet(params.key, params.nameOrNames[0], params.attributes, params.options);
104
- }
105
- else {
106
- return wrapResult({});
107
- }
108
- }
109
- function getTreatmentsWithConfigByFlagSet(maybeKey, maybeFlagSet, maybeAttributes, maybeOptions) {
110
- var params = validateEvaluationParams(GET_TREATMENTS_WITH_CONFIG_BY_FLAG_SET, maybeKey, [maybeFlagSet], maybeAttributes, maybeOptions);
111
- if (params.valid) {
112
- return client.getTreatmentsWithConfigByFlagSet(params.key, params.nameOrNames[0], params.attributes, params.options);
113
- }
114
- else {
115
- return wrapResult({});
116
- }
117
- }
118
- function track(maybeKey, maybeTT, maybeEvent, maybeEventValue, maybeProperties) {
119
- var key = validateKey(log, maybeKey, TRACK_FN_LABEL);
120
- var tt = validateTrafficType(log, maybeTT, TRACK_FN_LABEL);
121
- var event = validateEvent(log, maybeEvent, TRACK_FN_LABEL);
122
- var eventValue = validateEventValue(log, maybeEventValue, TRACK_FN_LABEL);
123
- var _a = validateEventProperties(log, maybeProperties, TRACK_FN_LABEL), properties = _a.properties, size = _a.size;
124
- var isNotDestroyed = validateIfNotDestroyed(log, readinessManager, TRACK_FN_LABEL);
125
- if (isNotDestroyed && key && tt && event && eventValue !== false && properties !== false) { // @ts-expect-error
126
- return client.track(key, tt, event, eventValue, properties, size);
127
- }
128
- else {
129
- return isAsync ? Promise.resolve(false) : false;
130
- }
131
- }
132
- return {
133
- getTreatment: getTreatment,
134
- getTreatmentWithConfig: getTreatmentWithConfig,
135
- getTreatments: getTreatments,
136
- getTreatmentsWithConfig: getTreatmentsWithConfig,
137
- getTreatmentsByFlagSets: getTreatmentsByFlagSets,
138
- getTreatmentsWithConfigByFlagSets: getTreatmentsWithConfigByFlagSets,
139
- getTreatmentsByFlagSet: getTreatmentsByFlagSet,
140
- getTreatmentsWithConfigByFlagSet: getTreatmentsWithConfigByFlagSet,
141
- track: track
142
- };
143
- }
@@ -1,3 +0,0 @@
1
- export function buildInstanceId(key, trafficType) {
2
- return (key.matchingKey ? key.matchingKey : key) + "-" + (key.bucketingKey ? key.bucketingKey : key) + "-" + (trafficType ? trafficType : '');
3
- }
@@ -1,60 +0,0 @@
1
- import { objectAssign } from '../utils/lang/objectAssign';
2
- import { releaseApiKey } from '../utils/inputValidation/apiKey';
3
- import { clientFactory } from './client';
4
- import { clientInputValidationDecorator } from './clientInputValidation';
5
- var COOLDOWN_TIME_IN_MILLIS = 1000;
6
- /**
7
- * Creates an Sdk client, i.e., a base client with status and destroy interface
8
- */
9
- export function sdkClientFactory(params, isSharedClient) {
10
- var sdkReadinessManager = params.sdkReadinessManager, syncManager = params.syncManager, storage = params.storage, signalListener = params.signalListener, settings = params.settings, telemetryTracker = params.telemetryTracker, uniqueKeysTracker = params.uniqueKeysTracker;
11
- var lastActionTime = 0;
12
- function __cooldown(func, time) {
13
- var now = Date.now();
14
- //get the actual time elapsed in ms
15
- var timeElapsed = now - lastActionTime;
16
- //check if the time elapsed is less than desired cooldown
17
- if (timeElapsed < time) {
18
- //if yes, return message with remaining time in seconds
19
- settings.log.warn("Flush cooldown, remaining time " + (time - timeElapsed) / 1000 + " seconds");
20
- return Promise.resolve();
21
- }
22
- else {
23
- //Do the requested action and re-assign the lastActionTime
24
- lastActionTime = now;
25
- return func();
26
- }
27
- }
28
- function __flush() {
29
- return syncManager ? syncManager.flush() : Promise.resolve();
30
- }
31
- return objectAssign(
32
- // Proto-linkage of the readiness Event Emitter
33
- Object.create(sdkReadinessManager.sdkStatus),
34
- // Client API (getTreatment* & track methods)
35
- clientInputValidationDecorator(settings, clientFactory(params), sdkReadinessManager.readinessManager),
36
- // Sdk destroy
37
- {
38
- flush: function () {
39
- // @TODO define cooldown time
40
- return __cooldown(__flush, COOLDOWN_TIME_IN_MILLIS);
41
- },
42
- destroy: function () {
43
- // Mark the SDK as destroyed immediately
44
- sdkReadinessManager.readinessManager.destroy();
45
- // For main client, cleanup the SDK Key, listeners and scheduled jobs, and record stat before flushing data
46
- if (!isSharedClient) {
47
- releaseApiKey(settings.core.authorizationKey);
48
- telemetryTracker.sessionLength();
49
- signalListener && signalListener.stop();
50
- uniqueKeysTracker.stop();
51
- }
52
- // Stop background jobs
53
- syncManager && syncManager.stop();
54
- return __flush().then(function () {
55
- // Cleanup storage
56
- return storage.destroy();
57
- });
58
- }
59
- });
60
- }
@@ -1,18 +0,0 @@
1
- import { sdkClientFactory } from './sdkClient';
2
- import { RETRIEVE_CLIENT_DEFAULT } from '../logger/constants';
3
- /**
4
- * Factory of client method for server-side SDKs
5
- */
6
- export function sdkClientMethodFactory(params) {
7
- var log = params.settings.log;
8
- var clientInstance = sdkClientFactory(params);
9
- // Only one client in server-side without bound key
10
- params.clients[''] = clientInstance;
11
- return function client() {
12
- if (arguments.length > 0) {
13
- throw new Error('Shared Client not supported by the storage mechanism. Create isolated instances instead.');
14
- }
15
- log.debug(RETRIEVE_CLIENT_DEFAULT);
16
- return clientInstance;
17
- };
18
- }