@splitsoftware/splitio 10.17.3-rc.4 → 10.17.4-rc.1

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 (780) hide show
  1. package/CHANGES.txt +0 -3
  2. package/client/package.json +5 -0
  3. package/es/factory/browser.js +67 -0
  4. package/es/factory/node.js +63 -0
  5. package/es/{client → factory}/package.json +0 -0
  6. package/es/index.js +16 -132
  7. package/es/platform/EventEmitter.js +386 -0
  8. package/es/platform/browser.js +10 -0
  9. package/es/platform/getEventSource/browser.js +3 -0
  10. package/es/platform/getEventSource/node.js +19 -0
  11. package/es/{impressions/observer → platform/getEventSource}/package.json +0 -0
  12. package/es/platform/getFetch/browser.js +4 -0
  13. package/es/platform/getFetch/node.js +18 -0
  14. package/es/{integrations → platform/getFetch}/package.json +0 -0
  15. package/es/platform/node.js +12 -0
  16. package/es/{listeners → platform}/package.json +0 -0
  17. package/es/platform/request/options/node.js +13 -0
  18. package/es/settings/browser.js +20 -0
  19. package/es/settings/defaults/browser.js +18 -0
  20. package/es/settings/defaults/node.js +24 -0
  21. package/es/settings/defaults/version.js +1 -0
  22. package/es/settings/integrations/browser.js +5 -0
  23. package/es/settings/node.js +18 -0
  24. package/es/{producer/offline → settings}/package.json +0 -0
  25. package/es/settings/runtime/node.js +17 -0
  26. package/es/settings/storage/browser.js +29 -0
  27. package/es/settings/storage/node.js +60 -0
  28. package/es/umd.js +2 -1
  29. package/lib/factory/browser.js +71 -0
  30. package/lib/factory/node.js +67 -0
  31. package/{es/producer → lib/factory}/package.json +0 -0
  32. package/lib/index.js +19 -155
  33. package/lib/platform/EventEmitter.js +390 -0
  34. package/lib/platform/browser.js +13 -0
  35. package/lib/platform/getEventSource/browser.js +7 -0
  36. package/lib/platform/getEventSource/node.js +25 -0
  37. package/{es/services → lib/platform}/getEventSource/package.json +0 -0
  38. package/lib/platform/getFetch/browser.js +9 -0
  39. package/lib/platform/getFetch/node.js +23 -0
  40. package/{es/services → lib/platform}/getFetch/package.json +0 -0
  41. package/lib/platform/node.js +16 -0
  42. package/{es/services/request/options → lib/platform}/package.json +0 -0
  43. package/lib/platform/request/options/node.js +18 -0
  44. package/lib/settings/browser.js +24 -0
  45. package/lib/settings/defaults/browser.js +21 -0
  46. package/lib/settings/defaults/node.js +27 -0
  47. package/lib/settings/defaults/version.js +4 -0
  48. package/lib/settings/integrations/browser.js +9 -0
  49. package/lib/settings/node.js +22 -0
  50. package/{es/services/splitChanges/offline → lib/settings}/package.json +0 -0
  51. package/lib/settings/runtime/node.js +22 -0
  52. package/lib/settings/storage/browser.js +33 -0
  53. package/lib/settings/storage/node.js +64 -0
  54. package/lib/umd.js +4 -8
  55. package/package.json +29 -31
  56. package/server/package.json +5 -0
  57. package/src/.DS_Store +0 -0
  58. package/src/factory/browser.js +84 -0
  59. package/src/factory/node.js +78 -0
  60. package/{es/storage/SegmentCache/InMemory → src/factory}/package.json +0 -0
  61. package/src/index.js +13 -136
  62. package/src/platform/.DS_Store +0 -0
  63. package/src/platform/EventEmitter.js +443 -0
  64. package/src/platform/browser.js +12 -0
  65. package/{es/services → src/platform}/getEventSource/browser.js +2 -2
  66. package/src/{services → platform}/getEventSource/node.js +2 -2
  67. package/{es/storage → src/platform/getEventSource}/package.json +0 -0
  68. package/src/{services → platform}/getFetch/browser.js +2 -2
  69. package/src/{services → platform}/getFetch/node.js +1 -1
  70. package/{es/sync/PushManager/pushRequirements → src/platform/getFetch}/package.json +0 -0
  71. package/src/platform/node.js +14 -0
  72. package/{es/sync/SegmentUpdateWorker → src/platform}/package.json +0 -0
  73. package/src/platform/request/options/node.js +15 -0
  74. package/src/settings/.DS_Store +0 -0
  75. package/src/settings/browser.js +22 -0
  76. package/{lib/utils → src}/settings/defaults/browser.js +10 -6
  77. package/{lib/utils → src}/settings/defaults/node.js +6 -6
  78. package/src/settings/defaults/version.js +1 -0
  79. package/src/settings/integrations/browser.js +6 -0
  80. package/src/settings/node.js +20 -0
  81. package/{es/sync → src/settings}/package.json +0 -0
  82. package/src/settings/runtime/node.js +21 -0
  83. package/src/settings/storage/browser.js +43 -0
  84. package/src/{utils/settings → settings}/storage/node.js +18 -34
  85. package/src/umd.js +1 -0
  86. package/types/client/index.d.ts +14 -0
  87. package/types/server/index.d.ts +20 -0
  88. package/types/splitio.d.ts +77 -6
  89. package/es/client/attributesDecoration.js +0 -116
  90. package/es/client/browser.js +0 -39
  91. package/es/client/client.js +0 -155
  92. package/es/client/inputValidation.js +0 -117
  93. package/es/client/node.js +0 -6
  94. package/es/engine/combiners/and.js +0 -54
  95. package/es/engine/combiners/ifelseif.js +0 -73
  96. package/es/engine/condition/index.js +0 -62
  97. package/es/engine/convertions/index.js +0 -29
  98. package/es/engine/engine/index.js +0 -60
  99. package/es/engine/engine/legacy.js +0 -77
  100. package/es/engine/engine/murmur3/common.js +0 -40
  101. package/es/engine/engine/murmur3/murmur3.js +0 -83
  102. package/es/engine/engine/murmur3/murmur3_128.js +0 -250
  103. package/es/engine/engine/murmur3/murmur3_128_x86.js +0 -183
  104. package/es/engine/engine/murmur3/murmur3_64.js +0 -52
  105. package/es/engine/engine/murmur3/utfx.js +0 -112
  106. package/es/engine/evaluator/index.js +0 -111
  107. package/es/engine/index.js +0 -112
  108. package/es/engine/matchers/all.js +0 -32
  109. package/es/engine/matchers/between.js +0 -35
  110. package/es/engine/matchers/boolean.js +0 -35
  111. package/es/engine/matchers/cont_all.js +0 -51
  112. package/es/engine/matchers/cont_any.js +0 -47
  113. package/es/engine/matchers/cont_str.js +0 -38
  114. package/es/engine/matchers/dependency.js +0 -50
  115. package/es/engine/matchers/eq.js +0 -35
  116. package/es/engine/matchers/eq_set.js +0 -49
  117. package/es/engine/matchers/ew.js +0 -38
  118. package/es/engine/matchers/gte.js +0 -35
  119. package/es/engine/matchers/index.js +0 -65
  120. package/es/engine/matchers/lte.js +0 -35
  121. package/es/engine/matchers/part_of.js +0 -49
  122. package/es/engine/matchers/segment.js +0 -39
  123. package/es/engine/matchers/string.js +0 -44
  124. package/es/engine/matchers/sw.js +0 -38
  125. package/es/engine/matchers/types.js +0 -48
  126. package/es/engine/matchers/whitelist.js +0 -36
  127. package/es/engine/parser/index.js +0 -69
  128. package/es/engine/parser/segments.js +0 -22
  129. package/es/engine/transforms/matcherGroup.js +0 -43
  130. package/es/engine/transforms/matchers.js +0 -109
  131. package/es/engine/transforms/segment.js +0 -28
  132. package/es/engine/transforms/set.js +0 -20
  133. package/es/engine/transforms/unaryNumeric.js +0 -20
  134. package/es/engine/transforms/whitelist.js +0 -22
  135. package/es/engine/treatments/index.js +0 -67
  136. package/es/engine/value/index.js +0 -54
  137. package/es/engine/value/sanitize.js +0 -125
  138. package/es/events/index.js +0 -65
  139. package/es/factory/offline.js +0 -50
  140. package/es/factory/online.js +0 -113
  141. package/es/impressions/counter.js +0 -52
  142. package/es/impressions/hasher/buildKey.js +0 -3
  143. package/es/impressions/hasher/hashImpression128.js +0 -5
  144. package/es/impressions/hasher/hashImpression32.js +0 -5
  145. package/es/impressions/observer/browser.js +0 -9
  146. package/es/impressions/observer/node.js +0 -9
  147. package/es/impressions/observer/observer.js +0 -21
  148. package/es/integrations/browser.js +0 -62
  149. package/es/integrations/ga/GaToSplit.js +0 -246
  150. package/es/integrations/ga/SplitToGa.js +0 -127
  151. package/es/integrations/node.js +0 -3
  152. package/es/listeners/browser.js +0 -157
  153. package/es/listeners/node.js +0 -65
  154. package/es/manager/index.js +0 -104
  155. package/es/metrics/Collectors.js +0 -100
  156. package/es/metrics/index.js +0 -157
  157. package/es/producer/browser/Partial.js +0 -103
  158. package/es/producer/browser.js +0 -70
  159. package/es/producer/fetcher/MySegments.js +0 -47
  160. package/es/producer/fetcher/SegmentChanges.js +0 -52
  161. package/es/producer/fetcher/SplitChanges.js +0 -46
  162. package/es/producer/node.js +0 -130
  163. package/es/producer/offline/browser.js +0 -26
  164. package/es/producer/offline/node.js +0 -26
  165. package/es/producer/task.js +0 -50
  166. package/es/producer/updater/MySegments.js +0 -108
  167. package/es/producer/updater/SegmentChanges.js +0 -135
  168. package/es/producer/updater/SplitChanges.js +0 -131
  169. package/es/producer/updater/SplitChangesFromFeatures.js +0 -21
  170. package/es/producer/updater/SplitChangesFromFileSystem.js +0 -21
  171. package/es/producer/updater/SplitChangesFromObject.js +0 -73
  172. package/es/readiness/index.js +0 -123
  173. package/es/readiness/statusManager.js +0 -114
  174. package/es/services/auth/auth.js +0 -25
  175. package/es/services/auth/index.js +0 -2
  176. package/es/services/events/bulk.js +0 -22
  177. package/es/services/events/index.js +0 -17
  178. package/es/services/getEventSource/node.js +0 -18
  179. package/es/services/getFetch/browser.js +0 -4
  180. package/es/services/getFetch/node.js +0 -18
  181. package/es/services/impressions/bulk.js +0 -26
  182. package/es/services/impressions/count.js +0 -7
  183. package/es/services/impressions/dto.js +0 -73
  184. package/es/services/impressions/index.js +0 -17
  185. package/es/services/impressions/post.js +0 -22
  186. package/es/services/metrics/counters.js +0 -24
  187. package/es/services/metrics/dto.js +0 -38
  188. package/es/services/metrics/index.js +0 -17
  189. package/es/services/metrics/times.js +0 -24
  190. package/es/services/mySegments/get.js +0 -26
  191. package/es/services/mySegments/index.js +0 -17
  192. package/es/services/request/index.js +0 -43
  193. package/es/services/request/options/browser.js +0 -18
  194. package/es/services/request/options/node.js +0 -28
  195. package/es/services/segmentChanges/get.js +0 -21
  196. package/es/services/segmentChanges/index.js +0 -17
  197. package/es/services/splitChanges/get.js +0 -19
  198. package/es/services/splitChanges/index.js +0 -17
  199. package/es/services/splitChanges/offline/browser.js +0 -63
  200. package/es/services/splitChanges/offline/node.js +0 -176
  201. package/es/services/splitChanges/offline/parseCondition.js +0 -43
  202. package/es/services/transport/index.js +0 -51
  203. package/es/storage/AttributesCache/InMemory.js +0 -85
  204. package/es/storage/BaseMetricsAsyncCache.js +0 -23
  205. package/es/storage/CountCache/InMemory.js +0 -48
  206. package/es/storage/CountCache/InRedis.js +0 -42
  207. package/es/storage/EventsCache/InMemory.js +0 -109
  208. package/es/storage/EventsCache/InRedis.js +0 -65
  209. package/es/storage/ImpressionsCache/InMemory.js +0 -71
  210. package/es/storage/ImpressionsCache/InRedis.js +0 -73
  211. package/es/storage/Keys.js +0 -125
  212. package/es/storage/KeysLocalStorage.js +0 -58
  213. package/es/storage/LatencyCache/InMemory.js +0 -56
  214. package/es/storage/LatencyCache/InRedis.js +0 -44
  215. package/es/storage/LatencyCache/findIndex.js +0 -2
  216. package/es/storage/Meta.js +0 -7
  217. package/es/storage/RedisAdapter.js +0 -198
  218. package/es/storage/SegmentCache/InLocalStorage/index.js +0 -162
  219. package/es/storage/SegmentCache/InMemory/browser.js +0 -107
  220. package/es/storage/SegmentCache/InMemory/node.js +0 -82
  221. package/es/storage/SegmentCache/InRedis/index.js +0 -81
  222. package/es/storage/SplitCache/InLocalStorage.js +0 -332
  223. package/es/storage/SplitCache/InMemory.js +0 -162
  224. package/es/storage/SplitCache/InRedis.js +0 -214
  225. package/es/storage/SplitCache/killLocally.js +0 -35
  226. package/es/storage/browser.js +0 -101
  227. package/es/storage/node.js +0 -81
  228. package/es/sync/AuthClient/index.js +0 -34
  229. package/es/sync/PushManager/index.js +0 -315
  230. package/es/sync/PushManager/mySegmentsV2utils.js +0 -76
  231. package/es/sync/PushManager/pushRequirements/browser.js +0 -23
  232. package/es/sync/PushManager/pushRequirements/node.js +0 -18
  233. package/es/sync/SSEClient/index.js +0 -93
  234. package/es/sync/SSEHandler/NotificationKeeper.js +0 -97
  235. package/es/sync/SSEHandler/NotificationParser.js +0 -31
  236. package/es/sync/SSEHandler/index.js +0 -110
  237. package/es/sync/SegmentUpdateWorker/browser.js +0 -74
  238. package/es/sync/SegmentUpdateWorker/node.js +0 -79
  239. package/es/sync/SplitUpdateWorker/index.js +0 -86
  240. package/es/sync/browser.js +0 -125
  241. package/es/sync/constants.js +0 -42
  242. package/es/sync/node.js +0 -60
  243. package/es/trackers/event.js +0 -53
  244. package/es/trackers/impressions.js +0 -132
  245. package/es/utils/backoff/index.js +0 -51
  246. package/es/utils/base64/browser.js +0 -19
  247. package/es/utils/base64/node.js +0 -19
  248. package/es/utils/base64/package.json +0 -4
  249. package/es/utils/binarySearch/index.js +0 -50
  250. package/es/utils/constants/index.js +0 -38
  251. package/es/utils/context/constants.js +0 -30
  252. package/es/utils/context/index.js +0 -101
  253. package/es/utils/decompress/index.js +0 -476
  254. package/es/utils/fn/repeat.js +0 -58
  255. package/es/utils/inputValidation/apiKey.js +0 -39
  256. package/es/utils/inputValidation/attribute.js +0 -22
  257. package/es/utils/inputValidation/attributes.js +0 -19
  258. package/es/utils/inputValidation/event.js +0 -23
  259. package/es/utils/inputValidation/eventProperties.js +0 -69
  260. package/es/utils/inputValidation/eventValue.js +0 -9
  261. package/es/utils/inputValidation/index.js +0 -11
  262. package/es/utils/inputValidation/isOperational.js +0 -14
  263. package/es/utils/inputValidation/key.js +0 -50
  264. package/es/utils/inputValidation/split.js +0 -47
  265. package/es/utils/inputValidation/splitFilters.js +0 -121
  266. package/es/utils/inputValidation/splits.js +0 -27
  267. package/es/utils/inputValidation/trafficType.js +0 -55
  268. package/es/utils/jwt/hashUserKey.js +0 -11
  269. package/es/utils/jwt/index.js +0 -14
  270. package/es/utils/key/factory.js +0 -38
  271. package/es/utils/key/parser.js +0 -34
  272. package/es/utils/labels/index.js +0 -7
  273. package/es/utils/lang/Errors.js +0 -41
  274. package/es/utils/lang/Sets.js +0 -114
  275. package/es/utils/lang/index.js +0 -305
  276. package/es/utils/localstorage/isAvailable.js +0 -26
  277. package/es/utils/logger/LoggerFactory.js +0 -86
  278. package/es/utils/logger/index.js +0 -97
  279. package/es/utils/lrucache/linkedlist.js +0 -122
  280. package/es/utils/lrucache/lru.spec.js +0 -24
  281. package/es/utils/lrucache/lrucache.js +0 -80
  282. package/es/utils/now/browser.js +0 -27
  283. package/es/utils/now/node.js +0 -19
  284. package/es/utils/now/package.json +0 -4
  285. package/es/utils/promise/thenable.js +0 -3
  286. package/es/utils/promise/timeout.js +0 -34
  287. package/es/utils/promise/wrapper.js +0 -58
  288. package/es/utils/settings/defaults/browser.js +0 -12
  289. package/es/utils/settings/defaults/node.js +0 -21
  290. package/es/utils/settings/defaults/package.json +0 -4
  291. package/es/utils/settings/impressionsMode.js +0 -16
  292. package/es/utils/settings/index.js +0 -194
  293. package/es/utils/settings/integrations/browser.js +0 -8
  294. package/es/utils/settings/integrations/common.js +0 -30
  295. package/es/utils/settings/integrations/node.js +0 -7
  296. package/es/utils/settings/integrations/package.json +0 -4
  297. package/es/utils/settings/language/browser.js +0 -16
  298. package/es/utils/settings/language/node.js +0 -16
  299. package/es/utils/settings/language/package.json +0 -4
  300. package/es/utils/settings/mode.js +0 -10
  301. package/es/utils/settings/runtime/browser.js +0 -21
  302. package/es/utils/settings/runtime/node.js +0 -33
  303. package/es/utils/settings/runtime/package.json +0 -4
  304. package/es/utils/settings/storage/browser.js +0 -64
  305. package/es/utils/settings/storage/node.js +0 -86
  306. package/es/utils/settings/storage/package.json +0 -4
  307. package/es/utils/splits/usesSegments.js +0 -21
  308. package/es/utils/time/index.js +0 -8
  309. package/es/utils/timeTracker/index.js +0 -216
  310. package/es/utils/timeTracker/timer.js +0 -25
  311. package/lib/client/attributesDecoration.js +0 -128
  312. package/lib/client/browser.js +0 -50
  313. package/lib/client/client.js +0 -174
  314. package/lib/client/inputValidation.js +0 -129
  315. package/lib/client/node.js +0 -14
  316. package/lib/client/package.json +0 -4
  317. package/lib/engine/combiners/and.js +0 -65
  318. package/lib/engine/combiners/ifelseif.js +0 -88
  319. package/lib/engine/condition/index.js +0 -76
  320. package/lib/engine/convertions/index.js +0 -36
  321. package/lib/engine/engine/index.js +0 -71
  322. package/lib/engine/engine/legacy.js +0 -83
  323. package/lib/engine/engine/murmur3/common.js +0 -52
  324. package/lib/engine/engine/murmur3/murmur3.js +0 -90
  325. package/lib/engine/engine/murmur3/murmur3_128.js +0 -256
  326. package/lib/engine/engine/murmur3/murmur3_128_x86.js +0 -189
  327. package/lib/engine/engine/murmur3/murmur3_64.js +0 -57
  328. package/lib/engine/engine/murmur3/utfx.js +0 -121
  329. package/lib/engine/evaluator/index.js +0 -129
  330. package/lib/engine/index.js +0 -128
  331. package/lib/engine/matchers/all.js +0 -41
  332. package/lib/engine/matchers/between.js +0 -44
  333. package/lib/engine/matchers/boolean.js +0 -44
  334. package/lib/engine/matchers/cont_all.js +0 -61
  335. package/lib/engine/matchers/cont_any.js +0 -57
  336. package/lib/engine/matchers/cont_str.js +0 -48
  337. package/lib/engine/matchers/dependency.js +0 -60
  338. package/lib/engine/matchers/eq.js +0 -44
  339. package/lib/engine/matchers/eq_set.js +0 -59
  340. package/lib/engine/matchers/ew.js +0 -48
  341. package/lib/engine/matchers/gte.js +0 -44
  342. package/lib/engine/matchers/index.js +0 -90
  343. package/lib/engine/matchers/lte.js +0 -44
  344. package/lib/engine/matchers/part_of.js +0 -59
  345. package/lib/engine/matchers/segment.js +0 -49
  346. package/lib/engine/matchers/string.js +0 -53
  347. package/lib/engine/matchers/sw.js +0 -48
  348. package/lib/engine/matchers/types.js +0 -57
  349. package/lib/engine/matchers/whitelist.js +0 -46
  350. package/lib/engine/parser/index.js +0 -84
  351. package/lib/engine/parser/segments.js +0 -28
  352. package/lib/engine/transforms/matcherGroup.js +0 -54
  353. package/lib/engine/transforms/matchers.js +0 -124
  354. package/lib/engine/transforms/segment.js +0 -34
  355. package/lib/engine/transforms/set.js +0 -26
  356. package/lib/engine/transforms/unaryNumeric.js +0 -26
  357. package/lib/engine/transforms/whitelist.js +0 -28
  358. package/lib/engine/treatments/index.js +0 -73
  359. package/lib/engine/value/index.js +0 -64
  360. package/lib/engine/value/sanitize.js +0 -137
  361. package/lib/events/index.js +0 -80
  362. package/lib/factory/offline.js +0 -62
  363. package/lib/factory/online.js +0 -129
  364. package/lib/impressions/counter.js +0 -61
  365. package/lib/impressions/hasher/buildKey.js +0 -8
  366. package/lib/impressions/hasher/hashImpression128.js +0 -12
  367. package/lib/impressions/hasher/hashImpression32.js +0 -14
  368. package/lib/impressions/observer/browser.js +0 -19
  369. package/lib/impressions/observer/node.js +0 -19
  370. package/lib/impressions/observer/observer.js +0 -29
  371. package/lib/impressions/observer/package.json +0 -4
  372. package/lib/integrations/browser.js +0 -72
  373. package/lib/integrations/ga/GaToSplit.js +0 -267
  374. package/lib/integrations/ga/SplitToGa.js +0 -138
  375. package/lib/integrations/node.js +0 -9
  376. package/lib/integrations/package.json +0 -4
  377. package/lib/listeners/browser.js +0 -173
  378. package/lib/listeners/node.js +0 -74
  379. package/lib/listeners/package.json +0 -4
  380. package/lib/manager/index.js +0 -115
  381. package/lib/metrics/Collectors.js +0 -118
  382. package/lib/metrics/index.js +0 -182
  383. package/lib/producer/browser/Partial.js +0 -114
  384. package/lib/producer/browser.js +0 -82
  385. package/lib/producer/fetcher/MySegments.js +0 -59
  386. package/lib/producer/fetcher/SegmentChanges.js +0 -62
  387. package/lib/producer/fetcher/SplitChanges.js +0 -58
  388. package/lib/producer/node.js +0 -142
  389. package/lib/producer/offline/browser.js +0 -35
  390. package/lib/producer/offline/node.js +0 -35
  391. package/lib/producer/offline/package.json +0 -4
  392. package/lib/producer/package.json +0 -4
  393. package/lib/producer/task.js +0 -61
  394. package/lib/producer/updater/MySegments.js +0 -119
  395. package/lib/producer/updater/SegmentChanges.js +0 -148
  396. package/lib/producer/updater/SplitChanges.js +0 -145
  397. package/lib/producer/updater/SplitChangesFromFeatures.js +0 -30
  398. package/lib/producer/updater/SplitChangesFromFileSystem.js +0 -30
  399. package/lib/producer/updater/SplitChangesFromObject.js +0 -84
  400. package/lib/readiness/index.js +0 -132
  401. package/lib/readiness/statusManager.js +0 -124
  402. package/lib/services/auth/auth.js +0 -32
  403. package/lib/services/auth/index.js +0 -11
  404. package/lib/services/events/bulk.js +0 -31
  405. package/lib/services/events/index.js +0 -26
  406. package/lib/services/getEventSource/browser.js +0 -8
  407. package/lib/services/getEventSource/node.js +0 -26
  408. package/lib/services/getEventSource/package.json +0 -4
  409. package/lib/services/getFetch/browser.js +0 -12
  410. package/lib/services/getFetch/node.js +0 -24
  411. package/lib/services/getFetch/package.json +0 -4
  412. package/lib/services/impressions/bulk.js +0 -36
  413. package/lib/services/impressions/count.js +0 -16
  414. package/lib/services/impressions/dto.js +0 -81
  415. package/lib/services/impressions/index.js +0 -26
  416. package/lib/services/impressions/post.js +0 -31
  417. package/lib/services/metrics/counters.js +0 -33
  418. package/lib/services/metrics/dto.js +0 -46
  419. package/lib/services/metrics/index.js +0 -26
  420. package/lib/services/metrics/times.js +0 -33
  421. package/lib/services/mySegments/get.js +0 -35
  422. package/lib/services/mySegments/index.js +0 -26
  423. package/lib/services/request/index.js +0 -53
  424. package/lib/services/request/options/browser.js +0 -23
  425. package/lib/services/request/options/node.js +0 -37
  426. package/lib/services/request/options/package.json +0 -4
  427. package/lib/services/segmentChanges/get.js +0 -29
  428. package/lib/services/segmentChanges/index.js +0 -26
  429. package/lib/services/splitChanges/get.js +0 -27
  430. package/lib/services/splitChanges/index.js +0 -26
  431. package/lib/services/splitChanges/offline/browser.js +0 -71
  432. package/lib/services/splitChanges/offline/node.js +0 -189
  433. package/lib/services/splitChanges/offline/package.json +0 -4
  434. package/lib/services/splitChanges/offline/parseCondition.js +0 -49
  435. package/lib/services/transport/index.js +0 -62
  436. package/lib/storage/AttributesCache/InMemory.js +0 -93
  437. package/lib/storage/BaseMetricsAsyncCache.js +0 -28
  438. package/lib/storage/CountCache/InMemory.js +0 -54
  439. package/lib/storage/CountCache/InRedis.js +0 -50
  440. package/lib/storage/EventsCache/InMemory.js +0 -118
  441. package/lib/storage/EventsCache/InRedis.js +0 -74
  442. package/lib/storage/ImpressionsCache/InMemory.js +0 -77
  443. package/lib/storage/ImpressionsCache/InRedis.js +0 -79
  444. package/lib/storage/Keys.js +0 -132
  445. package/lib/storage/KeysLocalStorage.js +0 -69
  446. package/lib/storage/LatencyCache/InMemory.js +0 -64
  447. package/lib/storage/LatencyCache/InRedis.js +0 -53
  448. package/lib/storage/LatencyCache/findIndex.js +0 -12
  449. package/lib/storage/Meta.js +0 -12
  450. package/lib/storage/RedisAdapter.js +0 -212
  451. package/lib/storage/SegmentCache/InLocalStorage/index.js +0 -171
  452. package/lib/storage/SegmentCache/InMemory/browser.js +0 -113
  453. package/lib/storage/SegmentCache/InMemory/node.js +0 -89
  454. package/lib/storage/SegmentCache/InMemory/package.json +0 -4
  455. package/lib/storage/SegmentCache/InRedis/index.js +0 -87
  456. package/lib/storage/SplitCache/InLocalStorage.js +0 -344
  457. package/lib/storage/SplitCache/InMemory.js +0 -172
  458. package/lib/storage/SplitCache/InRedis.js +0 -224
  459. package/lib/storage/SplitCache/killLocally.js +0 -42
  460. package/lib/storage/browser.js +0 -122
  461. package/lib/storage/node.js +0 -104
  462. package/lib/storage/package.json +0 -4
  463. package/lib/sync/AuthClient/index.js +0 -44
  464. package/lib/sync/PushManager/index.js +0 -340
  465. package/lib/sync/PushManager/mySegmentsV2utils.js +0 -87
  466. package/lib/sync/PushManager/pushRequirements/browser.js +0 -30
  467. package/lib/sync/PushManager/pushRequirements/node.js +0 -25
  468. package/lib/sync/PushManager/pushRequirements/package.json +0 -4
  469. package/lib/sync/SSEClient/index.js +0 -101
  470. package/lib/sync/SSEHandler/NotificationKeeper.js +0 -104
  471. package/lib/sync/SSEHandler/NotificationParser.js +0 -39
  472. package/lib/sync/SSEHandler/index.js +0 -121
  473. package/lib/sync/SegmentUpdateWorker/browser.js +0 -81
  474. package/lib/sync/SegmentUpdateWorker/node.js +0 -86
  475. package/lib/sync/SegmentUpdateWorker/package.json +0 -4
  476. package/lib/sync/SplitUpdateWorker/index.js +0 -93
  477. package/lib/sync/browser.js +0 -139
  478. package/lib/sync/constants.js +0 -59
  479. package/lib/sync/node.js +0 -71
  480. package/lib/sync/package.json +0 -4
  481. package/lib/trackers/event.js +0 -64
  482. package/lib/trackers/impressions.js +0 -146
  483. package/lib/utils/backoff/index.js +0 -57
  484. package/lib/utils/base64/browser.js +0 -26
  485. package/lib/utils/base64/node.js +0 -26
  486. package/lib/utils/base64/package.json +0 -4
  487. package/lib/utils/binarySearch/index.js +0 -56
  488. package/lib/utils/constants/index.js +0 -60
  489. package/lib/utils/context/constants.js +0 -49
  490. package/lib/utils/context/index.js +0 -111
  491. package/lib/utils/decompress/index.js +0 -483
  492. package/lib/utils/fn/repeat.js +0 -64
  493. package/lib/utils/inputValidation/apiKey.js +0 -51
  494. package/lib/utils/inputValidation/attribute.js +0 -32
  495. package/lib/utils/inputValidation/attributes.js +0 -32
  496. package/lib/utils/inputValidation/event.js +0 -33
  497. package/lib/utils/inputValidation/eventProperties.js +0 -78
  498. package/lib/utils/inputValidation/eventValue.js +0 -19
  499. package/lib/utils/inputValidation/index.js +0 -48
  500. package/lib/utils/inputValidation/isOperational.js +0 -25
  501. package/lib/utils/inputValidation/key.js +0 -59
  502. package/lib/utils/inputValidation/split.js +0 -60
  503. package/lib/utils/inputValidation/splitFilters.js +0 -134
  504. package/lib/utils/inputValidation/splits.js +0 -38
  505. package/lib/utils/inputValidation/trafficType.js +0 -68
  506. package/lib/utils/jwt/hashUserKey.js +0 -19
  507. package/lib/utils/jwt/index.js +0 -19
  508. package/lib/utils/key/factory.js +0 -46
  509. package/lib/utils/key/parser.js +0 -42
  510. package/lib/utils/labels/index.js +0 -18
  511. package/lib/utils/lang/Errors.js +0 -58
  512. package/lib/utils/lang/Sets.js +0 -127
  513. package/lib/utils/lang/index.js +0 -350
  514. package/lib/utils/localstorage/isAvailable.js +0 -31
  515. package/lib/utils/logger/LoggerFactory.js +0 -98
  516. package/lib/utils/logger/index.js +0 -109
  517. package/lib/utils/lrucache/linkedlist.js +0 -132
  518. package/lib/utils/lrucache/lru.spec.js +0 -30
  519. package/lib/utils/lrucache/lrucache.js +0 -88
  520. package/lib/utils/now/browser.js +0 -33
  521. package/lib/utils/now/node.js +0 -24
  522. package/lib/utils/now/package.json +0 -4
  523. package/lib/utils/promise/thenable.js +0 -10
  524. package/lib/utils/promise/timeout.js +0 -40
  525. package/lib/utils/promise/wrapper.js +0 -63
  526. package/lib/utils/settings/defaults/package.json +0 -4
  527. package/lib/utils/settings/impressionsMode.js +0 -26
  528. package/lib/utils/settings/index.js +0 -214
  529. package/lib/utils/settings/integrations/browser.js +0 -17
  530. package/lib/utils/settings/integrations/common.js +0 -40
  531. package/lib/utils/settings/integrations/node.js +0 -13
  532. package/lib/utils/settings/integrations/package.json +0 -4
  533. package/lib/utils/settings/language/browser.js +0 -22
  534. package/lib/utils/settings/language/node.js +0 -22
  535. package/lib/utils/settings/language/package.json +0 -4
  536. package/lib/utils/settings/mode.js +0 -16
  537. package/lib/utils/settings/runtime/browser.js +0 -26
  538. package/lib/utils/settings/runtime/node.js +0 -43
  539. package/lib/utils/settings/runtime/package.json +0 -4
  540. package/lib/utils/settings/storage/browser.js +0 -75
  541. package/lib/utils/settings/storage/node.js +0 -92
  542. package/lib/utils/settings/storage/package.json +0 -4
  543. package/lib/utils/splits/usesSegments.js +0 -27
  544. package/lib/utils/time/index.js +0 -12
  545. package/lib/utils/timeTracker/index.js +0 -213
  546. package/lib/utils/timeTracker/timer.js +0 -33
  547. package/src/client/attributesDecoration.js +0 -112
  548. package/src/client/browser.js +0 -41
  549. package/src/client/client.js +0 -131
  550. package/src/client/inputValidation.js +0 -130
  551. package/src/client/node.js +0 -8
  552. package/src/client/package.json +0 -4
  553. package/src/engine/combiners/and.js +0 -55
  554. package/src/engine/combiners/ifelseif.js +0 -74
  555. package/src/engine/condition/index.js +0 -65
  556. package/src/engine/convertions/index.js +0 -22
  557. package/src/engine/engine/index.js +0 -63
  558. package/src/engine/engine/legacy.js +0 -66
  559. package/src/engine/engine/murmur3/common.js +0 -54
  560. package/src/engine/engine/murmur3/murmur3.js +0 -79
  561. package/src/engine/engine/murmur3/murmur3_128.js +0 -273
  562. package/src/engine/engine/murmur3/murmur3_128_x86.js +0 -188
  563. package/src/engine/engine/murmur3/murmur3_64.js +0 -34
  564. package/src/engine/engine/murmur3/utfx.js +0 -111
  565. package/src/engine/evaluator/index.js +0 -148
  566. package/src/engine/index.js +0 -123
  567. package/src/engine/matchers/all.js +0 -29
  568. package/src/engine/matchers/between.js +0 -30
  569. package/src/engine/matchers/boolean.js +0 -29
  570. package/src/engine/matchers/cont_all.js +0 -40
  571. package/src/engine/matchers/cont_any.js +0 -35
  572. package/src/engine/matchers/cont_str.js +0 -31
  573. package/src/engine/matchers/dependency.js +0 -52
  574. package/src/engine/matchers/eq.js +0 -30
  575. package/src/engine/matchers/eq_set.js +0 -37
  576. package/src/engine/matchers/ew.js +0 -31
  577. package/src/engine/matchers/gte.js +0 -30
  578. package/src/engine/matchers/index.js +0 -71
  579. package/src/engine/matchers/lte.js +0 -30
  580. package/src/engine/matchers/part_of.js +0 -37
  581. package/src/engine/matchers/segment.js +0 -41
  582. package/src/engine/matchers/string.js +0 -39
  583. package/src/engine/matchers/sw.js +0 -31
  584. package/src/engine/matchers/types.js +0 -52
  585. package/src/engine/matchers/whitelist.js +0 -30
  586. package/src/engine/parser/index.js +0 -79
  587. package/src/engine/parser/segments.js +0 -31
  588. package/src/engine/transforms/matcherGroup.js +0 -45
  589. package/src/engine/transforms/matchers.js +0 -118
  590. package/src/engine/transforms/segment.js +0 -23
  591. package/src/engine/transforms/set.js +0 -20
  592. package/src/engine/transforms/unaryNumeric.js +0 -20
  593. package/src/engine/transforms/whitelist.js +0 -22
  594. package/src/engine/treatments/index.js +0 -67
  595. package/src/engine/value/index.js +0 -53
  596. package/src/engine/value/sanitize.js +0 -117
  597. package/src/events/index.js +0 -62
  598. package/src/factory/offline.js +0 -60
  599. package/src/factory/online.js +0 -127
  600. package/src/impressions/counter.js +0 -43
  601. package/src/impressions/hasher/buildKey.js +0 -3
  602. package/src/impressions/hasher/hashImpression128.js +0 -6
  603. package/src/impressions/hasher/hashImpression32.js +0 -6
  604. package/src/impressions/observer/browser.js +0 -8
  605. package/src/impressions/observer/node.js +0 -8
  606. package/src/impressions/observer/observer.js +0 -17
  607. package/src/impressions/observer/package.json +0 -4
  608. package/src/integrations/browser.js +0 -57
  609. package/src/integrations/ga/GaToSplit.js +0 -278
  610. package/src/integrations/ga/SplitToGa.js +0 -125
  611. package/src/integrations/node.js +0 -4
  612. package/src/integrations/package.json +0 -4
  613. package/src/listeners/browser.js +0 -137
  614. package/src/listeners/node.js +0 -59
  615. package/src/listeners/package.json +0 -4
  616. package/src/manager/index.js +0 -103
  617. package/src/metrics/Collectors.js +0 -77
  618. package/src/metrics/index.js +0 -174
  619. package/src/producer/browser/Partial.js +0 -104
  620. package/src/producer/browser.js +0 -82
  621. package/src/producer/fetcher/MySegments.js +0 -40
  622. package/src/producer/fetcher/SegmentChanges.js +0 -52
  623. package/src/producer/fetcher/SplitChanges.js +0 -39
  624. package/src/producer/node.js +0 -142
  625. package/src/producer/offline/browser.js +0 -28
  626. package/src/producer/offline/node.js +0 -28
  627. package/src/producer/offline/package.json +0 -4
  628. package/src/producer/package.json +0 -4
  629. package/src/producer/task.js +0 -57
  630. package/src/producer/updater/MySegments.js +0 -104
  631. package/src/producer/updater/SegmentChanges.js +0 -126
  632. package/src/producer/updater/SplitChanges.js +0 -138
  633. package/src/producer/updater/SplitChangesFromFeatures.js +0 -23
  634. package/src/producer/updater/SplitChangesFromFileSystem.js +0 -23
  635. package/src/producer/updater/SplitChangesFromObject.js +0 -81
  636. package/src/readiness/index.js +0 -125
  637. package/src/readiness/statusManager.js +0 -121
  638. package/src/services/auth/auth.js +0 -21
  639. package/src/services/auth/index.js +0 -3
  640. package/src/services/events/bulk.js +0 -23
  641. package/src/services/events/index.js +0 -18
  642. package/src/services/getEventSource/browser.js +0 -3
  643. package/src/services/getEventSource/package.json +0 -4
  644. package/src/services/getFetch/package.json +0 -4
  645. package/src/services/impressions/bulk.js +0 -26
  646. package/src/services/impressions/count.js +0 -8
  647. package/src/services/impressions/dto.js +0 -71
  648. package/src/services/impressions/index.js +0 -18
  649. package/src/services/impressions/post.js +0 -23
  650. package/src/services/metrics/counters.js +0 -25
  651. package/src/services/metrics/dto.js +0 -44
  652. package/src/services/metrics/index.js +0 -18
  653. package/src/services/metrics/times.js +0 -25
  654. package/src/services/mySegments/get.js +0 -27
  655. package/src/services/mySegments/index.js +0 -18
  656. package/src/services/request/index.js +0 -43
  657. package/src/services/request/options/browser.js +0 -18
  658. package/src/services/request/options/node.js +0 -30
  659. package/src/services/request/options/package.json +0 -4
  660. package/src/services/segmentChanges/get.js +0 -20
  661. package/src/services/segmentChanges/index.js +0 -18
  662. package/src/services/splitChanges/get.js +0 -20
  663. package/src/services/splitChanges/index.js +0 -18
  664. package/src/services/splitChanges/offline/browser.js +0 -66
  665. package/src/services/splitChanges/offline/node.js +0 -190
  666. package/src/services/splitChanges/offline/package.json +0 -4
  667. package/src/services/splitChanges/offline/parseCondition.js +0 -52
  668. package/src/services/transport/index.js +0 -44
  669. package/src/storage/AttributesCache/InMemory.js +0 -76
  670. package/src/storage/BaseMetricsAsyncCache.js +0 -14
  671. package/src/storage/CountCache/InMemory.js +0 -48
  672. package/src/storage/CountCache/InRedis.js +0 -32
  673. package/src/storage/EventsCache/InMemory.js +0 -99
  674. package/src/storage/EventsCache/InRedis.js +0 -62
  675. package/src/storage/ImpressionsCache/InMemory.js +0 -62
  676. package/src/storage/ImpressionsCache/InRedis.js +0 -65
  677. package/src/storage/Keys.js +0 -122
  678. package/src/storage/KeysLocalStorage.js +0 -52
  679. package/src/storage/LatencyCache/InMemory.js +0 -56
  680. package/src/storage/LatencyCache/InRedis.js +0 -35
  681. package/src/storage/LatencyCache/findIndex.js +0 -7
  682. package/src/storage/Meta.js +0 -7
  683. package/src/storage/RedisAdapter.js +0 -170
  684. package/src/storage/SegmentCache/InLocalStorage/index.js +0 -140
  685. package/src/storage/SegmentCache/InMemory/browser.js +0 -99
  686. package/src/storage/SegmentCache/InMemory/node.js +0 -84
  687. package/src/storage/SegmentCache/InMemory/package.json +0 -4
  688. package/src/storage/SegmentCache/InRedis/index.js +0 -71
  689. package/src/storage/SplitCache/InLocalStorage.js +0 -324
  690. package/src/storage/SplitCache/InMemory.js +0 -145
  691. package/src/storage/SplitCache/InRedis.js +0 -187
  692. package/src/storage/SplitCache/killLocally.js +0 -33
  693. package/src/storage/browser.js +0 -110
  694. package/src/storage/node.js +0 -83
  695. package/src/storage/package.json +0 -4
  696. package/src/sync/AuthClient/index.js +0 -31
  697. package/src/sync/PushManager/index.js +0 -328
  698. package/src/sync/PushManager/mySegmentsV2utils.js +0 -76
  699. package/src/sync/PushManager/pushRequirements/browser.js +0 -20
  700. package/src/sync/PushManager/pushRequirements/node.js +0 -16
  701. package/src/sync/PushManager/pushRequirements/package.json +0 -4
  702. package/src/sync/SSEClient/index.js +0 -92
  703. package/src/sync/SSEHandler/NotificationKeeper.js +0 -90
  704. package/src/sync/SSEHandler/NotificationParser.js +0 -35
  705. package/src/sync/SSEHandler/index.js +0 -110
  706. package/src/sync/SegmentUpdateWorker/browser.js +0 -67
  707. package/src/sync/SegmentUpdateWorker/node.js +0 -73
  708. package/src/sync/SegmentUpdateWorker/package.json +0 -4
  709. package/src/sync/SplitUpdateWorker/index.js +0 -79
  710. package/src/sync/browser.js +0 -130
  711. package/src/sync/constants.js +0 -43
  712. package/src/sync/node.js +0 -66
  713. package/src/sync/package.json +0 -4
  714. package/src/trackers/event.js +0 -47
  715. package/src/trackers/impressions.js +0 -123
  716. package/src/utils/backoff/index.js +0 -46
  717. package/src/utils/base64/browser.js +0 -19
  718. package/src/utils/base64/node.js +0 -19
  719. package/src/utils/base64/package.json +0 -4
  720. package/src/utils/binarySearch/index.js +0 -50
  721. package/src/utils/constants/index.js +0 -41
  722. package/src/utils/context/constants.js +0 -18
  723. package/src/utils/context/index.js +0 -84
  724. package/src/utils/decompress/index.js +0 -428
  725. package/src/utils/fn/repeat.js +0 -48
  726. package/src/utils/inputValidation/apiKey.js +0 -42
  727. package/src/utils/inputValidation/attribute.js +0 -22
  728. package/src/utils/inputValidation/attributes.js +0 -26
  729. package/src/utils/inputValidation/event.js +0 -23
  730. package/src/utils/inputValidation/eventProperties.js +0 -65
  731. package/src/utils/inputValidation/eventValue.js +0 -11
  732. package/src/utils/inputValidation/index.js +0 -11
  733. package/src/utils/inputValidation/isOperational.js +0 -16
  734. package/src/utils/inputValidation/key.js +0 -53
  735. package/src/utils/inputValidation/split.js +0 -42
  736. package/src/utils/inputValidation/splitFilters.js +0 -108
  737. package/src/utils/inputValidation/splits.js +0 -21
  738. package/src/utils/inputValidation/trafficType.js +0 -58
  739. package/src/utils/jwt/hashUserKey.js +0 -11
  740. package/src/utils/jwt/index.js +0 -15
  741. package/src/utils/key/factory.js +0 -34
  742. package/src/utils/key/parser.js +0 -34
  743. package/src/utils/labels/index.js +0 -7
  744. package/src/utils/lang/Errors.js +0 -19
  745. package/src/utils/lang/Sets.js +0 -94
  746. package/src/utils/lang/index.js +0 -291
  747. package/src/utils/localstorage/isAvailable.js +0 -26
  748. package/src/utils/logger/LoggerFactory.js +0 -90
  749. package/src/utils/logger/index.js +0 -93
  750. package/src/utils/lrucache/linkedlist.js +0 -116
  751. package/src/utils/lrucache/lru.spec.js +0 -26
  752. package/src/utils/lrucache/lrucache.js +0 -49
  753. package/src/utils/now/browser.js +0 -29
  754. package/src/utils/now/node.js +0 -21
  755. package/src/utils/now/package.json +0 -4
  756. package/src/utils/promise/thenable.js +0 -1
  757. package/src/utils/promise/timeout.js +0 -38
  758. package/src/utils/promise/wrapper.js +0 -60
  759. package/src/utils/settings/defaults/browser.js +0 -12
  760. package/src/utils/settings/defaults/node.js +0 -21
  761. package/src/utils/settings/defaults/package.json +0 -4
  762. package/src/utils/settings/impressionsMode.js +0 -15
  763. package/src/utils/settings/index.js +0 -217
  764. package/src/utils/settings/integrations/browser.js +0 -8
  765. package/src/utils/settings/integrations/common.js +0 -32
  766. package/src/utils/settings/integrations/node.js +0 -7
  767. package/src/utils/settings/integrations/package.json +0 -4
  768. package/src/utils/settings/language/browser.js +0 -17
  769. package/src/utils/settings/language/node.js +0 -17
  770. package/src/utils/settings/language/package.json +0 -4
  771. package/src/utils/settings/mode.js +0 -12
  772. package/src/utils/settings/runtime/browser.js +0 -22
  773. package/src/utils/settings/runtime/node.js +0 -34
  774. package/src/utils/settings/runtime/package.json +0 -4
  775. package/src/utils/settings/storage/browser.js +0 -70
  776. package/src/utils/settings/storage/package.json +0 -4
  777. package/src/utils/splits/usesSegments.js +0 -17
  778. package/src/utils/time/index.js +0 -8
  779. package/src/utils/timeTracker/index.js +0 -223
  780. package/src/utils/timeTracker/timer.js +0 -27
