@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
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* yallist implementation based on isaacs/yallist (https://github.com/isaacs/yallist/yallist.js),
|
|
3
|
-
* with the minimal features used by the SDK.
|
|
4
|
-
|
|
5
|
-
Copyright (c) Isaac Z. Schlueter and Contributors
|
|
6
|
-
|
|
7
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
8
|
-
purpose with or without fee is hereby granted, provided that the above
|
|
9
|
-
copyright notice and this permission notice appear in all copies.
|
|
10
|
-
|
|
11
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
12
|
-
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
13
|
-
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
14
|
-
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
15
|
-
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
16
|
-
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
|
17
|
-
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
18
|
-
**/
|
|
19
|
-
export var Node = function Node(value, prev, next, list) {
|
|
20
|
-
this.list = list;
|
|
21
|
-
this.value = value;
|
|
22
|
-
|
|
23
|
-
if (prev) {
|
|
24
|
-
prev.next = this;
|
|
25
|
-
this.prev = prev;
|
|
26
|
-
} else {
|
|
27
|
-
this.prev = null;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
if (next) {
|
|
31
|
-
next.prev = this;
|
|
32
|
-
this.next = next;
|
|
33
|
-
} else {
|
|
34
|
-
this.next = null;
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
export var LinkedList = /*#__PURE__*/function () {
|
|
38
|
-
function LinkedList() {
|
|
39
|
-
this.tail = null;
|
|
40
|
-
this.head = null;
|
|
41
|
-
this.length = 0;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
var _proto = LinkedList.prototype;
|
|
45
|
-
|
|
46
|
-
_proto.removeNode = function removeNode(node) {
|
|
47
|
-
if (!node || !(node instanceof Node)) return;
|
|
48
|
-
|
|
49
|
-
if (node.list !== this) {
|
|
50
|
-
throw new Error('removing node which does not belong to this list');
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
var next = node.next;
|
|
54
|
-
var prev = node.prev;
|
|
55
|
-
|
|
56
|
-
if (next) {
|
|
57
|
-
next.prev = prev;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
if (prev) {
|
|
61
|
-
prev.next = next;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
if (node === this.head) {
|
|
65
|
-
this.head = next;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
if (node === this.tail) {
|
|
69
|
-
this.tail = prev;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
node.list.length--;
|
|
73
|
-
node.next = null;
|
|
74
|
-
node.prev = null;
|
|
75
|
-
node.list = null;
|
|
76
|
-
return next;
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
_proto.unshiftNode = function unshiftNode(node) {
|
|
80
|
-
if (!node || !(node instanceof Node)) return;
|
|
81
|
-
|
|
82
|
-
if (node === this.head) {
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
if (node.list) {
|
|
87
|
-
node.list.removeNode(node);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
var head = this.head;
|
|
91
|
-
node.list = this;
|
|
92
|
-
node.next = head;
|
|
93
|
-
|
|
94
|
-
if (head) {
|
|
95
|
-
head.prev = node;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
this.head = node;
|
|
99
|
-
|
|
100
|
-
if (!this.tail) {
|
|
101
|
-
this.tail = node;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
this.length++;
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
_proto.unshift = function unshift() {
|
|
108
|
-
for (var i = 0, l = arguments.length; i < l; i++) {
|
|
109
|
-
this.head = new Node(arguments[i], null, this.head, this);
|
|
110
|
-
|
|
111
|
-
if (!this.tail) {
|
|
112
|
-
this.tail = this.head;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
this.length++;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
return this.length;
|
|
119
|
-
};
|
|
120
|
-
|
|
121
|
-
return LinkedList;
|
|
122
|
-
}();
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import tape from 'tape-catch';
|
|
2
|
-
import LRUCache from './lrucache';
|
|
3
|
-
tape('Check Cache', function (assert) {
|
|
4
|
-
var cache = new LRUCache(5, 1000);
|
|
5
|
-
|
|
6
|
-
for (var i = 1; i <= 5; i++) {
|
|
7
|
-
assert.equal(cache.set("key" + i, i), true);
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
for (var _i = 1; _i <= 5; _i++) {
|
|
11
|
-
assert.equal(cache.get("key" + _i), _i);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
cache.set('key6', 6); // Oldest item (1) should have been removed
|
|
15
|
-
|
|
16
|
-
assert.equal(cache.get('key1'), undefined); // 2-6 should be available
|
|
17
|
-
|
|
18
|
-
for (var _i2 = 2; _i2 <= 6; _i2++) {
|
|
19
|
-
assert.equal(cache.get("key" + _i2), _i2);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
assert.equal(cache.items.size, 5);
|
|
23
|
-
assert.end();
|
|
24
|
-
});
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
2
|
-
import { LinkedList, Node } from './linkedlist';
|
|
3
|
-
|
|
4
|
-
var _Map = typeof Map !== 'undefined' ? Map : /*#__PURE__*/function () {
|
|
5
|
-
// @TODO move this util into its own file
|
|
6
|
-
function MapPoly() {}
|
|
7
|
-
|
|
8
|
-
var _proto = MapPoly.prototype;
|
|
9
|
-
|
|
10
|
-
_proto.set = function set(key, value) {
|
|
11
|
-
this[key] = value;
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
_proto.get = function get(key) {
|
|
15
|
-
return this[key];
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
_proto.delete = function _delete(key) {
|
|
19
|
-
delete this[key];
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
_createClass(MapPoly, [{
|
|
23
|
-
key: "size",
|
|
24
|
-
get: function get() {
|
|
25
|
-
return Object.keys(this).length;
|
|
26
|
-
}
|
|
27
|
-
}]);
|
|
28
|
-
|
|
29
|
-
return MapPoly;
|
|
30
|
-
}();
|
|
31
|
-
|
|
32
|
-
var LRUCache = /*#__PURE__*/function () {
|
|
33
|
-
function LRUCache(maxSize) {
|
|
34
|
-
this.maxLen = maxSize || 1;
|
|
35
|
-
this.items = new _Map();
|
|
36
|
-
this.lru = new LinkedList();
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
var _proto2 = LRUCache.prototype;
|
|
40
|
-
|
|
41
|
-
_proto2.get = function get(key) {
|
|
42
|
-
var node = this.items.get(key);
|
|
43
|
-
if (!node || !(node instanceof Node)) return undefined;
|
|
44
|
-
this.lru.unshiftNode(node); // Move to front
|
|
45
|
-
|
|
46
|
-
return node.value.value;
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
_proto2.set = function set(key, value) {
|
|
50
|
-
var node = this.items.get(key);
|
|
51
|
-
|
|
52
|
-
if (node) {
|
|
53
|
-
if (!(node instanceof Node)) return false;
|
|
54
|
-
this.lru.unshiftNode(node); // Move to front
|
|
55
|
-
|
|
56
|
-
this.lru.head.value.value = value; // Update value
|
|
57
|
-
} else {
|
|
58
|
-
if (this.lru.length === this.maxLen) {
|
|
59
|
-
// Remove last
|
|
60
|
-
var last = this.lru.tail;
|
|
61
|
-
if (!last) return false;
|
|
62
|
-
this.items.delete(last.value.key);
|
|
63
|
-
this.lru.removeNode(this.lru.tail); // Remove node
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
this.lru.unshift({
|
|
67
|
-
key: key,
|
|
68
|
-
value: value
|
|
69
|
-
}); // Push front
|
|
70
|
-
|
|
71
|
-
this.items.set(key, this.lru.head);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
return true;
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
return LRUCache;
|
|
78
|
-
}();
|
|
79
|
-
|
|
80
|
-
export default LRUCache;
|
package/es/utils/now/browser.js
DELETED
|
@@ -1,27 +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 nowFactory() {
|
|
17
|
-
// eslint-disable-next-line compat/compat
|
|
18
|
-
if (typeof performance === 'object' && typeof performance.now === 'function') {
|
|
19
|
-
// eslint-disable-next-line compat/compat
|
|
20
|
-
return performance.now.bind(performance);
|
|
21
|
-
} else {
|
|
22
|
-
return Date.now;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
var now = nowFactory();
|
|
27
|
-
export default now;
|
package/es/utils/now/node.js
DELETED
|
@@ -1,19 +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 now() {
|
|
17
|
-
var time = process.hrtime();
|
|
18
|
-
return time[0] * 1e3 + time[1] * 1e-6; // convert it to milis
|
|
19
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
Copyright 2016 Split Software
|
|
3
|
-
|
|
4
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
you may not use this file except in compliance with the License.
|
|
6
|
-
You may obtain a copy of the License at
|
|
7
|
-
|
|
8
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
|
|
10
|
-
Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
See the License for the specific language governing permissions and
|
|
14
|
-
limitations under the License.
|
|
15
|
-
**/
|
|
16
|
-
import { SplitTimeoutError } from '../lang/Errors';
|
|
17
|
-
|
|
18
|
-
function timeout(ms, promise) {
|
|
19
|
-
if (ms < 1) return promise;
|
|
20
|
-
return new Promise(function (resolve, reject) {
|
|
21
|
-
var tid = setTimeout(function () {
|
|
22
|
-
reject(new SplitTimeoutError("Operation timed out because it exceeded the configured time limit of " + ms + "ms."));
|
|
23
|
-
}, ms);
|
|
24
|
-
promise.then(function (res) {
|
|
25
|
-
clearTimeout(tid);
|
|
26
|
-
resolve(res);
|
|
27
|
-
}, function (err) {
|
|
28
|
-
clearTimeout(tid);
|
|
29
|
-
reject(err);
|
|
30
|
-
});
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export default timeout;
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* wraps a given promise in a new one with a default onRejected function,
|
|
3
|
-
* that handles the promise rejection if not other onRejected handler is provided.
|
|
4
|
-
*
|
|
5
|
-
* Caveats:
|
|
6
|
-
* - There are some cases where the `defaultOnRejected` handler is not invoked
|
|
7
|
-
* and the promise rejection must be handled by the user (same as the Promise spec):
|
|
8
|
-
* - using async/await syntax with a transpiler to Promises
|
|
9
|
-
* - setting an `onFinally` handler as the first handler (e.g. `promiseWrapper(Promise.reject()).finally(...)`)
|
|
10
|
-
* - setting more than one handler with at least one of them being an onRejected handler
|
|
11
|
-
* - If the wrapped promise is rejected when using native async/await syntax, the `defaultOnRejected` handler is invoked
|
|
12
|
-
* and neither the catch block nor the remaining try block are executed.
|
|
13
|
-
*
|
|
14
|
-
* @param customPromise promise to wrap
|
|
15
|
-
* @param defaultOnRejected default onRejected function
|
|
16
|
-
* @returns a promise that doesn't need to be handled for rejection (except when using async/await syntax) and
|
|
17
|
-
* with a method named `hasOnFulfilled` that returns true if the promise has attached an onFulfilled handler.
|
|
18
|
-
*/
|
|
19
|
-
export default function promiseWrapper(customPromise, defaultOnRejected) {
|
|
20
|
-
var hasOnFulfilled = false;
|
|
21
|
-
var hasOnRejected = false;
|
|
22
|
-
|
|
23
|
-
function chain(promise) {
|
|
24
|
-
var newPromise = new Promise(function (res, rej) {
|
|
25
|
-
return promise.then(res, function (value) {
|
|
26
|
-
if (hasOnRejected) {
|
|
27
|
-
rej(value);
|
|
28
|
-
} else {
|
|
29
|
-
defaultOnRejected(value);
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
var originalThen = newPromise.then; // Using `defineProperty` in case Promise.prototype.then property is not writable
|
|
34
|
-
|
|
35
|
-
Object.defineProperty(newPromise, 'then', {
|
|
36
|
-
value: function value(onfulfilled, onrejected) {
|
|
37
|
-
var result = originalThen.call(newPromise, onfulfilled, onrejected);
|
|
38
|
-
if (typeof onfulfilled === 'function') hasOnFulfilled = true;
|
|
39
|
-
|
|
40
|
-
if (typeof onrejected === 'function') {
|
|
41
|
-
hasOnRejected = true;
|
|
42
|
-
return result;
|
|
43
|
-
} else {
|
|
44
|
-
return chain(result);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
return newPromise;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
var result = chain(customPromise);
|
|
52
|
-
|
|
53
|
-
result.hasOnFulfilled = function () {
|
|
54
|
-
return hasOnFulfilled;
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
return result;
|
|
58
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export default {
|
|
2
|
-
startup: {
|
|
3
|
-
// Stress the request time used while starting up the SDK.
|
|
4
|
-
requestTimeoutBeforeReady: 5,
|
|
5
|
-
// How many quick retries we will do while starting up the SDK.
|
|
6
|
-
retriesOnFailureBeforeReady: 1,
|
|
7
|
-
// Maximum amount of time used before notifies me a timeout.
|
|
8
|
-
readyTimeout: 10,
|
|
9
|
-
// Amount of time we will wait before the first push of events.
|
|
10
|
-
eventsFirstPushWindow: 10
|
|
11
|
-
}
|
|
12
|
-
};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export default {
|
|
2
|
-
core: {
|
|
3
|
-
// Default is true.
|
|
4
|
-
IPAddressesEnabled: true
|
|
5
|
-
},
|
|
6
|
-
startup: {
|
|
7
|
-
// Stress the request time used while starting up the SDK.
|
|
8
|
-
requestTimeoutBeforeReady: 15,
|
|
9
|
-
// How many quick retries we will do while starting up the SDK.
|
|
10
|
-
retriesOnFailureBeforeReady: 1,
|
|
11
|
-
// Maximum amount of time used before notifies me a timeout.
|
|
12
|
-
readyTimeout: 15,
|
|
13
|
-
// Don't wait a specific time for first flush on Node, no page load here.
|
|
14
|
-
eventsFirstPushWindow: 0
|
|
15
|
-
},
|
|
16
|
-
scheduler: {
|
|
17
|
-
featuresRefreshRate: 5,
|
|
18
|
-
impressionsRefreshRate: 300
|
|
19
|
-
},
|
|
20
|
-
features: '.split'
|
|
21
|
-
};
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { DEBUG, OPTIMIZED } from '../constants';
|
|
2
|
-
import logFactory from '../logger';
|
|
3
|
-
var log = logFactory('splitio-settings');
|
|
4
|
-
|
|
5
|
-
function validImpressionsMode(impressionsMode) {
|
|
6
|
-
impressionsMode = impressionsMode.toUpperCase();
|
|
7
|
-
|
|
8
|
-
if ([DEBUG, OPTIMIZED].indexOf(impressionsMode) === -1) {
|
|
9
|
-
log.error("You passed an invalid impressionsMode, impressionsMode should be one of the following values: '" + DEBUG + "' or '" + OPTIMIZED + "'. Defaulting to '" + OPTIMIZED + "' mode.");
|
|
10
|
-
impressionsMode = OPTIMIZED;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
return impressionsMode;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export default validImpressionsMode;
|
|
@@ -1,194 +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 { merge } from '../lang';
|
|
18
|
-
import language from './language';
|
|
19
|
-
import runtime from './runtime';
|
|
20
|
-
import overridesPerPlatform from './defaults';
|
|
21
|
-
import storage from './storage';
|
|
22
|
-
import integrations from './integrations';
|
|
23
|
-
import mode from './mode';
|
|
24
|
-
import validateSplitFilters from '../inputValidation/splitFilters';
|
|
25
|
-
import { API } from '../../utils/logger';
|
|
26
|
-
import { STANDALONE_MODE, STORAGE_MEMORY, CONSUMER_MODE, OPTIMIZED } from '../../utils/constants';
|
|
27
|
-
import validImpressionsMode from './impressionsMode';
|
|
28
|
-
var version = '10.17.3';
|
|
29
|
-
var eventsEndpointMatcher = /^\/(testImpressions|metrics|events)/;
|
|
30
|
-
var authEndpointMatcher = /^\/v2\/auth/;
|
|
31
|
-
var streamingEndpointMatcher = /^\/(sse|event-stream)/;
|
|
32
|
-
var base = {
|
|
33
|
-
// Define which kind of object you want to retrieve from SplitFactory
|
|
34
|
-
mode: STANDALONE_MODE,
|
|
35
|
-
core: {
|
|
36
|
-
// API token (tight to an environment)
|
|
37
|
-
authorizationKey: undefined,
|
|
38
|
-
// key used in your system (only required for browser version)
|
|
39
|
-
key: undefined,
|
|
40
|
-
// traffic type for the given key (only used on browser version)
|
|
41
|
-
trafficType: undefined,
|
|
42
|
-
// toggle impressions tracking of labels
|
|
43
|
-
labelsEnabled: true,
|
|
44
|
-
// toggle sendind (true) or not sending (false) IP and Host Name with impressions, events, and telemetries requests (only used on nodejs version)
|
|
45
|
-
IPAddressesEnabled: undefined
|
|
46
|
-
},
|
|
47
|
-
scheduler: {
|
|
48
|
-
// fetch feature updates each 30 sec
|
|
49
|
-
featuresRefreshRate: 30,
|
|
50
|
-
// fetch segments updates each 60 sec
|
|
51
|
-
segmentsRefreshRate: 60,
|
|
52
|
-
// publish metrics each 120 sec
|
|
53
|
-
metricsRefreshRate: 120,
|
|
54
|
-
// publish evaluations each 60 sec
|
|
55
|
-
impressionsRefreshRate: 60,
|
|
56
|
-
// fetch offline changes each 15 sec
|
|
57
|
-
offlineRefreshRate: 15,
|
|
58
|
-
// publish events every 60 seconds after the first flush
|
|
59
|
-
eventsPushRate: 60,
|
|
60
|
-
// how many events will be queued before flushing
|
|
61
|
-
eventsQueueSize: 500,
|
|
62
|
-
// backoff base seconds to wait before re attempting to connect to push notifications
|
|
63
|
-
pushRetryBackoffBase: 1
|
|
64
|
-
},
|
|
65
|
-
urls: {
|
|
66
|
-
// CDN having all the information for your environment
|
|
67
|
-
sdk: 'https://sdk.split.io/api',
|
|
68
|
-
// Storage for your SDK events
|
|
69
|
-
events: 'https://events.split.io/api',
|
|
70
|
-
// SDK Auth Server
|
|
71
|
-
auth: 'https://auth.split.io/api',
|
|
72
|
-
// Streaming Server
|
|
73
|
-
streaming: 'https://streaming.split.io'
|
|
74
|
-
},
|
|
75
|
-
// Defines which kind of storage we should instanciate.
|
|
76
|
-
storage: {
|
|
77
|
-
type: STORAGE_MEMORY
|
|
78
|
-
},
|
|
79
|
-
// Defines if the logs are enabled, SDK wide.
|
|
80
|
-
debug: undefined,
|
|
81
|
-
// Defines the impression listener, but will only be used on NodeJS.
|
|
82
|
-
impressionListener: undefined,
|
|
83
|
-
// Instance version.
|
|
84
|
-
version: language + "-" + version,
|
|
85
|
-
// List of integrations.
|
|
86
|
-
integrations: undefined,
|
|
87
|
-
// toggle using (true) or not using (false) Server-Side Events for synchronizing storage
|
|
88
|
-
streamingEnabled: true,
|
|
89
|
-
sync: {
|
|
90
|
-
splitFilters: undefined,
|
|
91
|
-
// impressions collection mode
|
|
92
|
-
impressionsMode: OPTIMIZED
|
|
93
|
-
}
|
|
94
|
-
};
|
|
95
|
-
|
|
96
|
-
function fromSecondsToMillis(n) {
|
|
97
|
-
return Math.round(n * 1000);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
function setupLogger(debugValue) {
|
|
101
|
-
if (typeof debugValue === 'boolean') {
|
|
102
|
-
if (debugValue) {
|
|
103
|
-
API.enable();
|
|
104
|
-
} else {
|
|
105
|
-
API.disable();
|
|
106
|
-
}
|
|
107
|
-
} else if (typeof debugValue === 'string') {
|
|
108
|
-
API.setLogLevel(debugValue);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
function defaults(custom) {
|
|
113
|
-
var withDefaults = merge({}, base, overridesPerPlatform, custom); // Scheduler periods
|
|
114
|
-
|
|
115
|
-
withDefaults.scheduler.featuresRefreshRate = fromSecondsToMillis(withDefaults.scheduler.featuresRefreshRate);
|
|
116
|
-
withDefaults.scheduler.segmentsRefreshRate = fromSecondsToMillis(withDefaults.scheduler.segmentsRefreshRate);
|
|
117
|
-
withDefaults.scheduler.metricsRefreshRate = fromSecondsToMillis(withDefaults.scheduler.metricsRefreshRate);
|
|
118
|
-
withDefaults.scheduler.impressionsRefreshRate = fromSecondsToMillis(withDefaults.scheduler.impressionsRefreshRate);
|
|
119
|
-
withDefaults.scheduler.offlineRefreshRate = fromSecondsToMillis(withDefaults.scheduler.offlineRefreshRate);
|
|
120
|
-
withDefaults.scheduler.eventsPushRate = fromSecondsToMillis(withDefaults.scheduler.eventsPushRate); // Startup periods
|
|
121
|
-
|
|
122
|
-
withDefaults.startup.requestTimeoutBeforeReady = fromSecondsToMillis(withDefaults.startup.requestTimeoutBeforeReady);
|
|
123
|
-
withDefaults.startup.readyTimeout = fromSecondsToMillis(withDefaults.startup.readyTimeout);
|
|
124
|
-
withDefaults.startup.eventsFirstPushWindow = fromSecondsToMillis(withDefaults.startup.eventsFirstPushWindow); // ensure a valid SDK mode
|
|
125
|
-
|
|
126
|
-
withDefaults.mode = mode(withDefaults.core.authorizationKey, withDefaults.mode); // ensure a valid Storage based on mode defined.
|
|
127
|
-
|
|
128
|
-
withDefaults.storage = storage(withDefaults);
|
|
129
|
-
setupLogger(withDefaults.debug); // Current ip/hostname information
|
|
130
|
-
|
|
131
|
-
withDefaults.runtime = runtime(withDefaults.core.IPAddressesEnabled, withDefaults.mode === CONSUMER_MODE); // ensure a valid list of integrations.
|
|
132
|
-
// `integrations` returns an array of valid integration items.
|
|
133
|
-
|
|
134
|
-
withDefaults.integrations = integrations(withDefaults); // validate push options
|
|
135
|
-
|
|
136
|
-
if (withDefaults.streamingEnabled !== false) {
|
|
137
|
-
withDefaults.streamingEnabled = true; // Backoff bases.
|
|
138
|
-
// We are not checking if bases are positive numbers. Thus, we might be reauthenticating immediately (`setTimeout` with NaN or negative number)
|
|
139
|
-
|
|
140
|
-
withDefaults.scheduler.pushRetryBackoffBase = fromSecondsToMillis(withDefaults.scheduler.pushRetryBackoffBase);
|
|
141
|
-
} // validate the `splitFilters` settings and parse splits query
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
var splitFiltersValidation = validateSplitFilters(withDefaults.sync.splitFilters, withDefaults.mode);
|
|
145
|
-
withDefaults.sync.splitFilters = splitFiltersValidation.validFilters;
|
|
146
|
-
withDefaults.sync.__splitFiltersValidation = splitFiltersValidation; // ensure a valid impressionsMode
|
|
147
|
-
|
|
148
|
-
withDefaults.sync.impressionsMode = validImpressionsMode(withDefaults.sync.impressionsMode);
|
|
149
|
-
return withDefaults;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
var proto = {
|
|
153
|
-
/**
|
|
154
|
-
* Switch URLs servers based on target.
|
|
155
|
-
*
|
|
156
|
-
* @param {String} target url target
|
|
157
|
-
* @return {String} completed url
|
|
158
|
-
*/
|
|
159
|
-
url: function url(target) {
|
|
160
|
-
if (eventsEndpointMatcher.test(target)) {
|
|
161
|
-
return "" + this.urls.events + target;
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
if (authEndpointMatcher.test(target)) {
|
|
165
|
-
return "" + this.urls.auth + target;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
if (streamingEndpointMatcher.test(target)) {
|
|
169
|
-
return "" + this.urls.streaming + target;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
return "" + this.urls.sdk + target;
|
|
173
|
-
},
|
|
174
|
-
|
|
175
|
-
/**
|
|
176
|
-
* Returns a settings clone with the key and traffic type (if provided) overriden.
|
|
177
|
-
* @param {SplitKey} key
|
|
178
|
-
* @param {string} [trafficType]
|
|
179
|
-
*/
|
|
180
|
-
overrideKeyAndTT: function overrideKeyAndTT(key, trafficType) {
|
|
181
|
-
return objectAssign(Object.create(proto), this, {
|
|
182
|
-
core: objectAssign({}, this.core, {
|
|
183
|
-
key: key,
|
|
184
|
-
trafficType: trafficType
|
|
185
|
-
})
|
|
186
|
-
});
|
|
187
|
-
}
|
|
188
|
-
};
|
|
189
|
-
|
|
190
|
-
var SettingsFactory = function SettingsFactory(settings) {
|
|
191
|
-
return objectAssign(Object.create(proto), defaults(settings));
|
|
192
|
-
};
|
|
193
|
-
|
|
194
|
-
export default SettingsFactory;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { GOOGLE_ANALYTICS_TO_SPLIT, SPLIT_TO_GOOGLE_ANALYTICS } from '../../../utils/constants';
|
|
2
|
-
import validateIntegrationsSettings from './common';
|
|
3
|
-
|
|
4
|
-
var validateBrowserIntegrationsSettings = function validateBrowserIntegrationsSettings(settings) {
|
|
5
|
-
return validateIntegrationsSettings(settings, [GOOGLE_ANALYTICS_TO_SPLIT, SPLIT_TO_GOOGLE_ANALYTICS]);
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
export default validateBrowserIntegrationsSettings;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import logFactory from '../../../utils/logger';
|
|
2
|
-
import { isString } from '../../../utils/lang';
|
|
3
|
-
var log = logFactory('splitio-settings');
|
|
4
|
-
/**
|
|
5
|
-
* This function validates `settings.integrations` object
|
|
6
|
-
*
|
|
7
|
-
* @param {Object} settings SDK settings object to validate
|
|
8
|
-
* @param {Array<string>} validIntegrationTypes list of integration types to filter from `settings.integrations`
|
|
9
|
-
*
|
|
10
|
-
* @returns {Array} array of valid integration items. The array might be empty if `settings` object does not have valid integrations.
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
var validateIntegrationsSettings = function validateIntegrationsSettings(settings, validIntegrationTypes) {
|
|
14
|
-
if (validIntegrationTypes === void 0) {
|
|
15
|
-
validIntegrationTypes = [];
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
var integrations = settings.integrations; // If integrations is not an array or an empty array, we return an empty array (no integrations).
|
|
19
|
-
|
|
20
|
-
if (!Array.isArray(integrations) || integrations.length === 0) return []; // We remove invalid integration items
|
|
21
|
-
|
|
22
|
-
var validIntegrations = integrations.filter(function (integration) {
|
|
23
|
-
return integration && isString(integration.type) && validIntegrationTypes.indexOf(integration.type) > -1;
|
|
24
|
-
});
|
|
25
|
-
var invalids = integrations.length - validIntegrations.length;
|
|
26
|
-
if (invalids) log.warn(invalids + " integration " + (invalids === 1 ? 'item' : 'items') + " at settings " + (invalids === 1 ? 'is' : 'are') + " invalid: integration items must have a valid 'type' value");
|
|
27
|
-
return validIntegrations;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export default validateIntegrationsSettings;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
// For now, Node SDK does not support integrations,
|
|
2
|
-
// thus any integrations settings is parsed into undefined.
|
|
3
|
-
var validateNodeIntegrationsSettings = function validateNodeIntegrationsSettings() {
|
|
4
|
-
return [];
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
export default validateNodeIntegrationsSettings;
|