@splitsoftware/splitio 10.17.2 → 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.
- package/es/factory/clientSide.js +45 -0
- package/es/factory/commons.js +16 -0
- package/es/factory/package.json +4 -0
- package/es/factory/serverSide.js +42 -0
- package/es/index.js +1 -132
- package/es/platform/browser.js +11 -0
- package/es/{services → platform}/getEventSource/browser.js +1 -1
- package/es/{services → platform}/getEventSource/node.js +1 -1
- package/es/{client → platform/getEventSource}/package.json +0 -0
- package/es/{services → platform}/getFetch/browser.js +1 -1
- package/es/{services → platform}/getFetch/node.js +1 -1
- package/es/{impressions/observer → platform/getFetch}/package.json +0 -0
- package/es/platform/node.js +13 -0
- package/es/{integrations → platform}/package.json +0 -0
- package/es/{services → platform}/request/options/node.js +2 -2
- package/es/settings/clientSide.js +18 -0
- package/{lib/utils → es}/settings/defaults/browser.js +6 -8
- package/{src/utils → es}/settings/defaults/node.js +6 -3
- package/es/settings/defaults/version.js +1 -0
- package/es/settings/integrations/browser.js +5 -0
- package/es/settings/integrations/node.js +5 -0
- package/es/settings/package.json +4 -0
- package/es/{utils/settings → settings}/runtime/node.js +6 -4
- package/es/settings/serverSide.js +20 -0
- package/es/{utils/settings → settings}/storage/browser.js +12 -14
- package/es/{utils/settings → settings}/storage/node.js +10 -9
- package/es/umd.js +2 -1
- package/lib/factory/clientSide.js +65 -0
- package/lib/factory/commons.js +23 -0
- package/lib/factory/package.json +4 -0
- package/lib/factory/serverSide.js +60 -0
- package/lib/index.js +3 -151
- package/lib/platform/browser.js +24 -0
- package/lib/{services → platform}/getEventSource/browser.js +1 -1
- package/lib/{services → platform}/getEventSource/node.js +1 -1
- package/{es/listeners → lib/platform/getEventSource}/package.json +0 -0
- package/lib/{services → platform}/getFetch/browser.js +1 -1
- package/lib/{services → platform}/getFetch/node.js +1 -1
- package/{es/producer/offline → lib/platform/getFetch}/package.json +0 -0
- package/lib/platform/node.js +27 -0
- package/{es/producer → lib/platform}/package.json +0 -0
- package/lib/{services → platform}/request/options/node.js +2 -2
- package/lib/settings/clientSide.js +30 -0
- package/{src/utils → lib}/settings/defaults/browser.js +13 -3
- package/{es/utils → lib}/settings/defaults/node.js +13 -3
- package/lib/settings/defaults/version.js +6 -0
- package/lib/settings/integrations/browser.js +14 -0
- package/lib/settings/integrations/node.js +12 -0
- package/lib/settings/package.json +4 -0
- package/lib/{utils/settings → settings}/runtime/node.js +7 -5
- package/lib/settings/serverSide.js +33 -0
- package/lib/{utils/settings → settings}/storage/browser.js +15 -20
- package/lib/{utils/settings → settings}/storage/node.js +13 -11
- package/lib/umd.js +1 -0
- package/package.json +15 -12
- package/src/.DS_Store +0 -0
- package/src/factory/clientSide.js +58 -0
- package/src/factory/commons.js +16 -0
- package/src/factory/package.json +4 -0
- package/src/factory/serverSide.js +51 -0
- package/src/index.js +1 -140
- package/src/{sync/SSEHandler → platform}/.DS_Store +0 -0
- package/src/platform/browser.js +13 -0
- package/src/{services → platform}/getEventSource/browser.js +2 -2
- package/src/{services → platform}/getEventSource/node.js +2 -2
- package/{es/services → src/platform}/getEventSource/package.json +0 -0
- package/src/{services → platform}/getFetch/browser.js +2 -2
- package/src/{services → platform}/getFetch/node.js +1 -1
- package/{es/services → src/platform}/getFetch/package.json +0 -0
- package/src/platform/node.js +15 -0
- package/{es/services/request/options → src/platform}/package.json +0 -0
- package/src/{services → platform}/request/options/node.js +2 -2
- package/src/{listeners → settings}/.DS_Store +0 -0
- package/src/settings/clientSide.js +18 -0
- package/{es/utils → src}/settings/defaults/browser.js +8 -3
- package/{lib/utils → src}/settings/defaults/node.js +6 -6
- package/src/settings/defaults/version.js +1 -0
- package/src/settings/integrations/browser.js +6 -0
- package/src/{utils/settings → settings}/integrations/node.js +1 -3
- package/src/settings/package.json +4 -0
- package/src/{utils/settings → settings}/runtime/node.js +9 -6
- package/src/settings/serverSide.js +20 -0
- package/src/{utils/settings → settings}/storage/browser.js +10 -16
- package/src/{utils/settings → settings}/storage/node.js +7 -7
- package/src/umd.js +1 -0
- package/es/client/attributesDecoration.js +0 -116
- package/es/client/browser.js +0 -39
- package/es/client/client.js +0 -155
- package/es/client/inputValidation.js +0 -117
- package/es/client/node.js +0 -6
- package/es/engine/combiners/and.js +0 -54
- package/es/engine/combiners/ifelseif.js +0 -73
- package/es/engine/condition/index.js +0 -62
- package/es/engine/convertions/index.js +0 -29
- package/es/engine/engine/index.js +0 -60
- package/es/engine/engine/legacy.js +0 -77
- package/es/engine/engine/murmur3/common.js +0 -40
- package/es/engine/engine/murmur3/murmur3.js +0 -83
- package/es/engine/engine/murmur3/murmur3_128.js +0 -250
- package/es/engine/engine/murmur3/murmur3_128_x86.js +0 -183
- package/es/engine/engine/murmur3/murmur3_64.js +0 -52
- package/es/engine/engine/murmur3/utfx.js +0 -112
- package/es/engine/evaluator/index.js +0 -111
- package/es/engine/index.js +0 -112
- package/es/engine/matchers/all.js +0 -32
- package/es/engine/matchers/between.js +0 -35
- package/es/engine/matchers/boolean.js +0 -35
- package/es/engine/matchers/cont_all.js +0 -51
- package/es/engine/matchers/cont_any.js +0 -47
- package/es/engine/matchers/cont_str.js +0 -38
- package/es/engine/matchers/dependency.js +0 -50
- package/es/engine/matchers/eq.js +0 -35
- package/es/engine/matchers/eq_set.js +0 -49
- package/es/engine/matchers/ew.js +0 -38
- package/es/engine/matchers/gte.js +0 -35
- package/es/engine/matchers/index.js +0 -65
- package/es/engine/matchers/lte.js +0 -35
- package/es/engine/matchers/part_of.js +0 -49
- package/es/engine/matchers/segment.js +0 -39
- package/es/engine/matchers/string.js +0 -44
- package/es/engine/matchers/sw.js +0 -38
- package/es/engine/matchers/types.js +0 -48
- package/es/engine/matchers/whitelist.js +0 -36
- package/es/engine/parser/index.js +0 -69
- package/es/engine/parser/segments.js +0 -22
- package/es/engine/transforms/matcherGroup.js +0 -43
- package/es/engine/transforms/matchers.js +0 -109
- package/es/engine/transforms/segment.js +0 -28
- package/es/engine/transforms/set.js +0 -20
- package/es/engine/transforms/unaryNumeric.js +0 -20
- package/es/engine/transforms/whitelist.js +0 -22
- package/es/engine/treatments/index.js +0 -67
- package/es/engine/value/index.js +0 -54
- package/es/engine/value/sanitize.js +0 -125
- package/es/events/index.js +0 -65
- package/es/factory/offline.js +0 -50
- package/es/factory/online.js +0 -113
- package/es/impressions/counter.js +0 -52
- package/es/impressions/hasher/buildKey.js +0 -3
- package/es/impressions/hasher/hashImpression128.js +0 -5
- package/es/impressions/hasher/hashImpression32.js +0 -5
- package/es/impressions/observer/browser.js +0 -9
- package/es/impressions/observer/node.js +0 -9
- package/es/impressions/observer/observer.js +0 -21
- package/es/integrations/browser.js +0 -62
- package/es/integrations/ga/GaToSplit.js +0 -246
- package/es/integrations/ga/SplitToGa.js +0 -127
- package/es/integrations/node.js +0 -3
- package/es/listeners/browser.js +0 -157
- package/es/listeners/node.js +0 -65
- package/es/manager/index.js +0 -104
- package/es/metrics/Collectors.js +0 -100
- package/es/metrics/index.js +0 -157
- package/es/producer/browser/Partial.js +0 -103
- package/es/producer/browser.js +0 -70
- package/es/producer/fetcher/MySegments.js +0 -47
- package/es/producer/fetcher/SegmentChanges.js +0 -52
- package/es/producer/fetcher/SplitChanges.js +0 -46
- package/es/producer/node.js +0 -130
- package/es/producer/offline/browser.js +0 -26
- package/es/producer/offline/node.js +0 -26
- package/es/producer/task.js +0 -50
- package/es/producer/updater/MySegments.js +0 -108
- package/es/producer/updater/SegmentChanges.js +0 -135
- package/es/producer/updater/SplitChanges.js +0 -131
- package/es/producer/updater/SplitChangesFromFeatures.js +0 -21
- package/es/producer/updater/SplitChangesFromFileSystem.js +0 -21
- package/es/producer/updater/SplitChangesFromObject.js +0 -73
- package/es/readiness/index.js +0 -123
- package/es/readiness/statusManager.js +0 -114
- package/es/services/auth/auth.js +0 -25
- package/es/services/auth/index.js +0 -2
- package/es/services/events/bulk.js +0 -22
- package/es/services/events/index.js +0 -17
- package/es/services/impressions/bulk.js +0 -26
- package/es/services/impressions/count.js +0 -7
- package/es/services/impressions/dto.js +0 -73
- package/es/services/impressions/index.js +0 -17
- package/es/services/impressions/post.js +0 -22
- package/es/services/metrics/counters.js +0 -24
- package/es/services/metrics/dto.js +0 -38
- package/es/services/metrics/index.js +0 -17
- package/es/services/metrics/times.js +0 -24
- package/es/services/mySegments/get.js +0 -26
- package/es/services/mySegments/index.js +0 -17
- package/es/services/request/index.js +0 -43
- package/es/services/request/options/browser.js +0 -18
- package/es/services/segmentChanges/get.js +0 -21
- package/es/services/segmentChanges/index.js +0 -17
- package/es/services/splitChanges/get.js +0 -19
- package/es/services/splitChanges/index.js +0 -17
- package/es/services/splitChanges/offline/browser.js +0 -63
- package/es/services/splitChanges/offline/node.js +0 -176
- package/es/services/splitChanges/offline/package.json +0 -4
- package/es/services/splitChanges/offline/parseCondition.js +0 -43
- package/es/services/transport/index.js +0 -51
- package/es/storage/AttributesCache/InMemory.js +0 -85
- package/es/storage/BaseMetricsAsyncCache.js +0 -23
- package/es/storage/CountCache/InMemory.js +0 -48
- package/es/storage/CountCache/InRedis.js +0 -42
- package/es/storage/EventsCache/InMemory.js +0 -109
- package/es/storage/EventsCache/InRedis.js +0 -65
- package/es/storage/ImpressionsCache/InMemory.js +0 -71
- package/es/storage/ImpressionsCache/InRedis.js +0 -73
- package/es/storage/Keys.js +0 -125
- package/es/storage/KeysLocalStorage.js +0 -47
- package/es/storage/LatencyCache/InMemory.js +0 -56
- package/es/storage/LatencyCache/InRedis.js +0 -44
- package/es/storage/LatencyCache/findIndex.js +0 -2
- package/es/storage/Meta.js +0 -7
- package/es/storage/RedisAdapter.js +0 -198
- package/es/storage/SegmentCache/InLocalStorage/index.js +0 -138
- package/es/storage/SegmentCache/InMemory/browser.js +0 -107
- package/es/storage/SegmentCache/InMemory/node.js +0 -82
- package/es/storage/SegmentCache/InMemory/package.json +0 -4
- package/es/storage/SegmentCache/InRedis/index.js +0 -81
- package/es/storage/SplitCache/InLocalStorage.js +0 -332
- package/es/storage/SplitCache/InMemory.js +0 -162
- package/es/storage/SplitCache/InRedis.js +0 -214
- package/es/storage/SplitCache/killLocally.js +0 -35
- package/es/storage/browser.js +0 -101
- package/es/storage/node.js +0 -81
- package/es/storage/package.json +0 -4
- package/es/sync/AuthClient/index.js +0 -34
- package/es/sync/PushManager/index.js +0 -315
- package/es/sync/PushManager/mySegmentsV2utils.js +0 -76
- package/es/sync/PushManager/pushRequirements/browser.js +0 -23
- package/es/sync/PushManager/pushRequirements/node.js +0 -18
- package/es/sync/PushManager/pushRequirements/package.json +0 -4
- package/es/sync/SSEClient/index.js +0 -93
- package/es/sync/SSEHandler/NotificationKeeper.js +0 -97
- package/es/sync/SSEHandler/NotificationParser.js +0 -31
- package/es/sync/SSEHandler/index.js +0 -110
- package/es/sync/SegmentUpdateWorker/browser.js +0 -74
- package/es/sync/SegmentUpdateWorker/node.js +0 -79
- package/es/sync/SegmentUpdateWorker/package.json +0 -4
- package/es/sync/SplitUpdateWorker/index.js +0 -86
- package/es/sync/browser.js +0 -125
- package/es/sync/constants.js +0 -42
- package/es/sync/node.js +0 -60
- package/es/sync/package.json +0 -4
- package/es/trackers/event.js +0 -53
- package/es/trackers/impressions.js +0 -132
- package/es/utils/backoff/index.js +0 -51
- package/es/utils/base64/browser.js +0 -19
- package/es/utils/base64/node.js +0 -19
- package/es/utils/base64/package.json +0 -4
- package/es/utils/binarySearch/index.js +0 -50
- package/es/utils/constants/index.js +0 -38
- package/es/utils/context/constants.js +0 -30
- package/es/utils/context/index.js +0 -101
- package/es/utils/decompress/index.js +0 -476
- package/es/utils/fn/repeat.js +0 -58
- package/es/utils/inputValidation/apiKey.js +0 -39
- package/es/utils/inputValidation/attribute.js +0 -22
- package/es/utils/inputValidation/attributes.js +0 -19
- package/es/utils/inputValidation/event.js +0 -23
- package/es/utils/inputValidation/eventProperties.js +0 -69
- package/es/utils/inputValidation/eventValue.js +0 -9
- package/es/utils/inputValidation/index.js +0 -11
- package/es/utils/inputValidation/isOperational.js +0 -14
- package/es/utils/inputValidation/key.js +0 -50
- package/es/utils/inputValidation/split.js +0 -47
- package/es/utils/inputValidation/splitFilters.js +0 -121
- package/es/utils/inputValidation/splits.js +0 -27
- package/es/utils/inputValidation/trafficType.js +0 -55
- package/es/utils/jwt/hashUserKey.js +0 -11
- package/es/utils/jwt/index.js +0 -14
- package/es/utils/key/factory.js +0 -38
- package/es/utils/key/parser.js +0 -34
- package/es/utils/labels/index.js +0 -7
- package/es/utils/lang/Errors.js +0 -41
- package/es/utils/lang/Sets.js +0 -114
- package/es/utils/lang/index.js +0 -305
- package/es/utils/localstorage/isAvailable.js +0 -26
- package/es/utils/logger/LoggerFactory.js +0 -86
- package/es/utils/logger/index.js +0 -97
- package/es/utils/lrucache/linkedlist.js +0 -122
- package/es/utils/lrucache/lru.spec.js +0 -24
- package/es/utils/lrucache/lrucache.js +0 -80
- package/es/utils/now/browser.js +0 -27
- package/es/utils/now/node.js +0 -19
- package/es/utils/now/package.json +0 -4
- package/es/utils/promise/thenable.js +0 -3
- package/es/utils/promise/timeout.js +0 -34
- package/es/utils/promise/wrapper.js +0 -58
- package/es/utils/settings/defaults/package.json +0 -4
- package/es/utils/settings/impressionsMode.js +0 -16
- package/es/utils/settings/index.js +0 -194
- package/es/utils/settings/integrations/browser.js +0 -8
- package/es/utils/settings/integrations/common.js +0 -30
- package/es/utils/settings/integrations/node.js +0 -7
- package/es/utils/settings/integrations/package.json +0 -4
- package/es/utils/settings/language/browser.js +0 -16
- package/es/utils/settings/language/node.js +0 -16
- package/es/utils/settings/language/package.json +0 -4
- package/es/utils/settings/mode.js +0 -10
- package/es/utils/settings/runtime/browser.js +0 -21
- package/es/utils/settings/runtime/package.json +0 -4
- package/es/utils/settings/storage/package.json +0 -4
- package/es/utils/splits/usesSegments.js +0 -21
- package/es/utils/time/index.js +0 -8
- package/es/utils/timeTracker/index.js +0 -216
- package/es/utils/timeTracker/timer.js +0 -25
- package/lib/client/attributesDecoration.js +0 -128
- package/lib/client/browser.js +0 -50
- package/lib/client/client.js +0 -174
- package/lib/client/inputValidation.js +0 -129
- package/lib/client/node.js +0 -14
- package/lib/client/package.json +0 -4
- package/lib/engine/combiners/and.js +0 -65
- package/lib/engine/combiners/ifelseif.js +0 -88
- package/lib/engine/condition/index.js +0 -76
- package/lib/engine/convertions/index.js +0 -36
- package/lib/engine/engine/index.js +0 -71
- package/lib/engine/engine/legacy.js +0 -83
- package/lib/engine/engine/murmur3/common.js +0 -52
- package/lib/engine/engine/murmur3/murmur3.js +0 -90
- package/lib/engine/engine/murmur3/murmur3_128.js +0 -256
- package/lib/engine/engine/murmur3/murmur3_128_x86.js +0 -189
- package/lib/engine/engine/murmur3/murmur3_64.js +0 -57
- package/lib/engine/engine/murmur3/utfx.js +0 -121
- package/lib/engine/evaluator/index.js +0 -129
- package/lib/engine/index.js +0 -128
- package/lib/engine/matchers/all.js +0 -41
- package/lib/engine/matchers/between.js +0 -44
- package/lib/engine/matchers/boolean.js +0 -44
- package/lib/engine/matchers/cont_all.js +0 -61
- package/lib/engine/matchers/cont_any.js +0 -57
- package/lib/engine/matchers/cont_str.js +0 -48
- package/lib/engine/matchers/dependency.js +0 -60
- package/lib/engine/matchers/eq.js +0 -44
- package/lib/engine/matchers/eq_set.js +0 -59
- package/lib/engine/matchers/ew.js +0 -48
- package/lib/engine/matchers/gte.js +0 -44
- package/lib/engine/matchers/index.js +0 -90
- package/lib/engine/matchers/lte.js +0 -44
- package/lib/engine/matchers/part_of.js +0 -59
- package/lib/engine/matchers/segment.js +0 -49
- package/lib/engine/matchers/string.js +0 -53
- package/lib/engine/matchers/sw.js +0 -48
- package/lib/engine/matchers/types.js +0 -57
- package/lib/engine/matchers/whitelist.js +0 -46
- package/lib/engine/parser/index.js +0 -84
- package/lib/engine/parser/segments.js +0 -28
- package/lib/engine/transforms/matcherGroup.js +0 -54
- package/lib/engine/transforms/matchers.js +0 -124
- package/lib/engine/transforms/segment.js +0 -34
- package/lib/engine/transforms/set.js +0 -26
- package/lib/engine/transforms/unaryNumeric.js +0 -26
- package/lib/engine/transforms/whitelist.js +0 -28
- package/lib/engine/treatments/index.js +0 -73
- package/lib/engine/value/index.js +0 -64
- package/lib/engine/value/sanitize.js +0 -137
- package/lib/events/index.js +0 -80
- package/lib/factory/offline.js +0 -62
- package/lib/factory/online.js +0 -129
- package/lib/impressions/counter.js +0 -61
- package/lib/impressions/hasher/buildKey.js +0 -8
- package/lib/impressions/hasher/hashImpression128.js +0 -12
- package/lib/impressions/hasher/hashImpression32.js +0 -14
- package/lib/impressions/observer/browser.js +0 -19
- package/lib/impressions/observer/node.js +0 -19
- package/lib/impressions/observer/observer.js +0 -29
- package/lib/impressions/observer/package.json +0 -4
- package/lib/integrations/browser.js +0 -72
- package/lib/integrations/ga/GaToSplit.js +0 -267
- package/lib/integrations/ga/SplitToGa.js +0 -138
- package/lib/integrations/node.js +0 -9
- package/lib/integrations/package.json +0 -4
- package/lib/listeners/browser.js +0 -173
- package/lib/listeners/node.js +0 -74
- package/lib/listeners/package.json +0 -4
- package/lib/manager/index.js +0 -115
- package/lib/metrics/Collectors.js +0 -118
- package/lib/metrics/index.js +0 -182
- package/lib/producer/browser/Partial.js +0 -114
- package/lib/producer/browser.js +0 -82
- package/lib/producer/fetcher/MySegments.js +0 -59
- package/lib/producer/fetcher/SegmentChanges.js +0 -62
- package/lib/producer/fetcher/SplitChanges.js +0 -58
- package/lib/producer/node.js +0 -142
- package/lib/producer/offline/browser.js +0 -35
- package/lib/producer/offline/node.js +0 -35
- package/lib/producer/offline/package.json +0 -4
- package/lib/producer/package.json +0 -4
- package/lib/producer/task.js +0 -61
- package/lib/producer/updater/MySegments.js +0 -119
- package/lib/producer/updater/SegmentChanges.js +0 -148
- package/lib/producer/updater/SplitChanges.js +0 -145
- package/lib/producer/updater/SplitChangesFromFeatures.js +0 -30
- package/lib/producer/updater/SplitChangesFromFileSystem.js +0 -30
- package/lib/producer/updater/SplitChangesFromObject.js +0 -84
- package/lib/readiness/index.js +0 -132
- package/lib/readiness/statusManager.js +0 -124
- package/lib/services/auth/auth.js +0 -32
- package/lib/services/auth/index.js +0 -11
- package/lib/services/events/bulk.js +0 -31
- package/lib/services/events/index.js +0 -26
- package/lib/services/getEventSource/package.json +0 -4
- package/lib/services/getFetch/package.json +0 -4
- package/lib/services/impressions/bulk.js +0 -36
- package/lib/services/impressions/count.js +0 -16
- package/lib/services/impressions/dto.js +0 -81
- package/lib/services/impressions/index.js +0 -26
- package/lib/services/impressions/post.js +0 -31
- package/lib/services/metrics/counters.js +0 -33
- package/lib/services/metrics/dto.js +0 -46
- package/lib/services/metrics/index.js +0 -26
- package/lib/services/metrics/times.js +0 -33
- package/lib/services/mySegments/get.js +0 -35
- package/lib/services/mySegments/index.js +0 -26
- package/lib/services/request/index.js +0 -53
- package/lib/services/request/options/browser.js +0 -23
- package/lib/services/request/options/package.json +0 -4
- package/lib/services/segmentChanges/get.js +0 -29
- package/lib/services/segmentChanges/index.js +0 -26
- package/lib/services/splitChanges/get.js +0 -27
- package/lib/services/splitChanges/index.js +0 -26
- package/lib/services/splitChanges/offline/browser.js +0 -71
- package/lib/services/splitChanges/offline/node.js +0 -189
- package/lib/services/splitChanges/offline/package.json +0 -4
- package/lib/services/splitChanges/offline/parseCondition.js +0 -49
- package/lib/services/transport/index.js +0 -62
- package/lib/storage/AttributesCache/InMemory.js +0 -93
- package/lib/storage/BaseMetricsAsyncCache.js +0 -28
- package/lib/storage/CountCache/InMemory.js +0 -54
- package/lib/storage/CountCache/InRedis.js +0 -50
- package/lib/storage/EventsCache/InMemory.js +0 -118
- package/lib/storage/EventsCache/InRedis.js +0 -74
- package/lib/storage/ImpressionsCache/InMemory.js +0 -77
- package/lib/storage/ImpressionsCache/InRedis.js +0 -79
- package/lib/storage/Keys.js +0 -132
- package/lib/storage/KeysLocalStorage.js +0 -58
- package/lib/storage/LatencyCache/InMemory.js +0 -64
- package/lib/storage/LatencyCache/InRedis.js +0 -53
- package/lib/storage/LatencyCache/findIndex.js +0 -12
- package/lib/storage/Meta.js +0 -12
- package/lib/storage/RedisAdapter.js +0 -212
- package/lib/storage/SegmentCache/InLocalStorage/index.js +0 -147
- package/lib/storage/SegmentCache/InMemory/browser.js +0 -113
- package/lib/storage/SegmentCache/InMemory/node.js +0 -89
- package/lib/storage/SegmentCache/InMemory/package.json +0 -4
- package/lib/storage/SegmentCache/InRedis/index.js +0 -87
- package/lib/storage/SplitCache/InLocalStorage.js +0 -344
- package/lib/storage/SplitCache/InMemory.js +0 -172
- package/lib/storage/SplitCache/InRedis.js +0 -224
- package/lib/storage/SplitCache/killLocally.js +0 -42
- package/lib/storage/browser.js +0 -122
- package/lib/storage/node.js +0 -104
- package/lib/storage/package.json +0 -4
- package/lib/sync/AuthClient/index.js +0 -44
- package/lib/sync/PushManager/index.js +0 -340
- package/lib/sync/PushManager/mySegmentsV2utils.js +0 -87
- package/lib/sync/PushManager/pushRequirements/browser.js +0 -30
- package/lib/sync/PushManager/pushRequirements/node.js +0 -25
- package/lib/sync/PushManager/pushRequirements/package.json +0 -4
- package/lib/sync/SSEClient/index.js +0 -101
- package/lib/sync/SSEHandler/NotificationKeeper.js +0 -104
- package/lib/sync/SSEHandler/NotificationParser.js +0 -39
- package/lib/sync/SSEHandler/index.js +0 -121
- package/lib/sync/SegmentUpdateWorker/browser.js +0 -81
- package/lib/sync/SegmentUpdateWorker/node.js +0 -86
- package/lib/sync/SegmentUpdateWorker/package.json +0 -4
- package/lib/sync/SplitUpdateWorker/index.js +0 -93
- package/lib/sync/browser.js +0 -139
- package/lib/sync/constants.js +0 -59
- package/lib/sync/node.js +0 -71
- package/lib/sync/package.json +0 -4
- package/lib/trackers/event.js +0 -64
- package/lib/trackers/impressions.js +0 -146
- package/lib/utils/backoff/index.js +0 -57
- package/lib/utils/base64/browser.js +0 -26
- package/lib/utils/base64/node.js +0 -26
- package/lib/utils/base64/package.json +0 -4
- package/lib/utils/binarySearch/index.js +0 -56
- package/lib/utils/constants/index.js +0 -60
- package/lib/utils/context/constants.js +0 -49
- package/lib/utils/context/index.js +0 -111
- package/lib/utils/decompress/index.js +0 -483
- package/lib/utils/fn/repeat.js +0 -64
- package/lib/utils/inputValidation/apiKey.js +0 -51
- package/lib/utils/inputValidation/attribute.js +0 -32
- package/lib/utils/inputValidation/attributes.js +0 -32
- package/lib/utils/inputValidation/event.js +0 -33
- package/lib/utils/inputValidation/eventProperties.js +0 -78
- package/lib/utils/inputValidation/eventValue.js +0 -19
- package/lib/utils/inputValidation/index.js +0 -48
- package/lib/utils/inputValidation/isOperational.js +0 -25
- package/lib/utils/inputValidation/key.js +0 -59
- package/lib/utils/inputValidation/split.js +0 -60
- package/lib/utils/inputValidation/splitFilters.js +0 -134
- package/lib/utils/inputValidation/splits.js +0 -38
- package/lib/utils/inputValidation/trafficType.js +0 -68
- package/lib/utils/jwt/hashUserKey.js +0 -19
- package/lib/utils/jwt/index.js +0 -19
- package/lib/utils/key/factory.js +0 -46
- package/lib/utils/key/parser.js +0 -42
- package/lib/utils/labels/index.js +0 -18
- package/lib/utils/lang/Errors.js +0 -58
- package/lib/utils/lang/Sets.js +0 -127
- package/lib/utils/lang/index.js +0 -350
- package/lib/utils/localstorage/isAvailable.js +0 -31
- package/lib/utils/logger/LoggerFactory.js +0 -98
- package/lib/utils/logger/index.js +0 -109
- package/lib/utils/lrucache/linkedlist.js +0 -132
- package/lib/utils/lrucache/lru.spec.js +0 -30
- package/lib/utils/lrucache/lrucache.js +0 -88
- package/lib/utils/now/browser.js +0 -33
- package/lib/utils/now/node.js +0 -24
- package/lib/utils/now/package.json +0 -4
- package/lib/utils/promise/thenable.js +0 -10
- package/lib/utils/promise/timeout.js +0 -40
- package/lib/utils/promise/wrapper.js +0 -63
- package/lib/utils/settings/defaults/package.json +0 -4
- package/lib/utils/settings/impressionsMode.js +0 -26
- package/lib/utils/settings/index.js +0 -214
- package/lib/utils/settings/integrations/browser.js +0 -17
- package/lib/utils/settings/integrations/common.js +0 -40
- package/lib/utils/settings/integrations/node.js +0 -13
- package/lib/utils/settings/integrations/package.json +0 -4
- package/lib/utils/settings/language/browser.js +0 -22
- package/lib/utils/settings/language/node.js +0 -22
- package/lib/utils/settings/language/package.json +0 -4
- package/lib/utils/settings/mode.js +0 -16
- package/lib/utils/settings/runtime/browser.js +0 -26
- package/lib/utils/settings/runtime/package.json +0 -4
- package/lib/utils/settings/storage/package.json +0 -4
- package/lib/utils/splits/usesSegments.js +0 -27
- package/lib/utils/time/index.js +0 -12
- package/lib/utils/timeTracker/index.js +0 -213
- package/lib/utils/timeTracker/timer.js +0 -33
- package/src/client/attributesDecoration.js +0 -112
- package/src/client/browser.js +0 -41
- package/src/client/client.js +0 -131
- package/src/client/inputValidation.js +0 -130
- package/src/client/node.js +0 -8
- package/src/client/package.json +0 -4
- package/src/engine/combiners/and.js +0 -55
- package/src/engine/combiners/ifelseif.js +0 -74
- package/src/engine/condition/index.js +0 -65
- package/src/engine/convertions/index.js +0 -22
- package/src/engine/engine/index.js +0 -63
- package/src/engine/engine/legacy.js +0 -66
- package/src/engine/engine/murmur3/common.js +0 -54
- package/src/engine/engine/murmur3/murmur3.js +0 -79
- package/src/engine/engine/murmur3/murmur3_128.js +0 -273
- package/src/engine/engine/murmur3/murmur3_128_x86.js +0 -188
- package/src/engine/engine/murmur3/murmur3_64.js +0 -34
- package/src/engine/engine/murmur3/utfx.js +0 -111
- package/src/engine/evaluator/index.js +0 -148
- package/src/engine/index.js +0 -123
- package/src/engine/matchers/all.js +0 -29
- package/src/engine/matchers/between.js +0 -30
- package/src/engine/matchers/boolean.js +0 -29
- package/src/engine/matchers/cont_all.js +0 -40
- package/src/engine/matchers/cont_any.js +0 -35
- package/src/engine/matchers/cont_str.js +0 -31
- package/src/engine/matchers/dependency.js +0 -52
- package/src/engine/matchers/eq.js +0 -30
- package/src/engine/matchers/eq_set.js +0 -37
- package/src/engine/matchers/ew.js +0 -31
- package/src/engine/matchers/gte.js +0 -30
- package/src/engine/matchers/index.js +0 -71
- package/src/engine/matchers/lte.js +0 -30
- package/src/engine/matchers/part_of.js +0 -37
- package/src/engine/matchers/segment.js +0 -41
- package/src/engine/matchers/string.js +0 -39
- package/src/engine/matchers/sw.js +0 -31
- package/src/engine/matchers/types.js +0 -52
- package/src/engine/matchers/whitelist.js +0 -30
- package/src/engine/parser/index.js +0 -79
- package/src/engine/parser/segments.js +0 -31
- package/src/engine/transforms/matcherGroup.js +0 -45
- package/src/engine/transforms/matchers.js +0 -118
- package/src/engine/transforms/segment.js +0 -23
- package/src/engine/transforms/set.js +0 -20
- package/src/engine/transforms/unaryNumeric.js +0 -20
- package/src/engine/transforms/whitelist.js +0 -22
- package/src/engine/treatments/index.js +0 -67
- package/src/engine/value/index.js +0 -53
- package/src/engine/value/sanitize.js +0 -117
- package/src/events/index.js +0 -62
- package/src/factory/offline.js +0 -60
- package/src/factory/online.js +0 -127
- package/src/impressions/counter.js +0 -43
- package/src/impressions/hasher/buildKey.js +0 -3
- package/src/impressions/hasher/hashImpression128.js +0 -6
- package/src/impressions/hasher/hashImpression32.js +0 -6
- package/src/impressions/observer/browser.js +0 -8
- package/src/impressions/observer/node.js +0 -8
- package/src/impressions/observer/observer.js +0 -17
- package/src/impressions/observer/package.json +0 -4
- package/src/integrations/browser.js +0 -57
- package/src/integrations/ga/GaToSplit.js +0 -278
- package/src/integrations/ga/SplitToGa.js +0 -125
- package/src/integrations/node.js +0 -4
- package/src/integrations/package.json +0 -4
- package/src/listeners/browser.js +0 -137
- package/src/listeners/node.js +0 -59
- package/src/listeners/package.json +0 -4
- package/src/manager/index.js +0 -103
- package/src/metrics/Collectors.js +0 -77
- package/src/metrics/index.js +0 -174
- package/src/producer/browser/Partial.js +0 -104
- package/src/producer/browser.js +0 -82
- package/src/producer/fetcher/MySegments.js +0 -40
- package/src/producer/fetcher/SegmentChanges.js +0 -52
- package/src/producer/fetcher/SplitChanges.js +0 -39
- package/src/producer/node.js +0 -142
- package/src/producer/offline/browser.js +0 -28
- package/src/producer/offline/node.js +0 -28
- package/src/producer/offline/package.json +0 -4
- package/src/producer/package.json +0 -4
- package/src/producer/task.js +0 -57
- package/src/producer/updater/MySegments.js +0 -104
- package/src/producer/updater/SegmentChanges.js +0 -126
- package/src/producer/updater/SplitChanges.js +0 -138
- package/src/producer/updater/SplitChangesFromFeatures.js +0 -23
- package/src/producer/updater/SplitChangesFromFileSystem.js +0 -23
- package/src/producer/updater/SplitChangesFromObject.js +0 -81
- package/src/readiness/index.js +0 -125
- package/src/readiness/statusManager.js +0 -121
- package/src/services/.DS_Store +0 -0
- package/src/services/auth/auth.js +0 -21
- package/src/services/auth/index.js +0 -3
- package/src/services/events/bulk.js +0 -23
- package/src/services/events/index.js +0 -18
- package/src/services/getEventSource/package.json +0 -4
- package/src/services/getFetch/package.json +0 -4
- package/src/services/impressions/bulk.js +0 -26
- package/src/services/impressions/count.js +0 -8
- package/src/services/impressions/dto.js +0 -71
- package/src/services/impressions/index.js +0 -18
- package/src/services/impressions/post.js +0 -23
- package/src/services/metrics/counters.js +0 -25
- package/src/services/metrics/dto.js +0 -44
- package/src/services/metrics/index.js +0 -18
- package/src/services/metrics/times.js +0 -25
- package/src/services/mySegments/get.js +0 -27
- package/src/services/mySegments/index.js +0 -18
- package/src/services/request/index.js +0 -43
- package/src/services/request/options/browser.js +0 -18
- package/src/services/request/options/package.json +0 -4
- package/src/services/segmentChanges/get.js +0 -20
- package/src/services/segmentChanges/index.js +0 -18
- package/src/services/splitChanges/get.js +0 -20
- package/src/services/splitChanges/index.js +0 -18
- package/src/services/splitChanges/offline/browser.js +0 -66
- package/src/services/splitChanges/offline/node.js +0 -190
- package/src/services/splitChanges/offline/package.json +0 -4
- package/src/services/splitChanges/offline/parseCondition.js +0 -52
- package/src/services/transport/index.js +0 -44
- package/src/storage/AttributesCache/InMemory.js +0 -76
- package/src/storage/BaseMetricsAsyncCache.js +0 -14
- package/src/storage/CountCache/InMemory.js +0 -48
- package/src/storage/CountCache/InRedis.js +0 -32
- package/src/storage/EventsCache/InMemory.js +0 -99
- package/src/storage/EventsCache/InRedis.js +0 -62
- package/src/storage/ImpressionsCache/InMemory.js +0 -62
- package/src/storage/ImpressionsCache/InRedis.js +0 -65
- package/src/storage/Keys.js +0 -122
- package/src/storage/KeysLocalStorage.js +0 -40
- package/src/storage/LatencyCache/InMemory.js +0 -56
- package/src/storage/LatencyCache/InRedis.js +0 -35
- package/src/storage/LatencyCache/findIndex.js +0 -7
- package/src/storage/Meta.js +0 -7
- package/src/storage/RedisAdapter.js +0 -170
- package/src/storage/SegmentCache/InLocalStorage/index.js +0 -120
- package/src/storage/SegmentCache/InMemory/browser.js +0 -99
- package/src/storage/SegmentCache/InMemory/node.js +0 -84
- package/src/storage/SegmentCache/InMemory/package.json +0 -4
- package/src/storage/SegmentCache/InRedis/index.js +0 -71
- package/src/storage/SplitCache/InLocalStorage.js +0 -324
- package/src/storage/SplitCache/InMemory.js +0 -145
- package/src/storage/SplitCache/InRedis.js +0 -187
- package/src/storage/SplitCache/killLocally.js +0 -33
- package/src/storage/browser.js +0 -110
- package/src/storage/node.js +0 -83
- package/src/storage/package.json +0 -4
- package/src/sync/.DS_Store +0 -0
- package/src/sync/AuthClient/index.js +0 -31
- package/src/sync/PushManager/index.js +0 -328
- package/src/sync/PushManager/mySegmentsV2utils.js +0 -76
- package/src/sync/PushManager/pushRequirements/browser.js +0 -20
- package/src/sync/PushManager/pushRequirements/node.js +0 -16
- package/src/sync/PushManager/pushRequirements/package.json +0 -4
- package/src/sync/SSEClient/index.js +0 -92
- package/src/sync/SSEHandler/NotificationKeeper.js +0 -90
- package/src/sync/SSEHandler/NotificationParser.js +0 -35
- package/src/sync/SSEHandler/index.js +0 -110
- package/src/sync/SegmentUpdateWorker/browser.js +0 -67
- package/src/sync/SegmentUpdateWorker/node.js +0 -73
- package/src/sync/SegmentUpdateWorker/package.json +0 -4
- package/src/sync/SplitUpdateWorker/index.js +0 -79
- package/src/sync/browser.js +0 -130
- package/src/sync/constants.js +0 -43
- package/src/sync/node.js +0 -66
- package/src/sync/package.json +0 -4
- package/src/trackers/event.js +0 -47
- package/src/trackers/impressions.js +0 -123
- package/src/utils/backoff/index.js +0 -46
- package/src/utils/base64/browser.js +0 -19
- package/src/utils/base64/node.js +0 -19
- package/src/utils/base64/package.json +0 -4
- package/src/utils/binarySearch/index.js +0 -50
- package/src/utils/constants/index.js +0 -41
- package/src/utils/context/constants.js +0 -18
- package/src/utils/context/index.js +0 -84
- package/src/utils/decompress/index.js +0 -428
- package/src/utils/fn/repeat.js +0 -48
- package/src/utils/inputValidation/apiKey.js +0 -42
- package/src/utils/inputValidation/attribute.js +0 -22
- package/src/utils/inputValidation/attributes.js +0 -26
- package/src/utils/inputValidation/event.js +0 -23
- package/src/utils/inputValidation/eventProperties.js +0 -65
- package/src/utils/inputValidation/eventValue.js +0 -11
- package/src/utils/inputValidation/index.js +0 -11
- package/src/utils/inputValidation/isOperational.js +0 -16
- package/src/utils/inputValidation/key.js +0 -53
- package/src/utils/inputValidation/split.js +0 -42
- package/src/utils/inputValidation/splitFilters.js +0 -108
- package/src/utils/inputValidation/splits.js +0 -21
- package/src/utils/inputValidation/trafficType.js +0 -58
- package/src/utils/jwt/hashUserKey.js +0 -11
- package/src/utils/jwt/index.js +0 -15
- package/src/utils/key/factory.js +0 -34
- package/src/utils/key/parser.js +0 -34
- package/src/utils/labels/index.js +0 -7
- package/src/utils/lang/Errors.js +0 -19
- package/src/utils/lang/Sets.js +0 -94
- package/src/utils/lang/index.js +0 -291
- package/src/utils/localstorage/isAvailable.js +0 -26
- package/src/utils/logger/LoggerFactory.js +0 -90
- package/src/utils/logger/index.js +0 -93
- package/src/utils/lrucache/linkedlist.js +0 -116
- package/src/utils/lrucache/lru.spec.js +0 -26
- package/src/utils/lrucache/lrucache.js +0 -49
- package/src/utils/now/browser.js +0 -29
- package/src/utils/now/node.js +0 -21
- package/src/utils/now/package.json +0 -4
- package/src/utils/promise/thenable.js +0 -1
- package/src/utils/promise/timeout.js +0 -38
- package/src/utils/promise/wrapper.js +0 -60
- package/src/utils/settings/defaults/package.json +0 -4
- package/src/utils/settings/impressionsMode.js +0 -15
- package/src/utils/settings/index.js +0 -217
- package/src/utils/settings/integrations/browser.js +0 -8
- package/src/utils/settings/integrations/common.js +0 -32
- package/src/utils/settings/integrations/package.json +0 -4
- package/src/utils/settings/language/browser.js +0 -17
- package/src/utils/settings/language/node.js +0 -17
- package/src/utils/settings/language/package.json +0 -4
- package/src/utils/settings/mode.js +0 -12
- package/src/utils/settings/runtime/browser.js +0 -22
- package/src/utils/settings/runtime/package.json +0 -4
- package/src/utils/settings/storage/package.json +0 -4
- package/src/utils/splits/usesSegments.js +0 -17
- package/src/utils/time/index.js +0 -8
- package/src/utils/timeTracker/index.js +0 -223
- package/src/utils/timeTracker/timer.js +0 -27
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _logger = _interopRequireDefault(require("../../utils/logger"));
|
|
9
|
-
|
|
10
|
-
var _lang = require("../../utils/lang");
|
|
11
|
-
|
|
12
|
-
var _convertions = require("../convertions");
|
|
13
|
-
|
|
14
|
-
var _types = require("../matchers/types");
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
Copyright 2016 Split Software
|
|
18
|
-
|
|
19
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
|
20
|
-
you may not use this file except in compliance with the License.
|
|
21
|
-
You may obtain a copy of the License at
|
|
22
|
-
|
|
23
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
|
24
|
-
|
|
25
|
-
Unless required by applicable law or agreed to in writing, software
|
|
26
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
27
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
28
|
-
See the License for the specific language governing permissions and
|
|
29
|
-
limitations under the License.
|
|
30
|
-
**/
|
|
31
|
-
var log = (0, _logger.default)('splitio-engine:sanitize');
|
|
32
|
-
|
|
33
|
-
function sanitizeNumber(val) {
|
|
34
|
-
var num = (0, _lang.toNumber)(val);
|
|
35
|
-
return isNaN(num) ? undefined : num;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
function sanitizeString(val) {
|
|
39
|
-
var valueToSanitize = val;
|
|
40
|
-
|
|
41
|
-
if ((0, _lang.isObject)(val)) {
|
|
42
|
-
// If the value is an object and is not a key, discard it.
|
|
43
|
-
valueToSanitize = val.matchingKey ? val.matchingKey : undefined;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
var str = (0, _lang.toString)(valueToSanitize);
|
|
47
|
-
return str ? str : undefined;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
function sanitizeArray(val) {
|
|
51
|
-
var arr = Array.isArray(val) ? (0, _lang.uniq)(val.map(function (e) {
|
|
52
|
-
return e + '';
|
|
53
|
-
})) : [];
|
|
54
|
-
return arr.length ? arr : undefined;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
function sanitizeBoolean(val) {
|
|
58
|
-
if (val === true || val === false) return val;
|
|
59
|
-
|
|
60
|
-
if (typeof val === 'string') {
|
|
61
|
-
var lowerCaseValue = val.toLocaleLowerCase();
|
|
62
|
-
if (lowerCaseValue === 'true') return true;
|
|
63
|
-
if (lowerCaseValue === 'false') return false;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
return undefined;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
function dependencyProcessor(sanitizedValue, attributes) {
|
|
70
|
-
return {
|
|
71
|
-
key: sanitizedValue,
|
|
72
|
-
attributes: attributes
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* We can define a pre-processing for the value, to be executed prior to matcher evaluation.
|
|
77
|
-
*/
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
function getProcessingFunction(matcherTypeID, dataType) {
|
|
81
|
-
switch (matcherTypeID) {
|
|
82
|
-
case _types.matcherTypes.EQUAL_TO:
|
|
83
|
-
return dataType === 'DATETIME' ? _convertions.zeroSinceHH : undefined;
|
|
84
|
-
|
|
85
|
-
case _types.matcherTypes.GREATER_THAN_OR_EQUAL_TO:
|
|
86
|
-
case _types.matcherTypes.LESS_THAN_OR_EQUAL_TO:
|
|
87
|
-
case _types.matcherTypes.BETWEEN:
|
|
88
|
-
return dataType === 'DATETIME' ? _convertions.zeroSinceSS : undefined;
|
|
89
|
-
|
|
90
|
-
case _types.matcherTypes.IN_SPLIT_TREATMENT:
|
|
91
|
-
return dependencyProcessor;
|
|
92
|
-
|
|
93
|
-
default:
|
|
94
|
-
return undefined;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
function sanitizeValue(matcherTypeID, value, dataType, attributes) {
|
|
99
|
-
var processor = getProcessingFunction(matcherTypeID, dataType);
|
|
100
|
-
var sanitizedValue;
|
|
101
|
-
|
|
102
|
-
switch (dataType) {
|
|
103
|
-
case _types.matcherDataTypes.NUMBER:
|
|
104
|
-
case _types.matcherDataTypes.DATETIME:
|
|
105
|
-
sanitizedValue = sanitizeNumber(value);
|
|
106
|
-
break;
|
|
107
|
-
|
|
108
|
-
case _types.matcherDataTypes.STRING:
|
|
109
|
-
sanitizedValue = sanitizeString(value);
|
|
110
|
-
break;
|
|
111
|
-
|
|
112
|
-
case _types.matcherDataTypes.SET:
|
|
113
|
-
sanitizedValue = sanitizeArray(value);
|
|
114
|
-
break;
|
|
115
|
-
|
|
116
|
-
case _types.matcherDataTypes.BOOLEAN:
|
|
117
|
-
sanitizedValue = sanitizeBoolean(value);
|
|
118
|
-
break;
|
|
119
|
-
|
|
120
|
-
case _types.matcherDataTypes.NOT_SPECIFIED:
|
|
121
|
-
sanitizedValue = value;
|
|
122
|
-
break;
|
|
123
|
-
|
|
124
|
-
default:
|
|
125
|
-
sanitizedValue = undefined;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
if (processor) {
|
|
129
|
-
sanitizedValue = processor(sanitizedValue, attributes);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
log.debug("Attempted to sanitize [" + value + "] which should be of type [" + dataType + "]. \n Sanitized and processed value => [" + (sanitizedValue instanceof Object ? JSON.stringify(sanitizedValue) : sanitizedValue) + "]");
|
|
133
|
-
return sanitizedValue;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
var _default = sanitizeValue;
|
|
137
|
-
exports.default = _default;
|
package/lib/events/index.js
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _logger = _interopRequireDefault(require("../utils/logger"));
|
|
9
|
-
|
|
10
|
-
var _timeTracker = _interopRequireDefault(require("../utils/timeTracker"));
|
|
11
|
-
|
|
12
|
-
var _repeat = _interopRequireDefault(require("../utils/fn/repeat"));
|
|
13
|
-
|
|
14
|
-
var _events = _interopRequireDefault(require("../services/events"));
|
|
15
|
-
|
|
16
|
-
var _bulk = _interopRequireDefault(require("../services/events/bulk"));
|
|
17
|
-
|
|
18
|
-
var log = (0, _logger.default)('splitio-events');
|
|
19
|
-
|
|
20
|
-
var EventsFactory = function EventsFactory(context) {
|
|
21
|
-
var settings = context.get(context.constants.SETTINGS);
|
|
22
|
-
var storage = context.get(context.constants.STORAGE);
|
|
23
|
-
|
|
24
|
-
var pushEvents = function pushEvents() {
|
|
25
|
-
if (storage.events.isEmpty()) return Promise.resolve();
|
|
26
|
-
log.info("Pushing " + storage.events.state().length + " queued events.");
|
|
27
|
-
|
|
28
|
-
var latencyTrackerStop = _timeTracker.default.start(_timeTracker.default.TaskNames.EVENTS_PUSH);
|
|
29
|
-
|
|
30
|
-
var json = JSON.stringify(storage.events.toJSON());
|
|
31
|
-
|
|
32
|
-
var wrapUpCb = function wrapUpCb() {
|
|
33
|
-
return latencyTrackerStop();
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
storage.events.clear(); // we always clear the queue.
|
|
37
|
-
|
|
38
|
-
return (0, _events.default)((0, _bulk.default)(settings, {
|
|
39
|
-
body: json
|
|
40
|
-
})).then(wrapUpCb).catch(wrapUpCb);
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
var stopEventPublisherTimeout = false;
|
|
44
|
-
var stopEventsPublisher = false;
|
|
45
|
-
|
|
46
|
-
var startEventsPublisher = function startEventsPublisher() {
|
|
47
|
-
return stopEventsPublisher = (0, _repeat.default)(function (schedulePublisher) {
|
|
48
|
-
return pushEvents().then(function () {
|
|
49
|
-
return schedulePublisher();
|
|
50
|
-
});
|
|
51
|
-
}, settings.scheduler.eventsPushRate);
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
return {
|
|
55
|
-
start: function start() {
|
|
56
|
-
// On the browser there may be a wish to wait an specific amount of seconds before the first push.
|
|
57
|
-
if (settings.startup.eventsFirstPushWindow > 0) {
|
|
58
|
-
stopEventPublisherTimeout = setTimeout(startEventsPublisher, settings.startup.eventsFirstPushWindow);
|
|
59
|
-
} else {
|
|
60
|
-
startEventsPublisher();
|
|
61
|
-
}
|
|
62
|
-
},
|
|
63
|
-
flush: function flush() {
|
|
64
|
-
return pushEvents();
|
|
65
|
-
},
|
|
66
|
-
stop: function stop() {
|
|
67
|
-
stopEventPublisherTimeout && clearTimeout(stopEventPublisherTimeout);
|
|
68
|
-
stopEventsPublisher && stopEventsPublisher();
|
|
69
|
-
},
|
|
70
|
-
flushAndResetTimer: function flushAndResetTimer() {
|
|
71
|
-
// Reset the timer and push the events.
|
|
72
|
-
log.info('Flushing events and reseting timer.');
|
|
73
|
-
stopEventsPublisher && stopEventsPublisher.reset();
|
|
74
|
-
return pushEvents();
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
var _default = EventsFactory;
|
|
80
|
-
exports.default = _default;
|
package/lib/factory/offline.js
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _objectAssign = _interopRequireDefault(require("object-assign"));
|
|
9
|
-
|
|
10
|
-
var _client = _interopRequireDefault(require("../client"));
|
|
11
|
-
|
|
12
|
-
var _offline = _interopRequireDefault(require("../producer/offline"));
|
|
13
|
-
|
|
14
|
-
var _inputValidation = require("../utils/inputValidation");
|
|
15
|
-
|
|
16
|
-
//
|
|
17
|
-
// Create SDK instance for offline mode.
|
|
18
|
-
//
|
|
19
|
-
function SplitFactoryOffline(context, sharedTrackers) {
|
|
20
|
-
var sharedInstance = !sharedTrackers;
|
|
21
|
-
var readiness = context.get(context.constants.READINESS);
|
|
22
|
-
var storage = context.get(context.constants.STORAGE);
|
|
23
|
-
var statusManager = context.get(context.constants.STATUS_MANAGER); // In LOCALHOST mode, shared clients are ready in the next event-loop cycle than created
|
|
24
|
-
// and then updated on each SDK_SPLITS_ARRIVED event
|
|
25
|
-
|
|
26
|
-
if (sharedInstance) setTimeout(function () {
|
|
27
|
-
readiness.splits.on(readiness.splits.SDK_SPLITS_ARRIVED, function () {
|
|
28
|
-
readiness.gate.emit(readiness.gate.SDK_UPDATE);
|
|
29
|
-
});
|
|
30
|
-
readiness.gate.emit(readiness.gate.SDK_READY);
|
|
31
|
-
}, 0); // Producer
|
|
32
|
-
|
|
33
|
-
var producer = sharedInstance ? undefined : (0, _offline.default)(context); // Start background task for flag updates
|
|
34
|
-
|
|
35
|
-
producer && producer.start();
|
|
36
|
-
var api = (0, _objectAssign.default)( // Proto linkage of the EventEmitter to prevent any change
|
|
37
|
-
Object.create(statusManager), // GetTreatment/s
|
|
38
|
-
(0, _client.default)(context), // Utilities
|
|
39
|
-
{
|
|
40
|
-
// Destroy instance. Async so we respect the online api.
|
|
41
|
-
destroy: function destroy() {
|
|
42
|
-
// Stop background jobs
|
|
43
|
-
producer && producer.stop(); // Cleanup event listeners
|
|
44
|
-
|
|
45
|
-
readiness.destroy(); // Cleanup storage
|
|
46
|
-
|
|
47
|
-
storage.destroy && storage.destroy(); // Mark the factory as destroyed.
|
|
48
|
-
|
|
49
|
-
context.put(context.constants.DESTROYED, true);
|
|
50
|
-
!sharedInstance && (0, _inputValidation.releaseApiKey)();
|
|
51
|
-
return Promise.resolve();
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
return {
|
|
55
|
-
api: api,
|
|
56
|
-
metricCollectors: false // We won't collect any metrics on localhost mode.
|
|
57
|
-
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
var _default = SplitFactoryOffline;
|
|
62
|
-
exports.default = _default;
|
package/lib/factory/online.js
DELETED
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _objectAssign = _interopRequireDefault(require("object-assign"));
|
|
9
|
-
|
|
10
|
-
var _client = _interopRequireDefault(require("../client"));
|
|
11
|
-
|
|
12
|
-
var _metrics = _interopRequireDefault(require("../metrics"));
|
|
13
|
-
|
|
14
|
-
var _events = _interopRequireDefault(require("../events"));
|
|
15
|
-
|
|
16
|
-
var _sync = _interopRequireDefault(require("../sync"));
|
|
17
|
-
|
|
18
|
-
var _listeners = _interopRequireDefault(require("../listeners"));
|
|
19
|
-
|
|
20
|
-
var _inputValidation = require("../utils/inputValidation");
|
|
21
|
-
|
|
22
|
-
var _constants = require("../utils/constants");
|
|
23
|
-
|
|
24
|
-
// map of authorizationKeys to syncManagers, to keep a single instance per factory and needed to create shared clients
|
|
25
|
-
var syncManagers = {}; //
|
|
26
|
-
// Create SDK instance based on the provided configurations
|
|
27
|
-
//
|
|
28
|
-
|
|
29
|
-
function SplitFactoryOnline(context, readyTrackers, mainClientMetricCollectors) {
|
|
30
|
-
var sharedInstance = !!mainClientMetricCollectors;
|
|
31
|
-
var settings = context.get(context.constants.SETTINGS);
|
|
32
|
-
var readiness = context.get(context.constants.READINESS);
|
|
33
|
-
var storage = context.get(context.constants.STORAGE);
|
|
34
|
-
var statusManager = context.get(context.constants.STATUS_MANAGER); // We are only interested in exposable EventEmitter
|
|
35
|
-
|
|
36
|
-
var gate = readiness.gate,
|
|
37
|
-
splits = readiness.splits,
|
|
38
|
-
segments = readiness.segments; // Events name
|
|
39
|
-
|
|
40
|
-
var SDK_READY = gate.SDK_READY; // Shared instances use parent metrics collectors
|
|
41
|
-
|
|
42
|
-
var metrics = sharedInstance ? undefined : (0, _metrics.default)(context); // Shared instances use parent events queue
|
|
43
|
-
|
|
44
|
-
var events = sharedInstance ? undefined : (0, _events.default)(context);
|
|
45
|
-
var syncManager;
|
|
46
|
-
|
|
47
|
-
switch (settings.mode) {
|
|
48
|
-
case _constants.PRODUCER_MODE:
|
|
49
|
-
case _constants.STANDALONE_MODE:
|
|
50
|
-
{
|
|
51
|
-
context.put(context.constants.COLLECTORS, metrics && metrics.collectors); // We don't fully instantiate syncManager if we are creating a shared instance.
|
|
52
|
-
|
|
53
|
-
if (sharedInstance) {
|
|
54
|
-
syncManager = syncManagers[settings.core.authorizationKey].shared(context);
|
|
55
|
-
} else {
|
|
56
|
-
syncManager = (0, _sync.default)(context);
|
|
57
|
-
syncManagers[settings.core.authorizationKey] = syncManager;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
break;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
case _constants.CONSUMER_MODE:
|
|
64
|
-
{
|
|
65
|
-
context.put(context.constants.READY_FROM_CACHE, true); // For SDK inner workings it's supposed to be ready from cache.
|
|
66
|
-
|
|
67
|
-
break;
|
|
68
|
-
}
|
|
69
|
-
} // Signal listener only needed for main instances
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
var signalsListener = sharedInstance ? undefined : new _listeners.default(context, syncManager);
|
|
73
|
-
|
|
74
|
-
if (readyTrackers && syncManager && !sharedInstance) {
|
|
75
|
-
// Only track ready events for non-shared and non-consumer clients
|
|
76
|
-
var sdkReadyTracker = readyTrackers.sdkReadyTracker,
|
|
77
|
-
splitsReadyTracker = readyTrackers.splitsReadyTracker,
|
|
78
|
-
segmentsReadyTracker = readyTrackers.segmentsReadyTracker; // Defered setup of collectors for this task, as it is the only ready latency we store on BE.
|
|
79
|
-
|
|
80
|
-
sdkReadyTracker.setCollectorForTask(metrics.collectors);
|
|
81
|
-
gate.once(SDK_READY, sdkReadyTracker);
|
|
82
|
-
splits.once(splits.SDK_SPLITS_ARRIVED, splitsReadyTracker);
|
|
83
|
-
segments.once(segments.SDK_SEGMENTS_ARRIVED, segmentsReadyTracker);
|
|
84
|
-
} // Start background jobs tasks
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
syncManager && syncManager.start();
|
|
88
|
-
metrics && metrics.start();
|
|
89
|
-
events && context.put(context.constants.EVENTS, events) && events.start(); // If no collectors are stored we are on a shared instance, save main one.
|
|
90
|
-
|
|
91
|
-
context.put(context.constants.COLLECTORS, mainClientMetricCollectors);
|
|
92
|
-
var api = (0, _objectAssign.default)( // Proto linkage of the EventEmitter to prevent any change
|
|
93
|
-
Object.create(statusManager), // getTreatment/s & track
|
|
94
|
-
(0, _client.default)(context), // Utilities
|
|
95
|
-
{
|
|
96
|
-
// Destroy instance
|
|
97
|
-
destroy: function destroy() {
|
|
98
|
-
// Stop background jobs
|
|
99
|
-
syncManager && syncManager.stop();
|
|
100
|
-
metrics && metrics.stop();
|
|
101
|
-
events && events.stop(); // Send impressions and events in parallel.
|
|
102
|
-
|
|
103
|
-
return Promise.all([metrics && metrics.flush(), events && events.flush()]).then(function () {
|
|
104
|
-
// Cleanup event listeners
|
|
105
|
-
readiness.destroy();
|
|
106
|
-
signalsListener && signalsListener.stop(); // Cleanup storage
|
|
107
|
-
|
|
108
|
-
storage.destroy && storage.destroy(); // Mark the factory as destroyed.
|
|
109
|
-
|
|
110
|
-
context.put(context.constants.DESTROYED, true); // And release the API Key and SyncManager
|
|
111
|
-
|
|
112
|
-
if (!sharedInstance) {
|
|
113
|
-
(0, _inputValidation.releaseApiKey)(settings.core.authorizationKey);
|
|
114
|
-
delete syncManagers[settings.core.authorizationKey];
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
}); // We'll start the signals listener if the client is not a shared instance.
|
|
119
|
-
// For now, we will only call destroy.
|
|
120
|
-
|
|
121
|
-
!sharedInstance && signalsListener.start(api.destroy);
|
|
122
|
-
return {
|
|
123
|
-
api: api,
|
|
124
|
-
metricCollectors: metrics && metrics.collectors
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
var _default = SplitFactoryOnline;
|
|
129
|
-
exports.default = _default;
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _time = require("../utils/time");
|
|
9
|
-
|
|
10
|
-
var _objectAssign = _interopRequireDefault(require("object-assign"));
|
|
11
|
-
|
|
12
|
-
var ImpressionCounter = /*#__PURE__*/function () {
|
|
13
|
-
function ImpressionCounter() {
|
|
14
|
-
this.cache = {};
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Builds key to be stored in the cache with the featureName and the timeFrame truncated.
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
var _proto = ImpressionCounter.prototype;
|
|
22
|
-
|
|
23
|
-
_proto._makeKey = function _makeKey(featureName, timeFrame) {
|
|
24
|
-
return featureName + "::" + (0, _time.truncateTimeFrame)(timeFrame);
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Increments the quantity of impressions with the passed featureName and timeFrame.
|
|
28
|
-
*/
|
|
29
|
-
;
|
|
30
|
-
|
|
31
|
-
_proto.inc = function inc(featureName, timeFrame, amount) {
|
|
32
|
-
var key = this._makeKey(featureName, timeFrame);
|
|
33
|
-
|
|
34
|
-
var currentAmount = this.cache[key];
|
|
35
|
-
this.cache[key] = currentAmount ? currentAmount + amount : amount;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Returns all the elements stored in the cache and resets the cache.
|
|
39
|
-
*/
|
|
40
|
-
;
|
|
41
|
-
|
|
42
|
-
_proto.popAll = function popAll() {
|
|
43
|
-
var res = {};
|
|
44
|
-
(0, _objectAssign.default)(res, this.cache);
|
|
45
|
-
this.cache = {};
|
|
46
|
-
return res;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Returns how many keys are stored in cache.
|
|
50
|
-
*/
|
|
51
|
-
;
|
|
52
|
-
|
|
53
|
-
_proto.size = function size() {
|
|
54
|
-
return Object.keys(this.cache).length;
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
return ImpressionCounter;
|
|
58
|
-
}();
|
|
59
|
-
|
|
60
|
-
var _default = ImpressionCounter;
|
|
61
|
-
exports.default = _default;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.hashImpression128 = hashImpression128;
|
|
5
|
-
|
|
6
|
-
var _murmur3_128_x = require("../../engine/engine/murmur3/murmur3_128_x86");
|
|
7
|
-
|
|
8
|
-
var _buildKey = require("./buildKey");
|
|
9
|
-
|
|
10
|
-
function hashImpression128(impression) {
|
|
11
|
-
return (0, _murmur3_128_x.hash128)((0, _buildKey.buildKey)(impression));
|
|
12
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.hashImpression32 = hashImpression32;
|
|
7
|
-
|
|
8
|
-
var _murmur = _interopRequireDefault(require("../../engine/engine/murmur3/murmur3"));
|
|
9
|
-
|
|
10
|
-
var _buildKey = require("./buildKey");
|
|
11
|
-
|
|
12
|
-
function hashImpression32(impression) {
|
|
13
|
-
return _murmur.default.hash((0, _buildKey.buildKey)(impression));
|
|
14
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _observer = _interopRequireDefault(require("./observer"));
|
|
9
|
-
|
|
10
|
-
var _hashImpression = require("../hasher/hashImpression32");
|
|
11
|
-
|
|
12
|
-
var LAST_SEEN_CACHE_SIZE = 500; // cache up to 500 impression hashes
|
|
13
|
-
|
|
14
|
-
var BrowserImpressionObserverFactory = function BrowserImpressionObserverFactory() {
|
|
15
|
-
return new _observer.default(LAST_SEEN_CACHE_SIZE, _hashImpression.hashImpression32);
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
var _default = BrowserImpressionObserverFactory;
|
|
19
|
-
exports.default = _default;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _observer = _interopRequireDefault(require("./observer"));
|
|
9
|
-
|
|
10
|
-
var _hashImpression = require("../hasher/hashImpression128");
|
|
11
|
-
|
|
12
|
-
var LAST_SEEN_CACHE_SIZE = 500000; // cache up to 500k impression hashes
|
|
13
|
-
|
|
14
|
-
var NodeImpressionObserverFactory = function NodeImpressionObserverFactory() {
|
|
15
|
-
return new _observer.default(LAST_SEEN_CACHE_SIZE, _hashImpression.hashImpression128);
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
var _default = NodeImpressionObserverFactory;
|
|
19
|
-
exports.default = _default;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _lrucache = _interopRequireDefault(require("../../utils/lrucache/lrucache"));
|
|
9
|
-
|
|
10
|
-
var ImpressionObserver = /*#__PURE__*/function () {
|
|
11
|
-
function ImpressionObserver(size, hasher) {
|
|
12
|
-
this.cache = new _lrucache.default(size);
|
|
13
|
-
this.hasher = hasher;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
var _proto = ImpressionObserver.prototype;
|
|
17
|
-
|
|
18
|
-
_proto.testAndSet = function testAndSet(impression) {
|
|
19
|
-
var hash = this.hasher(impression);
|
|
20
|
-
var previous = this.cache.get(hash);
|
|
21
|
-
this.cache.set(hash, impression.time);
|
|
22
|
-
return previous;
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
return ImpressionObserver;
|
|
26
|
-
}();
|
|
27
|
-
|
|
28
|
-
var _default = ImpressionObserver;
|
|
29
|
-
exports.default = _default;
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _GaToSplit = _interopRequireDefault(require("./ga/GaToSplit"));
|
|
9
|
-
|
|
10
|
-
var _SplitToGa = _interopRequireDefault(require("./ga/SplitToGa"));
|
|
11
|
-
|
|
12
|
-
var _constants = require("../utils/constants");
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Factory function for browser IntegrationsManager.
|
|
16
|
-
* The integrations manager instantiates integration modules, and bypass tracked events and impressions to them.
|
|
17
|
-
*
|
|
18
|
-
* @param {Context} context SplitFactory context
|
|
19
|
-
*
|
|
20
|
-
* @returns integration manager or null if `integrations` are not present in settings.
|
|
21
|
-
*/
|
|
22
|
-
var integrationsManagerFactory = function integrationsManagerFactory(context) {
|
|
23
|
-
var settings = context.get(context.constants.SETTINGS);
|
|
24
|
-
var listeners = []; // No need to check if `settings.integrations` is an array. It was already validated in settings validation
|
|
25
|
-
|
|
26
|
-
settings.integrations.forEach(function (integrationOptions) {
|
|
27
|
-
var type = integrationOptions.type;
|
|
28
|
-
var integration;
|
|
29
|
-
|
|
30
|
-
switch (type) {
|
|
31
|
-
case _constants.GOOGLE_ANALYTICS_TO_SPLIT:
|
|
32
|
-
{
|
|
33
|
-
var storage = context.get(context.constants.STORAGE);
|
|
34
|
-
var coreSettings = settings.core;
|
|
35
|
-
integration = (0, _GaToSplit.default)(integrationOptions, storage, coreSettings);
|
|
36
|
-
break;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
case _constants.SPLIT_TO_GOOGLE_ANALYTICS:
|
|
40
|
-
{
|
|
41
|
-
integration = new _SplitToGa.default(integrationOptions);
|
|
42
|
-
break;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
if (integration && integration.queue) listeners.push(integration);
|
|
47
|
-
}); // If `listeners` is empty, not return a integration manager
|
|
48
|
-
|
|
49
|
-
if (listeners.length === 0) return; // Exception safe methods: each integration module is responsable for handling errors
|
|
50
|
-
|
|
51
|
-
return {
|
|
52
|
-
handleImpression: function handleImpression(impressionData) {
|
|
53
|
-
listeners.forEach(function (listener) {
|
|
54
|
-
return listener.queue({
|
|
55
|
-
type: _constants.SPLIT_IMPRESSION,
|
|
56
|
-
payload: impressionData
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
},
|
|
60
|
-
handleEvent: function handleEvent(eventData) {
|
|
61
|
-
listeners.forEach(function (listener) {
|
|
62
|
-
return listener.queue({
|
|
63
|
-
type: _constants.SPLIT_EVENT,
|
|
64
|
-
payload: eventData
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
var _default = integrationsManagerFactory;
|
|
72
|
-
exports.default = _default;
|