@splitsoftware/splitio 10.17.2 → 10.17.3-rc.3
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/client/package.json +5 -0
- package/es/factory/browser.js +66 -0
- package/es/factory/node.js +64 -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 +18 -0
- package/es/settings/defaults/browser.js +15 -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 +17 -0
- package/es/{producer/offline → settings}/package.json +0 -0
- package/es/settings/storage/browser.js +35 -0
- package/es/settings/storage/node.js +66 -0
- package/es/umd.js +2 -1
- package/lib/factory/browser.js +70 -0
- package/lib/factory/node.js +68 -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 +22 -0
- package/lib/settings/defaults/browser.js +18 -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 +21 -0
- package/{es/services/splitChanges/offline → lib/settings}/package.json +0 -0
- package/lib/settings/storage/browser.js +39 -0
- package/lib/settings/storage/node.js +70 -0
- package/lib/umd.js +4 -8
- package/package.json +30 -31
- package/server/package.json +5 -0
- package/src/.DS_Store +0 -0
- package/src/factory/browser.js +83 -0
- package/src/factory/node.js +80 -0
- package/{es/storage/SegmentCache/InMemory → src/factory}/package.json +0 -0
- package/src/index.js +13 -136
- package/src/{sync/SSEHandler → 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/{listeners → settings}/.DS_Store +0 -0
- package/src/settings/browser.js +20 -0
- package/{lib/utils → src}/settings/defaults/browser.js +6 -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 +19 -0
- package/{es/sync → src/settings}/package.json +0 -0
- package/src/settings/storage/browser.js +49 -0
- package/src/{utils/settings → settings}/storage/node.js +18 -28
- package/src/umd.js +1 -0
- package/types/client/index.d.ts +14 -0
- package/types/server/index.d.ts +20 -0
- package/types/splitio.d.ts +22 -5
- 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 -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/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 -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/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/.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/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 -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/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,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
-
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.default = GET;
|
|
7
|
-
|
|
8
|
-
var _request = _interopRequireWildcard(require("../request"));
|
|
9
|
-
|
|
10
|
-
var _factory = require("../../utils/key/factory");
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
Copyright 2016 Split Software
|
|
14
|
-
|
|
15
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
|
16
|
-
you may not use this file except in compliance with the License.
|
|
17
|
-
You may obtain a copy of the License at
|
|
18
|
-
|
|
19
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
|
20
|
-
|
|
21
|
-
Unless required by applicable law or agreed to in writing, software
|
|
22
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
23
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
24
|
-
See the License for the specific language governing permissions and
|
|
25
|
-
limitations under the License.
|
|
26
|
-
**/
|
|
27
|
-
function GET(settings, noCache) {
|
|
28
|
-
/**
|
|
29
|
-
* URI encoding of user keys in order to:
|
|
30
|
-
* - avoid 400 responses (due to URI malformed). E.g.: '/api/mySegments/%'
|
|
31
|
-
* - avoid 404 responses. E.g.: '/api/mySegments/foo/bar'
|
|
32
|
-
* - match user keys with special characters. E.g.: 'foo%bar', 'foo/bar'
|
|
33
|
-
*/
|
|
34
|
-
return (0, _request.default)(settings, "/mySegments/" + encodeURIComponent((0, _factory.matching)(settings.core.key)), undefined, noCache ? _request.noCacheExtraHeader : undefined);
|
|
35
|
-
}
|
|
@@ -1,26 +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 _transport = _interopRequireDefault(require("../transport"));
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
Copyright 2016 Split Software
|
|
12
|
-
|
|
13
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
|
14
|
-
you may not use this file except in compliance with the License.
|
|
15
|
-
You may obtain a copy of the License at
|
|
16
|
-
|
|
17
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
|
18
|
-
|
|
19
|
-
Unless required by applicable law or agreed to in writing, software
|
|
20
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
21
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
22
|
-
See the License for the specific language governing permissions and
|
|
23
|
-
limitations under the License.
|
|
24
|
-
**/
|
|
25
|
-
var _default = _transport.default;
|
|
26
|
-
exports.default = _default;
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.noCacheExtraHeader = exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _objectAssign = _interopRequireDefault(require("object-assign"));
|
|
9
|
-
|
|
10
|
-
var _options = _interopRequireDefault(require("./options"));
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
Copyright 2016 Split Software
|
|
14
|
-
|
|
15
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
|
16
|
-
you may not use this file except in compliance with the License.
|
|
17
|
-
You may obtain a copy of the License at
|
|
18
|
-
|
|
19
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
|
20
|
-
|
|
21
|
-
Unless required by applicable law or agreed to in writing, software
|
|
22
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
23
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
24
|
-
See the License for the specific language governing permissions and
|
|
25
|
-
limitations under the License.
|
|
26
|
-
**/
|
|
27
|
-
function RequestFactory(settings, relativeUrl, params, extraHeaders) {
|
|
28
|
-
var token = settings.core.authorizationKey;
|
|
29
|
-
var version = settings.version;
|
|
30
|
-
var _settings$runtime = settings.runtime,
|
|
31
|
-
ip = _settings$runtime.ip,
|
|
32
|
-
hostname = _settings$runtime.hostname;
|
|
33
|
-
var headers = {};
|
|
34
|
-
var baseline = (0, _options.default)();
|
|
35
|
-
headers['Accept'] = 'application/json';
|
|
36
|
-
headers['Content-Type'] = 'application/json';
|
|
37
|
-
headers['Authorization'] = "Bearer " + token;
|
|
38
|
-
headers['SplitSDKVersion'] = version;
|
|
39
|
-
if (ip) headers['SplitSDKMachineIP'] = ip;
|
|
40
|
-
if (hostname) headers['SplitSDKMachineName'] = hostname;
|
|
41
|
-
if (extraHeaders) (0, _objectAssign.default)(headers, extraHeaders);
|
|
42
|
-
return (0, _objectAssign.default)({
|
|
43
|
-
headers: headers,
|
|
44
|
-
url: settings.url(relativeUrl)
|
|
45
|
-
}, baseline, params);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
var _default = RequestFactory;
|
|
49
|
-
exports.default = _default;
|
|
50
|
-
var noCacheExtraHeader = {
|
|
51
|
-
'Cache-Control': 'no-cache'
|
|
52
|
-
};
|
|
53
|
-
exports.noCacheExtraHeader = noCacheExtraHeader;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.default = getOptions;
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
Copyright 2016 Split Software
|
|
8
|
-
|
|
9
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
|
10
|
-
you may not use this file except in compliance with the License.
|
|
11
|
-
You may obtain a copy of the License at
|
|
12
|
-
|
|
13
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
|
14
|
-
|
|
15
|
-
Unless required by applicable law or agreed to in writing, software
|
|
16
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
17
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
18
|
-
See the License for the specific language governing permissions and
|
|
19
|
-
limitations under the License.
|
|
20
|
-
**/
|
|
21
|
-
function getOptions() {
|
|
22
|
-
return {};
|
|
23
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.default = getOptions;
|
|
7
|
-
|
|
8
|
-
var _https = _interopRequireDefault(require("https"));
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
Copyright 2016 Split Software
|
|
12
|
-
|
|
13
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
|
14
|
-
you may not use this file except in compliance with the License.
|
|
15
|
-
You may obtain a copy of the License at
|
|
16
|
-
|
|
17
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
|
18
|
-
|
|
19
|
-
Unless required by applicable law or agreed to in writing, software
|
|
20
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
21
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
22
|
-
See the License for the specific language governing permissions and
|
|
23
|
-
limitations under the License.
|
|
24
|
-
**/
|
|
25
|
-
// @TODO
|
|
26
|
-
// 1- handle multiple protocols automatically
|
|
27
|
-
// 2- destroy it once the sdk is destroyed
|
|
28
|
-
var agent = new _https.default.Agent({
|
|
29
|
-
keepAlive: true,
|
|
30
|
-
keepAliveMsecs: 1500
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
function getOptions() {
|
|
34
|
-
return {
|
|
35
|
-
agent: agent
|
|
36
|
-
};
|
|
37
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
-
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.default = GET;
|
|
7
|
-
|
|
8
|
-
var _request = _interopRequireWildcard(require("../request"));
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
Copyright 2016 Split Software
|
|
12
|
-
|
|
13
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
|
14
|
-
you may not use this file except in compliance with the License.
|
|
15
|
-
You may obtain a copy of the License at
|
|
16
|
-
|
|
17
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
|
18
|
-
|
|
19
|
-
Unless required by applicable law or agreed to in writing, software
|
|
20
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
21
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
22
|
-
See the License for the specific language governing permissions and
|
|
23
|
-
limitations under the License.
|
|
24
|
-
**/
|
|
25
|
-
function GET(settings, _ref, noCache) {
|
|
26
|
-
var since = _ref.since,
|
|
27
|
-
segmentName = _ref.segmentName;
|
|
28
|
-
return (0, _request.default)(settings, "/segmentChanges/" + segmentName + "?since=" + since, undefined, noCache ? _request.noCacheExtraHeader : undefined);
|
|
29
|
-
}
|
|
@@ -1,26 +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 _transport = _interopRequireDefault(require("../transport"));
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
Copyright 2016 Split Software
|
|
12
|
-
|
|
13
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
|
14
|
-
you may not use this file except in compliance with the License.
|
|
15
|
-
You may obtain a copy of the License at
|
|
16
|
-
|
|
17
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
|
18
|
-
|
|
19
|
-
Unless required by applicable law or agreed to in writing, software
|
|
20
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
21
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
22
|
-
See the License for the specific language governing permissions and
|
|
23
|
-
limitations under the License.
|
|
24
|
-
**/
|
|
25
|
-
var _default = _transport.default;
|
|
26
|
-
exports.default = _default;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
-
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.default = GET;
|
|
7
|
-
|
|
8
|
-
var _request = _interopRequireWildcard(require("../request"));
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
Copyright 2016 Split Software
|
|
12
|
-
|
|
13
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
|
14
|
-
you may not use this file except in compliance with the License.
|
|
15
|
-
You may obtain a copy of the License at
|
|
16
|
-
|
|
17
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
|
18
|
-
|
|
19
|
-
Unless required by applicable law or agreed to in writing, software
|
|
20
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
21
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
22
|
-
See the License for the specific language governing permissions and
|
|
23
|
-
limitations under the License.
|
|
24
|
-
**/
|
|
25
|
-
function GET(settings, since, filterQueryString, noCache) {
|
|
26
|
-
return (0, _request.default)(settings, "/splitChanges?since=" + since + (filterQueryString || ''), undefined, noCache ? _request.noCacheExtraHeader : undefined);
|
|
27
|
-
}
|
|
@@ -1,26 +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 _transport = _interopRequireDefault(require("../transport"));
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
Copyright 2016 Split Software
|
|
12
|
-
|
|
13
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
|
14
|
-
you may not use this file except in compliance with the License.
|
|
15
|
-
You may obtain a copy of the License at
|
|
16
|
-
|
|
17
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
|
18
|
-
|
|
19
|
-
Unless required by applicable law or agreed to in writing, software
|
|
20
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
21
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
22
|
-
See the License for the specific language governing permissions and
|
|
23
|
-
limitations under the License.
|
|
24
|
-
**/
|
|
25
|
-
var _default = _transport.default;
|
|
26
|
-
exports.default = _default;
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.default = createGetConfigurationFromSettings;
|
|
7
|
-
|
|
8
|
-
var _lang = require("../../../utils/lang");
|
|
9
|
-
|
|
10
|
-
var _parseCondition = _interopRequireDefault(require("./parseCondition"));
|
|
11
|
-
|
|
12
|
-
function hasTreatmentChanged(prev, curr) {
|
|
13
|
-
if (typeof prev !== typeof curr) return true;
|
|
14
|
-
|
|
15
|
-
if (typeof prev === 'string') {
|
|
16
|
-
// strings treatments, just compare
|
|
17
|
-
return prev !== curr;
|
|
18
|
-
} else {
|
|
19
|
-
// has treatment and config, compare both
|
|
20
|
-
return prev.treatment !== curr.treatment || prev.config !== curr.config;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
function createGetConfigurationFromSettings() {
|
|
25
|
-
var previousMock = {
|
|
26
|
-
'emptyMock': 1
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
function mockUpdated(currentData) {
|
|
30
|
-
var names = Object.keys(currentData); // Different amount of items
|
|
31
|
-
|
|
32
|
-
if (names.length !== Object.keys(previousMock).length) {
|
|
33
|
-
previousMock = currentData;
|
|
34
|
-
return true;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return names.some(function (name) {
|
|
38
|
-
var newSplit = !previousMock[name];
|
|
39
|
-
var newTreatment = hasTreatmentChanged(previousMock[name], currentData[name]);
|
|
40
|
-
var changed = newSplit || newTreatment;
|
|
41
|
-
if (changed) previousMock = currentData;
|
|
42
|
-
return changed;
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
return function getConfigurationFromSettings(settings) {
|
|
47
|
-
var mockSettings = settings.features || {};
|
|
48
|
-
if (!mockUpdated(mockSettings)) return false;
|
|
49
|
-
var splitObjects = {};
|
|
50
|
-
(0, _lang.forOwn)(mockSettings, function (data, splitName) {
|
|
51
|
-
var treatment = data;
|
|
52
|
-
var config = null;
|
|
53
|
-
|
|
54
|
-
if ((0, _lang.isObject)(data)) {
|
|
55
|
-
treatment = data.treatment;
|
|
56
|
-
config = data.config || config;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
var configurations = {};
|
|
60
|
-
if (config !== null) configurations[treatment] = config;
|
|
61
|
-
splitObjects[splitName] = {
|
|
62
|
-
trafficTypeName: 'localhost',
|
|
63
|
-
conditions: [(0, _parseCondition.default)({
|
|
64
|
-
treatment: treatment
|
|
65
|
-
})],
|
|
66
|
-
configurations: configurations
|
|
67
|
-
};
|
|
68
|
-
});
|
|
69
|
-
return splitObjects;
|
|
70
|
-
};
|
|
71
|
-
}
|
|
@@ -1,189 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.default = createGetSplitConfigForFile;
|
|
7
|
-
|
|
8
|
-
var _fs = _interopRequireDefault(require("fs"));
|
|
9
|
-
|
|
10
|
-
var _path = _interopRequireDefault(require("path"));
|
|
11
|
-
|
|
12
|
-
var _jsYaml = _interopRequireDefault(require("js-yaml"));
|
|
13
|
-
|
|
14
|
-
var _logger = _interopRequireDefault(require("../../../utils/logger"));
|
|
15
|
-
|
|
16
|
-
var _lang = require("../../../utils/lang");
|
|
17
|
-
|
|
18
|
-
var _parseCondition = _interopRequireDefault(require("./parseCondition"));
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
Copyright 2016 Split Software
|
|
22
|
-
|
|
23
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
|
24
|
-
you may not use this file except in compliance with the License.
|
|
25
|
-
You may obtain a copy of the License at
|
|
26
|
-
|
|
27
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
|
28
|
-
|
|
29
|
-
Unless required by applicable law or agreed to in writing, software
|
|
30
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
31
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
32
|
-
See the License for the specific language governing permissions and
|
|
33
|
-
limitations under the License.
|
|
34
|
-
**/
|
|
35
|
-
var log = (0, _logger.default)('splitio-offline:splits-fetcher');
|
|
36
|
-
var DEFAULT_FILENAME = '.split';
|
|
37
|
-
|
|
38
|
-
function configFilesPath(config) {
|
|
39
|
-
if (config === void 0) {
|
|
40
|
-
config = {};
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
var configFilePath = config.features;
|
|
44
|
-
|
|
45
|
-
if (configFilePath === DEFAULT_FILENAME || !(0, _lang.isString)(configFilePath)) {
|
|
46
|
-
var root = process.env.HOME;
|
|
47
|
-
if (process.env.SPLIT_CONFIG_ROOT) root = process.env.SPLIT_CONFIG_ROOT;
|
|
48
|
-
if (!root) throw new Error('Missing split mock configuration root.');
|
|
49
|
-
configFilePath = _path.default.join(root, DEFAULT_FILENAME);
|
|
50
|
-
} // Validate the extensions
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
if (!((0, _lang.endsWith)(configFilePath, '.yaml', true) || (0, _lang.endsWith)(configFilePath, '.yml', true) || (0, _lang.endsWith)(configFilePath, '.split', true))) throw new Error("Invalid extension specified for Splits mock file. Accepted extensions are \".yml\" and \".yaml\". Your specified file is " + configFilePath);
|
|
54
|
-
if (!_fs.default.existsSync(configFilePath)) throw new Error("Split configuration not found in " + configFilePath + " - Please review your Split file location.");
|
|
55
|
-
return configFilePath;
|
|
56
|
-
} // This function is not pure nor meant to be. Here we apply modifications to cover
|
|
57
|
-
// for behaviour that's ensured by the BE.
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
function arrangeConditions(mocksData) {
|
|
61
|
-
// Iterate through each Split data
|
|
62
|
-
(0, _lang.forOwn)(mocksData, function (data) {
|
|
63
|
-
var conditions = data.conditions; // On the manager, as the split jsons come with all treatments on the partitions prop,
|
|
64
|
-
// we'll add all the treatments to the first condition.
|
|
65
|
-
|
|
66
|
-
var firstRolloutCondition = (0, _lang.find)(conditions, function (cond) {
|
|
67
|
-
return cond.conditionType === 'ROLLOUT';
|
|
68
|
-
}); // Malformed mocks may have
|
|
69
|
-
|
|
70
|
-
var treatments = (0, _lang.uniq)(data.treatments); // If they're only specifying a whitelist we add the treatments there.
|
|
71
|
-
|
|
72
|
-
var allTreatmentsCondition = firstRolloutCondition ? firstRolloutCondition : conditions[0];
|
|
73
|
-
var fullyAllocatedTreatment = allTreatmentsCondition.partitions[0].treatment;
|
|
74
|
-
treatments.forEach(function (treatment) {
|
|
75
|
-
if (treatment !== fullyAllocatedTreatment) {
|
|
76
|
-
allTreatmentsCondition.partitions.push({
|
|
77
|
-
treatment: treatment,
|
|
78
|
-
size: 0
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
}); // Don't need these anymore
|
|
82
|
-
|
|
83
|
-
delete data.treatments;
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
function createGetSplitConfigForFile() {
|
|
88
|
-
var previousMock = 'NO_MOCK_LOADED'; // Parse `.split` configuration file and return a map of "Split Objects"
|
|
89
|
-
|
|
90
|
-
function readSplitConfigFile(filePath) {
|
|
91
|
-
var SPLIT_POSITION = 0;
|
|
92
|
-
var TREATMENT_POSITION = 1;
|
|
93
|
-
var data;
|
|
94
|
-
|
|
95
|
-
try {
|
|
96
|
-
data = _fs.default.readFileSync(filePath, 'utf-8');
|
|
97
|
-
} catch (e) {
|
|
98
|
-
log.error(e.message);
|
|
99
|
-
return {};
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
if (data === previousMock) return false;
|
|
103
|
-
previousMock = data;
|
|
104
|
-
var splitObjects = data.split(/\r?\n/).reduce(function (accum, line, index) {
|
|
105
|
-
var tuple = line.trim();
|
|
106
|
-
|
|
107
|
-
if (tuple === '' || tuple.charAt(0) === '#') {
|
|
108
|
-
log.debug("Ignoring empty line or comment at #" + index);
|
|
109
|
-
} else {
|
|
110
|
-
tuple = tuple.split(/\s+/);
|
|
111
|
-
|
|
112
|
-
if (tuple.length !== 2) {
|
|
113
|
-
log.debug("Ignoring line since it does not have exactly two columns #" + index);
|
|
114
|
-
} else {
|
|
115
|
-
var splitName = tuple[SPLIT_POSITION];
|
|
116
|
-
var condition = (0, _parseCondition.default)({
|
|
117
|
-
treatment: tuple[TREATMENT_POSITION]
|
|
118
|
-
});
|
|
119
|
-
accum[splitName] = {
|
|
120
|
-
conditions: [condition],
|
|
121
|
-
configurations: {},
|
|
122
|
-
trafficTypeName: 'localhost'
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
return accum;
|
|
128
|
-
}, {});
|
|
129
|
-
return splitObjects;
|
|
130
|
-
} // Parse `.yml` or `.yaml` configuration files and return a map of "Split Objects"
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
function readYAMLConfigFile(filePath) {
|
|
134
|
-
var data = '';
|
|
135
|
-
var yamldoc = null;
|
|
136
|
-
|
|
137
|
-
try {
|
|
138
|
-
data = _fs.default.readFileSync(filePath, 'utf8');
|
|
139
|
-
if (data === previousMock) return false;
|
|
140
|
-
previousMock = data;
|
|
141
|
-
yamldoc = _jsYaml.default.safeLoad(data);
|
|
142
|
-
} catch (e) {
|
|
143
|
-
log.error(e);
|
|
144
|
-
return {};
|
|
145
|
-
} // Each entry will be mapped to a condition, but we'll also keep the configurations map.
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
var mocksData = yamldoc.reduce(function (accum, splitEntry) {
|
|
149
|
-
var splitName = Object.keys(splitEntry)[0];
|
|
150
|
-
if (!splitName || !(0, _lang.isString)(splitEntry[splitName].treatment)) log.error('Ignoring entry on YAML since the format is incorrect.');
|
|
151
|
-
var mockData = splitEntry[splitName]; // "Template" for each split accumulated data
|
|
152
|
-
|
|
153
|
-
if (!accum[splitName]) {
|
|
154
|
-
accum[splitName] = {
|
|
155
|
-
configurations: {},
|
|
156
|
-
conditions: [],
|
|
157
|
-
treatments: [],
|
|
158
|
-
trafficTypeName: 'localhost'
|
|
159
|
-
};
|
|
160
|
-
} // Assign the config if there is one on the mock
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
if (mockData.config) accum[splitName].configurations[mockData.treatment] = mockData.config; // Parse the condition from the entry.
|
|
164
|
-
|
|
165
|
-
var condition = (0, _parseCondition.default)(mockData);
|
|
166
|
-
accum[splitName].conditions[condition.conditionType === 'ROLLOUT' ? 'push' : 'unshift'](condition); // Also keep track of the treatments, will be useful for manager functionality.
|
|
167
|
-
|
|
168
|
-
accum[splitName].treatments.push(mockData.treatment);
|
|
169
|
-
return accum;
|
|
170
|
-
}, {});
|
|
171
|
-
arrangeConditions(mocksData);
|
|
172
|
-
return mocksData;
|
|
173
|
-
} // Load the content of a configuration file into an Object
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
return function getSplitConfigForFile(settings) {
|
|
177
|
-
var filePath = configFilesPath(settings);
|
|
178
|
-
var mockData = null; // If we have a filePath, it means the extension is correct, choose the parser.
|
|
179
|
-
|
|
180
|
-
if ((0, _lang.endsWith)(filePath, '.split')) {
|
|
181
|
-
log.warn('.split mocks will be deprecated soon in favor of YAML files, which provide more targeting power. Take a look in our documentation.');
|
|
182
|
-
mockData = readSplitConfigFile(filePath);
|
|
183
|
-
} else {
|
|
184
|
-
mockData = readYAMLConfigFile(filePath);
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
return mockData;
|
|
188
|
-
};
|
|
189
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.default = parseCondition;
|
|
5
|
-
|
|
6
|
-
var _lang = require("../../../utils/lang");
|
|
7
|
-
|
|
8
|
-
function parseCondition(data) {
|
|
9
|
-
var treatment = data.treatment;
|
|
10
|
-
|
|
11
|
-
if (data.keys) {
|
|
12
|
-
return {
|
|
13
|
-
conditionType: 'WHITELIST',
|
|
14
|
-
matcherGroup: {
|
|
15
|
-
combiner: 'AND',
|
|
16
|
-
matchers: [{
|
|
17
|
-
keySelector: null,
|
|
18
|
-
matcherType: 'WHITELIST',
|
|
19
|
-
negate: false,
|
|
20
|
-
whitelistMatcherData: {
|
|
21
|
-
whitelist: (0, _lang.isString)(data.keys) ? [data.keys] : data.keys
|
|
22
|
-
}
|
|
23
|
-
}]
|
|
24
|
-
},
|
|
25
|
-
partitions: [{
|
|
26
|
-
treatment: treatment,
|
|
27
|
-
size: 100
|
|
28
|
-
}],
|
|
29
|
-
label: "whitelisted " + treatment
|
|
30
|
-
};
|
|
31
|
-
} else {
|
|
32
|
-
return {
|
|
33
|
-
conditionType: 'ROLLOUT',
|
|
34
|
-
matcherGroup: {
|
|
35
|
-
combiner: 'AND',
|
|
36
|
-
matchers: [{
|
|
37
|
-
keySelector: null,
|
|
38
|
-
matcherType: 'ALL_KEYS',
|
|
39
|
-
negate: false
|
|
40
|
-
}]
|
|
41
|
-
},
|
|
42
|
-
partitions: [{
|
|
43
|
-
treatment: treatment,
|
|
44
|
-
size: 100
|
|
45
|
-
}],
|
|
46
|
-
label: 'default rule'
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.default = Fetcher;
|
|
7
|
-
|
|
8
|
-
var _getFetch = _interopRequireDefault(require("../getFetch"));
|
|
9
|
-
|
|
10
|
-
var _Errors = require("../../utils/lang/Errors");
|
|
11
|
-
|
|
12
|
-
var _logger = _interopRequireDefault(require("../../utils/logger"));
|
|
13
|
-
|
|
14
|
-
var log = (0, _logger.default)('splitio-services:service');
|
|
15
|
-
var messageNoFetch = 'Global fetch API is not available.';
|
|
16
|
-
|
|
17
|
-
function Fetcher(request) {
|
|
18
|
-
// using `fetch(url, options)` signature to work with unfetch
|
|
19
|
-
var url = request.url;
|
|
20
|
-
var fetch = (0, _getFetch.default)();
|
|
21
|
-
return fetch ? fetch(url, request) // https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#Checking_that_the_fetch_was_successful
|
|
22
|
-
.then(function (response) {
|
|
23
|
-
if (!response.ok) {
|
|
24
|
-
return response.text().then(function (message) {
|
|
25
|
-
return Promise.reject({
|
|
26
|
-
response: response,
|
|
27
|
-
message: message
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
return response;
|
|
33
|
-
}).catch(function (error) {
|
|
34
|
-
var resp = error && error.response;
|
|
35
|
-
var msg = '';
|
|
36
|
-
|
|
37
|
-
if (resp) {
|
|
38
|
-
// An HTTP error
|
|
39
|
-
switch (resp.status) {
|
|
40
|
-
case 404:
|
|
41
|
-
msg = 'Invalid API key or resource not found.';
|
|
42
|
-
break;
|
|
43
|
-
// Don't use resp.statusText since reason phrase is removed in HTTP/2
|
|
44
|
-
|
|
45
|
-
default:
|
|
46
|
-
msg = error.message;
|
|
47
|
-
break;
|
|
48
|
-
}
|
|
49
|
-
} else {
|
|
50
|
-
// Something else, either an error making the request or a Network error.
|
|
51
|
-
msg = error.message;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
if (!resp || resp.status !== 403) {
|
|
55
|
-
// 403's log we'll be handled somewhere else.
|
|
56
|
-
log[request.logErrorsAsInfo ? 'info' : 'error']("Response status is not OK. Status: " + (resp ? resp.status : 'NO_STATUS') + ". URL: " + url + ". Message: " + msg);
|
|
57
|
-
} // passes `undefined` as statusCode if not an HTTP error (resp === undefined)
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
throw new _Errors.SplitNetworkError(msg, resp && resp.status);
|
|
61
|
-
}) : Promise.reject(new _Errors.SplitNetworkError(messageNoFetch));
|
|
62
|
-
}
|