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

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 (759) hide show
  1. package/CHANGES.txt +3 -0
  2. package/es/client/attributesDecoration.js +116 -0
  3. package/es/client/browser.js +39 -0
  4. package/es/client/client.js +155 -0
  5. package/es/client/inputValidation.js +117 -0
  6. package/es/client/node.js +6 -0
  7. package/es/{factory → client}/package.json +0 -0
  8. package/es/engine/combiners/and.js +54 -0
  9. package/es/engine/combiners/ifelseif.js +73 -0
  10. package/es/engine/condition/index.js +62 -0
  11. package/es/engine/convertions/index.js +29 -0
  12. package/es/engine/engine/index.js +60 -0
  13. package/es/engine/engine/legacy.js +77 -0
  14. package/es/engine/engine/murmur3/common.js +40 -0
  15. package/es/engine/engine/murmur3/murmur3.js +83 -0
  16. package/es/engine/engine/murmur3/murmur3_128.js +250 -0
  17. package/es/engine/engine/murmur3/murmur3_128_x86.js +183 -0
  18. package/es/engine/engine/murmur3/murmur3_64.js +52 -0
  19. package/es/engine/engine/murmur3/utfx.js +112 -0
  20. package/es/engine/evaluator/index.js +111 -0
  21. package/es/engine/index.js +112 -0
  22. package/es/engine/matchers/all.js +32 -0
  23. package/es/engine/matchers/between.js +35 -0
  24. package/es/engine/matchers/boolean.js +35 -0
  25. package/es/engine/matchers/cont_all.js +51 -0
  26. package/es/engine/matchers/cont_any.js +47 -0
  27. package/es/engine/matchers/cont_str.js +38 -0
  28. package/es/engine/matchers/dependency.js +50 -0
  29. package/es/engine/matchers/eq.js +35 -0
  30. package/es/engine/matchers/eq_set.js +49 -0
  31. package/es/engine/matchers/ew.js +38 -0
  32. package/es/engine/matchers/gte.js +35 -0
  33. package/es/engine/matchers/index.js +65 -0
  34. package/es/engine/matchers/lte.js +35 -0
  35. package/es/engine/matchers/part_of.js +49 -0
  36. package/es/engine/matchers/segment.js +39 -0
  37. package/es/engine/matchers/string.js +44 -0
  38. package/es/engine/matchers/sw.js +38 -0
  39. package/es/engine/matchers/types.js +48 -0
  40. package/es/engine/matchers/whitelist.js +36 -0
  41. package/es/engine/parser/index.js +69 -0
  42. package/es/engine/parser/segments.js +22 -0
  43. package/es/engine/transforms/matcherGroup.js +43 -0
  44. package/es/engine/transforms/matchers.js +109 -0
  45. package/es/engine/transforms/segment.js +28 -0
  46. package/es/engine/transforms/set.js +20 -0
  47. package/es/engine/transforms/unaryNumeric.js +20 -0
  48. package/es/engine/transforms/whitelist.js +22 -0
  49. package/es/engine/treatments/index.js +67 -0
  50. package/es/engine/value/index.js +54 -0
  51. package/es/engine/value/sanitize.js +125 -0
  52. package/es/events/index.js +65 -0
  53. package/es/factory/offline.js +50 -0
  54. package/es/factory/online.js +113 -0
  55. package/es/impressions/counter.js +52 -0
  56. package/es/impressions/hasher/buildKey.js +3 -0
  57. package/es/impressions/hasher/hashImpression128.js +5 -0
  58. package/es/impressions/hasher/hashImpression32.js +5 -0
  59. package/es/impressions/observer/browser.js +9 -0
  60. package/es/impressions/observer/node.js +9 -0
  61. package/es/impressions/observer/observer.js +21 -0
  62. package/es/{platform/getEventSource → impressions/observer}/package.json +0 -0
  63. package/es/index.js +132 -1
  64. package/es/integrations/browser.js +62 -0
  65. package/es/integrations/ga/GaToSplit.js +246 -0
  66. package/es/integrations/ga/SplitToGa.js +127 -0
  67. package/es/integrations/node.js +3 -0
  68. package/es/{platform/getFetch → integrations}/package.json +0 -0
  69. package/es/listeners/browser.js +157 -0
  70. package/es/listeners/node.js +65 -0
  71. package/es/{platform → listeners}/package.json +0 -0
  72. package/es/manager/index.js +104 -0
  73. package/es/metrics/Collectors.js +100 -0
  74. package/es/metrics/index.js +157 -0
  75. package/es/producer/browser/Partial.js +103 -0
  76. package/es/producer/browser.js +70 -0
  77. package/es/producer/fetcher/MySegments.js +47 -0
  78. package/es/producer/fetcher/SegmentChanges.js +52 -0
  79. package/es/producer/fetcher/SplitChanges.js +46 -0
  80. package/es/producer/node.js +130 -0
  81. package/es/producer/offline/browser.js +26 -0
  82. package/es/producer/offline/node.js +26 -0
  83. package/es/{settings → producer/offline}/package.json +0 -0
  84. package/{lib/factory → es/producer}/package.json +0 -0
  85. package/es/producer/task.js +50 -0
  86. package/es/producer/updater/MySegments.js +108 -0
  87. package/es/producer/updater/SegmentChanges.js +135 -0
  88. package/es/producer/updater/SplitChanges.js +131 -0
  89. package/es/producer/updater/SplitChangesFromFeatures.js +21 -0
  90. package/es/producer/updater/SplitChangesFromFileSystem.js +21 -0
  91. package/es/producer/updater/SplitChangesFromObject.js +73 -0
  92. package/es/readiness/index.js +123 -0
  93. package/es/readiness/statusManager.js +114 -0
  94. package/es/services/auth/auth.js +25 -0
  95. package/es/services/auth/index.js +2 -0
  96. package/es/services/events/bulk.js +22 -0
  97. package/es/services/events/index.js +17 -0
  98. package/{src/platform → es/services}/getEventSource/browser.js +2 -2
  99. package/es/{platform → services}/getEventSource/node.js +1 -1
  100. package/{lib/platform → es/services}/getEventSource/package.json +0 -0
  101. package/es/{platform → services}/getFetch/browser.js +1 -1
  102. package/es/{platform → services}/getFetch/node.js +1 -1
  103. package/{lib/platform → es/services}/getFetch/package.json +0 -0
  104. package/es/services/impressions/bulk.js +26 -0
  105. package/es/services/impressions/count.js +7 -0
  106. package/es/services/impressions/dto.js +73 -0
  107. package/es/services/impressions/index.js +17 -0
  108. package/es/services/impressions/post.js +22 -0
  109. package/es/services/metrics/counters.js +24 -0
  110. package/es/services/metrics/dto.js +38 -0
  111. package/es/services/metrics/index.js +17 -0
  112. package/es/services/metrics/times.js +24 -0
  113. package/es/services/mySegments/get.js +26 -0
  114. package/es/services/mySegments/index.js +17 -0
  115. package/es/services/request/index.js +43 -0
  116. package/es/services/request/options/browser.js +18 -0
  117. package/es/{platform → services}/request/options/node.js +2 -2
  118. package/{lib/platform → es/services/request/options}/package.json +0 -0
  119. package/es/services/segmentChanges/get.js +21 -0
  120. package/es/services/segmentChanges/index.js +17 -0
  121. package/es/services/splitChanges/get.js +19 -0
  122. package/es/services/splitChanges/index.js +17 -0
  123. package/es/services/splitChanges/offline/browser.js +63 -0
  124. package/es/services/splitChanges/offline/node.js +176 -0
  125. package/{lib/settings → es/services/splitChanges/offline}/package.json +0 -0
  126. package/es/services/splitChanges/offline/parseCondition.js +43 -0
  127. package/es/services/transport/index.js +51 -0
  128. package/es/storage/AttributesCache/InMemory.js +85 -0
  129. package/es/storage/BaseMetricsAsyncCache.js +23 -0
  130. package/es/storage/CountCache/InMemory.js +48 -0
  131. package/es/storage/CountCache/InRedis.js +42 -0
  132. package/es/storage/EventsCache/InMemory.js +109 -0
  133. package/es/storage/EventsCache/InRedis.js +65 -0
  134. package/es/storage/ImpressionsCache/InMemory.js +71 -0
  135. package/es/storage/ImpressionsCache/InRedis.js +73 -0
  136. package/es/storage/Keys.js +125 -0
  137. package/es/storage/KeysLocalStorage.js +58 -0
  138. package/es/storage/LatencyCache/InMemory.js +56 -0
  139. package/es/storage/LatencyCache/InRedis.js +44 -0
  140. package/es/storage/LatencyCache/findIndex.js +2 -0
  141. package/es/storage/Meta.js +7 -0
  142. package/es/storage/RedisAdapter.js +198 -0
  143. package/es/storage/SegmentCache/InLocalStorage/index.js +162 -0
  144. package/es/storage/SegmentCache/InMemory/browser.js +107 -0
  145. package/es/storage/SegmentCache/InMemory/node.js +82 -0
  146. package/{src/factory → es/storage/SegmentCache/InMemory}/package.json +0 -0
  147. package/es/storage/SegmentCache/InRedis/index.js +81 -0
  148. package/es/storage/SplitCache/InLocalStorage.js +332 -0
  149. package/es/storage/SplitCache/InMemory.js +162 -0
  150. package/es/storage/SplitCache/InRedis.js +214 -0
  151. package/es/storage/SplitCache/killLocally.js +35 -0
  152. package/es/storage/browser.js +101 -0
  153. package/es/storage/node.js +81 -0
  154. package/{src/platform/getEventSource → es/storage}/package.json +0 -0
  155. package/es/sync/AuthClient/index.js +34 -0
  156. package/es/sync/PushManager/index.js +315 -0
  157. package/es/sync/PushManager/mySegmentsV2utils.js +76 -0
  158. package/es/sync/PushManager/pushRequirements/browser.js +23 -0
  159. package/es/sync/PushManager/pushRequirements/node.js +18 -0
  160. package/{src/platform/getFetch → es/sync/PushManager/pushRequirements}/package.json +0 -0
  161. package/es/sync/SSEClient/index.js +93 -0
  162. package/es/sync/SSEHandler/NotificationKeeper.js +97 -0
  163. package/es/sync/SSEHandler/NotificationParser.js +31 -0
  164. package/es/sync/SSEHandler/index.js +110 -0
  165. package/es/sync/SegmentUpdateWorker/browser.js +74 -0
  166. package/es/sync/SegmentUpdateWorker/node.js +79 -0
  167. package/{src/platform → es/sync/SegmentUpdateWorker}/package.json +0 -0
  168. package/es/sync/SplitUpdateWorker/index.js +86 -0
  169. package/es/sync/browser.js +125 -0
  170. package/es/sync/constants.js +42 -0
  171. package/es/sync/node.js +60 -0
  172. package/{src/settings → es/sync}/package.json +0 -0
  173. package/es/trackers/event.js +53 -0
  174. package/es/trackers/impressions.js +132 -0
  175. package/es/umd.js +1 -2
  176. package/es/utils/backoff/index.js +51 -0
  177. package/es/utils/base64/browser.js +19 -0
  178. package/es/utils/base64/node.js +19 -0
  179. package/es/utils/base64/package.json +4 -0
  180. package/es/utils/binarySearch/index.js +50 -0
  181. package/es/utils/constants/index.js +38 -0
  182. package/es/utils/context/constants.js +30 -0
  183. package/es/utils/context/index.js +101 -0
  184. package/es/utils/decompress/index.js +476 -0
  185. package/es/utils/fn/repeat.js +58 -0
  186. package/es/utils/inputValidation/apiKey.js +39 -0
  187. package/es/utils/inputValidation/attribute.js +22 -0
  188. package/es/utils/inputValidation/attributes.js +19 -0
  189. package/es/utils/inputValidation/event.js +23 -0
  190. package/es/utils/inputValidation/eventProperties.js +69 -0
  191. package/es/utils/inputValidation/eventValue.js +9 -0
  192. package/es/utils/inputValidation/index.js +11 -0
  193. package/es/utils/inputValidation/isOperational.js +14 -0
  194. package/es/utils/inputValidation/key.js +50 -0
  195. package/es/utils/inputValidation/split.js +47 -0
  196. package/es/utils/inputValidation/splitFilters.js +121 -0
  197. package/es/utils/inputValidation/splits.js +27 -0
  198. package/es/utils/inputValidation/trafficType.js +55 -0
  199. package/es/utils/jwt/hashUserKey.js +11 -0
  200. package/es/utils/jwt/index.js +14 -0
  201. package/es/utils/key/factory.js +38 -0
  202. package/es/utils/key/parser.js +34 -0
  203. package/es/utils/labels/index.js +7 -0
  204. package/es/utils/lang/Errors.js +41 -0
  205. package/es/utils/lang/Sets.js +114 -0
  206. package/es/utils/lang/index.js +305 -0
  207. package/es/utils/localstorage/isAvailable.js +26 -0
  208. package/es/utils/logger/LoggerFactory.js +86 -0
  209. package/es/utils/logger/index.js +97 -0
  210. package/es/utils/lrucache/linkedlist.js +122 -0
  211. package/es/utils/lrucache/lru.spec.js +24 -0
  212. package/es/utils/lrucache/lrucache.js +80 -0
  213. package/es/utils/now/browser.js +27 -0
  214. package/es/utils/now/node.js +19 -0
  215. package/es/utils/now/package.json +4 -0
  216. package/es/utils/promise/thenable.js +3 -0
  217. package/es/utils/promise/timeout.js +34 -0
  218. package/es/utils/promise/wrapper.js +58 -0
  219. package/es/{settings → utils/settings}/defaults/browser.js +2 -5
  220. package/es/{settings → utils/settings}/defaults/node.js +2 -5
  221. package/es/utils/settings/defaults/package.json +4 -0
  222. package/es/utils/settings/impressionsMode.js +16 -0
  223. package/es/utils/settings/index.js +194 -0
  224. package/es/utils/settings/integrations/browser.js +8 -0
  225. package/es/utils/settings/integrations/common.js +30 -0
  226. package/es/utils/settings/integrations/node.js +7 -0
  227. package/es/utils/settings/integrations/package.json +4 -0
  228. package/es/utils/settings/language/browser.js +16 -0
  229. package/es/utils/settings/language/node.js +16 -0
  230. package/es/utils/settings/language/package.json +4 -0
  231. package/es/utils/settings/mode.js +10 -0
  232. package/es/utils/settings/runtime/browser.js +21 -0
  233. package/es/{settings → utils/settings}/runtime/node.js +4 -6
  234. package/es/utils/settings/runtime/package.json +4 -0
  235. package/es/{settings → utils/settings}/storage/browser.js +17 -16
  236. package/es/{settings → utils/settings}/storage/node.js +16 -25
  237. package/es/utils/settings/storage/package.json +4 -0
  238. package/es/utils/splits/usesSegments.js +21 -0
  239. package/es/utils/time/index.js +8 -0
  240. package/es/utils/timeTracker/index.js +216 -0
  241. package/es/utils/timeTracker/timer.js +25 -0
  242. package/lib/client/attributesDecoration.js +128 -0
  243. package/lib/client/browser.js +50 -0
  244. package/lib/client/client.js +174 -0
  245. package/lib/client/inputValidation.js +129 -0
  246. package/lib/client/node.js +14 -0
  247. package/lib/client/package.json +4 -0
  248. package/lib/engine/combiners/and.js +65 -0
  249. package/lib/engine/combiners/ifelseif.js +88 -0
  250. package/lib/engine/condition/index.js +76 -0
  251. package/lib/engine/convertions/index.js +36 -0
  252. package/lib/engine/engine/index.js +71 -0
  253. package/lib/engine/engine/legacy.js +83 -0
  254. package/lib/engine/engine/murmur3/common.js +52 -0
  255. package/lib/engine/engine/murmur3/murmur3.js +90 -0
  256. package/lib/engine/engine/murmur3/murmur3_128.js +256 -0
  257. package/lib/engine/engine/murmur3/murmur3_128_x86.js +189 -0
  258. package/lib/engine/engine/murmur3/murmur3_64.js +57 -0
  259. package/lib/engine/engine/murmur3/utfx.js +121 -0
  260. package/lib/engine/evaluator/index.js +129 -0
  261. package/lib/engine/index.js +128 -0
  262. package/lib/engine/matchers/all.js +41 -0
  263. package/lib/engine/matchers/between.js +44 -0
  264. package/lib/engine/matchers/boolean.js +44 -0
  265. package/lib/engine/matchers/cont_all.js +61 -0
  266. package/lib/engine/matchers/cont_any.js +57 -0
  267. package/lib/engine/matchers/cont_str.js +48 -0
  268. package/lib/engine/matchers/dependency.js +60 -0
  269. package/lib/engine/matchers/eq.js +44 -0
  270. package/lib/engine/matchers/eq_set.js +59 -0
  271. package/lib/engine/matchers/ew.js +48 -0
  272. package/lib/engine/matchers/gte.js +44 -0
  273. package/lib/engine/matchers/index.js +90 -0
  274. package/lib/engine/matchers/lte.js +44 -0
  275. package/lib/engine/matchers/part_of.js +59 -0
  276. package/lib/engine/matchers/segment.js +49 -0
  277. package/lib/engine/matchers/string.js +53 -0
  278. package/lib/engine/matchers/sw.js +48 -0
  279. package/lib/engine/matchers/types.js +57 -0
  280. package/lib/engine/matchers/whitelist.js +46 -0
  281. package/lib/engine/parser/index.js +84 -0
  282. package/lib/engine/parser/segments.js +28 -0
  283. package/lib/engine/transforms/matcherGroup.js +54 -0
  284. package/lib/engine/transforms/matchers.js +124 -0
  285. package/lib/engine/transforms/segment.js +34 -0
  286. package/lib/engine/transforms/set.js +26 -0
  287. package/lib/engine/transforms/unaryNumeric.js +26 -0
  288. package/lib/engine/transforms/whitelist.js +28 -0
  289. package/lib/engine/treatments/index.js +73 -0
  290. package/lib/engine/value/index.js +64 -0
  291. package/lib/engine/value/sanitize.js +137 -0
  292. package/lib/events/index.js +80 -0
  293. package/lib/factory/offline.js +62 -0
  294. package/lib/factory/online.js +129 -0
  295. package/lib/impressions/counter.js +61 -0
  296. package/lib/impressions/hasher/buildKey.js +8 -0
  297. package/lib/impressions/hasher/hashImpression128.js +12 -0
  298. package/lib/impressions/hasher/hashImpression32.js +14 -0
  299. package/lib/impressions/observer/browser.js +19 -0
  300. package/lib/impressions/observer/node.js +19 -0
  301. package/lib/impressions/observer/observer.js +29 -0
  302. package/lib/impressions/observer/package.json +4 -0
  303. package/lib/index.js +151 -3
  304. package/lib/integrations/browser.js +72 -0
  305. package/lib/integrations/ga/GaToSplit.js +267 -0
  306. package/lib/integrations/ga/SplitToGa.js +138 -0
  307. package/lib/integrations/node.js +9 -0
  308. package/lib/integrations/package.json +4 -0
  309. package/lib/listeners/browser.js +173 -0
  310. package/lib/listeners/node.js +74 -0
  311. package/lib/listeners/package.json +4 -0
  312. package/lib/manager/index.js +115 -0
  313. package/lib/metrics/Collectors.js +118 -0
  314. package/lib/metrics/index.js +182 -0
  315. package/lib/producer/browser/Partial.js +114 -0
  316. package/lib/producer/browser.js +82 -0
  317. package/lib/producer/fetcher/MySegments.js +59 -0
  318. package/lib/producer/fetcher/SegmentChanges.js +62 -0
  319. package/lib/producer/fetcher/SplitChanges.js +58 -0
  320. package/lib/producer/node.js +142 -0
  321. package/lib/producer/offline/browser.js +35 -0
  322. package/lib/producer/offline/node.js +35 -0
  323. package/lib/producer/offline/package.json +4 -0
  324. package/lib/producer/package.json +4 -0
  325. package/lib/producer/task.js +61 -0
  326. package/lib/producer/updater/MySegments.js +119 -0
  327. package/lib/producer/updater/SegmentChanges.js +148 -0
  328. package/lib/producer/updater/SplitChanges.js +145 -0
  329. package/lib/producer/updater/SplitChangesFromFeatures.js +30 -0
  330. package/lib/producer/updater/SplitChangesFromFileSystem.js +30 -0
  331. package/lib/producer/updater/SplitChangesFromObject.js +84 -0
  332. package/lib/readiness/index.js +132 -0
  333. package/lib/readiness/statusManager.js +124 -0
  334. package/lib/services/auth/auth.js +32 -0
  335. package/lib/services/auth/index.js +11 -0
  336. package/lib/services/events/bulk.js +31 -0
  337. package/lib/services/events/index.js +26 -0
  338. package/lib/{platform → services}/getEventSource/browser.js +1 -1
  339. package/lib/{platform → services}/getEventSource/node.js +1 -1
  340. package/lib/services/getEventSource/package.json +4 -0
  341. package/lib/{platform → services}/getFetch/browser.js +1 -1
  342. package/lib/{platform → services}/getFetch/node.js +1 -1
  343. package/lib/services/getFetch/package.json +4 -0
  344. package/lib/services/impressions/bulk.js +36 -0
  345. package/lib/services/impressions/count.js +16 -0
  346. package/lib/services/impressions/dto.js +81 -0
  347. package/lib/services/impressions/index.js +26 -0
  348. package/lib/services/impressions/post.js +31 -0
  349. package/lib/services/metrics/counters.js +33 -0
  350. package/lib/services/metrics/dto.js +46 -0
  351. package/lib/services/metrics/index.js +26 -0
  352. package/lib/services/metrics/times.js +33 -0
  353. package/lib/services/mySegments/get.js +35 -0
  354. package/lib/services/mySegments/index.js +26 -0
  355. package/lib/services/request/index.js +53 -0
  356. package/lib/services/request/options/browser.js +23 -0
  357. package/lib/{platform → services}/request/options/node.js +2 -2
  358. package/lib/services/request/options/package.json +4 -0
  359. package/lib/services/segmentChanges/get.js +29 -0
  360. package/lib/services/segmentChanges/index.js +26 -0
  361. package/lib/services/splitChanges/get.js +27 -0
  362. package/lib/services/splitChanges/index.js +26 -0
  363. package/lib/services/splitChanges/offline/browser.js +71 -0
  364. package/lib/services/splitChanges/offline/node.js +189 -0
  365. package/lib/services/splitChanges/offline/package.json +4 -0
  366. package/lib/services/splitChanges/offline/parseCondition.js +49 -0
  367. package/lib/services/transport/index.js +62 -0
  368. package/lib/storage/AttributesCache/InMemory.js +93 -0
  369. package/lib/storage/BaseMetricsAsyncCache.js +28 -0
  370. package/lib/storage/CountCache/InMemory.js +54 -0
  371. package/lib/storage/CountCache/InRedis.js +50 -0
  372. package/lib/storage/EventsCache/InMemory.js +118 -0
  373. package/lib/storage/EventsCache/InRedis.js +74 -0
  374. package/lib/storage/ImpressionsCache/InMemory.js +77 -0
  375. package/lib/storage/ImpressionsCache/InRedis.js +79 -0
  376. package/lib/storage/Keys.js +132 -0
  377. package/lib/storage/KeysLocalStorage.js +69 -0
  378. package/lib/storage/LatencyCache/InMemory.js +64 -0
  379. package/lib/storage/LatencyCache/InRedis.js +53 -0
  380. package/lib/storage/LatencyCache/findIndex.js +12 -0
  381. package/lib/storage/Meta.js +12 -0
  382. package/lib/storage/RedisAdapter.js +212 -0
  383. package/lib/storage/SegmentCache/InLocalStorage/index.js +171 -0
  384. package/lib/storage/SegmentCache/InMemory/browser.js +113 -0
  385. package/lib/storage/SegmentCache/InMemory/node.js +89 -0
  386. package/lib/storage/SegmentCache/InMemory/package.json +4 -0
  387. package/lib/storage/SegmentCache/InRedis/index.js +87 -0
  388. package/lib/storage/SplitCache/InLocalStorage.js +344 -0
  389. package/lib/storage/SplitCache/InMemory.js +172 -0
  390. package/lib/storage/SplitCache/InRedis.js +224 -0
  391. package/lib/storage/SplitCache/killLocally.js +42 -0
  392. package/lib/storage/browser.js +122 -0
  393. package/lib/storage/node.js +104 -0
  394. package/lib/storage/package.json +4 -0
  395. package/lib/sync/AuthClient/index.js +44 -0
  396. package/lib/sync/PushManager/index.js +340 -0
  397. package/lib/sync/PushManager/mySegmentsV2utils.js +87 -0
  398. package/lib/sync/PushManager/pushRequirements/browser.js +30 -0
  399. package/lib/sync/PushManager/pushRequirements/node.js +25 -0
  400. package/lib/sync/PushManager/pushRequirements/package.json +4 -0
  401. package/lib/sync/SSEClient/index.js +101 -0
  402. package/lib/sync/SSEHandler/NotificationKeeper.js +104 -0
  403. package/lib/sync/SSEHandler/NotificationParser.js +39 -0
  404. package/lib/sync/SSEHandler/index.js +121 -0
  405. package/lib/sync/SegmentUpdateWorker/browser.js +81 -0
  406. package/lib/sync/SegmentUpdateWorker/node.js +86 -0
  407. package/lib/sync/SegmentUpdateWorker/package.json +4 -0
  408. package/lib/sync/SplitUpdateWorker/index.js +93 -0
  409. package/lib/sync/browser.js +139 -0
  410. package/lib/sync/constants.js +59 -0
  411. package/lib/sync/node.js +71 -0
  412. package/lib/sync/package.json +4 -0
  413. package/lib/trackers/event.js +64 -0
  414. package/lib/trackers/impressions.js +146 -0
  415. package/lib/umd.js +0 -1
  416. package/lib/utils/backoff/index.js +57 -0
  417. package/lib/utils/base64/browser.js +26 -0
  418. package/lib/utils/base64/node.js +26 -0
  419. package/lib/utils/base64/package.json +4 -0
  420. package/lib/utils/binarySearch/index.js +56 -0
  421. package/lib/utils/constants/index.js +60 -0
  422. package/lib/utils/context/constants.js +49 -0
  423. package/lib/utils/context/index.js +111 -0
  424. package/lib/utils/decompress/index.js +483 -0
  425. package/lib/utils/fn/repeat.js +64 -0
  426. package/lib/utils/inputValidation/apiKey.js +51 -0
  427. package/lib/utils/inputValidation/attribute.js +32 -0
  428. package/lib/utils/inputValidation/attributes.js +32 -0
  429. package/lib/utils/inputValidation/event.js +33 -0
  430. package/lib/utils/inputValidation/eventProperties.js +78 -0
  431. package/lib/utils/inputValidation/eventValue.js +19 -0
  432. package/lib/utils/inputValidation/index.js +48 -0
  433. package/lib/utils/inputValidation/isOperational.js +25 -0
  434. package/lib/utils/inputValidation/key.js +59 -0
  435. package/lib/utils/inputValidation/split.js +60 -0
  436. package/lib/utils/inputValidation/splitFilters.js +134 -0
  437. package/lib/utils/inputValidation/splits.js +38 -0
  438. package/lib/utils/inputValidation/trafficType.js +68 -0
  439. package/lib/utils/jwt/hashUserKey.js +19 -0
  440. package/lib/utils/jwt/index.js +19 -0
  441. package/lib/utils/key/factory.js +46 -0
  442. package/lib/utils/key/parser.js +42 -0
  443. package/lib/utils/labels/index.js +18 -0
  444. package/lib/utils/lang/Errors.js +58 -0
  445. package/lib/utils/lang/Sets.js +127 -0
  446. package/lib/utils/lang/index.js +350 -0
  447. package/lib/utils/localstorage/isAvailable.js +31 -0
  448. package/lib/utils/logger/LoggerFactory.js +98 -0
  449. package/lib/utils/logger/index.js +109 -0
  450. package/lib/utils/lrucache/linkedlist.js +132 -0
  451. package/lib/utils/lrucache/lru.spec.js +30 -0
  452. package/lib/utils/lrucache/lrucache.js +88 -0
  453. package/lib/utils/now/browser.js +33 -0
  454. package/lib/utils/now/node.js +24 -0
  455. package/lib/utils/now/package.json +4 -0
  456. package/lib/utils/promise/thenable.js +10 -0
  457. package/lib/utils/promise/timeout.js +40 -0
  458. package/lib/utils/promise/wrapper.js +63 -0
  459. package/{src → lib/utils}/settings/defaults/browser.js +6 -6
  460. package/{src → lib/utils}/settings/defaults/node.js +6 -6
  461. package/lib/utils/settings/defaults/package.json +4 -0
  462. package/lib/utils/settings/impressionsMode.js +26 -0
  463. package/lib/utils/settings/index.js +214 -0
  464. package/lib/utils/settings/integrations/browser.js +17 -0
  465. package/lib/utils/settings/integrations/common.js +40 -0
  466. package/lib/utils/settings/integrations/node.js +13 -0
  467. package/lib/utils/settings/integrations/package.json +4 -0
  468. package/lib/utils/settings/language/browser.js +22 -0
  469. package/lib/utils/settings/language/node.js +22 -0
  470. package/lib/utils/settings/language/package.json +4 -0
  471. package/lib/utils/settings/mode.js +16 -0
  472. package/lib/utils/settings/runtime/browser.js +26 -0
  473. package/lib/{settings → utils/settings}/runtime/node.js +5 -7
  474. package/lib/utils/settings/runtime/package.json +4 -0
  475. package/lib/{settings → utils/settings}/storage/browser.js +24 -20
  476. package/lib/{settings → utils/settings}/storage/node.js +17 -26
  477. package/lib/utils/settings/storage/package.json +4 -0
  478. package/lib/utils/splits/usesSegments.js +27 -0
  479. package/lib/utils/time/index.js +12 -0
  480. package/lib/utils/timeTracker/index.js +213 -0
  481. package/lib/utils/timeTracker/timer.js +33 -0
  482. package/package.json +15 -19
  483. package/src/client/attributesDecoration.js +112 -0
  484. package/src/client/browser.js +41 -0
  485. package/src/client/client.js +131 -0
  486. package/src/client/inputValidation.js +130 -0
  487. package/src/client/node.js +8 -0
  488. package/src/client/package.json +4 -0
  489. package/src/engine/combiners/and.js +55 -0
  490. package/src/engine/combiners/ifelseif.js +74 -0
  491. package/src/engine/condition/index.js +65 -0
  492. package/src/engine/convertions/index.js +22 -0
  493. package/src/engine/engine/index.js +63 -0
  494. package/src/engine/engine/legacy.js +66 -0
  495. package/src/engine/engine/murmur3/common.js +54 -0
  496. package/src/engine/engine/murmur3/murmur3.js +79 -0
  497. package/src/engine/engine/murmur3/murmur3_128.js +273 -0
  498. package/src/engine/engine/murmur3/murmur3_128_x86.js +188 -0
  499. package/src/engine/engine/murmur3/murmur3_64.js +34 -0
  500. package/src/engine/engine/murmur3/utfx.js +111 -0
  501. package/src/engine/evaluator/index.js +148 -0
  502. package/src/engine/index.js +123 -0
  503. package/src/engine/matchers/all.js +29 -0
  504. package/src/engine/matchers/between.js +30 -0
  505. package/src/engine/matchers/boolean.js +29 -0
  506. package/src/engine/matchers/cont_all.js +40 -0
  507. package/src/engine/matchers/cont_any.js +35 -0
  508. package/src/engine/matchers/cont_str.js +31 -0
  509. package/src/engine/matchers/dependency.js +52 -0
  510. package/src/engine/matchers/eq.js +30 -0
  511. package/src/engine/matchers/eq_set.js +37 -0
  512. package/src/engine/matchers/ew.js +31 -0
  513. package/src/engine/matchers/gte.js +30 -0
  514. package/src/engine/matchers/index.js +71 -0
  515. package/src/engine/matchers/lte.js +30 -0
  516. package/src/engine/matchers/part_of.js +37 -0
  517. package/src/engine/matchers/segment.js +41 -0
  518. package/src/engine/matchers/string.js +39 -0
  519. package/src/engine/matchers/sw.js +31 -0
  520. package/src/engine/matchers/types.js +52 -0
  521. package/src/engine/matchers/whitelist.js +30 -0
  522. package/src/engine/parser/index.js +79 -0
  523. package/src/engine/parser/segments.js +31 -0
  524. package/src/engine/transforms/matcherGroup.js +45 -0
  525. package/src/engine/transforms/matchers.js +118 -0
  526. package/src/engine/transforms/segment.js +23 -0
  527. package/src/engine/transforms/set.js +20 -0
  528. package/src/engine/transforms/unaryNumeric.js +20 -0
  529. package/src/engine/transforms/whitelist.js +22 -0
  530. package/src/engine/treatments/index.js +67 -0
  531. package/src/engine/value/index.js +53 -0
  532. package/src/engine/value/sanitize.js +117 -0
  533. package/src/events/index.js +62 -0
  534. package/src/factory/offline.js +60 -0
  535. package/src/factory/online.js +127 -0
  536. package/src/impressions/counter.js +43 -0
  537. package/src/impressions/hasher/buildKey.js +3 -0
  538. package/src/impressions/hasher/hashImpression128.js +6 -0
  539. package/src/impressions/hasher/hashImpression32.js +6 -0
  540. package/src/impressions/observer/browser.js +8 -0
  541. package/src/impressions/observer/node.js +8 -0
  542. package/src/impressions/observer/observer.js +17 -0
  543. package/src/impressions/observer/package.json +4 -0
  544. package/src/index.js +140 -1
  545. package/src/integrations/browser.js +57 -0
  546. package/src/integrations/ga/GaToSplit.js +278 -0
  547. package/src/integrations/ga/SplitToGa.js +125 -0
  548. package/src/integrations/node.js +4 -0
  549. package/src/integrations/package.json +4 -0
  550. package/src/listeners/browser.js +137 -0
  551. package/src/listeners/node.js +59 -0
  552. package/src/listeners/package.json +4 -0
  553. package/src/manager/index.js +103 -0
  554. package/src/metrics/Collectors.js +77 -0
  555. package/src/metrics/index.js +174 -0
  556. package/src/producer/browser/Partial.js +104 -0
  557. package/src/producer/browser.js +82 -0
  558. package/src/producer/fetcher/MySegments.js +40 -0
  559. package/src/producer/fetcher/SegmentChanges.js +52 -0
  560. package/src/producer/fetcher/SplitChanges.js +39 -0
  561. package/src/producer/node.js +142 -0
  562. package/src/producer/offline/browser.js +28 -0
  563. package/src/producer/offline/node.js +28 -0
  564. package/src/producer/offline/package.json +4 -0
  565. package/src/producer/package.json +4 -0
  566. package/src/producer/task.js +57 -0
  567. package/src/producer/updater/MySegments.js +104 -0
  568. package/src/producer/updater/SegmentChanges.js +126 -0
  569. package/src/producer/updater/SplitChanges.js +138 -0
  570. package/src/producer/updater/SplitChangesFromFeatures.js +23 -0
  571. package/src/producer/updater/SplitChangesFromFileSystem.js +23 -0
  572. package/src/producer/updater/SplitChangesFromObject.js +81 -0
  573. package/src/readiness/index.js +125 -0
  574. package/src/readiness/statusManager.js +121 -0
  575. package/src/services/auth/auth.js +21 -0
  576. package/src/services/auth/index.js +3 -0
  577. package/src/services/events/bulk.js +23 -0
  578. package/src/services/events/index.js +18 -0
  579. package/{es/platform → src/services}/getEventSource/browser.js +1 -1
  580. package/src/{platform → services}/getEventSource/node.js +2 -2
  581. package/src/services/getEventSource/package.json +4 -0
  582. package/src/{platform → services}/getFetch/browser.js +2 -2
  583. package/src/{platform → services}/getFetch/node.js +1 -1
  584. package/src/services/getFetch/package.json +4 -0
  585. package/src/services/impressions/bulk.js +26 -0
  586. package/src/services/impressions/count.js +8 -0
  587. package/src/services/impressions/dto.js +71 -0
  588. package/src/services/impressions/index.js +18 -0
  589. package/src/services/impressions/post.js +23 -0
  590. package/src/services/metrics/counters.js +25 -0
  591. package/src/services/metrics/dto.js +44 -0
  592. package/src/services/metrics/index.js +18 -0
  593. package/src/services/metrics/times.js +25 -0
  594. package/src/services/mySegments/get.js +27 -0
  595. package/src/services/mySegments/index.js +18 -0
  596. package/src/services/request/index.js +43 -0
  597. package/src/services/request/options/browser.js +18 -0
  598. package/src/{platform → services}/request/options/node.js +2 -2
  599. package/src/services/request/options/package.json +4 -0
  600. package/src/services/segmentChanges/get.js +20 -0
  601. package/src/services/segmentChanges/index.js +18 -0
  602. package/src/services/splitChanges/get.js +20 -0
  603. package/src/services/splitChanges/index.js +18 -0
  604. package/src/services/splitChanges/offline/browser.js +66 -0
  605. package/src/services/splitChanges/offline/node.js +190 -0
  606. package/src/services/splitChanges/offline/package.json +4 -0
  607. package/src/services/splitChanges/offline/parseCondition.js +52 -0
  608. package/src/services/transport/index.js +44 -0
  609. package/src/storage/AttributesCache/InMemory.js +76 -0
  610. package/src/storage/BaseMetricsAsyncCache.js +14 -0
  611. package/src/storage/CountCache/InMemory.js +48 -0
  612. package/src/storage/CountCache/InRedis.js +32 -0
  613. package/src/storage/EventsCache/InMemory.js +99 -0
  614. package/src/storage/EventsCache/InRedis.js +62 -0
  615. package/src/storage/ImpressionsCache/InMemory.js +62 -0
  616. package/src/storage/ImpressionsCache/InRedis.js +65 -0
  617. package/src/storage/Keys.js +122 -0
  618. package/src/storage/KeysLocalStorage.js +52 -0
  619. package/src/storage/LatencyCache/InMemory.js +56 -0
  620. package/src/storage/LatencyCache/InRedis.js +35 -0
  621. package/src/storage/LatencyCache/findIndex.js +7 -0
  622. package/src/storage/Meta.js +7 -0
  623. package/src/storage/RedisAdapter.js +170 -0
  624. package/src/storage/SegmentCache/InLocalStorage/index.js +140 -0
  625. package/src/storage/SegmentCache/InMemory/browser.js +99 -0
  626. package/src/storage/SegmentCache/InMemory/node.js +84 -0
  627. package/src/storage/SegmentCache/InMemory/package.json +4 -0
  628. package/src/storage/SegmentCache/InRedis/index.js +71 -0
  629. package/src/storage/SplitCache/InLocalStorage.js +324 -0
  630. package/src/storage/SplitCache/InMemory.js +145 -0
  631. package/src/storage/SplitCache/InRedis.js +187 -0
  632. package/src/storage/SplitCache/killLocally.js +33 -0
  633. package/src/storage/browser.js +110 -0
  634. package/src/storage/node.js +83 -0
  635. package/src/storage/package.json +4 -0
  636. package/src/sync/AuthClient/index.js +31 -0
  637. package/src/sync/PushManager/index.js +328 -0
  638. package/src/sync/PushManager/mySegmentsV2utils.js +76 -0
  639. package/src/sync/PushManager/pushRequirements/browser.js +20 -0
  640. package/src/sync/PushManager/pushRequirements/node.js +16 -0
  641. package/src/sync/PushManager/pushRequirements/package.json +4 -0
  642. package/src/sync/SSEClient/index.js +92 -0
  643. package/src/sync/SSEHandler/NotificationKeeper.js +90 -0
  644. package/src/sync/SSEHandler/NotificationParser.js +35 -0
  645. package/src/sync/SSEHandler/index.js +110 -0
  646. package/src/sync/SegmentUpdateWorker/browser.js +67 -0
  647. package/src/sync/SegmentUpdateWorker/node.js +73 -0
  648. package/src/sync/SegmentUpdateWorker/package.json +4 -0
  649. package/src/sync/SplitUpdateWorker/index.js +79 -0
  650. package/src/sync/browser.js +130 -0
  651. package/src/sync/constants.js +43 -0
  652. package/src/sync/node.js +66 -0
  653. package/src/sync/package.json +4 -0
  654. package/src/trackers/event.js +47 -0
  655. package/src/trackers/impressions.js +123 -0
  656. package/src/umd.js +0 -1
  657. package/src/utils/backoff/index.js +46 -0
  658. package/src/utils/base64/browser.js +19 -0
  659. package/src/utils/base64/node.js +19 -0
  660. package/src/utils/base64/package.json +4 -0
  661. package/src/utils/binarySearch/index.js +50 -0
  662. package/src/utils/constants/index.js +41 -0
  663. package/src/utils/context/constants.js +18 -0
  664. package/src/utils/context/index.js +84 -0
  665. package/src/utils/decompress/index.js +428 -0
  666. package/src/utils/fn/repeat.js +48 -0
  667. package/src/utils/inputValidation/apiKey.js +42 -0
  668. package/src/utils/inputValidation/attribute.js +22 -0
  669. package/src/utils/inputValidation/attributes.js +26 -0
  670. package/src/utils/inputValidation/event.js +23 -0
  671. package/src/utils/inputValidation/eventProperties.js +65 -0
  672. package/src/utils/inputValidation/eventValue.js +11 -0
  673. package/src/utils/inputValidation/index.js +11 -0
  674. package/src/utils/inputValidation/isOperational.js +16 -0
  675. package/src/utils/inputValidation/key.js +53 -0
  676. package/src/utils/inputValidation/split.js +42 -0
  677. package/src/utils/inputValidation/splitFilters.js +108 -0
  678. package/src/utils/inputValidation/splits.js +21 -0
  679. package/src/utils/inputValidation/trafficType.js +58 -0
  680. package/src/utils/jwt/hashUserKey.js +11 -0
  681. package/src/utils/jwt/index.js +15 -0
  682. package/src/utils/key/factory.js +34 -0
  683. package/src/utils/key/parser.js +34 -0
  684. package/src/utils/labels/index.js +7 -0
  685. package/src/utils/lang/Errors.js +19 -0
  686. package/src/utils/lang/Sets.js +94 -0
  687. package/src/utils/lang/index.js +291 -0
  688. package/src/utils/localstorage/isAvailable.js +26 -0
  689. package/src/utils/logger/LoggerFactory.js +90 -0
  690. package/src/utils/logger/index.js +93 -0
  691. package/src/utils/lrucache/linkedlist.js +116 -0
  692. package/src/utils/lrucache/lru.spec.js +26 -0
  693. package/src/utils/lrucache/lrucache.js +49 -0
  694. package/src/utils/now/browser.js +29 -0
  695. package/src/utils/now/node.js +21 -0
  696. package/src/utils/now/package.json +4 -0
  697. package/src/utils/promise/thenable.js +1 -0
  698. package/src/utils/promise/timeout.js +38 -0
  699. package/src/utils/promise/wrapper.js +60 -0
  700. package/{lib → src/utils}/settings/defaults/browser.js +3 -13
  701. package/{lib → src/utils}/settings/defaults/node.js +2 -12
  702. package/src/utils/settings/defaults/package.json +4 -0
  703. package/src/utils/settings/impressionsMode.js +15 -0
  704. package/src/utils/settings/index.js +217 -0
  705. package/src/utils/settings/integrations/browser.js +8 -0
  706. package/src/utils/settings/integrations/common.js +32 -0
  707. package/src/{settings → utils/settings}/integrations/node.js +3 -1
  708. package/src/utils/settings/integrations/package.json +4 -0
  709. package/src/utils/settings/language/browser.js +17 -0
  710. package/src/utils/settings/language/node.js +17 -0
  711. package/src/utils/settings/language/package.json +4 -0
  712. package/src/utils/settings/mode.js +12 -0
  713. package/src/utils/settings/runtime/browser.js +22 -0
  714. package/src/{settings → utils/settings}/runtime/node.js +6 -9
  715. package/src/utils/settings/runtime/package.json +4 -0
  716. package/src/{settings → utils/settings}/storage/browser.js +18 -13
  717. package/src/{settings → utils/settings}/storage/node.js +14 -19
  718. package/src/utils/settings/storage/package.json +4 -0
  719. package/src/utils/splits/usesSegments.js +17 -0
  720. package/src/utils/time/index.js +8 -0
  721. package/src/utils/timeTracker/index.js +223 -0
  722. package/src/utils/timeTracker/timer.js +27 -0
  723. package/types/splitio.d.ts +5 -22
  724. package/client/package.json +0 -5
  725. package/es/factory/browser.js +0 -58
  726. package/es/factory/node.js +0 -59
  727. package/es/platform/EventEmitter.js +0 -412
  728. package/es/platform/browser.js +0 -10
  729. package/es/platform/node.js +0 -12
  730. package/es/settings/browser.js +0 -18
  731. package/es/settings/defaults/version.js +0 -1
  732. package/es/settings/integrations/browser.js +0 -5
  733. package/es/settings/integrations/node.js +0 -5
  734. package/es/settings/node.js +0 -20
  735. package/lib/factory/browser.js +0 -79
  736. package/lib/factory/node.js +0 -78
  737. package/lib/platform/EventEmitter.js +0 -417
  738. package/lib/platform/browser.js +0 -21
  739. package/lib/platform/node.js +0 -26
  740. package/lib/settings/browser.js +0 -30
  741. package/lib/settings/defaults/version.js +0 -6
  742. package/lib/settings/integrations/browser.js +0 -14
  743. package/lib/settings/integrations/node.js +0 -12
  744. package/lib/settings/node.js +0 -33
  745. package/server/package.json +0 -5
  746. package/src/.DS_Store +0 -0
  747. package/src/factory/browser.js +0 -74
  748. package/src/factory/node.js +0 -71
  749. package/src/platform/.DS_Store +0 -0
  750. package/src/platform/EventEmitter.js +0 -443
  751. package/src/platform/browser.js +0 -12
  752. package/src/platform/node.js +0 -14
  753. package/src/settings/.DS_Store +0 -0
  754. package/src/settings/browser.js +0 -18
  755. package/src/settings/defaults/version.js +0 -1
  756. package/src/settings/integrations/browser.js +0 -6
  757. package/src/settings/node.js +0 -20
  758. package/types/client/index.d.ts +0 -14
  759. package/types/server/index.d.ts +0 -20
