@splitsoftware/splitio 10.17.3 → 10.17.4-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGES.txt +0 -4
- package/es/factory/browser.js +67 -0
- package/es/factory/node.js +63 -0
- package/es/{client → factory}/package.json +0 -0
- package/es/index.js +16 -132
- package/es/platform/EventEmitter.js +386 -0
- package/es/platform/browser.js +10 -0
- package/es/platform/getEventSource/browser.js +3 -0
- package/es/platform/getEventSource/node.js +19 -0
- package/es/{impressions/observer → platform/getEventSource}/package.json +0 -0
- package/es/platform/getFetch/browser.js +4 -0
- package/es/platform/getFetch/node.js +18 -0
- package/es/{integrations → platform/getFetch}/package.json +0 -0
- package/es/platform/node.js +12 -0
- package/es/{listeners → platform}/package.json +0 -0
- package/es/platform/request/options/node.js +13 -0
- package/es/settings/browser.js +20 -0
- package/es/settings/defaults/browser.js +18 -0
- package/es/settings/defaults/node.js +24 -0
- package/es/settings/defaults/version.js +1 -0
- package/es/settings/integrations/browser.js +5 -0
- package/es/settings/node.js +18 -0
- package/es/{producer/offline → settings}/package.json +0 -0
- package/es/settings/runtime/node.js +17 -0
- package/es/settings/storage/browser.js +29 -0
- package/es/settings/storage/node.js +60 -0
- package/es/umd.js +2 -1
- package/lib/factory/browser.js +71 -0
- package/lib/factory/node.js +67 -0
- package/{es/producer → lib/factory}/package.json +0 -0
- package/lib/index.js +19 -155
- package/lib/platform/EventEmitter.js +390 -0
- package/lib/platform/browser.js +13 -0
- package/lib/platform/getEventSource/browser.js +7 -0
- package/lib/platform/getEventSource/node.js +25 -0
- package/{es/services → lib/platform}/getEventSource/package.json +0 -0
- package/lib/platform/getFetch/browser.js +9 -0
- package/lib/platform/getFetch/node.js +23 -0
- package/{es/services → lib/platform}/getFetch/package.json +0 -0
- package/lib/platform/node.js +16 -0
- package/{es/services/request/options → lib/platform}/package.json +0 -0
- package/lib/platform/request/options/node.js +18 -0
- package/lib/settings/browser.js +24 -0
- package/lib/settings/defaults/browser.js +21 -0
- package/lib/settings/defaults/node.js +27 -0
- package/lib/settings/defaults/version.js +4 -0
- package/lib/settings/integrations/browser.js +9 -0
- package/lib/settings/node.js +22 -0
- package/{es/services/splitChanges/offline → lib/settings}/package.json +0 -0
- package/lib/settings/runtime/node.js +22 -0
- package/lib/settings/storage/browser.js +33 -0
- package/lib/settings/storage/node.js +64 -0
- package/lib/umd.js +4 -8
- package/package.json +26 -30
- package/src/.DS_Store +0 -0
- package/src/factory/browser.js +84 -0
- package/src/factory/node.js +78 -0
- package/{es/storage/SegmentCache/InMemory → src/factory}/package.json +0 -0
- package/src/index.js +13 -136
- package/src/platform/.DS_Store +0 -0
- package/src/platform/EventEmitter.js +443 -0
- package/src/platform/browser.js +12 -0
- package/{es/services → src/platform}/getEventSource/browser.js +2 -2
- package/src/{services → platform}/getEventSource/node.js +2 -2
- package/{es/storage → 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/sync/PushManager/pushRequirements → src/platform/getFetch}/package.json +0 -0
- package/src/platform/node.js +14 -0
- package/{es/sync/SegmentUpdateWorker → src/platform}/package.json +0 -0
- package/src/platform/request/options/node.js +15 -0
- package/src/settings/.DS_Store +0 -0
- package/src/settings/browser.js +22 -0
- package/{lib/utils → src}/settings/defaults/browser.js +10 -6
- 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/settings/node.js +20 -0
- package/{es/sync → src/settings}/package.json +0 -0
- package/src/settings/runtime/node.js +21 -0
- package/src/settings/storage/browser.js +43 -0
- package/src/{utils/settings → settings}/storage/node.js +18 -34
- package/src/umd.js +1 -0
- package/types/splitio.d.ts +77 -6
- 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/getEventSource/node.js +0 -18
- package/es/services/getFetch/browser.js +0 -4
- package/es/services/getFetch/node.js +0 -18
- 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/request/options/node.js +0 -28
- 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/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 -58
- 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 -162
- package/es/storage/SegmentCache/InMemory/browser.js +0 -107
- package/es/storage/SegmentCache/InMemory/node.js +0 -82
- 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/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/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/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/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/browser.js +0 -12
- package/es/utils/settings/defaults/node.js +0 -21
- 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/node.js +0 -33
- package/es/utils/settings/runtime/package.json +0 -4
- package/es/utils/settings/storage/browser.js +0 -64
- package/es/utils/settings/storage/node.js +0 -86
- 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/browser.js +0 -8
- package/lib/services/getEventSource/node.js +0 -26
- package/lib/services/getEventSource/package.json +0 -4
- package/lib/services/getFetch/browser.js +0 -12
- package/lib/services/getFetch/node.js +0 -24
- 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/node.js +0 -37
- 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 -69
- 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 -171
- 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/node.js +0 -43
- package/lib/utils/settings/runtime/package.json +0 -4
- package/lib/utils/settings/storage/browser.js +0 -75
- package/lib/utils/settings/storage/node.js +0 -92
- 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/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/browser.js +0 -3
- 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/node.js +0 -30
- 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 -52
- 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 -140
- 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/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/browser.js +0 -12
- package/src/utils/settings/defaults/node.js +0 -21
- 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/node.js +0 -7
- 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/node.js +0 -34
- package/src/utils/settings/runtime/package.json +0 -4
- package/src/utils/settings/storage/browser.js +0 -70
- 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
package/es/sync/browser.js
DELETED
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import PushManagerFactory from './PushManager';
|
|
2
|
-
import FullProducerFactory from '../producer';
|
|
3
|
-
import PartialProducerFactory from '../producer/browser/Partial';
|
|
4
|
-
import { matching } from '../utils/key/factory';
|
|
5
|
-
import { forOwn, toString } from '../utils/lang';
|
|
6
|
-
import logFactory from '../utils/logger';
|
|
7
|
-
import { PUSH_SUBSYSTEM_DOWN, PUSH_SUBSYSTEM_UP } from './constants';
|
|
8
|
-
var log = logFactory('splitio-sync:sync-manager');
|
|
9
|
-
/**
|
|
10
|
-
* Factory of sync manager for browser
|
|
11
|
-
*
|
|
12
|
-
* @param context main client context
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
export default function BrowserSyncManagerFactory(mainContext) {
|
|
16
|
-
// map of user keys to client contexts
|
|
17
|
-
var contexts = {};
|
|
18
|
-
var settings = mainContext.get(mainContext.constants.SETTINGS); // call `createInstance` before creating PushManager, since it is in charge of creating the full producer and adding it into the main context.
|
|
19
|
-
|
|
20
|
-
var syncManager = createInstance(false, mainContext);
|
|
21
|
-
var pushManager = settings.streamingEnabled ? PushManagerFactory(mainContext, contexts) : undefined;
|
|
22
|
-
var mainProducer = mainContext.get(mainContext.constants.PRODUCER);
|
|
23
|
-
|
|
24
|
-
function startPolling() {
|
|
25
|
-
if (!mainProducer.isRunning()) {
|
|
26
|
-
log.info('Streaming not available. Starting periodic fetch of data.');
|
|
27
|
-
forOwn(contexts, function (context) {
|
|
28
|
-
var producer = context.get(context.constants.PRODUCER);
|
|
29
|
-
producer.start();
|
|
30
|
-
});
|
|
31
|
-
} else {
|
|
32
|
-
log.info('Streaming couldn\'t connect. Continue periodic fetch of data.');
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
function stopPollingAndSyncAll() {
|
|
37
|
-
if (mainProducer.isRunning()) {
|
|
38
|
-
log.info('PUSH (re)connected. Syncing and stopping periodic fetch of data.'); // if polling, stop
|
|
39
|
-
|
|
40
|
-
forOwn(contexts, function (context) {
|
|
41
|
-
var producer = context.get(context.constants.PRODUCER);
|
|
42
|
-
producer.stop();
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
syncAll();
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
function syncAll() {
|
|
50
|
-
// fetch splits and segments
|
|
51
|
-
var mainProducer = mainContext.get(mainContext.constants.PRODUCER);
|
|
52
|
-
mainProducer.synchronizeSplits();
|
|
53
|
-
forOwn(contexts, function (context) {
|
|
54
|
-
var producer = context.get(context.constants.PRODUCER);
|
|
55
|
-
producer.synchronizeMySegments();
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Creates a SyncManager that handles the synchronization of clients (main and shared ones).
|
|
60
|
-
* Internally, it creates the client producer, adds it into its context, and defines the `start` and `stop` methods that handle synchronization.
|
|
61
|
-
*
|
|
62
|
-
* @param {Object} context
|
|
63
|
-
* @param {boolean} isSharedClient
|
|
64
|
-
*/
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
function createInstance(isSharedClient, context) {
|
|
68
|
-
var producer = isSharedClient ? PartialProducerFactory(context) : FullProducerFactory(context);
|
|
69
|
-
var settings = context.get(context.constants.SETTINGS); // we need to stringify the user key (or matching key) in case it is not an string, to hash and pass as query param for authentication
|
|
70
|
-
|
|
71
|
-
var userKey = toString(matching(settings.core.key));
|
|
72
|
-
context.put(context.constants.PRODUCER, producer);
|
|
73
|
-
if (contexts[userKey]) log.warn('A client with the same user key has already been created. Only the new instance will be properly synchronized.');
|
|
74
|
-
contexts[userKey] = context;
|
|
75
|
-
return {
|
|
76
|
-
start: function start() {
|
|
77
|
-
// start syncing
|
|
78
|
-
if (pushManager) {
|
|
79
|
-
if (!isSharedClient) {
|
|
80
|
-
syncAll(); // initial syncAll (only when main client is created)
|
|
81
|
-
|
|
82
|
-
pushManager.on(PUSH_SUBSYSTEM_UP, stopPollingAndSyncAll);
|
|
83
|
-
pushManager.on(PUSH_SUBSYSTEM_DOWN, startPolling);
|
|
84
|
-
} else {
|
|
85
|
-
if (mainProducer.isRunning()) {
|
|
86
|
-
// if doing polling, we must start the producer periodic fetch of data
|
|
87
|
-
producer.start();
|
|
88
|
-
} else {
|
|
89
|
-
// if not doing polling, we must perform a `producer.synchronizeMySegments` for the initial fetch
|
|
90
|
-
// of segments since `syncAll` was already executed when starting the main client
|
|
91
|
-
producer.synchronizeMySegments();
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
pushManager.startNewClient(userKey, context);
|
|
96
|
-
} else {
|
|
97
|
-
producer.start();
|
|
98
|
-
}
|
|
99
|
-
},
|
|
100
|
-
stop: function stop() {
|
|
101
|
-
var context = contexts[userKey];
|
|
102
|
-
|
|
103
|
-
if (context) {
|
|
104
|
-
// check in case `client.destroy()` has been invoked more than once for the same client
|
|
105
|
-
delete contexts[userKey];
|
|
106
|
-
|
|
107
|
-
if (pushManager) {
|
|
108
|
-
pushManager.removeClient(userKey); // stop push if stoping main client
|
|
109
|
-
|
|
110
|
-
if (!isSharedClient) pushManager.stop(); // We don't reconnect pushmanager when removing a shared client,
|
|
111
|
-
// since it is more costly than continue listening the channel
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
if (producer.isRunning()) producer.stop();
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
};
|
|
118
|
-
} // For the main client we return a SyncManager with 3 methods: start, stop and shared. The last is used to instantiate "partial SyncManagers".
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
syncManager.shared = createInstance.bind(null, true); // pushManager is exposed to close SSE connection in browser on 'unload' DOM event.
|
|
122
|
-
|
|
123
|
-
syncManager.pushManager = pushManager;
|
|
124
|
-
return syncManager;
|
|
125
|
-
}
|
package/es/sync/constants.js
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
// time for refresh token
|
|
2
|
-
export var SECONDS_BEFORE_EXPIRATION = 600; // Internal SDK events, subscribed by SyncManager and PushManager
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* emitted on SSE and Authenticate non-recoverable errors, STREAMING_DISABLED control notification and authentication with pushEnabled false
|
|
6
|
-
* triggers `handleNonRetryableError` call
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
export var PUSH_NONRETRYABLE_ERROR = 'PUSH_NONRETRYABLE_ERROR';
|
|
10
|
-
/**
|
|
11
|
-
* emitted on SSE and Authenticate recoverable errors
|
|
12
|
-
* triggers `handleRetryableError` call
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
export var PUSH_RETRYABLE_ERROR = 'PUSH_RETRYABLE_ERROR';
|
|
16
|
-
/**
|
|
17
|
-
* emitted on STREAMING_RESUMED control notification, OCCUPANCY different than 0, and SSE onopen event
|
|
18
|
-
* triggers `stopPollingAndSyncAll` call
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
export var PUSH_SUBSYSTEM_UP = 'PUSH_SUBSYSTEM_UP';
|
|
22
|
-
/**
|
|
23
|
-
* emitted on STREAMING_PAUSED control notification, OCCUPANCY equal to 0, PUSH_NONRETRYABLE_ERROR and PUSH_RETRYABLE_ERROR events.
|
|
24
|
-
* triggers `startPolling` and `stopWorkers` calls
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
|
-
export var PUSH_SUBSYSTEM_DOWN = 'PUSH_SUBSYSTEM_DOWN'; // Update-type push notifications, handled by NotificationProcessor
|
|
28
|
-
|
|
29
|
-
export var MY_SEGMENTS_UPDATE = 'MY_SEGMENTS_UPDATE';
|
|
30
|
-
export var MY_SEGMENTS_UPDATE_V2 = 'MY_SEGMENTS_UPDATE_V2';
|
|
31
|
-
export var SEGMENT_UPDATE = 'SEGMENT_UPDATE';
|
|
32
|
-
export var SPLIT_KILL = 'SPLIT_KILL';
|
|
33
|
-
export var SPLIT_UPDATE = 'SPLIT_UPDATE'; // Control-type push notifications, handled by NotificationKeeper
|
|
34
|
-
|
|
35
|
-
export var CONTROL = 'CONTROL';
|
|
36
|
-
export var OCCUPANCY = 'OCCUPANCY';
|
|
37
|
-
export var ControlTypes = {
|
|
38
|
-
STREAMING_DISABLED: 'STREAMING_DISABLED',
|
|
39
|
-
STREAMING_PAUSED: 'STREAMING_PAUSED',
|
|
40
|
-
STREAMING_RESUMED: 'STREAMING_RESUMED',
|
|
41
|
-
STREAMING_RESET: 'STREAMING_RESET'
|
|
42
|
-
};
|
package/es/sync/node.js
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import PushManagerFactory from './PushManager';
|
|
2
|
-
import FullProducerFactory from '../producer';
|
|
3
|
-
import logFactory from '../utils/logger';
|
|
4
|
-
import { PUSH_SUBSYSTEM_DOWN, PUSH_SUBSYSTEM_UP } from './constants';
|
|
5
|
-
var log = logFactory('splitio-sync:sync-manager');
|
|
6
|
-
/**
|
|
7
|
-
* Factory of SyncManager for node
|
|
8
|
-
*
|
|
9
|
-
* @param context main client context
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
export default function NodeSyncManagerFactory(context) {
|
|
13
|
-
var producer = FullProducerFactory(context);
|
|
14
|
-
var settings = context.get(context.constants.SETTINGS); // add producer into the context before creating the PushManager
|
|
15
|
-
|
|
16
|
-
context.put(context.constants.PRODUCER, producer);
|
|
17
|
-
var pushManager = settings.streamingEnabled ? PushManagerFactory(context) : undefined;
|
|
18
|
-
|
|
19
|
-
function startPolling() {
|
|
20
|
-
if (!producer.isRunning()) {
|
|
21
|
-
log.info('Streaming not available. Starting periodic fetch of data.');
|
|
22
|
-
producer.start();
|
|
23
|
-
} else {
|
|
24
|
-
log.info('Streaming couldn\'t connect. Continue periodic fetch of data.');
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
function stopPollingAndSyncAll() {
|
|
29
|
-
log.info('PUSH (re)connected. Syncing and stopping periodic fetch of data.'); // if polling, stop
|
|
30
|
-
|
|
31
|
-
if (producer.isRunning()) producer.stop();
|
|
32
|
-
syncAll();
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
function syncAll() {
|
|
36
|
-
// fetch splits and segments. There is no need to catch this promise (it is handled by `SplitChangesUpdater`)
|
|
37
|
-
producer.synchronizeSplits().then(function () {
|
|
38
|
-
producer.synchronizeSegment();
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
return {
|
|
43
|
-
start: function start() {
|
|
44
|
-
// start syncing
|
|
45
|
-
if (pushManager) {
|
|
46
|
-
syncAll();
|
|
47
|
-
pushManager.on(PUSH_SUBSYSTEM_UP, stopPollingAndSyncAll);
|
|
48
|
-
pushManager.on(PUSH_SUBSYSTEM_DOWN, startPolling);
|
|
49
|
-
setTimeout(pushManager.start); // Run in next event-loop cycle as in browser
|
|
50
|
-
} else {
|
|
51
|
-
producer.start();
|
|
52
|
-
}
|
|
53
|
-
},
|
|
54
|
-
stop: function stop() {
|
|
55
|
-
// stop syncing
|
|
56
|
-
if (pushManager) pushManager.stop();
|
|
57
|
-
if (producer.isRunning()) producer.stop();
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
}
|
package/es/trackers/event.js
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import objectAssign from 'object-assign';
|
|
2
|
-
import logFactory from '../utils/logger';
|
|
3
|
-
import thenable from '../utils/promise/thenable';
|
|
4
|
-
var log = logFactory('splitio-client:event-tracker');
|
|
5
|
-
|
|
6
|
-
function EventTracker(context) {
|
|
7
|
-
var collector = context.get(context.constants.STORAGE).events;
|
|
8
|
-
var integrationsManager = context.get(context.constants.INTEGRATIONS_MANAGER, true);
|
|
9
|
-
|
|
10
|
-
function queueEventsCallback(eventData, tracked) {
|
|
11
|
-
var eventTypeId = eventData.eventTypeId,
|
|
12
|
-
trafficTypeName = eventData.trafficTypeName,
|
|
13
|
-
key = eventData.key,
|
|
14
|
-
value = eventData.value,
|
|
15
|
-
timestamp = eventData.timestamp,
|
|
16
|
-
properties = eventData.properties; // Logging every prop would be too much.
|
|
17
|
-
|
|
18
|
-
var msg = "event of type \"" + eventTypeId + "\" for traffic type \"" + trafficTypeName + "\". Key: " + key + ". Value: " + value + ". Timestamp: " + timestamp + ". " + (properties ? 'With properties.' : 'With no properties.');
|
|
19
|
-
|
|
20
|
-
if (tracked) {
|
|
21
|
-
log.info("Successfully queued " + msg);
|
|
22
|
-
|
|
23
|
-
if (integrationsManager) {
|
|
24
|
-
// Wrap in a timeout because we don't want it to be blocking.
|
|
25
|
-
setTimeout(function () {
|
|
26
|
-
// copy of event, to avoid unexpected behaviour if modified by integrations
|
|
27
|
-
var eventDataCopy = objectAssign({}, eventData);
|
|
28
|
-
if (eventData.properties) eventDataCopy.properties = objectAssign({}, eventData.properties); // integrationsManager does not throw errors (they are internally handled by each integration module)
|
|
29
|
-
|
|
30
|
-
integrationsManager.handleEvent(eventDataCopy);
|
|
31
|
-
}, 0);
|
|
32
|
-
}
|
|
33
|
-
} else {
|
|
34
|
-
log.warn("Failed to queue " + msg);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return tracked;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
return {
|
|
41
|
-
track: function track(eventData, size) {
|
|
42
|
-
var tracked = collector.track(eventData, size);
|
|
43
|
-
|
|
44
|
-
if (thenable(tracked)) {
|
|
45
|
-
return tracked.then(queueEventsCallback.bind(null, eventData));
|
|
46
|
-
} else {
|
|
47
|
-
return queueEventsCallback(eventData, tracked);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export default EventTracker;
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
Copyright 2016 Split Software
|
|
3
|
-
|
|
4
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
you may not use this file except in compliance with the License.
|
|
6
|
-
You may obtain a copy of the License at
|
|
7
|
-
|
|
8
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
|
|
10
|
-
Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
See the License for the specific language governing permissions and
|
|
14
|
-
limitations under the License.
|
|
15
|
-
**/
|
|
16
|
-
import objectAssign from 'object-assign';
|
|
17
|
-
import logFactory from '../utils/logger';
|
|
18
|
-
import thenable from '../utils/promise/thenable';
|
|
19
|
-
import ImpressionObserverFactory from '../impressions/observer';
|
|
20
|
-
import { truncateTimeFrame } from '../utils/time';
|
|
21
|
-
import { OPTIMIZED, PRODUCER_MODE, STANDALONE_MODE } from '../utils/constants';
|
|
22
|
-
var log = logFactory('splitio-client:impressions-tracker');
|
|
23
|
-
/**
|
|
24
|
-
* Checks if impressions previous time should be added or not.
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
|
-
function shouldAddPt(settings) {
|
|
28
|
-
return [PRODUCER_MODE, STANDALONE_MODE].indexOf(settings.mode) > -1 ? true : false;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Checks if it should dedupe impressions or not.
|
|
32
|
-
*/
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
function shouldBeOptimized(settings) {
|
|
36
|
-
if (!shouldAddPt(settings)) return false;
|
|
37
|
-
return settings.sync.impressionsMode === OPTIMIZED ? true : false;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
function ImpressionsTracker(context) {
|
|
41
|
-
var collector = context.get(context.constants.STORAGE).impressions;
|
|
42
|
-
var settings = context.get(context.constants.SETTINGS);
|
|
43
|
-
var listener = settings.impressionListener;
|
|
44
|
-
var integrationsManager = context.get(context.constants.INTEGRATIONS_MANAGER, true);
|
|
45
|
-
var _settings$runtime = settings.runtime,
|
|
46
|
-
ip = _settings$runtime.ip,
|
|
47
|
-
hostname = _settings$runtime.hostname;
|
|
48
|
-
var sdkLanguageVersion = settings.version;
|
|
49
|
-
var _queue = [];
|
|
50
|
-
var shouldAddPreviousTime = shouldAddPt(settings);
|
|
51
|
-
var isOptimized = shouldBeOptimized(settings);
|
|
52
|
-
var observer = ImpressionObserverFactory(); // Instantiates observer
|
|
53
|
-
|
|
54
|
-
var impressionsCounter = context.get(context.constants.IMPRESSIONS_COUNTER);
|
|
55
|
-
return {
|
|
56
|
-
queue: function queue(impression, attributes) {
|
|
57
|
-
_queue.push({
|
|
58
|
-
impression: impression,
|
|
59
|
-
attributes: attributes
|
|
60
|
-
});
|
|
61
|
-
},
|
|
62
|
-
track: function track() {
|
|
63
|
-
var impressionsCount = _queue.length;
|
|
64
|
-
|
|
65
|
-
var slice = _queue.splice(0, impressionsCount);
|
|
66
|
-
|
|
67
|
-
var impressionsToStore = []; // Track only the impressions that are going to be stored
|
|
68
|
-
// Wraps impressions to store and adds previousTime if it corresponds
|
|
69
|
-
|
|
70
|
-
slice.forEach(function (_ref) {
|
|
71
|
-
var impression = _ref.impression;
|
|
72
|
-
|
|
73
|
-
if (shouldAddPreviousTime) {
|
|
74
|
-
// Adds previous time if it is enabled
|
|
75
|
-
impression.pt = observer.testAndSet(impression);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
var now = Date.now();
|
|
79
|
-
|
|
80
|
-
if (isOptimized && impressionsCounter) {
|
|
81
|
-
// Increments impression counter per featureName
|
|
82
|
-
impressionsCounter.inc(impression.feature, now, 1);
|
|
83
|
-
} // Checks if the impression should be added in queue to be sent
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
if (!isOptimized || !impression.pt || impression.pt < truncateTimeFrame(now)) {
|
|
87
|
-
impressionsToStore.push(impression);
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
var res = collector.track(impressionsToStore); // If we're on an async storage, handle error and log it.
|
|
91
|
-
|
|
92
|
-
if (thenable(res)) {
|
|
93
|
-
res.then(function () {
|
|
94
|
-
log.debug("Successfully stored " + impressionsCount + " impression" + (impressionsCount === 1 ? '' : 's') + ".");
|
|
95
|
-
}).catch(function (err) {
|
|
96
|
-
log.error("Could not store impressions bulk with " + impressionsCount + " impression" + (impressionsCount === 1 ? '' : 's') + ". Error: " + err);
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
if (listener || integrationsManager) {
|
|
101
|
-
var _loop = function _loop(i) {
|
|
102
|
-
var impressionData = {
|
|
103
|
-
// copy of impression, to avoid unexpected behaviour if modified by integrations or impressionListener
|
|
104
|
-
impression: objectAssign({}, slice[i].impression),
|
|
105
|
-
attributes: slice[i].attributes,
|
|
106
|
-
ip: ip,
|
|
107
|
-
hostname: hostname,
|
|
108
|
-
sdkLanguageVersion: sdkLanguageVersion
|
|
109
|
-
}; // Wrap in a timeout because we don't want it to be blocking.
|
|
110
|
-
|
|
111
|
-
setTimeout(function () {
|
|
112
|
-
// integrationsManager.handleImpression does not throw errors
|
|
113
|
-
if (integrationsManager) integrationsManager.handleImpression(impressionData);
|
|
114
|
-
|
|
115
|
-
try {
|
|
116
|
-
// An exception on the listeners should not break the SDK.
|
|
117
|
-
if (listener) listener.logImpression(impressionData);
|
|
118
|
-
} catch (err) {
|
|
119
|
-
log.error("Impression listener logImpression method threw: " + err + ".");
|
|
120
|
-
}
|
|
121
|
-
}, 0);
|
|
122
|
-
};
|
|
123
|
-
|
|
124
|
-
for (var i = 0; i < impressionsCount; i++) {
|
|
125
|
-
_loop(i);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
export default ImpressionsTracker;
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
var Backoff = /*#__PURE__*/function () {
|
|
2
|
-
/**
|
|
3
|
-
* Schedule function calls with exponential backoff
|
|
4
|
-
*
|
|
5
|
-
* @param {function} cb
|
|
6
|
-
* @param {number} baseMillis
|
|
7
|
-
* @param {number} maxMillis
|
|
8
|
-
*/
|
|
9
|
-
function Backoff(cb, baseMillis, maxMillis) {
|
|
10
|
-
this.baseMillis = baseMillis || Backoff.DEFAULT_BASE_MILLIS;
|
|
11
|
-
this.maxMillis = maxMillis || Backoff.DEFAULT_MAX_MILLIS;
|
|
12
|
-
this.attempts = 0;
|
|
13
|
-
this.cb = cb;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Schedule a next call to `cb`
|
|
17
|
-
* @returns scheduled delay in milliseconds
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
var _proto = Backoff.prototype;
|
|
22
|
-
|
|
23
|
-
_proto.scheduleCall = function scheduleCall() {
|
|
24
|
-
var _this = this;
|
|
25
|
-
|
|
26
|
-
var delayInMillis = Math.min(this.baseMillis * Math.pow(2, this.attempts), this.maxMillis);
|
|
27
|
-
if (this.timeoutID) clearTimeout(this.timeoutID);
|
|
28
|
-
this.timeoutID = setTimeout(function () {
|
|
29
|
-
_this.cb();
|
|
30
|
-
}, delayInMillis);
|
|
31
|
-
this.attempts++;
|
|
32
|
-
return delayInMillis;
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
_proto.reset = function reset() {
|
|
36
|
-
this.attempts = 0;
|
|
37
|
-
|
|
38
|
-
if (this.timeoutID) {
|
|
39
|
-
clearTimeout(this.timeoutID);
|
|
40
|
-
this.timeoutID = 0;
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
return Backoff;
|
|
45
|
-
}();
|
|
46
|
-
|
|
47
|
-
Backoff.DEFAULT_BASE_MILLIS = 1000; // 1 second
|
|
48
|
-
|
|
49
|
-
Backoff.DEFAULT_MAX_MILLIS = 1800000; // 30 minutes
|
|
50
|
-
|
|
51
|
-
export default Backoff;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Decode a given string value in Base64 format
|
|
3
|
-
*
|
|
4
|
-
* @param {string} value to decode
|
|
5
|
-
* @throws {ReferenceError} if `atob` function is not defined
|
|
6
|
-
*/
|
|
7
|
-
export function decodeFromBase64(value) {
|
|
8
|
-
return atob(value);
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Encode a given string value to Base64 format.
|
|
12
|
-
*
|
|
13
|
-
* @param {string} value to encode
|
|
14
|
-
* @throws {ReferenceError} if `btoa` function is not defined
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
export function encodeToBase64(value) {
|
|
18
|
-
return btoa(value);
|
|
19
|
-
}
|
package/es/utils/base64/node.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Decode a given string value in Base64 format
|
|
3
|
-
*
|
|
4
|
-
* @param {string} value to decode
|
|
5
|
-
*/
|
|
6
|
-
export function decodeFromBase64(value) {
|
|
7
|
-
// for node (version mayor than v4)
|
|
8
|
-
return Buffer.from(value, 'base64').toString('binary');
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Encode a given string value to Base64 format
|
|
12
|
-
*
|
|
13
|
-
* @param {string} value to encode
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
export function encodeToBase64(value) {
|
|
17
|
-
// for node (version mayor than v4)
|
|
18
|
-
return Buffer.from(value).toString('base64');
|
|
19
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
Copyright 2016 Split Software
|
|
3
|
-
|
|
4
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
you may not use this file except in compliance with the License.
|
|
6
|
-
You may obtain a copy of the License at
|
|
7
|
-
|
|
8
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
|
|
10
|
-
Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
See the License for the specific language governing permissions and
|
|
14
|
-
limitations under the License.
|
|
15
|
-
**/
|
|
16
|
-
function bs(items, value) {
|
|
17
|
-
var startIndex = 0;
|
|
18
|
-
var stopIndex = items.length - 1;
|
|
19
|
-
var middle = Math.floor((stopIndex + startIndex) / 2);
|
|
20
|
-
var minIndex = startIndex;
|
|
21
|
-
var maxIndex = stopIndex;
|
|
22
|
-
|
|
23
|
-
while (items[middle] !== value && startIndex < stopIndex) {
|
|
24
|
-
// adjust search area
|
|
25
|
-
if (value < items[middle]) {
|
|
26
|
-
stopIndex = middle - 1;
|
|
27
|
-
} else if (value > items[middle]) {
|
|
28
|
-
startIndex = middle + 1;
|
|
29
|
-
} // recalculate middle
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
middle = Math.floor((stopIndex + startIndex) / 2);
|
|
33
|
-
} // correct if middle is out of range
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
if (middle < minIndex) {
|
|
37
|
-
middle = minIndex;
|
|
38
|
-
} else if (middle > maxIndex) {
|
|
39
|
-
middle = maxIndex;
|
|
40
|
-
} // we want to always return based on strict minor comparation
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
if (value < items[middle] && middle > minIndex) {
|
|
44
|
-
return middle - 1;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return middle;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
export default bs;
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
// SDK Modes
|
|
2
|
-
export var LOCALHOST_MODE = 'localhost';
|
|
3
|
-
export var STANDALONE_MODE = 'standalone';
|
|
4
|
-
export var PRODUCER_MODE = 'producer';
|
|
5
|
-
export var CONSUMER_MODE = 'consumer'; // Storage types
|
|
6
|
-
|
|
7
|
-
export var STORAGE_MEMORY = 'MEMORY';
|
|
8
|
-
export var STORAGE_REDIS = 'REDIS';
|
|
9
|
-
export var STORAGE_LOCALSTORAGE = 'LOCALSTORAGE'; // Special treatments
|
|
10
|
-
|
|
11
|
-
export var CONTROL = 'control';
|
|
12
|
-
export var CONTROL_WITH_CONFIG = {
|
|
13
|
-
treatment: CONTROL,
|
|
14
|
-
config: null
|
|
15
|
-
}; // Constants for unknown and not-applicable values
|
|
16
|
-
|
|
17
|
-
export var UNKNOWN = 'unknown';
|
|
18
|
-
export var NA = 'NA'; // Integration types
|
|
19
|
-
|
|
20
|
-
export var GOOGLE_ANALYTICS_TO_SPLIT = 'GOOGLE_ANALYTICS_TO_SPLIT';
|
|
21
|
-
export var SPLIT_TO_GOOGLE_ANALYTICS = 'SPLIT_TO_GOOGLE_ANALYTICS'; // Integration data types
|
|
22
|
-
|
|
23
|
-
export var SPLIT_IMPRESSION = 'IMPRESSION';
|
|
24
|
-
export var SPLIT_EVENT = 'EVENT'; // Split filters metadata.
|
|
25
|
-
// Ordered according to their precedency when forming the filter query string: `&names=<values>&prefixes=<values>`
|
|
26
|
-
|
|
27
|
-
export var FILTERS_METADATA = [{
|
|
28
|
-
type: 'byName',
|
|
29
|
-
maxLength: 400,
|
|
30
|
-
queryParam: 'names='
|
|
31
|
-
}, {
|
|
32
|
-
type: 'byPrefix',
|
|
33
|
-
maxLength: 50,
|
|
34
|
-
queryParam: 'prefixes='
|
|
35
|
-
}]; // Impression collection modes
|
|
36
|
-
|
|
37
|
-
export var DEBUG = 'DEBUG';
|
|
38
|
-
export var OPTIMIZED = 'OPTIMIZED';
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
export var COLLECTORS = 'metrics_collectors';
|
|
2
|
-
export var DESTROYED = 'is_destroyed';
|
|
3
|
-
export var EVENTS = 'events_publisher';
|
|
4
|
-
export var HAS_TIMEDOUT = 'has_timedout';
|
|
5
|
-
export var INTEGRATIONS_MANAGER = 'integrations_manager';
|
|
6
|
-
export var MY_SEGMENTS_CHANGE_WORKER = 'my_segments_change_worker';
|
|
7
|
-
export var PRODUCER = 'producer';
|
|
8
|
-
export var READINESS = 'readiness_gate';
|
|
9
|
-
export var READY = 'is_ready';
|
|
10
|
-
export var READY_FROM_CACHE = 'is_ready_from_cache';
|
|
11
|
-
export var SETTINGS = 'settings';
|
|
12
|
-
export var STATUS_MANAGER = 'status_manager';
|
|
13
|
-
export var STORAGE = 'storage';
|
|
14
|
-
export var IMPRESSIONS_COUNTER = 'impressions_counter';
|
|
15
|
-
export default {
|
|
16
|
-
COLLECTORS: COLLECTORS,
|
|
17
|
-
DESTROYED: DESTROYED,
|
|
18
|
-
EVENTS: EVENTS,
|
|
19
|
-
HAS_TIMEDOUT: HAS_TIMEDOUT,
|
|
20
|
-
INTEGRATIONS_MANAGER: INTEGRATIONS_MANAGER,
|
|
21
|
-
MY_SEGMENTS_CHANGE_WORKER: MY_SEGMENTS_CHANGE_WORKER,
|
|
22
|
-
PRODUCER: PRODUCER,
|
|
23
|
-
READINESS: READINESS,
|
|
24
|
-
READY: READY,
|
|
25
|
-
READY_FROM_CACHE: READY_FROM_CACHE,
|
|
26
|
-
SETTINGS: SETTINGS,
|
|
27
|
-
STATUS_MANAGER: STATUS_MANAGER,
|
|
28
|
-
STORAGE: STORAGE,
|
|
29
|
-
IMPRESSIONS_COUNTER: IMPRESSIONS_COUNTER
|
|
30
|
-
};
|