@splitsoftware/splitio 10.17.1-rc.0 → 10.17.3-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (763) hide show
  1. package/CHANGES.txt +6 -1
  2. package/es/factory/clientSide.js +45 -0
  3. package/es/factory/commons.js +16 -0
  4. package/es/factory/package.json +4 -0
  5. package/es/factory/serverSide.js +42 -0
  6. package/es/index.js +1 -132
  7. package/es/platform/browser.js +11 -0
  8. package/es/{services → platform}/getEventSource/browser.js +1 -1
  9. package/es/{services → platform}/getEventSource/node.js +1 -1
  10. package/es/{client → platform/getEventSource}/package.json +0 -0
  11. package/es/{services → platform}/getFetch/browser.js +1 -1
  12. package/es/{services → platform}/getFetch/node.js +1 -1
  13. package/es/{impressions/observer → platform/getFetch}/package.json +0 -0
  14. package/es/platform/node.js +13 -0
  15. package/es/{integrations → platform}/package.json +0 -0
  16. package/es/{services → platform}/request/options/node.js +2 -2
  17. package/es/settings/clientSide.js +18 -0
  18. package/{lib/utils → es}/settings/defaults/browser.js +6 -8
  19. package/{src/utils → es}/settings/defaults/node.js +6 -3
  20. package/es/settings/defaults/version.js +1 -0
  21. package/es/settings/integrations/browser.js +5 -0
  22. package/es/settings/integrations/node.js +5 -0
  23. package/es/settings/package.json +4 -0
  24. package/es/{utils/settings → settings}/runtime/node.js +6 -4
  25. package/es/settings/serverSide.js +20 -0
  26. package/es/{utils/settings → settings}/storage/browser.js +12 -14
  27. package/es/{utils/settings → settings}/storage/node.js +10 -9
  28. package/es/umd.js +2 -1
  29. package/lib/factory/clientSide.js +65 -0
  30. package/lib/factory/commons.js +23 -0
  31. package/lib/factory/package.json +4 -0
  32. package/lib/factory/serverSide.js +60 -0
  33. package/lib/index.js +3 -151
  34. package/lib/platform/browser.js +24 -0
  35. package/lib/{services → platform}/getEventSource/browser.js +1 -1
  36. package/lib/{services → platform}/getEventSource/node.js +1 -1
  37. package/{es/listeners → lib/platform/getEventSource}/package.json +0 -0
  38. package/lib/{services → platform}/getFetch/browser.js +1 -1
  39. package/lib/{services → platform}/getFetch/node.js +1 -1
  40. package/{es/producer/offline → lib/platform/getFetch}/package.json +0 -0
  41. package/lib/platform/node.js +27 -0
  42. package/{es/producer → lib/platform}/package.json +0 -0
  43. package/lib/{services → platform}/request/options/node.js +2 -2
  44. package/lib/settings/clientSide.js +30 -0
  45. package/{src/utils → lib}/settings/defaults/browser.js +13 -3
  46. package/{es/utils → lib}/settings/defaults/node.js +13 -3
  47. package/lib/settings/defaults/version.js +6 -0
  48. package/lib/settings/integrations/browser.js +14 -0
  49. package/lib/settings/integrations/node.js +12 -0
  50. package/lib/settings/package.json +4 -0
  51. package/lib/{utils/settings → settings}/runtime/node.js +7 -5
  52. package/lib/settings/serverSide.js +33 -0
  53. package/lib/{utils/settings → settings}/storage/browser.js +15 -20
  54. package/lib/{utils/settings → settings}/storage/node.js +13 -11
  55. package/lib/umd.js +1 -0
  56. package/package.json +16 -13
  57. package/src/.DS_Store +0 -0
  58. package/src/factory/clientSide.js +58 -0
  59. package/src/factory/commons.js +16 -0
  60. package/src/factory/package.json +4 -0
  61. package/src/factory/serverSide.js +51 -0
  62. package/src/index.js +1 -140
  63. package/src/{sync/SSEHandler → platform}/.DS_Store +0 -0
  64. package/src/platform/browser.js +13 -0
  65. package/src/{services → platform}/getEventSource/browser.js +2 -2
  66. package/src/{services → platform}/getEventSource/node.js +2 -2
  67. package/{es/services → src/platform}/getEventSource/package.json +0 -0
  68. package/src/{services → platform}/getFetch/browser.js +2 -2
  69. package/src/{services → platform}/getFetch/node.js +1 -1
  70. package/{es/services → src/platform}/getFetch/package.json +0 -0
  71. package/src/platform/node.js +15 -0
  72. package/{es/services/request/options → src/platform}/package.json +0 -0
  73. package/src/{services → platform}/request/options/node.js +2 -2
  74. package/src/{listeners → settings}/.DS_Store +0 -0
  75. package/src/settings/clientSide.js +18 -0
  76. package/{es/utils → src}/settings/defaults/browser.js +8 -3
  77. package/{lib/utils → src}/settings/defaults/node.js +6 -6
  78. package/src/settings/defaults/version.js +1 -0
  79. package/src/settings/integrations/browser.js +6 -0
  80. package/src/{utils/settings → settings}/integrations/node.js +1 -3
  81. package/src/settings/package.json +4 -0
  82. package/src/{utils/settings → settings}/runtime/node.js +9 -6
  83. package/src/settings/serverSide.js +20 -0
  84. package/src/{utils/settings → settings}/storage/browser.js +10 -16
  85. package/src/{utils/settings → settings}/storage/node.js +7 -7
  86. package/src/umd.js +1 -0
  87. package/types/splitio.d.ts +2 -2
  88. package/es/client/attributesDecoration.js +0 -116
  89. package/es/client/browser.js +0 -39
  90. package/es/client/client.js +0 -155
  91. package/es/client/inputValidation.js +0 -117
  92. package/es/client/node.js +0 -6
  93. package/es/engine/combiners/and.js +0 -54
  94. package/es/engine/combiners/ifelseif.js +0 -73
  95. package/es/engine/condition/index.js +0 -62
  96. package/es/engine/convertions/index.js +0 -29
  97. package/es/engine/engine/index.js +0 -60
  98. package/es/engine/engine/legacy.js +0 -77
  99. package/es/engine/engine/murmur3/common.js +0 -40
  100. package/es/engine/engine/murmur3/murmur3.js +0 -83
  101. package/es/engine/engine/murmur3/murmur3_128.js +0 -250
  102. package/es/engine/engine/murmur3/murmur3_128_x86.js +0 -183
  103. package/es/engine/engine/murmur3/murmur3_64.js +0 -52
  104. package/es/engine/engine/murmur3/utfx.js +0 -112
  105. package/es/engine/evaluator/index.js +0 -111
  106. package/es/engine/index.js +0 -112
  107. package/es/engine/matchers/all.js +0 -32
  108. package/es/engine/matchers/between.js +0 -35
  109. package/es/engine/matchers/boolean.js +0 -35
  110. package/es/engine/matchers/cont_all.js +0 -51
  111. package/es/engine/matchers/cont_any.js +0 -47
  112. package/es/engine/matchers/cont_str.js +0 -38
  113. package/es/engine/matchers/dependency.js +0 -50
  114. package/es/engine/matchers/eq.js +0 -35
  115. package/es/engine/matchers/eq_set.js +0 -49
  116. package/es/engine/matchers/ew.js +0 -38
  117. package/es/engine/matchers/gte.js +0 -35
  118. package/es/engine/matchers/index.js +0 -65
  119. package/es/engine/matchers/lte.js +0 -35
  120. package/es/engine/matchers/part_of.js +0 -49
  121. package/es/engine/matchers/segment.js +0 -39
  122. package/es/engine/matchers/string.js +0 -44
  123. package/es/engine/matchers/sw.js +0 -38
  124. package/es/engine/matchers/types.js +0 -48
  125. package/es/engine/matchers/whitelist.js +0 -36
  126. package/es/engine/parser/index.js +0 -69
  127. package/es/engine/parser/segments.js +0 -22
  128. package/es/engine/transforms/matcherGroup.js +0 -43
  129. package/es/engine/transforms/matchers.js +0 -109
  130. package/es/engine/transforms/segment.js +0 -28
  131. package/es/engine/transforms/set.js +0 -20
  132. package/es/engine/transforms/unaryNumeric.js +0 -20
  133. package/es/engine/transforms/whitelist.js +0 -22
  134. package/es/engine/treatments/index.js +0 -67
  135. package/es/engine/value/index.js +0 -54
  136. package/es/engine/value/sanitize.js +0 -125
  137. package/es/events/index.js +0 -65
  138. package/es/factory/offline.js +0 -50
  139. package/es/factory/online.js +0 -113
  140. package/es/impressions/counter.js +0 -52
  141. package/es/impressions/hasher/buildKey.js +0 -3
  142. package/es/impressions/hasher/hashImpression128.js +0 -5
  143. package/es/impressions/hasher/hashImpression32.js +0 -5
  144. package/es/impressions/observer/browser.js +0 -9
  145. package/es/impressions/observer/node.js +0 -9
  146. package/es/impressions/observer/observer.js +0 -21
  147. package/es/integrations/browser.js +0 -62
  148. package/es/integrations/ga/GaToSplit.js +0 -246
  149. package/es/integrations/ga/SplitToGa.js +0 -127
  150. package/es/integrations/node.js +0 -3
  151. package/es/listeners/browser.js +0 -157
  152. package/es/listeners/node.js +0 -65
  153. package/es/manager/index.js +0 -104
  154. package/es/metrics/Collectors.js +0 -100
  155. package/es/metrics/index.js +0 -157
  156. package/es/producer/browser/Partial.js +0 -103
  157. package/es/producer/browser.js +0 -70
  158. package/es/producer/fetcher/MySegments.js +0 -47
  159. package/es/producer/fetcher/SegmentChanges.js +0 -52
  160. package/es/producer/fetcher/SplitChanges.js +0 -46
  161. package/es/producer/node.js +0 -130
  162. package/es/producer/offline/browser.js +0 -26
  163. package/es/producer/offline/node.js +0 -26
  164. package/es/producer/task.js +0 -50
  165. package/es/producer/updater/MySegments.js +0 -108
  166. package/es/producer/updater/SegmentChanges.js +0 -135
  167. package/es/producer/updater/SplitChanges.js +0 -131
  168. package/es/producer/updater/SplitChangesFromFeatures.js +0 -21
  169. package/es/producer/updater/SplitChangesFromFileSystem.js +0 -21
  170. package/es/producer/updater/SplitChangesFromObject.js +0 -73
  171. package/es/readiness/index.js +0 -123
  172. package/es/readiness/statusManager.js +0 -114
  173. package/es/services/auth/auth.js +0 -25
  174. package/es/services/auth/index.js +0 -2
  175. package/es/services/events/bulk.js +0 -22
  176. package/es/services/events/index.js +0 -17
  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/segmentChanges/get.js +0 -21
  191. package/es/services/segmentChanges/index.js +0 -17
  192. package/es/services/splitChanges/get.js +0 -19
  193. package/es/services/splitChanges/index.js +0 -17
  194. package/es/services/splitChanges/offline/browser.js +0 -63
  195. package/es/services/splitChanges/offline/node.js +0 -176
  196. package/es/services/splitChanges/offline/package.json +0 -4
  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 -84
  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/InMemory/package.json +0 -4
  218. package/es/storage/SegmentCache/InRedis/index.js +0 -81
  219. package/es/storage/SplitCache/InLocalStorage.js +0 -332
  220. package/es/storage/SplitCache/InMemory.js +0 -162
  221. package/es/storage/SplitCache/InRedis.js +0 -214
  222. package/es/storage/SplitCache/killLocally.js +0 -35
  223. package/es/storage/browser.js +0 -101
  224. package/es/storage/node.js +0 -81
  225. package/es/storage/package.json +0 -4
  226. package/es/sync/AuthClient/index.js +0 -34
  227. package/es/sync/PushManager/index.js +0 -315
  228. package/es/sync/PushManager/mySegmentsV2utils.js +0 -76
  229. package/es/sync/PushManager/pushRequirements/browser.js +0 -23
  230. package/es/sync/PushManager/pushRequirements/node.js +0 -18
  231. package/es/sync/PushManager/pushRequirements/package.json +0 -4
  232. package/es/sync/SSEClient/index.js +0 -93
  233. package/es/sync/SSEHandler/NotificationKeeper.js +0 -97
  234. package/es/sync/SSEHandler/NotificationParser.js +0 -31
  235. package/es/sync/SSEHandler/index.js +0 -110
  236. package/es/sync/SegmentUpdateWorker/browser.js +0 -74
  237. package/es/sync/SegmentUpdateWorker/node.js +0 -79
  238. package/es/sync/SegmentUpdateWorker/package.json +0 -4
  239. package/es/sync/SplitUpdateWorker/index.js +0 -86
  240. package/es/sync/browser.js +0 -125
  241. package/es/sync/constants.js +0 -42
  242. package/es/sync/node.js +0 -60
  243. package/es/sync/package.json +0 -4
  244. package/es/trackers/event.js +0 -53
  245. package/es/trackers/impressions.js +0 -132
  246. package/es/utils/backoff/index.js +0 -51
  247. package/es/utils/base64/browser.js +0 -19
  248. package/es/utils/base64/node.js +0 -19
  249. package/es/utils/base64/package.json +0 -4
  250. package/es/utils/binarySearch/index.js +0 -50
  251. package/es/utils/constants/index.js +0 -38
  252. package/es/utils/context/constants.js +0 -30
  253. package/es/utils/context/index.js +0 -101
  254. package/es/utils/decompress/index.js +0 -476
  255. package/es/utils/fn/repeat.js +0 -58
  256. package/es/utils/inputValidation/apiKey.js +0 -39
  257. package/es/utils/inputValidation/attribute.js +0 -22
  258. package/es/utils/inputValidation/attributes.js +0 -19
  259. package/es/utils/inputValidation/event.js +0 -23
  260. package/es/utils/inputValidation/eventProperties.js +0 -69
  261. package/es/utils/inputValidation/eventValue.js +0 -9
  262. package/es/utils/inputValidation/index.js +0 -11
  263. package/es/utils/inputValidation/isOperational.js +0 -14
  264. package/es/utils/inputValidation/key.js +0 -50
  265. package/es/utils/inputValidation/split.js +0 -47
  266. package/es/utils/inputValidation/splitFilters.js +0 -121
  267. package/es/utils/inputValidation/splits.js +0 -27
  268. package/es/utils/inputValidation/trafficType.js +0 -55
  269. package/es/utils/jwt/hashUserKey.js +0 -11
  270. package/es/utils/jwt/index.js +0 -14
  271. package/es/utils/key/factory.js +0 -38
  272. package/es/utils/key/parser.js +0 -34
  273. package/es/utils/labels/index.js +0 -7
  274. package/es/utils/lang/Errors.js +0 -41
  275. package/es/utils/lang/Sets.js +0 -114
  276. package/es/utils/lang/index.js +0 -305
  277. package/es/utils/localstorage/isAvailable.js +0 -26
  278. package/es/utils/logger/LoggerFactory.js +0 -86
  279. package/es/utils/logger/index.js +0 -97
  280. package/es/utils/lrucache/linkedlist.js +0 -122
  281. package/es/utils/lrucache/lru.spec.js +0 -24
  282. package/es/utils/lrucache/lrucache.js +0 -80
  283. package/es/utils/now/browser.js +0 -27
  284. package/es/utils/now/node.js +0 -19
  285. package/es/utils/now/package.json +0 -4
  286. package/es/utils/promise/thenable.js +0 -3
  287. package/es/utils/promise/timeout.js +0 -34
  288. package/es/utils/promise/wrapper.js +0 -58
  289. package/es/utils/settings/defaults/package.json +0 -4
  290. package/es/utils/settings/impressionsMode.js +0 -16
  291. package/es/utils/settings/index.js +0 -194
  292. package/es/utils/settings/integrations/browser.js +0 -8
  293. package/es/utils/settings/integrations/common.js +0 -30
  294. package/es/utils/settings/integrations/node.js +0 -7
  295. package/es/utils/settings/integrations/package.json +0 -4
  296. package/es/utils/settings/language/browser.js +0 -16
  297. package/es/utils/settings/language/node.js +0 -16
  298. package/es/utils/settings/language/package.json +0 -4
  299. package/es/utils/settings/mode.js +0 -10
  300. package/es/utils/settings/runtime/browser.js +0 -21
  301. package/es/utils/settings/runtime/package.json +0 -4
  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/package.json +0 -4
  403. package/lib/services/getFetch/package.json +0 -4
  404. package/lib/services/impressions/bulk.js +0 -36
  405. package/lib/services/impressions/count.js +0 -16
  406. package/lib/services/impressions/dto.js +0 -81
  407. package/lib/services/impressions/index.js +0 -26
  408. package/lib/services/impressions/post.js +0 -31
  409. package/lib/services/metrics/counters.js +0 -33
  410. package/lib/services/metrics/dto.js +0 -46
  411. package/lib/services/metrics/index.js +0 -26
  412. package/lib/services/metrics/times.js +0 -33
  413. package/lib/services/mySegments/get.js +0 -35
  414. package/lib/services/mySegments/index.js +0 -26
  415. package/lib/services/request/index.js +0 -53
  416. package/lib/services/request/options/browser.js +0 -23
  417. package/lib/services/request/options/package.json +0 -4
  418. package/lib/services/segmentChanges/get.js +0 -29
  419. package/lib/services/segmentChanges/index.js +0 -26
  420. package/lib/services/splitChanges/get.js +0 -27
  421. package/lib/services/splitChanges/index.js +0 -26
  422. package/lib/services/splitChanges/offline/browser.js +0 -71
  423. package/lib/services/splitChanges/offline/node.js +0 -189
  424. package/lib/services/splitChanges/offline/package.json +0 -4
  425. package/lib/services/splitChanges/offline/parseCondition.js +0 -49
  426. package/lib/services/transport/index.js +0 -62
  427. package/lib/storage/AttributesCache/InMemory.js +0 -92
  428. package/lib/storage/BaseMetricsAsyncCache.js +0 -28
  429. package/lib/storage/CountCache/InMemory.js +0 -54
  430. package/lib/storage/CountCache/InRedis.js +0 -50
  431. package/lib/storage/EventsCache/InMemory.js +0 -118
  432. package/lib/storage/EventsCache/InRedis.js +0 -74
  433. package/lib/storage/ImpressionsCache/InMemory.js +0 -77
  434. package/lib/storage/ImpressionsCache/InRedis.js +0 -79
  435. package/lib/storage/Keys.js +0 -132
  436. package/lib/storage/KeysLocalStorage.js +0 -58
  437. package/lib/storage/LatencyCache/InMemory.js +0 -64
  438. package/lib/storage/LatencyCache/InRedis.js +0 -53
  439. package/lib/storage/LatencyCache/findIndex.js +0 -12
  440. package/lib/storage/Meta.js +0 -12
  441. package/lib/storage/RedisAdapter.js +0 -212
  442. package/lib/storage/SegmentCache/InLocalStorage/index.js +0 -147
  443. package/lib/storage/SegmentCache/InMemory/browser.js +0 -113
  444. package/lib/storage/SegmentCache/InMemory/node.js +0 -89
  445. package/lib/storage/SegmentCache/InMemory/package.json +0 -4
  446. package/lib/storage/SegmentCache/InRedis/index.js +0 -87
  447. package/lib/storage/SplitCache/InLocalStorage.js +0 -344
  448. package/lib/storage/SplitCache/InMemory.js +0 -172
  449. package/lib/storage/SplitCache/InRedis.js +0 -224
  450. package/lib/storage/SplitCache/killLocally.js +0 -42
  451. package/lib/storage/browser.js +0 -122
  452. package/lib/storage/node.js +0 -104
  453. package/lib/storage/package.json +0 -4
  454. package/lib/sync/AuthClient/index.js +0 -44
  455. package/lib/sync/PushManager/index.js +0 -340
  456. package/lib/sync/PushManager/mySegmentsV2utils.js +0 -87
  457. package/lib/sync/PushManager/pushRequirements/browser.js +0 -30
  458. package/lib/sync/PushManager/pushRequirements/node.js +0 -25
  459. package/lib/sync/PushManager/pushRequirements/package.json +0 -4
  460. package/lib/sync/SSEClient/index.js +0 -101
  461. package/lib/sync/SSEHandler/NotificationKeeper.js +0 -104
  462. package/lib/sync/SSEHandler/NotificationParser.js +0 -39
  463. package/lib/sync/SSEHandler/index.js +0 -121
  464. package/lib/sync/SegmentUpdateWorker/browser.js +0 -81
  465. package/lib/sync/SegmentUpdateWorker/node.js +0 -86
  466. package/lib/sync/SegmentUpdateWorker/package.json +0 -4
  467. package/lib/sync/SplitUpdateWorker/index.js +0 -93
  468. package/lib/sync/browser.js +0 -139
  469. package/lib/sync/constants.js +0 -59
  470. package/lib/sync/node.js +0 -71
  471. package/lib/sync/package.json +0 -4
  472. package/lib/trackers/event.js +0 -64
  473. package/lib/trackers/impressions.js +0 -146
  474. package/lib/utils/backoff/index.js +0 -57
  475. package/lib/utils/base64/browser.js +0 -26
  476. package/lib/utils/base64/node.js +0 -26
  477. package/lib/utils/base64/package.json +0 -4
  478. package/lib/utils/binarySearch/index.js +0 -56
  479. package/lib/utils/constants/index.js +0 -60
  480. package/lib/utils/context/constants.js +0 -49
  481. package/lib/utils/context/index.js +0 -111
  482. package/lib/utils/decompress/index.js +0 -483
  483. package/lib/utils/fn/repeat.js +0 -64
  484. package/lib/utils/inputValidation/apiKey.js +0 -51
  485. package/lib/utils/inputValidation/attribute.js +0 -32
  486. package/lib/utils/inputValidation/attributes.js +0 -32
  487. package/lib/utils/inputValidation/event.js +0 -33
  488. package/lib/utils/inputValidation/eventProperties.js +0 -78
  489. package/lib/utils/inputValidation/eventValue.js +0 -19
  490. package/lib/utils/inputValidation/index.js +0 -48
  491. package/lib/utils/inputValidation/isOperational.js +0 -25
  492. package/lib/utils/inputValidation/key.js +0 -59
  493. package/lib/utils/inputValidation/split.js +0 -60
  494. package/lib/utils/inputValidation/splitFilters.js +0 -134
  495. package/lib/utils/inputValidation/splits.js +0 -38
  496. package/lib/utils/inputValidation/trafficType.js +0 -68
  497. package/lib/utils/jwt/hashUserKey.js +0 -19
  498. package/lib/utils/jwt/index.js +0 -19
  499. package/lib/utils/key/factory.js +0 -46
  500. package/lib/utils/key/parser.js +0 -42
  501. package/lib/utils/labels/index.js +0 -18
  502. package/lib/utils/lang/Errors.js +0 -58
  503. package/lib/utils/lang/Sets.js +0 -127
  504. package/lib/utils/lang/index.js +0 -350
  505. package/lib/utils/localstorage/isAvailable.js +0 -31
  506. package/lib/utils/logger/LoggerFactory.js +0 -98
  507. package/lib/utils/logger/index.js +0 -109
  508. package/lib/utils/lrucache/linkedlist.js +0 -132
  509. package/lib/utils/lrucache/lru.spec.js +0 -30
  510. package/lib/utils/lrucache/lrucache.js +0 -88
  511. package/lib/utils/now/browser.js +0 -33
  512. package/lib/utils/now/node.js +0 -24
  513. package/lib/utils/now/package.json +0 -4
  514. package/lib/utils/promise/thenable.js +0 -10
  515. package/lib/utils/promise/timeout.js +0 -40
  516. package/lib/utils/promise/wrapper.js +0 -63
  517. package/lib/utils/settings/defaults/package.json +0 -4
  518. package/lib/utils/settings/impressionsMode.js +0 -26
  519. package/lib/utils/settings/index.js +0 -214
  520. package/lib/utils/settings/integrations/browser.js +0 -17
  521. package/lib/utils/settings/integrations/common.js +0 -40
  522. package/lib/utils/settings/integrations/node.js +0 -13
  523. package/lib/utils/settings/integrations/package.json +0 -4
  524. package/lib/utils/settings/language/browser.js +0 -22
  525. package/lib/utils/settings/language/node.js +0 -22
  526. package/lib/utils/settings/language/package.json +0 -4
  527. package/lib/utils/settings/mode.js +0 -16
  528. package/lib/utils/settings/runtime/browser.js +0 -26
  529. package/lib/utils/settings/runtime/package.json +0 -4
  530. package/lib/utils/settings/storage/package.json +0 -4
  531. package/lib/utils/splits/usesSegments.js +0 -27
  532. package/lib/utils/time/index.js +0 -12
  533. package/lib/utils/timeTracker/index.js +0 -213
  534. package/lib/utils/timeTracker/timer.js +0 -33
  535. package/src/client/attributesDecoration.js +0 -112
  536. package/src/client/browser.js +0 -41
  537. package/src/client/client.js +0 -131
  538. package/src/client/inputValidation.js +0 -130
  539. package/src/client/node.js +0 -8
  540. package/src/client/package.json +0 -4
  541. package/src/engine/combiners/and.js +0 -55
  542. package/src/engine/combiners/ifelseif.js +0 -74
  543. package/src/engine/condition/index.js +0 -65
  544. package/src/engine/convertions/index.js +0 -22
  545. package/src/engine/engine/index.js +0 -63
  546. package/src/engine/engine/legacy.js +0 -66
  547. package/src/engine/engine/murmur3/common.js +0 -54
  548. package/src/engine/engine/murmur3/murmur3.js +0 -79
  549. package/src/engine/engine/murmur3/murmur3_128.js +0 -273
  550. package/src/engine/engine/murmur3/murmur3_128_x86.js +0 -188
  551. package/src/engine/engine/murmur3/murmur3_64.js +0 -34
  552. package/src/engine/engine/murmur3/utfx.js +0 -111
  553. package/src/engine/evaluator/index.js +0 -148
  554. package/src/engine/index.js +0 -123
  555. package/src/engine/matchers/all.js +0 -29
  556. package/src/engine/matchers/between.js +0 -30
  557. package/src/engine/matchers/boolean.js +0 -29
  558. package/src/engine/matchers/cont_all.js +0 -40
  559. package/src/engine/matchers/cont_any.js +0 -35
  560. package/src/engine/matchers/cont_str.js +0 -31
  561. package/src/engine/matchers/dependency.js +0 -52
  562. package/src/engine/matchers/eq.js +0 -30
  563. package/src/engine/matchers/eq_set.js +0 -37
  564. package/src/engine/matchers/ew.js +0 -31
  565. package/src/engine/matchers/gte.js +0 -30
  566. package/src/engine/matchers/index.js +0 -71
  567. package/src/engine/matchers/lte.js +0 -30
  568. package/src/engine/matchers/part_of.js +0 -37
  569. package/src/engine/matchers/segment.js +0 -41
  570. package/src/engine/matchers/string.js +0 -39
  571. package/src/engine/matchers/sw.js +0 -31
  572. package/src/engine/matchers/types.js +0 -52
  573. package/src/engine/matchers/whitelist.js +0 -30
  574. package/src/engine/parser/index.js +0 -79
  575. package/src/engine/parser/segments.js +0 -31
  576. package/src/engine/transforms/matcherGroup.js +0 -45
  577. package/src/engine/transforms/matchers.js +0 -118
  578. package/src/engine/transforms/segment.js +0 -23
  579. package/src/engine/transforms/set.js +0 -20
  580. package/src/engine/transforms/unaryNumeric.js +0 -20
  581. package/src/engine/transforms/whitelist.js +0 -22
  582. package/src/engine/treatments/index.js +0 -67
  583. package/src/engine/value/index.js +0 -53
  584. package/src/engine/value/sanitize.js +0 -117
  585. package/src/events/index.js +0 -62
  586. package/src/factory/offline.js +0 -60
  587. package/src/factory/online.js +0 -127
  588. package/src/impressions/counter.js +0 -43
  589. package/src/impressions/hasher/buildKey.js +0 -3
  590. package/src/impressions/hasher/hashImpression128.js +0 -6
  591. package/src/impressions/hasher/hashImpression32.js +0 -6
  592. package/src/impressions/observer/browser.js +0 -8
  593. package/src/impressions/observer/node.js +0 -8
  594. package/src/impressions/observer/observer.js +0 -17
  595. package/src/impressions/observer/package.json +0 -4
  596. package/src/integrations/browser.js +0 -57
  597. package/src/integrations/ga/GaToSplit.js +0 -278
  598. package/src/integrations/ga/SplitToGa.js +0 -125
  599. package/src/integrations/node.js +0 -4
  600. package/src/integrations/package.json +0 -4
  601. package/src/listeners/browser.js +0 -137
  602. package/src/listeners/node.js +0 -59
  603. package/src/listeners/package.json +0 -4
  604. package/src/manager/index.js +0 -103
  605. package/src/metrics/Collectors.js +0 -77
  606. package/src/metrics/index.js +0 -174
  607. package/src/producer/browser/Partial.js +0 -104
  608. package/src/producer/browser.js +0 -82
  609. package/src/producer/fetcher/MySegments.js +0 -40
  610. package/src/producer/fetcher/SegmentChanges.js +0 -52
  611. package/src/producer/fetcher/SplitChanges.js +0 -39
  612. package/src/producer/node.js +0 -142
  613. package/src/producer/offline/browser.js +0 -28
  614. package/src/producer/offline/node.js +0 -28
  615. package/src/producer/offline/package.json +0 -4
  616. package/src/producer/package.json +0 -4
  617. package/src/producer/task.js +0 -57
  618. package/src/producer/updater/MySegments.js +0 -104
  619. package/src/producer/updater/SegmentChanges.js +0 -126
  620. package/src/producer/updater/SplitChanges.js +0 -138
  621. package/src/producer/updater/SplitChangesFromFeatures.js +0 -23
  622. package/src/producer/updater/SplitChangesFromFileSystem.js +0 -23
  623. package/src/producer/updater/SplitChangesFromObject.js +0 -81
  624. package/src/readiness/index.js +0 -125
  625. package/src/readiness/statusManager.js +0 -121
  626. package/src/services/.DS_Store +0 -0
  627. package/src/services/auth/auth.js +0 -21
  628. package/src/services/auth/index.js +0 -3
  629. package/src/services/events/bulk.js +0 -23
  630. package/src/services/events/index.js +0 -18
  631. package/src/services/getEventSource/package.json +0 -4
  632. package/src/services/getFetch/package.json +0 -4
  633. package/src/services/impressions/bulk.js +0 -26
  634. package/src/services/impressions/count.js +0 -8
  635. package/src/services/impressions/dto.js +0 -71
  636. package/src/services/impressions/index.js +0 -18
  637. package/src/services/impressions/post.js +0 -23
  638. package/src/services/metrics/counters.js +0 -25
  639. package/src/services/metrics/dto.js +0 -44
  640. package/src/services/metrics/index.js +0 -18
  641. package/src/services/metrics/times.js +0 -25
  642. package/src/services/mySegments/get.js +0 -27
  643. package/src/services/mySegments/index.js +0 -18
  644. package/src/services/request/index.js +0 -43
  645. package/src/services/request/options/browser.js +0 -18
  646. package/src/services/request/options/package.json +0 -4
  647. package/src/services/segmentChanges/get.js +0 -20
  648. package/src/services/segmentChanges/index.js +0 -18
  649. package/src/services/splitChanges/get.js +0 -20
  650. package/src/services/splitChanges/index.js +0 -18
  651. package/src/services/splitChanges/offline/browser.js +0 -66
  652. package/src/services/splitChanges/offline/node.js +0 -190
  653. package/src/services/splitChanges/offline/package.json +0 -4
  654. package/src/services/splitChanges/offline/parseCondition.js +0 -52
  655. package/src/services/transport/index.js +0 -44
  656. package/src/storage/AttributesCache/InMemory.js +0 -75
  657. package/src/storage/BaseMetricsAsyncCache.js +0 -14
  658. package/src/storage/CountCache/InMemory.js +0 -48
  659. package/src/storage/CountCache/InRedis.js +0 -32
  660. package/src/storage/EventsCache/InMemory.js +0 -99
  661. package/src/storage/EventsCache/InRedis.js +0 -62
  662. package/src/storage/ImpressionsCache/InMemory.js +0 -62
  663. package/src/storage/ImpressionsCache/InRedis.js +0 -65
  664. package/src/storage/Keys.js +0 -122
  665. package/src/storage/KeysLocalStorage.js +0 -40
  666. package/src/storage/LatencyCache/InMemory.js +0 -56
  667. package/src/storage/LatencyCache/InRedis.js +0 -35
  668. package/src/storage/LatencyCache/findIndex.js +0 -7
  669. package/src/storage/Meta.js +0 -7
  670. package/src/storage/RedisAdapter.js +0 -170
  671. package/src/storage/SegmentCache/InLocalStorage/index.js +0 -120
  672. package/src/storage/SegmentCache/InMemory/browser.js +0 -99
  673. package/src/storage/SegmentCache/InMemory/node.js +0 -84
  674. package/src/storage/SegmentCache/InMemory/package.json +0 -4
  675. package/src/storage/SegmentCache/InRedis/index.js +0 -71
  676. package/src/storage/SplitCache/InLocalStorage.js +0 -324
  677. package/src/storage/SplitCache/InMemory.js +0 -145
  678. package/src/storage/SplitCache/InRedis.js +0 -187
  679. package/src/storage/SplitCache/killLocally.js +0 -33
  680. package/src/storage/browser.js +0 -110
  681. package/src/storage/node.js +0 -83
  682. package/src/storage/package.json +0 -4
  683. package/src/sync/.DS_Store +0 -0
  684. package/src/sync/AuthClient/index.js +0 -31
  685. package/src/sync/PushManager/index.js +0 -328
  686. package/src/sync/PushManager/mySegmentsV2utils.js +0 -76
  687. package/src/sync/PushManager/pushRequirements/browser.js +0 -20
  688. package/src/sync/PushManager/pushRequirements/node.js +0 -16
  689. package/src/sync/PushManager/pushRequirements/package.json +0 -4
  690. package/src/sync/SSEClient/index.js +0 -92
  691. package/src/sync/SSEHandler/NotificationKeeper.js +0 -90
  692. package/src/sync/SSEHandler/NotificationParser.js +0 -35
  693. package/src/sync/SSEHandler/index.js +0 -110
  694. package/src/sync/SegmentUpdateWorker/browser.js +0 -67
  695. package/src/sync/SegmentUpdateWorker/node.js +0 -73
  696. package/src/sync/SegmentUpdateWorker/package.json +0 -4
  697. package/src/sync/SplitUpdateWorker/index.js +0 -79
  698. package/src/sync/browser.js +0 -130
  699. package/src/sync/constants.js +0 -43
  700. package/src/sync/node.js +0 -66
  701. package/src/sync/package.json +0 -4
  702. package/src/trackers/event.js +0 -47
  703. package/src/trackers/impressions.js +0 -123
  704. package/src/utils/backoff/index.js +0 -46
  705. package/src/utils/base64/browser.js +0 -19
  706. package/src/utils/base64/node.js +0 -19
  707. package/src/utils/base64/package.json +0 -4
  708. package/src/utils/binarySearch/index.js +0 -50
  709. package/src/utils/constants/index.js +0 -41
  710. package/src/utils/context/constants.js +0 -18
  711. package/src/utils/context/index.js +0 -84
  712. package/src/utils/decompress/index.js +0 -428
  713. package/src/utils/fn/repeat.js +0 -48
  714. package/src/utils/inputValidation/apiKey.js +0 -42
  715. package/src/utils/inputValidation/attribute.js +0 -22
  716. package/src/utils/inputValidation/attributes.js +0 -26
  717. package/src/utils/inputValidation/event.js +0 -23
  718. package/src/utils/inputValidation/eventProperties.js +0 -65
  719. package/src/utils/inputValidation/eventValue.js +0 -11
  720. package/src/utils/inputValidation/index.js +0 -11
  721. package/src/utils/inputValidation/isOperational.js +0 -16
  722. package/src/utils/inputValidation/key.js +0 -53
  723. package/src/utils/inputValidation/split.js +0 -42
  724. package/src/utils/inputValidation/splitFilters.js +0 -108
  725. package/src/utils/inputValidation/splits.js +0 -21
  726. package/src/utils/inputValidation/trafficType.js +0 -58
  727. package/src/utils/jwt/hashUserKey.js +0 -11
  728. package/src/utils/jwt/index.js +0 -15
  729. package/src/utils/key/factory.js +0 -34
  730. package/src/utils/key/parser.js +0 -34
  731. package/src/utils/labels/index.js +0 -7
  732. package/src/utils/lang/Errors.js +0 -19
  733. package/src/utils/lang/Sets.js +0 -94
  734. package/src/utils/lang/index.js +0 -291
  735. package/src/utils/localstorage/isAvailable.js +0 -26
  736. package/src/utils/logger/LoggerFactory.js +0 -90
  737. package/src/utils/logger/index.js +0 -93
  738. package/src/utils/lrucache/linkedlist.js +0 -116
  739. package/src/utils/lrucache/lru.spec.js +0 -26
  740. package/src/utils/lrucache/lrucache.js +0 -49
  741. package/src/utils/now/browser.js +0 -29
  742. package/src/utils/now/node.js +0 -21
  743. package/src/utils/now/package.json +0 -4
  744. package/src/utils/promise/thenable.js +0 -1
  745. package/src/utils/promise/timeout.js +0 -38
  746. package/src/utils/promise/wrapper.js +0 -60
  747. package/src/utils/settings/defaults/package.json +0 -4
  748. package/src/utils/settings/impressionsMode.js +0 -15
  749. package/src/utils/settings/index.js +0 -217
  750. package/src/utils/settings/integrations/browser.js +0 -8
  751. package/src/utils/settings/integrations/common.js +0 -32
  752. package/src/utils/settings/integrations/package.json +0 -4
  753. package/src/utils/settings/language/browser.js +0 -17
  754. package/src/utils/settings/language/node.js +0 -17
  755. package/src/utils/settings/language/package.json +0 -4
  756. package/src/utils/settings/mode.js +0 -12
  757. package/src/utils/settings/runtime/browser.js +0 -22
  758. package/src/utils/settings/runtime/package.json +0 -4
  759. package/src/utils/settings/storage/package.json +0 -4
  760. package/src/utils/splits/usesSegments.js +0 -17
  761. package/src/utils/time/index.js +0 -8
  762. package/src/utils/timeTracker/index.js +0 -223
  763. package/src/utils/timeTracker/timer.js +0 -27