@@ -1,119 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- exports.__esModule = true;
6
- exports.default = MySegmentsUpdaterFactory;
7
-
8
- var _logger = _interopRequireDefault(require("../../utils/logger"));
9
-
10
- var _Errors = require("../../utils/lang/Errors");
11
-
12
- var _MySegments = _interopRequireDefault(require("../fetcher/MySegments"));
13
-
14
- /**
15
- Copyright 2016 Split Software
16
-
17
- Licensed under the Apache License, Version 2.0 (the "License");
18
- you may not use this file except in compliance with the License.
19
- You may obtain a copy of the License at
20
-
21
- http://www.apache.org/licenses/LICENSE-2.0
22
-
23
- Unless required by applicable law or agreed to in writing, software
24
- distributed under the License is distributed on an "AS IS" BASIS,
25
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
26
- See the License for the specific language governing permissions and
27
- limitations under the License.
28
- **/
29
- var log = (0, _logger.default)('splitio-producer:my-segments');
30
-
31
- function MySegmentsUpdaterFactory(context) {
32
- var _context$getAll = context.getAll(),
33
- settings = _context$getAll[context.constants.SETTINGS],
34
- readiness = _context$getAll[context.constants.READINESS],
35
- storage = _context$getAll[context.constants.STORAGE],
36
- metricCollectors = _context$getAll[context.constants.COLLECTORS];
37
-
38
- var segmentsEventEmitter = readiness.segments;
39
- var readyOnAlreadyExistentState = true;
40
- var startingUp = true; // @TODO if allowing custom storages, handle async execution and wrap errors as SplitErrors to distinguish from user callback errors
41
-
42
- function updateSegments(segmentsData) {
43
- var mySegmentsCache = storage.segments;
44
- var shouldNotifyUpdate;
45
-
46
- if (Array.isArray(segmentsData)) {
47
- // Update the list of segment names available
48
- shouldNotifyUpdate = mySegmentsCache.resetSegments(segmentsData);
49
- } else {
50
- // Add/Delete the segment
51
- var name = segmentsData.name,
52
- add = segmentsData.add;
53
-
54
- if (mySegmentsCache.isInSegment(name) !== add) {
55
- shouldNotifyUpdate = true;
56
- if (add) mySegmentsCache.addToSegment(name);else mySegmentsCache.removeFromSegment(name);
57
- } else {
58
- shouldNotifyUpdate = false;
59
- }
60
- } // Notify update if required
61
-
62
-
63
- if (storage.splits.usesSegments() && (shouldNotifyUpdate || readyOnAlreadyExistentState)) {
64
- readyOnAlreadyExistentState = false;
65
- segmentsEventEmitter.emit(segmentsEventEmitter.SDK_SEGMENTS_ARRIVED);
66
- }
67
- }
68
- /**
69
- * MySegments updater returns a promise that resolves with a `false` boolean value if it fails to fetch mySegments or synchronize them with the storage.
70
- *
71
- * @param {number | undefined} retry current number of retry attemps. this param is only set by SplitChangesUpdater itself.
72
- * @param {string[] | { name: string, add: boolean } | undefined} segmentsData it can be:
73
- * (1) the list of segment names to sync in the storage,
74
- * (2) an object with a segment name and action (true: add, or false: delete) to update the storage,
75
- * (3) or `undefined`, for which the updater will fetch mySegments in order to sync the storage.
76
- * @param {boolean | undefined} noCache true to revalidate data to fetch
77
- */
78
-
79
-
80
- return function MySegmentsUpdater(retry, segmentsData, noCache) {
81
- if (retry === void 0) {
82
- retry = 0;
83
- }
84
-
85
- var updaterPromise;
86
-
87
- if (segmentsData) {
88
- // If segmentsData is provided, there is no need to fetch mySegments
89
- updaterPromise = new Promise(function (res) {
90
- updateSegments(segmentsData);
91
- res();
92
- });
93
- } else {
94
- // NOTE: We only collect metrics on startup.
95
- updaterPromise = (0, _MySegments.default)(settings, startingUp, metricCollectors, noCache).then(function (segments) {
96
- // Only when we have downloaded segments completely, we should not keep retrying anymore
97
- startingUp = false;
98
- updateSegments(segments);
99
- });
100
- }
101
-
102
- return updaterPromise.catch(function (error) {
103
- // handle user callback errors
104
- if (!(error instanceof _Errors.SplitError)) setTimeout(function () {
105
- throw error;
106
- }, 0);
107
-
108
- if (startingUp && settings.startup.retriesOnFailureBeforeReady > retry) {
109
- retry += 1;
110
- log.warn("Retrying download of segments #" + retry + ". Reason: " + error);
111
- return MySegmentsUpdater(retry);
112
- } else {
113
- startingUp = false;
114
- }
115
-
116
- return false; // shouldUpdate = false
117
- });
118
- };
119
- }
@@ -1,148 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- exports.__esModule = true;
6
- exports.default = SegmentChangesUpdaterFactory;
7
-
8
- var _logger = _interopRequireDefault(require("../../utils/logger"));
9
-
10
- var _SegmentChanges = _interopRequireDefault(require("../fetcher/SegmentChanges"));
11
-
12
- var _lang = require("../../utils/lang");
13
-
14
- var _Errors = require("../../utils/lang/Errors");
15
-
16
- var _thenable = _interopRequireDefault(require("../../utils/promise/thenable"));
17
-
18
- /**
19
- Copyright 2016 Split Software
20
-
21
- Licensed under the Apache License, Version 2.0 (the "License");
22
- you may not use this file except in compliance with the License.
23
- You may obtain a copy of the License at
24
-
25
- http://www.apache.org/licenses/LICENSE-2.0
26
-
27
- Unless required by applicable law or agreed to in writing, software
28
- distributed under the License is distributed on an "AS IS" BASIS,
29
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
30
- See the License for the specific language governing permissions and
31
- limitations under the License.
32
- **/
33
- var log = (0, _logger.default)('splitio-producer:segment-changes');
34
- var inputValidationLog = (0, _logger.default)('', {
35
- displayAllErrors: true
36
- });
37
-
38
- function SegmentChangesUpdaterFactory(context) {
39
- var _context$getAll = context.getAll(),
40
- settings = _context$getAll[context.constants.SETTINGS],
41
- readiness = _context$getAll[context.constants.READINESS],
42
- storage = _context$getAll[context.constants.STORAGE],
43
- metricCollectors = _context$getAll[context.constants.COLLECTORS];
44
-
45
- var segmentsEventEmitter = readiness.segments;
46
- var segmentsStorage = storage.segments;
47
- var readyOnAlreadyExistentState = true;
48
- /**
49
- * Segments updater returns a promise that resolves with a `false` boolean value if it fails at least to fetch a segment or synchronize it with the storage.
50
- * Thus, a false result doesn't imply that SDK_SEGMENTS_ARRIVED was not emitted.
51
- *
52
- * @param {string[] | undefined} segmentNames list of segment names to fetch. By passing `undefined` it fetches the list of segments registered at the storage
53
- * @param {boolean | undefined} noCache true to revalidate data to fetch on a SEGMENT_UPDATE notifications.
54
- * @param {boolean | undefined} fetchOnlyNew if true, only fetch the segments that not exists, i.e., which `changeNumber` is equal to -1.
55
- * This param is used by SplitUpdateWorker on server-side SDK, to fetch new registered segments on SPLIT_UPDATE notifications.
56
- */
57
-
58
- return function SegmentChangesUpdater(segmentNames, noCache, fetchOnlyNew) {
59
- log.debug('Started segments update'); // Async fetchers are collected here.
60
-
61
- var updaters = [];
62
-
63
- function segmentsUpdater(segments) {
64
- var sincePromises = [];
65
-
66
- var _loop = function _loop(index) {
67
- var segmentName = segments[index];
68
-
69
- var segmentUpdater = function segmentUpdater(since) {
70
- log.debug("Processing segment " + segmentName);
71
- updaters.push((0, _SegmentChanges.default)(settings, segmentName, since, metricCollectors, noCache).then(function (changes) {
72
- var changeNumber = -1;
73
- var changePromises = [];
74
- changes.forEach(function (x) {
75
- var promises = [];
76
-
77
- if (x.added.length > 0) {
78
- var result = segmentsStorage.addToSegment(segmentName, x.added);
79
- if ((0, _thenable.default)(result)) promises.push(result);
80
- }
81
-
82
- if (x.removed.length > 0) {
83
- var _result = segmentsStorage.removeFromSegment(segmentName, x.removed);
84
-
85
- if ((0, _thenable.default)(_result)) promises.push(_result);
86
- }
87
-
88
- if (x.added.length > 0 || x.removed.length > 0) {
89
- var _result2 = segmentsStorage.setChangeNumber(segmentName, x.till);
90
-
91
- if ((0, _thenable.default)(_result2)) promises.push(_result2);
92
- changeNumber = x.till;
93
- }
94
-
95
- log.debug("Processed " + segmentName + " with till = " + x.till + ". Added: " + x.added.length + ". Removed: " + x.removed.length);
96
- if (promises.length > 0) changePromises.push.apply(changePromises, promises);
97
- });
98
- return Promise.all(changePromises).then(function () {
99
- return changeNumber;
100
- });
101
- }));
102
- };
103
-
104
- var since = segmentsStorage.getChangeNumber(segmentName);
105
- var sincePromise = (0, _thenable.default)(since) ? since.then(segmentUpdater) : segmentUpdater(since);
106
- sincePromises.push(sincePromise);
107
- };
108
-
109
- for (var index = 0; index < segments.length; index++) {
110
- _loop(index);
111
- }
112
-
113
- return Promise.all(sincePromises).then(function () {
114
- return Promise.all(updaters).then(function (shouldUpdateFlags) {
115
- // if at least one segment fetch successes, mark segments ready
116
- if ((0, _lang.findIndex)(shouldUpdateFlags, function (v) {
117
- return v !== -1;
118
- }) !== -1 || readyOnAlreadyExistentState) {
119
- readyOnAlreadyExistentState = false;
120
- segmentsEventEmitter.emit(segmentsEventEmitter.SDK_SEGMENTS_ARRIVED);
121
- } // if at least one segment fetch fails, return false to indicate that there was some error (e.g., invalid json, HTTP error, etc)
122
-
123
-
124
- if (shouldUpdateFlags.indexOf(-1) !== -1) return false;
125
- }).catch(function (error) {
126
- // handle user callback errors
127
- if (!(error instanceof _Errors.SplitError)) setTimeout(function () {
128
- throw error;
129
- }, 0);
130
-
131
- if (error.statusCode === 403) {
132
- context.put(context.constants.DESTROYED, true);
133
- inputValidationLog.error('Factory instantiation: you passed a Browser type authorizationKey, please grab an Api Key from the Split web console that is of type SDK.');
134
- }
135
-
136
- return false;
137
- });
138
- });
139
- } // If not a segment name provided, read list of available segments names to be updated.
140
-
141
-
142
- var segments = segmentNames ? segmentNames : segmentsStorage.getRegisteredSegments();
143
- if (fetchOnlyNew) segments = segments.filter(function (segmentName) {
144
- return segmentsStorage.getChangeNumber(segmentName) === -1;
145
- });
146
- return (0, _thenable.default)(segments) ? segments.then(segmentsUpdater) : segmentsUpdater(segments);
147
- };
148
- }
@@ -1,145 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- exports.__esModule = true;
6
- exports.default = SplitChangesUpdaterFactory;
7
-
8
- var _logger = _interopRequireDefault(require("../../utils/logger"));
9
-
10
- var _SplitChanges = _interopRequireDefault(require("../fetcher/SplitChanges"));
11
-
12
- var _segments = _interopRequireDefault(require("../../engine/parser/segments"));
13
-
14
- var _Errors = require("../../utils/lang/Errors");
15
-
16
- var _Sets = require("../../utils/lang/Sets");
17
-
18
- var _thenable = _interopRequireDefault(require("../../utils/promise/thenable"));
19
-
20
- /**
21
- Copyright 2016 Split Software
22
-
23
- Licensed under the Apache License, Version 2.0 (the "License");
24
- you may not use this file except in compliance with the License.
25
- You may obtain a copy of the License at
26
-
27
- http://www.apache.org/licenses/LICENSE-2.0
28
-
29
- Unless required by applicable law or agreed to in writing, software
30
- distributed under the License is distributed on an "AS IS" BASIS,
31
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
32
- See the License for the specific language governing permissions and
33
- limitations under the License.
34
- **/
35
- var log = (0, _logger.default)('splitio-producer:split-changes');
36
-
37
- // For server-side segments storage, returns true if all registered segments have been fetched (changeNumber !== -1)
38
- function checkAllSegmentsExist(segmentsStorage) {
39
- return segmentsStorage.getRegisteredSegments().every(function (segmentName) {
40
- return segmentsStorage.getChangeNumber(segmentName) !== -1;
41
- });
42
- }
43
-
44
- function computeSplitsMutation(entries) {
45
- var computed = entries.reduce(function (accum, split) {
46
- if (split.status === 'ACTIVE') {
47
- accum.added.push([split.name, JSON.stringify(split)]);
48
- (0, _segments.default)(split.conditions).forEach(function (segmentName) {
49
- accum.segments.add(segmentName);
50
- });
51
- } else {
52
- accum.removed.push(split.name);
53
- }
54
-
55
- return accum;
56
- }, {
57
- added: [],
58
- removed: [],
59
- segments: new _Sets._Set()
60
- });
61
- computed.segments = (0, _Sets.setToArray)(computed.segments);
62
- return computed;
63
- }
64
-
65
- function SplitChangesUpdaterFactory(context, isNode) {
66
- if (isNode === void 0) {
67
- isNode = false;
68
- }
69
-
70
- var _context$getAll = context.getAll(),
71
- settings = _context$getAll[context.constants.SETTINGS],
72
- readiness = _context$getAll[context.constants.READINESS],
73
- storage = _context$getAll[context.constants.STORAGE],
74
- metricCollectors = _context$getAll[context.constants.COLLECTORS];
75
-
76
- var splitsEventEmitter = readiness.splits;
77
- var startingUp = true;
78
- var readyOnAlreadyExistentState = true;
79
- /**
80
- * Split updater returns a promise that resolves with a `false` boolean value if it fails to fetch splits or synchronize them with the storage.
81
- *
82
- * @param {number | undefined} retry current number of retry attemps. this param is only set by SplitChangesUpdater itself.
83
- * @param {boolean | undefined} noCache true to revalidate data to fetch
84
- */
85
-
86
- return function SplitChangesUpdater(retry, noCache) {
87
- if (retry === void 0) {
88
- retry = 0;
89
- }
90
-
91
- function splitChanges(since) {
92
- log.debug("Spin up split update using since = " + since);
93
- var fetcherPromise = (0, _SplitChanges.default)(settings, since, startingUp, metricCollectors, isNode, noCache).then(function (splitChanges) {
94
- startingUp = false;
95
- var mutation = computeSplitsMutation(splitChanges.splits);
96
- log.debug("New splits " + mutation.added.length);
97
- log.debug("Removed splits " + mutation.removed.length);
98
- log.debug("Segment names collected " + mutation.segments); // Write into storage
99
- // @TODO if allowing custom storages, wrap errors as SplitErrors to distinguish from user callback errors
100
-
101
- return Promise.all([// calling first `setChangenumber` method, to perform cache flush if split filter queryString changed
102
- storage.splits.setChangeNumber(splitChanges.till), storage.splits.addSplits(mutation.added), storage.splits.removeSplits(mutation.removed), storage.segments.registerSegments(mutation.segments)]).then(function () {
103
- // On server-side SDK, we must check that all registered segments have been fetched
104
- if (readyOnAlreadyExistentState || since !== splitChanges.till && (!isNode || checkAllSegmentsExist(storage.segments))) {
105
- readyOnAlreadyExistentState = false;
106
- splitsEventEmitter.emit(splitsEventEmitter.SDK_SPLITS_ARRIVED);
107
- }
108
- });
109
- }).catch(function (error) {
110
- // handle user callback errors
111
- if (!(error instanceof _Errors.SplitError)) {
112
- setTimeout(function () {
113
- throw error;
114
- }, 0);
115
- startingUp = false; // Stop retrying.
116
- }
117
-
118
- log.warn("Error while doing fetch of Splits. " + error);
119
-
120
- if (startingUp && settings.startup.retriesOnFailureBeforeReady > retry) {
121
- retry += 1;
122
- log.info("Retrying download of splits #" + retry + ". Reason: " + error);
123
- return SplitChangesUpdater(retry, noCache);
124
- } else {
125
- startingUp = false;
126
- }
127
-
128
- return false;
129
- }); // After triggering the requests, if we have cached splits information let's notify that.
130
- // There is no need to emit the event asynchronously to let attach a listener for SDK_READY_FROM_CACHE,
131
- // because the current event-loop callback executes after SplitFactory is created.
132
-
133
- if (startingUp && storage.splits.checkCache()) {
134
- splitsEventEmitter.emit(splitsEventEmitter.SDK_SPLITS_CACHE_LOADED);
135
- }
136
-
137
- return fetcherPromise;
138
- } // @TODO check why e2e tests take so much time when sync storage result is not handled in a promise
139
-
140
-
141
- var since = storage.splits.getChangeNumber();
142
- var sincePromise = (0, _thenable.default)(since) ? since : Promise.resolve(since);
143
- return sincePromise.then(splitChanges);
144
- };
145
- }
@@ -1,30 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- exports.__esModule = true;
6
- exports.default = createSplitChangesFromObject;
7
-
8
- var _offline = _interopRequireDefault(require("../../services/splitChanges/offline"));
9
-
10
- var _SplitChangesFromObject = _interopRequireDefault(require("./SplitChangesFromObject"));
11
-
12
- /**
13
- Copyright 2016 Split Software
14
-
15
- Licensed under the Apache License, Version 2.0 (the "License");
16
- you may not use this file except in compliance with the License.
17
- You may obtain a copy of the License at
18
-
19
- http://www.apache.org/licenses/LICENSE-2.0
20
-
21
- Unless required by applicable law or agreed to in writing, software
22
- distributed under the License is distributed on an "AS IS" BASIS,
23
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24
- See the License for the specific language governing permissions and
25
- limitations under the License.
26
- **/
27
- function createSplitChangesFromObject(context) {
28
- var fetcher = (0, _offline.default)();
29
- return (0, _SplitChangesFromObject.default)(fetcher, context);
30
- }
@@ -1,30 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- exports.__esModule = true;
6
- exports.default = createSplitChangesFromObject;
7
-
8
- var _offline = _interopRequireDefault(require("../../services/splitChanges/offline"));
9
-
10
- var _SplitChangesFromObject = _interopRequireDefault(require("./SplitChangesFromObject"));
11
-
12
- /**
13
- Copyright 2016 Split Software
14
-
15
- Licensed under the Apache License, Version 2.0 (the "License");
16
- you may not use this file except in compliance with the License.
17
- You may obtain a copy of the License at
18
-
19
- http://www.apache.org/licenses/LICENSE-2.0
20
-
21
- Unless required by applicable law or agreed to in writing, software
22
- distributed under the License is distributed on an "AS IS" BASIS,
23
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24
- See the License for the specific language governing permissions and
25
- limitations under the License.
26
- **/
27
- function createSplitChangesFromObject(context) {
28
- var fetcher = (0, _offline.default)();
29
- return (0, _SplitChangesFromObject.default)(fetcher, context);
30
- }
@@ -1,84 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- exports.__esModule = true;
6
- exports.default = void 0;
7
-
8
- var _constants = require("../../utils/constants");
9
-
10
- var _lang = require("../../utils/lang");
11
-
12
- var _logger = _interopRequireDefault(require("../../utils/logger"));
13
-
14
- /**
15
- Copyright 2016 Split Software
16
-
17
- Licensed under the Apache License, Version 2.0 (the "License");
18
- you may not use this file except in compliance with the License.
19
- You may obtain a copy of the License at
20
-
21
- http://www.apache.org/licenses/LICENSE-2.0
22
-
23
- Unless required by applicable law or agreed to in writing, software
24
- distributed under the License is distributed on an "AS IS" BASIS,
25
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
26
- See the License for the specific language governing permissions and
27
- limitations under the License.
28
- **/
29
- var log = (0, _logger.default)('splitio-producer:offline');
30
-
31
- function FromObjectUpdaterFactory(Fetcher, context) {
32
- var _context$getAll = context.getAll(),
33
- settings = _context$getAll[context.constants.SETTINGS],
34
- readiness = _context$getAll[context.constants.READINESS],
35
- storage = _context$getAll[context.constants.STORAGE];
36
-
37
- var startingUp = true;
38
- return function ObjectUpdater() {
39
- var splits = [];
40
- var loadError = null;
41
- var splitsMock = {};
42
-
43
- try {
44
- splitsMock = Fetcher(settings);
45
- } catch (err) {
46
- loadError = err;
47
- log.error("There was an issue loading the mock Splits data, no changes will be applied to the current cache. " + err);
48
- }
49
-
50
- if (!loadError && splitsMock) {
51
- log.debug('Splits data: ');
52
- log.debug(JSON.stringify(splitsMock));
53
- (0, _lang.forOwn)(splitsMock, function (val, name) {
54
- splits.push([name, JSON.stringify({
55
- name: name,
56
- status: 'ACTIVE',
57
- killed: false,
58
- trafficAllocation: 100,
59
- defaultTreatment: 'control',
60
- conditions: val.conditions || [],
61
- configurations: val.configurations,
62
- trafficTypeName: val.trafficTypeName
63
- })]);
64
- });
65
- return Promise.all([storage.splits.flush(), // required to sync removed splits from mock
66
- storage.splits.addSplits(splits)]).then(function () {
67
- readiness.splits.emit(readiness.splits.SDK_SPLITS_ARRIVED);
68
-
69
- if (startingUp) {
70
- startingUp = false; // Emits SDK_READY_FROM_CACHE
71
-
72
- if (settings.storage.__originalType === _constants.STORAGE_LOCALSTORAGE) readiness.splits.emit(readiness.splits.SDK_SPLITS_CACHE_LOADED); // Only emits SDK_SEGMENTS_ARRIVED the first time for SDK_READY
73
-
74
- readiness.segments.emit(readiness.segments.SDK_SEGMENTS_ARRIVED);
75
- }
76
- });
77
- } else {
78
- return Promise.resolve();
79
- }
80
- };
81
- }
82
-
83
- var _default = FromObjectUpdaterFactory;
84
- exports.default = _default;
@@ -1,132 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- exports.__esModule = true;
6
- exports.default = void 0;
7
-
8
- var _events = _interopRequireDefault(require("events"));
9
-
10
- var SPLITS_READY = 2;
11
- var SEGMENTS_READY = 4;
12
- var SDK_FIRE_READY = SPLITS_READY | SEGMENTS_READY; // 2 + 4 = 6
13
-
14
- var SDK_NOTIFY_UPDATE_SINCE_NOW = 8;
15
- var SDK_FIRE_UPDATE = SDK_FIRE_READY | SDK_NOTIFY_UPDATE_SINCE_NOW; // 6 + 8 = 14
16
-
17
- var Events = {
18
- SDK_READY_TIMED_OUT: 'init::timeout',
19
- SDK_READY: 'init::ready',
20
- SDK_READY_FROM_CACHE: 'init::cache-ready',
21
- SDK_SPLITS_ARRIVED: 'state::splits-arrived',
22
- SDK_SEGMENTS_ARRIVED: 'state::segments-arrived',
23
- SDK_SPLITS_CACHE_LOADED: 'state::splits-cache-loaded',
24
- SDK_UPDATE: 'state::update',
25
- READINESS_GATE_CHECK_STATE: 'state::check'
26
- };
27
- /**
28
- * Machine state to handle the ready / update event propagation.
29
- */
30
-
31
- function GateContext() {
32
- // Splits are shared through all instances of the same SDK.
33
- var splitsStatus = 0;
34
- var splits = new _events.default();
35
- splits.SDK_SPLITS_CACHE_LOADED = Events.SDK_SPLITS_CACHE_LOADED;
36
- splits.SDK_SPLITS_ARRIVED = Events.SDK_SPLITS_ARRIVED; // references counter: how many
37
-
38
- var refCount = 0;
39
-
40
- function ReadinessGateFactory(splits, segments) {
41
- var gate = new _events.default();
42
- var segmentsStatus = 0;
43
- var status = 0;
44
- gate.on(Events.READINESS_GATE_CHECK_STATE, function () {
45
- // @TODO catch and handle user callback errors. Required for localhost and consumer modes. In standalone mode, it is done in 'SplitChangesUpdater'.
46
- if (status !== SDK_FIRE_UPDATE && splitsStatus + segmentsStatus === SDK_FIRE_READY) {
47
- status = SDK_FIRE_UPDATE;
48
- gate.emit(Events.SDK_READY);
49
- } else if (status === SDK_FIRE_UPDATE) {
50
- gate.emit(Events.SDK_UPDATE);
51
- }
52
- });
53
- splits.on(Events.SDK_SPLITS_ARRIVED, function (isSplitKill) {
54
- // `isSplitKill` condition avoids an edge-case of wrongly emitting SDK_READY if:
55
- // - `/mySegments` fetch and SPLIT_KILL occurs before `/splitChanges` fetch, and
56
- // - storage has cached splits (for which case `splitsStorage.killLocally` can return true)
57
- if (!isSplitKill) splitsStatus = SPLITS_READY;
58
- gate.emit(Events.READINESS_GATE_CHECK_STATE);
59
- });
60
- splits.once(Events.SDK_SPLITS_CACHE_LOADED, function () {
61
- try {
62
- gate.emit(Events.SDK_READY_FROM_CACHE);
63
- } catch (e) {
64
- // handle user callback errors
65
- setTimeout(function () {
66
- throw e;
67
- }, 0);
68
- }
69
- });
70
- segments.on(Events.SDK_SEGMENTS_ARRIVED, function () {
71
- segmentsStatus = SEGMENTS_READY;
72
- gate.emit(Events.READINESS_GATE_CHECK_STATE);
73
- });
74
- return gate;
75
- }
76
- /**
77
- * SDK Readiness Gate Factory
78
- *
79
- * The ready state in the browser relay on sharing the splits ready flag across
80
- * all the gates, and have an extra flag for the segments which is per gate
81
- * instance.
82
- */
83
-
84
-
85
- function SDKReadinessGateFactory(timeout) {
86
- if (timeout === void 0) {
87
- timeout = 0;
88
- }
89
-
90
- var readinessTimeoutId = 0;
91
- var segments = new _events.default();
92
- segments.SDK_SEGMENTS_ARRIVED = Events.SDK_SEGMENTS_ARRIVED;
93
- var gate = ReadinessGateFactory(splits, segments);
94
-
95
- if (timeout > 0) {
96
- // Add the timeout.
97
- readinessTimeoutId = setTimeout(function () {
98
- gate.emit(Events.SDK_READY_TIMED_OUT, 'Split SDK emitted SDK_READY_TIMED_OUT event.');
99
- }, timeout); // Clear it if the SDK get's ready.
100
-
101
- gate.once(Events.SDK_READY, function () {
102
- return clearTimeout(readinessTimeoutId);
103
- });
104
- }
105
-
106
- gate.SDK_READY = Events.SDK_READY;
107
- gate.SDK_READY_FROM_CACHE = Events.SDK_READY_FROM_CACHE;
108
- gate.SDK_UPDATE = Events.SDK_UPDATE;
109
- gate.SDK_READY_TIMED_OUT = Events.SDK_READY_TIMED_OUT; // New Gate has been created, so increase the counter
110
-
111
- refCount++;
112
- return {
113
- // Emitters
114
- splits: splits,
115
- segments: segments,
116
- gate: gate,
117
- // Cleanup listeners
118
- destroy: function destroy() {
119
- segments.removeAllListeners();
120
- gate.removeAllListeners();
121
- clearTimeout(readinessTimeoutId);
122
- if (refCount > 0) refCount--;
123
- if (refCount === 0) splits.removeAllListeners();
124
- }
125
- };
126
- }
127
-
128
- return SDKReadinessGateFactory;
129
- }
130
-
131
- var _default = GateContext;
132
- exports.default = _default;