@splitsoftware/splitio 10.17.2 → 10.17.3-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/factory/clientSide.js +45 -0
- package/es/factory/commons.js +16 -0
- package/es/factory/package.json +4 -0
- package/es/factory/serverSide.js +42 -0
- package/es/index.js +1 -132
- package/es/platform/browser.js +11 -0
- package/es/{services → platform}/getEventSource/browser.js +1 -1
- package/es/{services → platform}/getEventSource/node.js +1 -1
- package/es/{client → platform/getEventSource}/package.json +0 -0
- package/es/{services → platform}/getFetch/browser.js +1 -1
- package/es/{services → platform}/getFetch/node.js +1 -1
- package/es/{impressions/observer → platform/getFetch}/package.json +0 -0
- package/es/platform/node.js +13 -0
- package/es/{integrations → platform}/package.json +0 -0
- package/es/{services → platform}/request/options/node.js +2 -2
- package/es/settings/clientSide.js +18 -0
- package/{lib/utils → es}/settings/defaults/browser.js +6 -8
- package/{src/utils → es}/settings/defaults/node.js +6 -3
- package/es/settings/defaults/version.js +1 -0
- package/es/settings/integrations/browser.js +5 -0
- package/es/settings/integrations/node.js +5 -0
- package/es/settings/package.json +4 -0
- package/es/{utils/settings → settings}/runtime/node.js +6 -4
- package/es/settings/serverSide.js +20 -0
- package/es/{utils/settings → settings}/storage/browser.js +12 -14
- package/es/{utils/settings → settings}/storage/node.js +10 -9
- package/es/umd.js +2 -1
- package/lib/factory/clientSide.js +65 -0
- package/lib/factory/commons.js +23 -0
- package/lib/factory/package.json +4 -0
- package/lib/factory/serverSide.js +60 -0
- package/lib/index.js +3 -151
- package/lib/platform/browser.js +24 -0
- package/lib/{services → platform}/getEventSource/browser.js +1 -1
- package/lib/{services → platform}/getEventSource/node.js +1 -1
- package/{es/listeners → lib/platform/getEventSource}/package.json +0 -0
- package/lib/{services → platform}/getFetch/browser.js +1 -1
- package/lib/{services → platform}/getFetch/node.js +1 -1
- package/{es/producer/offline → lib/platform/getFetch}/package.json +0 -0
- package/lib/platform/node.js +27 -0
- package/{es/producer → lib/platform}/package.json +0 -0
- package/lib/{services → platform}/request/options/node.js +2 -2
- package/lib/settings/clientSide.js +30 -0
- package/{src/utils → lib}/settings/defaults/browser.js +13 -3
- package/{es/utils → lib}/settings/defaults/node.js +13 -3
- package/lib/settings/defaults/version.js +6 -0
- package/lib/settings/integrations/browser.js +14 -0
- package/lib/settings/integrations/node.js +12 -0
- package/lib/settings/package.json +4 -0
- package/lib/{utils/settings → settings}/runtime/node.js +7 -5
- package/lib/settings/serverSide.js +33 -0
- package/lib/{utils/settings → settings}/storage/browser.js +15 -20
- package/lib/{utils/settings → settings}/storage/node.js +13 -11
- package/lib/umd.js +1 -0
- package/package.json +15 -12
- package/src/.DS_Store +0 -0
- package/src/factory/clientSide.js +58 -0
- package/src/factory/commons.js +16 -0
- package/src/factory/package.json +4 -0
- package/src/factory/serverSide.js +51 -0
- package/src/index.js +1 -140
- package/src/{sync/SSEHandler → platform}/.DS_Store +0 -0
- package/src/platform/browser.js +13 -0
- package/src/{services → platform}/getEventSource/browser.js +2 -2
- package/src/{services → platform}/getEventSource/node.js +2 -2
- package/{es/services → src/platform}/getEventSource/package.json +0 -0
- package/src/{services → platform}/getFetch/browser.js +2 -2
- package/src/{services → platform}/getFetch/node.js +1 -1
- package/{es/services → src/platform}/getFetch/package.json +0 -0
- package/src/platform/node.js +15 -0
- package/{es/services/request/options → src/platform}/package.json +0 -0
- package/src/{services → platform}/request/options/node.js +2 -2
- package/src/{listeners → settings}/.DS_Store +0 -0
- package/src/settings/clientSide.js +18 -0
- package/{es/utils → src}/settings/defaults/browser.js +8 -3
- package/{lib/utils → src}/settings/defaults/node.js +6 -6
- package/src/settings/defaults/version.js +1 -0
- package/src/settings/integrations/browser.js +6 -0
- package/src/{utils/settings → settings}/integrations/node.js +1 -3
- package/src/settings/package.json +4 -0
- package/src/{utils/settings → settings}/runtime/node.js +9 -6
- package/src/settings/serverSide.js +20 -0
- package/src/{utils/settings → settings}/storage/browser.js +10 -16
- package/src/{utils/settings → settings}/storage/node.js +7 -7
- package/src/umd.js +1 -0
- package/es/client/attributesDecoration.js +0 -116
- package/es/client/browser.js +0 -39
- package/es/client/client.js +0 -155
- package/es/client/inputValidation.js +0 -117
- package/es/client/node.js +0 -6
- package/es/engine/combiners/and.js +0 -54
- package/es/engine/combiners/ifelseif.js +0 -73
- package/es/engine/condition/index.js +0 -62
- package/es/engine/convertions/index.js +0 -29
- package/es/engine/engine/index.js +0 -60
- package/es/engine/engine/legacy.js +0 -77
- package/es/engine/engine/murmur3/common.js +0 -40
- package/es/engine/engine/murmur3/murmur3.js +0 -83
- package/es/engine/engine/murmur3/murmur3_128.js +0 -250
- package/es/engine/engine/murmur3/murmur3_128_x86.js +0 -183
- package/es/engine/engine/murmur3/murmur3_64.js +0 -52
- package/es/engine/engine/murmur3/utfx.js +0 -112
- package/es/engine/evaluator/index.js +0 -111
- package/es/engine/index.js +0 -112
- package/es/engine/matchers/all.js +0 -32
- package/es/engine/matchers/between.js +0 -35
- package/es/engine/matchers/boolean.js +0 -35
- package/es/engine/matchers/cont_all.js +0 -51
- package/es/engine/matchers/cont_any.js +0 -47
- package/es/engine/matchers/cont_str.js +0 -38
- package/es/engine/matchers/dependency.js +0 -50
- package/es/engine/matchers/eq.js +0 -35
- package/es/engine/matchers/eq_set.js +0 -49
- package/es/engine/matchers/ew.js +0 -38
- package/es/engine/matchers/gte.js +0 -35
- package/es/engine/matchers/index.js +0 -65
- package/es/engine/matchers/lte.js +0 -35
- package/es/engine/matchers/part_of.js +0 -49
- package/es/engine/matchers/segment.js +0 -39
- package/es/engine/matchers/string.js +0 -44
- package/es/engine/matchers/sw.js +0 -38
- package/es/engine/matchers/types.js +0 -48
- package/es/engine/matchers/whitelist.js +0 -36
- package/es/engine/parser/index.js +0 -69
- package/es/engine/parser/segments.js +0 -22
- package/es/engine/transforms/matcherGroup.js +0 -43
- package/es/engine/transforms/matchers.js +0 -109
- package/es/engine/transforms/segment.js +0 -28
- package/es/engine/transforms/set.js +0 -20
- package/es/engine/transforms/unaryNumeric.js +0 -20
- package/es/engine/transforms/whitelist.js +0 -22
- package/es/engine/treatments/index.js +0 -67
- package/es/engine/value/index.js +0 -54
- package/es/engine/value/sanitize.js +0 -125
- package/es/events/index.js +0 -65
- package/es/factory/offline.js +0 -50
- package/es/factory/online.js +0 -113
- package/es/impressions/counter.js +0 -52
- package/es/impressions/hasher/buildKey.js +0 -3
- package/es/impressions/hasher/hashImpression128.js +0 -5
- package/es/impressions/hasher/hashImpression32.js +0 -5
- package/es/impressions/observer/browser.js +0 -9
- package/es/impressions/observer/node.js +0 -9
- package/es/impressions/observer/observer.js +0 -21
- package/es/integrations/browser.js +0 -62
- package/es/integrations/ga/GaToSplit.js +0 -246
- package/es/integrations/ga/SplitToGa.js +0 -127
- package/es/integrations/node.js +0 -3
- package/es/listeners/browser.js +0 -157
- package/es/listeners/node.js +0 -65
- package/es/manager/index.js +0 -104
- package/es/metrics/Collectors.js +0 -100
- package/es/metrics/index.js +0 -157
- package/es/producer/browser/Partial.js +0 -103
- package/es/producer/browser.js +0 -70
- package/es/producer/fetcher/MySegments.js +0 -47
- package/es/producer/fetcher/SegmentChanges.js +0 -52
- package/es/producer/fetcher/SplitChanges.js +0 -46
- package/es/producer/node.js +0 -130
- package/es/producer/offline/browser.js +0 -26
- package/es/producer/offline/node.js +0 -26
- package/es/producer/task.js +0 -50
- package/es/producer/updater/MySegments.js +0 -108
- package/es/producer/updater/SegmentChanges.js +0 -135
- package/es/producer/updater/SplitChanges.js +0 -131
- package/es/producer/updater/SplitChangesFromFeatures.js +0 -21
- package/es/producer/updater/SplitChangesFromFileSystem.js +0 -21
- package/es/producer/updater/SplitChangesFromObject.js +0 -73
- package/es/readiness/index.js +0 -123
- package/es/readiness/statusManager.js +0 -114
- package/es/services/auth/auth.js +0 -25
- package/es/services/auth/index.js +0 -2
- package/es/services/events/bulk.js +0 -22
- package/es/services/events/index.js +0 -17
- package/es/services/impressions/bulk.js +0 -26
- package/es/services/impressions/count.js +0 -7
- package/es/services/impressions/dto.js +0 -73
- package/es/services/impressions/index.js +0 -17
- package/es/services/impressions/post.js +0 -22
- package/es/services/metrics/counters.js +0 -24
- package/es/services/metrics/dto.js +0 -38
- package/es/services/metrics/index.js +0 -17
- package/es/services/metrics/times.js +0 -24
- package/es/services/mySegments/get.js +0 -26
- package/es/services/mySegments/index.js +0 -17
- package/es/services/request/index.js +0 -43
- package/es/services/request/options/browser.js +0 -18
- package/es/services/segmentChanges/get.js +0 -21
- package/es/services/segmentChanges/index.js +0 -17
- package/es/services/splitChanges/get.js +0 -19
- package/es/services/splitChanges/index.js +0 -17
- package/es/services/splitChanges/offline/browser.js +0 -63
- package/es/services/splitChanges/offline/node.js +0 -176
- package/es/services/splitChanges/offline/package.json +0 -4
- package/es/services/splitChanges/offline/parseCondition.js +0 -43
- package/es/services/transport/index.js +0 -51
- package/es/storage/AttributesCache/InMemory.js +0 -85
- package/es/storage/BaseMetricsAsyncCache.js +0 -23
- package/es/storage/CountCache/InMemory.js +0 -48
- package/es/storage/CountCache/InRedis.js +0 -42
- package/es/storage/EventsCache/InMemory.js +0 -109
- package/es/storage/EventsCache/InRedis.js +0 -65
- package/es/storage/ImpressionsCache/InMemory.js +0 -71
- package/es/storage/ImpressionsCache/InRedis.js +0 -73
- package/es/storage/Keys.js +0 -125
- package/es/storage/KeysLocalStorage.js +0 -47
- package/es/storage/LatencyCache/InMemory.js +0 -56
- package/es/storage/LatencyCache/InRedis.js +0 -44
- package/es/storage/LatencyCache/findIndex.js +0 -2
- package/es/storage/Meta.js +0 -7
- package/es/storage/RedisAdapter.js +0 -198
- package/es/storage/SegmentCache/InLocalStorage/index.js +0 -138
- package/es/storage/SegmentCache/InMemory/browser.js +0 -107
- package/es/storage/SegmentCache/InMemory/node.js +0 -82
- package/es/storage/SegmentCache/InMemory/package.json +0 -4
- package/es/storage/SegmentCache/InRedis/index.js +0 -81
- package/es/storage/SplitCache/InLocalStorage.js +0 -332
- package/es/storage/SplitCache/InMemory.js +0 -162
- package/es/storage/SplitCache/InRedis.js +0 -214
- package/es/storage/SplitCache/killLocally.js +0 -35
- package/es/storage/browser.js +0 -101
- package/es/storage/node.js +0 -81
- package/es/storage/package.json +0 -4
- package/es/sync/AuthClient/index.js +0 -34
- package/es/sync/PushManager/index.js +0 -315
- package/es/sync/PushManager/mySegmentsV2utils.js +0 -76
- package/es/sync/PushManager/pushRequirements/browser.js +0 -23
- package/es/sync/PushManager/pushRequirements/node.js +0 -18
- package/es/sync/PushManager/pushRequirements/package.json +0 -4
- package/es/sync/SSEClient/index.js +0 -93
- package/es/sync/SSEHandler/NotificationKeeper.js +0 -97
- package/es/sync/SSEHandler/NotificationParser.js +0 -31
- package/es/sync/SSEHandler/index.js +0 -110
- package/es/sync/SegmentUpdateWorker/browser.js +0 -74
- package/es/sync/SegmentUpdateWorker/node.js +0 -79
- package/es/sync/SegmentUpdateWorker/package.json +0 -4
- package/es/sync/SplitUpdateWorker/index.js +0 -86
- package/es/sync/browser.js +0 -125
- package/es/sync/constants.js +0 -42
- package/es/sync/node.js +0 -60
- package/es/sync/package.json +0 -4
- package/es/trackers/event.js +0 -53
- package/es/trackers/impressions.js +0 -132
- package/es/utils/backoff/index.js +0 -51
- package/es/utils/base64/browser.js +0 -19
- package/es/utils/base64/node.js +0 -19
- package/es/utils/base64/package.json +0 -4
- package/es/utils/binarySearch/index.js +0 -50
- package/es/utils/constants/index.js +0 -38
- package/es/utils/context/constants.js +0 -30
- package/es/utils/context/index.js +0 -101
- package/es/utils/decompress/index.js +0 -476
- package/es/utils/fn/repeat.js +0 -58
- package/es/utils/inputValidation/apiKey.js +0 -39
- package/es/utils/inputValidation/attribute.js +0 -22
- package/es/utils/inputValidation/attributes.js +0 -19
- package/es/utils/inputValidation/event.js +0 -23
- package/es/utils/inputValidation/eventProperties.js +0 -69
- package/es/utils/inputValidation/eventValue.js +0 -9
- package/es/utils/inputValidation/index.js +0 -11
- package/es/utils/inputValidation/isOperational.js +0 -14
- package/es/utils/inputValidation/key.js +0 -50
- package/es/utils/inputValidation/split.js +0 -47
- package/es/utils/inputValidation/splitFilters.js +0 -121
- package/es/utils/inputValidation/splits.js +0 -27
- package/es/utils/inputValidation/trafficType.js +0 -55
- package/es/utils/jwt/hashUserKey.js +0 -11
- package/es/utils/jwt/index.js +0 -14
- package/es/utils/key/factory.js +0 -38
- package/es/utils/key/parser.js +0 -34
- package/es/utils/labels/index.js +0 -7
- package/es/utils/lang/Errors.js +0 -41
- package/es/utils/lang/Sets.js +0 -114
- package/es/utils/lang/index.js +0 -305
- package/es/utils/localstorage/isAvailable.js +0 -26
- package/es/utils/logger/LoggerFactory.js +0 -86
- package/es/utils/logger/index.js +0 -97
- package/es/utils/lrucache/linkedlist.js +0 -122
- package/es/utils/lrucache/lru.spec.js +0 -24
- package/es/utils/lrucache/lrucache.js +0 -80
- package/es/utils/now/browser.js +0 -27
- package/es/utils/now/node.js +0 -19
- package/es/utils/now/package.json +0 -4
- package/es/utils/promise/thenable.js +0 -3
- package/es/utils/promise/timeout.js +0 -34
- package/es/utils/promise/wrapper.js +0 -58
- package/es/utils/settings/defaults/package.json +0 -4
- package/es/utils/settings/impressionsMode.js +0 -16
- package/es/utils/settings/index.js +0 -194
- package/es/utils/settings/integrations/browser.js +0 -8
- package/es/utils/settings/integrations/common.js +0 -30
- package/es/utils/settings/integrations/node.js +0 -7
- package/es/utils/settings/integrations/package.json +0 -4
- package/es/utils/settings/language/browser.js +0 -16
- package/es/utils/settings/language/node.js +0 -16
- package/es/utils/settings/language/package.json +0 -4
- package/es/utils/settings/mode.js +0 -10
- package/es/utils/settings/runtime/browser.js +0 -21
- package/es/utils/settings/runtime/package.json +0 -4
- package/es/utils/settings/storage/package.json +0 -4
- package/es/utils/splits/usesSegments.js +0 -21
- package/es/utils/time/index.js +0 -8
- package/es/utils/timeTracker/index.js +0 -216
- package/es/utils/timeTracker/timer.js +0 -25
- package/lib/client/attributesDecoration.js +0 -128
- package/lib/client/browser.js +0 -50
- package/lib/client/client.js +0 -174
- package/lib/client/inputValidation.js +0 -129
- package/lib/client/node.js +0 -14
- package/lib/client/package.json +0 -4
- package/lib/engine/combiners/and.js +0 -65
- package/lib/engine/combiners/ifelseif.js +0 -88
- package/lib/engine/condition/index.js +0 -76
- package/lib/engine/convertions/index.js +0 -36
- package/lib/engine/engine/index.js +0 -71
- package/lib/engine/engine/legacy.js +0 -83
- package/lib/engine/engine/murmur3/common.js +0 -52
- package/lib/engine/engine/murmur3/murmur3.js +0 -90
- package/lib/engine/engine/murmur3/murmur3_128.js +0 -256
- package/lib/engine/engine/murmur3/murmur3_128_x86.js +0 -189
- package/lib/engine/engine/murmur3/murmur3_64.js +0 -57
- package/lib/engine/engine/murmur3/utfx.js +0 -121
- package/lib/engine/evaluator/index.js +0 -129
- package/lib/engine/index.js +0 -128
- package/lib/engine/matchers/all.js +0 -41
- package/lib/engine/matchers/between.js +0 -44
- package/lib/engine/matchers/boolean.js +0 -44
- package/lib/engine/matchers/cont_all.js +0 -61
- package/lib/engine/matchers/cont_any.js +0 -57
- package/lib/engine/matchers/cont_str.js +0 -48
- package/lib/engine/matchers/dependency.js +0 -60
- package/lib/engine/matchers/eq.js +0 -44
- package/lib/engine/matchers/eq_set.js +0 -59
- package/lib/engine/matchers/ew.js +0 -48
- package/lib/engine/matchers/gte.js +0 -44
- package/lib/engine/matchers/index.js +0 -90
- package/lib/engine/matchers/lte.js +0 -44
- package/lib/engine/matchers/part_of.js +0 -59
- package/lib/engine/matchers/segment.js +0 -49
- package/lib/engine/matchers/string.js +0 -53
- package/lib/engine/matchers/sw.js +0 -48
- package/lib/engine/matchers/types.js +0 -57
- package/lib/engine/matchers/whitelist.js +0 -46
- package/lib/engine/parser/index.js +0 -84
- package/lib/engine/parser/segments.js +0 -28
- package/lib/engine/transforms/matcherGroup.js +0 -54
- package/lib/engine/transforms/matchers.js +0 -124
- package/lib/engine/transforms/segment.js +0 -34
- package/lib/engine/transforms/set.js +0 -26
- package/lib/engine/transforms/unaryNumeric.js +0 -26
- package/lib/engine/transforms/whitelist.js +0 -28
- package/lib/engine/treatments/index.js +0 -73
- package/lib/engine/value/index.js +0 -64
- package/lib/engine/value/sanitize.js +0 -137
- package/lib/events/index.js +0 -80
- package/lib/factory/offline.js +0 -62
- package/lib/factory/online.js +0 -129
- package/lib/impressions/counter.js +0 -61
- package/lib/impressions/hasher/buildKey.js +0 -8
- package/lib/impressions/hasher/hashImpression128.js +0 -12
- package/lib/impressions/hasher/hashImpression32.js +0 -14
- package/lib/impressions/observer/browser.js +0 -19
- package/lib/impressions/observer/node.js +0 -19
- package/lib/impressions/observer/observer.js +0 -29
- package/lib/impressions/observer/package.json +0 -4
- package/lib/integrations/browser.js +0 -72
- package/lib/integrations/ga/GaToSplit.js +0 -267
- package/lib/integrations/ga/SplitToGa.js +0 -138
- package/lib/integrations/node.js +0 -9
- package/lib/integrations/package.json +0 -4
- package/lib/listeners/browser.js +0 -173
- package/lib/listeners/node.js +0 -74
- package/lib/listeners/package.json +0 -4
- package/lib/manager/index.js +0 -115
- package/lib/metrics/Collectors.js +0 -118
- package/lib/metrics/index.js +0 -182
- package/lib/producer/browser/Partial.js +0 -114
- package/lib/producer/browser.js +0 -82
- package/lib/producer/fetcher/MySegments.js +0 -59
- package/lib/producer/fetcher/SegmentChanges.js +0 -62
- package/lib/producer/fetcher/SplitChanges.js +0 -58
- package/lib/producer/node.js +0 -142
- package/lib/producer/offline/browser.js +0 -35
- package/lib/producer/offline/node.js +0 -35
- package/lib/producer/offline/package.json +0 -4
- package/lib/producer/package.json +0 -4
- package/lib/producer/task.js +0 -61
- package/lib/producer/updater/MySegments.js +0 -119
- package/lib/producer/updater/SegmentChanges.js +0 -148
- package/lib/producer/updater/SplitChanges.js +0 -145
- package/lib/producer/updater/SplitChangesFromFeatures.js +0 -30
- package/lib/producer/updater/SplitChangesFromFileSystem.js +0 -30
- package/lib/producer/updater/SplitChangesFromObject.js +0 -84
- package/lib/readiness/index.js +0 -132
- package/lib/readiness/statusManager.js +0 -124
- package/lib/services/auth/auth.js +0 -32
- package/lib/services/auth/index.js +0 -11
- package/lib/services/events/bulk.js +0 -31
- package/lib/services/events/index.js +0 -26
- package/lib/services/getEventSource/package.json +0 -4
- package/lib/services/getFetch/package.json +0 -4
- package/lib/services/impressions/bulk.js +0 -36
- package/lib/services/impressions/count.js +0 -16
- package/lib/services/impressions/dto.js +0 -81
- package/lib/services/impressions/index.js +0 -26
- package/lib/services/impressions/post.js +0 -31
- package/lib/services/metrics/counters.js +0 -33
- package/lib/services/metrics/dto.js +0 -46
- package/lib/services/metrics/index.js +0 -26
- package/lib/services/metrics/times.js +0 -33
- package/lib/services/mySegments/get.js +0 -35
- package/lib/services/mySegments/index.js +0 -26
- package/lib/services/request/index.js +0 -53
- package/lib/services/request/options/browser.js +0 -23
- package/lib/services/request/options/package.json +0 -4
- package/lib/services/segmentChanges/get.js +0 -29
- package/lib/services/segmentChanges/index.js +0 -26
- package/lib/services/splitChanges/get.js +0 -27
- package/lib/services/splitChanges/index.js +0 -26
- package/lib/services/splitChanges/offline/browser.js +0 -71
- package/lib/services/splitChanges/offline/node.js +0 -189
- package/lib/services/splitChanges/offline/package.json +0 -4
- package/lib/services/splitChanges/offline/parseCondition.js +0 -49
- package/lib/services/transport/index.js +0 -62
- package/lib/storage/AttributesCache/InMemory.js +0 -93
- package/lib/storage/BaseMetricsAsyncCache.js +0 -28
- package/lib/storage/CountCache/InMemory.js +0 -54
- package/lib/storage/CountCache/InRedis.js +0 -50
- package/lib/storage/EventsCache/InMemory.js +0 -118
- package/lib/storage/EventsCache/InRedis.js +0 -74
- package/lib/storage/ImpressionsCache/InMemory.js +0 -77
- package/lib/storage/ImpressionsCache/InRedis.js +0 -79
- package/lib/storage/Keys.js +0 -132
- package/lib/storage/KeysLocalStorage.js +0 -58
- package/lib/storage/LatencyCache/InMemory.js +0 -64
- package/lib/storage/LatencyCache/InRedis.js +0 -53
- package/lib/storage/LatencyCache/findIndex.js +0 -12
- package/lib/storage/Meta.js +0 -12
- package/lib/storage/RedisAdapter.js +0 -212
- package/lib/storage/SegmentCache/InLocalStorage/index.js +0 -147
- package/lib/storage/SegmentCache/InMemory/browser.js +0 -113
- package/lib/storage/SegmentCache/InMemory/node.js +0 -89
- package/lib/storage/SegmentCache/InMemory/package.json +0 -4
- package/lib/storage/SegmentCache/InRedis/index.js +0 -87
- package/lib/storage/SplitCache/InLocalStorage.js +0 -344
- package/lib/storage/SplitCache/InMemory.js +0 -172
- package/lib/storage/SplitCache/InRedis.js +0 -224
- package/lib/storage/SplitCache/killLocally.js +0 -42
- package/lib/storage/browser.js +0 -122
- package/lib/storage/node.js +0 -104
- package/lib/storage/package.json +0 -4
- package/lib/sync/AuthClient/index.js +0 -44
- package/lib/sync/PushManager/index.js +0 -340
- package/lib/sync/PushManager/mySegmentsV2utils.js +0 -87
- package/lib/sync/PushManager/pushRequirements/browser.js +0 -30
- package/lib/sync/PushManager/pushRequirements/node.js +0 -25
- package/lib/sync/PushManager/pushRequirements/package.json +0 -4
- package/lib/sync/SSEClient/index.js +0 -101
- package/lib/sync/SSEHandler/NotificationKeeper.js +0 -104
- package/lib/sync/SSEHandler/NotificationParser.js +0 -39
- package/lib/sync/SSEHandler/index.js +0 -121
- package/lib/sync/SegmentUpdateWorker/browser.js +0 -81
- package/lib/sync/SegmentUpdateWorker/node.js +0 -86
- package/lib/sync/SegmentUpdateWorker/package.json +0 -4
- package/lib/sync/SplitUpdateWorker/index.js +0 -93
- package/lib/sync/browser.js +0 -139
- package/lib/sync/constants.js +0 -59
- package/lib/sync/node.js +0 -71
- package/lib/sync/package.json +0 -4
- package/lib/trackers/event.js +0 -64
- package/lib/trackers/impressions.js +0 -146
- package/lib/utils/backoff/index.js +0 -57
- package/lib/utils/base64/browser.js +0 -26
- package/lib/utils/base64/node.js +0 -26
- package/lib/utils/base64/package.json +0 -4
- package/lib/utils/binarySearch/index.js +0 -56
- package/lib/utils/constants/index.js +0 -60
- package/lib/utils/context/constants.js +0 -49
- package/lib/utils/context/index.js +0 -111
- package/lib/utils/decompress/index.js +0 -483
- package/lib/utils/fn/repeat.js +0 -64
- package/lib/utils/inputValidation/apiKey.js +0 -51
- package/lib/utils/inputValidation/attribute.js +0 -32
- package/lib/utils/inputValidation/attributes.js +0 -32
- package/lib/utils/inputValidation/event.js +0 -33
- package/lib/utils/inputValidation/eventProperties.js +0 -78
- package/lib/utils/inputValidation/eventValue.js +0 -19
- package/lib/utils/inputValidation/index.js +0 -48
- package/lib/utils/inputValidation/isOperational.js +0 -25
- package/lib/utils/inputValidation/key.js +0 -59
- package/lib/utils/inputValidation/split.js +0 -60
- package/lib/utils/inputValidation/splitFilters.js +0 -134
- package/lib/utils/inputValidation/splits.js +0 -38
- package/lib/utils/inputValidation/trafficType.js +0 -68
- package/lib/utils/jwt/hashUserKey.js +0 -19
- package/lib/utils/jwt/index.js +0 -19
- package/lib/utils/key/factory.js +0 -46
- package/lib/utils/key/parser.js +0 -42
- package/lib/utils/labels/index.js +0 -18
- package/lib/utils/lang/Errors.js +0 -58
- package/lib/utils/lang/Sets.js +0 -127
- package/lib/utils/lang/index.js +0 -350
- package/lib/utils/localstorage/isAvailable.js +0 -31
- package/lib/utils/logger/LoggerFactory.js +0 -98
- package/lib/utils/logger/index.js +0 -109
- package/lib/utils/lrucache/linkedlist.js +0 -132
- package/lib/utils/lrucache/lru.spec.js +0 -30
- package/lib/utils/lrucache/lrucache.js +0 -88
- package/lib/utils/now/browser.js +0 -33
- package/lib/utils/now/node.js +0 -24
- package/lib/utils/now/package.json +0 -4
- package/lib/utils/promise/thenable.js +0 -10
- package/lib/utils/promise/timeout.js +0 -40
- package/lib/utils/promise/wrapper.js +0 -63
- package/lib/utils/settings/defaults/package.json +0 -4
- package/lib/utils/settings/impressionsMode.js +0 -26
- package/lib/utils/settings/index.js +0 -214
- package/lib/utils/settings/integrations/browser.js +0 -17
- package/lib/utils/settings/integrations/common.js +0 -40
- package/lib/utils/settings/integrations/node.js +0 -13
- package/lib/utils/settings/integrations/package.json +0 -4
- package/lib/utils/settings/language/browser.js +0 -22
- package/lib/utils/settings/language/node.js +0 -22
- package/lib/utils/settings/language/package.json +0 -4
- package/lib/utils/settings/mode.js +0 -16
- package/lib/utils/settings/runtime/browser.js +0 -26
- package/lib/utils/settings/runtime/package.json +0 -4
- package/lib/utils/settings/storage/package.json +0 -4
- package/lib/utils/splits/usesSegments.js +0 -27
- package/lib/utils/time/index.js +0 -12
- package/lib/utils/timeTracker/index.js +0 -213
- package/lib/utils/timeTracker/timer.js +0 -33
- package/src/client/attributesDecoration.js +0 -112
- package/src/client/browser.js +0 -41
- package/src/client/client.js +0 -131
- package/src/client/inputValidation.js +0 -130
- package/src/client/node.js +0 -8
- package/src/client/package.json +0 -4
- package/src/engine/combiners/and.js +0 -55
- package/src/engine/combiners/ifelseif.js +0 -74
- package/src/engine/condition/index.js +0 -65
- package/src/engine/convertions/index.js +0 -22
- package/src/engine/engine/index.js +0 -63
- package/src/engine/engine/legacy.js +0 -66
- package/src/engine/engine/murmur3/common.js +0 -54
- package/src/engine/engine/murmur3/murmur3.js +0 -79
- package/src/engine/engine/murmur3/murmur3_128.js +0 -273
- package/src/engine/engine/murmur3/murmur3_128_x86.js +0 -188
- package/src/engine/engine/murmur3/murmur3_64.js +0 -34
- package/src/engine/engine/murmur3/utfx.js +0 -111
- package/src/engine/evaluator/index.js +0 -148
- package/src/engine/index.js +0 -123
- package/src/engine/matchers/all.js +0 -29
- package/src/engine/matchers/between.js +0 -30
- package/src/engine/matchers/boolean.js +0 -29
- package/src/engine/matchers/cont_all.js +0 -40
- package/src/engine/matchers/cont_any.js +0 -35
- package/src/engine/matchers/cont_str.js +0 -31
- package/src/engine/matchers/dependency.js +0 -52
- package/src/engine/matchers/eq.js +0 -30
- package/src/engine/matchers/eq_set.js +0 -37
- package/src/engine/matchers/ew.js +0 -31
- package/src/engine/matchers/gte.js +0 -30
- package/src/engine/matchers/index.js +0 -71
- package/src/engine/matchers/lte.js +0 -30
- package/src/engine/matchers/part_of.js +0 -37
- package/src/engine/matchers/segment.js +0 -41
- package/src/engine/matchers/string.js +0 -39
- package/src/engine/matchers/sw.js +0 -31
- package/src/engine/matchers/types.js +0 -52
- package/src/engine/matchers/whitelist.js +0 -30
- package/src/engine/parser/index.js +0 -79
- package/src/engine/parser/segments.js +0 -31
- package/src/engine/transforms/matcherGroup.js +0 -45
- package/src/engine/transforms/matchers.js +0 -118
- package/src/engine/transforms/segment.js +0 -23
- package/src/engine/transforms/set.js +0 -20
- package/src/engine/transforms/unaryNumeric.js +0 -20
- package/src/engine/transforms/whitelist.js +0 -22
- package/src/engine/treatments/index.js +0 -67
- package/src/engine/value/index.js +0 -53
- package/src/engine/value/sanitize.js +0 -117
- package/src/events/index.js +0 -62
- package/src/factory/offline.js +0 -60
- package/src/factory/online.js +0 -127
- package/src/impressions/counter.js +0 -43
- package/src/impressions/hasher/buildKey.js +0 -3
- package/src/impressions/hasher/hashImpression128.js +0 -6
- package/src/impressions/hasher/hashImpression32.js +0 -6
- package/src/impressions/observer/browser.js +0 -8
- package/src/impressions/observer/node.js +0 -8
- package/src/impressions/observer/observer.js +0 -17
- package/src/impressions/observer/package.json +0 -4
- package/src/integrations/browser.js +0 -57
- package/src/integrations/ga/GaToSplit.js +0 -278
- package/src/integrations/ga/SplitToGa.js +0 -125
- package/src/integrations/node.js +0 -4
- package/src/integrations/package.json +0 -4
- package/src/listeners/browser.js +0 -137
- package/src/listeners/node.js +0 -59
- package/src/listeners/package.json +0 -4
- package/src/manager/index.js +0 -103
- package/src/metrics/Collectors.js +0 -77
- package/src/metrics/index.js +0 -174
- package/src/producer/browser/Partial.js +0 -104
- package/src/producer/browser.js +0 -82
- package/src/producer/fetcher/MySegments.js +0 -40
- package/src/producer/fetcher/SegmentChanges.js +0 -52
- package/src/producer/fetcher/SplitChanges.js +0 -39
- package/src/producer/node.js +0 -142
- package/src/producer/offline/browser.js +0 -28
- package/src/producer/offline/node.js +0 -28
- package/src/producer/offline/package.json +0 -4
- package/src/producer/package.json +0 -4
- package/src/producer/task.js +0 -57
- package/src/producer/updater/MySegments.js +0 -104
- package/src/producer/updater/SegmentChanges.js +0 -126
- package/src/producer/updater/SplitChanges.js +0 -138
- package/src/producer/updater/SplitChangesFromFeatures.js +0 -23
- package/src/producer/updater/SplitChangesFromFileSystem.js +0 -23
- package/src/producer/updater/SplitChangesFromObject.js +0 -81
- package/src/readiness/index.js +0 -125
- package/src/readiness/statusManager.js +0 -121
- package/src/services/.DS_Store +0 -0
- package/src/services/auth/auth.js +0 -21
- package/src/services/auth/index.js +0 -3
- package/src/services/events/bulk.js +0 -23
- package/src/services/events/index.js +0 -18
- package/src/services/getEventSource/package.json +0 -4
- package/src/services/getFetch/package.json +0 -4
- package/src/services/impressions/bulk.js +0 -26
- package/src/services/impressions/count.js +0 -8
- package/src/services/impressions/dto.js +0 -71
- package/src/services/impressions/index.js +0 -18
- package/src/services/impressions/post.js +0 -23
- package/src/services/metrics/counters.js +0 -25
- package/src/services/metrics/dto.js +0 -44
- package/src/services/metrics/index.js +0 -18
- package/src/services/metrics/times.js +0 -25
- package/src/services/mySegments/get.js +0 -27
- package/src/services/mySegments/index.js +0 -18
- package/src/services/request/index.js +0 -43
- package/src/services/request/options/browser.js +0 -18
- package/src/services/request/options/package.json +0 -4
- package/src/services/segmentChanges/get.js +0 -20
- package/src/services/segmentChanges/index.js +0 -18
- package/src/services/splitChanges/get.js +0 -20
- package/src/services/splitChanges/index.js +0 -18
- package/src/services/splitChanges/offline/browser.js +0 -66
- package/src/services/splitChanges/offline/node.js +0 -190
- package/src/services/splitChanges/offline/package.json +0 -4
- package/src/services/splitChanges/offline/parseCondition.js +0 -52
- package/src/services/transport/index.js +0 -44
- package/src/storage/AttributesCache/InMemory.js +0 -76
- package/src/storage/BaseMetricsAsyncCache.js +0 -14
- package/src/storage/CountCache/InMemory.js +0 -48
- package/src/storage/CountCache/InRedis.js +0 -32
- package/src/storage/EventsCache/InMemory.js +0 -99
- package/src/storage/EventsCache/InRedis.js +0 -62
- package/src/storage/ImpressionsCache/InMemory.js +0 -62
- package/src/storage/ImpressionsCache/InRedis.js +0 -65
- package/src/storage/Keys.js +0 -122
- package/src/storage/KeysLocalStorage.js +0 -40
- package/src/storage/LatencyCache/InMemory.js +0 -56
- package/src/storage/LatencyCache/InRedis.js +0 -35
- package/src/storage/LatencyCache/findIndex.js +0 -7
- package/src/storage/Meta.js +0 -7
- package/src/storage/RedisAdapter.js +0 -170
- package/src/storage/SegmentCache/InLocalStorage/index.js +0 -120
- package/src/storage/SegmentCache/InMemory/browser.js +0 -99
- package/src/storage/SegmentCache/InMemory/node.js +0 -84
- package/src/storage/SegmentCache/InMemory/package.json +0 -4
- package/src/storage/SegmentCache/InRedis/index.js +0 -71
- package/src/storage/SplitCache/InLocalStorage.js +0 -324
- package/src/storage/SplitCache/InMemory.js +0 -145
- package/src/storage/SplitCache/InRedis.js +0 -187
- package/src/storage/SplitCache/killLocally.js +0 -33
- package/src/storage/browser.js +0 -110
- package/src/storage/node.js +0 -83
- package/src/storage/package.json +0 -4
- package/src/sync/.DS_Store +0 -0
- package/src/sync/AuthClient/index.js +0 -31
- package/src/sync/PushManager/index.js +0 -328
- package/src/sync/PushManager/mySegmentsV2utils.js +0 -76
- package/src/sync/PushManager/pushRequirements/browser.js +0 -20
- package/src/sync/PushManager/pushRequirements/node.js +0 -16
- package/src/sync/PushManager/pushRequirements/package.json +0 -4
- package/src/sync/SSEClient/index.js +0 -92
- package/src/sync/SSEHandler/NotificationKeeper.js +0 -90
- package/src/sync/SSEHandler/NotificationParser.js +0 -35
- package/src/sync/SSEHandler/index.js +0 -110
- package/src/sync/SegmentUpdateWorker/browser.js +0 -67
- package/src/sync/SegmentUpdateWorker/node.js +0 -73
- package/src/sync/SegmentUpdateWorker/package.json +0 -4
- package/src/sync/SplitUpdateWorker/index.js +0 -79
- package/src/sync/browser.js +0 -130
- package/src/sync/constants.js +0 -43
- package/src/sync/node.js +0 -66
- package/src/sync/package.json +0 -4
- package/src/trackers/event.js +0 -47
- package/src/trackers/impressions.js +0 -123
- package/src/utils/backoff/index.js +0 -46
- package/src/utils/base64/browser.js +0 -19
- package/src/utils/base64/node.js +0 -19
- package/src/utils/base64/package.json +0 -4
- package/src/utils/binarySearch/index.js +0 -50
- package/src/utils/constants/index.js +0 -41
- package/src/utils/context/constants.js +0 -18
- package/src/utils/context/index.js +0 -84
- package/src/utils/decompress/index.js +0 -428
- package/src/utils/fn/repeat.js +0 -48
- package/src/utils/inputValidation/apiKey.js +0 -42
- package/src/utils/inputValidation/attribute.js +0 -22
- package/src/utils/inputValidation/attributes.js +0 -26
- package/src/utils/inputValidation/event.js +0 -23
- package/src/utils/inputValidation/eventProperties.js +0 -65
- package/src/utils/inputValidation/eventValue.js +0 -11
- package/src/utils/inputValidation/index.js +0 -11
- package/src/utils/inputValidation/isOperational.js +0 -16
- package/src/utils/inputValidation/key.js +0 -53
- package/src/utils/inputValidation/split.js +0 -42
- package/src/utils/inputValidation/splitFilters.js +0 -108
- package/src/utils/inputValidation/splits.js +0 -21
- package/src/utils/inputValidation/trafficType.js +0 -58
- package/src/utils/jwt/hashUserKey.js +0 -11
- package/src/utils/jwt/index.js +0 -15
- package/src/utils/key/factory.js +0 -34
- package/src/utils/key/parser.js +0 -34
- package/src/utils/labels/index.js +0 -7
- package/src/utils/lang/Errors.js +0 -19
- package/src/utils/lang/Sets.js +0 -94
- package/src/utils/lang/index.js +0 -291
- package/src/utils/localstorage/isAvailable.js +0 -26
- package/src/utils/logger/LoggerFactory.js +0 -90
- package/src/utils/logger/index.js +0 -93
- package/src/utils/lrucache/linkedlist.js +0 -116
- package/src/utils/lrucache/lru.spec.js +0 -26
- package/src/utils/lrucache/lrucache.js +0 -49
- package/src/utils/now/browser.js +0 -29
- package/src/utils/now/node.js +0 -21
- package/src/utils/now/package.json +0 -4
- package/src/utils/promise/thenable.js +0 -1
- package/src/utils/promise/timeout.js +0 -38
- package/src/utils/promise/wrapper.js +0 -60
- package/src/utils/settings/defaults/package.json +0 -4
- package/src/utils/settings/impressionsMode.js +0 -15
- package/src/utils/settings/index.js +0 -217
- package/src/utils/settings/integrations/browser.js +0 -8
- package/src/utils/settings/integrations/common.js +0 -32
- package/src/utils/settings/integrations/package.json +0 -4
- package/src/utils/settings/language/browser.js +0 -17
- package/src/utils/settings/language/node.js +0 -17
- package/src/utils/settings/language/package.json +0 -4
- package/src/utils/settings/mode.js +0 -12
- package/src/utils/settings/runtime/browser.js +0 -22
- package/src/utils/settings/runtime/package.json +0 -4
- package/src/utils/settings/storage/package.json +0 -4
- package/src/utils/splits/usesSegments.js +0 -17
- package/src/utils/time/index.js +0 -8
- package/src/utils/timeTracker/index.js +0 -223
- package/src/utils/timeTracker/timer.js +0 -27
|
@@ -1,214 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _objectAssign = _interopRequireDefault(require("object-assign"));
|
|
9
|
-
|
|
10
|
-
var _lang = require("../lang");
|
|
11
|
-
|
|
12
|
-
var _language = _interopRequireDefault(require("./language"));
|
|
13
|
-
|
|
14
|
-
var _runtime = _interopRequireDefault(require("./runtime"));
|
|
15
|
-
|
|
16
|
-
var _defaults = _interopRequireDefault(require("./defaults"));
|
|
17
|
-
|
|
18
|
-
var _storage = _interopRequireDefault(require("./storage"));
|
|
19
|
-
|
|
20
|
-
var _integrations = _interopRequireDefault(require("./integrations"));
|
|
21
|
-
|
|
22
|
-
var _mode = _interopRequireDefault(require("./mode"));
|
|
23
|
-
|
|
24
|
-
var _splitFilters = _interopRequireDefault(require("../inputValidation/splitFilters"));
|
|
25
|
-
|
|
26
|
-
var _logger = require("../../utils/logger");
|
|
27
|
-
|
|
28
|
-
var _constants = require("../../utils/constants");
|
|
29
|
-
|
|
30
|
-
var _impressionsMode = _interopRequireDefault(require("./impressionsMode"));
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
Copyright 2016 Split Software
|
|
34
|
-
|
|
35
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
|
36
|
-
you may not use this file except in compliance with the License.
|
|
37
|
-
You may obtain a copy of the License at
|
|
38
|
-
|
|
39
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
|
40
|
-
|
|
41
|
-
Unless required by applicable law or agreed to in writing, software
|
|
42
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
43
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
44
|
-
See the License for the specific language governing permissions and
|
|
45
|
-
limitations under the License.
|
|
46
|
-
**/
|
|
47
|
-
var version = '10.17.2';
|
|
48
|
-
var eventsEndpointMatcher = /^\/(testImpressions|metrics|events)/;
|
|
49
|
-
var authEndpointMatcher = /^\/v2\/auth/;
|
|
50
|
-
var streamingEndpointMatcher = /^\/(sse|event-stream)/;
|
|
51
|
-
var base = {
|
|
52
|
-
// Define which kind of object you want to retrieve from SplitFactory
|
|
53
|
-
mode: _constants.STANDALONE_MODE,
|
|
54
|
-
core: {
|
|
55
|
-
// API token (tight to an environment)
|
|
56
|
-
authorizationKey: undefined,
|
|
57
|
-
// key used in your system (only required for browser version)
|
|
58
|
-
key: undefined,
|
|
59
|
-
// traffic type for the given key (only used on browser version)
|
|
60
|
-
trafficType: undefined,
|
|
61
|
-
// toggle impressions tracking of labels
|
|
62
|
-
labelsEnabled: true,
|
|
63
|
-
// toggle sendind (true) or not sending (false) IP and Host Name with impressions, events, and telemetries requests (only used on nodejs version)
|
|
64
|
-
IPAddressesEnabled: undefined
|
|
65
|
-
},
|
|
66
|
-
scheduler: {
|
|
67
|
-
// fetch feature updates each 30 sec
|
|
68
|
-
featuresRefreshRate: 30,
|
|
69
|
-
// fetch segments updates each 60 sec
|
|
70
|
-
segmentsRefreshRate: 60,
|
|
71
|
-
// publish metrics each 120 sec
|
|
72
|
-
metricsRefreshRate: 120,
|
|
73
|
-
// publish evaluations each 60 sec
|
|
74
|
-
impressionsRefreshRate: 60,
|
|
75
|
-
// fetch offline changes each 15 sec
|
|
76
|
-
offlineRefreshRate: 15,
|
|
77
|
-
// publish events every 60 seconds after the first flush
|
|
78
|
-
eventsPushRate: 60,
|
|
79
|
-
// how many events will be queued before flushing
|
|
80
|
-
eventsQueueSize: 500,
|
|
81
|
-
// backoff base seconds to wait before re attempting to connect to push notifications
|
|
82
|
-
pushRetryBackoffBase: 1
|
|
83
|
-
},
|
|
84
|
-
urls: {
|
|
85
|
-
// CDN having all the information for your environment
|
|
86
|
-
sdk: 'https://sdk.split.io/api',
|
|
87
|
-
// Storage for your SDK events
|
|
88
|
-
events: 'https://events.split.io/api',
|
|
89
|
-
// SDK Auth Server
|
|
90
|
-
auth: 'https://auth.split.io/api',
|
|
91
|
-
// Streaming Server
|
|
92
|
-
streaming: 'https://streaming.split.io'
|
|
93
|
-
},
|
|
94
|
-
// Defines which kind of storage we should instanciate.
|
|
95
|
-
storage: {
|
|
96
|
-
type: _constants.STORAGE_MEMORY
|
|
97
|
-
},
|
|
98
|
-
// Defines if the logs are enabled, SDK wide.
|
|
99
|
-
debug: undefined,
|
|
100
|
-
// Defines the impression listener, but will only be used on NodeJS.
|
|
101
|
-
impressionListener: undefined,
|
|
102
|
-
// Instance version.
|
|
103
|
-
version: _language.default + "-" + version,
|
|
104
|
-
// List of integrations.
|
|
105
|
-
integrations: undefined,
|
|
106
|
-
// toggle using (true) or not using (false) Server-Side Events for synchronizing storage
|
|
107
|
-
streamingEnabled: true,
|
|
108
|
-
sync: {
|
|
109
|
-
splitFilters: undefined,
|
|
110
|
-
// impressions collection mode
|
|
111
|
-
impressionsMode: _constants.OPTIMIZED
|
|
112
|
-
}
|
|
113
|
-
};
|
|
114
|
-
|
|
115
|
-
function fromSecondsToMillis(n) {
|
|
116
|
-
return Math.round(n * 1000);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
function setupLogger(debugValue) {
|
|
120
|
-
if (typeof debugValue === 'boolean') {
|
|
121
|
-
if (debugValue) {
|
|
122
|
-
_logger.API.enable();
|
|
123
|
-
} else {
|
|
124
|
-
_logger.API.disable();
|
|
125
|
-
}
|
|
126
|
-
} else if (typeof debugValue === 'string') {
|
|
127
|
-
_logger.API.setLogLevel(debugValue);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
function defaults(custom) {
|
|
132
|
-
var withDefaults = (0, _lang.merge)({}, base, _defaults.default, custom); // Scheduler periods
|
|
133
|
-
|
|
134
|
-
withDefaults.scheduler.featuresRefreshRate = fromSecondsToMillis(withDefaults.scheduler.featuresRefreshRate);
|
|
135
|
-
withDefaults.scheduler.segmentsRefreshRate = fromSecondsToMillis(withDefaults.scheduler.segmentsRefreshRate);
|
|
136
|
-
withDefaults.scheduler.metricsRefreshRate = fromSecondsToMillis(withDefaults.scheduler.metricsRefreshRate);
|
|
137
|
-
withDefaults.scheduler.impressionsRefreshRate = fromSecondsToMillis(withDefaults.scheduler.impressionsRefreshRate);
|
|
138
|
-
withDefaults.scheduler.offlineRefreshRate = fromSecondsToMillis(withDefaults.scheduler.offlineRefreshRate);
|
|
139
|
-
withDefaults.scheduler.eventsPushRate = fromSecondsToMillis(withDefaults.scheduler.eventsPushRate); // Startup periods
|
|
140
|
-
|
|
141
|
-
withDefaults.startup.requestTimeoutBeforeReady = fromSecondsToMillis(withDefaults.startup.requestTimeoutBeforeReady);
|
|
142
|
-
withDefaults.startup.readyTimeout = fromSecondsToMillis(withDefaults.startup.readyTimeout);
|
|
143
|
-
withDefaults.startup.eventsFirstPushWindow = fromSecondsToMillis(withDefaults.startup.eventsFirstPushWindow); // ensure a valid SDK mode
|
|
144
|
-
|
|
145
|
-
withDefaults.mode = (0, _mode.default)(withDefaults.core.authorizationKey, withDefaults.mode); // ensure a valid Storage based on mode defined.
|
|
146
|
-
|
|
147
|
-
withDefaults.storage = (0, _storage.default)(withDefaults);
|
|
148
|
-
setupLogger(withDefaults.debug); // Current ip/hostname information
|
|
149
|
-
|
|
150
|
-
withDefaults.runtime = (0, _runtime.default)(withDefaults.core.IPAddressesEnabled, withDefaults.mode === _constants.CONSUMER_MODE); // ensure a valid list of integrations.
|
|
151
|
-
// `integrations` returns an array of valid integration items.
|
|
152
|
-
|
|
153
|
-
withDefaults.integrations = (0, _integrations.default)(withDefaults); // validate push options
|
|
154
|
-
|
|
155
|
-
if (withDefaults.streamingEnabled !== false) {
|
|
156
|
-
withDefaults.streamingEnabled = true; // Backoff bases.
|
|
157
|
-
// We are not checking if bases are positive numbers. Thus, we might be reauthenticating immediately (`setTimeout` with NaN or negative number)
|
|
158
|
-
|
|
159
|
-
withDefaults.scheduler.pushRetryBackoffBase = fromSecondsToMillis(withDefaults.scheduler.pushRetryBackoffBase);
|
|
160
|
-
} // validate the `splitFilters` settings and parse splits query
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
var splitFiltersValidation = (0, _splitFilters.default)(withDefaults.sync.splitFilters, withDefaults.mode);
|
|
164
|
-
withDefaults.sync.splitFilters = splitFiltersValidation.validFilters;
|
|
165
|
-
withDefaults.sync.__splitFiltersValidation = splitFiltersValidation; // ensure a valid impressionsMode
|
|
166
|
-
|
|
167
|
-
withDefaults.sync.impressionsMode = (0, _impressionsMode.default)(withDefaults.sync.impressionsMode);
|
|
168
|
-
return withDefaults;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
var proto = {
|
|
172
|
-
/**
|
|
173
|
-
* Switch URLs servers based on target.
|
|
174
|
-
*
|
|
175
|
-
* @param {String} target url target
|
|
176
|
-
* @return {String} completed url
|
|
177
|
-
*/
|
|
178
|
-
url: function url(target) {
|
|
179
|
-
if (eventsEndpointMatcher.test(target)) {
|
|
180
|
-
return "" + this.urls.events + target;
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
if (authEndpointMatcher.test(target)) {
|
|
184
|
-
return "" + this.urls.auth + target;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
if (streamingEndpointMatcher.test(target)) {
|
|
188
|
-
return "" + this.urls.streaming + target;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
return "" + this.urls.sdk + target;
|
|
192
|
-
},
|
|
193
|
-
|
|
194
|
-
/**
|
|
195
|
-
* Returns a settings clone with the key and traffic type (if provided) overriden.
|
|
196
|
-
* @param {SplitKey} key
|
|
197
|
-
* @param {string} [trafficType]
|
|
198
|
-
*/
|
|
199
|
-
overrideKeyAndTT: function overrideKeyAndTT(key, trafficType) {
|
|
200
|
-
return (0, _objectAssign.default)(Object.create(proto), this, {
|
|
201
|
-
core: (0, _objectAssign.default)({}, this.core, {
|
|
202
|
-
key: key,
|
|
203
|
-
trafficType: trafficType
|
|
204
|
-
})
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
};
|
|
208
|
-
|
|
209
|
-
var SettingsFactory = function SettingsFactory(settings) {
|
|
210
|
-
return (0, _objectAssign.default)(Object.create(proto), defaults(settings));
|
|
211
|
-
};
|
|
212
|
-
|
|
213
|
-
var _default = SettingsFactory;
|
|
214
|
-
exports.default = _default;
|
|
@@ -1,17 +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 _constants = require("../../../utils/constants");
|
|
9
|
-
|
|
10
|
-
var _common = _interopRequireDefault(require("./common"));
|
|
11
|
-
|
|
12
|
-
var validateBrowserIntegrationsSettings = function validateBrowserIntegrationsSettings(settings) {
|
|
13
|
-
return (0, _common.default)(settings, [_constants.GOOGLE_ANALYTICS_TO_SPLIT, _constants.SPLIT_TO_GOOGLE_ANALYTICS]);
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
var _default = validateBrowserIntegrationsSettings;
|
|
17
|
-
exports.default = _default;
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _logger = _interopRequireDefault(require("../../../utils/logger"));
|
|
9
|
-
|
|
10
|
-
var _lang = require("../../../utils/lang");
|
|
11
|
-
|
|
12
|
-
var log = (0, _logger.default)('splitio-settings');
|
|
13
|
-
/**
|
|
14
|
-
* This function validates `settings.integrations` object
|
|
15
|
-
*
|
|
16
|
-
* @param {Object} settings SDK settings object to validate
|
|
17
|
-
* @param {Array<string>} validIntegrationTypes list of integration types to filter from `settings.integrations`
|
|
18
|
-
*
|
|
19
|
-
* @returns {Array} array of valid integration items. The array might be empty if `settings` object does not have valid integrations.
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
var validateIntegrationsSettings = function validateIntegrationsSettings(settings, validIntegrationTypes) {
|
|
23
|
-
if (validIntegrationTypes === void 0) {
|
|
24
|
-
validIntegrationTypes = [];
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
var integrations = settings.integrations; // If integrations is not an array or an empty array, we return an empty array (no integrations).
|
|
28
|
-
|
|
29
|
-
if (!Array.isArray(integrations) || integrations.length === 0) return []; // We remove invalid integration items
|
|
30
|
-
|
|
31
|
-
var validIntegrations = integrations.filter(function (integration) {
|
|
32
|
-
return integration && (0, _lang.isString)(integration.type) && validIntegrationTypes.indexOf(integration.type) > -1;
|
|
33
|
-
});
|
|
34
|
-
var invalids = integrations.length - validIntegrations.length;
|
|
35
|
-
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");
|
|
36
|
-
return validIntegrations;
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
var _default = validateIntegrationsSettings;
|
|
40
|
-
exports.default = _default;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.default = void 0;
|
|
5
|
-
|
|
6
|
-
// For now, Node SDK does not support integrations,
|
|
7
|
-
// thus any integrations settings is parsed into undefined.
|
|
8
|
-
var validateNodeIntegrationsSettings = function validateNodeIntegrationsSettings() {
|
|
9
|
-
return [];
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
var _default = validateNodeIntegrationsSettings;
|
|
13
|
-
exports.default = _default;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.default = void 0;
|
|
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
|
-
var _default = 'javascript';
|
|
22
|
-
exports.default = _default;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.default = void 0;
|
|
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
|
-
var _default = 'nodejs';
|
|
22
|
-
exports.default = _default;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.default = void 0;
|
|
5
|
-
|
|
6
|
-
var _constants = require("../constants");
|
|
7
|
-
|
|
8
|
-
function mode(key, mode) {
|
|
9
|
-
// Leaving the comparison as is, in case we change the mode name but not the setting.
|
|
10
|
-
if (key === 'localhost') return _constants.LOCALHOST_MODE;
|
|
11
|
-
if ([_constants.STANDALONE_MODE, _constants.PRODUCER_MODE, _constants.CONSUMER_MODE].indexOf(mode) === -1) throw Error('Invalid mode provided');
|
|
12
|
-
return mode;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
var _default = mode;
|
|
16
|
-
exports.default = _default;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.default = generateRuntimeSettings;
|
|
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 generateRuntimeSettings() {
|
|
22
|
-
return {
|
|
23
|
-
ip: false,
|
|
24
|
-
hostname: false
|
|
25
|
-
};
|
|
26
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.default = void 0;
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Given a list of conditions, it returns a boolean flagging if those conditions
|
|
8
|
-
* use segments matchers (rules & whitelists)
|
|
9
|
-
*/
|
|
10
|
-
function usesSegments(conditions) {
|
|
11
|
-
if (conditions === void 0) {
|
|
12
|
-
conditions = [];
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
for (var i = 0; i < conditions.length; i++) {
|
|
16
|
-
var matchers = conditions[i].matcherGroup.matchers;
|
|
17
|
-
|
|
18
|
-
for (var j = 0; j < matchers.length; j++) {
|
|
19
|
-
if (matchers[j].matcherType === 'IN_SEGMENT') return true;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
return false;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
var _default = usesSegments;
|
|
27
|
-
exports.default = _default;
|
package/lib/utils/time/index.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.truncateTimeFrame = truncateTimeFrame;
|
|
5
|
-
var DEDUP_WINDOW_SIZE_MS = 3600 * 1000;
|
|
6
|
-
/**
|
|
7
|
-
* Truncates de time frame received with the time window.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
function truncateTimeFrame(timestampInMs) {
|
|
11
|
-
return timestampInMs - timestampInMs % DEDUP_WINDOW_SIZE_MS;
|
|
12
|
-
}
|
|
@@ -1,213 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _lang = require("../lang");
|
|
9
|
-
|
|
10
|
-
var _LoggerFactory = require("../logger/LoggerFactory");
|
|
11
|
-
|
|
12
|
-
var _timer = _interopRequireDefault(require("./timer"));
|
|
13
|
-
|
|
14
|
-
var _thenable = _interopRequireDefault(require("../promise/thenable"));
|
|
15
|
-
|
|
16
|
-
var _CALLBACKS;
|
|
17
|
-
|
|
18
|
-
// logger to be used on this module
|
|
19
|
-
var logger = new _LoggerFactory.Logger('[TIME TRACKER]', {
|
|
20
|
-
showLevel: false
|
|
21
|
-
}); // Map we will use for storing timers data
|
|
22
|
-
|
|
23
|
-
var timers = {}; // Tasks constants
|
|
24
|
-
|
|
25
|
-
var CONSTANTS = {
|
|
26
|
-
SDK_READY: 'Getting ready - Split SDK',
|
|
27
|
-
SDK_GET_TREATMENT: 'SDK - Get Treatment',
|
|
28
|
-
SDK_GET_TREATMENTS: 'SDK - Get Treatments',
|
|
29
|
-
SDK_GET_TREATMENT_WITH_CONFIG: 'SDK - Get Treatment with config',
|
|
30
|
-
SDK_GET_TREATMENTS_WITH_CONFIG: 'SDK - Get Treatments with config',
|
|
31
|
-
SPLITS_READY: 'Getting ready - Splits',
|
|
32
|
-
SEGMENTS_READY: 'Getting ready - Segments',
|
|
33
|
-
METRICS_PUSH: 'Pushing - Metrics',
|
|
34
|
-
IMPRESSIONS_PUSH: 'Pushing - Impressions',
|
|
35
|
-
EVENTS_PUSH: 'Pushing - Events',
|
|
36
|
-
MY_SEGMENTS_FETCH: 'Fetching - My Segments',
|
|
37
|
-
SEGMENTS_FETCH: 'Fetching - Segments',
|
|
38
|
-
SPLITS_FETCH: 'Fetching - Splits'
|
|
39
|
-
}; // Tasks callbacks, if any
|
|
40
|
-
|
|
41
|
-
var CALLBACKS = (_CALLBACKS = {}, _CALLBACKS[CONSTANTS.SDK_READY] = {
|
|
42
|
-
collector: 'client',
|
|
43
|
-
method: 'ready'
|
|
44
|
-
}, _CALLBACKS[CONSTANTS.SDK_GET_TREATMENT] = {
|
|
45
|
-
collector: 'client',
|
|
46
|
-
method: 'getTreatment'
|
|
47
|
-
}, _CALLBACKS[CONSTANTS.SDK_GET_TREATMENTS] = {
|
|
48
|
-
collector: 'client',
|
|
49
|
-
method: 'getTreatments'
|
|
50
|
-
}, _CALLBACKS[CONSTANTS.SDK_GET_TREATMENT_WITH_CONFIG] = {
|
|
51
|
-
collector: 'client',
|
|
52
|
-
method: 'getTreatmentWithConfig'
|
|
53
|
-
}, _CALLBACKS[CONSTANTS.SDK_GET_TREATMENTS_WITH_CONFIG] = {
|
|
54
|
-
collector: 'client',
|
|
55
|
-
method: 'getTreatmentsWithConfig'
|
|
56
|
-
}, _CALLBACKS[CONSTANTS.MY_SEGMENTS_FETCH] = {
|
|
57
|
-
collector: 'mySegments',
|
|
58
|
-
method: 'latency'
|
|
59
|
-
}, _CALLBACKS[CONSTANTS.SEGMENTS_FETCH] = {
|
|
60
|
-
collector: 'segmentChanges',
|
|
61
|
-
method: 'latency'
|
|
62
|
-
}, _CALLBACKS[CONSTANTS.SPLITS_FETCH] = {
|
|
63
|
-
collector: 'splitChanges',
|
|
64
|
-
method: 'latency'
|
|
65
|
-
}, _CALLBACKS);
|
|
66
|
-
/**
|
|
67
|
-
* Generates the timer keys using the task name and a modifier, if any.
|
|
68
|
-
* @param {string} task - The task name
|
|
69
|
-
* @param {string} modifier - (optional) The modifier, if any.
|
|
70
|
-
* @return {string} The generated timer key
|
|
71
|
-
*/
|
|
72
|
-
|
|
73
|
-
var generateTimerKey = function generateTimerKey(task, modifier) {
|
|
74
|
-
return typeof modifier === 'string' ? task + modifier : task;
|
|
75
|
-
};
|
|
76
|
-
/**
|
|
77
|
-
* Given the collectors map, it returns the specific collector for a given task.
|
|
78
|
-
*
|
|
79
|
-
* @param {string} task - The task name
|
|
80
|
-
* @param {Object} collectors - The collectors map
|
|
81
|
-
*/
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
var getCollectorForTask = function getCollectorForTask(task, collectors) {
|
|
85
|
-
var callbackData = CALLBACKS[task];
|
|
86
|
-
if (callbackData && collectors) return collectors[callbackData.collector];
|
|
87
|
-
return false;
|
|
88
|
-
};
|
|
89
|
-
/**
|
|
90
|
-
* Given a collector and a task, returns the callback function that should be called when we stop the timer.
|
|
91
|
-
*
|
|
92
|
-
* @param {string} task - The task name
|
|
93
|
-
* @param {Object} collector - The collector object for the task
|
|
94
|
-
*/
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
var getCallbackForTask = function getCallbackForTask(task, collector) {
|
|
98
|
-
var callbackData = CALLBACKS[task];
|
|
99
|
-
if (callbackData && collector) return collector[callbackData.method];
|
|
100
|
-
return false;
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
var TrackerAPI = {
|
|
104
|
-
/**
|
|
105
|
-
* "Private" method, used to attach count/countException and stop callbacks to a promise.
|
|
106
|
-
*
|
|
107
|
-
* @param {Promise} promise - The promise we want to attach the callbacks.
|
|
108
|
-
* @param {string} task - The name of the task.
|
|
109
|
-
* @param {string} modifier - (optional) The modifier for the task, if any.
|
|
110
|
-
*/
|
|
111
|
-
__attachToPromise: function __attachToPromise(promise, task, collector, modifier) {
|
|
112
|
-
var _this = this;
|
|
113
|
-
|
|
114
|
-
return promise.then(function (resp) {
|
|
115
|
-
_this.stop(task, modifier);
|
|
116
|
-
|
|
117
|
-
if (collector && collector.count) collector.count(resp.status);
|
|
118
|
-
return resp;
|
|
119
|
-
}).catch(function (err) {
|
|
120
|
-
_this.stop(task, modifier);
|
|
121
|
-
|
|
122
|
-
if (collector && collector.countException) collector.countException();
|
|
123
|
-
throw err;
|
|
124
|
-
});
|
|
125
|
-
},
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Starts tracking the time for a given task. All tasks tracked are considered "unique" because
|
|
129
|
-
* there may be multiple SDK instances tracking a "generic" task, making any task non-generic.
|
|
130
|
-
*
|
|
131
|
-
* @param {string} task - The task we are starting.
|
|
132
|
-
* @param {Object} collectors - The collectors map.
|
|
133
|
-
* @param {Promise} promise - (optional) The promise we are tracking.
|
|
134
|
-
* @return {Function | Promise} The stop function for this specific task or the promise received with the callbacks registered.
|
|
135
|
-
*/
|
|
136
|
-
start: function start(task, collectors, promise) {
|
|
137
|
-
var taskUniqueId = (0, _lang.uniqueId)();
|
|
138
|
-
var taskCollector = getCollectorForTask(task, collectors);
|
|
139
|
-
var result; // If we are registering a promise with this task, we should count the status and the exceptions as well
|
|
140
|
-
// as stopping the task when the promise resolves. Then return the promise
|
|
141
|
-
|
|
142
|
-
if ((0, _thenable.default)(promise)) {
|
|
143
|
-
result = this.__attachToPromise(promise, task, taskCollector, taskUniqueId);
|
|
144
|
-
} else {
|
|
145
|
-
// If not, we return the stop function, as it will be stopped manually.
|
|
146
|
-
result = this.stop.bind(this, task, taskUniqueId);
|
|
147
|
-
|
|
148
|
-
if (CALLBACKS[task] && !taskCollector) {
|
|
149
|
-
// and provide a way for a defered setup of the collector, if needed.
|
|
150
|
-
result.setCollectorForTask = this.setCollectorForTask.bind(this, task, taskUniqueId);
|
|
151
|
-
}
|
|
152
|
-
} // We start the timer, with an uniqueId attached to it's name, and save tracking info for this task.
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
var trackingKey = generateTimerKey(task, taskUniqueId);
|
|
156
|
-
var cb = getCallbackForTask(task, taskCollector);
|
|
157
|
-
timers[trackingKey] = {
|
|
158
|
-
cb: cb,
|
|
159
|
-
timer: (0, _timer.default)()
|
|
160
|
-
};
|
|
161
|
-
return result;
|
|
162
|
-
},
|
|
163
|
-
|
|
164
|
-
/**
|
|
165
|
-
* Setup the collector for a task that reports metrics.
|
|
166
|
-
*
|
|
167
|
-
* @param {string} task - The task name
|
|
168
|
-
* @param {string} taskUniqueId - The unique identifier for this task
|
|
169
|
-
* @param {Object} collectors - The collectors map.
|
|
170
|
-
*/
|
|
171
|
-
setCollectorForTask: function setCollectorForTask(task, taskUniqueId, collectors) {
|
|
172
|
-
var taskCollector = getCollectorForTask(task, collectors);
|
|
173
|
-
|
|
174
|
-
if (taskCollector) {
|
|
175
|
-
var trackingKey = generateTimerKey(task, taskUniqueId);
|
|
176
|
-
timers[trackingKey].cb = getCallbackForTask(task, taskCollector);
|
|
177
|
-
}
|
|
178
|
-
},
|
|
179
|
-
|
|
180
|
-
/**
|
|
181
|
-
* Stops the tracking of a given task.
|
|
182
|
-
*
|
|
183
|
-
* @param {string} task - The task we are starting.
|
|
184
|
-
* @param {string} modifier - (optional) The modifier for that specific task.
|
|
185
|
-
*/
|
|
186
|
-
stop: function stop(task, modifier) {
|
|
187
|
-
var timerName = generateTimerKey(task, modifier);
|
|
188
|
-
var timerData = timers[timerName];
|
|
189
|
-
|
|
190
|
-
if (timerData) {
|
|
191
|
-
// Stop the timer and round result for readability.
|
|
192
|
-
var et = timerData.timer();
|
|
193
|
-
logger.debug("[" + task + "] took " + et + "ms to finish."); // Check if we have a tracker callback.
|
|
194
|
-
|
|
195
|
-
if (timerData.cb) {
|
|
196
|
-
// If we have a callback, we call it with the elapsed time of the task and then delete the reference.
|
|
197
|
-
timerData.cb(et);
|
|
198
|
-
} // Remove the task tracking reference.
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
delete timers[timerName];
|
|
202
|
-
return et;
|
|
203
|
-
}
|
|
204
|
-
},
|
|
205
|
-
|
|
206
|
-
/**
|
|
207
|
-
* The constants shortcut for the task names.
|
|
208
|
-
*/
|
|
209
|
-
TaskNames: CONSTANTS
|
|
210
|
-
}; // Our "time tracker" API
|
|
211
|
-
|
|
212
|
-
var _default = TrackerAPI;
|
|
213
|
-
exports.default = _default;
|