@splitsoftware/splitio 10.17.2 → 10.17.3-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (778) hide show
  1. package/client/package.json +5 -0
  2. package/es/factory/browser.js +66 -0
  3. package/es/factory/node.js +64 -0
  4. package/es/{client → factory}/package.json +0 -0
  5. package/es/index.js +16 -132
  6. package/es/platform/EventEmitter.js +386 -0
  7. package/es/platform/browser.js +10 -0
  8. package/es/platform/getEventSource/browser.js +3 -0
  9. package/es/platform/getEventSource/node.js +19 -0
  10. package/es/{impressions/observer → platform/getEventSource}/package.json +0 -0
  11. package/es/platform/getFetch/browser.js +4 -0
  12. package/es/platform/getFetch/node.js +18 -0
  13. package/es/{integrations → platform/getFetch}/package.json +0 -0
  14. package/es/platform/node.js +12 -0
  15. package/es/{listeners → platform}/package.json +0 -0
  16. package/es/platform/request/options/node.js +13 -0
  17. package/es/settings/browser.js +18 -0
  18. package/es/settings/defaults/browser.js +15 -0
  19. package/es/settings/defaults/node.js +24 -0
  20. package/es/settings/defaults/version.js +1 -0
  21. package/es/settings/integrations/browser.js +5 -0
  22. package/es/settings/node.js +17 -0
  23. package/es/{producer/offline → settings}/package.json +0 -0
  24. package/es/settings/storage/browser.js +35 -0
  25. package/es/settings/storage/node.js +66 -0
  26. package/es/umd.js +2 -1
  27. package/lib/factory/browser.js +70 -0
  28. package/lib/factory/node.js +68 -0
  29. package/{es/producer → lib/factory}/package.json +0 -0
  30. package/lib/index.js +19 -155
  31. package/lib/platform/EventEmitter.js +390 -0
  32. package/lib/platform/browser.js +13 -0
  33. package/lib/platform/getEventSource/browser.js +7 -0
  34. package/lib/platform/getEventSource/node.js +25 -0
  35. package/{es/services → lib/platform}/getEventSource/package.json +0 -0
  36. package/lib/platform/getFetch/browser.js +9 -0
  37. package/lib/platform/getFetch/node.js +23 -0
  38. package/{es/services → lib/platform}/getFetch/package.json +0 -0
  39. package/lib/platform/node.js +16 -0
  40. package/{es/services/request/options → lib/platform}/package.json +0 -0
  41. package/lib/platform/request/options/node.js +18 -0
  42. package/lib/settings/browser.js +22 -0
  43. package/lib/settings/defaults/browser.js +18 -0
  44. package/lib/settings/defaults/node.js +27 -0
  45. package/lib/settings/defaults/version.js +4 -0
  46. package/lib/settings/integrations/browser.js +9 -0
  47. package/lib/settings/node.js +21 -0
  48. package/{es/services/splitChanges/offline → lib/settings}/package.json +0 -0
  49. package/lib/settings/storage/browser.js +39 -0
  50. package/lib/settings/storage/node.js +70 -0
  51. package/lib/umd.js +4 -8
  52. package/package.json +30 -31
  53. package/server/package.json +5 -0
  54. package/src/.DS_Store +0 -0
  55. package/src/factory/browser.js +83 -0
  56. package/src/factory/node.js +80 -0
  57. package/{es/storage/SegmentCache/InMemory → src/factory}/package.json +0 -0
  58. package/src/index.js +13 -136
  59. package/src/{sync/SSEHandler → platform}/.DS_Store +0 -0
  60. package/src/platform/EventEmitter.js +443 -0
  61. package/src/platform/browser.js +12 -0
  62. package/{es/services → src/platform}/getEventSource/browser.js +2 -2
  63. package/src/{services → platform}/getEventSource/node.js +2 -2
  64. package/{es/storage → src/platform/getEventSource}/package.json +0 -0
  65. package/src/{services → platform}/getFetch/browser.js +2 -2
  66. package/src/{services → platform}/getFetch/node.js +1 -1
  67. package/{es/sync/PushManager/pushRequirements → src/platform/getFetch}/package.json +0 -0
  68. package/src/platform/node.js +14 -0
  69. package/{es/sync/SegmentUpdateWorker → src/platform}/package.json +0 -0
  70. package/src/platform/request/options/node.js +15 -0
  71. package/src/{listeners → settings}/.DS_Store +0 -0
  72. package/src/settings/browser.js +20 -0
  73. package/{lib/utils → src}/settings/defaults/browser.js +6 -6
  74. package/{lib/utils → src}/settings/defaults/node.js +6 -6
  75. package/src/settings/defaults/version.js +1 -0
  76. package/src/settings/integrations/browser.js +6 -0
  77. package/src/settings/node.js +19 -0
  78. package/{es/sync → src/settings}/package.json +0 -0
  79. package/src/settings/storage/browser.js +49 -0
  80. package/src/{utils/settings → settings}/storage/node.js +18 -28
  81. package/src/umd.js +1 -0
  82. package/types/client/index.d.ts +14 -0
  83. package/types/server/index.d.ts +20 -0
  84. package/types/splitio.d.ts +22 -5
  85. package/es/client/attributesDecoration.js +0 -116
  86. package/es/client/browser.js +0 -39
  87. package/es/client/client.js +0 -155
  88. package/es/client/inputValidation.js +0 -117
  89. package/es/client/node.js +0 -6
  90. package/es/engine/combiners/and.js +0 -54
  91. package/es/engine/combiners/ifelseif.js +0 -73
  92. package/es/engine/condition/index.js +0 -62
  93. package/es/engine/convertions/index.js +0 -29
  94. package/es/engine/engine/index.js +0 -60
  95. package/es/engine/engine/legacy.js +0 -77
  96. package/es/engine/engine/murmur3/common.js +0 -40
  97. package/es/engine/engine/murmur3/murmur3.js +0 -83
  98. package/es/engine/engine/murmur3/murmur3_128.js +0 -250
  99. package/es/engine/engine/murmur3/murmur3_128_x86.js +0 -183
  100. package/es/engine/engine/murmur3/murmur3_64.js +0 -52
  101. package/es/engine/engine/murmur3/utfx.js +0 -112
  102. package/es/engine/evaluator/index.js +0 -111
  103. package/es/engine/index.js +0 -112
  104. package/es/engine/matchers/all.js +0 -32
  105. package/es/engine/matchers/between.js +0 -35
  106. package/es/engine/matchers/boolean.js +0 -35
  107. package/es/engine/matchers/cont_all.js +0 -51
  108. package/es/engine/matchers/cont_any.js +0 -47
  109. package/es/engine/matchers/cont_str.js +0 -38
  110. package/es/engine/matchers/dependency.js +0 -50
  111. package/es/engine/matchers/eq.js +0 -35
  112. package/es/engine/matchers/eq_set.js +0 -49
  113. package/es/engine/matchers/ew.js +0 -38
  114. package/es/engine/matchers/gte.js +0 -35
  115. package/es/engine/matchers/index.js +0 -65
  116. package/es/engine/matchers/lte.js +0 -35
  117. package/es/engine/matchers/part_of.js +0 -49
  118. package/es/engine/matchers/segment.js +0 -39
  119. package/es/engine/matchers/string.js +0 -44
  120. package/es/engine/matchers/sw.js +0 -38
  121. package/es/engine/matchers/types.js +0 -48
  122. package/es/engine/matchers/whitelist.js +0 -36
  123. package/es/engine/parser/index.js +0 -69
  124. package/es/engine/parser/segments.js +0 -22
  125. package/es/engine/transforms/matcherGroup.js +0 -43
  126. package/es/engine/transforms/matchers.js +0 -109
  127. package/es/engine/transforms/segment.js +0 -28
  128. package/es/engine/transforms/set.js +0 -20
  129. package/es/engine/transforms/unaryNumeric.js +0 -20
  130. package/es/engine/transforms/whitelist.js +0 -22
  131. package/es/engine/treatments/index.js +0 -67
  132. package/es/engine/value/index.js +0 -54
  133. package/es/engine/value/sanitize.js +0 -125
  134. package/es/events/index.js +0 -65
  135. package/es/factory/offline.js +0 -50
  136. package/es/factory/online.js +0 -113
  137. package/es/impressions/counter.js +0 -52
  138. package/es/impressions/hasher/buildKey.js +0 -3
  139. package/es/impressions/hasher/hashImpression128.js +0 -5
  140. package/es/impressions/hasher/hashImpression32.js +0 -5
  141. package/es/impressions/observer/browser.js +0 -9
  142. package/es/impressions/observer/node.js +0 -9
  143. package/es/impressions/observer/observer.js +0 -21
  144. package/es/integrations/browser.js +0 -62
  145. package/es/integrations/ga/GaToSplit.js +0 -246
  146. package/es/integrations/ga/SplitToGa.js +0 -127
  147. package/es/integrations/node.js +0 -3
  148. package/es/listeners/browser.js +0 -157
  149. package/es/listeners/node.js +0 -65
  150. package/es/manager/index.js +0 -104
  151. package/es/metrics/Collectors.js +0 -100
  152. package/es/metrics/index.js +0 -157
  153. package/es/producer/browser/Partial.js +0 -103
  154. package/es/producer/browser.js +0 -70
  155. package/es/producer/fetcher/MySegments.js +0 -47
  156. package/es/producer/fetcher/SegmentChanges.js +0 -52
  157. package/es/producer/fetcher/SplitChanges.js +0 -46
  158. package/es/producer/node.js +0 -130
  159. package/es/producer/offline/browser.js +0 -26
  160. package/es/producer/offline/node.js +0 -26
  161. package/es/producer/task.js +0 -50
  162. package/es/producer/updater/MySegments.js +0 -108
  163. package/es/producer/updater/SegmentChanges.js +0 -135
  164. package/es/producer/updater/SplitChanges.js +0 -131
  165. package/es/producer/updater/SplitChangesFromFeatures.js +0 -21
  166. package/es/producer/updater/SplitChangesFromFileSystem.js +0 -21
  167. package/es/producer/updater/SplitChangesFromObject.js +0 -73
  168. package/es/readiness/index.js +0 -123
  169. package/es/readiness/statusManager.js +0 -114
  170. package/es/services/auth/auth.js +0 -25
  171. package/es/services/auth/index.js +0 -2
  172. package/es/services/events/bulk.js +0 -22
  173. package/es/services/events/index.js +0 -17
  174. package/es/services/getEventSource/node.js +0 -18
  175. package/es/services/getFetch/browser.js +0 -4
  176. package/es/services/getFetch/node.js +0 -18
  177. package/es/services/impressions/bulk.js +0 -26
  178. package/es/services/impressions/count.js +0 -7
  179. package/es/services/impressions/dto.js +0 -73
  180. package/es/services/impressions/index.js +0 -17
  181. package/es/services/impressions/post.js +0 -22
  182. package/es/services/metrics/counters.js +0 -24
  183. package/es/services/metrics/dto.js +0 -38
  184. package/es/services/metrics/index.js +0 -17
  185. package/es/services/metrics/times.js +0 -24
  186. package/es/services/mySegments/get.js +0 -26
  187. package/es/services/mySegments/index.js +0 -17
  188. package/es/services/request/index.js +0 -43
  189. package/es/services/request/options/browser.js +0 -18
  190. package/es/services/request/options/node.js +0 -28
  191. package/es/services/segmentChanges/get.js +0 -21
  192. package/es/services/segmentChanges/index.js +0 -17
  193. package/es/services/splitChanges/get.js +0 -19
  194. package/es/services/splitChanges/index.js +0 -17
  195. package/es/services/splitChanges/offline/browser.js +0 -63
  196. package/es/services/splitChanges/offline/node.js +0 -176
  197. package/es/services/splitChanges/offline/parseCondition.js +0 -43
  198. package/es/services/transport/index.js +0 -51
  199. package/es/storage/AttributesCache/InMemory.js +0 -85
  200. package/es/storage/BaseMetricsAsyncCache.js +0 -23
  201. package/es/storage/CountCache/InMemory.js +0 -48
  202. package/es/storage/CountCache/InRedis.js +0 -42
  203. package/es/storage/EventsCache/InMemory.js +0 -109
  204. package/es/storage/EventsCache/InRedis.js +0 -65
  205. package/es/storage/ImpressionsCache/InMemory.js +0 -71
  206. package/es/storage/ImpressionsCache/InRedis.js +0 -73
  207. package/es/storage/Keys.js +0 -125
  208. package/es/storage/KeysLocalStorage.js +0 -47
  209. package/es/storage/LatencyCache/InMemory.js +0 -56
  210. package/es/storage/LatencyCache/InRedis.js +0 -44
  211. package/es/storage/LatencyCache/findIndex.js +0 -2
  212. package/es/storage/Meta.js +0 -7
  213. package/es/storage/RedisAdapter.js +0 -198
  214. package/es/storage/SegmentCache/InLocalStorage/index.js +0 -138
  215. package/es/storage/SegmentCache/InMemory/browser.js +0 -107
  216. package/es/storage/SegmentCache/InMemory/node.js +0 -82
  217. package/es/storage/SegmentCache/InRedis/index.js +0 -81
  218. package/es/storage/SplitCache/InLocalStorage.js +0 -332
  219. package/es/storage/SplitCache/InMemory.js +0 -162
  220. package/es/storage/SplitCache/InRedis.js +0 -214
  221. package/es/storage/SplitCache/killLocally.js +0 -35
  222. package/es/storage/browser.js +0 -101
  223. package/es/storage/node.js +0 -81
  224. package/es/sync/AuthClient/index.js +0 -34
  225. package/es/sync/PushManager/index.js +0 -315
  226. package/es/sync/PushManager/mySegmentsV2utils.js +0 -76
  227. package/es/sync/PushManager/pushRequirements/browser.js +0 -23
  228. package/es/sync/PushManager/pushRequirements/node.js +0 -18
  229. package/es/sync/SSEClient/index.js +0 -93
  230. package/es/sync/SSEHandler/NotificationKeeper.js +0 -97
  231. package/es/sync/SSEHandler/NotificationParser.js +0 -31
  232. package/es/sync/SSEHandler/index.js +0 -110
  233. package/es/sync/SegmentUpdateWorker/browser.js +0 -74
  234. package/es/sync/SegmentUpdateWorker/node.js +0 -79
  235. package/es/sync/SplitUpdateWorker/index.js +0 -86
  236. package/es/sync/browser.js +0 -125
  237. package/es/sync/constants.js +0 -42
  238. package/es/sync/node.js +0 -60
  239. package/es/trackers/event.js +0 -53
  240. package/es/trackers/impressions.js +0 -132
  241. package/es/utils/backoff/index.js +0 -51
  242. package/es/utils/base64/browser.js +0 -19
  243. package/es/utils/base64/node.js +0 -19
  244. package/es/utils/base64/package.json +0 -4
  245. package/es/utils/binarySearch/index.js +0 -50
  246. package/es/utils/constants/index.js +0 -38
  247. package/es/utils/context/constants.js +0 -30
  248. package/es/utils/context/index.js +0 -101
  249. package/es/utils/decompress/index.js +0 -476
  250. package/es/utils/fn/repeat.js +0 -58
  251. package/es/utils/inputValidation/apiKey.js +0 -39
  252. package/es/utils/inputValidation/attribute.js +0 -22
  253. package/es/utils/inputValidation/attributes.js +0 -19
  254. package/es/utils/inputValidation/event.js +0 -23
  255. package/es/utils/inputValidation/eventProperties.js +0 -69
  256. package/es/utils/inputValidation/eventValue.js +0 -9
  257. package/es/utils/inputValidation/index.js +0 -11
  258. package/es/utils/inputValidation/isOperational.js +0 -14
  259. package/es/utils/inputValidation/key.js +0 -50
  260. package/es/utils/inputValidation/split.js +0 -47
  261. package/es/utils/inputValidation/splitFilters.js +0 -121
  262. package/es/utils/inputValidation/splits.js +0 -27
  263. package/es/utils/inputValidation/trafficType.js +0 -55
  264. package/es/utils/jwt/hashUserKey.js +0 -11
  265. package/es/utils/jwt/index.js +0 -14
  266. package/es/utils/key/factory.js +0 -38
  267. package/es/utils/key/parser.js +0 -34
  268. package/es/utils/labels/index.js +0 -7
  269. package/es/utils/lang/Errors.js +0 -41
  270. package/es/utils/lang/Sets.js +0 -114
  271. package/es/utils/lang/index.js +0 -305
  272. package/es/utils/localstorage/isAvailable.js +0 -26
  273. package/es/utils/logger/LoggerFactory.js +0 -86
  274. package/es/utils/logger/index.js +0 -97
  275. package/es/utils/lrucache/linkedlist.js +0 -122
  276. package/es/utils/lrucache/lru.spec.js +0 -24
  277. package/es/utils/lrucache/lrucache.js +0 -80
  278. package/es/utils/now/browser.js +0 -27
  279. package/es/utils/now/node.js +0 -19
  280. package/es/utils/now/package.json +0 -4
  281. package/es/utils/promise/thenable.js +0 -3
  282. package/es/utils/promise/timeout.js +0 -34
  283. package/es/utils/promise/wrapper.js +0 -58
  284. package/es/utils/settings/defaults/browser.js +0 -12
  285. package/es/utils/settings/defaults/node.js +0 -21
  286. package/es/utils/settings/defaults/package.json +0 -4
  287. package/es/utils/settings/impressionsMode.js +0 -16
  288. package/es/utils/settings/index.js +0 -194
  289. package/es/utils/settings/integrations/browser.js +0 -8
  290. package/es/utils/settings/integrations/common.js +0 -30
  291. package/es/utils/settings/integrations/node.js +0 -7
  292. package/es/utils/settings/integrations/package.json +0 -4
  293. package/es/utils/settings/language/browser.js +0 -16
  294. package/es/utils/settings/language/node.js +0 -16
  295. package/es/utils/settings/language/package.json +0 -4
  296. package/es/utils/settings/mode.js +0 -10
  297. package/es/utils/settings/runtime/browser.js +0 -21
  298. package/es/utils/settings/runtime/node.js +0 -33
  299. package/es/utils/settings/runtime/package.json +0 -4
  300. package/es/utils/settings/storage/browser.js +0 -64
  301. package/es/utils/settings/storage/node.js +0 -86
  302. package/es/utils/settings/storage/package.json +0 -4
  303. package/es/utils/splits/usesSegments.js +0 -21
  304. package/es/utils/time/index.js +0 -8
  305. package/es/utils/timeTracker/index.js +0 -216
  306. package/es/utils/timeTracker/timer.js +0 -25
  307. package/lib/client/attributesDecoration.js +0 -128
  308. package/lib/client/browser.js +0 -50
  309. package/lib/client/client.js +0 -174
  310. package/lib/client/inputValidation.js +0 -129
  311. package/lib/client/node.js +0 -14
  312. package/lib/client/package.json +0 -4
  313. package/lib/engine/combiners/and.js +0 -65
  314. package/lib/engine/combiners/ifelseif.js +0 -88
  315. package/lib/engine/condition/index.js +0 -76
  316. package/lib/engine/convertions/index.js +0 -36
  317. package/lib/engine/engine/index.js +0 -71
  318. package/lib/engine/engine/legacy.js +0 -83
  319. package/lib/engine/engine/murmur3/common.js +0 -52
  320. package/lib/engine/engine/murmur3/murmur3.js +0 -90
  321. package/lib/engine/engine/murmur3/murmur3_128.js +0 -256
  322. package/lib/engine/engine/murmur3/murmur3_128_x86.js +0 -189
  323. package/lib/engine/engine/murmur3/murmur3_64.js +0 -57
  324. package/lib/engine/engine/murmur3/utfx.js +0 -121
  325. package/lib/engine/evaluator/index.js +0 -129
  326. package/lib/engine/index.js +0 -128
  327. package/lib/engine/matchers/all.js +0 -41
  328. package/lib/engine/matchers/between.js +0 -44
  329. package/lib/engine/matchers/boolean.js +0 -44
  330. package/lib/engine/matchers/cont_all.js +0 -61
  331. package/lib/engine/matchers/cont_any.js +0 -57
  332. package/lib/engine/matchers/cont_str.js +0 -48
  333. package/lib/engine/matchers/dependency.js +0 -60
  334. package/lib/engine/matchers/eq.js +0 -44
  335. package/lib/engine/matchers/eq_set.js +0 -59
  336. package/lib/engine/matchers/ew.js +0 -48
  337. package/lib/engine/matchers/gte.js +0 -44
  338. package/lib/engine/matchers/index.js +0 -90
  339. package/lib/engine/matchers/lte.js +0 -44
  340. package/lib/engine/matchers/part_of.js +0 -59
  341. package/lib/engine/matchers/segment.js +0 -49
  342. package/lib/engine/matchers/string.js +0 -53
  343. package/lib/engine/matchers/sw.js +0 -48
  344. package/lib/engine/matchers/types.js +0 -57
  345. package/lib/engine/matchers/whitelist.js +0 -46
  346. package/lib/engine/parser/index.js +0 -84
  347. package/lib/engine/parser/segments.js +0 -28
  348. package/lib/engine/transforms/matcherGroup.js +0 -54
  349. package/lib/engine/transforms/matchers.js +0 -124
  350. package/lib/engine/transforms/segment.js +0 -34
  351. package/lib/engine/transforms/set.js +0 -26
  352. package/lib/engine/transforms/unaryNumeric.js +0 -26
  353. package/lib/engine/transforms/whitelist.js +0 -28
  354. package/lib/engine/treatments/index.js +0 -73
  355. package/lib/engine/value/index.js +0 -64
  356. package/lib/engine/value/sanitize.js +0 -137
  357. package/lib/events/index.js +0 -80
  358. package/lib/factory/offline.js +0 -62
  359. package/lib/factory/online.js +0 -129
  360. package/lib/impressions/counter.js +0 -61
  361. package/lib/impressions/hasher/buildKey.js +0 -8
  362. package/lib/impressions/hasher/hashImpression128.js +0 -12
  363. package/lib/impressions/hasher/hashImpression32.js +0 -14
  364. package/lib/impressions/observer/browser.js +0 -19
  365. package/lib/impressions/observer/node.js +0 -19
  366. package/lib/impressions/observer/observer.js +0 -29
  367. package/lib/impressions/observer/package.json +0 -4
  368. package/lib/integrations/browser.js +0 -72
  369. package/lib/integrations/ga/GaToSplit.js +0 -267
  370. package/lib/integrations/ga/SplitToGa.js +0 -138
  371. package/lib/integrations/node.js +0 -9
  372. package/lib/integrations/package.json +0 -4
  373. package/lib/listeners/browser.js +0 -173
  374. package/lib/listeners/node.js +0 -74
  375. package/lib/listeners/package.json +0 -4
  376. package/lib/manager/index.js +0 -115
  377. package/lib/metrics/Collectors.js +0 -118
  378. package/lib/metrics/index.js +0 -182
  379. package/lib/producer/browser/Partial.js +0 -114
  380. package/lib/producer/browser.js +0 -82
  381. package/lib/producer/fetcher/MySegments.js +0 -59
  382. package/lib/producer/fetcher/SegmentChanges.js +0 -62
  383. package/lib/producer/fetcher/SplitChanges.js +0 -58
  384. package/lib/producer/node.js +0 -142
  385. package/lib/producer/offline/browser.js +0 -35
  386. package/lib/producer/offline/node.js +0 -35
  387. package/lib/producer/offline/package.json +0 -4
  388. package/lib/producer/package.json +0 -4
  389. package/lib/producer/task.js +0 -61
  390. package/lib/producer/updater/MySegments.js +0 -119
  391. package/lib/producer/updater/SegmentChanges.js +0 -148
  392. package/lib/producer/updater/SplitChanges.js +0 -145
  393. package/lib/producer/updater/SplitChangesFromFeatures.js +0 -30
  394. package/lib/producer/updater/SplitChangesFromFileSystem.js +0 -30
  395. package/lib/producer/updater/SplitChangesFromObject.js +0 -84
  396. package/lib/readiness/index.js +0 -132
  397. package/lib/readiness/statusManager.js +0 -124
  398. package/lib/services/auth/auth.js +0 -32
  399. package/lib/services/auth/index.js +0 -11
  400. package/lib/services/events/bulk.js +0 -31
  401. package/lib/services/events/index.js +0 -26
  402. package/lib/services/getEventSource/browser.js +0 -8
  403. package/lib/services/getEventSource/node.js +0 -26
  404. package/lib/services/getEventSource/package.json +0 -4
  405. package/lib/services/getFetch/browser.js +0 -12
  406. package/lib/services/getFetch/node.js +0 -24
  407. package/lib/services/getFetch/package.json +0 -4
  408. package/lib/services/impressions/bulk.js +0 -36
  409. package/lib/services/impressions/count.js +0 -16
  410. package/lib/services/impressions/dto.js +0 -81
  411. package/lib/services/impressions/index.js +0 -26
  412. package/lib/services/impressions/post.js +0 -31
  413. package/lib/services/metrics/counters.js +0 -33
  414. package/lib/services/metrics/dto.js +0 -46
  415. package/lib/services/metrics/index.js +0 -26
  416. package/lib/services/metrics/times.js +0 -33
  417. package/lib/services/mySegments/get.js +0 -35
  418. package/lib/services/mySegments/index.js +0 -26
  419. package/lib/services/request/index.js +0 -53
  420. package/lib/services/request/options/browser.js +0 -23
  421. package/lib/services/request/options/node.js +0 -37
  422. package/lib/services/request/options/package.json +0 -4
  423. package/lib/services/segmentChanges/get.js +0 -29
  424. package/lib/services/segmentChanges/index.js +0 -26
  425. package/lib/services/splitChanges/get.js +0 -27
  426. package/lib/services/splitChanges/index.js +0 -26
  427. package/lib/services/splitChanges/offline/browser.js +0 -71
  428. package/lib/services/splitChanges/offline/node.js +0 -189
  429. package/lib/services/splitChanges/offline/package.json +0 -4
  430. package/lib/services/splitChanges/offline/parseCondition.js +0 -49
  431. package/lib/services/transport/index.js +0 -62
  432. package/lib/storage/AttributesCache/InMemory.js +0 -93
  433. package/lib/storage/BaseMetricsAsyncCache.js +0 -28
  434. package/lib/storage/CountCache/InMemory.js +0 -54
  435. package/lib/storage/CountCache/InRedis.js +0 -50
  436. package/lib/storage/EventsCache/InMemory.js +0 -118
  437. package/lib/storage/EventsCache/InRedis.js +0 -74
  438. package/lib/storage/ImpressionsCache/InMemory.js +0 -77
  439. package/lib/storage/ImpressionsCache/InRedis.js +0 -79
  440. package/lib/storage/Keys.js +0 -132
  441. package/lib/storage/KeysLocalStorage.js +0 -58
  442. package/lib/storage/LatencyCache/InMemory.js +0 -64
  443. package/lib/storage/LatencyCache/InRedis.js +0 -53
  444. package/lib/storage/LatencyCache/findIndex.js +0 -12
  445. package/lib/storage/Meta.js +0 -12
  446. package/lib/storage/RedisAdapter.js +0 -212
  447. package/lib/storage/SegmentCache/InLocalStorage/index.js +0 -147
  448. package/lib/storage/SegmentCache/InMemory/browser.js +0 -113
  449. package/lib/storage/SegmentCache/InMemory/node.js +0 -89
  450. package/lib/storage/SegmentCache/InMemory/package.json +0 -4
  451. package/lib/storage/SegmentCache/InRedis/index.js +0 -87
  452. package/lib/storage/SplitCache/InLocalStorage.js +0 -344
  453. package/lib/storage/SplitCache/InMemory.js +0 -172
  454. package/lib/storage/SplitCache/InRedis.js +0 -224
  455. package/lib/storage/SplitCache/killLocally.js +0 -42
  456. package/lib/storage/browser.js +0 -122
  457. package/lib/storage/node.js +0 -104
  458. package/lib/storage/package.json +0 -4
  459. package/lib/sync/AuthClient/index.js +0 -44
  460. package/lib/sync/PushManager/index.js +0 -340
  461. package/lib/sync/PushManager/mySegmentsV2utils.js +0 -87
  462. package/lib/sync/PushManager/pushRequirements/browser.js +0 -30
  463. package/lib/sync/PushManager/pushRequirements/node.js +0 -25
  464. package/lib/sync/PushManager/pushRequirements/package.json +0 -4
  465. package/lib/sync/SSEClient/index.js +0 -101
  466. package/lib/sync/SSEHandler/NotificationKeeper.js +0 -104
  467. package/lib/sync/SSEHandler/NotificationParser.js +0 -39
  468. package/lib/sync/SSEHandler/index.js +0 -121
  469. package/lib/sync/SegmentUpdateWorker/browser.js +0 -81
  470. package/lib/sync/SegmentUpdateWorker/node.js +0 -86
  471. package/lib/sync/SegmentUpdateWorker/package.json +0 -4
  472. package/lib/sync/SplitUpdateWorker/index.js +0 -93
  473. package/lib/sync/browser.js +0 -139
  474. package/lib/sync/constants.js +0 -59
  475. package/lib/sync/node.js +0 -71
  476. package/lib/sync/package.json +0 -4
  477. package/lib/trackers/event.js +0 -64
  478. package/lib/trackers/impressions.js +0 -146
  479. package/lib/utils/backoff/index.js +0 -57
  480. package/lib/utils/base64/browser.js +0 -26
  481. package/lib/utils/base64/node.js +0 -26
  482. package/lib/utils/base64/package.json +0 -4
  483. package/lib/utils/binarySearch/index.js +0 -56
  484. package/lib/utils/constants/index.js +0 -60
  485. package/lib/utils/context/constants.js +0 -49
  486. package/lib/utils/context/index.js +0 -111
  487. package/lib/utils/decompress/index.js +0 -483
  488. package/lib/utils/fn/repeat.js +0 -64
  489. package/lib/utils/inputValidation/apiKey.js +0 -51
  490. package/lib/utils/inputValidation/attribute.js +0 -32
  491. package/lib/utils/inputValidation/attributes.js +0 -32
  492. package/lib/utils/inputValidation/event.js +0 -33
  493. package/lib/utils/inputValidation/eventProperties.js +0 -78
  494. package/lib/utils/inputValidation/eventValue.js +0 -19
  495. package/lib/utils/inputValidation/index.js +0 -48
  496. package/lib/utils/inputValidation/isOperational.js +0 -25
  497. package/lib/utils/inputValidation/key.js +0 -59
  498. package/lib/utils/inputValidation/split.js +0 -60
  499. package/lib/utils/inputValidation/splitFilters.js +0 -134
  500. package/lib/utils/inputValidation/splits.js +0 -38
  501. package/lib/utils/inputValidation/trafficType.js +0 -68
  502. package/lib/utils/jwt/hashUserKey.js +0 -19
  503. package/lib/utils/jwt/index.js +0 -19
  504. package/lib/utils/key/factory.js +0 -46
  505. package/lib/utils/key/parser.js +0 -42
  506. package/lib/utils/labels/index.js +0 -18
  507. package/lib/utils/lang/Errors.js +0 -58
  508. package/lib/utils/lang/Sets.js +0 -127
  509. package/lib/utils/lang/index.js +0 -350
  510. package/lib/utils/localstorage/isAvailable.js +0 -31
  511. package/lib/utils/logger/LoggerFactory.js +0 -98
  512. package/lib/utils/logger/index.js +0 -109
  513. package/lib/utils/lrucache/linkedlist.js +0 -132
  514. package/lib/utils/lrucache/lru.spec.js +0 -30
  515. package/lib/utils/lrucache/lrucache.js +0 -88
  516. package/lib/utils/now/browser.js +0 -33
  517. package/lib/utils/now/node.js +0 -24
  518. package/lib/utils/now/package.json +0 -4
  519. package/lib/utils/promise/thenable.js +0 -10
  520. package/lib/utils/promise/timeout.js +0 -40
  521. package/lib/utils/promise/wrapper.js +0 -63
  522. package/lib/utils/settings/defaults/package.json +0 -4
  523. package/lib/utils/settings/impressionsMode.js +0 -26
  524. package/lib/utils/settings/index.js +0 -214
  525. package/lib/utils/settings/integrations/browser.js +0 -17
  526. package/lib/utils/settings/integrations/common.js +0 -40
  527. package/lib/utils/settings/integrations/node.js +0 -13
  528. package/lib/utils/settings/integrations/package.json +0 -4
  529. package/lib/utils/settings/language/browser.js +0 -22
  530. package/lib/utils/settings/language/node.js +0 -22
  531. package/lib/utils/settings/language/package.json +0 -4
  532. package/lib/utils/settings/mode.js +0 -16
  533. package/lib/utils/settings/runtime/browser.js +0 -26
  534. package/lib/utils/settings/runtime/node.js +0 -43
  535. package/lib/utils/settings/runtime/package.json +0 -4
  536. package/lib/utils/settings/storage/browser.js +0 -75
  537. package/lib/utils/settings/storage/node.js +0 -92
  538. package/lib/utils/settings/storage/package.json +0 -4
  539. package/lib/utils/splits/usesSegments.js +0 -27
  540. package/lib/utils/time/index.js +0 -12
  541. package/lib/utils/timeTracker/index.js +0 -213
  542. package/lib/utils/timeTracker/timer.js +0 -33
  543. package/src/client/attributesDecoration.js +0 -112
  544. package/src/client/browser.js +0 -41
  545. package/src/client/client.js +0 -131
  546. package/src/client/inputValidation.js +0 -130
  547. package/src/client/node.js +0 -8
  548. package/src/client/package.json +0 -4
  549. package/src/engine/combiners/and.js +0 -55
  550. package/src/engine/combiners/ifelseif.js +0 -74
  551. package/src/engine/condition/index.js +0 -65
  552. package/src/engine/convertions/index.js +0 -22
  553. package/src/engine/engine/index.js +0 -63
  554. package/src/engine/engine/legacy.js +0 -66
  555. package/src/engine/engine/murmur3/common.js +0 -54
  556. package/src/engine/engine/murmur3/murmur3.js +0 -79
  557. package/src/engine/engine/murmur3/murmur3_128.js +0 -273
  558. package/src/engine/engine/murmur3/murmur3_128_x86.js +0 -188
  559. package/src/engine/engine/murmur3/murmur3_64.js +0 -34
  560. package/src/engine/engine/murmur3/utfx.js +0 -111
  561. package/src/engine/evaluator/index.js +0 -148
  562. package/src/engine/index.js +0 -123
  563. package/src/engine/matchers/all.js +0 -29
  564. package/src/engine/matchers/between.js +0 -30
  565. package/src/engine/matchers/boolean.js +0 -29
  566. package/src/engine/matchers/cont_all.js +0 -40
  567. package/src/engine/matchers/cont_any.js +0 -35
  568. package/src/engine/matchers/cont_str.js +0 -31
  569. package/src/engine/matchers/dependency.js +0 -52
  570. package/src/engine/matchers/eq.js +0 -30
  571. package/src/engine/matchers/eq_set.js +0 -37
  572. package/src/engine/matchers/ew.js +0 -31
  573. package/src/engine/matchers/gte.js +0 -30
  574. package/src/engine/matchers/index.js +0 -71
  575. package/src/engine/matchers/lte.js +0 -30
  576. package/src/engine/matchers/part_of.js +0 -37
  577. package/src/engine/matchers/segment.js +0 -41
  578. package/src/engine/matchers/string.js +0 -39
  579. package/src/engine/matchers/sw.js +0 -31
  580. package/src/engine/matchers/types.js +0 -52
  581. package/src/engine/matchers/whitelist.js +0 -30
  582. package/src/engine/parser/index.js +0 -79
  583. package/src/engine/parser/segments.js +0 -31
  584. package/src/engine/transforms/matcherGroup.js +0 -45
  585. package/src/engine/transforms/matchers.js +0 -118
  586. package/src/engine/transforms/segment.js +0 -23
  587. package/src/engine/transforms/set.js +0 -20
  588. package/src/engine/transforms/unaryNumeric.js +0 -20
  589. package/src/engine/transforms/whitelist.js +0 -22
  590. package/src/engine/treatments/index.js +0 -67
  591. package/src/engine/value/index.js +0 -53
  592. package/src/engine/value/sanitize.js +0 -117
  593. package/src/events/index.js +0 -62
  594. package/src/factory/offline.js +0 -60
  595. package/src/factory/online.js +0 -127
  596. package/src/impressions/counter.js +0 -43
  597. package/src/impressions/hasher/buildKey.js +0 -3
  598. package/src/impressions/hasher/hashImpression128.js +0 -6
  599. package/src/impressions/hasher/hashImpression32.js +0 -6
  600. package/src/impressions/observer/browser.js +0 -8
  601. package/src/impressions/observer/node.js +0 -8
  602. package/src/impressions/observer/observer.js +0 -17
  603. package/src/impressions/observer/package.json +0 -4
  604. package/src/integrations/browser.js +0 -57
  605. package/src/integrations/ga/GaToSplit.js +0 -278
  606. package/src/integrations/ga/SplitToGa.js +0 -125
  607. package/src/integrations/node.js +0 -4
  608. package/src/integrations/package.json +0 -4
  609. package/src/listeners/browser.js +0 -137
  610. package/src/listeners/node.js +0 -59
  611. package/src/listeners/package.json +0 -4
  612. package/src/manager/index.js +0 -103
  613. package/src/metrics/Collectors.js +0 -77
  614. package/src/metrics/index.js +0 -174
  615. package/src/producer/browser/Partial.js +0 -104
  616. package/src/producer/browser.js +0 -82
  617. package/src/producer/fetcher/MySegments.js +0 -40
  618. package/src/producer/fetcher/SegmentChanges.js +0 -52
  619. package/src/producer/fetcher/SplitChanges.js +0 -39
  620. package/src/producer/node.js +0 -142
  621. package/src/producer/offline/browser.js +0 -28
  622. package/src/producer/offline/node.js +0 -28
  623. package/src/producer/offline/package.json +0 -4
  624. package/src/producer/package.json +0 -4
  625. package/src/producer/task.js +0 -57
  626. package/src/producer/updater/MySegments.js +0 -104
  627. package/src/producer/updater/SegmentChanges.js +0 -126
  628. package/src/producer/updater/SplitChanges.js +0 -138
  629. package/src/producer/updater/SplitChangesFromFeatures.js +0 -23
  630. package/src/producer/updater/SplitChangesFromFileSystem.js +0 -23
  631. package/src/producer/updater/SplitChangesFromObject.js +0 -81
  632. package/src/readiness/index.js +0 -125
  633. package/src/readiness/statusManager.js +0 -121
  634. package/src/services/.DS_Store +0 -0
  635. package/src/services/auth/auth.js +0 -21
  636. package/src/services/auth/index.js +0 -3
  637. package/src/services/events/bulk.js +0 -23
  638. package/src/services/events/index.js +0 -18
  639. package/src/services/getEventSource/browser.js +0 -3
  640. package/src/services/getEventSource/package.json +0 -4
  641. package/src/services/getFetch/package.json +0 -4
  642. package/src/services/impressions/bulk.js +0 -26
  643. package/src/services/impressions/count.js +0 -8
  644. package/src/services/impressions/dto.js +0 -71
  645. package/src/services/impressions/index.js +0 -18
  646. package/src/services/impressions/post.js +0 -23
  647. package/src/services/metrics/counters.js +0 -25
  648. package/src/services/metrics/dto.js +0 -44
  649. package/src/services/metrics/index.js +0 -18
  650. package/src/services/metrics/times.js +0 -25
  651. package/src/services/mySegments/get.js +0 -27
  652. package/src/services/mySegments/index.js +0 -18
  653. package/src/services/request/index.js +0 -43
  654. package/src/services/request/options/browser.js +0 -18
  655. package/src/services/request/options/node.js +0 -30
  656. package/src/services/request/options/package.json +0 -4
  657. package/src/services/segmentChanges/get.js +0 -20
  658. package/src/services/segmentChanges/index.js +0 -18
  659. package/src/services/splitChanges/get.js +0 -20
  660. package/src/services/splitChanges/index.js +0 -18
  661. package/src/services/splitChanges/offline/browser.js +0 -66
  662. package/src/services/splitChanges/offline/node.js +0 -190
  663. package/src/services/splitChanges/offline/package.json +0 -4
  664. package/src/services/splitChanges/offline/parseCondition.js +0 -52
  665. package/src/services/transport/index.js +0 -44
  666. package/src/storage/AttributesCache/InMemory.js +0 -76
  667. package/src/storage/BaseMetricsAsyncCache.js +0 -14
  668. package/src/storage/CountCache/InMemory.js +0 -48
  669. package/src/storage/CountCache/InRedis.js +0 -32
  670. package/src/storage/EventsCache/InMemory.js +0 -99
  671. package/src/storage/EventsCache/InRedis.js +0 -62
  672. package/src/storage/ImpressionsCache/InMemory.js +0 -62
  673. package/src/storage/ImpressionsCache/InRedis.js +0 -65
  674. package/src/storage/Keys.js +0 -122
  675. package/src/storage/KeysLocalStorage.js +0 -40
  676. package/src/storage/LatencyCache/InMemory.js +0 -56
  677. package/src/storage/LatencyCache/InRedis.js +0 -35
  678. package/src/storage/LatencyCache/findIndex.js +0 -7
  679. package/src/storage/Meta.js +0 -7
  680. package/src/storage/RedisAdapter.js +0 -170
  681. package/src/storage/SegmentCache/InLocalStorage/index.js +0 -120
  682. package/src/storage/SegmentCache/InMemory/browser.js +0 -99
  683. package/src/storage/SegmentCache/InMemory/node.js +0 -84
  684. package/src/storage/SegmentCache/InMemory/package.json +0 -4
  685. package/src/storage/SegmentCache/InRedis/index.js +0 -71
  686. package/src/storage/SplitCache/InLocalStorage.js +0 -324
  687. package/src/storage/SplitCache/InMemory.js +0 -145
  688. package/src/storage/SplitCache/InRedis.js +0 -187
  689. package/src/storage/SplitCache/killLocally.js +0 -33
  690. package/src/storage/browser.js +0 -110
  691. package/src/storage/node.js +0 -83
  692. package/src/storage/package.json +0 -4
  693. package/src/sync/.DS_Store +0 -0
  694. package/src/sync/AuthClient/index.js +0 -31
  695. package/src/sync/PushManager/index.js +0 -328
  696. package/src/sync/PushManager/mySegmentsV2utils.js +0 -76
  697. package/src/sync/PushManager/pushRequirements/browser.js +0 -20
  698. package/src/sync/PushManager/pushRequirements/node.js +0 -16
  699. package/src/sync/PushManager/pushRequirements/package.json +0 -4
  700. package/src/sync/SSEClient/index.js +0 -92
  701. package/src/sync/SSEHandler/NotificationKeeper.js +0 -90
  702. package/src/sync/SSEHandler/NotificationParser.js +0 -35
  703. package/src/sync/SSEHandler/index.js +0 -110
  704. package/src/sync/SegmentUpdateWorker/browser.js +0 -67
  705. package/src/sync/SegmentUpdateWorker/node.js +0 -73
  706. package/src/sync/SegmentUpdateWorker/package.json +0 -4
  707. package/src/sync/SplitUpdateWorker/index.js +0 -79
  708. package/src/sync/browser.js +0 -130
  709. package/src/sync/constants.js +0 -43
  710. package/src/sync/node.js +0 -66
  711. package/src/sync/package.json +0 -4
  712. package/src/trackers/event.js +0 -47
  713. package/src/trackers/impressions.js +0 -123
  714. package/src/utils/backoff/index.js +0 -46
  715. package/src/utils/base64/browser.js +0 -19
  716. package/src/utils/base64/node.js +0 -19
  717. package/src/utils/base64/package.json +0 -4
  718. package/src/utils/binarySearch/index.js +0 -50
  719. package/src/utils/constants/index.js +0 -41
  720. package/src/utils/context/constants.js +0 -18
  721. package/src/utils/context/index.js +0 -84
  722. package/src/utils/decompress/index.js +0 -428
  723. package/src/utils/fn/repeat.js +0 -48
  724. package/src/utils/inputValidation/apiKey.js +0 -42
  725. package/src/utils/inputValidation/attribute.js +0 -22
  726. package/src/utils/inputValidation/attributes.js +0 -26
  727. package/src/utils/inputValidation/event.js +0 -23
  728. package/src/utils/inputValidation/eventProperties.js +0 -65
  729. package/src/utils/inputValidation/eventValue.js +0 -11
  730. package/src/utils/inputValidation/index.js +0 -11
  731. package/src/utils/inputValidation/isOperational.js +0 -16
  732. package/src/utils/inputValidation/key.js +0 -53
  733. package/src/utils/inputValidation/split.js +0 -42
  734. package/src/utils/inputValidation/splitFilters.js +0 -108
  735. package/src/utils/inputValidation/splits.js +0 -21
  736. package/src/utils/inputValidation/trafficType.js +0 -58
  737. package/src/utils/jwt/hashUserKey.js +0 -11
  738. package/src/utils/jwt/index.js +0 -15
  739. package/src/utils/key/factory.js +0 -34
  740. package/src/utils/key/parser.js +0 -34
  741. package/src/utils/labels/index.js +0 -7
  742. package/src/utils/lang/Errors.js +0 -19
  743. package/src/utils/lang/Sets.js +0 -94
  744. package/src/utils/lang/index.js +0 -291
  745. package/src/utils/localstorage/isAvailable.js +0 -26
  746. package/src/utils/logger/LoggerFactory.js +0 -90
  747. package/src/utils/logger/index.js +0 -93
  748. package/src/utils/lrucache/linkedlist.js +0 -116
  749. package/src/utils/lrucache/lru.spec.js +0 -26
  750. package/src/utils/lrucache/lrucache.js +0 -49
  751. package/src/utils/now/browser.js +0 -29
  752. package/src/utils/now/node.js +0 -21
  753. package/src/utils/now/package.json +0 -4
  754. package/src/utils/promise/thenable.js +0 -1
  755. package/src/utils/promise/timeout.js +0 -38
  756. package/src/utils/promise/wrapper.js +0 -60
  757. package/src/utils/settings/defaults/browser.js +0 -12
  758. package/src/utils/settings/defaults/node.js +0 -21
  759. package/src/utils/settings/defaults/package.json +0 -4
  760. package/src/utils/settings/impressionsMode.js +0 -15
  761. package/src/utils/settings/index.js +0 -217
  762. package/src/utils/settings/integrations/browser.js +0 -8
  763. package/src/utils/settings/integrations/common.js +0 -32
  764. package/src/utils/settings/integrations/node.js +0 -7
  765. package/src/utils/settings/integrations/package.json +0 -4
  766. package/src/utils/settings/language/browser.js +0 -17
  767. package/src/utils/settings/language/node.js +0 -17
  768. package/src/utils/settings/language/package.json +0 -4
  769. package/src/utils/settings/mode.js +0 -12
  770. package/src/utils/settings/runtime/browser.js +0 -22
  771. package/src/utils/settings/runtime/node.js +0 -34
  772. package/src/utils/settings/runtime/package.json +0 -4
  773. package/src/utils/settings/storage/browser.js +0 -70
  774. package/src/utils/settings/storage/package.json +0 -4
  775. package/src/utils/splits/usesSegments.js +0 -17
  776. package/src/utils/time/index.js +0 -8
  777. package/src/utils/timeTracker/index.js +0 -223
  778. package/src/utils/timeTracker/timer.js +0 -27
