@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,43 +0,0 @@
1
- // time for refresh token
2
- export const SECONDS_BEFORE_EXPIRATION = 600;
3
-
4
- // Internal SDK events, subscribed by SyncManager and PushManager
5
- /**
6
- * emitted on SSE and Authenticate non-recoverable errors, STREAMING_DISABLED control notification and authentication with pushEnabled false
7
- * triggers `handleNonRetryableError` call
8
- */
9
- export const PUSH_NONRETRYABLE_ERROR = 'PUSH_NONRETRYABLE_ERROR';
10
- /**
11
- * emitted on SSE and Authenticate recoverable errors
12
- * triggers `handleRetryableError` call
13
- */
14
- export const PUSH_RETRYABLE_ERROR = 'PUSH_RETRYABLE_ERROR';
15
- /**
16
- * emitted on STREAMING_RESUMED control notification, OCCUPANCY different than 0, and SSE onopen event
17
- * triggers `stopPollingAndSyncAll` call
18
- */
19
- export const PUSH_SUBSYSTEM_UP = 'PUSH_SUBSYSTEM_UP';
20
-
21
- /**
22
- * emitted on STREAMING_PAUSED control notification, OCCUPANCY equal to 0, PUSH_NONRETRYABLE_ERROR and PUSH_RETRYABLE_ERROR events.
23
- * triggers `startPolling` and `stopWorkers` calls
24
- */
25
- export const PUSH_SUBSYSTEM_DOWN = 'PUSH_SUBSYSTEM_DOWN';
26
-
27
- // Update-type push notifications, handled by NotificationProcessor
28
- export const MY_SEGMENTS_UPDATE = 'MY_SEGMENTS_UPDATE';
29
- export const MY_SEGMENTS_UPDATE_V2 = 'MY_SEGMENTS_UPDATE_V2';
30
- export const SEGMENT_UPDATE = 'SEGMENT_UPDATE';
31
- export const SPLIT_KILL = 'SPLIT_KILL';
32
- export const SPLIT_UPDATE = 'SPLIT_UPDATE';
33
-
34
- // Control-type push notifications, handled by NotificationKeeper
35
- export const CONTROL = 'CONTROL';
36
- export const OCCUPANCY = 'OCCUPANCY';
37
-
38
- export const ControlTypes = {
39
- STREAMING_DISABLED: 'STREAMING_DISABLED',
40
- STREAMING_PAUSED: 'STREAMING_PAUSED',
41
- STREAMING_RESUMED: 'STREAMING_RESUMED',
42
- STREAMING_RESET: 'STREAMING_RESET'
43
- };
package/src/sync/node.js DELETED
@@ -1,66 +0,0 @@
1
- import PushManagerFactory from './PushManager';
2
- import FullProducerFactory from '../producer';
3
- import logFactory from '../utils/logger';
4
- import { PUSH_SUBSYSTEM_DOWN, PUSH_SUBSYSTEM_UP } from './constants';
5
- const log = logFactory('splitio-sync:sync-manager');
6
-
7
- /**
8
- * Factory of SyncManager for node
9
- *
10
- * @param context main client context
11
- */
12
- export default function NodeSyncManagerFactory(context) {
13
-
14
- const producer = FullProducerFactory(context);
15
- const settings = context.get(context.constants.SETTINGS);
16
-
17
- // add producer into the context before creating the PushManager
18
- context.put(context.constants.PRODUCER, producer);
19
- const pushManager = settings.streamingEnabled ? PushManagerFactory(context) : undefined;
20
-
21
- function startPolling() {
22
- if (!producer.isRunning()) {
23
- log.info('Streaming not available. Starting periodic fetch of data.');
24
- producer.start();
25
- } else {
26
- log.info('Streaming couldn\'t connect. Continue periodic fetch of data.');
27
- }
28
- }
29
-
30
- function stopPollingAndSyncAll() {
31
- log.info('PUSH (re)connected. Syncing and stopping periodic fetch of data.');
32
- // if polling, stop
33
- if (producer.isRunning())
34
- producer.stop();
35
- syncAll();
36
- }
37
-
38
- function syncAll() {
39
- // fetch splits and segments. There is no need to catch this promise (it is handled by `SplitChangesUpdater`)
40
- producer.synchronizeSplits().then(() => {
41
- producer.synchronizeSegment();
42
- });
43
- }
44
-
45
- return {
46
- start() {
47
- // start syncing
48
- if (pushManager) {
49
- syncAll();
50
- pushManager.on(PUSH_SUBSYSTEM_UP, stopPollingAndSyncAll);
51
- pushManager.on(PUSH_SUBSYSTEM_DOWN, startPolling);
52
- setTimeout(pushManager.start); // Run in next event-loop cycle as in browser
53
- } else {
54
- producer.start();
55
- }
56
- },
57
- stop() {
58
- // stop syncing
59
- if (pushManager)
60
- pushManager.stop();
61
-
62
- if (producer.isRunning())
63
- producer.stop();
64
- }
65
- };
66
- }
@@ -1,4 +0,0 @@
1
- {
2
- "main": "./node.js",
3
- "browser": "./browser.js"
4
- }
@@ -1,47 +0,0 @@
1
- import objectAssign from 'object-assign';
2
- import logFactory from '../utils/logger';
3
- import thenable from '../utils/promise/thenable';
4
- const log = logFactory('splitio-client:event-tracker');
5
-
6
- function EventTracker(context) {
7
- const collector = context.get(context.constants.STORAGE).events;
8
- const integrationsManager = context.get(context.constants.INTEGRATIONS_MANAGER, true);
9
-
10
- function queueEventsCallback(eventData, tracked) {
11
- const { eventTypeId, trafficTypeName, key, value, timestamp, properties } = eventData;
12
- // Logging every prop would be too much.
13
- const msg = `event of type "${eventTypeId}" for traffic type "${trafficTypeName}". Key: ${key}. Value: ${value}. Timestamp: ${timestamp}. ${properties ? 'With properties.' : 'With no properties.'}`;
14
-
15
- if (tracked) {
16
- log.info(`Successfully queued ${msg}`);
17
- if (integrationsManager) {
18
- // Wrap in a timeout because we don't want it to be blocking.
19
- setTimeout(function () {
20
- // copy of event, to avoid unexpected behaviour if modified by integrations
21
- const eventDataCopy = objectAssign({}, eventData);
22
- if (eventData.properties) eventDataCopy.properties = objectAssign({}, eventData.properties);
23
- // integrationsManager does not throw errors (they are internally handled by each integration module)
24
- integrationsManager.handleEvent(eventDataCopy);
25
- }, 0);
26
- }
27
- } else {
28
- log.warn(`Failed to queue ${msg}`);
29
- }
30
-
31
- return tracked;
32
- }
33
-
34
- return {
35
- track: function (eventData, size) {
36
- const tracked = collector.track(eventData, size);
37
-
38
- if (thenable(tracked)) {
39
- return tracked.then(queueEventsCallback.bind(null, eventData));
40
- } else {
41
- return queueEventsCallback(eventData, tracked);
42
- }
43
- }
44
- };
45
- }
46
-
47
- export default EventTracker;
@@ -1,123 +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
-
17
- import objectAssign from 'object-assign';
18
- import logFactory from '../utils/logger';
19
- import thenable from '../utils/promise/thenable';
20
- import ImpressionObserverFactory from '../impressions/observer';
21
- import { truncateTimeFrame } from '../utils/time';
22
- import { OPTIMIZED, PRODUCER_MODE, STANDALONE_MODE } from '../utils/constants';
23
- const log = logFactory('splitio-client:impressions-tracker');
24
-
25
- /**
26
- * Checks if impressions previous time should be added or not.
27
- */
28
- function shouldAddPt(settings) {
29
- return [PRODUCER_MODE, STANDALONE_MODE].indexOf(settings.mode) > -1 ? true : false;
30
- }
31
-
32
- /**
33
- * Checks if it should dedupe impressions or not.
34
- */
35
- function shouldBeOptimized(settings) {
36
- if (!shouldAddPt(settings)) return false;
37
- return settings.sync.impressionsMode === OPTIMIZED ? true : false;
38
- }
39
-
40
- function ImpressionsTracker(context) {
41
- const collector = context.get(context.constants.STORAGE).impressions;
42
- const settings = context.get(context.constants.SETTINGS);
43
- const listener = settings.impressionListener;
44
- const integrationsManager = context.get(context.constants.INTEGRATIONS_MANAGER, true);
45
- const { ip, hostname } = settings.runtime;
46
- const sdkLanguageVersion = settings.version;
47
- const queue = [];
48
- const shouldAddPreviousTime = shouldAddPt(settings);
49
- const isOptimized = shouldBeOptimized(settings);
50
- const observer = ImpressionObserverFactory(); // Instantiates observer
51
- const impressionsCounter = context.get(context.constants.IMPRESSIONS_COUNTER);
52
-
53
- return {
54
- queue: function (impression, attributes) {
55
- queue.push({
56
- impression,
57
- attributes
58
- });
59
- },
60
- track: function () {
61
- const impressionsCount = queue.length;
62
- const slice = queue.splice(0, impressionsCount);
63
-
64
- const impressionsToStore = []; // Track only the impressions that are going to be stored
65
- // Wraps impressions to store and adds previousTime if it corresponds
66
- slice.forEach(({ impression }) => {
67
- if (shouldAddPreviousTime) {
68
- // Adds previous time if it is enabled
69
- impression.pt = observer.testAndSet(impression);
70
- }
71
-
72
- const now = Date.now();
73
- if (isOptimized && impressionsCounter) {
74
- // Increments impression counter per featureName
75
- impressionsCounter.inc(impression.feature, now, 1);
76
- }
77
-
78
- // Checks if the impression should be added in queue to be sent
79
- if (!isOptimized || !impression.pt || impression.pt < truncateTimeFrame(now)) {
80
- impressionsToStore.push(impression);
81
- }
82
- });
83
-
84
- const res = collector.track(impressionsToStore);
85
-
86
- // If we're on an async storage, handle error and log it.
87
- if (thenable(res)) {
88
- res.then(() => {
89
- log.debug(`Successfully stored ${impressionsCount} impression${impressionsCount === 1 ? '' : 's'}.`);
90
- }).catch(err => {
91
- log.error(`Could not store impressions bulk with ${impressionsCount} impression${impressionsCount === 1 ? '' : 's'}. Error: ${err}`);
92
- });
93
- }
94
-
95
- if (listener || integrationsManager) {
96
- for (let i = 0; i < impressionsCount; i++) {
97
- const impressionData = {
98
- // copy of impression, to avoid unexpected behaviour if modified by integrations or impressionListener
99
- impression: objectAssign({}, slice[i].impression),
100
- attributes: slice[i].attributes,
101
- ip,
102
- hostname,
103
- sdkLanguageVersion
104
- };
105
-
106
- // Wrap in a timeout because we don't want it to be blocking.
107
- setTimeout(function () {
108
- // integrationsManager.handleImpression does not throw errors
109
- if (integrationsManager) integrationsManager.handleImpression(impressionData);
110
-
111
- try { // An exception on the listeners should not break the SDK.
112
- if (listener) listener.logImpression(impressionData);
113
- } catch (err) {
114
- log.error(`Impression listener logImpression method threw: ${err}.`);
115
- }
116
- }, 0);
117
- }
118
- }
119
- }
120
- };
121
- }
122
-
123
- export default ImpressionsTracker;
@@ -1,46 +0,0 @@
1
- class Backoff {
2
-
3
- /**
4
- * Schedule function calls with exponential backoff
5
- *
6
- * @param {function} cb
7
- * @param {number} baseMillis
8
- * @param {number} maxMillis
9
- */
10
- constructor(cb, baseMillis, maxMillis) {
11
- this.baseMillis = baseMillis || Backoff.DEFAULT_BASE_MILLIS;
12
- this.maxMillis = maxMillis || Backoff.DEFAULT_MAX_MILLIS;
13
- this.attempts = 0;
14
- this.cb = cb;
15
- }
16
-
17
- /**
18
- * Schedule a next call to `cb`
19
- * @returns scheduled delay in milliseconds
20
- */
21
- scheduleCall() {
22
- let delayInMillis = Math.min(this.baseMillis * Math.pow(2, this.attempts), this.maxMillis);
23
-
24
- if (this.timeoutID) clearTimeout(this.timeoutID);
25
- this.timeoutID = setTimeout(() => {
26
- this.cb();
27
- }, delayInMillis);
28
- this.attempts++;
29
-
30
- return delayInMillis;
31
- }
32
-
33
- reset() {
34
- this.attempts = 0;
35
- if (this.timeoutID) {
36
- clearTimeout(this.timeoutID);
37
- this.timeoutID = 0;
38
- }
39
- }
40
-
41
- }
42
-
43
- Backoff.DEFAULT_BASE_MILLIS = 1000; // 1 second
44
- Backoff.DEFAULT_MAX_MILLIS = 1800000; // 30 minutes
45
-
46
- export default Backoff;
@@ -1,19 +0,0 @@
1
- /**
2
- * Decode a given string value in Base64 format
3
- *
4
- * @param {string} value to decode
5
- * @throws {ReferenceError} if `atob` function is not defined
6
- */
7
- export function decodeFromBase64(value) {
8
- return atob(value);
9
- }
10
-
11
- /**
12
- * Encode a given string value to Base64 format.
13
- *
14
- * @param {string} value to encode
15
- * @throws {ReferenceError} if `btoa` function is not defined
16
- */
17
- export function encodeToBase64(value) {
18
- return btoa(value);
19
- }
@@ -1,19 +0,0 @@
1
- /**
2
- * Decode a given string value in Base64 format
3
- *
4
- * @param {string} value to decode
5
- */
6
- export function decodeFromBase64(value) {
7
- // for node (version mayor than v4)
8
- return Buffer.from(value, 'base64').toString('binary');
9
- }
10
-
11
- /**
12
- * Encode a given string value to Base64 format
13
- *
14
- * @param {string} value to encode
15
- */
16
- export function encodeToBase64(value) {
17
- // for node (version mayor than v4)
18
- return Buffer.from(value).toString('base64');
19
- }
@@ -1,4 +0,0 @@
1
- {
2
- "main": "./node.js",
3
- "browser": "./browser.js"
4
- }
@@ -1,50 +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
- function bs(items, value) {
17
- let startIndex = 0;
18
- let stopIndex = items.length - 1;
19
- let middle = Math.floor((stopIndex + startIndex) / 2);
20
- let minIndex = startIndex;
21
- let maxIndex = stopIndex;
22
-
23
- while (items[middle] !== value && startIndex < stopIndex) {
24
- // adjust search area
25
- if (value < items[middle]) {
26
- stopIndex = middle - 1;
27
- } else if (value > items[middle]) {
28
- startIndex = middle + 1;
29
- }
30
-
31
- // recalculate middle
32
- middle = Math.floor((stopIndex + startIndex) / 2);
33
- }
34
-
35
- // correct if middle is out of range
36
- if (middle < minIndex) {
37
- middle = minIndex;
38
- } else if (middle > maxIndex) {
39
- middle = maxIndex;
40
- }
41
-
42
- // we want to always return based on strict minor comparation
43
- if (value < items[middle] && middle > minIndex) {
44
- return middle - 1;
45
- }
46
-
47
- return middle;
48
- }
49
-
50
- export default bs;
@@ -1,41 +0,0 @@
1
- // SDK Modes
2
- export const LOCALHOST_MODE = 'localhost';
3
- export const STANDALONE_MODE = 'standalone';
4
- export const PRODUCER_MODE = 'producer';
5
- export const CONSUMER_MODE = 'consumer';
6
- // Storage types
7
- export const STORAGE_MEMORY = 'MEMORY';
8
- export const STORAGE_REDIS = 'REDIS';
9
- export const STORAGE_LOCALSTORAGE = 'LOCALSTORAGE';
10
- // Special treatments
11
- export const CONTROL = 'control';
12
- export const CONTROL_WITH_CONFIG = {
13
- treatment: CONTROL,
14
- config: null
15
- };
16
- // Constants for unknown and not-applicable values
17
- export const UNKNOWN = 'unknown';
18
- export const NA = 'NA';
19
- // Integration types
20
- export const GOOGLE_ANALYTICS_TO_SPLIT = 'GOOGLE_ANALYTICS_TO_SPLIT';
21
- export const SPLIT_TO_GOOGLE_ANALYTICS = 'SPLIT_TO_GOOGLE_ANALYTICS';
22
- // Integration data types
23
- export const SPLIT_IMPRESSION = 'IMPRESSION';
24
- export const SPLIT_EVENT = 'EVENT';
25
- // Split filters metadata.
26
- // Ordered according to their precedency when forming the filter query string: `&names=<values>&prefixes=<values>`
27
- export const FILTERS_METADATA = [
28
- {
29
- type: 'byName',
30
- maxLength: 400,
31
- queryParam: 'names='
32
- },
33
- {
34
- type: 'byPrefix',
35
- maxLength: 50,
36
- queryParam: 'prefixes='
37
- }
38
- ];
39
- // Impression collection modes
40
- export const DEBUG = 'DEBUG';
41
- export const OPTIMIZED = 'OPTIMIZED';
@@ -1,18 +0,0 @@
1
- export const COLLECTORS = 'metrics_collectors';
2
- export const DESTROYED = 'is_destroyed';
3
- export const EVENTS = 'events_publisher';
4
- export const HAS_TIMEDOUT = 'has_timedout';
5
- export const INTEGRATIONS_MANAGER = 'integrations_manager';
6
- export const MY_SEGMENTS_CHANGE_WORKER = 'my_segments_change_worker';
7
- export const PRODUCER = 'producer';
8
- export const READINESS = 'readiness_gate';
9
- export const READY = 'is_ready';
10
- export const READY_FROM_CACHE = 'is_ready_from_cache';
11
- export const SETTINGS = 'settings';
12
- export const STATUS_MANAGER = 'status_manager';
13
- export const STORAGE = 'storage';
14
- export const IMPRESSIONS_COUNTER = 'impressions_counter';
15
-
16
- export default {
17
- COLLECTORS, DESTROYED, EVENTS, HAS_TIMEDOUT, INTEGRATIONS_MANAGER, MY_SEGMENTS_CHANGE_WORKER, PRODUCER, READINESS, READY, READY_FROM_CACHE, SETTINGS, STATUS_MANAGER, STORAGE, IMPRESSIONS_COUNTER
18
- };
@@ -1,84 +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 thenable from '../promise/thenable';
18
- import constants from './constants';
19
-
20
- class Context {
21
- constructor() {
22
- this._map = {};
23
- this.constants = constants;
24
- }
25
- /**
26
- * Gets an item in the context instance or a promise if the item is not yet stored and we are not doing a one time check.
27
- * @param {String} name - The name of the item we want to get
28
- * @return {Any} The item we want to get.
29
- */
30
- get(name, flagCheck = false) {
31
- if (typeof name !== 'string' || typeof name === 'string' && !name.length) return; // Wrong usage, don't generate item promise.
32
-
33
- const item = this._map[name];
34
-
35
- // If we have the item, return it.
36
- if (item !== undefined) {
37
- return item;
38
- } else if (!flagCheck) { // If we don't and it's not a flag check, return a promise that we will resolve once we receive the item.
39
- let resolve;
40
- const promise = new Promise(res => resolve = res);
41
- promise.manualResolve = resolve;
42
- this._map[name] = promise;
43
- return promise;
44
- }
45
- }
46
- /**
47
- * Gets all objects stored in the context.
48
- * @return {Object} - A new map of context-stored items.
49
- */
50
- getAll() { return objectAssign({}, this._map); }
51
- /**
52
- * Stores an item in the context instance.
53
- * @param {String} name - The name of what we are storing
54
- * @param {Any} item - The item can be of any type.
55
- * @return {Boolean} - The result of the operation
56
- */
57
- put(name, item) {
58
- if (typeof name !== 'string' || (typeof name === 'string' && !name.length) || item === undefined) return false; // We can't store this.
59
-
60
- const existingItem = this._map[name];
61
-
62
- // Item already exists and no one is waiting for the item. Abort and return false.
63
- if (existingItem !== undefined && typeof existingItem.manualResolve !== 'function') return false;
64
-
65
- // Someone is waiting for this item, resolve to it.
66
- if (thenable(existingItem) && existingItem.manualResolve) existingItem.manualResolve(item);
67
-
68
- // We are storing a promise, when resolving save the item. On error, clean up the item.
69
- if (thenable(item)) {
70
- item.then(item => {
71
- this._map[name] = item;
72
- return item;
73
- }).catch(err => {
74
- this._map[name] = undefined;
75
- return err;
76
- });
77
- }
78
-
79
- this._map[name] = item;
80
- return true;
81
- }
82
- }
83
-
84
- export default Context;