@@ -3,7 +3,7 @@
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
5
  exports.__esModule = true;
6
- exports.getFetch = getFetch;
6
+ exports.default = getFetch;
7
7
 
8
8
  var _unfetch = _interopRequireDefault(require("unfetch"));
9
9
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.__setFetch = __setFetch;
5
- exports.getFetch = getFetch;
5
+ exports.default = getFetch;
6
6
  var nodeFetch;
7
7
 
8
8
  try {
@@ -0,0 +1,4 @@
1
+ {
2
+ "main": "./node.js",
3
+ "browser": "./browser.js"
4
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.default = BULK;
7
+
8
+ var _objectAssign = _interopRequireDefault(require("object-assign"));
9
+
10
+ var _request = _interopRequireDefault(require("../request"));
11
+
12
+ var _constants = require("../../utils/constants");
13
+
14
+ /**
15
+ Copyright 2016 Split Software
16
+
17
+ Licensed under the Apache License, Version 2.0 (the "License");
18
+ you may not use this file except in compliance with the License.
19
+ You may obtain a copy of the License at
20
+
21
+ http://www.apache.org/licenses/LICENSE-2.0
22
+
23
+ Unless required by applicable law or agreed to in writing, software
24
+ distributed under the License is distributed on an "AS IS" BASIS,
25
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
26
+ See the License for the specific language governing permissions and
27
+ limitations under the License.
28
+ **/
29
+ function BULK(settings, params) {
30
+ return (0, _request.default)(settings, '/testImpressions/bulk', (0, _objectAssign.default)({
31
+ method: 'POST'
32
+ }, params), {
33
+ SplitSDKImpressionsMode: settings.sync.impressionsMode === _constants.OPTIMIZED ? _constants.OPTIMIZED : _constants.DEBUG // Adding extra headers to send impressions in OPTIMIZED or DEBUG modes.
34
+
35
+ });
36
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.default = COUNT;
7
+
8
+ var _objectAssign = _interopRequireDefault(require("object-assign"));
9
+
10
+ var _request = _interopRequireDefault(require("../request"));
11
+
12
+ function COUNT(settings, params) {
13
+ return (0, _request.default)(settings, '/testImpressions/count', (0, _objectAssign.default)({
14
+ method: 'POST'
15
+ }, params));
16
+ }
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.fromImpressionsCollector = fromImpressionsCollector;
5
+ exports.fromImpressionsCountCollector = fromImpressionsCountCollector;
6
+
7
+ var _lang = require("../../utils/lang");
8
+
9
+ /**
10
+ Copyright 2016 Split Software
11
+
12
+ Licensed under the Apache License, Version 2.0 (the "License");
13
+ you may not use this file except in compliance with the License.
14
+ You may obtain a copy of the License at
15
+
16
+ http://www.apache.org/licenses/LICENSE-2.0
17
+
18
+ Unless required by applicable law or agreed to in writing, software
19
+ distributed under the License is distributed on an "AS IS" BASIS,
20
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
+ See the License for the specific language governing permissions and
22
+ limitations under the License.
23
+ **/
24
+ function fromImpressionsCollector(collector, settings) {
25
+ var sendLabels = settings.core.labelsEnabled;
26
+ var groupedByFeature = (0, _lang.groupBy)(collector.state(), 'feature');
27
+ var dto = []; // using forOwn instead of for...in since the last also iterates over prototype enumerables
28
+
29
+ (0, _lang.forOwn)(groupedByFeature, function (value, name) {
30
+ dto.push({
31
+ f: name,
32
+ // Test Name
33
+ i: value.map(function (entry) {
34
+ // Key Impressions
35
+ var keyImpression = {
36
+ k: entry.keyName,
37
+ // Key
38
+ t: entry.treatment,
39
+ // Treatment
40
+ m: entry.time,
41
+ // Timestamp
42
+ c: entry.changeNumber // ChangeNumber
43
+
44
+ };
45
+ if (sendLabels) keyImpression.r = entry.label; // Rule
46
+
47
+ if (entry.bucketingKey) keyImpression.b = entry.bucketingKey; // Bucketing Key
48
+
49
+ if (entry.pt) keyImpression.pt = entry.pt;
50
+ return keyImpression;
51
+ })
52
+ });
53
+ });
54
+ return dto;
55
+ }
56
+
57
+ function fromImpressionsCountCollector(collector) {
58
+ var imprCounts = collector ? collector.size() : 0;
59
+ var pf = [];
60
+ if (imprCounts === 0) return pf;
61
+ var impressionsCount = collector.popAll();
62
+ var keys = Object.keys(impressionsCount);
63
+
64
+ for (var i = 0; i < keys.length; i++) {
65
+ var splitted = keys[i].split('::');
66
+ if (splitted.length !== 2) continue;
67
+ var featureName = splitted[0];
68
+ var timeFrame = splitted[1];
69
+ var impressionsInTimeframe = {
70
+ f: featureName,
71
+ // Test Name
72
+ m: Number(timeFrame),
73
+ // Time Frame
74
+ rc: impressionsCount[keys[i]] // Count
75
+
76
+ };
77
+ pf.push(impressionsInTimeframe);
78
+ }
79
+
80
+ return pf;
81
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+
8
+ var _transport = _interopRequireDefault(require("../transport"));
9
+
10
+ /**
11
+ Copyright 2016 Split Software
12
+
13
+ Licensed under the Apache License, Version 2.0 (the "License");
14
+ you may not use this file except in compliance with the License.
15
+ You may obtain a copy of the License at
16
+
17
+ http://www.apache.org/licenses/LICENSE-2.0
18
+
19
+ Unless required by applicable law or agreed to in writing, software
20
+ distributed under the License is distributed on an "AS IS" BASIS,
21
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22
+ See the License for the specific language governing permissions and
23
+ limitations under the License.
24
+ **/
25
+ var _default = _transport.default;
26
+ exports.default = _default;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.default = POST;
7
+
8
+ var _objectAssign = _interopRequireDefault(require("object-assign"));
9
+
10
+ var _request = _interopRequireDefault(require("../request"));
11
+
12
+ /**
13
+ Copyright 2016 Split Software
14
+
15
+ Licensed under the Apache License, Version 2.0 (the "License");
16
+ you may not use this file except in compliance with the License.
17
+ You may obtain a copy of the License at
18
+
19
+ http://www.apache.org/licenses/LICENSE-2.0
20
+
21
+ Unless required by applicable law or agreed to in writing, software
22
+ distributed under the License is distributed on an "AS IS" BASIS,
23
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24
+ See the License for the specific language governing permissions and
25
+ limitations under the License.
26
+ **/
27
+ function POST(settings, params) {
28
+ return (0, _request.default)(settings, '/testImpressions', (0, _objectAssign.default)({
29
+ method: 'POST'
30
+ }, params));
31
+ }
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.default = POST;
7
+
8
+ var _objectAssign = _interopRequireDefault(require("object-assign"));
9
+
10
+ var _request = _interopRequireDefault(require("../request"));
11
+
12
+ /**
13
+ Copyright 2016 Split Software
14
+
15
+ Licensed under the Apache License, Version 2.0 (the "License");
16
+ you may not use this file except in compliance with the License.
17
+ You may obtain a copy of the License at
18
+
19
+ http://www.apache.org/licenses/LICENSE-2.0
20
+
21
+ Unless required by applicable law or agreed to in writing, software
22
+ distributed under the License is distributed on an "AS IS" BASIS,
23
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24
+ See the License for the specific language governing permissions and
25
+ limitations under the License.
26
+ **/
27
+ function POST(settings, params) {
28
+ return (0, _request.default)(settings, '/metrics/counters', (0, _objectAssign.default)({
29
+ method: 'POST'
30
+ }, params, {
31
+ logErrorsAsInfo: true
32
+ }));
33
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.fromLatenciesCollector = fromLatenciesCollector;
5
+ exports.fromCountersCollector = fromCountersCollector;
6
+
7
+ var _lang = require("../../utils/lang");
8
+
9
+ /**
10
+ Copyright 2016 Split Software
11
+
12
+ Licensed under the Apache License, Version 2.0 (the "License");
13
+ you may not use this file except in compliance with the License.
14
+ You may obtain a copy of the License at
15
+
16
+ http://www.apache.org/licenses/LICENSE-2.0
17
+
18
+ Unless required by applicable law or agreed to in writing, software
19
+ distributed under the License is distributed on an "AS IS" BASIS,
20
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
+ See the License for the specific language governing permissions and
22
+ limitations under the License.
23
+ **/
24
+ function fromLatenciesCollector(latenciesCollector) {
25
+ var result = [];
26
+ var metrics = latenciesCollector.toJSON();
27
+ (0, _lang.forOwn)(metrics, function (latencies, key) {
28
+ result.push({
29
+ name: key,
30
+ latencies: latencies
31
+ });
32
+ });
33
+ return result;
34
+ }
35
+
36
+ function fromCountersCollector(countersCollector) {
37
+ var result = [];
38
+ var metrics = countersCollector.toJSON();
39
+ (0, _lang.forOwn)(metrics, function (delta, key) {
40
+ result.push({
41
+ name: key,
42
+ delta: delta
43
+ });
44
+ });
45
+ return result;
46
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+
8
+ var _transport = _interopRequireDefault(require("../transport"));
9
+
10
+ /**
11
+ Copyright 2016 Split Software
12
+
13
+ Licensed under the Apache License, Version 2.0 (the "License");
14
+ you may not use this file except in compliance with the License.
15
+ You may obtain a copy of the License at
16
+
17
+ http://www.apache.org/licenses/LICENSE-2.0
18
+
19
+ Unless required by applicable law or agreed to in writing, software
20
+ distributed under the License is distributed on an "AS IS" BASIS,
21
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22
+ See the License for the specific language governing permissions and
23
+ limitations under the License.
24
+ **/
25
+ var _default = _transport.default;
26
+ exports.default = _default;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.default = POST;
7
+
8
+ var _objectAssign = _interopRequireDefault(require("object-assign"));
9
+
10
+ var _request = _interopRequireDefault(require("../request"));
11
+
12
+ /**
13
+ Copyright 2016 Split Software
14
+
15
+ Licensed under the Apache License, Version 2.0 (the "License");
16
+ you may not use this file except in compliance with the License.
17
+ You may obtain a copy of the License at
18
+
19
+ http://www.apache.org/licenses/LICENSE-2.0
20
+
21
+ Unless required by applicable law or agreed to in writing, software
22
+ distributed under the License is distributed on an "AS IS" BASIS,
23
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24
+ See the License for the specific language governing permissions and
25
+ limitations under the License.
26
+ **/
27
+ function POST(settings, params) {
28
+ return (0, _request.default)(settings, '/metrics/times', (0, _objectAssign.default)({
29
+ method: 'POST'
30
+ }, params, {
31
+ logErrorsAsInfo: true
32
+ }));
33
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
+
5
+ exports.__esModule = true;
6
+ exports.default = GET;
7
+
8
+ var _request = _interopRequireWildcard(require("../request"));
9
+
10
+ var _factory = require("../../utils/key/factory");
11
+
12
+ /**
13
+ Copyright 2016 Split Software
14
+
15
+ Licensed under the Apache License, Version 2.0 (the "License");
16
+ you may not use this file except in compliance with the License.
17
+ You may obtain a copy of the License at
18
+
19
+ http://www.apache.org/licenses/LICENSE-2.0
20
+
21
+ Unless required by applicable law or agreed to in writing, software
22
+ distributed under the License is distributed on an "AS IS" BASIS,
23
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24
+ See the License for the specific language governing permissions and
25
+ limitations under the License.
26
+ **/
27
+ function GET(settings, noCache) {
28
+ /**
29
+ * URI encoding of user keys in order to:
30
+ * - avoid 400 responses (due to URI malformed). E.g.: '/api/mySegments/%'
31
+ * - avoid 404 responses. E.g.: '/api/mySegments/foo/bar'
32
+ * - match user keys with special characters. E.g.: 'foo%bar', 'foo/bar'
33
+ */
34
+ return (0, _request.default)(settings, "/mySegments/" + encodeURIComponent((0, _factory.matching)(settings.core.key)), undefined, noCache ? _request.noCacheExtraHeader : undefined);
35
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+
8
+ var _transport = _interopRequireDefault(require("../transport"));
9
+
10
+ /**
11
+ Copyright 2016 Split Software
12
+
13
+ Licensed under the Apache License, Version 2.0 (the "License");
14
+ you may not use this file except in compliance with the License.
15
+ You may obtain a copy of the License at
16
+
17
+ http://www.apache.org/licenses/LICENSE-2.0
18
+
19
+ Unless required by applicable law or agreed to in writing, software
20
+ distributed under the License is distributed on an "AS IS" BASIS,
21
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22
+ See the License for the specific language governing permissions and
23
+ limitations under the License.
24
+ **/
25
+ var _default = _transport.default;
26
+ exports.default = _default;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.noCacheExtraHeader = exports.default = void 0;
7
+
8
+ var _objectAssign = _interopRequireDefault(require("object-assign"));
9
+
10
+ var _options = _interopRequireDefault(require("./options"));
11
+
12
+ /**
13
+ Copyright 2016 Split Software
14
+
15
+ Licensed under the Apache License, Version 2.0 (the "License");
16
+ you may not use this file except in compliance with the License.
17
+ You may obtain a copy of the License at
18
+
19
+ http://www.apache.org/licenses/LICENSE-2.0
20
+
21
+ Unless required by applicable law or agreed to in writing, software
22
+ distributed under the License is distributed on an "AS IS" BASIS,
23
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24
+ See the License for the specific language governing permissions and
25
+ limitations under the License.
26
+ **/
27
+ function RequestFactory(settings, relativeUrl, params, extraHeaders) {
28
+ var token = settings.core.authorizationKey;
29
+ var version = settings.version;
30
+ var _settings$runtime = settings.runtime,
31
+ ip = _settings$runtime.ip,
32
+ hostname = _settings$runtime.hostname;
33
+ var headers = {};
34
+ var baseline = (0, _options.default)();
35
+ headers['Accept'] = 'application/json';
36
+ headers['Content-Type'] = 'application/json';
37
+ headers['Authorization'] = "Bearer " + token;
38
+ headers['SplitSDKVersion'] = version;
39
+ if (ip) headers['SplitSDKMachineIP'] = ip;
40
+ if (hostname) headers['SplitSDKMachineName'] = hostname;
41
+ if (extraHeaders) (0, _objectAssign.default)(headers, extraHeaders);
42
+ return (0, _objectAssign.default)({
43
+ headers: headers,
44
+ url: settings.url(relativeUrl)
45
+ }, baseline, params);
46
+ }
47
+
48
+ var _default = RequestFactory;
49
+ exports.default = _default;
50
+ var noCacheExtraHeader = {
51
+ 'Cache-Control': 'no-cache'
52
+ };
53
+ exports.noCacheExtraHeader = noCacheExtraHeader;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = getOptions;
5
+
6
+ /**
7
+ Copyright 2016 Split Software
8
+
9
+ Licensed under the Apache License, Version 2.0 (the "License");
10
+ you may not use this file except in compliance with the License.
11
+ You may obtain a copy of the License at
12
+
13
+ http://www.apache.org/licenses/LICENSE-2.0
14
+
15
+ Unless required by applicable law or agreed to in writing, software
16
+ distributed under the License is distributed on an "AS IS" BASIS,
17
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
+ See the License for the specific language governing permissions and
19
+ limitations under the License.
20
+ **/
21
+ function getOptions() {
22
+ return {};
23
+ }
@@ -3,12 +3,12 @@
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
5
  exports.__esModule = true;
6
- exports.getOptions = getOptions;
6
+ exports.default = getOptions;
7
7
 
8
8
  var _https = _interopRequireDefault(require("https"));
9
9
 
10
10
  /**
11
- Copyright 2022 Split Software
11
+ Copyright 2016 Split Software
12
12
 
13
13
  Licensed under the Apache License, Version 2.0 (the "License");
14
14
  you may not use this file except in compliance with the License.
@@ -0,0 +1,4 @@
1
+ {
2
+ "main": "./node.js",
3
+ "browser": "./browser.js"
4
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
+
5
+ exports.__esModule = true;
6
+ exports.default = GET;
7
+
8
+ var _request = _interopRequireWildcard(require("../request"));
9
+
10
+ /**
11
+ Copyright 2016 Split Software
12
+
13
+ Licensed under the Apache License, Version 2.0 (the "License");
14
+ you may not use this file except in compliance with the License.
15
+ You may obtain a copy of the License at
16
+
17
+ http://www.apache.org/licenses/LICENSE-2.0
18
+
19
+ Unless required by applicable law or agreed to in writing, software
20
+ distributed under the License is distributed on an "AS IS" BASIS,
21
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22
+ See the License for the specific language governing permissions and
23
+ limitations under the License.
24
+ **/
25
+ function GET(settings, _ref, noCache) {
26
+ var since = _ref.since,
27
+ segmentName = _ref.segmentName;
28
+ return (0, _request.default)(settings, "/segmentChanges/" + segmentName + "?since=" + since, undefined, noCache ? _request.noCacheExtraHeader : undefined);
29
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+
8
+ var _transport = _interopRequireDefault(require("../transport"));
9
+
10
+ /**
11
+ Copyright 2016 Split Software
12
+
13
+ Licensed under the Apache License, Version 2.0 (the "License");
14
+ you may not use this file except in compliance with the License.
15
+ You may obtain a copy of the License at
16
+
17
+ http://www.apache.org/licenses/LICENSE-2.0
18
+
19
+ Unless required by applicable law or agreed to in writing, software
20
+ distributed under the License is distributed on an "AS IS" BASIS,
21
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22
+ See the License for the specific language governing permissions and
23
+ limitations under the License.
24
+ **/
25
+ var _default = _transport.default;
26
+ exports.default = _default;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
+
5
+ exports.__esModule = true;
6
+ exports.default = GET;
7
+
8
+ var _request = _interopRequireWildcard(require("../request"));
9
+
10
+ /**
11
+ Copyright 2016 Split Software
12
+
13
+ Licensed under the Apache License, Version 2.0 (the "License");
14
+ you may not use this file except in compliance with the License.
15
+ You may obtain a copy of the License at
16
+
17
+ http://www.apache.org/licenses/LICENSE-2.0
18
+
19
+ Unless required by applicable law or agreed to in writing, software
20
+ distributed under the License is distributed on an "AS IS" BASIS,
21
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22
+ See the License for the specific language governing permissions and
23
+ limitations under the License.
24
+ **/
25
+ function GET(settings, since, filterQueryString, noCache) {
26
+ return (0, _request.default)(settings, "/splitChanges?since=" + since + (filterQueryString || ''), undefined, noCache ? _request.noCacheExtraHeader : undefined);
27
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+
8
+ var _transport = _interopRequireDefault(require("../transport"));
9
+
10
+ /**
11
+ Copyright 2016 Split Software
12
+
13
+ Licensed under the Apache License, Version 2.0 (the "License");
14
+ you may not use this file except in compliance with the License.
15
+ You may obtain a copy of the License at
16
+
17
+ http://www.apache.org/licenses/LICENSE-2.0
18
+
19
+ Unless required by applicable law or agreed to in writing, software
20
+ distributed under the License is distributed on an "AS IS" BASIS,
21
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22
+ See the License for the specific language governing permissions and
23
+ limitations under the License.
24
+ **/
25
+ var _default = _transport.default;
26
+ exports.default = _default;