@@ -1,188 +0,0 @@
1
- /* eslint-disable no-fallthrough */
2
- import { UTF16ToUTF8, x86Fmix, x86Multiply, x86Rotl } from './common';
3
-
4
- /*!
5
- * +----------------------------------------------------------------------------------+
6
- * | murmurHash3.js v3.0.0 (http://github.com/karanlyons/murmurHash3.js) |
7
- * | A TypeScript/JavaScript implementation of MurmurHash3's hashing algorithms. |
8
- * |----------------------------------------------------------------------------------|
9
- * | Copyright (c) 2012-2020 Karan Lyons. Freely distributable under the MIT license. |
10
- * +----------------------------------------------------------------------------------+
11
- */
12
-
13
- // PUBLIC FUNCTIONS
14
- // ----------------
15
- function hash128x86(key /*: string */, seed /*: number */) /*: string */ {
16
- //
17
- // Given a string and an optional seed as an int, returns a 128 bit
18
- // hash using the x86 flavor of MurmurHash3, as an unsigned hex.
19
- //
20
-
21
- key = key || '';
22
- seed = seed || 0;
23
-
24
- var remainder = key.length % 16;
25
- var bytes = key.length - remainder;
26
-
27
- var h1 = seed;
28
- var h2 = seed;
29
- var h3 = seed;
30
- var h4 = seed;
31
-
32
- var k1 = 0;
33
- var k2 = 0;
34
- var k3 = 0;
35
- var k4 = 0;
36
-
37
- var c1 = 0x239b961b;
38
- var c2 = 0xab0e9789;
39
- var c3 = 0x38b34ae5;
40
- var c4 = 0xa1e38b93;
41
-
42
- for (var i = 0; i < bytes; i = i + 16) {
43
- k1 = ((key.charCodeAt(i) & 0xff)) | ((key.charCodeAt(i + 1) & 0xff) << 8) | ((key.charCodeAt(i + 2) & 0xff) << 16) | ((key.charCodeAt(i + 3) & 0xff) << 24);
44
- k2 = ((key.charCodeAt(i + 4) & 0xff)) | ((key.charCodeAt(i + 5) & 0xff) << 8) | ((key.charCodeAt(i + 6) & 0xff) << 16) | ((key.charCodeAt(i + 7) & 0xff) << 24);
45
- k3 = ((key.charCodeAt(i + 8) & 0xff)) | ((key.charCodeAt(i + 9) & 0xff) << 8) | ((key.charCodeAt(i + 10) & 0xff) << 16) | ((key.charCodeAt(i + 11) & 0xff) << 24);
46
- k4 = ((key.charCodeAt(i + 12) & 0xff)) | ((key.charCodeAt(i + 13) & 0xff) << 8) | ((key.charCodeAt(i + 14) & 0xff) << 16) | ((key.charCodeAt(i + 15) & 0xff) << 24);
47
-
48
- k1 = x86Multiply(k1, c1);
49
- k1 = x86Rotl(k1, 15);
50
- k1 = x86Multiply(k1, c2);
51
- h1 ^= k1;
52
-
53
- h1 = x86Rotl(h1, 19);
54
- h1 += h2;
55
- h1 = x86Multiply(h1, 5) + 0x561ccd1b;
56
-
57
- k2 = x86Multiply(k2, c2);
58
- k2 = x86Rotl(k2, 16);
59
- k2 = x86Multiply(k2, c3);
60
- h2 ^= k2;
61
-
62
- h2 = x86Rotl(h2, 17);
63
- h2 += h3;
64
- h2 = x86Multiply(h2, 5) + 0x0bcaa747;
65
-
66
- k3 = x86Multiply(k3, c3);
67
- k3 = x86Rotl(k3, 17);
68
- k3 = x86Multiply(k3, c4);
69
- h3 ^= k3;
70
-
71
- h3 = x86Rotl(h3, 15);
72
- h3 += h4;
73
- h3 = x86Multiply(h3, 5) + 0x96cd1c35;
74
-
75
- k4 = x86Multiply(k4, c4);
76
- k4 = x86Rotl(k4, 18);
77
- k4 = x86Multiply(k4, c1);
78
- h4 ^= k4;
79
-
80
- h4 = x86Rotl(h4, 13);
81
- h4 += h1;
82
- h4 = x86Multiply(h4, 5) + 0x32ac3b17;
83
- }
84
-
85
- k1 = 0;
86
- k2 = 0;
87
- k3 = 0;
88
- k4 = 0;
89
-
90
- switch (remainder) {
91
- case 15:
92
- k4 ^= key.charCodeAt(i + 14) << 16;
93
-
94
- case 14:
95
- k4 ^= key.charCodeAt(i + 13) << 8;
96
-
97
- case 13:
98
- k4 ^= key.charCodeAt(i + 12);
99
- k4 = x86Multiply(k4, c4);
100
- k4 = x86Rotl(k4, 18);
101
- k4 = x86Multiply(k4, c1);
102
- h4 ^= k4;
103
-
104
- case 12:
105
- k3 ^= key.charCodeAt(i + 11) << 24;
106
-
107
- case 11:
108
- k3 ^= key.charCodeAt(i + 10) << 16;
109
-
110
- case 10:
111
- k3 ^= key.charCodeAt(i + 9) << 8;
112
-
113
- case 9:
114
- k3 ^= key.charCodeAt(i + 8);
115
- k3 = x86Multiply(k3, c3);
116
- k3 = x86Rotl(k3, 17);
117
- k3 = x86Multiply(k3, c4);
118
- h3 ^= k3;
119
-
120
- case 8:
121
- k2 ^= key.charCodeAt(i + 7) << 24;
122
-
123
- case 7:
124
- k2 ^= key.charCodeAt(i + 6) << 16;
125
-
126
- case 6:
127
- k2 ^= key.charCodeAt(i + 5) << 8;
128
-
129
- case 5:
130
- k2 ^= key.charCodeAt(i + 4);
131
- k2 = x86Multiply(k2, c2);
132
- k2 = x86Rotl(k2, 16);
133
- k2 = x86Multiply(k2, c3);
134
- h2 ^= k2;
135
-
136
- case 4:
137
- k1 ^= key.charCodeAt(i + 3) << 24;
138
-
139
- case 3:
140
- k1 ^= key.charCodeAt(i + 2) << 16;
141
-
142
- case 2:
143
- k1 ^= key.charCodeAt(i + 1) << 8;
144
-
145
- case 1:
146
- k1 ^= key.charCodeAt(i);
147
- k1 = x86Multiply(k1, c1);
148
- k1 = x86Rotl(k1, 15);
149
- k1 = x86Multiply(k1, c2);
150
- h1 ^= k1;
151
- }
152
-
153
- h1 ^= key.length;
154
- h2 ^= key.length;
155
- h3 ^= key.length;
156
- h4 ^= key.length;
157
-
158
- h1 += h2;
159
- h1 += h3;
160
- h1 += h4;
161
- h2 += h1;
162
- h3 += h1;
163
- h4 += h1;
164
-
165
- h1 = x86Fmix(h1);
166
- h2 = x86Fmix(h2);
167
- h3 = x86Fmix(h3);
168
- h4 = x86Fmix(h4);
169
-
170
- h1 += h2;
171
- h1 += h3;
172
- h1 += h4;
173
- h2 += h1;
174
- h3 += h1;
175
- h4 += h1;
176
-
177
- return ('00000000' + (h1 >>> 0).toString(16)).slice(-8) + ('00000000' + (h2 >>> 0).toString(16)).slice(-8) + ('00000000' + (h3 >>> 0).toString(16)).slice(-8) + ('00000000' + (h4 >>> 0).toString(16)).slice(-8);
178
- }
179
-
180
- /**
181
- * x86 version of Murmur3 for 128bits.
182
- * Used by hashImpression128 because in JS it is more efficient than the x64 version, no matter the underlying OS/CPU arch.
183
- *
184
- * @param {string} str
185
- */
186
- export function hash128(str /*: string */, seed /*: number */) /*: string */ {
187
- return hash128x86(UTF16ToUTF8(str), seed >>> 0);
188
- }
@@ -1,34 +0,0 @@
1
- import { hash128 } from './murmur3_128';
2
-
3
- /**
4
- * Use instead of parseInt, to not lose precision when converting big integers (greater than 2^53 - 1)
5
- */
6
- function hex2dec(s /*: string */) /*: string */ {
7
- let i, j, digits = [0], carry;
8
- for (i = 0; i < s.length; i += 1) {
9
- carry = parseInt(s.charAt(i), 16);
10
- for (j = digits.length - 1; j >= 0; j -= 1) {
11
- digits[j] = digits[j] * 16 + carry;
12
- carry = digits[j] / 10 | 0;
13
- digits[j] %= 10;
14
- }
15
- while (carry > 0) {
16
- digits.unshift(carry % 10);
17
- carry = carry / 10 | 0;
18
- }
19
- }
20
- return digits.join('');
21
- }
22
-
23
- /**
24
- * Gets the higher 64 bits of the x64 version of Murmur3 for 128bits, as decimal and hexadecimal number strings.
25
- * Used for MySegments channel V2 notifications.
26
- * @param {string} str
27
- */
28
- export function hash64(str /*: string */) /*: { hex: string, dec: string } */ {
29
- const hex = hash128(str).slice(0, 16);
30
- return {
31
- hex, // BoundedFetchRequest notification
32
- dec: hex2dec(hex) // KeyList notification
33
- };
34
- }
@@ -1,111 +0,0 @@
1
- /*
2
- Trimmed version of "utfx" library (https://www.npmjs.com/package/utfx/v/1.0.1) used to encode,
3
- decode and convert UTF8 / UTF16 in JavaScript, with the minimal methods used by the SDK.
4
-
5
- utfx (c) 2014 Daniel Wirtz <dcode@dcode.io>
6
- Released under the Apache License, Version 2.0
7
- see: https://github.com/dcodeIO/utfx for details
8
- */
9
-
10
- /**
11
- * Encodes UTF8 code points to UTF8 bytes.
12
- * @param {(!function():number|null) | number} src Code points source, either as a function returning the next code point
13
- * respectively `null` if there are no more code points left or a single numeric code point.
14
- * @param {!function(number)} dst Bytes destination as a function successively called with the next byte
15
- * @expose
16
- */
17
- function encodeUTF8(src, dst) {
18
- var cp = null;
19
- if (typeof src === 'number')
20
- cp = src, src = function () { return null; };
21
- while (cp !== null || (cp = src()) !== null) {
22
- if (cp < 0x80)
23
- dst(cp & 0x7F);
24
- else if (cp < 0x800)
25
- dst(((cp >> 6) & 0x1F) | 0xC0), dst((cp & 0x3F) | 0x80);
26
- else if (cp < 0x10000)
27
- dst(((cp >> 12) & 0x0F) | 0xE0), dst(((cp >> 6) & 0x3F) | 0x80), dst((cp & 0x3F) | 0x80);
28
- else
29
- dst(((cp >> 18) & 0x07) | 0xF0), dst(((cp >> 12) & 0x3F) | 0x80), dst(((cp >> 6) & 0x3F) | 0x80), dst((cp & 0x3F) | 0x80);
30
- cp = null;
31
- }
32
- }
33
-
34
- /**
35
- * Converts UTF16 characters to UTF8 code points.
36
- * @param {!function():number|null} src Characters source as a function returning the next char code respectively
37
- * `null` if there are no more characters left.
38
- * @param {!function(number)} dst Code points destination as a function successively called with each converted code
39
- * point.
40
- * @expose
41
- */
42
- function UTF16toUTF8(src, dst) {
43
- var c1, c2 = null;
44
- // eslint-disable-next-line no-constant-condition
45
- while (true) {
46
- if ((c1 = c2 !== null ? c2 : src()) === null)
47
- break;
48
- if (c1 >= 0xD800 && c1 <= 0xDFFF) {
49
- if ((c2 = src()) !== null) {
50
- if (c2 >= 0xDC00 && c2 <= 0xDFFF) {
51
- dst((c1 - 0xD800) * 0x400 + c2 - 0xDC00 + 0x10000);
52
- c2 = null; continue;
53
- }
54
- }
55
- }
56
- dst(c1);
57
- }
58
- if (c2 !== null) dst(c2);
59
- }
60
-
61
- /**
62
- * Converts and encodes UTF16 characters to UTF8 bytes.
63
- * @param {!function():number|null} src Characters source as a function returning the next char code respectively `null`
64
- * if there are no more characters left.
65
- * @param {!function(number)} dst Bytes destination as a function successively called with the next byte.
66
- * @expose
67
- */
68
- export function encodeUTF16toUTF8(src, dst) {
69
- UTF16toUTF8(src, function (cp) {
70
- encodeUTF8(cp, dst);
71
- });
72
- }
73
-
74
- /**
75
- * String.fromCharCode reference for compile time renaming.
76
- * @type {!function(...[number]):string}
77
- * @inner
78
- */
79
- var stringFromCharCode = String.fromCharCode;
80
-
81
- /**
82
- * Creates a source function for a string.
83
- * @param {string} s String to read from
84
- * @returns {!function():number|null} Source function returning the next char code respectively `null` if there are
85
- * no more characters left.
86
- * @throws {TypeError} If the argument is invalid
87
- * @expose
88
- */
89
- export function stringSource(s) {
90
- if (typeof s !== 'string')
91
- throw TypeError('Illegal argument: ' + (typeof s));
92
- var i = 0; return function () {
93
- return i >= s.length ? null : s.charCodeAt(i++);
94
- };
95
- }
96
-
97
- /**
98
- * Creates a destination function for a string.
99
- * @returns {function(number=):undefined|string} Destination function successively called with the next char code.
100
- * Returns the final string when called without arguments.
101
- * @expose
102
- */
103
- export function stringDestination() {
104
- const cs = [], ps = []; return function () {
105
- if (arguments.length === 0)
106
- return ps.join('') + stringFromCharCode.apply(String, cs);
107
- if (cs.length + arguments.length > 1024)
108
- ps.push(stringFromCharCode.apply(String, cs)), cs.length = 0;
109
- Array.prototype.push.apply(cs, arguments);
110
- };
111
- }
@@ -1,148 +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 Engine from '../';
18
- import thenable from '../../utils/promise/thenable';
19
- import * as LabelsConstants from '../../utils/labels';
20
- import { CONTROL } from '../../utils/constants';
21
-
22
- const treatmentException = {
23
- treatment: CONTROL,
24
- label: LabelsConstants.EXCEPTION,
25
- config: null
26
- };
27
-
28
- export function evaluateFeature(
29
- key,
30
- splitName,
31
- attributes,
32
- storage
33
- ) {
34
- let stringifiedSplit;
35
-
36
- try {
37
- stringifiedSplit = storage.splits.getSplit(splitName);
38
- } catch (e) {
39
- // the only scenario where getSplit can throw an error is when the storage
40
- // is redis and there is a connection issue and we can't retrieve the split
41
- // to be evaluated
42
- return Promise.resolve(treatmentException);
43
- }
44
-
45
- if (thenable(stringifiedSplit)) {
46
- return stringifiedSplit.then((result) => getEvaluation(
47
- result,
48
- key,
49
- attributes,
50
- storage
51
- ));
52
- }
53
-
54
- return getEvaluation(
55
- stringifiedSplit,
56
- key,
57
- attributes,
58
- storage
59
- );
60
- }
61
-
62
- export function evaluateFeatures(
63
- key,
64
- splitNames,
65
- attributes,
66
- storage
67
- ) {
68
- let stringifiedSplits;
69
- const evaluations = {};
70
-
71
- try {
72
- stringifiedSplits = storage.splits.fetchMany(splitNames);
73
- } catch (e) {
74
- // the only scenario where fetchMany can throw an error is when the storage
75
- // is redis and there is a connection issue and we can't retrieve the split
76
- // to be evaluated
77
- splitNames.forEach(splitName => {
78
- evaluations[splitName] = treatmentException;
79
- });
80
- return Promise.resolve(evaluations);
81
- }
82
-
83
- return (thenable(stringifiedSplits)) ?
84
- stringifiedSplits.then(splits => getEvaluations(splitNames, splits, key, attributes, storage)) :
85
- getEvaluations(splitNames, stringifiedSplits, key, attributes, storage);
86
- }
87
-
88
- function getEvaluation(
89
- stringifiedSplit,
90
- key,
91
- attributes,
92
- storage
93
- ) {
94
- let evaluation = {
95
- treatment: CONTROL,
96
- label: LabelsConstants.SPLIT_NOT_FOUND,
97
- config: null
98
- };
99
-
100
- if (stringifiedSplit) {
101
- const splitJSON = JSON.parse(stringifiedSplit);
102
- const split = Engine.parse(splitJSON, storage);
103
- evaluation = split.getTreatment(key, attributes, evaluateFeature);
104
-
105
- // If the storage is async and the evaluated split uses segment, evaluation is thenable
106
- if (thenable(evaluation)) {
107
- return evaluation.then(result => {
108
- result.changeNumber = split.getChangeNumber();
109
- result.config = splitJSON.configurations && splitJSON.configurations[result.treatment] || null;
110
-
111
- return result;
112
- });
113
- } else {
114
- evaluation.changeNumber = split.getChangeNumber(); // Always sync and optional
115
- evaluation.config = splitJSON.configurations && splitJSON.configurations[evaluation.treatment] || null;
116
- }
117
- }
118
-
119
- return evaluation;
120
- }
121
-
122
- function getEvaluations(
123
- splitNames,
124
- splits,
125
- key,
126
- attributes,
127
- storage
128
- ) {
129
- const result = {};
130
- const thenables = [];
131
- splitNames.forEach(splitName => {
132
- const evaluation = getEvaluation(
133
- splits[splitName],
134
- key,
135
- attributes,
136
- storage
137
- );
138
- if (thenable(evaluation)) {
139
- thenables.push(evaluation.then(res => {
140
- result[splitName] = res;
141
- }));
142
- } else {
143
- result[splitName] = evaluation;
144
- }
145
- });
146
-
147
- return thenables.length > 0 ? Promise.all(thenables).then(() => result) : result;
148
- }
@@ -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 { get } from '../utils/lang';
19
- import parser from './parser';
20
- import keyParser from '../utils/key/parser';
21
- import thenable from '../utils/promise/thenable';
22
- import * as LabelsConstants from '../utils/labels';
23
- import { CONTROL } from '../utils/constants';
24
-
25
- function defaults(inst) {
26
- // in case we don't have a default treatment in the instanciation, use 'control'
27
- if (typeof inst.baseInfo.defaultTreatment !== 'string') {
28
- inst.baseInfo.defaultTreatment = CONTROL;
29
- }
30
- }
31
-
32
- function evaluationResult(result, defaultTreatment) {
33
- return {
34
- treatment: get(result, 'treatment', defaultTreatment),
35
- label: get(result, 'label', LabelsConstants.NO_CONDITION_MATCH)
36
- };
37
- }
38
-
39
- function Split(baseInfo, evaluator) {
40
- if (!(this instanceof Split)) {
41
- return new Split(baseInfo, evaluator);
42
- }
43
-
44
- this.baseInfo = baseInfo;
45
- this.evaluator = evaluator;
46
-
47
- defaults(this);
48
- }
49
-
50
- Split.parse = function parse(splitFlatStructure, storage) {
51
- const conditions = splitFlatStructure.conditions;
52
- const evaluator = parser(conditions, storage);
53
-
54
- return new Split(objectAssign({}, splitFlatStructure), evaluator);
55
- };
56
-
57
- Split.prototype.getKey = function getKey() {
58
- return this.baseInfo.name;
59
- };
60
-
61
- Split.prototype.getTreatment = function getTreatment(key, attributes, splitEvaluator) {
62
- const {
63
- killed,
64
- seed,
65
- defaultTreatment,
66
- trafficAllocation,
67
- trafficAllocationSeed,
68
- algo
69
- } = this.baseInfo;
70
- let parsedKey;
71
- let treatment;
72
- let label;
73
-
74
- try {
75
- parsedKey = keyParser(key);
76
- } catch (err) {
77
- return {
78
- treatment: CONTROL,
79
- label: LabelsConstants.EXCEPTION
80
- };
81
- }
82
-
83
- if (this.isGarbage()) {
84
- treatment = CONTROL;
85
- label = LabelsConstants.SPLIT_ARCHIVED;
86
- } else if (killed) {
87
- treatment = defaultTreatment;
88
- label = LabelsConstants.SPLIT_KILLED;
89
- } else {
90
- const evaluation = this.evaluator(
91
- parsedKey,
92
- seed,
93
- trafficAllocation,
94
- trafficAllocationSeed,
95
- attributes,
96
- algo,
97
- splitEvaluator
98
- );
99
-
100
- // Evaluation could be async, so we should handle that case checking for a
101
- // thenable object
102
- if (thenable(evaluation)) {
103
- return evaluation.then(result => evaluationResult(result, defaultTreatment));
104
- } else {
105
- return evaluationResult(evaluation, defaultTreatment);
106
- }
107
- }
108
-
109
- return {
110
- treatment,
111
- label
112
- };
113
- };
114
-
115
- Split.prototype.isGarbage = function isGarbage() {
116
- return this.baseInfo.status === 'ARCHIVED';
117
- };
118
-
119
- Split.prototype.getChangeNumber = function getChangeNumber() {
120
- return this.baseInfo.changeNumber;
121
- };
122
-
123
- export default Split;
@@ -1,29 +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 logFactory from '../../utils/logger';
17
- const log = logFactory('splitio-engine:matcher');
18
-
19
- function allMatcher(runtimeAttr /*: string */) /*: boolean */ {
20
- log.debug('[allMatcher] is always true');
21
-
22
- return runtimeAttr != null;
23
- }
24
-
25
- function allMatcherContext() {
26
- return allMatcher;
27
- }
28
-
29
- export default allMatcherContext;
@@ -1,30 +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 logFactory from '../../utils/logger';
17
- const log = logFactory('splitio-engine:matcher');
18
-
19
- function betweenMatcherContext(ruleVO /*: betweenObject */) /*: Function */ {
20
- return function betweenMatcher(runtimeAttr /*: number */) /*: boolean */ {
21
-
22
- let isBetween = runtimeAttr >= ruleVO.start && runtimeAttr <= ruleVO.end;
23
-
24
- log.debug(`[betweenMatcher] is ${runtimeAttr} between ${ruleVO.start} and ${ruleVO.end}? ${isBetween}`);
25
-
26
- return isBetween;
27
- };
28
- }
29
-
30
- export default betweenMatcherContext;
@@ -1,29 +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 logFactory from '../../utils/logger';
17
- const log = logFactory('splitio-engine:matcher');
18
-
19
- function booleanMatcherContext(ruleAttr /*: bool */) /*: Function */ {
20
- return function booleanMatcher(runtimeAttr /*: bool */) /*: bool */ {
21
- let booleanMatches = ruleAttr === runtimeAttr;
22
-
23
- log.debug(`[booleanMatcher] ${ruleAttr} === ${runtimeAttr}`);
24
-
25
- return booleanMatches;
26
- };
27
- }
28
-
29
- export default booleanMatcherContext;