@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,16 +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
|
-
export default 'nodejs';
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { LOCALHOST_MODE, STANDALONE_MODE, PRODUCER_MODE, CONSUMER_MODE } from '../constants';
|
|
2
|
-
|
|
3
|
-
function mode(key, mode) {
|
|
4
|
-
// Leaving the comparison as is, in case we change the mode name but not the setting.
|
|
5
|
-
if (key === 'localhost') return LOCALHOST_MODE;
|
|
6
|
-
if ([STANDALONE_MODE, PRODUCER_MODE, CONSUMER_MODE].indexOf(mode) === -1) throw Error('Invalid mode provided');
|
|
7
|
-
return mode;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export default mode;
|
|
@@ -1,21 +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
|
-
export default function generateRuntimeSettings() {
|
|
17
|
-
return {
|
|
18
|
-
ip: false,
|
|
19
|
-
hostname: false
|
|
20
|
-
};
|
|
21
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Given a list of conditions, it returns a boolean flagging if those conditions
|
|
3
|
-
* use segments matchers (rules & whitelists)
|
|
4
|
-
*/
|
|
5
|
-
function usesSegments(conditions) {
|
|
6
|
-
if (conditions === void 0) {
|
|
7
|
-
conditions = [];
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
for (var i = 0; i < conditions.length; i++) {
|
|
11
|
-
var matchers = conditions[i].matcherGroup.matchers;
|
|
12
|
-
|
|
13
|
-
for (var j = 0; j < matchers.length; j++) {
|
|
14
|
-
if (matchers[j].matcherType === 'IN_SEGMENT') return true;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export default usesSegments;
|
package/es/utils/time/index.js
DELETED
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
var _CALLBACKS;
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
Copyright 2016 Split Software
|
|
5
|
-
|
|
6
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
you may not use this file except in compliance with the License.
|
|
8
|
-
You may obtain a copy of the License at
|
|
9
|
-
|
|
10
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
|
|
12
|
-
Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
See the License for the specific language governing permissions and
|
|
16
|
-
limitations under the License.
|
|
17
|
-
**/
|
|
18
|
-
import { uniqueId } from '../lang';
|
|
19
|
-
import { Logger } from '../logger/LoggerFactory';
|
|
20
|
-
import timer from './timer';
|
|
21
|
-
import thenable from '../promise/thenable'; // logger to be used on this module
|
|
22
|
-
|
|
23
|
-
var logger = new Logger('[TIME TRACKER]', {
|
|
24
|
-
showLevel: false
|
|
25
|
-
}); // Map we will use for storing timers data
|
|
26
|
-
|
|
27
|
-
var timers = {}; // Tasks constants
|
|
28
|
-
|
|
29
|
-
var CONSTANTS = {
|
|
30
|
-
SDK_READY: 'Getting ready - Split SDK',
|
|
31
|
-
SDK_GET_TREATMENT: 'SDK - Get Treatment',
|
|
32
|
-
SDK_GET_TREATMENTS: 'SDK - Get Treatments',
|
|
33
|
-
SDK_GET_TREATMENT_WITH_CONFIG: 'SDK - Get Treatment with config',
|
|
34
|
-
SDK_GET_TREATMENTS_WITH_CONFIG: 'SDK - Get Treatments with config',
|
|
35
|
-
SPLITS_READY: 'Getting ready - Splits',
|
|
36
|
-
SEGMENTS_READY: 'Getting ready - Segments',
|
|
37
|
-
METRICS_PUSH: 'Pushing - Metrics',
|
|
38
|
-
IMPRESSIONS_PUSH: 'Pushing - Impressions',
|
|
39
|
-
EVENTS_PUSH: 'Pushing - Events',
|
|
40
|
-
MY_SEGMENTS_FETCH: 'Fetching - My Segments',
|
|
41
|
-
SEGMENTS_FETCH: 'Fetching - Segments',
|
|
42
|
-
SPLITS_FETCH: 'Fetching - Splits'
|
|
43
|
-
}; // Tasks callbacks, if any
|
|
44
|
-
|
|
45
|
-
var CALLBACKS = (_CALLBACKS = {}, _CALLBACKS[CONSTANTS.SDK_READY] = {
|
|
46
|
-
collector: 'client',
|
|
47
|
-
method: 'ready'
|
|
48
|
-
}, _CALLBACKS[CONSTANTS.SDK_GET_TREATMENT] = {
|
|
49
|
-
collector: 'client',
|
|
50
|
-
method: 'getTreatment'
|
|
51
|
-
}, _CALLBACKS[CONSTANTS.SDK_GET_TREATMENTS] = {
|
|
52
|
-
collector: 'client',
|
|
53
|
-
method: 'getTreatments'
|
|
54
|
-
}, _CALLBACKS[CONSTANTS.SDK_GET_TREATMENT_WITH_CONFIG] = {
|
|
55
|
-
collector: 'client',
|
|
56
|
-
method: 'getTreatmentWithConfig'
|
|
57
|
-
}, _CALLBACKS[CONSTANTS.SDK_GET_TREATMENTS_WITH_CONFIG] = {
|
|
58
|
-
collector: 'client',
|
|
59
|
-
method: 'getTreatmentsWithConfig'
|
|
60
|
-
}, _CALLBACKS[CONSTANTS.MY_SEGMENTS_FETCH] = {
|
|
61
|
-
collector: 'mySegments',
|
|
62
|
-
method: 'latency'
|
|
63
|
-
}, _CALLBACKS[CONSTANTS.SEGMENTS_FETCH] = {
|
|
64
|
-
collector: 'segmentChanges',
|
|
65
|
-
method: 'latency'
|
|
66
|
-
}, _CALLBACKS[CONSTANTS.SPLITS_FETCH] = {
|
|
67
|
-
collector: 'splitChanges',
|
|
68
|
-
method: 'latency'
|
|
69
|
-
}, _CALLBACKS);
|
|
70
|
-
/**
|
|
71
|
-
* Generates the timer keys using the task name and a modifier, if any.
|
|
72
|
-
* @param {string} task - The task name
|
|
73
|
-
* @param {string} modifier - (optional) The modifier, if any.
|
|
74
|
-
* @return {string} The generated timer key
|
|
75
|
-
*/
|
|
76
|
-
|
|
77
|
-
var generateTimerKey = function generateTimerKey(task, modifier) {
|
|
78
|
-
return typeof modifier === 'string' ? task + modifier : task;
|
|
79
|
-
};
|
|
80
|
-
/**
|
|
81
|
-
* Given the collectors map, it returns the specific collector for a given task.
|
|
82
|
-
*
|
|
83
|
-
* @param {string} task - The task name
|
|
84
|
-
* @param {Object} collectors - The collectors map
|
|
85
|
-
*/
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
var getCollectorForTask = function getCollectorForTask(task, collectors) {
|
|
89
|
-
var callbackData = CALLBACKS[task];
|
|
90
|
-
if (callbackData && collectors) return collectors[callbackData.collector];
|
|
91
|
-
return false;
|
|
92
|
-
};
|
|
93
|
-
/**
|
|
94
|
-
* Given a collector and a task, returns the callback function that should be called when we stop the timer.
|
|
95
|
-
*
|
|
96
|
-
* @param {string} task - The task name
|
|
97
|
-
* @param {Object} collector - The collector object for the task
|
|
98
|
-
*/
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
var getCallbackForTask = function getCallbackForTask(task, collector) {
|
|
102
|
-
var callbackData = CALLBACKS[task];
|
|
103
|
-
if (callbackData && collector) return collector[callbackData.method];
|
|
104
|
-
return false;
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
var TrackerAPI = {
|
|
108
|
-
/**
|
|
109
|
-
* "Private" method, used to attach count/countException and stop callbacks to a promise.
|
|
110
|
-
*
|
|
111
|
-
* @param {Promise} promise - The promise we want to attach the callbacks.
|
|
112
|
-
* @param {string} task - The name of the task.
|
|
113
|
-
* @param {string} modifier - (optional) The modifier for the task, if any.
|
|
114
|
-
*/
|
|
115
|
-
__attachToPromise: function __attachToPromise(promise, task, collector, modifier) {
|
|
116
|
-
var _this = this;
|
|
117
|
-
|
|
118
|
-
return promise.then(function (resp) {
|
|
119
|
-
_this.stop(task, modifier);
|
|
120
|
-
|
|
121
|
-
if (collector && collector.count) collector.count(resp.status);
|
|
122
|
-
return resp;
|
|
123
|
-
}).catch(function (err) {
|
|
124
|
-
_this.stop(task, modifier);
|
|
125
|
-
|
|
126
|
-
if (collector && collector.countException) collector.countException();
|
|
127
|
-
throw err;
|
|
128
|
-
});
|
|
129
|
-
},
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Starts tracking the time for a given task. All tasks tracked are considered "unique" because
|
|
133
|
-
* there may be multiple SDK instances tracking a "generic" task, making any task non-generic.
|
|
134
|
-
*
|
|
135
|
-
* @param {string} task - The task we are starting.
|
|
136
|
-
* @param {Object} collectors - The collectors map.
|
|
137
|
-
* @param {Promise} promise - (optional) The promise we are tracking.
|
|
138
|
-
* @return {Function | Promise} The stop function for this specific task or the promise received with the callbacks registered.
|
|
139
|
-
*/
|
|
140
|
-
start: function start(task, collectors, promise) {
|
|
141
|
-
var taskUniqueId = uniqueId();
|
|
142
|
-
var taskCollector = getCollectorForTask(task, collectors);
|
|
143
|
-
var result; // If we are registering a promise with this task, we should count the status and the exceptions as well
|
|
144
|
-
// as stopping the task when the promise resolves. Then return the promise
|
|
145
|
-
|
|
146
|
-
if (thenable(promise)) {
|
|
147
|
-
result = this.__attachToPromise(promise, task, taskCollector, taskUniqueId);
|
|
148
|
-
} else {
|
|
149
|
-
// If not, we return the stop function, as it will be stopped manually.
|
|
150
|
-
result = this.stop.bind(this, task, taskUniqueId);
|
|
151
|
-
|
|
152
|
-
if (CALLBACKS[task] && !taskCollector) {
|
|
153
|
-
// and provide a way for a defered setup of the collector, if needed.
|
|
154
|
-
result.setCollectorForTask = this.setCollectorForTask.bind(this, task, taskUniqueId);
|
|
155
|
-
}
|
|
156
|
-
} // We start the timer, with an uniqueId attached to it's name, and save tracking info for this task.
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
var trackingKey = generateTimerKey(task, taskUniqueId);
|
|
160
|
-
var cb = getCallbackForTask(task, taskCollector);
|
|
161
|
-
timers[trackingKey] = {
|
|
162
|
-
cb: cb,
|
|
163
|
-
timer: timer()
|
|
164
|
-
};
|
|
165
|
-
return result;
|
|
166
|
-
},
|
|
167
|
-
|
|
168
|
-
/**
|
|
169
|
-
* Setup the collector for a task that reports metrics.
|
|
170
|
-
*
|
|
171
|
-
* @param {string} task - The task name
|
|
172
|
-
* @param {string} taskUniqueId - The unique identifier for this task
|
|
173
|
-
* @param {Object} collectors - The collectors map.
|
|
174
|
-
*/
|
|
175
|
-
setCollectorForTask: function setCollectorForTask(task, taskUniqueId, collectors) {
|
|
176
|
-
var taskCollector = getCollectorForTask(task, collectors);
|
|
177
|
-
|
|
178
|
-
if (taskCollector) {
|
|
179
|
-
var trackingKey = generateTimerKey(task, taskUniqueId);
|
|
180
|
-
timers[trackingKey].cb = getCallbackForTask(task, taskCollector);
|
|
181
|
-
}
|
|
182
|
-
},
|
|
183
|
-
|
|
184
|
-
/**
|
|
185
|
-
* Stops the tracking of a given task.
|
|
186
|
-
*
|
|
187
|
-
* @param {string} task - The task we are starting.
|
|
188
|
-
* @param {string} modifier - (optional) The modifier for that specific task.
|
|
189
|
-
*/
|
|
190
|
-
stop: function stop(task, modifier) {
|
|
191
|
-
var timerName = generateTimerKey(task, modifier);
|
|
192
|
-
var timerData = timers[timerName];
|
|
193
|
-
|
|
194
|
-
if (timerData) {
|
|
195
|
-
// Stop the timer and round result for readability.
|
|
196
|
-
var et = timerData.timer();
|
|
197
|
-
logger.debug("[" + task + "] took " + et + "ms to finish."); // Check if we have a tracker callback.
|
|
198
|
-
|
|
199
|
-
if (timerData.cb) {
|
|
200
|
-
// If we have a callback, we call it with the elapsed time of the task and then delete the reference.
|
|
201
|
-
timerData.cb(et);
|
|
202
|
-
} // Remove the task tracking reference.
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
delete timers[timerName];
|
|
206
|
-
return et;
|
|
207
|
-
}
|
|
208
|
-
},
|
|
209
|
-
|
|
210
|
-
/**
|
|
211
|
-
* The constants shortcut for the task names.
|
|
212
|
-
*/
|
|
213
|
-
TaskNames: CONSTANTS
|
|
214
|
-
}; // Our "time tracker" API
|
|
215
|
-
|
|
216
|
-
export default TrackerAPI;
|
|
@@ -1,25 +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 now from '../now';
|
|
17
|
-
|
|
18
|
-
function start() {
|
|
19
|
-
var st = now();
|
|
20
|
-
return function stop() {
|
|
21
|
-
return Math.round(now() - st);
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export default start;
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.default = ClientAttributesDecorationLayer;
|
|
7
|
-
|
|
8
|
-
var _inputValidation = _interopRequireDefault(require("./inputValidation"));
|
|
9
|
-
|
|
10
|
-
var _InMemory = _interopRequireDefault(require("../storage/AttributesCache/InMemory"));
|
|
11
|
-
|
|
12
|
-
var _attributes = require("../utils/inputValidation/attributes");
|
|
13
|
-
|
|
14
|
-
var _logger = _interopRequireDefault(require("../utils/logger"));
|
|
15
|
-
|
|
16
|
-
var _objectAssign = _interopRequireDefault(require("object-assign"));
|
|
17
|
-
|
|
18
|
-
var log = (0, _logger.default)('splitio-client');
|
|
19
|
-
/**
|
|
20
|
-
* Add in memory attributes storage methods and combine them with any attribute received from the getTreatment/s call
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
-
function ClientAttributesDecorationLayer(context, isKeyBinded, isTTBinded) {
|
|
24
|
-
var client = (0, _inputValidation.default)(context, isKeyBinded, isTTBinded);
|
|
25
|
-
var attributeStorage = new _InMemory.default(); // Keep a reference to the original methods
|
|
26
|
-
|
|
27
|
-
var clientGetTreatment = client.getTreatment;
|
|
28
|
-
var clientGetTreatmentWithConfig = client.getTreatmentWithConfig;
|
|
29
|
-
var clientGetTreatments = client.getTreatments;
|
|
30
|
-
var clientGetTreatmentsWithConfig = client.getTreatmentsWithConfig;
|
|
31
|
-
/**
|
|
32
|
-
* Add an attribute to client's in memory attributes storage
|
|
33
|
-
*
|
|
34
|
-
* @param {string} attributeName Attrinute name
|
|
35
|
-
* @param {string, number, boolean, list} attributeValue Attribute value
|
|
36
|
-
* @returns {boolean} true if the attribute was stored and false otherways
|
|
37
|
-
*/
|
|
38
|
-
|
|
39
|
-
client.setAttribute = function (attributeName, attributeValue) {
|
|
40
|
-
var attribute = {};
|
|
41
|
-
attribute[attributeName] = attributeValue;
|
|
42
|
-
if (!(0, _attributes.validateAttributesDeep)(attribute)) return false;
|
|
43
|
-
log.debug("stored " + attributeValue + " for attribute " + attributeName);
|
|
44
|
-
return attributeStorage.setAttribute(attributeName, attributeValue);
|
|
45
|
-
};
|
|
46
|
-
/**
|
|
47
|
-
* Returns the attribute with the given key
|
|
48
|
-
*
|
|
49
|
-
* @param {string} attributeName Attribute name
|
|
50
|
-
* @returns {Object} Attribute with the given key
|
|
51
|
-
*/
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
client.getAttribute = function (attributeName) {
|
|
55
|
-
log.debug("retrieved attribute " + attributeName);
|
|
56
|
-
return attributeStorage.getAttribute(attributeName + '');
|
|
57
|
-
};
|
|
58
|
-
/**
|
|
59
|
-
* Add to client's in memory attributes storage the attributes in 'attributes'
|
|
60
|
-
*
|
|
61
|
-
* @param {Object} attributes Object with attributes to store
|
|
62
|
-
* @returns true if attributes were stored an false otherways
|
|
63
|
-
*/
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
client.setAttributes = function (attributes) {
|
|
67
|
-
if (!(0, _attributes.validateAttributesDeep)(attributes)) return false;
|
|
68
|
-
return attributeStorage.setAttributes(attributes);
|
|
69
|
-
};
|
|
70
|
-
/**
|
|
71
|
-
* Return all the attributes stored in client's in memory attributes storage
|
|
72
|
-
*
|
|
73
|
-
* @returns {Object} returns all the stored attributes
|
|
74
|
-
*/
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
client.getAttributes = function () {
|
|
78
|
-
return attributeStorage.getAll();
|
|
79
|
-
};
|
|
80
|
-
/**
|
|
81
|
-
* Removes from client's in memory attributes storage the attribute with the given key
|
|
82
|
-
*
|
|
83
|
-
* @param {string} attributeName
|
|
84
|
-
* @returns {boolean} true if attribute was removed and false otherways
|
|
85
|
-
*/
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
client.removeAttribute = function (attributeName) {
|
|
89
|
-
log.debug("removed attribute " + attributeName);
|
|
90
|
-
return attributeStorage.removeAttribute(attributeName + '');
|
|
91
|
-
};
|
|
92
|
-
/**
|
|
93
|
-
* Remove all the stored attributes in the client's in memory attribute storage
|
|
94
|
-
*/
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
client.clearAttributes = function () {
|
|
98
|
-
return attributeStorage.clear();
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
client.getTreatment = function (maybeKey, maybeSplit, maybeAttributes) {
|
|
102
|
-
return clientGetTreatment(maybeKey, maybeSplit, combineAttributes(maybeAttributes));
|
|
103
|
-
};
|
|
104
|
-
|
|
105
|
-
client.getTreatmentWithConfig = function (maybeKey, maybeSplit, maybeAttributes) {
|
|
106
|
-
return clientGetTreatmentWithConfig(maybeKey, maybeSplit, combineAttributes(maybeAttributes));
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
client.getTreatments = function (maybeKey, maybeSplits, maybeAttributes) {
|
|
110
|
-
return clientGetTreatments(maybeKey, maybeSplits, combineAttributes(maybeAttributes));
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
client.getTreatmentsWithConfig = function (maybeKey, maybeSplits, maybeAttributes) {
|
|
114
|
-
return clientGetTreatmentsWithConfig(maybeKey, maybeSplits, combineAttributes(maybeAttributes));
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
function combineAttributes(maybeAttributes) {
|
|
118
|
-
var storedAttributes = attributeStorage.getAll();
|
|
119
|
-
|
|
120
|
-
if (Object.keys(storedAttributes).length > 0) {
|
|
121
|
-
return (0, _objectAssign.default)({}, storedAttributes, maybeAttributes);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
return maybeAttributes;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
return client;
|
|
128
|
-
}
|
package/lib/client/browser.js
DELETED
|
@@ -1,50 +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 _lang = require("../utils/lang");
|
|
9
|
-
|
|
10
|
-
var _attributesDecoration = _interopRequireDefault(require("./attributesDecoration"));
|
|
11
|
-
|
|
12
|
-
var _constants = require("../utils/constants");
|
|
13
|
-
|
|
14
|
-
var _inputValidation = require("../utils/inputValidation");
|
|
15
|
-
|
|
16
|
-
function BrowserClientFactory(context) {
|
|
17
|
-
var _client$track;
|
|
18
|
-
|
|
19
|
-
var settings = context.get(context.constants.SETTINGS);
|
|
20
|
-
var maybeKey = (0, _lang.get)(settings, 'core.key', undefined);
|
|
21
|
-
var maybeTT = (0, _lang.get)(settings, 'core.trafficType', undefined);
|
|
22
|
-
|
|
23
|
-
if (settings.mode === _constants.LOCALHOST_MODE && maybeKey === undefined) {
|
|
24
|
-
settings.core.key = 'localhost_key';
|
|
25
|
-
} else {
|
|
26
|
-
settings.core.key = (0, _inputValidation.validateKey)(maybeKey, 'Client instantiation');
|
|
27
|
-
} // Key is also binded to the .track method. Same thing happens with trafficType but only if present on configs. (not required)
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
var trackBindings = [settings.core.key];
|
|
31
|
-
|
|
32
|
-
if (maybeTT !== undefined) {
|
|
33
|
-
var tt = (0, _inputValidation.validateTrafficType)(maybeTT, 'Client instantiation');
|
|
34
|
-
settings.core.trafficType = tt;
|
|
35
|
-
trackBindings.push(tt);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
var client = (0, _attributesDecoration.default)(context, true, trackBindings.length > 1);
|
|
39
|
-
client.isBrowserClient = true; // In the browser land, we can bind the key and the traffic type (if provided)
|
|
40
|
-
|
|
41
|
-
client.getTreatment = client.getTreatment.bind(client, settings.core.key);
|
|
42
|
-
client.getTreatmentWithConfig = client.getTreatmentWithConfig.bind(client, settings.core.key);
|
|
43
|
-
client.getTreatments = client.getTreatments.bind(client, settings.core.key);
|
|
44
|
-
client.getTreatmentsWithConfig = client.getTreatmentsWithConfig.bind(client, settings.core.key);
|
|
45
|
-
client.track = (_client$track = client.track).bind.apply(_client$track, [client].concat(trackBindings));
|
|
46
|
-
return client;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
var _default = BrowserClientFactory;
|
|
50
|
-
exports.default = _default;
|