@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,267 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- exports.__esModule = true;
6
- exports.validateIdentities = validateIdentities;
7
- exports.validateEventData = validateEventData;
8
- exports.fixEventTypeId = fixEventTypeId;
9
- exports.default = exports.defaultPrefix = exports.defaultMapper = void 0;
10
-
11
- var _objectAssign = _interopRequireDefault(require("object-assign"));
12
-
13
- var _lang = require("../../utils/lang");
14
-
15
- var _logger = _interopRequireDefault(require("../../utils/logger"));
16
-
17
- var _inputValidation = require("../../utils/inputValidation");
18
-
19
- var logName = 'splitio-ga-to-split',
20
- logNameMapper = logName + ':mapper';
21
- var log = (0, _logger.default)(logName);
22
- /**
23
- * Provides a plugin to use with analytics.js, accounting for the possibility
24
- * that the global command queue has been renamed or not yet defined.
25
- * @param {string} pluginName The plugin name identifier.
26
- * @param {Function} pluginConstructor The plugin constructor function.
27
- */
28
-
29
- function providePlugin(pluginName, pluginConstructor) {
30
- // get reference to global command queue. Init it if not defined yet.
31
- var gaAlias = window.GoogleAnalyticsObject || 'ga';
32
-
33
- window[gaAlias] = window[gaAlias] || function () {
34
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
35
- args[_key] = arguments[_key];
36
- }
37
-
38
- (window[gaAlias].q = window[gaAlias].q || []).push(args);
39
- }; // provides the plugin for use with analytics.js.
40
-
41
-
42
- window[gaAlias]('provide', pluginName, pluginConstructor);
43
- } // Default mapping: object used for building the default mapper from hits to Split events
44
-
45
-
46
- var defaultMapping = {
47
- eventTypeId: {
48
- event: 'eventAction',
49
- social: 'socialAction'
50
- },
51
- eventValue: {
52
- event: 'eventValue',
53
- timing: 'timingValue'
54
- },
55
- eventProperties: {
56
- pageview: ['page'],
57
- screenview: ['screenName'],
58
- event: ['eventCategory', 'eventLabel'],
59
- social: ['socialNetwork', 'socialTarget'],
60
- timing: ['timingCategory', 'timingVar', 'timingLabel'],
61
- exception: ['exDescription', 'exFatal']
62
- }
63
- };
64
- /**
65
- * Build a mapper function based on a mapping object
66
- *
67
- * @param {object} mapping
68
- */
69
-
70
- function mapperBuilder(mapping) {
71
- return function (model) {
72
- var hitType = model.get('hitType');
73
- var eventTypeId = model.get(mapping.eventTypeId[hitType] || 'hitType');
74
- var value = model.get(mapping.eventValue[hitType]);
75
- var properties = {};
76
- var fields = mapping.eventProperties[hitType];
77
-
78
- if (fields) {
79
- for (var i = 0; i < fields.length; i++) {
80
- properties[fields[i]] = model.get(fields[i]);
81
- }
82
- }
83
-
84
- return {
85
- eventTypeId: eventTypeId,
86
- value: value,
87
- properties: properties,
88
- timestamp: Date.now()
89
- };
90
- };
91
- } // exposed for unit testing purposses.
92
-
93
-
94
- var defaultMapper = mapperBuilder(defaultMapping);
95
- exports.defaultMapper = defaultMapper;
96
- var defaultPrefix = 'ga';
97
- /**
98
- * Return a new list of identities removing invalid and duplicated ones.
99
- *
100
- * @param {Array} identities list of identities
101
- * @returns list of valid and unique identities. The list might be empty if `identities` is not an array or all its elements are invalid.
102
- */
103
-
104
- exports.defaultPrefix = defaultPrefix;
105
-
106
- function validateIdentities(identities) {
107
- if (!Array.isArray(identities)) return []; // Remove duplicated identities
108
-
109
- var uniqueIdentities = (0, _lang.unicAsStrings)(identities); // Filter based on rum-agent identities validator
110
-
111
- return uniqueIdentities.filter(function (identity) {
112
- if (!identity) return false;
113
- var maybeKey = identity.key;
114
- var maybeTT = identity.trafficType;
115
- if (!(0, _lang.isString)(maybeKey) && !(0, _lang.numberIsFinite)(maybeKey)) return false;
116
- if (!(0, _lang.isString)(maybeTT)) return false;
117
- return true;
118
- });
119
- }
120
- /**
121
- * Checks if EventData fields (except EventTypeId) are valid, and logs corresponding warnings.
122
- * EventTypeId is validated separately.
123
- *
124
- * @param {EventData} data event data instance to validate. Precondition: data != undefined
125
- * @returns {boolean} Whether the data instance is a valid EventData or not.
126
- */
127
-
128
-
129
- function validateEventData(eventData) {
130
- if (!(0, _inputValidation.validateEvent)(eventData.eventTypeId, logNameMapper)) return false;
131
- if ((0, _inputValidation.validateEventValue)(eventData.value, logNameMapper) === false) return false;
132
-
133
- var _validateEventPropert = (0, _inputValidation.validateEventProperties)(eventData.properties, logNameMapper),
134
- properties = _validateEventPropert.properties;
135
-
136
- if (properties === false) return false;
137
- if (eventData.timestamp && !(0, _lang.numberIsFinite)(eventData.timestamp)) return false;
138
- if (eventData.key && (0, _inputValidation.validateKey)(eventData.key, logNameMapper) === false) return false;
139
- if (eventData.trafficTypeName && (0, _inputValidation.validateTrafficType)(eventData.trafficTypeName, logNameMapper) === false) return false;
140
- return true;
141
- }
142
-
143
- var INVALID_PREFIX_REGEX = /^[^a-zA-Z0-9]+/;
144
- var INVALID_SUBSTRING_REGEX = /[^-_.:a-zA-Z0-9]+/g;
145
- /**
146
- * Fixes the passed string value to comply with EventTypeId format, by removing invalid characters and truncating if necessary.
147
- *
148
- * @param {string} eventTypeId string value to fix.
149
- * @returns {string} Fixed version of `eventTypeId`.
150
- */
151
-
152
- function fixEventTypeId(eventTypeId) {
153
- // return the input eventTypeId if it cannot be fixed
154
- if (!(0, _lang.isString)(eventTypeId) || eventTypeId.length === 0) {
155
- return eventTypeId;
156
- } // replace invalid substrings and truncate
157
-
158
-
159
- var fixed = eventTypeId.replace(INVALID_PREFIX_REGEX, '').replace(INVALID_SUBSTRING_REGEX, '_');
160
- var truncated = fixed.slice(0, 80);
161
- if (truncated.length < fixed.length) log.warn('EventTypeId was truncated because it cannot be more than 80 characters long.');
162
- return truncated;
163
- }
164
- /**
165
- * GaToSplit integration.
166
- * This function provides the SplitTracker plugin to ga command queue.
167
- *
168
- * @param {object} sdkOptions options passed at the SDK integrations settings
169
- * @param {object} storage SDK storage passed to track events
170
- * @param {object} coreSettings core settings used to define an identity if no one provided as SDK or plugin options
171
- */
172
-
173
-
174
- function GaToSplit(sdkOptions, storage, coreSettings) {
175
- var defaultOptions = {
176
- prefix: defaultPrefix,
177
- // We set default identities if key and TT are present in settings.core
178
- identities: coreSettings.key && coreSettings.trafficType ? [{
179
- key: coreSettings.key,
180
- trafficType: coreSettings.trafficType
181
- }] : undefined
182
- };
183
-
184
- var SplitTracker = // Constructor for the SplitTracker plugin.
185
- function SplitTracker(tracker, pluginOptions) {
186
- // precedence of options: SDK options (config.integrations) overwrite pluginOptions (`ga('require', 'splitTracker', pluginOptions)`)
187
- var opts = (0, _objectAssign.default)({}, defaultOptions, sdkOptions, pluginOptions);
188
- this.tracker = tracker; // Validate identities
189
-
190
- var validIdentities = validateIdentities(opts.identities);
191
-
192
- if (validIdentities.length === 0) {
193
- log.warn('No valid identities were provided. Please check that you are passing a valid list of identities or providing a traffic type at the SDK configuration.');
194
- return;
195
- }
196
-
197
- var invalids = validIdentities.length - opts.identities.length;
198
-
199
- if (invalids) {
200
- log.warn(invalids + " identities were discarded because they are invalid or duplicated. Identities must be an array of objects with key and trafficType.");
201
- }
202
-
203
- opts.identities = validIdentities; // Validate prefix
204
-
205
- if (!(0, _lang.isString)(opts.prefix)) {
206
- log.warn('The provided `prefix` was ignored since it is invalid. Please check that you are passing a string object as `prefix`.');
207
- opts.prefix = undefined;
208
- } // Overwrite sendHitTask to perform plugin tasks:
209
- // 1) filter hits
210
- // 2) map hits to Split events
211
- // 3) handle events, i.e., validate and send them to Split BE
212
-
213
-
214
- var originalSendHitTask = tracker.get('sendHitTask');
215
- tracker.set('sendHitTask', function (model) {
216
- originalSendHitTask(model); // filter hit if `hits` flag is false or if it comes from Split-to-GA integration
217
-
218
- if (opts.hits === false || model.get('splitHit')) return;
219
-
220
- try {
221
- if (opts.filter && !opts.filter(model)) return;
222
- } catch (err) {
223
- log.warn("GaToSplit custom filter threw: " + err);
224
- return;
225
- } // map hit into an EventData instance
226
-
227
-
228
- var eventData = defaultMapper(model);
229
-
230
- if (opts.mapper) {
231
- try {
232
- eventData = opts.mapper(model, eventData);
233
- } catch (err) {
234
- log.warn("GaToSplit custom mapper threw: " + err);
235
- return;
236
- }
237
-
238
- if (!eventData) return;
239
- } // Add prefix. Nothing is appended if the prefix is falsy, e.g. undefined or ''.
240
-
241
-
242
- if (opts.prefix) eventData.eventTypeId = opts.prefix + "." + eventData.eventTypeId;
243
- eventData.eventTypeId = fixEventTypeId(eventData.eventTypeId);
244
- if (!validateEventData(eventData)) return; // Store the event
245
-
246
- if (eventData.key && eventData.trafficTypeName) {
247
- storage.events.track(eventData);
248
- } else {
249
- // Store the event for each Key-TT pair (identities), if key and TT is not present in eventData
250
- opts.identities.forEach(function (identity) {
251
- var event = (0, _objectAssign.default)({
252
- key: identity.key,
253
- trafficTypeName: identity.trafficType
254
- }, eventData);
255
- storage.events.track(event);
256
- });
257
- }
258
- });
259
- log.info('Started GA-to-Split integration');
260
- }; // Register the plugin, even if config is invalid, since, if not provided, it will block `ga` command queue.
261
-
262
-
263
- providePlugin('splitTracker', SplitTracker);
264
- }
265
-
266
- var _default = GaToSplit;
267
- exports.default = _default;
@@ -1,138 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- exports.__esModule = true;
6
- exports.default = void 0;
7
-
8
- var _logger = _interopRequireDefault(require("../../utils/logger"));
9
-
10
- var _lang = require("../../utils/lang");
11
-
12
- var _constants = require("../../utils/constants");
13
-
14
- var log = (0, _logger.default)('splitio-split-to-ga');
15
-
16
- var SplitToGa = /*#__PURE__*/function () {
17
- // Default mapper function.
18
- SplitToGa.defaultMapper = function defaultMapper(_ref) {
19
- var type = _ref.type,
20
- payload = _ref.payload;
21
-
22
- switch (type) {
23
- case _constants.SPLIT_IMPRESSION:
24
- return {
25
- hitType: 'event',
26
- eventCategory: 'split-impression',
27
- eventAction: 'Evaluate ' + payload.impression.feature,
28
- eventLabel: 'Treatment: ' + payload.impression.treatment + '. Targeting rule: ' + payload.impression.label + '.',
29
- nonInteraction: true
30
- };
31
-
32
- case _constants.SPLIT_EVENT:
33
- return {
34
- hitType: 'event',
35
- eventCategory: 'split-event',
36
- eventAction: payload.eventTypeId,
37
- eventValue: payload.value,
38
- nonInteraction: true
39
- };
40
- }
41
-
42
- return null;
43
- } // Util to access ga command queue, accounting for the possibility that it has been renamed.
44
- ;
45
-
46
- SplitToGa.getGa = function getGa() {
47
- return typeof window !== 'undefined' ? window[window['GoogleAnalyticsObject'] || 'ga'] : undefined;
48
- }
49
- /**
50
- * Validates if a given object is a UniversalAnalytics.FieldsObject instance, and logs a warning if not.
51
- * It checks that the object contains a `hitType`, since it is the minimal field required to send the hit
52
- * and avoid the GA error `No hit type specified. Aborting hit.`.
53
- * Other validations (e.g., an `event` hitType must have a `eventCategory` and `eventAction`) are handled
54
- * and logged (as warnings or errors depending the case) by GA debugger, but the hit is sent anyway.
55
- *
56
- * @param {UniversalAnalytics.FieldsObject} fieldsObject object to validate.
57
- * @returns {boolean} Whether the data instance is a valid FieldsObject or not.
58
- */
59
- ;
60
-
61
- SplitToGa.validateFieldsObject = function validateFieldsObject(fieldsObject) {
62
- if (fieldsObject && fieldsObject.hitType) return true;
63
- log.warn('your custom mapper returned an invalid FieldsObject instance. It must be an object with at least a `hitType` field.');
64
- return false;
65
- };
66
-
67
- function SplitToGa(options) {
68
- // Check if `ga` object is available
69
- if (typeof SplitToGa.getGa() !== 'function') {
70
- log.warn('`ga` command queue not found. No hits will be sent.'); // Return an empty object to avoid creating a SplitToGa instance
71
-
72
- return {};
73
- }
74
-
75
- this.trackerNames = SplitToGa.defaultTrackerNames;
76
-
77
- if (options) {
78
- if (typeof options.filter === 'function') this.filter = options.filter;
79
- if (typeof options.mapper === 'function') this.mapper = options.mapper; // We strip off duplicated values if we received a `trackerNames` param.
80
- // We don't warn if a tracker does not exist, since the user might create it after the SDK is initialized.
81
- // Note: GA allows to create and get trackers using a string or number as tracker name, and does nothing if other types are used.
82
-
83
- if (Array.isArray(options.trackerNames)) this.trackerNames = (0, _lang.uniq)(options.trackerNames); // No need to validate `impressions` and `events` flags. Any other value than `false` is ignored.
84
-
85
- this.impressions = options.impressions;
86
- this.events = options.events;
87
- }
88
-
89
- log.info('Started Split-to-GA integration');
90
- }
91
-
92
- var _proto = SplitToGa.prototype;
93
-
94
- _proto.queue = function queue(data) {
95
- // access ga command queue via `getGa` method, accounting for the possibility that
96
- // the global `ga` reference was not yet mutated by analytics.js.
97
- var ga = SplitToGa.getGa();
98
-
99
- if (ga) {
100
- if (this.impressions === false && data.type === _constants.SPLIT_IMPRESSION) return;
101
- if (this.events === false && data.type === _constants.SPLIT_EVENT) return;
102
- var fieldsObject;
103
-
104
- try {
105
- // only try/catch filter and mapper, which might be defined by the user
106
- // filter
107
- if (this.filter && !this.filter(data)) return; // map data into a FieldsObject instance
108
-
109
- fieldsObject = SplitToGa.defaultMapper(data);
110
-
111
- if (this.mapper) {
112
- fieldsObject = this.mapper(data, fieldsObject); // don't send the hit if it is falsy or invalid
113
-
114
- if (!fieldsObject || !SplitToGa.validateFieldsObject(fieldsObject)) return;
115
- }
116
- } catch (err) {
117
- log.warn("SplitToGa queue method threw: " + err + ". No hit was sent.");
118
- return;
119
- } // send the hit
120
-
121
-
122
- this.trackerNames.forEach(function (trackerName) {
123
- var sendCommand = trackerName ? trackerName + ".send" : 'send'; // mark the hit as a Split one to avoid the loop.
124
-
125
- fieldsObject.splitHit = true; // Send to GA using our reference to the GA object.
126
-
127
- ga(sendCommand, fieldsObject);
128
- });
129
- }
130
- };
131
-
132
- return SplitToGa;
133
- }(); // A falsy object represents the default tracker
134
-
135
-
136
- SplitToGa.defaultTrackerNames = [''];
137
- var _default = SplitToGa;
138
- exports.default = _default;
@@ -1,9 +0,0 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.default = void 0;
5
-
6
- var integrationsManagerFactory = function integrationsManagerFactory() {};
7
-
8
- var _default = integrationsManagerFactory;
9
- exports.default = _default;
@@ -1,4 +0,0 @@
1
- {
2
- "main": "./node.js",
3
- "browser": "./browser.js"
4
- }
@@ -1,173 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- exports.__esModule = true;
6
- exports.default = void 0;
7
-
8
- var _bulk = _interopRequireDefault(require("../services/events/bulk"));
9
-
10
- var _events = _interopRequireDefault(require("../services/events"));
11
-
12
- var _bulk2 = _interopRequireDefault(require("../services/impressions/bulk"));
13
-
14
- var _count = _interopRequireDefault(require("../services/impressions/count"));
15
-
16
- var _impressions = _interopRequireDefault(require("../services/impressions"));
17
-
18
- var _dto = require("../services/impressions/dto");
19
-
20
- var _logger = _interopRequireDefault(require("../utils/logger"));
21
-
22
- var _constants = require("../utils/constants");
23
-
24
- var _objectAssign = _interopRequireDefault(require("object-assign"));
25
-
26
- var log = (0, _logger.default)('splitio-client:cleanup'); // 'unload' event is used instead of 'beforeunload', since 'unload' is not a cancelable event, so no other listeners can stop the event from occurring.
27
-
28
- var UNLOAD_DOM_EVENT = 'unload';
29
- /**
30
- * We'll listen for 'unload' event over the window object, since it's the standard way to listen page reload and close.
31
- *
32
- */
33
-
34
- var BrowserSignalListener = /*#__PURE__*/function () {
35
- function BrowserSignalListener(context, syncManager) {
36
- this.storage = context.get(context.constants.STORAGE);
37
- this.settings = context.get(context.constants.SETTINGS);
38
- this.syncManager = syncManager;
39
- this.flushData = this.flushData.bind(this);
40
-
41
- if (this.settings.sync.impressionsMode === _constants.OPTIMIZED) {
42
- this.impressionsCounter = context.get(context.constants.IMPRESSIONS_COUNTER);
43
- }
44
- }
45
- /**
46
- * start method.
47
- * Called when SplitFactory is initialized.
48
- * We add a handler on unload events. The handler flushes remaining impressions and events to the backend.
49
- */
50
-
51
-
52
- var _proto = BrowserSignalListener.prototype;
53
-
54
- _proto.start = function start() {
55
- if (typeof window !== 'undefined' && window.addEventListener) {
56
- log.debug('Registering flush handler when unload page event is triggered.');
57
- window.addEventListener(UNLOAD_DOM_EVENT, this.flushData);
58
- }
59
- }
60
- /**
61
- * stop method.
62
- * Called when client is destroyed.
63
- * We need to remove the handler for unload events, since it can break if called when Split context was destroyed.
64
- */
65
- ;
66
-
67
- _proto.stop = function stop() {
68
- if (typeof window !== 'undefined' && window.removeEventListener) {
69
- log.debug('Deregistering flush handler when unload page event is triggered.');
70
- window.removeEventListener(UNLOAD_DOM_EVENT, this.flushData);
71
- }
72
- }
73
- /**
74
- * _flushData method.
75
- * Called when unload event is triggered. It flushed remaining impressions and events to the backend,
76
- * using beacon API if possible, or falling back to regular post transport.
77
- */
78
- ;
79
-
80
- _proto.flushData = function flushData() {
81
- this._flushImpressions();
82
-
83
- this._flushEvents();
84
-
85
- if (this.impressionsCounter) {
86
- this._flushImpressionsCount();
87
- } // Close streaming
88
-
89
-
90
- if (this.syncManager && this.syncManager.pushManager) this.syncManager.pushManager.stop();
91
- };
92
-
93
- _proto._flushImpressions = function _flushImpressions() {
94
- var impressions = this.storage.impressions; // if there are impressions in storage, send them to backend
95
-
96
- if (!impressions.isEmpty()) {
97
- var url = this.settings.url('/testImpressions/beacon');
98
- var impressionsPayload = (0, _dto.fromImpressionsCollector)(impressions, this.settings);
99
- var extraMetadata = {
100
- // sim stands for Sync/Split Impressions Mode
101
- sim: this.settings.sync.impressionsMode === _constants.OPTIMIZED ? _constants.OPTIMIZED : _constants.DEBUG
102
- };
103
-
104
- if (!this._sendBeacon(url, impressionsPayload, extraMetadata)) {
105
- (0, _impressions.default)((0, _bulk2.default)(this.settings, {
106
- body: JSON.stringify(impressionsPayload)
107
- }));
108
- }
109
-
110
- impressions.clear();
111
- }
112
- };
113
-
114
- _proto._flushImpressionsCount = function _flushImpressionsCount() {
115
- var impressionsCountPayload = {
116
- pf: (0, _dto.fromImpressionsCountCollector)(this.impressionsCounter)
117
- };
118
- var imprCounts = impressionsCountPayload.pf.length;
119
- if (imprCounts === 0) return;
120
- var url = this.settings.url('/testImpressions/count/beacon');
121
-
122
- if (!this._sendBeacon(url, impressionsCountPayload)) {
123
- (0, _impressions.default)((0, _count.default)(this.settings, {
124
- body: JSON.stringify(impressionsCountPayload)
125
- }));
126
- }
127
- };
128
-
129
- _proto._flushEvents = function _flushEvents() {
130
- var events = this.storage.events; // if there are events in storage, send them to backend
131
-
132
- if (!events.isEmpty()) {
133
- var url = this.settings.url('/events/beacon');
134
- var eventsPayload = events.toJSON();
135
-
136
- if (!this._sendBeacon(url, eventsPayload)) {
137
- (0, _events.default)((0, _bulk.default)(this.settings, {
138
- body: JSON.stringify(eventsPayload)
139
- }));
140
- }
141
-
142
- events.clear();
143
- }
144
- }
145
- /**
146
- * _sendBeacon method.
147
- * Util method that check if beacon API is available, build the payload and send it.
148
- */
149
- ;
150
-
151
- _proto._sendBeacon = function _sendBeacon(url, data, extraMetadata) {
152
- // eslint-disable-next-line compat/compat
153
- if (typeof navigator !== 'undefined' && navigator.sendBeacon) {
154
- var json = {
155
- entries: data,
156
- token: this.settings.core.authorizationKey,
157
- sdk: this.settings.version
158
- }; // Extend with endpoint specific metadata where needed
159
-
160
- if (extraMetadata) (0, _objectAssign.default)(json, extraMetadata); // Stringify the payload
161
-
162
- var payload = JSON.stringify(json); // eslint-disable-next-line compat/compat
163
-
164
- return navigator.sendBeacon(url, payload);
165
- }
166
-
167
- return false;
168
- };
169
-
170
- return BrowserSignalListener;
171
- }();
172
-
173
- exports.default = BrowserSignalListener;
@@ -1,74 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- exports.__esModule = true;
6
- exports.default = void 0;
7
-
8
- var _logger = _interopRequireDefault(require("../utils/logger"));
9
-
10
- var _thenable = _interopRequireDefault(require("../utils/promise/thenable"));
11
-
12
- var log = (0, _logger.default)('splitio-client:cleanup');
13
- /**
14
- * We'll listen for SIGTERM since it's the standard signal for server shutdown.
15
- *
16
- * If you're stopping the execution yourself via the keyboard, or by calling process.exit,
17
- * you should call the cleanup logic yourself, since we cannot ensure the data is sent after
18
- * the process is already exiting.
19
- */
20
-
21
- var NodeSignalListener = /*#__PURE__*/function () {
22
- function NodeSignalListener() {
23
- this._sigtermHandler = this._sigtermHandler.bind(this);
24
- }
25
-
26
- var _proto = NodeSignalListener.prototype;
27
-
28
- _proto.start = function start(handler) {
29
- this.handler = handler;
30
- log.debug('Registering cleanup handlers.');
31
- process.on('SIGTERM', this._sigtermHandler);
32
- };
33
-
34
- _proto.stop = function stop() {
35
- log.debug('Deregistering cleanup handlers.');
36
- process.removeListener('SIGTERM', this._sigtermHandler);
37
- }
38
- /**
39
- * Call the handler, clean up listeners and emit the signal again.
40
- */
41
- ;
42
-
43
- _proto._sigtermHandler = function _sigtermHandler() {
44
- var _this = this;
45
-
46
- var wrapUp = function wrapUp() {
47
- // Cleaned up, remove handlers.
48
- _this.stop(); // This handler prevented the default behaviour, start again.
49
-
50
-
51
- process.kill(process.pid, 'SIGTERM');
52
- };
53
-
54
- log.debug('Split SDK graceful shutdown after SIGTERM.');
55
- var handlerResult = null;
56
-
57
- try {
58
- handlerResult = this.handler();
59
- } catch (err) {
60
- log.error("Error with Split graceful shutdown: " + err);
61
- }
62
-
63
- if ((0, _thenable.default)(handlerResult)) {
64
- // Always exit, even with errors. The promise is returned for UT purposses.
65
- return handlerResult.then(wrapUp).catch(wrapUp);
66
- } else {
67
- wrapUp();
68
- }
69
- };
70
-
71
- return NodeSignalListener;
72
- }();
73
-
74
- exports.default = NodeSignalListener;
@@ -1,4 +0,0 @@
1
- {
2
- "main": "./node.js",
3
- "browser": "./browser.js"
4
- }