@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
package/CHANGES.txt CHANGED
@@ -1,8 +1,13 @@
1
+ 10.17.2 (January 31, 2022)
2
+ - Updated some dependencies for vulnerability fixes.
3
+ - Bugfixing - Fixed internal handling of Fetch API promise rejection, to avoid unhandled exceptions on some Web browsers (issue https://github.com/splitio/javascript-client/issues/621)
4
+
1
5
  10.17.1 (January 13, 2022)
6
+ - Updated some transitive dependencies for vulnerability fixes.
2
7
  - Bugfixing - Fixed internal handling of SDK_READY_FROM_CACHE event, to avoid CSP issues in browsers.
3
8
 
4
9
  10.17.0 (January 3, 2022)
5
- - Added Attribute binding feature to allow to optionally keep user attributes loaded within the SDK, along with the user ID, for easier usage when requesting flag.
10
+ - Added support to SDK clients on browser to optionally bind attributes to the client, keeping these loaded within the SDK along with the user ID, for easier usage when requesting flag.
6
11
  - Bugfixing - Fixed an issue returning dynamic configs when the treatment name contains a dot (".").
7
12
 
8
13
  10.16.1 (October 25, 2021)
@@ -0,0 +1,45 @@
1
+ import { splitApiFactory } from '@splitsoftware/splitio-commons/esm/services/splitApi';
2
+ import { syncManagerOnlineFactory } from '@splitsoftware/splitio-commons/esm/sync/syncManagerOnline';
3
+ import { pushManagerFactory } from '@splitsoftware/splitio-commons/esm/sync/streaming/pushManager';
4
+ import { pollingManagerCSFactory } from '@splitsoftware/splitio-commons/esm/sync/polling/pollingManagerCS';
5
+ import { InLocalStorage } from '@splitsoftware/splitio-commons/esm/storages/inLocalStorage';
6
+ import { InMemoryStorageCSFactory } from '@splitsoftware/splitio-commons/esm/storages/inMemory/InMemoryStorageCS';
7
+ import { sdkManagerFactory } from '@splitsoftware/splitio-commons/esm/sdkManager';
8
+ import { sdkClientMethodCSFactory } from '@splitsoftware/splitio-commons/esm/sdkClient/sdkClientMethodCSWithTT';
9
+ import { impressionObserverCSFactory } from '@splitsoftware/splitio-commons/esm/trackers/impressionObserver/impressionObserverCS';
10
+ import { integrationsManagerFactory } from '@splitsoftware/splitio-commons/esm/integrations/browser';
11
+ import { __InLocalStorageMockFactory } from '@splitsoftware/splitio-commons/esm/utils/settingsValidation/storage/storageCS';
12
+ import { sdkFactory } from '@splitsoftware/splitio-commons/esm/sdkFactory';
13
+ import { settingsFactory } from '../settings/clientSide';
14
+ import { shouldAddPt } from './commons';
15
+ import { platform, signalListener } from '../platform';
16
+ var syncManagerOnlineCSFactory = syncManagerOnlineFactory(pollingManagerCSFactory, pushManagerFactory);
17
+ /**
18
+ *
19
+ * @param {import("@splitsoftware/splitio-commons/types/types").ISettings} settings
20
+ */
21
+
22
+ function getModules(settings) {
23
+ return {
24
+ settings: settings,
25
+ platform: platform,
26
+ storageFactory: settings.storage.type === 'LOCALSTORAGE' ? InLocalStorage({
27
+ prefix: settings.storage.prefix
28
+ }) : settings.storage.__originalType === 'LOCALSTORAGE' ? __InLocalStorageMockFactory : InMemoryStorageCSFactory,
29
+ splitApiFactory: settings.mode === 'localhost' ? undefined : splitApiFactory,
30
+ syncManagerFactory: settings.mode === 'localhost' ? settings.sync.localhostMode : syncManagerOnlineCSFactory,
31
+ sdkManagerFactory: sdkManagerFactory,
32
+ sdkClientMethodFactory: sdkClientMethodCSFactory,
33
+ SignalListener: settings.mode === 'localhost' ? undefined : signalListener,
34
+ impressionListener: settings.impressionListener,
35
+ integrationsManagerFactory: settings.integrations && settings.integrations.length > 0 ? integrationsManagerFactory.bind(null, settings.integrations) : undefined,
36
+ // @TODO consider not including in debug mode?
37
+ impressionsObserverFactory: shouldAddPt(settings) ? impressionObserverCSFactory : undefined
38
+ };
39
+ }
40
+
41
+ export function SplitFactory(config) {
42
+ var settings = settingsFactory(config);
43
+ var modules = getModules(settings);
44
+ return sdkFactory(modules);
45
+ }
@@ -0,0 +1,16 @@
1
+ import { OPTIMIZED, PRODUCER_MODE, STANDALONE_MODE } from '@splitsoftware/splitio-commons/esm/utils/constants';
2
+ /**
3
+ * Checks if impressions previous time should be added or not.
4
+ */
5
+
6
+ export function shouldAddPt(settings) {
7
+ return [PRODUCER_MODE, STANDALONE_MODE].indexOf(settings.mode) > -1 ? true : false;
8
+ }
9
+ /**
10
+ * Checks if it should dedupe impressions or not.
11
+ */
12
+
13
+ export function shouldBeOptimized(settings) {
14
+ if (!shouldAddPt(settings)) return false;
15
+ return settings.sync.impressionsMode === OPTIMIZED ? true : false;
16
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "main": "./serverSide.js",
3
+ "browser": "./clientSide.js"
4
+ }
@@ -0,0 +1,42 @@
1
+ import { splitApiFactory } from '@splitsoftware/splitio-commons/esm/services/splitApi';
2
+ import { syncManagerOnlineFactory } from '@splitsoftware/splitio-commons/esm/sync/syncManagerOnline';
3
+ import { pushManagerFactory } from '@splitsoftware/splitio-commons/esm/sync/streaming/pushManager';
4
+ import { pollingManagerSSFactory } from '@splitsoftware/splitio-commons/esm/sync/polling/pollingManagerSS';
5
+ import { InRedisStorage } from '@splitsoftware/splitio-commons/esm/storages/inRedis';
6
+ import { InMemoryStorageFactory } from '@splitsoftware/splitio-commons/esm/storages/inMemory/InMemoryStorage';
7
+ import { sdkManagerFactory } from '@splitsoftware/splitio-commons/esm/sdkManager';
8
+ import { sdkClientMethodFactory } from '@splitsoftware/splitio-commons/esm/sdkClient/sdkClientMethod';
9
+ import { impressionObserverSSFactory } from '@splitsoftware/splitio-commons/esm/trackers/impressionObserver/impressionObserverSS';
10
+ import { sdkFactory } from '@splitsoftware/splitio-commons/esm/sdkFactory';
11
+ import { settingsFactory } from '../settings/serverSide';
12
+ import { shouldAddPt } from './commons';
13
+ import { platform, signalListener } from '../platform';
14
+ var syncManagerOnlineSSFactory = syncManagerOnlineFactory(pollingManagerSSFactory, pushManagerFactory);
15
+ /**
16
+ *
17
+ * @param {import("@splitsoftware/splitio-commons/types/types").ISettings} settings
18
+ */
19
+
20
+ function getModules(settings) {
21
+ return {
22
+ settings: settings,
23
+ platform: platform,
24
+ storageFactory: settings.storage.type === 'REDIS' ? InRedisStorage({
25
+ prefix: settings.storage.prefix,
26
+ options: settings.storage.options
27
+ }) : InMemoryStorageFactory,
28
+ splitApiFactory: settings.mode === 'localhost' ? undefined : splitApiFactory,
29
+ syncManagerFactory: settings.storage.type === 'REDIS' ? undefined : settings.mode === 'localhost' ? settings.sync.localhostMode : syncManagerOnlineSSFactory,
30
+ sdkManagerFactory: sdkManagerFactory,
31
+ sdkClientMethodFactory: sdkClientMethodFactory,
32
+ SignalListener: settings.mode === 'localhost' ? undefined : signalListener,
33
+ impressionListener: settings.impressionListener,
34
+ impressionsObserverFactory: shouldAddPt(settings) ? impressionObserverSSFactory : undefined
35
+ };
36
+ }
37
+
38
+ export function SplitFactory(config) {
39
+ var settings = settingsFactory(config);
40
+ var modules = getModules(settings);
41
+ return sdkFactory(modules);
42
+ }
package/es/index.js CHANGED
@@ -1,132 +1 @@
1
- import ManagerFactory from './manager';
2
- import StorageFactory from './storage';
3
- import ReadinessGateFacade from './readiness';
4
- import SettingsFactory from './utils/settings';
5
- import Context from './utils/context';
6
- import keyParser from './utils/key/parser';
7
- import logFactory, { API } from './utils/logger';
8
- var log = logFactory('splitio');
9
- import tracker from './utils/timeTracker';
10
- import SplitFactoryOnline from './factory/online';
11
- import SplitFactoryOffline from './factory/offline';
12
- import sdkStatusManager from './readiness/statusManager';
13
- import { LOCALHOST_MODE } from './utils/constants';
14
- import { validateApiKey, validateKey, validateTrafficType } from './utils/inputValidation';
15
- import IntegrationsManagerFactory from './integrations';
16
- import ImpressionCounter from './impressions/counter';
17
-
18
- var buildInstanceId = function buildInstanceId(key, trafficType) {
19
- return (key.matchingKey ? key.matchingKey : key) + "-" + (key.bucketingKey ? key.bucketingKey : key) + "-" + (trafficType !== undefined ? trafficType : '');
20
- };
21
-
22
- export function SplitFactory(config) {
23
- // Cache instances created per factory.
24
- var clientInstances = {}; // Tracking times. We need to do it here because we need the storage created.
25
-
26
- var readyLatencyTrackers = {
27
- splitsReadyTracker: tracker.start(tracker.TaskNames.SPLITS_READY),
28
- segmentsReadyTracker: tracker.start(tracker.TaskNames.SEGMENTS_READY),
29
- sdkReadyTracker: tracker.start(tracker.TaskNames.SDK_READY)
30
- };
31
- var context = new Context(); // Put settings config within context
32
-
33
- var settings = SettingsFactory(config);
34
- context.put(context.constants.SETTINGS, settings); // We will just log and allow for the SDK to end up throwing an SDK_TIMEOUT event for devs to handle.
35
-
36
- validateApiKey(settings.core.authorizationKey); // Put readiness and statusManager within context
37
- // Done before adding storage, to let it access readiness gate synchronously
38
-
39
- var gateFactory = ReadinessGateFacade();
40
- var readiness = gateFactory(settings.startup.readyTimeout);
41
- context.put(context.constants.READINESS, readiness);
42
- var statusManager = sdkStatusManager(context);
43
- context.put(context.constants.STATUS_MANAGER, statusManager); // Put storage config within context
44
-
45
- var storage = StorageFactory(context);
46
- context.put(context.constants.STORAGE, storage); // Put counter
47
-
48
- var impressionsCounter = new ImpressionCounter(); // Instantiates new counter for Impressions
49
-
50
- context.put(context.constants.IMPRESSIONS_COUNTER, impressionsCounter); // Put integrationsManager within context.
51
- // It needs to access the storage, settings and potentially other pieces, so it's registered after them.
52
-
53
- var integrationsManager = IntegrationsManagerFactory(context);
54
- context.put(context.constants.INTEGRATIONS_MANAGER, integrationsManager); // Define which type of factory to use
55
-
56
- var splitFactory = settings.mode === LOCALHOST_MODE ? SplitFactoryOffline : SplitFactoryOnline;
57
-
58
- var _splitFactory = splitFactory(context, readyLatencyTrackers),
59
- mainClientInstance = _splitFactory.api,
60
- mainClientMetricCollectors = _splitFactory.metricCollectors; // It makes no sense to have multiple instances of the manager.
61
-
62
-
63
- var managerInstance = ManagerFactory(storage.splits, context);
64
- var parsedDefaultKey = keyParser(settings.core.key);
65
- var defaultInstanceId = buildInstanceId(parsedDefaultKey, settings.core.trafficType);
66
- clientInstances[defaultInstanceId] = mainClientInstance;
67
- log.info('New Split SDK instance created.');
68
- return {
69
- // Split evaluation and event tracking engine
70
- client: function client(key, trafficType) {
71
- if (key === undefined) {
72
- log.debug('Retrieving default SDK client.');
73
- return mainClientInstance;
74
- }
75
-
76
- if (typeof storage.shared != 'function') {
77
- throw new Error('Shared Client not supported by the storage mechanism. Create isolated instances instead.');
78
- } // Validate the key value
79
-
80
-
81
- var validKey = validateKey(key, 'Shared Client instantiation');
82
-
83
- if (validKey === false) {
84
- throw new Error('Shared Client needs a valid key.');
85
- }
86
-
87
- var validTrafficType;
88
-
89
- if (trafficType !== undefined) {
90
- validTrafficType = validateTrafficType(trafficType, 'Shared Client instantiation');
91
-
92
- if (validTrafficType === false) {
93
- throw new Error('Shared Client needs a valid traffic type or no traffic type at all.');
94
- }
95
- }
96
-
97
- var instanceId = buildInstanceId(validKey, validTrafficType);
98
-
99
- if (!clientInstances[instanceId]) {
100
- var sharedSettings = settings.overrideKeyAndTT(validKey, validTrafficType);
101
- var sharedContext = new Context();
102
-
103
- var _readiness = gateFactory(sharedSettings.startup.readyTimeout);
104
-
105
- sharedContext.put(context.constants.READY_FROM_CACHE, context.get(context.constants.READY_FROM_CACHE, true));
106
- sharedContext.put(context.constants.READINESS, _readiness); // for shared clients, the internal offset of added/removed SDK_READY callbacks is -1
107
-
108
- sharedContext.put(context.constants.STATUS_MANAGER, sdkStatusManager(sharedContext, -1));
109
- sharedContext.put(context.constants.SETTINGS, sharedSettings);
110
- sharedContext.put(context.constants.STORAGE, storage.shared(sharedSettings));
111
- sharedContext.put(context.constants.IMPRESSIONS_COUNTER, impressionsCounter); // As shared clients reuse all the storage information, we don't need to check here if we
112
- // will use offline or online mode. We should stick with the original decision.
113
-
114
- clientInstances[instanceId] = splitFactory(sharedContext, false, mainClientMetricCollectors).api;
115
- log.info('New shared client instance created.');
116
- } else {
117
- log.debug('Retrieving existing SDK client.');
118
- }
119
-
120
- return clientInstances[instanceId];
121
- },
122
- // Manager API to explore available information
123
- manager: function manager() {
124
- log.info('Manager instance retrieved.');
125
- return managerInstance;
126
- },
127
- // Logger wrapper API
128
- Logger: API,
129
- // Expose SDK settings
130
- settings: settings
131
- };
132
- }
1
+ export { SplitFactory } from './factory';
@@ -0,0 +1,11 @@
1
+ // @TODO check 'events': it is a CommonJS module. Can have issues with ESM bundlers.
2
+ import EventEmitter from 'events';
3
+ import { getFetch } from '../platform/getFetch/browser';
4
+ import { getEventSource } from '../platform/getEventSource/browser';
5
+ import { BrowserSignalListener } from '@splitsoftware/splitio-commons/esm/listeners/browser';
6
+ export var platform = {
7
+ getFetch: getFetch,
8
+ getEventSource: getEventSource,
9
+ EventEmitter: EventEmitter
10
+ };
11
+ export var signalListener = BrowserSignalListener;
@@ -1,3 +1,3 @@
1
- export default function getEventSource() {
1
+ export function getEventSource() {
2
2
  return typeof EventSource === 'function' ? EventSource : undefined;
3
3
  }
@@ -8,7 +8,7 @@ export function __setEventSource(eventSource) {
8
8
  export function __restore() {
9
9
  __isCustom = false;
10
10
  }
11
- export default function getEventSource() {
11
+ export function getEventSource() {
12
12
  // returns EventSource at `eventsource` package. If not available, return global EventSource or undefined
13
13
  try {
14
14
  return __isCustom ? __eventSource : require('eventsource');
@@ -1,4 +1,4 @@
1
1
  import unfetch from 'unfetch';
2
- export default function getFetch() {
2
+ export function getFetch() {
3
3
  return typeof fetch === 'function' ? fetch : unfetch;
4
4
  }
@@ -13,6 +13,6 @@ try {
13
13
  export function __setFetch(fetch) {
14
14
  nodeFetch = fetch;
15
15
  }
16
- export default function getFetch() {
16
+ export function getFetch() {
17
17
  return nodeFetch;
18
18
  }
@@ -0,0 +1,13 @@
1
+ // @TODO check 'events': Node is using events API or the installed dependency?
2
+ import EventEmitter from 'events';
3
+ import { getFetch } from '../platform/getFetch/node';
4
+ import { getEventSource } from '../platform/getEventSource/node';
5
+ import { getOptions } from '../platform/request/options/node';
6
+ import { NodeSignalListener } from '@splitsoftware/splitio-commons/esm/listeners/node';
7
+ export var platform = {
8
+ getOptions: getOptions,
9
+ getFetch: getFetch,
10
+ getEventSource: getEventSource,
11
+ EventEmitter: EventEmitter
12
+ };
13
+ export var signalListener = NodeSignalListener;
File without changes
@@ -1,5 +1,5 @@
1
1
  /**
2
- Copyright 2016 Split Software
2
+ Copyright 2022 Split Software
3
3
 
4
4
  Licensed under the Apache License, Version 2.0 (the "License");
5
5
  you may not use this file except in compliance with the License.
@@ -21,7 +21,7 @@ var agent = new https.Agent({
21
21
  keepAlive: true,
22
22
  keepAliveMsecs: 1500
23
23
  });
24
- export default function getOptions() {
24
+ export function getOptions() {
25
25
  return {
26
26
  agent: agent
27
27
  };
@@ -0,0 +1,18 @@
1
+ import { settingsValidation } from '@splitsoftware/splitio-commons/esm/utils/settingsValidation';
2
+ import { defaults } from './defaults/browser';
3
+ import { validateStorage } from './storage/browser';
4
+ import { validateIntegrations } from './integrations/browser';
5
+ import { validateLogger } from '@splitsoftware/splitio-commons/esm/utils/settingsValidation/logger/builtinLogger';
6
+ import { LocalhostFromObject } from '@splitsoftware/splitio-commons/esm/sync/offline/LocalhostFromObject';
7
+ var params = {
8
+ defaults: defaults,
9
+ storage: validateStorage,
10
+ integrations: validateIntegrations,
11
+ logger: validateLogger,
12
+ localhost: function localhost() {
13
+ return LocalhostFromObject();
14
+ }
15
+ };
16
+ export function settingsFactory(config) {
17
+ return settingsValidation(config, params);
18
+ }
@@ -1,8 +1,5 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.default = void 0;
5
- var _default = {
1
+ import { packageVersion } from './version';
2
+ export var defaults = {
6
3
  startup: {
7
4
  // Stress the request time used while starting up the SDK.
8
5
  requestTimeoutBeforeReady: 5,
@@ -12,6 +9,7 @@ var _default = {
12
9
  readyTimeout: 10,
13
10
  // Amount of time we will wait before the first push of events.
14
11
  eventsFirstPushWindow: 10
15
- }
16
- };
17
- exports.default = _default;
12
+ },
13
+ // Instance version.
14
+ version: "javascript-" + packageVersion
15
+ };
@@ -1,4 +1,5 @@
1
- export default {
1
+ import { packageVersion } from './version';
2
+ export var defaults = {
2
3
  core: {
3
4
  // Default is true.
4
5
  IPAddressesEnabled: true
@@ -17,5 +18,7 @@ export default {
17
18
  featuresRefreshRate: 5,
18
19
  impressionsRefreshRate: 300
19
20
  },
20
- features: '.split'
21
- };
21
+ features: '.split',
22
+ // Instance version.
23
+ version: "nodejs-" + packageVersion
24
+ };
@@ -0,0 +1 @@
1
+ export var packageVersion = '10.17.3-rc.0';
@@ -0,0 +1,5 @@
1
+ import { GOOGLE_ANALYTICS_TO_SPLIT, SPLIT_TO_GOOGLE_ANALYTICS } from '@splitsoftware/splitio-commons/esm/utils/constants/browser';
2
+ import { validateConfigurableIntegrations } from '@splitsoftware/splitio-commons/esm/utils/settingsValidation/integrations/configurable';
3
+ export var validateIntegrations = function validateIntegrations(settings) {
4
+ return validateConfigurableIntegrations(settings, [GOOGLE_ANALYTICS_TO_SPLIT, SPLIT_TO_GOOGLE_ANALYTICS]);
5
+ };
@@ -0,0 +1,5 @@
1
+ // For now, Node SDK does not support integrations,
2
+ // thus any integrations settings is parsed into undefined.
3
+ export var validateIntegrations = function validateIntegrations() {
4
+ return [];
5
+ };
@@ -0,0 +1,4 @@
1
+ {
2
+ "main": "./serverSide.js",
3
+ "browser": "./clientSide.js"
4
+ }
@@ -1,5 +1,5 @@
1
1
  /**
2
- Copyright 2016 Split Software
2
+ Copyright 2022 Split Software
3
3
 
4
4
  Licensed under the Apache License, Version 2.0 (the "License");
5
5
  you may not use this file except in compliance with the License.
@@ -15,9 +15,11 @@ limitations under the License.
15
15
  **/
16
16
  import osFunction from 'os';
17
17
  import ipFunction from 'ip';
18
- import { UNKNOWN, NA } from '../../constants';
19
- export default function generateRuntimeSettings(isIPAddressesEnabled, isConsumerMode) {
20
- // If the values are not available, default to false (for standalone) or "unknown" (for consumer mode, to be used on Redis keys)
18
+ import { UNKNOWN, NA, CONSUMER_MODE } from '@splitsoftware/splitio-commons/esm/utils/constants';
19
+ export function validateRuntime(settings) {
20
+ var isIPAddressesEnabled = settings.core.IPAddressesEnabled === true;
21
+ var isConsumerMode = settings.mode === CONSUMER_MODE; // If the values are not available, default to false (for standalone) or "unknown" (for consumer mode, to be used on Redis keys)
22
+
21
23
  var ip = ipFunction.address() || (isConsumerMode ? UNKNOWN : false);
22
24
  var hostname = osFunction.hostname() || (isConsumerMode ? UNKNOWN : false);
23
25
 
@@ -0,0 +1,20 @@
1
+ import { settingsValidation } from '@splitsoftware/splitio-commons/esm/utils/settingsValidation';
2
+ import { defaults } from './defaults/node';
3
+ import { validateRuntime } from './runtime/node';
4
+ import { validateStorage } from './storage/node';
5
+ import { validateIntegrations } from './integrations/node';
6
+ import { validateLogger } from '@splitsoftware/splitio-commons/esm/utils/settingsValidation/logger/builtinLogger';
7
+ import { LocalhostFromFile } from '@splitsoftware/splitio-commons/esm/sync/offline/LocalhostFromFile';
8
+ var params = {
9
+ defaults: defaults,
10
+ runtime: validateRuntime,
11
+ storage: validateStorage,
12
+ integrations: validateIntegrations,
13
+ logger: validateLogger,
14
+ localhost: function localhost() {
15
+ return LocalhostFromFile();
16
+ }
17
+ };
18
+ export function settingsFactory(config) {
19
+ return settingsValidation(config, params);
20
+ }
@@ -1,5 +1,5 @@
1
1
  /**
2
- Copyright 2016 Split Software
2
+ Copyright 2022 Split Software
3
3
 
4
4
  Licensed under the Apache License, Version 2.0 (the "License");
5
5
  you may not use this file except in compliance with the License.
@@ -13,16 +13,16 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
13
  See the License for the specific language governing permissions and
14
14
  limitations under the License.
15
15
  **/
16
- import logFactory from '../../../utils/logger';
17
- var log = logFactory('splitio-settings');
18
- import isLocalStorageAvailable from '../../../utils/localstorage/isAvailable';
19
- import { LOCALHOST_MODE, STORAGE_MEMORY, STORAGE_LOCALSTORAGE } from '../../../utils/constants';
20
-
21
- var ParseStorageSettings = function ParseStorageSettings(settings) {
16
+ import { isLocalStorageAvailable } from '@splitsoftware/splitio-commons/esm/utils/env/isLocalStorageAvailable';
17
+ import { LOCALHOST_MODE, STORAGE_MEMORY } from '@splitsoftware/splitio-commons/esm/utils/constants';
18
+ var STORAGE_LOCALSTORAGE = 'LOCALSTORAGE';
19
+ export function validateStorage(settings) {
22
20
  var mode = settings.mode,
23
- _settings$storage = settings.storage,
24
- _settings$storage$typ = _settings$storage.type,
25
- type = _settings$storage$typ === void 0 ? STORAGE_MEMORY : _settings$storage$typ,
21
+ _settings$storage = settings.storage;
22
+ _settings$storage = _settings$storage === void 0 ? {
23
+ type: STORAGE_MEMORY
24
+ } : _settings$storage;
25
+ var type = _settings$storage.type,
26
26
  _settings$storage$opt = _settings$storage.options,
27
27
  options = _settings$storage$opt === void 0 ? {} : _settings$storage$opt,
28
28
  prefix = _settings$storage.prefix;
@@ -50,7 +50,7 @@ var ParseStorageSettings = function ParseStorageSettings(settings) {
50
50
 
51
51
  if (type !== STORAGE_MEMORY && type !== STORAGE_LOCALSTORAGE || type === STORAGE_LOCALSTORAGE && !isLocalStorageAvailable()) {
52
52
  fallbackToMemory();
53
- log.warn('Invalid or unavailable storage. Fallbacking into MEMORY storage');
53
+ settings.log.warn('Invalid or unavailable storage. Fallbacking into MEMORY storage');
54
54
  }
55
55
 
56
56
  return {
@@ -59,6 +59,4 @@ var ParseStorageSettings = function ParseStorageSettings(settings) {
59
59
  prefix: prefix,
60
60
  __originalType: __originalType
61
61
  };
62
- };
63
-
64
- export default ParseStorageSettings;
62
+ }
@@ -1,5 +1,5 @@
1
1
  /**
2
- Copyright 2016 Split Software
2
+ Copyright 2022 Split Software
3
3
 
4
4
  Licensed under the Apache License, Version 2.0 (the "License");
5
5
  you may not use this file except in compliance with the License.
@@ -13,12 +13,15 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
13
  See the License for the specific language governing permissions and
14
14
  limitations under the License.
15
15
  **/
16
- import { LOCALHOST_MODE, STORAGE_MEMORY, STORAGE_REDIS } from '../../constants';
17
-
18
- var ParseStorageSettings = function ParseStorageSettings(settings) {
16
+ import { LOCALHOST_MODE, STORAGE_MEMORY } from '@splitsoftware/splitio-commons/esm/utils/constants';
17
+ var STORAGE_REDIS = 'REDIS';
18
+ export function validateStorage(settings) {
19
19
  var mode = settings.mode,
20
- _settings$storage = settings.storage,
21
- type = _settings$storage.type,
20
+ _settings$storage = settings.storage;
21
+ _settings$storage = _settings$storage === void 0 ? {
22
+ type: STORAGE_MEMORY
23
+ } : _settings$storage;
24
+ var type = _settings$storage.type,
22
25
  _settings$storage$opt = _settings$storage.options,
23
26
  options = _settings$storage$opt === void 0 ? {} : _settings$storage$opt,
24
27
  prefix = _settings$storage.prefix;
@@ -81,6 +84,4 @@ var ParseStorageSettings = function ParseStorageSettings(settings) {
81
84
  };
82
85
  }
83
86
  }
84
- };
85
-
86
- export default ParseStorageSettings;
87
+ }
package/es/umd.js CHANGED
@@ -1,2 +1,3 @@
1
- import { SplitFactory } from './index';
1
+ import { SplitFactory } from './index'; // eslint-disable-next-line import/no-default-export
2
+
2
3
  export default SplitFactory;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.SplitFactory = SplitFactory;
5
+
6
+ var _splitApi = require("@splitsoftware/splitio-commons/cjs/services/splitApi");
7
+
8
+ var _syncManagerOnline = require("@splitsoftware/splitio-commons/cjs/sync/syncManagerOnline");
9
+
10
+ var _pushManager = require("@splitsoftware/splitio-commons/cjs/sync/streaming/pushManager");
11
+
12
+ var _pollingManagerCS = require("@splitsoftware/splitio-commons/cjs/sync/polling/pollingManagerCS");
13
+
14
+ var _inLocalStorage = require("@splitsoftware/splitio-commons/cjs/storages/inLocalStorage");
15
+
16
+ var _InMemoryStorageCS = require("@splitsoftware/splitio-commons/cjs/storages/inMemory/InMemoryStorageCS");
17
+
18
+ var _sdkManager = require("@splitsoftware/splitio-commons/cjs/sdkManager");
19
+
20
+ var _sdkClientMethodCSWithTT = require("@splitsoftware/splitio-commons/cjs/sdkClient/sdkClientMethodCSWithTT");
21
+
22
+ var _impressionObserverCS = require("@splitsoftware/splitio-commons/cjs/trackers/impressionObserver/impressionObserverCS");
23
+
24
+ var _browser = require("@splitsoftware/splitio-commons/cjs/integrations/browser");
25
+
26
+ var _storageCS = require("@splitsoftware/splitio-commons/cjs/utils/settingsValidation/storage/storageCS");
27
+
28
+ var _sdkFactory = require("@splitsoftware/splitio-commons/cjs/sdkFactory");
29
+
30
+ var _clientSide = require("../settings/clientSide");
31
+
32
+ var _commons = require("./commons");
33
+
34
+ var _platform = require("../platform");
35
+
36
+ var syncManagerOnlineCSFactory = (0, _syncManagerOnline.syncManagerOnlineFactory)(_pollingManagerCS.pollingManagerCSFactory, _pushManager.pushManagerFactory);
37
+ /**
38
+ *
39
+ * @param {import("@splitsoftware/splitio-commons/types/types").ISettings} settings
40
+ */
41
+
42
+ function getModules(settings) {
43
+ return {
44
+ settings: settings,
45
+ platform: _platform.platform,
46
+ storageFactory: settings.storage.type === 'LOCALSTORAGE' ? (0, _inLocalStorage.InLocalStorage)({
47
+ prefix: settings.storage.prefix
48
+ }) : settings.storage.__originalType === 'LOCALSTORAGE' ? _storageCS.__InLocalStorageMockFactory : _InMemoryStorageCS.InMemoryStorageCSFactory,
49
+ splitApiFactory: settings.mode === 'localhost' ? undefined : _splitApi.splitApiFactory,
50
+ syncManagerFactory: settings.mode === 'localhost' ? settings.sync.localhostMode : syncManagerOnlineCSFactory,
51
+ sdkManagerFactory: _sdkManager.sdkManagerFactory,
52
+ sdkClientMethodFactory: _sdkClientMethodCSWithTT.sdkClientMethodCSFactory,
53
+ SignalListener: settings.mode === 'localhost' ? undefined : _platform.signalListener,
54
+ impressionListener: settings.impressionListener,
55
+ integrationsManagerFactory: settings.integrations && settings.integrations.length > 0 ? _browser.integrationsManagerFactory.bind(null, settings.integrations) : undefined,
56
+ // @TODO consider not including in debug mode?
57
+ impressionsObserverFactory: (0, _commons.shouldAddPt)(settings) ? _impressionObserverCS.impressionObserverCSFactory : undefined
58
+ };
59
+ }
60
+
61
+ function SplitFactory(config) {
62
+ var settings = (0, _clientSide.settingsFactory)(config);
63
+ var modules = getModules(settings);
64
+ return (0, _sdkFactory.sdkFactory)(modules);
65
+ }