@splitsoftware/splitio 10.17.3 → 10.17.4-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 (776) hide show
  1. package/CHANGES.txt +0 -4
  2. package/es/factory/browser.js +67 -0
  3. package/es/factory/node.js +63 -0
  4. package/es/{client → factory}/package.json +0 -0
  5. package/es/index.js +16 -132
  6. package/es/platform/EventEmitter.js +386 -0
  7. package/es/platform/browser.js +10 -0
  8. package/es/platform/getEventSource/browser.js +3 -0
  9. package/es/platform/getEventSource/node.js +19 -0
  10. package/es/{impressions/observer → platform/getEventSource}/package.json +0 -0
  11. package/es/platform/getFetch/browser.js +4 -0
  12. package/es/platform/getFetch/node.js +18 -0
  13. package/es/{integrations → platform/getFetch}/package.json +0 -0
  14. package/es/platform/node.js +12 -0
  15. package/es/{listeners → platform}/package.json +0 -0
  16. package/es/platform/request/options/node.js +13 -0
  17. package/es/settings/browser.js +20 -0
  18. package/es/settings/defaults/browser.js +18 -0
  19. package/es/settings/defaults/node.js +24 -0
  20. package/es/settings/defaults/version.js +1 -0
  21. package/es/settings/integrations/browser.js +5 -0
  22. package/es/settings/node.js +18 -0
  23. package/es/{producer/offline → settings}/package.json +0 -0
  24. package/es/settings/runtime/node.js +17 -0
  25. package/es/settings/storage/browser.js +29 -0
  26. package/es/settings/storage/node.js +60 -0
  27. package/es/umd.js +2 -1
  28. package/lib/factory/browser.js +71 -0
  29. package/lib/factory/node.js +67 -0
  30. package/{es/producer → lib/factory}/package.json +0 -0
  31. package/lib/index.js +19 -155
  32. package/lib/platform/EventEmitter.js +390 -0
  33. package/lib/platform/browser.js +13 -0
  34. package/lib/platform/getEventSource/browser.js +7 -0
  35. package/lib/platform/getEventSource/node.js +25 -0
  36. package/{es/services → lib/platform}/getEventSource/package.json +0 -0
  37. package/lib/platform/getFetch/browser.js +9 -0
  38. package/lib/platform/getFetch/node.js +23 -0
  39. package/{es/services → lib/platform}/getFetch/package.json +0 -0
  40. package/lib/platform/node.js +16 -0
  41. package/{es/services/request/options → lib/platform}/package.json +0 -0
  42. package/lib/platform/request/options/node.js +18 -0
  43. package/lib/settings/browser.js +24 -0
  44. package/lib/settings/defaults/browser.js +21 -0
  45. package/lib/settings/defaults/node.js +27 -0
  46. package/lib/settings/defaults/version.js +4 -0
  47. package/lib/settings/integrations/browser.js +9 -0
  48. package/lib/settings/node.js +22 -0
  49. package/{es/services/splitChanges/offline → lib/settings}/package.json +0 -0
  50. package/lib/settings/runtime/node.js +22 -0
  51. package/lib/settings/storage/browser.js +33 -0
  52. package/lib/settings/storage/node.js +64 -0
  53. package/lib/umd.js +4 -8
  54. package/package.json +26 -30
  55. package/src/.DS_Store +0 -0
  56. package/src/factory/browser.js +84 -0
  57. package/src/factory/node.js +78 -0
  58. package/{es/storage/SegmentCache/InMemory → src/factory}/package.json +0 -0
  59. package/src/index.js +13 -136
  60. package/src/platform/.DS_Store +0 -0
  61. package/src/platform/EventEmitter.js +443 -0
  62. package/src/platform/browser.js +12 -0
  63. package/{es/services → src/platform}/getEventSource/browser.js +2 -2
  64. package/src/{services → platform}/getEventSource/node.js +2 -2
  65. package/{es/storage → src/platform/getEventSource}/package.json +0 -0
  66. package/src/{services → platform}/getFetch/browser.js +2 -2
  67. package/src/{services → platform}/getFetch/node.js +1 -1
  68. package/{es/sync/PushManager/pushRequirements → src/platform/getFetch}/package.json +0 -0
  69. package/src/platform/node.js +14 -0
  70. package/{es/sync/SegmentUpdateWorker → src/platform}/package.json +0 -0
  71. package/src/platform/request/options/node.js +15 -0
  72. package/src/settings/.DS_Store +0 -0
  73. package/src/settings/browser.js +22 -0
  74. package/{lib/utils → src}/settings/defaults/browser.js +10 -6
  75. package/{lib/utils → src}/settings/defaults/node.js +6 -6
  76. package/src/settings/defaults/version.js +1 -0
  77. package/src/settings/integrations/browser.js +6 -0
  78. package/src/settings/node.js +20 -0
  79. package/{es/sync → src/settings}/package.json +0 -0
  80. package/src/settings/runtime/node.js +21 -0
  81. package/src/settings/storage/browser.js +43 -0
  82. package/src/{utils/settings → settings}/storage/node.js +18 -34
  83. package/src/umd.js +1 -0
  84. package/types/splitio.d.ts +77 -6
  85. package/es/client/attributesDecoration.js +0 -116
  86. package/es/client/browser.js +0 -39
  87. package/es/client/client.js +0 -155
  88. package/es/client/inputValidation.js +0 -117
  89. package/es/client/node.js +0 -6
  90. package/es/engine/combiners/and.js +0 -54
  91. package/es/engine/combiners/ifelseif.js +0 -73
  92. package/es/engine/condition/index.js +0 -62
  93. package/es/engine/convertions/index.js +0 -29
  94. package/es/engine/engine/index.js +0 -60
  95. package/es/engine/engine/legacy.js +0 -77
  96. package/es/engine/engine/murmur3/common.js +0 -40
  97. package/es/engine/engine/murmur3/murmur3.js +0 -83
  98. package/es/engine/engine/murmur3/murmur3_128.js +0 -250
  99. package/es/engine/engine/murmur3/murmur3_128_x86.js +0 -183
  100. package/es/engine/engine/murmur3/murmur3_64.js +0 -52
  101. package/es/engine/engine/murmur3/utfx.js +0 -112
  102. package/es/engine/evaluator/index.js +0 -111
  103. package/es/engine/index.js +0 -112
  104. package/es/engine/matchers/all.js +0 -32
  105. package/es/engine/matchers/between.js +0 -35
  106. package/es/engine/matchers/boolean.js +0 -35
  107. package/es/engine/matchers/cont_all.js +0 -51
  108. package/es/engine/matchers/cont_any.js +0 -47
  109. package/es/engine/matchers/cont_str.js +0 -38
  110. package/es/engine/matchers/dependency.js +0 -50
  111. package/es/engine/matchers/eq.js +0 -35
  112. package/es/engine/matchers/eq_set.js +0 -49
  113. package/es/engine/matchers/ew.js +0 -38
  114. package/es/engine/matchers/gte.js +0 -35
  115. package/es/engine/matchers/index.js +0 -65
  116. package/es/engine/matchers/lte.js +0 -35
  117. package/es/engine/matchers/part_of.js +0 -49
  118. package/es/engine/matchers/segment.js +0 -39
  119. package/es/engine/matchers/string.js +0 -44
  120. package/es/engine/matchers/sw.js +0 -38
  121. package/es/engine/matchers/types.js +0 -48
  122. package/es/engine/matchers/whitelist.js +0 -36
  123. package/es/engine/parser/index.js +0 -69
  124. package/es/engine/parser/segments.js +0 -22
  125. package/es/engine/transforms/matcherGroup.js +0 -43
  126. package/es/engine/transforms/matchers.js +0 -109
  127. package/es/engine/transforms/segment.js +0 -28
  128. package/es/engine/transforms/set.js +0 -20
  129. package/es/engine/transforms/unaryNumeric.js +0 -20
  130. package/es/engine/transforms/whitelist.js +0 -22
  131. package/es/engine/treatments/index.js +0 -67
  132. package/es/engine/value/index.js +0 -54
  133. package/es/engine/value/sanitize.js +0 -125
  134. package/es/events/index.js +0 -65
  135. package/es/factory/offline.js +0 -50
  136. package/es/factory/online.js +0 -113
  137. package/es/impressions/counter.js +0 -52
  138. package/es/impressions/hasher/buildKey.js +0 -3
  139. package/es/impressions/hasher/hashImpression128.js +0 -5
  140. package/es/impressions/hasher/hashImpression32.js +0 -5
  141. package/es/impressions/observer/browser.js +0 -9
  142. package/es/impressions/observer/node.js +0 -9
  143. package/es/impressions/observer/observer.js +0 -21
  144. package/es/integrations/browser.js +0 -62
  145. package/es/integrations/ga/GaToSplit.js +0 -246
  146. package/es/integrations/ga/SplitToGa.js +0 -127
  147. package/es/integrations/node.js +0 -3
  148. package/es/listeners/browser.js +0 -157
  149. package/es/listeners/node.js +0 -65
  150. package/es/manager/index.js +0 -104
  151. package/es/metrics/Collectors.js +0 -100
  152. package/es/metrics/index.js +0 -157
  153. package/es/producer/browser/Partial.js +0 -103
  154. package/es/producer/browser.js +0 -70
  155. package/es/producer/fetcher/MySegments.js +0 -47
  156. package/es/producer/fetcher/SegmentChanges.js +0 -52
  157. package/es/producer/fetcher/SplitChanges.js +0 -46
  158. package/es/producer/node.js +0 -130
  159. package/es/producer/offline/browser.js +0 -26
  160. package/es/producer/offline/node.js +0 -26
  161. package/es/producer/task.js +0 -50
  162. package/es/producer/updater/MySegments.js +0 -108
  163. package/es/producer/updater/SegmentChanges.js +0 -135
  164. package/es/producer/updater/SplitChanges.js +0 -131
  165. package/es/producer/updater/SplitChangesFromFeatures.js +0 -21
  166. package/es/producer/updater/SplitChangesFromFileSystem.js +0 -21
  167. package/es/producer/updater/SplitChangesFromObject.js +0 -73
  168. package/es/readiness/index.js +0 -123
  169. package/es/readiness/statusManager.js +0 -114
  170. package/es/services/auth/auth.js +0 -25
  171. package/es/services/auth/index.js +0 -2
  172. package/es/services/events/bulk.js +0 -22
  173. package/es/services/events/index.js +0 -17
  174. package/es/services/getEventSource/node.js +0 -18
  175. package/es/services/getFetch/browser.js +0 -4
  176. package/es/services/getFetch/node.js +0 -18
  177. package/es/services/impressions/bulk.js +0 -26
  178. package/es/services/impressions/count.js +0 -7
  179. package/es/services/impressions/dto.js +0 -73
  180. package/es/services/impressions/index.js +0 -17
  181. package/es/services/impressions/post.js +0 -22
  182. package/es/services/metrics/counters.js +0 -24
  183. package/es/services/metrics/dto.js +0 -38
  184. package/es/services/metrics/index.js +0 -17
  185. package/es/services/metrics/times.js +0 -24
  186. package/es/services/mySegments/get.js +0 -26
  187. package/es/services/mySegments/index.js +0 -17
  188. package/es/services/request/index.js +0 -43
  189. package/es/services/request/options/browser.js +0 -18
  190. package/es/services/request/options/node.js +0 -28
  191. package/es/services/segmentChanges/get.js +0 -21
  192. package/es/services/segmentChanges/index.js +0 -17
  193. package/es/services/splitChanges/get.js +0 -19
  194. package/es/services/splitChanges/index.js +0 -17
  195. package/es/services/splitChanges/offline/browser.js +0 -63
  196. package/es/services/splitChanges/offline/node.js +0 -176
  197. package/es/services/splitChanges/offline/parseCondition.js +0 -43
  198. package/es/services/transport/index.js +0 -51
  199. package/es/storage/AttributesCache/InMemory.js +0 -85
  200. package/es/storage/BaseMetricsAsyncCache.js +0 -23
  201. package/es/storage/CountCache/InMemory.js +0 -48
  202. package/es/storage/CountCache/InRedis.js +0 -42
  203. package/es/storage/EventsCache/InMemory.js +0 -109
  204. package/es/storage/EventsCache/InRedis.js +0 -65
  205. package/es/storage/ImpressionsCache/InMemory.js +0 -71
  206. package/es/storage/ImpressionsCache/InRedis.js +0 -73
  207. package/es/storage/Keys.js +0 -125
  208. package/es/storage/KeysLocalStorage.js +0 -58
  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 -162
  215. package/es/storage/SegmentCache/InMemory/browser.js +0 -107
  216. package/es/storage/SegmentCache/InMemory/node.js +0 -82
  217. package/es/storage/SegmentCache/InRedis/index.js +0 -81
  218. package/es/storage/SplitCache/InLocalStorage.js +0 -332
  219. package/es/storage/SplitCache/InMemory.js +0 -162
  220. package/es/storage/SplitCache/InRedis.js +0 -214
  221. package/es/storage/SplitCache/killLocally.js +0 -35
  222. package/es/storage/browser.js +0 -101
  223. package/es/storage/node.js +0 -81
  224. package/es/sync/AuthClient/index.js +0 -34
  225. package/es/sync/PushManager/index.js +0 -315
  226. package/es/sync/PushManager/mySegmentsV2utils.js +0 -76
  227. package/es/sync/PushManager/pushRequirements/browser.js +0 -23
  228. package/es/sync/PushManager/pushRequirements/node.js +0 -18
  229. package/es/sync/SSEClient/index.js +0 -93
  230. package/es/sync/SSEHandler/NotificationKeeper.js +0 -97
  231. package/es/sync/SSEHandler/NotificationParser.js +0 -31
  232. package/es/sync/SSEHandler/index.js +0 -110
  233. package/es/sync/SegmentUpdateWorker/browser.js +0 -74
  234. package/es/sync/SegmentUpdateWorker/node.js +0 -79
  235. package/es/sync/SplitUpdateWorker/index.js +0 -86
  236. package/es/sync/browser.js +0 -125
  237. package/es/sync/constants.js +0 -42
  238. package/es/sync/node.js +0 -60
  239. package/es/trackers/event.js +0 -53
  240. package/es/trackers/impressions.js +0 -132
  241. package/es/utils/backoff/index.js +0 -51
  242. package/es/utils/base64/browser.js +0 -19
  243. package/es/utils/base64/node.js +0 -19
  244. package/es/utils/base64/package.json +0 -4
  245. package/es/utils/binarySearch/index.js +0 -50
  246. package/es/utils/constants/index.js +0 -38
  247. package/es/utils/context/constants.js +0 -30
  248. package/es/utils/context/index.js +0 -101
  249. package/es/utils/decompress/index.js +0 -476
  250. package/es/utils/fn/repeat.js +0 -58
  251. package/es/utils/inputValidation/apiKey.js +0 -39
  252. package/es/utils/inputValidation/attribute.js +0 -22
  253. package/es/utils/inputValidation/attributes.js +0 -19
  254. package/es/utils/inputValidation/event.js +0 -23
  255. package/es/utils/inputValidation/eventProperties.js +0 -69
  256. package/es/utils/inputValidation/eventValue.js +0 -9
  257. package/es/utils/inputValidation/index.js +0 -11
  258. package/es/utils/inputValidation/isOperational.js +0 -14
  259. package/es/utils/inputValidation/key.js +0 -50
  260. package/es/utils/inputValidation/split.js +0 -47
  261. package/es/utils/inputValidation/splitFilters.js +0 -121
  262. package/es/utils/inputValidation/splits.js +0 -27
  263. package/es/utils/inputValidation/trafficType.js +0 -55
  264. package/es/utils/jwt/hashUserKey.js +0 -11
  265. package/es/utils/jwt/index.js +0 -14
  266. package/es/utils/key/factory.js +0 -38
  267. package/es/utils/key/parser.js +0 -34
  268. package/es/utils/labels/index.js +0 -7
  269. package/es/utils/lang/Errors.js +0 -41
  270. package/es/utils/lang/Sets.js +0 -114
  271. package/es/utils/lang/index.js +0 -305
  272. package/es/utils/localstorage/isAvailable.js +0 -26
  273. package/es/utils/logger/LoggerFactory.js +0 -86
  274. package/es/utils/logger/index.js +0 -97
  275. package/es/utils/lrucache/linkedlist.js +0 -122
  276. package/es/utils/lrucache/lru.spec.js +0 -24
  277. package/es/utils/lrucache/lrucache.js +0 -80
  278. package/es/utils/now/browser.js +0 -27
  279. package/es/utils/now/node.js +0 -19
  280. package/es/utils/now/package.json +0 -4
  281. package/es/utils/promise/thenable.js +0 -3
  282. package/es/utils/promise/timeout.js +0 -34
  283. package/es/utils/promise/wrapper.js +0 -58
  284. package/es/utils/settings/defaults/browser.js +0 -12
  285. package/es/utils/settings/defaults/node.js +0 -21
  286. package/es/utils/settings/defaults/package.json +0 -4
  287. package/es/utils/settings/impressionsMode.js +0 -16
  288. package/es/utils/settings/index.js +0 -194
  289. package/es/utils/settings/integrations/browser.js +0 -8
  290. package/es/utils/settings/integrations/common.js +0 -30
  291. package/es/utils/settings/integrations/node.js +0 -7
  292. package/es/utils/settings/integrations/package.json +0 -4
  293. package/es/utils/settings/language/browser.js +0 -16
  294. package/es/utils/settings/language/node.js +0 -16
  295. package/es/utils/settings/language/package.json +0 -4
  296. package/es/utils/settings/mode.js +0 -10
  297. package/es/utils/settings/runtime/browser.js +0 -21
  298. package/es/utils/settings/runtime/node.js +0 -33
  299. package/es/utils/settings/runtime/package.json +0 -4
  300. package/es/utils/settings/storage/browser.js +0 -64
  301. package/es/utils/settings/storage/node.js +0 -86
  302. package/es/utils/settings/storage/package.json +0 -4
  303. package/es/utils/splits/usesSegments.js +0 -21
  304. package/es/utils/time/index.js +0 -8
  305. package/es/utils/timeTracker/index.js +0 -216
  306. package/es/utils/timeTracker/timer.js +0 -25
  307. package/lib/client/attributesDecoration.js +0 -128
  308. package/lib/client/browser.js +0 -50
  309. package/lib/client/client.js +0 -174
  310. package/lib/client/inputValidation.js +0 -129
  311. package/lib/client/node.js +0 -14
  312. package/lib/client/package.json +0 -4
  313. package/lib/engine/combiners/and.js +0 -65
  314. package/lib/engine/combiners/ifelseif.js +0 -88
  315. package/lib/engine/condition/index.js +0 -76
  316. package/lib/engine/convertions/index.js +0 -36
  317. package/lib/engine/engine/index.js +0 -71
  318. package/lib/engine/engine/legacy.js +0 -83
  319. package/lib/engine/engine/murmur3/common.js +0 -52
  320. package/lib/engine/engine/murmur3/murmur3.js +0 -90
  321. package/lib/engine/engine/murmur3/murmur3_128.js +0 -256
  322. package/lib/engine/engine/murmur3/murmur3_128_x86.js +0 -189
  323. package/lib/engine/engine/murmur3/murmur3_64.js +0 -57
  324. package/lib/engine/engine/murmur3/utfx.js +0 -121
  325. package/lib/engine/evaluator/index.js +0 -129
  326. package/lib/engine/index.js +0 -128
  327. package/lib/engine/matchers/all.js +0 -41
  328. package/lib/engine/matchers/between.js +0 -44
  329. package/lib/engine/matchers/boolean.js +0 -44
  330. package/lib/engine/matchers/cont_all.js +0 -61
  331. package/lib/engine/matchers/cont_any.js +0 -57
  332. package/lib/engine/matchers/cont_str.js +0 -48
  333. package/lib/engine/matchers/dependency.js +0 -60
  334. package/lib/engine/matchers/eq.js +0 -44
  335. package/lib/engine/matchers/eq_set.js +0 -59
  336. package/lib/engine/matchers/ew.js +0 -48
  337. package/lib/engine/matchers/gte.js +0 -44
  338. package/lib/engine/matchers/index.js +0 -90
  339. package/lib/engine/matchers/lte.js +0 -44
  340. package/lib/engine/matchers/part_of.js +0 -59
  341. package/lib/engine/matchers/segment.js +0 -49
  342. package/lib/engine/matchers/string.js +0 -53
  343. package/lib/engine/matchers/sw.js +0 -48
  344. package/lib/engine/matchers/types.js +0 -57
  345. package/lib/engine/matchers/whitelist.js +0 -46
  346. package/lib/engine/parser/index.js +0 -84
  347. package/lib/engine/parser/segments.js +0 -28
  348. package/lib/engine/transforms/matcherGroup.js +0 -54
  349. package/lib/engine/transforms/matchers.js +0 -124
  350. package/lib/engine/transforms/segment.js +0 -34
  351. package/lib/engine/transforms/set.js +0 -26
  352. package/lib/engine/transforms/unaryNumeric.js +0 -26
  353. package/lib/engine/transforms/whitelist.js +0 -28
  354. package/lib/engine/treatments/index.js +0 -73
  355. package/lib/engine/value/index.js +0 -64
  356. package/lib/engine/value/sanitize.js +0 -137
  357. package/lib/events/index.js +0 -80
  358. package/lib/factory/offline.js +0 -62
  359. package/lib/factory/online.js +0 -129
  360. package/lib/impressions/counter.js +0 -61
  361. package/lib/impressions/hasher/buildKey.js +0 -8
  362. package/lib/impressions/hasher/hashImpression128.js +0 -12
  363. package/lib/impressions/hasher/hashImpression32.js +0 -14
  364. package/lib/impressions/observer/browser.js +0 -19
  365. package/lib/impressions/observer/node.js +0 -19
  366. package/lib/impressions/observer/observer.js +0 -29
  367. package/lib/impressions/observer/package.json +0 -4
  368. package/lib/integrations/browser.js +0 -72
  369. package/lib/integrations/ga/GaToSplit.js +0 -267
  370. package/lib/integrations/ga/SplitToGa.js +0 -138
  371. package/lib/integrations/node.js +0 -9
  372. package/lib/integrations/package.json +0 -4
  373. package/lib/listeners/browser.js +0 -173
  374. package/lib/listeners/node.js +0 -74
  375. package/lib/listeners/package.json +0 -4
  376. package/lib/manager/index.js +0 -115
  377. package/lib/metrics/Collectors.js +0 -118
  378. package/lib/metrics/index.js +0 -182
  379. package/lib/producer/browser/Partial.js +0 -114
  380. package/lib/producer/browser.js +0 -82
  381. package/lib/producer/fetcher/MySegments.js +0 -59
  382. package/lib/producer/fetcher/SegmentChanges.js +0 -62
  383. package/lib/producer/fetcher/SplitChanges.js +0 -58
  384. package/lib/producer/node.js +0 -142
  385. package/lib/producer/offline/browser.js +0 -35
  386. package/lib/producer/offline/node.js +0 -35
  387. package/lib/producer/offline/package.json +0 -4
  388. package/lib/producer/package.json +0 -4
  389. package/lib/producer/task.js +0 -61
  390. package/lib/producer/updater/MySegments.js +0 -119
  391. package/lib/producer/updater/SegmentChanges.js +0 -148
  392. package/lib/producer/updater/SplitChanges.js +0 -145
  393. package/lib/producer/updater/SplitChangesFromFeatures.js +0 -30
  394. package/lib/producer/updater/SplitChangesFromFileSystem.js +0 -30
  395. package/lib/producer/updater/SplitChangesFromObject.js +0 -84
  396. package/lib/readiness/index.js +0 -132
  397. package/lib/readiness/statusManager.js +0 -124
  398. package/lib/services/auth/auth.js +0 -32
  399. package/lib/services/auth/index.js +0 -11
  400. package/lib/services/events/bulk.js +0 -31
  401. package/lib/services/events/index.js +0 -26
  402. package/lib/services/getEventSource/browser.js +0 -8
  403. package/lib/services/getEventSource/node.js +0 -26
  404. package/lib/services/getEventSource/package.json +0 -4
  405. package/lib/services/getFetch/browser.js +0 -12
  406. package/lib/services/getFetch/node.js +0 -24
  407. package/lib/services/getFetch/package.json +0 -4
  408. package/lib/services/impressions/bulk.js +0 -36
  409. package/lib/services/impressions/count.js +0 -16
  410. package/lib/services/impressions/dto.js +0 -81
  411. package/lib/services/impressions/index.js +0 -26
  412. package/lib/services/impressions/post.js +0 -31
  413. package/lib/services/metrics/counters.js +0 -33
  414. package/lib/services/metrics/dto.js +0 -46
  415. package/lib/services/metrics/index.js +0 -26
  416. package/lib/services/metrics/times.js +0 -33
  417. package/lib/services/mySegments/get.js +0 -35
  418. package/lib/services/mySegments/index.js +0 -26
  419. package/lib/services/request/index.js +0 -53
  420. package/lib/services/request/options/browser.js +0 -23
  421. package/lib/services/request/options/node.js +0 -37
  422. package/lib/services/request/options/package.json +0 -4
  423. package/lib/services/segmentChanges/get.js +0 -29
  424. package/lib/services/segmentChanges/index.js +0 -26
  425. package/lib/services/splitChanges/get.js +0 -27
  426. package/lib/services/splitChanges/index.js +0 -26
  427. package/lib/services/splitChanges/offline/browser.js +0 -71
  428. package/lib/services/splitChanges/offline/node.js +0 -189
  429. package/lib/services/splitChanges/offline/package.json +0 -4
  430. package/lib/services/splitChanges/offline/parseCondition.js +0 -49
  431. package/lib/services/transport/index.js +0 -62
  432. package/lib/storage/AttributesCache/InMemory.js +0 -93
  433. package/lib/storage/BaseMetricsAsyncCache.js +0 -28
  434. package/lib/storage/CountCache/InMemory.js +0 -54
  435. package/lib/storage/CountCache/InRedis.js +0 -50
  436. package/lib/storage/EventsCache/InMemory.js +0 -118
  437. package/lib/storage/EventsCache/InRedis.js +0 -74
  438. package/lib/storage/ImpressionsCache/InMemory.js +0 -77
  439. package/lib/storage/ImpressionsCache/InRedis.js +0 -79
  440. package/lib/storage/Keys.js +0 -132
  441. package/lib/storage/KeysLocalStorage.js +0 -69
  442. package/lib/storage/LatencyCache/InMemory.js +0 -64
  443. package/lib/storage/LatencyCache/InRedis.js +0 -53
  444. package/lib/storage/LatencyCache/findIndex.js +0 -12
  445. package/lib/storage/Meta.js +0 -12
  446. package/lib/storage/RedisAdapter.js +0 -212
  447. package/lib/storage/SegmentCache/InLocalStorage/index.js +0 -171
  448. package/lib/storage/SegmentCache/InMemory/browser.js +0 -113
  449. package/lib/storage/SegmentCache/InMemory/node.js +0 -89
  450. package/lib/storage/SegmentCache/InMemory/package.json +0 -4
  451. package/lib/storage/SegmentCache/InRedis/index.js +0 -87
  452. package/lib/storage/SplitCache/InLocalStorage.js +0 -344
  453. package/lib/storage/SplitCache/InMemory.js +0 -172
  454. package/lib/storage/SplitCache/InRedis.js +0 -224
  455. package/lib/storage/SplitCache/killLocally.js +0 -42
  456. package/lib/storage/browser.js +0 -122
  457. package/lib/storage/node.js +0 -104
  458. package/lib/storage/package.json +0 -4
  459. package/lib/sync/AuthClient/index.js +0 -44
  460. package/lib/sync/PushManager/index.js +0 -340
  461. package/lib/sync/PushManager/mySegmentsV2utils.js +0 -87
  462. package/lib/sync/PushManager/pushRequirements/browser.js +0 -30
  463. package/lib/sync/PushManager/pushRequirements/node.js +0 -25
  464. package/lib/sync/PushManager/pushRequirements/package.json +0 -4
  465. package/lib/sync/SSEClient/index.js +0 -101
  466. package/lib/sync/SSEHandler/NotificationKeeper.js +0 -104
  467. package/lib/sync/SSEHandler/NotificationParser.js +0 -39
  468. package/lib/sync/SSEHandler/index.js +0 -121
  469. package/lib/sync/SegmentUpdateWorker/browser.js +0 -81
  470. package/lib/sync/SegmentUpdateWorker/node.js +0 -86
  471. package/lib/sync/SegmentUpdateWorker/package.json +0 -4
  472. package/lib/sync/SplitUpdateWorker/index.js +0 -93
  473. package/lib/sync/browser.js +0 -139
  474. package/lib/sync/constants.js +0 -59
  475. package/lib/sync/node.js +0 -71
  476. package/lib/sync/package.json +0 -4
  477. package/lib/trackers/event.js +0 -64
  478. package/lib/trackers/impressions.js +0 -146
  479. package/lib/utils/backoff/index.js +0 -57
  480. package/lib/utils/base64/browser.js +0 -26
  481. package/lib/utils/base64/node.js +0 -26
  482. package/lib/utils/base64/package.json +0 -4
  483. package/lib/utils/binarySearch/index.js +0 -56
  484. package/lib/utils/constants/index.js +0 -60
  485. package/lib/utils/context/constants.js +0 -49
  486. package/lib/utils/context/index.js +0 -111
  487. package/lib/utils/decompress/index.js +0 -483
  488. package/lib/utils/fn/repeat.js +0 -64
  489. package/lib/utils/inputValidation/apiKey.js +0 -51
  490. package/lib/utils/inputValidation/attribute.js +0 -32
  491. package/lib/utils/inputValidation/attributes.js +0 -32
  492. package/lib/utils/inputValidation/event.js +0 -33
  493. package/lib/utils/inputValidation/eventProperties.js +0 -78
  494. package/lib/utils/inputValidation/eventValue.js +0 -19
  495. package/lib/utils/inputValidation/index.js +0 -48
  496. package/lib/utils/inputValidation/isOperational.js +0 -25
  497. package/lib/utils/inputValidation/key.js +0 -59
  498. package/lib/utils/inputValidation/split.js +0 -60
  499. package/lib/utils/inputValidation/splitFilters.js +0 -134
  500. package/lib/utils/inputValidation/splits.js +0 -38
  501. package/lib/utils/inputValidation/trafficType.js +0 -68
  502. package/lib/utils/jwt/hashUserKey.js +0 -19
  503. package/lib/utils/jwt/index.js +0 -19
  504. package/lib/utils/key/factory.js +0 -46
  505. package/lib/utils/key/parser.js +0 -42
  506. package/lib/utils/labels/index.js +0 -18
  507. package/lib/utils/lang/Errors.js +0 -58
  508. package/lib/utils/lang/Sets.js +0 -127
  509. package/lib/utils/lang/index.js +0 -350
  510. package/lib/utils/localstorage/isAvailable.js +0 -31
  511. package/lib/utils/logger/LoggerFactory.js +0 -98
  512. package/lib/utils/logger/index.js +0 -109
  513. package/lib/utils/lrucache/linkedlist.js +0 -132
  514. package/lib/utils/lrucache/lru.spec.js +0 -30
  515. package/lib/utils/lrucache/lrucache.js +0 -88
  516. package/lib/utils/now/browser.js +0 -33
  517. package/lib/utils/now/node.js +0 -24
  518. package/lib/utils/now/package.json +0 -4
  519. package/lib/utils/promise/thenable.js +0 -10
  520. package/lib/utils/promise/timeout.js +0 -40
  521. package/lib/utils/promise/wrapper.js +0 -63
  522. package/lib/utils/settings/defaults/package.json +0 -4
  523. package/lib/utils/settings/impressionsMode.js +0 -26
  524. package/lib/utils/settings/index.js +0 -214
  525. package/lib/utils/settings/integrations/browser.js +0 -17
  526. package/lib/utils/settings/integrations/common.js +0 -40
  527. package/lib/utils/settings/integrations/node.js +0 -13
  528. package/lib/utils/settings/integrations/package.json +0 -4
  529. package/lib/utils/settings/language/browser.js +0 -22
  530. package/lib/utils/settings/language/node.js +0 -22
  531. package/lib/utils/settings/language/package.json +0 -4
  532. package/lib/utils/settings/mode.js +0 -16
  533. package/lib/utils/settings/runtime/browser.js +0 -26
  534. package/lib/utils/settings/runtime/node.js +0 -43
  535. package/lib/utils/settings/runtime/package.json +0 -4
  536. package/lib/utils/settings/storage/browser.js +0 -75
  537. package/lib/utils/settings/storage/node.js +0 -92
  538. package/lib/utils/settings/storage/package.json +0 -4
  539. package/lib/utils/splits/usesSegments.js +0 -27
  540. package/lib/utils/time/index.js +0 -12
  541. package/lib/utils/timeTracker/index.js +0 -213
  542. package/lib/utils/timeTracker/timer.js +0 -33
  543. package/src/client/attributesDecoration.js +0 -112
  544. package/src/client/browser.js +0 -41
  545. package/src/client/client.js +0 -131
  546. package/src/client/inputValidation.js +0 -130
  547. package/src/client/node.js +0 -8
  548. package/src/client/package.json +0 -4
  549. package/src/engine/combiners/and.js +0 -55
  550. package/src/engine/combiners/ifelseif.js +0 -74
  551. package/src/engine/condition/index.js +0 -65
  552. package/src/engine/convertions/index.js +0 -22
  553. package/src/engine/engine/index.js +0 -63
  554. package/src/engine/engine/legacy.js +0 -66
  555. package/src/engine/engine/murmur3/common.js +0 -54
  556. package/src/engine/engine/murmur3/murmur3.js +0 -79
  557. package/src/engine/engine/murmur3/murmur3_128.js +0 -273
  558. package/src/engine/engine/murmur3/murmur3_128_x86.js +0 -188
  559. package/src/engine/engine/murmur3/murmur3_64.js +0 -34
  560. package/src/engine/engine/murmur3/utfx.js +0 -111
  561. package/src/engine/evaluator/index.js +0 -148
  562. package/src/engine/index.js +0 -123
  563. package/src/engine/matchers/all.js +0 -29
  564. package/src/engine/matchers/between.js +0 -30
  565. package/src/engine/matchers/boolean.js +0 -29
  566. package/src/engine/matchers/cont_all.js +0 -40
  567. package/src/engine/matchers/cont_any.js +0 -35
  568. package/src/engine/matchers/cont_str.js +0 -31
  569. package/src/engine/matchers/dependency.js +0 -52
  570. package/src/engine/matchers/eq.js +0 -30
  571. package/src/engine/matchers/eq_set.js +0 -37
  572. package/src/engine/matchers/ew.js +0 -31
  573. package/src/engine/matchers/gte.js +0 -30
  574. package/src/engine/matchers/index.js +0 -71
  575. package/src/engine/matchers/lte.js +0 -30
  576. package/src/engine/matchers/part_of.js +0 -37
  577. package/src/engine/matchers/segment.js +0 -41
  578. package/src/engine/matchers/string.js +0 -39
  579. package/src/engine/matchers/sw.js +0 -31
  580. package/src/engine/matchers/types.js +0 -52
  581. package/src/engine/matchers/whitelist.js +0 -30
  582. package/src/engine/parser/index.js +0 -79
  583. package/src/engine/parser/segments.js +0 -31
  584. package/src/engine/transforms/matcherGroup.js +0 -45
  585. package/src/engine/transforms/matchers.js +0 -118
  586. package/src/engine/transforms/segment.js +0 -23
  587. package/src/engine/transforms/set.js +0 -20
  588. package/src/engine/transforms/unaryNumeric.js +0 -20
  589. package/src/engine/transforms/whitelist.js +0 -22
  590. package/src/engine/treatments/index.js +0 -67
  591. package/src/engine/value/index.js +0 -53
  592. package/src/engine/value/sanitize.js +0 -117
  593. package/src/events/index.js +0 -62
  594. package/src/factory/offline.js +0 -60
  595. package/src/factory/online.js +0 -127
  596. package/src/impressions/counter.js +0 -43
  597. package/src/impressions/hasher/buildKey.js +0 -3
  598. package/src/impressions/hasher/hashImpression128.js +0 -6
  599. package/src/impressions/hasher/hashImpression32.js +0 -6
  600. package/src/impressions/observer/browser.js +0 -8
  601. package/src/impressions/observer/node.js +0 -8
  602. package/src/impressions/observer/observer.js +0 -17
  603. package/src/impressions/observer/package.json +0 -4
  604. package/src/integrations/browser.js +0 -57
  605. package/src/integrations/ga/GaToSplit.js +0 -278
  606. package/src/integrations/ga/SplitToGa.js +0 -125
  607. package/src/integrations/node.js +0 -4
  608. package/src/integrations/package.json +0 -4
  609. package/src/listeners/browser.js +0 -137
  610. package/src/listeners/node.js +0 -59
  611. package/src/listeners/package.json +0 -4
  612. package/src/manager/index.js +0 -103
  613. package/src/metrics/Collectors.js +0 -77
  614. package/src/metrics/index.js +0 -174
  615. package/src/producer/browser/Partial.js +0 -104
  616. package/src/producer/browser.js +0 -82
  617. package/src/producer/fetcher/MySegments.js +0 -40
  618. package/src/producer/fetcher/SegmentChanges.js +0 -52
  619. package/src/producer/fetcher/SplitChanges.js +0 -39
  620. package/src/producer/node.js +0 -142
  621. package/src/producer/offline/browser.js +0 -28
  622. package/src/producer/offline/node.js +0 -28
  623. package/src/producer/offline/package.json +0 -4
  624. package/src/producer/package.json +0 -4
  625. package/src/producer/task.js +0 -57
  626. package/src/producer/updater/MySegments.js +0 -104
  627. package/src/producer/updater/SegmentChanges.js +0 -126
  628. package/src/producer/updater/SplitChanges.js +0 -138
  629. package/src/producer/updater/SplitChangesFromFeatures.js +0 -23
  630. package/src/producer/updater/SplitChangesFromFileSystem.js +0 -23
  631. package/src/producer/updater/SplitChangesFromObject.js +0 -81
  632. package/src/readiness/index.js +0 -125
  633. package/src/readiness/statusManager.js +0 -121
  634. package/src/services/auth/auth.js +0 -21
  635. package/src/services/auth/index.js +0 -3
  636. package/src/services/events/bulk.js +0 -23
  637. package/src/services/events/index.js +0 -18
  638. package/src/services/getEventSource/browser.js +0 -3
  639. package/src/services/getEventSource/package.json +0 -4
  640. package/src/services/getFetch/package.json +0 -4
  641. package/src/services/impressions/bulk.js +0 -26
  642. package/src/services/impressions/count.js +0 -8
  643. package/src/services/impressions/dto.js +0 -71
  644. package/src/services/impressions/index.js +0 -18
  645. package/src/services/impressions/post.js +0 -23
  646. package/src/services/metrics/counters.js +0 -25
  647. package/src/services/metrics/dto.js +0 -44
  648. package/src/services/metrics/index.js +0 -18
  649. package/src/services/metrics/times.js +0 -25
  650. package/src/services/mySegments/get.js +0 -27
  651. package/src/services/mySegments/index.js +0 -18
  652. package/src/services/request/index.js +0 -43
  653. package/src/services/request/options/browser.js +0 -18
  654. package/src/services/request/options/node.js +0 -30
  655. package/src/services/request/options/package.json +0 -4
  656. package/src/services/segmentChanges/get.js +0 -20
  657. package/src/services/segmentChanges/index.js +0 -18
  658. package/src/services/splitChanges/get.js +0 -20
  659. package/src/services/splitChanges/index.js +0 -18
  660. package/src/services/splitChanges/offline/browser.js +0 -66
  661. package/src/services/splitChanges/offline/node.js +0 -190
  662. package/src/services/splitChanges/offline/package.json +0 -4
  663. package/src/services/splitChanges/offline/parseCondition.js +0 -52
  664. package/src/services/transport/index.js +0 -44
  665. package/src/storage/AttributesCache/InMemory.js +0 -76
  666. package/src/storage/BaseMetricsAsyncCache.js +0 -14
  667. package/src/storage/CountCache/InMemory.js +0 -48
  668. package/src/storage/CountCache/InRedis.js +0 -32
  669. package/src/storage/EventsCache/InMemory.js +0 -99
  670. package/src/storage/EventsCache/InRedis.js +0 -62
  671. package/src/storage/ImpressionsCache/InMemory.js +0 -62
  672. package/src/storage/ImpressionsCache/InRedis.js +0 -65
  673. package/src/storage/Keys.js +0 -122
  674. package/src/storage/KeysLocalStorage.js +0 -52
  675. package/src/storage/LatencyCache/InMemory.js +0 -56
  676. package/src/storage/LatencyCache/InRedis.js +0 -35
  677. package/src/storage/LatencyCache/findIndex.js +0 -7
  678. package/src/storage/Meta.js +0 -7
  679. package/src/storage/RedisAdapter.js +0 -170
  680. package/src/storage/SegmentCache/InLocalStorage/index.js +0 -140
  681. package/src/storage/SegmentCache/InMemory/browser.js +0 -99
  682. package/src/storage/SegmentCache/InMemory/node.js +0 -84
  683. package/src/storage/SegmentCache/InMemory/package.json +0 -4
  684. package/src/storage/SegmentCache/InRedis/index.js +0 -71
  685. package/src/storage/SplitCache/InLocalStorage.js +0 -324
  686. package/src/storage/SplitCache/InMemory.js +0 -145
  687. package/src/storage/SplitCache/InRedis.js +0 -187
  688. package/src/storage/SplitCache/killLocally.js +0 -33
  689. package/src/storage/browser.js +0 -110
  690. package/src/storage/node.js +0 -83
  691. package/src/storage/package.json +0 -4
  692. package/src/sync/AuthClient/index.js +0 -31
  693. package/src/sync/PushManager/index.js +0 -328
  694. package/src/sync/PushManager/mySegmentsV2utils.js +0 -76
  695. package/src/sync/PushManager/pushRequirements/browser.js +0 -20
  696. package/src/sync/PushManager/pushRequirements/node.js +0 -16
  697. package/src/sync/PushManager/pushRequirements/package.json +0 -4
  698. package/src/sync/SSEClient/index.js +0 -92
  699. package/src/sync/SSEHandler/NotificationKeeper.js +0 -90
  700. package/src/sync/SSEHandler/NotificationParser.js +0 -35
  701. package/src/sync/SSEHandler/index.js +0 -110
  702. package/src/sync/SegmentUpdateWorker/browser.js +0 -67
  703. package/src/sync/SegmentUpdateWorker/node.js +0 -73
  704. package/src/sync/SegmentUpdateWorker/package.json +0 -4
  705. package/src/sync/SplitUpdateWorker/index.js +0 -79
  706. package/src/sync/browser.js +0 -130
  707. package/src/sync/constants.js +0 -43
  708. package/src/sync/node.js +0 -66
  709. package/src/sync/package.json +0 -4
  710. package/src/trackers/event.js +0 -47
  711. package/src/trackers/impressions.js +0 -123
  712. package/src/utils/backoff/index.js +0 -46
  713. package/src/utils/base64/browser.js +0 -19
  714. package/src/utils/base64/node.js +0 -19
  715. package/src/utils/base64/package.json +0 -4
  716. package/src/utils/binarySearch/index.js +0 -50
  717. package/src/utils/constants/index.js +0 -41
  718. package/src/utils/context/constants.js +0 -18
  719. package/src/utils/context/index.js +0 -84
  720. package/src/utils/decompress/index.js +0 -428
  721. package/src/utils/fn/repeat.js +0 -48
  722. package/src/utils/inputValidation/apiKey.js +0 -42
  723. package/src/utils/inputValidation/attribute.js +0 -22
  724. package/src/utils/inputValidation/attributes.js +0 -26
  725. package/src/utils/inputValidation/event.js +0 -23
  726. package/src/utils/inputValidation/eventProperties.js +0 -65
  727. package/src/utils/inputValidation/eventValue.js +0 -11
  728. package/src/utils/inputValidation/index.js +0 -11
  729. package/src/utils/inputValidation/isOperational.js +0 -16
  730. package/src/utils/inputValidation/key.js +0 -53
  731. package/src/utils/inputValidation/split.js +0 -42
  732. package/src/utils/inputValidation/splitFilters.js +0 -108
  733. package/src/utils/inputValidation/splits.js +0 -21
  734. package/src/utils/inputValidation/trafficType.js +0 -58
  735. package/src/utils/jwt/hashUserKey.js +0 -11
  736. package/src/utils/jwt/index.js +0 -15
  737. package/src/utils/key/factory.js +0 -34
  738. package/src/utils/key/parser.js +0 -34
  739. package/src/utils/labels/index.js +0 -7
  740. package/src/utils/lang/Errors.js +0 -19
  741. package/src/utils/lang/Sets.js +0 -94
  742. package/src/utils/lang/index.js +0 -291
  743. package/src/utils/localstorage/isAvailable.js +0 -26
  744. package/src/utils/logger/LoggerFactory.js +0 -90
  745. package/src/utils/logger/index.js +0 -93
  746. package/src/utils/lrucache/linkedlist.js +0 -116
  747. package/src/utils/lrucache/lru.spec.js +0 -26
  748. package/src/utils/lrucache/lrucache.js +0 -49
  749. package/src/utils/now/browser.js +0 -29
  750. package/src/utils/now/node.js +0 -21
  751. package/src/utils/now/package.json +0 -4
  752. package/src/utils/promise/thenable.js +0 -1
  753. package/src/utils/promise/timeout.js +0 -38
  754. package/src/utils/promise/wrapper.js +0 -60
  755. package/src/utils/settings/defaults/browser.js +0 -12
  756. package/src/utils/settings/defaults/node.js +0 -21
  757. package/src/utils/settings/defaults/package.json +0 -4
  758. package/src/utils/settings/impressionsMode.js +0 -15
  759. package/src/utils/settings/index.js +0 -217
  760. package/src/utils/settings/integrations/browser.js +0 -8
  761. package/src/utils/settings/integrations/common.js +0 -32
  762. package/src/utils/settings/integrations/node.js +0 -7
  763. package/src/utils/settings/integrations/package.json +0 -4
  764. package/src/utils/settings/language/browser.js +0 -17
  765. package/src/utils/settings/language/node.js +0 -17
  766. package/src/utils/settings/language/package.json +0 -4
  767. package/src/utils/settings/mode.js +0 -12
  768. package/src/utils/settings/runtime/browser.js +0 -22
  769. package/src/utils/settings/runtime/node.js +0 -34
  770. package/src/utils/settings/runtime/package.json +0 -4
  771. package/src/utils/settings/storage/browser.js +0 -70
  772. package/src/utils/settings/storage/package.json +0 -4
  773. package/src/utils/splits/usesSegments.js +0 -17
  774. package/src/utils/time/index.js +0 -8
  775. package/src/utils/timeTracker/index.js +0 -223
  776. package/src/utils/timeTracker/timer.js +0 -27