@@ -1,81 +0,0 @@
1
- /**
2
- Copyright 2016 Split Software
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- **/
16
- import { STORAGE_LOCALSTORAGE } from '../../utils/constants';
17
- import { forOwn } from '../../utils/lang';
18
- import logFactory from '../../utils/logger';
19
- const log = logFactory('splitio-producer:offline');
20
-
21
- function FromObjectUpdaterFactory(Fetcher, context) {
22
- const {
23
- [context.constants.SETTINGS]: settings,
24
- [context.constants.READINESS]: readiness,
25
- [context.constants.STORAGE]: storage
26
- } = context.getAll();
27
-
28
- let startingUp = true;
29
-
30
- return function ObjectUpdater() {
31
- const splits = [];
32
- let loadError = null;
33
- let splitsMock = {};
34
- try {
35
- splitsMock = Fetcher(settings);
36
- } catch (err) {
37
- loadError = err;
38
- log.error(`There was an issue loading the mock Splits data, no changes will be applied to the current cache. ${err}`);
39
- }
40
-
41
- if (!loadError && splitsMock) {
42
- log.debug('Splits data: ');
43
- log.debug(JSON.stringify(splitsMock));
44
-
45
- forOwn(splitsMock, function (val, name) {
46
- splits.push([
47
- name,
48
- JSON.stringify({
49
- name,
50
- status: 'ACTIVE',
51
- killed: false,
52
- trafficAllocation: 100,
53
- defaultTreatment: 'control',
54
- conditions: val.conditions || [],
55
- configurations: val.configurations,
56
- trafficTypeName: val.trafficTypeName
57
- })
58
- ]);
59
- });
60
-
61
- return Promise.all([
62
- storage.splits.flush(), // required to sync removed splits from mock
63
- storage.splits.addSplits(splits)
64
- ]).then(() => {
65
- readiness.splits.emit(readiness.splits.SDK_SPLITS_ARRIVED);
66
-
67
- if (startingUp) {
68
- startingUp = false;
69
- // Emits SDK_READY_FROM_CACHE
70
- if (settings.storage.__originalType === STORAGE_LOCALSTORAGE) readiness.splits.emit(readiness.splits.SDK_SPLITS_CACHE_LOADED);
71
- // Only emits SDK_SEGMENTS_ARRIVED the first time for SDK_READY
72
- readiness.segments.emit(readiness.segments.SDK_SEGMENTS_ARRIVED);
73
- }
74
- });
75
- } else {
76
- return Promise.resolve();
77
- }
78
- };
79
- }
80
-
81
- export default FromObjectUpdaterFactory;
@@ -1,125 +0,0 @@
1
- import EventEmitter from 'events';
2
-
3
- const SPLITS_READY = 2;
4
- const SEGMENTS_READY = 4;
5
- const SDK_FIRE_READY = SPLITS_READY | SEGMENTS_READY; // 2 + 4 = 6
6
- const SDK_NOTIFY_UPDATE_SINCE_NOW = 8;
7
- const SDK_FIRE_UPDATE = SDK_FIRE_READY | SDK_NOTIFY_UPDATE_SINCE_NOW; // 6 + 8 = 14
8
-
9
- const Events = {
10
- SDK_READY_TIMED_OUT: 'init::timeout',
11
- SDK_READY: 'init::ready',
12
- SDK_READY_FROM_CACHE: 'init::cache-ready',
13
- SDK_SPLITS_ARRIVED: 'state::splits-arrived',
14
- SDK_SEGMENTS_ARRIVED: 'state::segments-arrived',
15
- SDK_SPLITS_CACHE_LOADED: 'state::splits-cache-loaded',
16
- SDK_UPDATE: 'state::update',
17
- READINESS_GATE_CHECK_STATE: 'state::check'
18
- };
19
-
20
- /**
21
- * Machine state to handle the ready / update event propagation.
22
- */
23
- function GateContext() {
24
- // Splits are shared through all instances of the same SDK.
25
- let splitsStatus = 0;
26
-
27
- const splits = new EventEmitter();
28
- splits.SDK_SPLITS_CACHE_LOADED = Events.SDK_SPLITS_CACHE_LOADED;
29
- splits.SDK_SPLITS_ARRIVED = Events.SDK_SPLITS_ARRIVED;
30
-
31
- // references counter: how many
32
- let refCount = 0;
33
-
34
- function ReadinessGateFactory(splits, segments) {
35
- const gate = new EventEmitter();
36
- let segmentsStatus = 0;
37
- let status = 0;
38
-
39
- gate.on(Events.READINESS_GATE_CHECK_STATE, () => {
40
- // @TODO catch and handle user callback errors. Required for localhost and consumer modes. In standalone mode, it is done in 'SplitChangesUpdater'.
41
- if (status !== SDK_FIRE_UPDATE && splitsStatus + segmentsStatus === SDK_FIRE_READY) {
42
- status = SDK_FIRE_UPDATE;
43
- gate.emit(Events.SDK_READY);
44
- } else if (status === SDK_FIRE_UPDATE) {
45
- gate.emit(Events.SDK_UPDATE);
46
- }
47
- });
48
-
49
- splits.on(Events.SDK_SPLITS_ARRIVED, (isSplitKill) => {
50
- // `isSplitKill` condition avoids an edge-case of wrongly emitting SDK_READY if:
51
- // - `/mySegments` fetch and SPLIT_KILL occurs before `/splitChanges` fetch, and
52
- // - storage has cached splits (for which case `splitsStorage.killLocally` can return true)
53
- if (!isSplitKill) splitsStatus = SPLITS_READY;
54
- gate.emit(Events.READINESS_GATE_CHECK_STATE);
55
- });
56
-
57
- splits.once(Events.SDK_SPLITS_CACHE_LOADED, () => {
58
- try {
59
- gate.emit(Events.SDK_READY_FROM_CACHE);
60
- } catch (e) {
61
- // handle user callback errors
62
- setTimeout(() => { throw e; }, 0);
63
- }
64
- });
65
-
66
- segments.on(Events.SDK_SEGMENTS_ARRIVED, () => {
67
- segmentsStatus = SEGMENTS_READY;
68
- gate.emit(Events.READINESS_GATE_CHECK_STATE);
69
- });
70
-
71
- return gate;
72
- }
73
-
74
- /**
75
- * SDK Readiness Gate Factory
76
- *
77
- * The ready state in the browser relay on sharing the splits ready flag across
78
- * all the gates, and have an extra flag for the segments which is per gate
79
- * instance.
80
- */
81
- function SDKReadinessGateFactory(timeout = 0) {
82
- let readinessTimeoutId = 0;
83
- const segments = new EventEmitter();
84
- segments.SDK_SEGMENTS_ARRIVED = Events.SDK_SEGMENTS_ARRIVED;
85
-
86
- const gate = ReadinessGateFactory(splits, segments);
87
-
88
- if (timeout > 0) {
89
- // Add the timeout.
90
- readinessTimeoutId = setTimeout(() => {
91
- gate.emit(Events.SDK_READY_TIMED_OUT, 'Split SDK emitted SDK_READY_TIMED_OUT event.');
92
- }, timeout);
93
- // Clear it if the SDK get's ready.
94
- gate.once(Events.SDK_READY, () => clearTimeout(readinessTimeoutId));
95
- }
96
-
97
- gate.SDK_READY = Events.SDK_READY;
98
- gate.SDK_READY_FROM_CACHE = Events.SDK_READY_FROM_CACHE;
99
- gate.SDK_UPDATE = Events.SDK_UPDATE;
100
- gate.SDK_READY_TIMED_OUT = Events.SDK_READY_TIMED_OUT;
101
-
102
- // New Gate has been created, so increase the counter
103
- refCount++;
104
-
105
- return {
106
- // Emitters
107
- splits,
108
- segments,
109
- gate,
110
- // Cleanup listeners
111
- destroy() {
112
- segments.removeAllListeners();
113
- gate.removeAllListeners();
114
- clearTimeout(readinessTimeoutId);
115
-
116
- if (refCount > 0) refCount--;
117
- if (refCount === 0) splits.removeAllListeners();
118
- }
119
- };
120
- }
121
-
122
- return SDKReadinessGateFactory;
123
- }
124
-
125
- export default GateContext;
@@ -1,121 +0,0 @@
1
- import objectAssign from 'object-assign';
2
- import promiseWrapper from '../utils/promise/wrapper';
3
- import logFactory from '../utils/logger';
4
- const log = logFactory('');
5
-
6
- const NEW_LISTENER_EVENT = 'newListener';
7
- const REMOVE_LISTENER_EVENT = 'removeListener';
8
-
9
- // default onRejected handler, that just logs the error, if ready promise doesn't have one.
10
- function defaultOnRejected(err) {
11
- log.error(err);
12
- }
13
-
14
- /**
15
- * StatusManager factory.
16
- * Responsable of exposing public status API: ready promise, event emitter and constants (SDK_READY, etc).
17
- * It also updates client context according to status events and logs related warnings and errors.
18
- *
19
- * @param {Object} context client context
20
- * @param {number} internalReadyCbCount offset value of SDK_READY listeners that are added/removed internally
21
- * by the SDK. It is required to properly log the warning 'No listeners for SDK Readiness detected'
22
- */
23
- export default function callbackHandlerContext(context, internalReadyCbCount = 0) {
24
- const gate = context.get(context.constants.READINESS).gate;
25
- let readyCbCount = 0;
26
- let isReady = false;
27
- let hasTimedout = false;
28
- const {
29
- SDK_READY,
30
- SDK_READY_FROM_CACHE,
31
- SDK_UPDATE,
32
- SDK_READY_TIMED_OUT
33
- } = gate;
34
-
35
- gate.on(REMOVE_LISTENER_EVENT, event => {
36
- if (event === SDK_READY) readyCbCount--;
37
- });
38
-
39
- gate.on(NEW_LISTENER_EVENT, event => {
40
- if (event === SDK_READY || event === SDK_READY_TIMED_OUT) {
41
- if (isReady) {
42
- log.error(`A listener was added for ${event === SDK_READY ? 'SDK_READY' : 'SDK_READY_TIMED_OUT'} on the SDK, which has already fired and won't be emitted again. The callback won't be executed.`);
43
- } else if (event === SDK_READY) {
44
- readyCbCount++;
45
- }
46
- }
47
- });
48
-
49
- const readyPromise = generateReadyPromise();
50
-
51
- gate.once(SDK_READY_FROM_CACHE, () => {
52
- log.info('Split SDK is ready from cache.');
53
-
54
- context.put(context.constants.READY_FROM_CACHE, true);
55
- });
56
-
57
- function generateReadyPromise() {
58
- const promise = promiseWrapper(new Promise((resolve, reject) => {
59
- gate.once(SDK_READY, () => {
60
- log.info('Split SDK is ready.');
61
-
62
- if (readyCbCount === internalReadyCbCount && !promise.hasOnFulfilled()) log.warn('No listeners for SDK Readiness detected. Incorrect control treatments could have been logged if you called getTreatment/s while the SDK was not yet ready.');
63
- context.put(context.constants.READY, true);
64
- isReady = true;
65
- resolve();
66
- });
67
- gate.once(SDK_READY_TIMED_OUT, (error) => {
68
- context.put(context.constants.HAS_TIMEDOUT, true);
69
- hasTimedout = true;
70
- reject(error);
71
- });
72
- }), defaultOnRejected);
73
-
74
- return promise;
75
- }
76
-
77
- return objectAssign(
78
- // Expose Event Emitter functionality
79
- Object.create(gate),
80
- {
81
- // Expose the event constants without changing the interface
82
- Event: {
83
- SDK_READY,
84
- SDK_READY_FROM_CACHE,
85
- SDK_UPDATE,
86
- SDK_READY_TIMED_OUT,
87
- },
88
- /**
89
- * Returns a promise that will be resolved once the SDK has finished loading (SDK_READY event emitted) or rejected if the SDK has timedout (SDK_READY_TIMED_OUT event emitted).
90
- * As it's meant to provide similar flexibility to the event approach, given that the SDK might be eventually ready after a timeout event, calling the `ready` method after the
91
- * SDK had timed out will return a new promise that should eventually resolve if the SDK gets ready.
92
- *
93
- * Caveats: the method was designed to avoid an unhandled Promise rejection if the rejection case is not handled, so that `onRejected` handler is optional when using promises.
94
- * However, when using async/await syntax, the rejection should be explicitly propagated like in the following example:
95
- * ```
96
- * try {
97
- * await client.ready().catch((e) => { throw e; });
98
- * // SDK is ready
99
- * } catch(e) {
100
- * // SDK has timedout
101
- * }
102
- * ```
103
- *
104
- * @function ready
105
- * @returns {Promise<void>}
106
- */
107
- ready: () => {
108
- if (hasTimedout) {
109
- if (!isReady) {
110
- return promiseWrapper(Promise.reject('Split SDK has emitted SDK_READY_TIMED_OUT event.'), defaultOnRejected);
111
- } else {
112
- return Promise.resolve();
113
- }
114
- }
115
- return readyPromise;
116
- },
117
- // Expose context for internal purposes only. Not considered part of the public API, and will be removed eventually.
118
- __context: context
119
- }
120
- );
121
- }
Binary file
@@ -1,21 +0,0 @@
1
- import base from '../request';
2
-
3
- function userKeyToQueryParam(userKey) {
4
- // no need to check availability of `encodeURIComponent`, since it is a function highly supported in browsers, node and other platforms.
5
- return 'users=' + encodeURIComponent(userKey);
6
- }
7
-
8
- /**
9
- *
10
- * @param {Object} settings Split factory config.
11
- * @param {string[] | undefined} userKeys set of user Keys to track MY_SEGMENTS_CHANGES. It is undefined for Node.
12
- */
13
- export default function GET(settings, userKeys) {
14
- let relativeUrl = '/v2/auth';
15
- if (userKeys) { // accounting the possibility that `userKeys` is undefined (in node)
16
- const queryParams = userKeys.map(userKeyToQueryParam).join('&');
17
- if (queryParams) // accounting the possibility that `userKeys` and thus `queryParams` are empty
18
- relativeUrl += '?' + queryParams;
19
- }
20
- return base(settings, relativeUrl);
21
- }
@@ -1,3 +0,0 @@
1
- import transport from '../transport';
2
-
3
- export default transport;
@@ -1,23 +0,0 @@
1
- /**
2
- Copyright 2016 Split Software
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- **/
16
- import objectAssign from 'object-assign';
17
- import base from '../request';
18
-
19
- export default function BULK(settings, params) {
20
- return base(settings, '/events/bulk', objectAssign({
21
- method: 'POST'
22
- }, params));
23
- }
@@ -1,18 +0,0 @@
1
- /**
2
- Copyright 2016 Split Software
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- **/
16
- import transport from '../transport';
17
-
18
- export default transport;
@@ -1,3 +0,0 @@
1
- export default function getEventSource() {
2
- return typeof EventSource === 'function' ? EventSource : undefined;
3
- }
@@ -1,4 +0,0 @@
1
- {
2
- "main": "./node.js",
3
- "browser": "./browser.js"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "main": "./node.js",
3
- "browser": "./browser.js"
4
- }
@@ -1,26 +0,0 @@
1
- /**
2
- Copyright 2016 Split Software
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- **/
16
- import objectAssign from 'object-assign';
17
- import base from '../request';
18
- import { OPTIMIZED, DEBUG } from '../../utils/constants';
19
-
20
- export default function BULK(settings, params) {
21
- return base(settings, '/testImpressions/bulk', objectAssign({
22
- method: 'POST'
23
- }, params), {
24
- SplitSDKImpressionsMode: settings.sync.impressionsMode === OPTIMIZED ? OPTIMIZED : DEBUG // Adding extra headers to send impressions in OPTIMIZED or DEBUG modes.
25
- });
26
- }
@@ -1,8 +0,0 @@
1
- import objectAssign from 'object-assign';
2
- import base from '../request';
3
-
4
- export default function COUNT(settings, params) {
5
- return base(settings, '/testImpressions/count', objectAssign({
6
- method: 'POST'
7
- }, params));
8
- }
@@ -1,71 +0,0 @@
1
- /**
2
- Copyright 2016 Split Software
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- **/
16
- import { groupBy, forOwn } from '../../utils/lang';
17
-
18
- export function fromImpressionsCollector(collector, settings) {
19
- const sendLabels = settings.core.labelsEnabled;
20
- let groupedByFeature = groupBy(collector.state(), 'feature');
21
- let dto = [];
22
-
23
- // using forOwn instead of for...in since the last also iterates over prototype enumerables
24
- forOwn(groupedByFeature, (value, name) => {
25
- dto.push({
26
- f: name, // Test Name
27
- i: value.map(entry => { // Key Impressions
28
- const keyImpression = {
29
- k: entry.keyName, // Key
30
- t: entry.treatment, // Treatment
31
- m: entry.time, // Timestamp
32
- c: entry.changeNumber // ChangeNumber
33
- };
34
-
35
- if (sendLabels) keyImpression.r = entry.label; // Rule
36
- if (entry.bucketingKey) keyImpression.b = entry.bucketingKey; // Bucketing Key
37
- if (entry.pt) keyImpression.pt = entry.pt;
38
-
39
- return keyImpression;
40
- })
41
- });
42
- });
43
-
44
- return dto;
45
- }
46
-
47
- export function fromImpressionsCountCollector(collector) {
48
- const imprCounts = collector ? collector.size() : 0;
49
- const pf = [];
50
- if (imprCounts === 0) return pf;
51
-
52
- const impressionsCount = collector.popAll();
53
-
54
- const keys = Object.keys(impressionsCount);
55
- for (let i = 0; i < keys.length; i++) {
56
- const splitted = keys[i].split('::');
57
- if (splitted.length !== 2) continue;
58
- const featureName = splitted[0];
59
- const timeFrame = splitted[1];
60
-
61
- const impressionsInTimeframe = {
62
- f: featureName, // Test Name
63
- m: Number(timeFrame), // Time Frame
64
- rc: impressionsCount[keys[i]] // Count
65
- };
66
-
67
- pf.push(impressionsInTimeframe);
68
- }
69
-
70
- return pf;
71
- }
@@ -1,18 +0,0 @@
1
- /**
2
- Copyright 2016 Split Software
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- **/
16
- import transport from '../transport';
17
-
18
- export default transport;
@@ -1,23 +0,0 @@
1
- /**
2
- Copyright 2016 Split Software
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- **/
16
- import objectAssign from 'object-assign';
17
- import base from '../request';
18
-
19
- export default function POST(settings, params) {
20
- return base(settings, '/testImpressions', objectAssign({
21
- method: 'POST'
22
- }, params));
23
- }
@@ -1,25 +0,0 @@
1
- /**
2
- Copyright 2016 Split Software
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- **/
16
- import objectAssign from 'object-assign';
17
- import base from '../request';
18
-
19
- export default function POST(settings, params) {
20
- return base(settings, '/metrics/counters', objectAssign({
21
- method: 'POST'
22
- }, params, {
23
- logErrorsAsInfo: true
24
- }));
25
- }
@@ -1,44 +0,0 @@
1
- /**
2
- Copyright 2016 Split Software
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- **/
16
- import { forOwn } from '../../utils/lang';
17
-
18
- export function fromLatenciesCollector(latenciesCollector) {
19
- const result = [];
20
- const metrics = latenciesCollector.toJSON();
21
-
22
- forOwn(metrics, (latencies, key) => {
23
- result.push({
24
- name: key,
25
- latencies
26
- });
27
- });
28
-
29
- return result;
30
- }
31
-
32
- export function fromCountersCollector(countersCollector) {
33
- const result = [];
34
- const metrics = countersCollector.toJSON();
35
-
36
- forOwn(metrics, (delta, key) => {
37
- result.push({
38
- name: key,
39
- delta
40
- });
41
- });
42
-
43
- return result;
44
- }
@@ -1,18 +0,0 @@
1
- /**
2
- Copyright 2016 Split Software
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- **/
16
- import transport from '../transport';
17
-
18
- export default transport;