@@ -1,19 +0,0 @@
1
- import { isObject } from '../lang';
2
- import logFactory from '../logger';
3
- import { validateAttribute } from './attribute';
4
- var log = logFactory('');
5
- export function validateAttributes(maybeAttrs, method) {
6
- // Attributes are optional
7
- if (isObject(maybeAttrs) || maybeAttrs == undefined) // eslint-disable-line eqeqeq
8
- return maybeAttrs;
9
- log.error(method + ": attributes must be a plain object.");
10
- return false;
11
- }
12
- export function validateAttributesDeep(maybeAttributes, method) {
13
- if (!validateAttributes(maybeAttributes, method)) return false;
14
- var result = true;
15
- Object.keys(maybeAttributes).forEach(function (attributeKey) {
16
- if (!validateAttribute(attributeKey, maybeAttributes[attributeKey], method)) result = false;
17
- });
18
- return result;
19
- }
@@ -1,23 +0,0 @@
1
- import { isString } from '../lang';
2
- import logFactory from '../logger';
3
- var log = logFactory('');
4
- var EVENT_TYPE_REGEX = /^[a-zA-Z0-9][-_.:a-zA-Z0-9]{0,79}$/;
5
- export function validateEvent(maybeEvent, method) {
6
- if (maybeEvent == undefined) {
7
- // eslint-disable-line eqeqeq
8
- log.error(method + ": you passed a null or undefined event_type, event_type must be a non-empty string.");
9
- } else if (!isString(maybeEvent)) {
10
- log.error(method + ": you passed an invalid event_type, event_type must be a non-empty string.");
11
- } else {
12
- // It is a string.
13
- if (maybeEvent.length === 0) {
14
- log.error(method + ": you passed an empty event_type, event_type must be a non-empty string.");
15
- } else if (!EVENT_TYPE_REGEX.test(maybeEvent)) {
16
- log.error(method + ": you passed \"" + maybeEvent + "\", event_type must adhere to the regular expression /^[a-zA-Z0-9][-_.:a-zA-Z0-9]{0,79}$/g. This means an event_type must be alphanumeric, cannot be more than 80 characters long, and can only include a dash, underscore, period, or colon as separators of alphanumeric characters.");
17
- } else {
18
- return maybeEvent;
19
- }
20
- }
21
-
22
- return false;
23
- }
@@ -1,69 +0,0 @@
1
- import { isObject, shallowClone, isString, numberIsFinite, isBoolean } from '../lang';
2
- import logFactory from '../logger';
3
- var log = logFactory('');
4
- var ECMA_SIZES = {
5
- NULL: 0,
6
- // While on the JSON it's going to occupy more space, we'll take it as 0 for the approximation.
7
- STRING: 2,
8
- BOOLEAN: 4,
9
- NUMBER: 8
10
- };
11
- var MAX_PROPERTIES_AMOUNT = 300;
12
- var MAX_PROPERTIES_SIZE = 1024 * 32;
13
- var BASE_EVENT_SIZE = 1024; // We assume 1kb events without properties (avg measured)
14
-
15
- export function validateEventProperties(maybeProperties, method) {
16
- if (maybeProperties == undefined) return {
17
- properties: null,
18
- size: BASE_EVENT_SIZE
19
- }; // eslint-disable-line eqeqeq
20
-
21
- if (!isObject(maybeProperties)) {
22
- log.error(method + ": properties must be a plain object.");
23
- return {
24
- properties: false,
25
- size: BASE_EVENT_SIZE
26
- };
27
- }
28
-
29
- var keys = Object.keys(maybeProperties);
30
- var clone = shallowClone(maybeProperties); // To avoid calculating the size twice we'll return it from here.
31
-
32
- var output = {
33
- properties: clone,
34
- size: BASE_EVENT_SIZE // We assume 1kb events without properties (avg measured)
35
-
36
- };
37
-
38
- if (keys.length > MAX_PROPERTIES_AMOUNT) {
39
- log.warn(method + ": Event has more than 300 properties. Some of them will be trimmed when processed.");
40
- }
41
-
42
- for (var i = 0; i < keys.length; i++) {
43
- output.size += keys[i].length * ECMA_SIZES.STRING; // Count the size of the key which is always a string.
44
-
45
- var val = clone[keys[i]];
46
- var isStringVal = isString(val);
47
- var isFiniteVal = numberIsFinite(val);
48
- var isBoolVal = isBoolean(val);
49
- var isNullVal = val === null;
50
-
51
- if (!(isStringVal || isFiniteVal || isBoolVal || isNullVal)) {
52
- // If it's not of valid type.
53
- clone[keys[i]] = null;
54
- val = null;
55
- isNullVal = true;
56
- log.warn(method + ": Property " + keys[i] + " is of invalid type. Setting value to null.");
57
- }
58
-
59
- if (isNullVal) output.size += ECMA_SIZES.NULL;else if (isFiniteVal) output.size += ECMA_SIZES.NUMBER;else if (isBoolVal) output.size += ECMA_SIZES.BOOLEAN;else if (isStringVal) output.size += val.length * ECMA_SIZES.STRING;
60
-
61
- if (output.size > MAX_PROPERTIES_SIZE) {
62
- log.error(method + ": The maximum size allowed for the properties is 32768 bytes, which was exceeded. Event not queued.");
63
- output.properties = false;
64
- break;
65
- }
66
- }
67
-
68
- return output;
69
- }
@@ -1,9 +0,0 @@
1
- import { numberIsFinite } from '../lang';
2
- import logFactory from '../logger';
3
- var log = logFactory('');
4
- export function validateEventValue(maybeValue, method) {
5
- if (numberIsFinite(maybeValue) || maybeValue == undefined) // eslint-disable-line eqeqeq
6
- return maybeValue;
7
- log.error(method + ": value must be a finite number.");
8
- return false;
9
- }
@@ -1,11 +0,0 @@
1
- // This file is just here for easier consumption of the validators.
2
- export { validateApiKey, releaseApiKey } from './apiKey';
3
- export { validateAttributes } from './attributes';
4
- export { validateEvent } from './event';
5
- export { validateEventValue } from './eventValue';
6
- export { validateEventProperties } from './eventProperties';
7
- export { validateKey } from './key';
8
- export { validateSplit, validateSplitExistance } from './split';
9
- export { validateSplits } from './splits';
10
- export { validateTrafficType, validateTrafficTypeExistance } from './trafficType';
11
- export { validateIfDestroyed, validateIfReady } from './isOperational';
@@ -1,14 +0,0 @@
1
- import logFactory from '../logger';
2
- var log = logFactory('', {
3
- displayAllErrors: true
4
- });
5
- export function validateIfDestroyed(context) {
6
- if (!context.get(context.constants.DESTROYED, true)) return true;
7
- log.error('Client has already been destroyed - no calls possible.');
8
- return false;
9
- }
10
- export function validateIfReady(context, method) {
11
- if (context.get(context.constants.READY, true) || context.get(context.constants.READY_FROM_CACHE, true)) return true;
12
- log.warn(method + ": the SDK is not ready, results may be incorrect. Make sure to wait for SDK readiness before using this method.");
13
- return false;
14
- }
@@ -1,50 +0,0 @@
1
- import { isObject, isString, numberIsFinite, toString } from '../lang';
2
- import logFactory from '../logger';
3
- var log = logFactory('');
4
- var KEY_MAX_LENGTH = 250;
5
-
6
- function validateKeyValue(maybeKey, method, type) {
7
- if (maybeKey == undefined) {
8
- // eslint-disable-line eqeqeq
9
- log.error(method + ": you passed a null or undefined " + type + ", " + type + " must be a non-empty string.");
10
- return false;
11
- }
12
-
13
- if (numberIsFinite(maybeKey)) {
14
- log.warn(method + ": " + type + " \"" + maybeKey + "\" is not of type string, converting.");
15
- return toString(maybeKey);
16
- }
17
-
18
- if (isString(maybeKey)) {
19
- // It's a string, start by trimming the value.
20
- maybeKey = maybeKey.trim(); // It's aaaaaall good.
21
-
22
- if (maybeKey.length > 0 && maybeKey.length <= KEY_MAX_LENGTH) return maybeKey;
23
-
24
- if (maybeKey.length === 0) {
25
- log.error(method + ": you passed an empty string, " + type + " must be a non-empty string.");
26
- } else if (maybeKey.length > KEY_MAX_LENGTH) {
27
- log.error(method + ": " + type + " too long, " + type + " must be 250 characters or less.");
28
- }
29
- } else {
30
- log.error(method + ": you passed an invalid " + type + " type, " + type + " must be a non-empty string.");
31
- }
32
-
33
- return false;
34
- }
35
-
36
- export function validateKey(maybeKey, method) {
37
- if (isObject(maybeKey)) {
38
- // Validate key object
39
- var matchingKey = validateKeyValue(maybeKey.matchingKey, method, 'matchingKey');
40
- var bucketingKey = validateKeyValue(maybeKey.bucketingKey, method, 'bucketingKey');
41
- if (matchingKey && bucketingKey) return {
42
- matchingKey: matchingKey,
43
- bucketingKey: bucketingKey
44
- };
45
- log.error(method + ": Key must be an object with bucketingKey and matchingKey with valid string properties.");
46
- return false;
47
- } else {
48
- return validateKeyValue(maybeKey, method, 'key');
49
- }
50
- }
@@ -1,47 +0,0 @@
1
- import { isString } from '../lang';
2
- import { SPLIT_NOT_FOUND } from '../labels';
3
- import logFactory from '../logger';
4
- var log = logFactory(''); // include BOM and nbsp
5
-
6
- var TRIMMABLE_SPACES_REGEX = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/;
7
- export function validateSplit(maybeSplit, method, item) {
8
- if (item === void 0) {
9
- item = 'split name';
10
- }
11
-
12
- if (maybeSplit == undefined) {
13
- // eslint-disable-line eqeqeq
14
- log.error(method + ": you passed a null or undefined " + item + ", " + item + " must be a non-empty string.");
15
- } else if (!isString(maybeSplit)) {
16
- log.error(method + ": you passed an invalid " + item + ", " + item + " must be a non-empty string.");
17
- } else {
18
- if (TRIMMABLE_SPACES_REGEX.test(maybeSplit)) {
19
- log.warn(method + ": " + item + " \"" + maybeSplit + "\" has extra whitespace, trimming.");
20
- maybeSplit = maybeSplit.trim();
21
- }
22
-
23
- if (maybeSplit.length > 0) {
24
- return maybeSplit;
25
- } else {
26
- log.error(method + ": you passed an empty " + item + ", " + item + " must be a non-empty string.");
27
- }
28
- }
29
-
30
- return false;
31
- }
32
- /**
33
- * This is defined here and in this format mostly because of the logger and the fact that it's considered a validation at product level.
34
- * But it's not going to run on the input validation layer. In any case, the most compeling reason to use it as we do is to avoid going to Redis and get a split twice.
35
- */
36
-
37
- export function validateSplitExistance(context, splitName, labelOrSplitObj, method) {
38
- if (context.get(context.constants.READY, true)) {
39
- // Only if it's ready we validate this, otherwise it may just be that the SDK is not ready yet.
40
- if (labelOrSplitObj === SPLIT_NOT_FOUND || labelOrSplitObj == null) {
41
- log.warn(method + ": you passed \"" + splitName + "\" that does not exist in this environment, please double check what Splits exist in the web console.");
42
- return false;
43
- }
44
- }
45
-
46
- return true;
47
- }
@@ -1,121 +0,0 @@
1
- import { STANDALONE_MODE, FILTERS_METADATA } from '../constants';
2
- import { validateSplits } from './splits';
3
- import logFactory from '../logger';
4
- var log = logFactory('splitio-settings');
5
-
6
- function validateFilterType(filterType) {
7
- return FILTERS_METADATA.some(function (filterMetadata) {
8
- return filterMetadata.type === filterType;
9
- });
10
- }
11
- /**
12
- * Validate, deduplicate and sort a given list of filter values.
13
- *
14
- * @param {string} type filter type string used for log messages
15
- * @param {string[]} values list of values to validate, deduplicate and sort
16
- * @param {number} maxLength
17
- * @returns list of valid, unique and alphabetically sorted non-empty strings. The list is empty if `values` param is not a non-empty array or all its values are invalid.
18
- *
19
- * @throws Error if the sanitized list exceeds the length indicated by `maxLength`
20
- */
21
-
22
-
23
- function validateSplitFilter(type, values, maxLength) {
24
- // validate and remove invalid and duplicated values
25
- var result = validateSplits(values, 'settings', type + " filter", type + " filter value");
26
-
27
- if (result) {
28
- // check max length
29
- if (result.length > maxLength) throw new Error(maxLength + " unique values can be specified at most for '" + type + "' filter. You passed " + result.length + ". Please consider reducing the amount or using other filter."); // sort values
30
-
31
- result.sort();
32
- }
33
-
34
- return result || []; // returns empty array if `result` is `false`
35
- }
36
- /**
37
- * Returns a string representing the URL encoded query component of /splitChanges URL.
38
- *
39
- * The possible formats of the query string are:
40
- * - null: if all filters are empty
41
- * - '&names=<comma-separated-values>': if only `byPrefix` filter is undefined
42
- * - '&prefixes=<comma-separated-values>': if only `byName` filter is undefined
43
- * - '&names=<comma-separated-values>&prefixes=<comma-separated-values>': if no one is undefined
44
- *
45
- * @param {Object} groupedFilters object of filters. Each filter must be a list of valid, unique and ordered string values.
46
- * @returns null or string with the `split filter query` component of the URL.
47
- */
48
-
49
-
50
- function queryStringBuilder(groupedFilters) {
51
- var queryParams = [];
52
- FILTERS_METADATA.forEach(function (_ref) {
53
- var type = _ref.type,
54
- queryParam = _ref.queryParam;
55
- var filter = groupedFilters[type];
56
- if (filter.length > 0) queryParams.push(queryParam + filter.map(function (value) {
57
- return encodeURIComponent(value);
58
- }).join(','));
59
- });
60
- return queryParams.length > 0 ? '&' + queryParams.join('&') : null;
61
- }
62
- /**
63
- * Validates `splitFilters` configuration object and parses it into a query string for filtering splits on `/splitChanges` fetch.
64
- *
65
- * @param {Object|undefined} splitFilters split filters configuration param
66
- * @param {string} mode settings mode
67
- * @returns it returns an object with the following properties:
68
- * - `validFilters`: the validated `splitFilters` configuration object defined by the user.
69
- * - `queryString`: the parsed split filter query. it is null if all filters are invalid or all values in filters are invalid.
70
- * - `groupedFilters`: list of values grouped by filter type.
71
- *
72
- * @throws Error if the some of the grouped list of values per filter exceeds the max allowed length
73
- */
74
-
75
-
76
- export default function validateSplitFilters(splitFilters, mode) {
77
- // Validation result schema
78
- var res = {
79
- validFilters: [],
80
- queryString: null,
81
- groupedFilters: {
82
- byName: [],
83
- byPrefix: []
84
- }
85
- }; // do nothing if `splitFilters` param is not a non-empty array or mode is not STANDALONE
86
-
87
- if (!splitFilters) return res; // Warn depending on the mode
88
-
89
- if (mode !== STANDALONE_MODE) {
90
- log.warn("split filters have been configured but will have no effect if mode is not '" + STANDALONE_MODE + "', since synchronization is being deferred to an external tool.");
91
- return res;
92
- } // Check collection type
93
-
94
-
95
- if (!Array.isArray(splitFilters) || splitFilters.length === 0) {
96
- log.warn('splitFilters configuration must be a non-empty array of filter objects.');
97
- return res;
98
- } // Validate filters and group their values by filter type inside `groupedFilters` object
99
-
100
-
101
- res.validFilters = splitFilters.filter(function (filter, index) {
102
- if (filter && validateFilterType(filter.type) && Array.isArray(filter.values)) {
103
- res.groupedFilters[filter.type] = res.groupedFilters[filter.type].concat(filter.values);
104
- return true;
105
- } else {
106
- log.warn("split filter at position '" + index + "' is invalid. It must be an object with a valid filter type ('byName' or 'byPrefix') and a list of 'values'.");
107
- }
108
-
109
- return false;
110
- }); // By filter type, remove invalid and duplicated values and order them
111
-
112
- FILTERS_METADATA.forEach(function (_ref2) {
113
- var type = _ref2.type,
114
- maxLength = _ref2.maxLength;
115
- if (res.groupedFilters[type].length > 0) res.groupedFilters[type] = validateSplitFilter(type, res.groupedFilters[type], maxLength);
116
- }); // build query string
117
-
118
- res.queryString = queryStringBuilder(res.groupedFilters);
119
- log.debug("splits filtering criteria is '" + res.queryString + "'.");
120
- return res;
121
- }
@@ -1,27 +0,0 @@
1
- import { uniq } from '../lang';
2
- import logFactory from '../logger';
3
- import { validateSplit } from './split';
4
- var log = logFactory('');
5
- export function validateSplits(maybeSplits, method, listName, item) {
6
- if (listName === void 0) {
7
- listName = 'split_names';
8
- }
9
-
10
- if (item === void 0) {
11
- item = 'split name';
12
- }
13
-
14
- if (Array.isArray(maybeSplits) && maybeSplits.length > 0) {
15
- var validatedArray = []; // Remove invalid values
16
-
17
- maybeSplits.forEach(function (maybeSplit) {
18
- var splitName = validateSplit(maybeSplit, method, item);
19
- if (splitName) validatedArray.push(splitName);
20
- }); // Strip off duplicated values if we have valid split names then return
21
-
22
- if (validatedArray.length) return uniq(validatedArray);
23
- }
24
-
25
- log.error(method + ": " + listName + " must be a non-empty array.");
26
- return false;
27
- }
@@ -1,55 +0,0 @@
1
- import { isString } from '../lang';
2
- import thenable from '../promise/thenable';
3
- import { LOCALHOST_MODE } from '../constants';
4
- import logFactory from '../logger';
5
- var log = logFactory('');
6
- var CAPITAL_LETTERS_REGEX = /[A-Z]/;
7
- export function validateTrafficType(maybeTT, method) {
8
- if (maybeTT == undefined) {
9
- // eslint-disable-line eqeqeq
10
- log.error(method + ": you passed a null or undefined traffic_type_name, traffic_type_name must be a non-empty string.");
11
- } else if (!isString(maybeTT)) {
12
- log.error(method + ": you passed an invalid traffic_type_name, traffic_type_name must be a non-empty string.");
13
- } else {
14
- if (maybeTT.length === 0) {
15
- log.error(method + ": you passed an empty traffic_type_name, traffic_type_name must be a non-empty string.");
16
- } else {
17
- if (CAPITAL_LETTERS_REGEX.test(maybeTT)) {
18
- log.warn(method + ": traffic_type_name should be all lowercase - converting string to lowercase.");
19
- maybeTT = maybeTT.toLowerCase();
20
- }
21
-
22
- return maybeTT;
23
- }
24
- }
25
-
26
- return false;
27
- }
28
-
29
- function logTTExistanceWarning(method, ttName) {
30
- log.warn(method + ": Traffic Type " + ttName + " does not have any corresponding Splits in this environment, make sure you're tracking your events to a valid traffic type defined in the Split console.");
31
- }
32
- /**
33
- * Separated from the previous method since on some cases it'll be async.
34
- */
35
-
36
-
37
- export function validateTrafficTypeExistance(maybeTT, context, method) {
38
- var isReady = context.get(context.constants.READY, true);
39
- var settings = context.get(context.constants.SETTINGS);
40
- var splitsStorage = context.get(context.constants.STORAGE).splits; // If not ready or in localhost mode, we won't run the validation
41
-
42
- if (!isReady || settings.mode === LOCALHOST_MODE) return true;
43
- var res = splitsStorage.trafficTypeExists(maybeTT);
44
-
45
- if (thenable(res)) {
46
- res.then(function (isValid) {
47
- if (!isValid) logTTExistanceWarning(method, maybeTT);
48
- return isValid; // propagate result
49
- });
50
- } else {
51
- if (!res) logTTExistanceWarning(method, maybeTT);
52
- }
53
-
54
- return res;
55
- }
@@ -1,11 +0,0 @@
1
- import { encodeToBase64 } from '../base64';
2
- import murmur from '../../engine/engine/murmur3/murmur3';
3
- /**
4
- * Returns the hash of a given user key
5
- *
6
- * @throws {ReferenceError} if `btoa` function is not defined (for browser)
7
- */
8
-
9
- export function hashUserKey(userKey) {
10
- return encodeToBase64(murmur.hash(userKey, 0).toString());
11
- }
@@ -1,14 +0,0 @@
1
- import { decodeFromBase64 } from '../base64';
2
- /**
3
- * Decode a JWT token
4
- */
5
-
6
- export function decodeJWTtoken(token) {
7
- var base64Url = token.split('.')[1];
8
- var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/'); // no need to check availability of `encodeURIComponent`, since it is a function highly supported in browsers, node and other platforms.
9
-
10
- var jsonPayload = decodeURIComponent(decodeFromBase64(base64).split('').map(function (c) {
11
- return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
12
- }).join(''));
13
- return JSON.parse(jsonPayload);
14
- }
@@ -1,38 +0,0 @@
1
- /**
2
- Copyright 2016 Split Software
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- **/
16
- import { isObject } from '../lang';
17
- /**
18
- * Verify type of key and return the set key property
19
- * If undefinedIfNotObj === true, it means that unless explicitly defined (using the Key object)
20
- * we will return undefined. (if it was a string, there's no bucketingKey)
21
- */
22
-
23
- function KeyGetterFactory(keyProperty, undefinedIfNotObj) {
24
- if (undefinedIfNotObj === void 0) {
25
- undefinedIfNotObj = false;
26
- }
27
-
28
- return function getKeyProperty(key) {
29
- if (isObject(key)) {
30
- return key[keyProperty];
31
- }
32
-
33
- return undefinedIfNotObj ? undefined : key;
34
- };
35
- }
36
-
37
- export var matching = KeyGetterFactory('matchingKey');
38
- export var bucketing = KeyGetterFactory('bucketingKey', true);
@@ -1,34 +0,0 @@
1
- /**
2
- Copyright 2016 Split Software
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- **/
16
- import { isObject } from '../lang';
17
- /**
18
- * Verify type of key and return a valid object key used for get treatment for a
19
- * specific split.
20
- */
21
-
22
- export default (function (key) {
23
- if (isObject(key)) {
24
- return {
25
- matchingKey: key.matchingKey,
26
- bucketingKey: key.bucketingKey
27
- };
28
- } else {
29
- return {
30
- matchingKey: key,
31
- bucketingKey: key
32
- };
33
- }
34
- });
@@ -1,7 +0,0 @@
1
- export var SPLIT_KILLED = 'killed';
2
- export var NO_CONDITION_MATCH = 'default rule';
3
- export var SPLIT_NOT_FOUND = 'definition not found';
4
- export var SDK_NOT_READY = 'not ready';
5
- export var EXCEPTION = 'exception';
6
- export var SPLIT_ARCHIVED = 'archived';
7
- export var NOT_IN_SPLIT = 'not in split';
@@ -1,41 +0,0 @@
1
- import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
2
- import _wrapNativeSuper from "@babel/runtime/helpers/esm/wrapNativeSuper";
3
- export var SplitError = /*#__PURE__*/function (_Error) {
4
- _inheritsLoose(SplitError, _Error);
5
-
6
- function SplitError(msg) {
7
- var _this;
8
-
9
- if (msg === void 0) {
10
- msg = 'Split Error';
11
- }
12
-
13
- _this = _Error.call(this, msg) || this;
14
- _this.message = msg;
15
- return _this;
16
- }
17
-
18
- return SplitError;
19
- }( /*#__PURE__*/_wrapNativeSuper(Error));
20
- export var SplitTimeoutError = /*#__PURE__*/function (_SplitError) {
21
- _inheritsLoose(SplitTimeoutError, _SplitError);
22
-
23
- function SplitTimeoutError(msg) {
24
- return _SplitError.call(this, msg || 'Split Timeout Error') || this;
25
- }
26
-
27
- return SplitTimeoutError;
28
- }(SplitError);
29
- export var SplitNetworkError = /*#__PURE__*/function (_SplitError2) {
30
- _inheritsLoose(SplitNetworkError, _SplitError2);
31
-
32
- function SplitNetworkError(msg, code) {
33
- var _this2;
34
-
35
- _this2 = _SplitError2.call(this, msg || 'Split Network Error') || this;
36
- _this2.statusCode = code;
37
- return _this2;
38
- }
39
-
40
- return SplitNetworkError;
41
- }(SplitError);