@splitsoftware/splitio-commons 2.4.2-rc.3 → 11.5.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGES.txt +895 -152
- package/CONTRIBUTORS-GUIDE.md +26 -16
- package/README.md +43 -5
- package/cjs/factory/browser.js +73 -0
- package/cjs/factory/node.js +79 -0
- package/cjs/factory/package.json +4 -0
- package/cjs/index.js +3 -16
- package/cjs/{utils/MinEvents.js → platform/EventEmitter.js} +153 -27
- package/cjs/platform/browser.js +15 -0
- package/cjs/platform/filter/bloomFilter.js +32 -0
- package/cjs/platform/getEventSource/browser.js +7 -0
- package/cjs/platform/getEventSource/eventsource.js +480 -0
- package/cjs/platform/getEventSource/node.js +25 -0
- package/cjs/platform/getEventSource/package.json +4 -0
- package/cjs/platform/getFetch/browser.js +9 -0
- package/cjs/platform/getFetch/node.js +26 -0
- package/cjs/platform/getFetch/package.json +4 -0
- package/cjs/platform/getOptions/node.js +25 -0
- package/cjs/platform/node.js +18 -0
- package/cjs/platform/package.json +4 -0
- package/cjs/settings/browser.js +21 -0
- package/cjs/settings/defaults/browser.js +21 -0
- package/cjs/settings/defaults/node.js +23 -0
- package/cjs/{listeners/types.js → settings/defaults/version.js} +2 -0
- package/cjs/settings/integrations/browser.js +9 -0
- package/cjs/settings/node.js +22 -0
- package/cjs/settings/package.json +4 -0
- package/cjs/settings/runtime/node.js +22 -0
- package/cjs/settings/storage/browser.js +35 -0
- package/cjs/settings/storage/node.js +67 -0
- package/cjs/sync/offline/LocalhostFromFile.js +8 -0
- package/cjs/sync/offline/splitsParserFromFile.js +148 -0
- package/cjs/umd.js +5 -0
- package/cjs/utils/ip.js +114 -0
- package/client/package.json +5 -0
- package/esm/factory/browser.js +69 -0
- package/esm/factory/node.js +75 -0
- package/esm/factory/package.json +4 -0
- package/esm/index.js +1 -10
- package/esm/{utils/MinEvents.js → platform/EventEmitter.js} +143 -17
- package/esm/platform/browser.js +12 -0
- package/esm/platform/filter/bloomFilter.js +28 -0
- package/esm/platform/getEventSource/browser.js +3 -0
- package/esm/platform/getEventSource/eventsource.js +480 -0
- package/esm/platform/getEventSource/node.js +19 -0
- package/esm/platform/getEventSource/package.json +4 -0
- package/esm/platform/getFetch/browser.js +4 -0
- package/esm/platform/getFetch/node.js +21 -0
- package/esm/platform/getFetch/package.json +4 -0
- package/esm/platform/getOptions/node.js +20 -0
- package/esm/platform/node.js +14 -0
- package/esm/platform/package.json +4 -0
- package/esm/settings/browser.js +17 -0
- package/esm/settings/defaults/browser.js +18 -0
- package/esm/settings/defaults/node.js +20 -0
- package/esm/settings/defaults/version.js +1 -0
- package/esm/settings/integrations/browser.js +5 -0
- package/esm/settings/node.js +18 -0
- package/esm/settings/package.json +4 -0
- package/esm/settings/runtime/node.js +17 -0
- package/esm/settings/storage/browser.js +31 -0
- package/esm/settings/storage/node.js +63 -0
- package/esm/sync/offline/LocalhostFromFile.js +5 -0
- package/esm/sync/offline/splitsParserFromFile.js +143 -0
- package/esm/umd.js +3 -0
- package/esm/utils/ip.js +109 -0
- package/package.json +99 -58
- package/server/package.json +5 -0
- package/src/factory/browser.js +85 -0
- package/src/factory/node.js +92 -0
- package/src/factory/package.json +4 -0
- package/src/index.js +1 -0
- package/src/{utils/MinEvents.ts → platform/EventEmitter.js} +164 -19
- package/src/platform/browser.js +14 -0
- package/src/platform/filter/bloomFilter.js +33 -0
- package/src/platform/getEventSource/browser.js +3 -0
- package/src/platform/getEventSource/eventsource.js +519 -0
- package/src/platform/getEventSource/node.js +20 -0
- package/src/platform/getEventSource/package.json +4 -0
- package/src/platform/getFetch/browser.js +5 -0
- package/src/platform/getFetch/node.js +24 -0
- package/src/platform/getFetch/package.json +4 -0
- package/src/platform/getOptions/node.js +23 -0
- package/src/platform/node.js +16 -0
- package/src/platform/package.json +4 -0
- package/src/settings/browser.js +20 -0
- package/src/settings/defaults/browser.js +21 -0
- package/src/settings/defaults/node.js +23 -0
- package/src/settings/defaults/version.js +1 -0
- package/src/settings/integrations/browser.js +6 -0
- package/src/settings/node.js +21 -0
- package/src/settings/package.json +4 -0
- package/src/settings/runtime/node.js +21 -0
- package/src/settings/storage/browser.js +47 -0
- package/src/settings/storage/node.js +84 -0
- package/src/sync/offline/LocalhostFromFile.js +6 -0
- package/src/sync/offline/splitsParserFromFile.js +173 -0
- package/src/umd.js +4 -0
- package/src/utils/ip.js +123 -0
- package/types/client/index.d.ts +15 -0
- package/types/index.d.ts +24 -1
- package/types/server/index.d.ts +21 -0
- package/types/splitio.d.ts +2 -2083
- package/cjs/consent/index.js +0 -10
- package/cjs/consent/sdkUserConsent.js +0 -60
- package/cjs/dtos/types.js +0 -2
- package/cjs/evaluator/Engine.js +0 -58
- package/cjs/evaluator/combiners/and.js +0 -25
- package/cjs/evaluator/combiners/ifelseif.js +0 -48
- package/cjs/evaluator/condition/engineUtils.js +0 -29
- package/cjs/evaluator/condition/index.js +0 -41
- package/cjs/evaluator/convertions/index.js +0 -11
- package/cjs/evaluator/index.js +0 -134
- package/cjs/evaluator/matchers/all.js +0 -9
- package/cjs/evaluator/matchers/between.js +0 -10
- package/cjs/evaluator/matchers/boolean.js +0 -10
- package/cjs/evaluator/matchers/cont_all.js +0 -23
- package/cjs/evaluator/matchers/cont_any.js +0 -18
- package/cjs/evaluator/matchers/cont_str.js +0 -11
- package/cjs/evaluator/matchers/dependency.js +0 -28
- package/cjs/evaluator/matchers/eq.js +0 -10
- package/cjs/evaluator/matchers/eq_set.js +0 -20
- package/cjs/evaluator/matchers/ew.js +0 -11
- package/cjs/evaluator/matchers/gte.js +0 -10
- package/cjs/evaluator/matchers/index.js +0 -66
- package/cjs/evaluator/matchers/large_segment.js +0 -10
- package/cjs/evaluator/matchers/lte.js +0 -10
- package/cjs/evaluator/matchers/matcherTypes.js +0 -46
- package/cjs/evaluator/matchers/part_of.js +0 -20
- package/cjs/evaluator/matchers/prerequisites.js +0 -22
- package/cjs/evaluator/matchers/rbsegment.js +0 -56
- package/cjs/evaluator/matchers/segment.js +0 -10
- package/cjs/evaluator/matchers/semver_between.js +0 -14
- package/cjs/evaluator/matchers/semver_eq.js +0 -13
- package/cjs/evaluator/matchers/semver_gte.js +0 -13
- package/cjs/evaluator/matchers/semver_inlist.js +0 -16
- package/cjs/evaluator/matchers/semver_lte.js +0 -13
- package/cjs/evaluator/matchers/string.js +0 -11
- package/cjs/evaluator/matchers/sw.js +0 -11
- package/cjs/evaluator/matchers/whitelist.js +0 -11
- package/cjs/evaluator/matchersTransform/index.js +0 -104
- package/cjs/evaluator/matchersTransform/segment.js +0 -12
- package/cjs/evaluator/matchersTransform/unaryNumeric.js +0 -10
- package/cjs/evaluator/matchersTransform/whitelist.js +0 -10
- package/cjs/evaluator/parser/index.js +0 -61
- package/cjs/evaluator/treatments/index.js +0 -42
- package/cjs/evaluator/types.js +0 -2
- package/cjs/evaluator/value/index.js +0 -37
- package/cjs/evaluator/value/sanitize.js +0 -94
- package/cjs/integrations/pluggable.js +0 -35
- package/cjs/integrations/types.js +0 -2
- package/cjs/listeners/browser.js +0 -121
- package/cjs/listeners/node.js +0 -68
- package/cjs/logger/browser/DebugLogger.js +0 -9
- package/cjs/logger/browser/ErrorLogger.js +0 -9
- package/cjs/logger/browser/InfoLogger.js +0 -9
- package/cjs/logger/browser/WarnLogger.js +0 -9
- package/cjs/logger/constants.js +0 -140
- package/cjs/logger/index.js +0 -100
- package/cjs/logger/messages/debug.js +0 -36
- package/cjs/logger/messages/error.js +0 -42
- package/cjs/logger/messages/info.js +0 -37
- package/cjs/logger/messages/warn.js +0 -42
- package/cjs/logger/sdkLogger.js +0 -45
- package/cjs/logger/types.js +0 -2
- package/cjs/readiness/constants.js +0 -13
- package/cjs/readiness/readinessManager.js +0 -154
- package/cjs/readiness/sdkReadinessManager.js +0 -104
- package/cjs/readiness/types.js +0 -2
- package/cjs/sdkClient/client.js +0 -183
- package/cjs/sdkClient/clientAttributesDecoration.js +0 -122
- package/cjs/sdkClient/clientCS.js +0 -30
- package/cjs/sdkClient/clientInputValidation.js +0 -147
- package/cjs/sdkClient/identity.js +0 -7
- package/cjs/sdkClient/sdkClient.js +0 -64
- package/cjs/sdkClient/sdkClientMethod.js +0 -22
- package/cjs/sdkClient/sdkClientMethodCS.js +0 -66
- package/cjs/sdkFactory/index.js +0 -108
- package/cjs/sdkFactory/types.js +0 -2
- package/cjs/sdkManager/index.js +0 -96
- package/cjs/services/decorateHeaders.js +0 -40
- package/cjs/services/splitApi.js +0 -131
- package/cjs/services/splitHttpClient.js +0 -82
- package/cjs/services/types.js +0 -2
- package/cjs/storages/AbstractMySegmentsCacheSync.js +0 -60
- package/cjs/storages/AbstractSplitsCacheAsync.js +0 -51
- package/cjs/storages/AbstractSplitsCacheSync.js +0 -75
- package/cjs/storages/KeyBuilder.js +0 -68
- package/cjs/storages/KeyBuilderCS.js +0 -65
- package/cjs/storages/KeyBuilderSS.js +0 -60
- package/cjs/storages/dataLoader.js +0 -50
- package/cjs/storages/findLatencyIndex.js +0 -18
- package/cjs/storages/inLocalStorage/MySegmentsCacheInLocal.js +0 -81
- package/cjs/storages/inLocalStorage/RBSegmentsCacheInLocal.js +0 -117
- package/cjs/storages/inLocalStorage/SplitsCacheInLocal.js +0 -204
- package/cjs/storages/inLocalStorage/constants.js +0 -5
- package/cjs/storages/inLocalStorage/index.js +0 -91
- package/cjs/storages/inLocalStorage/storageAdapter.js +0 -54
- package/cjs/storages/inLocalStorage/validateCache.js +0 -85
- package/cjs/storages/inMemory/AttributesCacheInMemory.js +0 -70
- package/cjs/storages/inMemory/EventsCacheInMemory.js +0 -63
- package/cjs/storages/inMemory/ImpressionCountsCacheInMemory.js +0 -65
- package/cjs/storages/inMemory/ImpressionsCacheInMemory.js +0 -51
- package/cjs/storages/inMemory/InMemoryStorage.js +0 -46
- package/cjs/storages/inMemory/InMemoryStorageCS.js +0 -63
- package/cjs/storages/inMemory/MySegmentsCacheInMemory.js +0 -46
- package/cjs/storages/inMemory/RBSegmentsCacheInMemory.js +0 -61
- package/cjs/storages/inMemory/SegmentsCacheInMemory.js +0 -61
- package/cjs/storages/inMemory/SplitsCacheInMemory.js +0 -121
- package/cjs/storages/inMemory/TelemetryCacheInMemory.js +0 -207
- package/cjs/storages/inMemory/UniqueKeysCacheInMemory.js +0 -72
- package/cjs/storages/inMemory/UniqueKeysCacheInMemoryCS.js +0 -71
- package/cjs/storages/inRedis/EventsCacheInRedis.js +0 -60
- package/cjs/storages/inRedis/ImpressionCountsCacheInRedis.js +0 -85
- package/cjs/storages/inRedis/ImpressionsCacheInRedis.js +0 -45
- package/cjs/storages/inRedis/RBSegmentsCacheInRedis.js +0 -64
- package/cjs/storages/inRedis/RedisAdapter.js +0 -195
- package/cjs/storages/inRedis/SegmentsCacheInRedis.js +0 -57
- package/cjs/storages/inRedis/SplitsCacheInRedis.js +0 -243
- package/cjs/storages/inRedis/TelemetryCacheInRedis.js +0 -124
- package/cjs/storages/inRedis/UniqueKeysCacheInRedis.js +0 -69
- package/cjs/storages/inRedis/constants.js +0 -7
- package/cjs/storages/inRedis/index.js +0 -73
- package/cjs/storages/pluggable/EventsCachePluggable.js +0 -64
- package/cjs/storages/pluggable/ImpressionCountsCachePluggable.js +0 -81
- package/cjs/storages/pluggable/ImpressionsCachePluggable.js +0 -48
- package/cjs/storages/pluggable/RBSegmentsCachePluggable.js +0 -64
- package/cjs/storages/pluggable/SegmentsCachePluggable.js +0 -80
- package/cjs/storages/pluggable/SplitsCachePluggable.js +0 -212
- package/cjs/storages/pluggable/TelemetryCachePluggable.js +0 -141
- package/cjs/storages/pluggable/UniqueKeysCachePluggable.js +0 -62
- package/cjs/storages/pluggable/constants.js +0 -4
- package/cjs/storages/pluggable/inMemoryWrapper.js +0 -141
- package/cjs/storages/pluggable/index.js +0 -135
- package/cjs/storages/pluggable/wrapperAdapter.js +0 -53
- package/cjs/storages/types.js +0 -2
- package/cjs/storages/utils.js +0 -74
- package/cjs/sync/offline/LocalhostFromObject.js +0 -8
- package/cjs/sync/offline/splitsParser/parseCondition.js +0 -55
- package/cjs/sync/offline/splitsParser/splitsParserFromSettings.js +0 -62
- package/cjs/sync/offline/splitsParser/types.js +0 -2
- package/cjs/sync/offline/syncManagerOffline.js +0 -52
- package/cjs/sync/offline/syncTasks/fromObjectSyncTask.js +0 -71
- package/cjs/sync/polling/fetchers/mySegmentsFetcher.js +0 -18
- package/cjs/sync/polling/fetchers/segmentChangesFetcher.js +0 -34
- package/cjs/sync/polling/fetchers/splitChangesFetcher.js +0 -68
- package/cjs/sync/polling/fetchers/types.js +0 -2
- package/cjs/sync/polling/pollingManagerCS.js +0 -100
- package/cjs/sync/polling/pollingManagerSS.js +0 -49
- package/cjs/sync/polling/syncTasks/mySegmentsSyncTask.js +0 -13
- package/cjs/sync/polling/syncTasks/segmentsSyncTask.js +0 -13
- package/cjs/sync/polling/syncTasks/splitsSyncTask.js +0 -13
- package/cjs/sync/polling/types.js +0 -2
- package/cjs/sync/polling/updaters/mySegmentsUpdater.js +0 -83
- package/cjs/sync/polling/updaters/segmentChangesUpdater.js +0 -80
- package/cjs/sync/polling/updaters/splitChangesUpdater.js +0 -190
- package/cjs/sync/streaming/AuthClient/index.js +0 -43
- package/cjs/sync/streaming/AuthClient/types.js +0 -2
- package/cjs/sync/streaming/SSEClient/index.js +0 -86
- package/cjs/sync/streaming/SSEClient/types.js +0 -2
- package/cjs/sync/streaming/SSEHandler/NotificationKeeper.js +0 -98
- package/cjs/sync/streaming/SSEHandler/NotificationParser.js +0 -41
- package/cjs/sync/streaming/SSEHandler/index.js +0 -97
- package/cjs/sync/streaming/SSEHandler/types.js +0 -16
- package/cjs/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.js +0 -124
- package/cjs/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.js +0 -92
- package/cjs/sync/streaming/UpdateWorkers/SplitsUpdateWorker.js +0 -136
- package/cjs/sync/streaming/UpdateWorkers/constants.js +0 -6
- package/cjs/sync/streaming/UpdateWorkers/types.js +0 -2
- package/cjs/sync/streaming/constants.js +0 -43
- package/cjs/sync/streaming/parseUtils.js +0 -98
- package/cjs/sync/streaming/pushManager.js +0 -317
- package/cjs/sync/streaming/types.js +0 -2
- package/cjs/sync/submitters/eventsSubmitter.js +0 -28
- package/cjs/sync/submitters/impressionCountsSubmitter.js +0 -36
- package/cjs/sync/submitters/impressionsSubmitter.js +0 -54
- package/cjs/sync/submitters/submitter.js +0 -66
- package/cjs/sync/submitters/submitterManager.js +0 -46
- package/cjs/sync/submitters/telemetrySubmitter.js +0 -125
- package/cjs/sync/submitters/types.js +0 -2
- package/cjs/sync/submitters/uniqueKeysSubmitter.js +0 -27
- package/cjs/sync/syncManagerOnline.js +0 -176
- package/cjs/sync/syncTask.js +0 -84
- package/cjs/sync/types.js +0 -2
- package/cjs/trackers/eventTracker.js +0 -62
- package/cjs/trackers/impressionObserver/ImpressionObserver.js +0 -18
- package/cjs/trackers/impressionObserver/buildKey.js +0 -7
- package/cjs/trackers/impressionObserver/impressionObserverCS.js +0 -15
- package/cjs/trackers/impressionObserver/impressionObserverSS.js +0 -15
- package/cjs/trackers/impressionObserver/types.js +0 -2
- package/cjs/trackers/impressionsTracker.js +0 -78
- package/cjs/trackers/strategy/strategyDebug.js +0 -20
- package/cjs/trackers/strategy/strategyNone.js +0 -24
- package/cjs/trackers/strategy/strategyOptimized.js +0 -28
- package/cjs/trackers/telemetryTracker.js +0 -75
- package/cjs/trackers/types.js +0 -2
- package/cjs/trackers/uniqueKeysTracker.js +0 -40
- package/cjs/types.js +0 -2
- package/cjs/utils/Backoff.js +0 -41
- package/cjs/utils/LRUCache/LinkedList.js +0 -114
- package/cjs/utils/LRUCache/index.js +0 -42
- package/cjs/utils/MinEventEmitter.js +0 -100
- package/cjs/utils/Semver.js +0 -103
- package/cjs/utils/base64/index.js +0 -75
- package/cjs/utils/constants/index.js +0 -100
- package/cjs/utils/decompress/index.js +0 -427
- package/cjs/utils/env/isLocalStorageAvailable.js +0 -39
- package/cjs/utils/env/isNode.js +0 -9
- package/cjs/utils/inputValidation/apiKey.js +0 -54
- package/cjs/utils/inputValidation/attribute.js +0 -20
- package/cjs/utils/inputValidation/attributes.js +0 -25
- package/cjs/utils/inputValidation/event.js +0 -28
- package/cjs/utils/inputValidation/eventProperties.js +0 -74
- package/cjs/utils/inputValidation/eventValue.js +0 -12
- package/cjs/utils/inputValidation/index.js +0 -34
- package/cjs/utils/inputValidation/isOperational.js +0 -18
- package/cjs/utils/inputValidation/key.js +0 -51
- package/cjs/utils/inputValidation/preloadedData.js +0 -59
- package/cjs/utils/inputValidation/split.js +0 -30
- package/cjs/utils/inputValidation/splitExistence.js +0 -19
- package/cjs/utils/inputValidation/splits.js +0 -25
- package/cjs/utils/inputValidation/trafficType.js +0 -29
- package/cjs/utils/inputValidation/trafficTypeExistence.js +0 -31
- package/cjs/utils/jwt/index.js +0 -17
- package/cjs/utils/jwt/types.js +0 -2
- package/cjs/utils/key/index.js +0 -36
- package/cjs/utils/labels/index.js +0 -12
- package/cjs/utils/lang/binarySearch.js +0 -42
- package/cjs/utils/lang/getFnName.js +0 -12
- package/cjs/utils/lang/getGlobal.js +0 -18
- package/cjs/utils/lang/index.js +0 -281
- package/cjs/utils/lang/objectAssign.js +0 -20
- package/cjs/utils/lang/sets.js +0 -23
- package/cjs/utils/murmur3/common.js +0 -46
- package/cjs/utils/murmur3/legacy.js +0 -44
- package/cjs/utils/murmur3/murmur3.js +0 -62
- package/cjs/utils/murmur3/murmur3_128.js +0 -219
- package/cjs/utils/murmur3/murmur3_128_x86.js +0 -154
- package/cjs/utils/murmur3/murmur3_64.js +0 -36
- package/cjs/utils/murmur3/utfx.js +0 -108
- package/cjs/utils/promise/thenable.js +0 -8
- package/cjs/utils/promise/timeout.js +0 -20
- package/cjs/utils/promise/wrapper.js +0 -58
- package/cjs/utils/settingsValidation/consent.js +0 -16
- package/cjs/utils/settingsValidation/impressionsMode.js +0 -14
- package/cjs/utils/settingsValidation/index.js +0 -184
- package/cjs/utils/settingsValidation/integrations/common.js +0 -27
- package/cjs/utils/settingsValidation/integrations/configurable.js +0 -18
- package/cjs/utils/settingsValidation/integrations/pluggable.js +0 -15
- package/cjs/utils/settingsValidation/logger/builtinLogger.js +0 -46
- package/cjs/utils/settingsValidation/logger/commons.js +0 -28
- package/cjs/utils/settingsValidation/logger/pluggableLogger.js +0 -32
- package/cjs/utils/settingsValidation/mode.js +0 -20
- package/cjs/utils/settingsValidation/runtime.js +0 -11
- package/cjs/utils/settingsValidation/splitFilters.js +0 -188
- package/cjs/utils/settingsValidation/storage/storageCS.js +0 -49
- package/cjs/utils/settingsValidation/types.js +0 -2
- package/cjs/utils/settingsValidation/url.js +0 -31
- package/cjs/utils/time/index.js +0 -11
- package/cjs/utils/timeTracker/now/browser.js +0 -15
- package/cjs/utils/timeTracker/now/node.js +0 -9
- package/cjs/utils/timeTracker/timer.js +0 -10
- package/esm/consent/index.js +0 -6
- package/esm/consent/sdkUserConsent.js +0 -56
- package/esm/dtos/types.js +0 -1
- package/esm/evaluator/Engine.js +0 -54
- package/esm/evaluator/combiners/and.js +0 -21
- package/esm/evaluator/combiners/ifelseif.js +0 -44
- package/esm/evaluator/condition/engineUtils.js +0 -24
- package/esm/evaluator/condition/index.js +0 -37
- package/esm/evaluator/convertions/index.js +0 -6
- package/esm/evaluator/index.js +0 -128
- package/esm/evaluator/matchers/all.js +0 -5
- package/esm/evaluator/matchers/between.js +0 -6
- package/esm/evaluator/matchers/boolean.js +0 -6
- package/esm/evaluator/matchers/cont_all.js +0 -19
- package/esm/evaluator/matchers/cont_any.js +0 -14
- package/esm/evaluator/matchers/cont_str.js +0 -7
- package/esm/evaluator/matchers/dependency.js +0 -24
- package/esm/evaluator/matchers/eq.js +0 -6
- package/esm/evaluator/matchers/eq_set.js +0 -16
- package/esm/evaluator/matchers/ew.js +0 -7
- package/esm/evaluator/matchers/gte.js +0 -6
- package/esm/evaluator/matchers/index.js +0 -62
- package/esm/evaluator/matchers/large_segment.js +0 -6
- package/esm/evaluator/matchers/lte.js +0 -6
- package/esm/evaluator/matchers/matcherTypes.js +0 -42
- package/esm/evaluator/matchers/part_of.js +0 -16
- package/esm/evaluator/matchers/prerequisites.js +0 -18
- package/esm/evaluator/matchers/rbsegment.js +0 -52
- package/esm/evaluator/matchers/segment.js +0 -6
- package/esm/evaluator/matchers/semver_between.js +0 -10
- package/esm/evaluator/matchers/semver_eq.js +0 -9
- package/esm/evaluator/matchers/semver_gte.js +0 -9
- package/esm/evaluator/matchers/semver_inlist.js +0 -12
- package/esm/evaluator/matchers/semver_lte.js +0 -9
- package/esm/evaluator/matchers/string.js +0 -7
- package/esm/evaluator/matchers/sw.js +0 -7
- package/esm/evaluator/matchers/whitelist.js +0 -7
- package/esm/evaluator/matchersTransform/index.js +0 -100
- package/esm/evaluator/matchersTransform/segment.js +0 -8
- package/esm/evaluator/matchersTransform/unaryNumeric.js +0 -6
- package/esm/evaluator/matchersTransform/whitelist.js +0 -6
- package/esm/evaluator/parser/index.js +0 -57
- package/esm/evaluator/treatments/index.js +0 -39
- package/esm/evaluator/types.js +0 -1
- package/esm/evaluator/value/index.js +0 -33
- package/esm/evaluator/value/sanitize.js +0 -90
- package/esm/integrations/pluggable.js +0 -31
- package/esm/integrations/types.js +0 -1
- package/esm/listeners/browser.js +0 -118
- package/esm/listeners/node.js +0 -65
- package/esm/listeners/types.js +0 -1
- package/esm/logger/browser/DebugLogger.js +0 -5
- package/esm/logger/browser/ErrorLogger.js +0 -5
- package/esm/logger/browser/InfoLogger.js +0 -5
- package/esm/logger/browser/WarnLogger.js +0 -5
- package/esm/logger/constants.js +0 -135
- package/esm/logger/index.js +0 -95
- package/esm/logger/messages/debug.js +0 -32
- package/esm/logger/messages/error.js +0 -38
- package/esm/logger/messages/info.js +0 -33
- package/esm/logger/messages/warn.js +0 -38
- package/esm/logger/sdkLogger.js +0 -41
- package/esm/logger/types.js +0 -1
- package/esm/readiness/constants.js +0 -10
- package/esm/readiness/readinessManager.js +0 -150
- package/esm/readiness/sdkReadinessManager.js +0 -100
- package/esm/readiness/types.js +0 -1
- package/esm/sdkClient/client.js +0 -179
- package/esm/sdkClient/clientAttributesDecoration.js +0 -118
- package/esm/sdkClient/clientCS.js +0 -26
- package/esm/sdkClient/clientInputValidation.js +0 -143
- package/esm/sdkClient/identity.js +0 -3
- package/esm/sdkClient/sdkClient.js +0 -60
- package/esm/sdkClient/sdkClientMethod.js +0 -18
- package/esm/sdkClient/sdkClientMethodCS.js +0 -62
- package/esm/sdkFactory/index.js +0 -104
- package/esm/sdkFactory/types.js +0 -1
- package/esm/sdkManager/index.js +0 -92
- package/esm/services/decorateHeaders.js +0 -35
- package/esm/services/splitApi.js +0 -127
- package/esm/services/splitHttpClient.js +0 -78
- package/esm/services/types.js +0 -1
- package/esm/storages/AbstractMySegmentsCacheSync.js +0 -57
- package/esm/storages/AbstractSplitsCacheAsync.js +0 -48
- package/esm/storages/AbstractSplitsCacheSync.js +0 -70
- package/esm/storages/KeyBuilder.js +0 -63
- package/esm/storages/KeyBuilderCS.js +0 -61
- package/esm/storages/KeyBuilderSS.js +0 -57
- package/esm/storages/dataLoader.js +0 -46
- package/esm/storages/findLatencyIndex.js +0 -14
- package/esm/storages/inLocalStorage/MySegmentsCacheInLocal.js +0 -78
- package/esm/storages/inLocalStorage/RBSegmentsCacheInLocal.js +0 -114
- package/esm/storages/inLocalStorage/SplitsCacheInLocal.js +0 -201
- package/esm/storages/inLocalStorage/constants.js +0 -2
- package/esm/storages/inLocalStorage/index.js +0 -87
- package/esm/storages/inLocalStorage/storageAdapter.js +0 -50
- package/esm/storages/inLocalStorage/validateCache.js +0 -81
- package/esm/storages/inMemory/AttributesCacheInMemory.js +0 -67
- package/esm/storages/inMemory/EventsCacheInMemory.js +0 -60
- package/esm/storages/inMemory/ImpressionCountsCacheInMemory.js +0 -62
- package/esm/storages/inMemory/ImpressionsCacheInMemory.js +0 -48
- package/esm/storages/inMemory/InMemoryStorage.js +0 -42
- package/esm/storages/inMemory/InMemoryStorageCS.js +0 -59
- package/esm/storages/inMemory/MySegmentsCacheInMemory.js +0 -43
- package/esm/storages/inMemory/RBSegmentsCacheInMemory.js +0 -58
- package/esm/storages/inMemory/SegmentsCacheInMemory.js +0 -58
- package/esm/storages/inMemory/SplitsCacheInMemory.js +0 -118
- package/esm/storages/inMemory/TelemetryCacheInMemory.js +0 -202
- package/esm/storages/inMemory/UniqueKeysCacheInMemory.js +0 -68
- package/esm/storages/inMemory/UniqueKeysCacheInMemoryCS.js +0 -68
- package/esm/storages/inRedis/EventsCacheInRedis.js +0 -57
- package/esm/storages/inRedis/ImpressionCountsCacheInRedis.js +0 -82
- package/esm/storages/inRedis/ImpressionsCacheInRedis.js +0 -42
- package/esm/storages/inRedis/RBSegmentsCacheInRedis.js +0 -61
- package/esm/storages/inRedis/RedisAdapter.js +0 -192
- package/esm/storages/inRedis/SegmentsCacheInRedis.js +0 -54
- package/esm/storages/inRedis/SplitsCacheInRedis.js +0 -240
- package/esm/storages/inRedis/TelemetryCacheInRedis.js +0 -121
- package/esm/storages/inRedis/UniqueKeysCacheInRedis.js +0 -66
- package/esm/storages/inRedis/constants.js +0 -4
- package/esm/storages/inRedis/index.js +0 -69
- package/esm/storages/pluggable/EventsCachePluggable.js +0 -61
- package/esm/storages/pluggable/ImpressionCountsCachePluggable.js +0 -78
- package/esm/storages/pluggable/ImpressionsCachePluggable.js +0 -45
- package/esm/storages/pluggable/RBSegmentsCachePluggable.js +0 -61
- package/esm/storages/pluggable/SegmentsCachePluggable.js +0 -77
- package/esm/storages/pluggable/SplitsCachePluggable.js +0 -209
- package/esm/storages/pluggable/TelemetryCachePluggable.js +0 -138
- package/esm/storages/pluggable/UniqueKeysCachePluggable.js +0 -59
- package/esm/storages/pluggable/constants.js +0 -1
- package/esm/storages/pluggable/inMemoryWrapper.js +0 -137
- package/esm/storages/pluggable/index.js +0 -131
- package/esm/storages/pluggable/wrapperAdapter.js +0 -49
- package/esm/storages/types.js +0 -1
- package/esm/storages/utils.js +0 -66
- package/esm/sync/offline/LocalhostFromObject.js +0 -5
- package/esm/sync/offline/splitsParser/parseCondition.js +0 -51
- package/esm/sync/offline/splitsParser/splitsParserFromSettings.js +0 -58
- package/esm/sync/offline/splitsParser/types.js +0 -1
- package/esm/sync/offline/syncManagerOffline.js +0 -48
- package/esm/sync/offline/syncTasks/fromObjectSyncTask.js +0 -66
- package/esm/sync/polling/fetchers/mySegmentsFetcher.js +0 -14
- package/esm/sync/polling/fetchers/segmentChangesFetcher.js +0 -30
- package/esm/sync/polling/fetchers/splitChangesFetcher.js +0 -64
- package/esm/sync/polling/fetchers/types.js +0 -1
- package/esm/sync/polling/pollingManagerCS.js +0 -96
- package/esm/sync/polling/pollingManagerSS.js +0 -45
- package/esm/sync/polling/syncTasks/mySegmentsSyncTask.js +0 -9
- package/esm/sync/polling/syncTasks/segmentsSyncTask.js +0 -9
- package/esm/sync/polling/syncTasks/splitsSyncTask.js +0 -9
- package/esm/sync/polling/types.js +0 -1
- package/esm/sync/polling/updaters/mySegmentsUpdater.js +0 -79
- package/esm/sync/polling/updaters/segmentChangesUpdater.js +0 -76
- package/esm/sync/polling/updaters/splitChangesUpdater.js +0 -184
- package/esm/sync/streaming/AuthClient/index.js +0 -38
- package/esm/sync/streaming/AuthClient/types.js +0 -1
- package/esm/sync/streaming/SSEClient/index.js +0 -83
- package/esm/sync/streaming/SSEClient/types.js +0 -1
- package/esm/sync/streaming/SSEHandler/NotificationKeeper.js +0 -94
- package/esm/sync/streaming/SSEHandler/NotificationParser.js +0 -36
- package/esm/sync/streaming/SSEHandler/index.js +0 -93
- package/esm/sync/streaming/SSEHandler/types.js +0 -13
- package/esm/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.js +0 -120
- package/esm/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.js +0 -88
- package/esm/sync/streaming/UpdateWorkers/SplitsUpdateWorker.js +0 -132
- package/esm/sync/streaming/UpdateWorkers/constants.js +0 -3
- package/esm/sync/streaming/UpdateWorkers/types.js +0 -1
- package/esm/sync/streaming/constants.js +0 -40
- package/esm/sync/streaming/parseUtils.js +0 -90
- package/esm/sync/streaming/pushManager.js +0 -313
- package/esm/sync/streaming/types.js +0 -1
- package/esm/sync/submitters/eventsSubmitter.js +0 -24
- package/esm/sync/submitters/impressionCountsSubmitter.js +0 -31
- package/esm/sync/submitters/impressionsSubmitter.js +0 -49
- package/esm/sync/submitters/submitter.js +0 -61
- package/esm/sync/submitters/submitterManager.js +0 -42
- package/esm/sync/submitters/telemetrySubmitter.js +0 -119
- package/esm/sync/submitters/types.js +0 -1
- package/esm/sync/submitters/uniqueKeysSubmitter.js +0 -23
- package/esm/sync/syncManagerOnline.js +0 -172
- package/esm/sync/syncTask.js +0 -80
- package/esm/sync/types.js +0 -1
- package/esm/trackers/eventTracker.js +0 -58
- package/esm/trackers/impressionObserver/ImpressionObserver.js +0 -15
- package/esm/trackers/impressionObserver/buildKey.js +0 -3
- package/esm/trackers/impressionObserver/impressionObserverCS.js +0 -10
- package/esm/trackers/impressionObserver/impressionObserverSS.js +0 -10
- package/esm/trackers/impressionObserver/types.js +0 -1
- package/esm/trackers/impressionsTracker.js +0 -74
- package/esm/trackers/strategy/strategyDebug.js +0 -16
- package/esm/trackers/strategy/strategyNone.js +0 -20
- package/esm/trackers/strategy/strategyOptimized.js +0 -24
- package/esm/trackers/telemetryTracker.js +0 -71
- package/esm/trackers/types.js +0 -1
- package/esm/trackers/uniqueKeysTracker.js +0 -36
- package/esm/types.js +0 -1
- package/esm/utils/Backoff.js +0 -38
- package/esm/utils/LRUCache/LinkedList.js +0 -111
- package/esm/utils/LRUCache/index.js +0 -39
- package/esm/utils/MinEventEmitter.js +0 -97
- package/esm/utils/Semver.js +0 -100
- package/esm/utils/base64/index.js +0 -70
- package/esm/utils/constants/index.js +0 -96
- package/esm/utils/decompress/index.js +0 -424
- package/esm/utils/env/isLocalStorageAvailable.js +0 -33
- package/esm/utils/env/isNode.js +0 -6
- package/esm/utils/inputValidation/apiKey.js +0 -48
- package/esm/utils/inputValidation/attribute.js +0 -16
- package/esm/utils/inputValidation/attributes.js +0 -20
- package/esm/utils/inputValidation/event.js +0 -24
- package/esm/utils/inputValidation/eventProperties.js +0 -69
- package/esm/utils/inputValidation/eventValue.js +0 -8
- package/esm/utils/inputValidation/index.js +0 -14
- package/esm/utils/inputValidation/isOperational.js +0 -13
- package/esm/utils/inputValidation/key.js +0 -47
- package/esm/utils/inputValidation/preloadedData.js +0 -55
- package/esm/utils/inputValidation/split.js +0 -26
- package/esm/utils/inputValidation/splitExistence.js +0 -15
- package/esm/utils/inputValidation/splits.js +0 -21
- package/esm/utils/inputValidation/trafficType.js +0 -25
- package/esm/utils/inputValidation/trafficTypeExistence.js +0 -27
- package/esm/utils/jwt/index.js +0 -13
- package/esm/utils/jwt/types.js +0 -1
- package/esm/utils/key/index.js +0 -30
- package/esm/utils/labels/index.js +0 -9
- package/esm/utils/lang/binarySearch.js +0 -38
- package/esm/utils/lang/getFnName.js +0 -8
- package/esm/utils/lang/getGlobal.js +0 -14
- package/esm/utils/lang/index.js +0 -258
- package/esm/utils/lang/objectAssign.js +0 -17
- package/esm/utils/lang/sets.js +0 -17
- package/esm/utils/murmur3/common.js +0 -39
- package/esm/utils/murmur3/legacy.js +0 -39
- package/esm/utils/murmur3/murmur3.js +0 -57
- package/esm/utils/murmur3/murmur3_128.js +0 -215
- package/esm/utils/murmur3/murmur3_128_x86.js +0 -150
- package/esm/utils/murmur3/murmur3_64.js +0 -32
- package/esm/utils/murmur3/utfx.js +0 -102
- package/esm/utils/promise/thenable.js +0 -4
- package/esm/utils/promise/timeout.js +0 -16
- package/esm/utils/promise/wrapper.js +0 -54
- package/esm/utils/settingsValidation/consent.js +0 -12
- package/esm/utils/settingsValidation/impressionsMode.js +0 -10
- package/esm/utils/settingsValidation/index.js +0 -180
- package/esm/utils/settingsValidation/integrations/common.js +0 -23
- package/esm/utils/settingsValidation/integrations/configurable.js +0 -14
- package/esm/utils/settingsValidation/integrations/pluggable.js +0 -11
- package/esm/utils/settingsValidation/logger/builtinLogger.js +0 -42
- package/esm/utils/settingsValidation/logger/commons.js +0 -24
- package/esm/utils/settingsValidation/logger/pluggableLogger.js +0 -28
- package/esm/utils/settingsValidation/mode.js +0 -15
- package/esm/utils/settingsValidation/runtime.js +0 -7
- package/esm/utils/settingsValidation/splitFilters.js +0 -183
- package/esm/utils/settingsValidation/storage/storageCS.js +0 -44
- package/esm/utils/settingsValidation/types.js +0 -1
- package/esm/utils/settingsValidation/url.js +0 -27
- package/esm/utils/time/index.js +0 -7
- package/esm/utils/timeTracker/now/browser.js +0 -12
- package/esm/utils/timeTracker/now/node.js +0 -5
- package/esm/utils/timeTracker/timer.js +0 -6
- package/src/consent/index.ts +0 -8
- package/src/consent/sdkUserConsent.ts +0 -60
- package/src/dtos/types.ts +0 -294
- package/src/evaluator/Engine.ts +0 -73
- package/src/evaluator/combiners/and.ts +0 -29
- package/src/evaluator/combiners/ifelseif.ts +0 -56
- package/src/evaluator/condition/engineUtils.ts +0 -31
- package/src/evaluator/condition/index.ts +0 -50
- package/src/evaluator/convertions/index.ts +0 -7
- package/src/evaluator/index.ts +0 -199
- package/src/evaluator/matchers/all.ts +0 -6
- package/src/evaluator/matchers/between.ts +0 -10
- package/src/evaluator/matchers/boolean.ts +0 -8
- package/src/evaluator/matchers/cont_all.ts +0 -18
- package/src/evaluator/matchers/cont_any.ts +0 -13
- package/src/evaluator/matchers/cont_str.ts +0 -9
- package/src/evaluator/matchers/dependency.ts +0 -32
- package/src/evaluator/matchers/eq.ts +0 -8
- package/src/evaluator/matchers/eq_set.ts +0 -15
- package/src/evaluator/matchers/ew.ts +0 -9
- package/src/evaluator/matchers/gte.ts +0 -8
- package/src/evaluator/matchers/index.ts +0 -70
- package/src/evaluator/matchers/large_segment.ts +0 -11
- package/src/evaluator/matchers/lte.ts +0 -8
- package/src/evaluator/matchers/matcherTypes.ts +0 -42
- package/src/evaluator/matchers/part_of.ts +0 -15
- package/src/evaluator/matchers/prerequisites.ts +0 -24
- package/src/evaluator/matchers/rbsegment.ts +0 -74
- package/src/evaluator/matchers/segment.ts +0 -11
- package/src/evaluator/matchers/semver_between.ts +0 -15
- package/src/evaluator/matchers/semver_eq.ts +0 -13
- package/src/evaluator/matchers/semver_gte.ts +0 -13
- package/src/evaluator/matchers/semver_inlist.ts +0 -16
- package/src/evaluator/matchers/semver_lte.ts +0 -13
- package/src/evaluator/matchers/string.ts +0 -9
- package/src/evaluator/matchers/sw.ts +0 -9
- package/src/evaluator/matchers/whitelist.ts +0 -9
- package/src/evaluator/matchersTransform/index.ts +0 -118
- package/src/evaluator/matchersTransform/segment.ts +0 -10
- package/src/evaluator/matchersTransform/unaryNumeric.ts +0 -8
- package/src/evaluator/matchersTransform/whitelist.ts +0 -8
- package/src/evaluator/parser/index.ts +0 -82
- package/src/evaluator/treatments/index.ts +0 -53
- package/src/evaluator/types.ts +0 -34
- package/src/evaluator/value/index.ts +0 -37
- package/src/evaluator/value/sanitize.ts +0 -106
- package/src/index.ts +0 -14
- package/src/integrations/pluggable.ts +0 -39
- package/src/integrations/types.ts +0 -21
- package/src/listeners/browser.ts +0 -138
- package/src/listeners/node.ts +0 -81
- package/src/listeners/types.ts +0 -4
- package/src/logger/browser/DebugLogger.ts +0 -6
- package/src/logger/browser/ErrorLogger.ts +0 -6
- package/src/logger/browser/InfoLogger.ts +0 -6
- package/src/logger/browser/WarnLogger.ts +0 -6
- package/src/logger/constants.ts +0 -139
- package/src/logger/index.ts +0 -110
- package/src/logger/messages/debug.ts +0 -33
- package/src/logger/messages/error.ts +0 -39
- package/src/logger/messages/info.ts +0 -36
- package/src/logger/messages/warn.ts +0 -40
- package/src/logger/sdkLogger.ts +0 -46
- package/src/logger/types.ts +0 -21
- package/src/readiness/constants.ts +0 -12
- package/src/readiness/readinessManager.ts +0 -170
- package/src/readiness/sdkReadinessManager.ts +0 -121
- package/src/readiness/types.ts +0 -85
- package/src/sdkClient/client.ts +0 -217
- package/src/sdkClient/clientAttributesDecoration.ts +0 -139
- package/src/sdkClient/clientCS.ts +0 -34
- package/src/sdkClient/clientInputValidation.ts +0 -178
- package/src/sdkClient/identity.ts +0 -5
- package/src/sdkClient/sdkClient.ts +0 -77
- package/src/sdkClient/sdkClientMethod.ts +0 -24
- package/src/sdkClient/sdkClientMethodCS.ts +0 -85
- package/src/sdkFactory/index.ts +0 -131
- package/src/sdkFactory/types.ts +0 -119
- package/src/sdkManager/index.ts +0 -114
- package/src/services/decorateHeaders.ts +0 -37
- package/src/services/splitApi.ts +0 -148
- package/src/services/splitHttpClient.ts +0 -84
- package/src/services/types.ts +0 -86
- package/src/storages/AbstractMySegmentsCacheSync.ts +0 -94
- package/src/storages/AbstractSplitsCacheAsync.ts +0 -63
- package/src/storages/AbstractSplitsCacheSync.ts +0 -94
- package/src/storages/KeyBuilder.ts +0 -81
- package/src/storages/KeyBuilderCS.ts +0 -79
- package/src/storages/KeyBuilderSS.ts +0 -74
- package/src/storages/dataLoader.ts +0 -55
- package/src/storages/findLatencyIndex.ts +0 -16
- package/src/storages/inLocalStorage/MySegmentsCacheInLocal.ts +0 -87
- package/src/storages/inLocalStorage/RBSegmentsCacheInLocal.ts +0 -137
- package/src/storages/inLocalStorage/SplitsCacheInLocal.ts +0 -241
- package/src/storages/inLocalStorage/constants.ts +0 -2
- package/src/storages/inLocalStorage/index.ts +0 -104
- package/src/storages/inLocalStorage/storageAdapter.ts +0 -62
- package/src/storages/inLocalStorage/validateCache.ts +0 -99
- package/src/storages/inMemory/AttributesCacheInMemory.ts +0 -74
- package/src/storages/inMemory/EventsCacheInMemory.ts +0 -76
- package/src/storages/inMemory/ImpressionCountsCacheInMemory.ts +0 -69
- package/src/storages/inMemory/ImpressionsCacheInMemory.ts +0 -58
- package/src/storages/inMemory/InMemoryStorage.ts +0 -50
- package/src/storages/inMemory/InMemoryStorageCS.ts +0 -69
- package/src/storages/inMemory/MySegmentsCacheInMemory.ts +0 -49
- package/src/storages/inMemory/RBSegmentsCacheInMemory.ts +0 -68
- package/src/storages/inMemory/SegmentsCacheInMemory.ts +0 -74
- package/src/storages/inMemory/SplitsCacheInMemory.ts +0 -130
- package/src/storages/inMemory/TelemetryCacheInMemory.ts +0 -263
- package/src/storages/inMemory/UniqueKeysCacheInMemory.ts +0 -79
- package/src/storages/inMemory/UniqueKeysCacheInMemoryCS.ts +0 -80
- package/src/storages/inRedis/EventsCacheInRedis.ts +0 -75
- package/src/storages/inRedis/ImpressionCountsCacheInRedis.ts +0 -95
- package/src/storages/inRedis/ImpressionsCacheInRedis.ts +0 -61
- package/src/storages/inRedis/RBSegmentsCacheInRedis.ts +0 -79
- package/src/storages/inRedis/RedisAdapter.ts +0 -209
- package/src/storages/inRedis/SegmentsCacheInRedis.ts +0 -70
- package/src/storages/inRedis/SplitsCacheInRedis.ts +0 -268
- package/src/storages/inRedis/TelemetryCacheInRedis.ts +0 -144
- package/src/storages/inRedis/UniqueKeysCacheInRedis.ts +0 -75
- package/src/storages/inRedis/constants.ts +0 -4
- package/src/storages/inRedis/index.ts +0 -85
- package/src/storages/package.json +0 -3
- package/src/storages/pluggable/EventsCachePluggable.ts +0 -79
- package/src/storages/pluggable/ImpressionCountsCachePluggable.ts +0 -92
- package/src/storages/pluggable/ImpressionsCachePluggable.ts +0 -63
- package/src/storages/pluggable/RBSegmentsCachePluggable.ts +0 -76
- package/src/storages/pluggable/SegmentsCachePluggable.ts +0 -90
- package/src/storages/pluggable/SplitsCachePluggable.ts +0 -230
- package/src/storages/pluggable/TelemetryCachePluggable.ts +0 -159
- package/src/storages/pluggable/UniqueKeysCachePluggable.ts +0 -67
- package/src/storages/pluggable/constants.ts +0 -1
- package/src/storages/pluggable/inMemoryWrapper.ts +0 -130
- package/src/storages/pluggable/index.ts +0 -152
- package/src/storages/pluggable/wrapperAdapter.ts +0 -58
- package/src/storages/types.ts +0 -538
- package/src/storages/utils.ts +0 -80
- package/src/sync/offline/LocalhostFromObject.ts +0 -6
- package/src/sync/offline/splitsParser/parseCondition.ts +0 -59
- package/src/sync/offline/splitsParser/splitsParserFromSettings.ts +0 -72
- package/src/sync/offline/splitsParser/types.ts +0 -5
- package/src/sync/offline/syncManagerOffline.ts +0 -66
- package/src/sync/offline/syncTasks/fromObjectSyncTask.ts +0 -97
- package/src/sync/polling/fetchers/mySegmentsFetcher.ts +0 -25
- package/src/sync/polling/fetchers/segmentChangesFetcher.ts +0 -41
- package/src/sync/polling/fetchers/splitChangesFetcher.ts +0 -85
- package/src/sync/polling/fetchers/types.ts +0 -25
- package/src/sync/polling/pollingManagerCS.ts +0 -116
- package/src/sync/polling/pollingManagerSS.ts +0 -56
- package/src/sync/polling/syncTasks/mySegmentsSyncTask.ts +0 -34
- package/src/sync/polling/syncTasks/segmentsSyncTask.ts +0 -30
- package/src/sync/polling/syncTasks/splitsSyncTask.ts +0 -35
- package/src/sync/polling/types.ts +0 -33
- package/src/sync/polling/updaters/mySegmentsUpdater.ts +0 -104
- package/src/sync/polling/updaters/segmentChangesUpdater.ts +0 -92
- package/src/sync/polling/updaters/splitChangesUpdater.ts +0 -220
- package/src/sync/streaming/AuthClient/index.ts +0 -42
- package/src/sync/streaming/AuthClient/types.ts +0 -20
- package/src/sync/streaming/SSEClient/index.ts +0 -103
- package/src/sync/streaming/SSEClient/types.ts +0 -13
- package/src/sync/streaming/SSEHandler/NotificationKeeper.ts +0 -107
- package/src/sync/streaming/SSEHandler/NotificationParser.ts +0 -40
- package/src/sync/streaming/SSEHandler/index.ts +0 -105
- package/src/sync/streaming/SSEHandler/types.ts +0 -73
- package/src/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.ts +0 -134
- package/src/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.ts +0 -99
- package/src/sync/streaming/UpdateWorkers/SplitsUpdateWorker.ts +0 -145
- package/src/sync/streaming/UpdateWorkers/constants.ts +0 -3
- package/src/sync/streaming/UpdateWorkers/types.ts +0 -4
- package/src/sync/streaming/constants.ts +0 -44
- package/src/sync/streaming/parseUtils.ts +0 -100
- package/src/sync/streaming/pushManager.ts +0 -358
- package/src/sync/streaming/types.ts +0 -51
- package/src/sync/submitters/eventsSubmitter.ts +0 -35
- package/src/sync/submitters/impressionCountsSubmitter.ts +0 -44
- package/src/sync/submitters/impressionsSubmitter.ts +0 -66
- package/src/sync/submitters/submitter.ts +0 -76
- package/src/sync/submitters/submitterManager.ts +0 -48
- package/src/sync/submitters/telemetrySubmitter.ts +0 -148
- package/src/sync/submitters/types.ts +0 -241
- package/src/sync/submitters/uniqueKeysSubmitter.ts +0 -35
- package/src/sync/syncManagerOnline.ts +0 -195
- package/src/sync/syncTask.ts +0 -83
- package/src/sync/types.ts +0 -48
- package/src/trackers/eventTracker.ts +0 -72
- package/src/trackers/impressionObserver/ImpressionObserver.ts +0 -20
- package/src/trackers/impressionObserver/buildKey.ts +0 -5
- package/src/trackers/impressionObserver/impressionObserverCS.ts +0 -14
- package/src/trackers/impressionObserver/impressionObserverSS.ts +0 -14
- package/src/trackers/impressionObserver/types.ts +0 -5
- package/src/trackers/impressionsTracker.ts +0 -87
- package/src/trackers/strategy/strategyDebug.ts +0 -23
- package/src/trackers/strategy/strategyNone.ts +0 -28
- package/src/trackers/strategy/strategyOptimized.ts +0 -35
- package/src/trackers/telemetryTracker.ts +0 -73
- package/src/trackers/types.ts +0 -86
- package/src/trackers/uniqueKeysTracker.ts +0 -50
- package/src/types.ts +0 -79
- package/src/utils/Backoff.ts +0 -51
- package/src/utils/LRUCache/LinkedList.ts +0 -130
- package/src/utils/LRUCache/index.ts +0 -43
- package/src/utils/MinEventEmitter.ts +0 -102
- package/src/utils/Semver.ts +0 -111
- package/src/utils/base64/index.ts +0 -74
- package/src/utils/constants/index.ts +0 -116
- package/src/utils/decompress/index.ts +0 -429
- package/src/utils/env/isLocalStorageAvailable.ts +0 -32
- package/src/utils/env/isNode.ts +0 -6
- package/src/utils/inputValidation/apiKey.ts +0 -52
- package/src/utils/inputValidation/attribute.ts +0 -21
- package/src/utils/inputValidation/attributes.ts +0 -26
- package/src/utils/inputValidation/event.ts +0 -24
- package/src/utils/inputValidation/eventProperties.ts +0 -78
- package/src/utils/inputValidation/eventValue.ts +0 -11
- package/src/utils/inputValidation/index.ts +0 -14
- package/src/utils/inputValidation/isOperational.ts +0 -17
- package/src/utils/inputValidation/key.ts +0 -51
- package/src/utils/inputValidation/preloadedData.ts +0 -57
- package/src/utils/inputValidation/split.ts +0 -27
- package/src/utils/inputValidation/splitExistence.ts +0 -19
- package/src/utils/inputValidation/splits.ts +0 -21
- package/src/utils/inputValidation/trafficType.ts +0 -27
- package/src/utils/inputValidation/trafficTypeExistence.ts +0 -33
- package/src/utils/jwt/index.ts +0 -16
- package/src/utils/jwt/types.ts +0 -10
- package/src/utils/key/index.ts +0 -34
- package/src/utils/labels/index.ts +0 -9
- package/src/utils/lang/binarySearch.ts +0 -41
- package/src/utils/lang/getFnName.ts +0 -8
- package/src/utils/lang/getGlobal.ts +0 -17
- package/src/utils/lang/index.ts +0 -279
- package/src/utils/lang/objectAssign.ts +0 -25
- package/src/utils/lang/sets.ts +0 -17
- package/src/utils/murmur3/common.ts +0 -54
- package/src/utils/murmur3/legacy.ts +0 -48
- package/src/utils/murmur3/murmur3.ts +0 -74
- package/src/utils/murmur3/murmur3_128.ts +0 -273
- package/src/utils/murmur3/murmur3_128_x86.ts +0 -188
- package/src/utils/murmur3/murmur3_64.ts +0 -36
- package/src/utils/murmur3/utfx.ts +0 -109
- package/src/utils/promise/thenable.ts +0 -4
- package/src/utils/promise/timeout.ts +0 -17
- package/src/utils/promise/wrapper.ts +0 -60
- package/src/utils/settingsValidation/consent.ts +0 -16
- package/src/utils/settingsValidation/impressionsMode.ts +0 -14
- package/src/utils/settingsValidation/index.ts +0 -207
- package/src/utils/settingsValidation/integrations/common.ts +0 -27
- package/src/utils/settingsValidation/integrations/configurable.ts +0 -20
- package/src/utils/settingsValidation/integrations/pluggable.ts +0 -19
- package/src/utils/settingsValidation/logger/builtinLogger.ts +0 -54
- package/src/utils/settingsValidation/logger/commons.ts +0 -24
- package/src/utils/settingsValidation/logger/pluggableLogger.ts +0 -35
- package/src/utils/settingsValidation/mode.ts +0 -17
- package/src/utils/settingsValidation/runtime.ts +0 -9
- package/src/utils/settingsValidation/splitFilters.ts +0 -197
- package/src/utils/settingsValidation/storage/storageCS.ts +0 -52
- package/src/utils/settingsValidation/types.ts +0 -27
- package/src/utils/settingsValidation/url.ts +0 -30
- package/src/utils/time/index.ts +0 -8
- package/src/utils/timeTracker/now/browser.ts +0 -12
- package/src/utils/timeTracker/now/node.ts +0 -6
- package/src/utils/timeTracker/timer.ts +0 -7
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ImpressionsCachePluggable = void 0;
|
|
4
|
-
var utils_1 = require("../utils");
|
|
5
|
-
var ImpressionsCachePluggable = /** @class */ (function () {
|
|
6
|
-
function ImpressionsCachePluggable(log, key, wrapper, metadata) {
|
|
7
|
-
this.log = log;
|
|
8
|
-
this.key = key;
|
|
9
|
-
this.wrapper = wrapper;
|
|
10
|
-
this.metadata = metadata;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Push given impressions to the storage.
|
|
14
|
-
* @param impressions - List of impresions to push.
|
|
15
|
-
* @returns A promise that is resolved if the push operation succeeded
|
|
16
|
-
* or rejected if the wrapper operation fails.
|
|
17
|
-
*/
|
|
18
|
-
ImpressionsCachePluggable.prototype.track = function (impressions) {
|
|
19
|
-
return this.wrapper.pushItems(this.key, (0, utils_1.impressionsToJSON)(impressions, this.metadata));
|
|
20
|
-
};
|
|
21
|
-
/**
|
|
22
|
-
* Returns a promise that resolves with the count of stored impressions, or 0 if there was some error.
|
|
23
|
-
* The promise will never be rejected.
|
|
24
|
-
*/
|
|
25
|
-
ImpressionsCachePluggable.prototype.count = function () {
|
|
26
|
-
return this.wrapper.getItemsCount(this.key).catch(function () { return 0; });
|
|
27
|
-
};
|
|
28
|
-
/**
|
|
29
|
-
* Removes the given number of impressions from the store. If a number is not provided, it deletes all items.
|
|
30
|
-
* The returned promise rejects if the wrapper operation fails.
|
|
31
|
-
*/
|
|
32
|
-
ImpressionsCachePluggable.prototype.drop = function (count) {
|
|
33
|
-
if (!count)
|
|
34
|
-
return this.wrapper.del(this.key);
|
|
35
|
-
return this.wrapper.popItems(this.key, count).then(function () { });
|
|
36
|
-
};
|
|
37
|
-
/**
|
|
38
|
-
* Pop the given number of impressions from the store.
|
|
39
|
-
* The returned promise rejects if the wrapper operation fails.
|
|
40
|
-
*/
|
|
41
|
-
ImpressionsCachePluggable.prototype.popNWithMetadata = function (count) {
|
|
42
|
-
return this.wrapper.popItems(this.key, count).then(function (items) {
|
|
43
|
-
return items.map(function (item) { return JSON.parse(item); });
|
|
44
|
-
});
|
|
45
|
-
};
|
|
46
|
-
return ImpressionsCachePluggable;
|
|
47
|
-
}());
|
|
48
|
-
exports.ImpressionsCachePluggable = ImpressionsCachePluggable;
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RBSegmentsCachePluggable = void 0;
|
|
4
|
-
var lang_1 = require("../../utils/lang");
|
|
5
|
-
var constants_1 = require("./constants");
|
|
6
|
-
var sets_1 = require("../../utils/lang/sets");
|
|
7
|
-
var RBSegmentsCachePluggable = /** @class */ (function () {
|
|
8
|
-
function RBSegmentsCachePluggable(log, keys, wrapper) {
|
|
9
|
-
this.log = log;
|
|
10
|
-
this.keys = keys;
|
|
11
|
-
this.wrapper = wrapper;
|
|
12
|
-
}
|
|
13
|
-
RBSegmentsCachePluggable.prototype.get = function (name) {
|
|
14
|
-
return this.wrapper.get(this.keys.buildRBSegmentKey(name))
|
|
15
|
-
.then(function (maybeRBSegment) { return maybeRBSegment && JSON.parse(maybeRBSegment); });
|
|
16
|
-
};
|
|
17
|
-
RBSegmentsCachePluggable.prototype.getNames = function () {
|
|
18
|
-
var _this = this;
|
|
19
|
-
return this.wrapper.getKeysByPrefix(this.keys.buildRBSegmentKeyPrefix()).then(function (listOfKeys) { return listOfKeys.map(_this.keys.extractKey); });
|
|
20
|
-
};
|
|
21
|
-
RBSegmentsCachePluggable.prototype.contains = function (names) {
|
|
22
|
-
var namesArray = (0, sets_1.setToArray)(names);
|
|
23
|
-
return this.getNames().then(function (namesInStorage) {
|
|
24
|
-
return namesArray.every(function (name) { return namesInStorage.includes(name); });
|
|
25
|
-
});
|
|
26
|
-
};
|
|
27
|
-
RBSegmentsCachePluggable.prototype.update = function (toAdd, toRemove, changeNumber) {
|
|
28
|
-
var _this = this;
|
|
29
|
-
return Promise.all([
|
|
30
|
-
this.setChangeNumber(changeNumber),
|
|
31
|
-
Promise.all(toAdd.map(function (toAdd) {
|
|
32
|
-
var key = _this.keys.buildRBSegmentKey(toAdd.name);
|
|
33
|
-
var stringifiedNewRBSegment = JSON.stringify(toAdd);
|
|
34
|
-
return _this.wrapper.set(key, stringifiedNewRBSegment).then(function () { return true; });
|
|
35
|
-
})),
|
|
36
|
-
Promise.all(toRemove.map(function (toRemove) {
|
|
37
|
-
var key = _this.keys.buildRBSegmentKey(toRemove.name);
|
|
38
|
-
return _this.wrapper.del(key);
|
|
39
|
-
}))
|
|
40
|
-
]).then(function (_a) {
|
|
41
|
-
var added = _a[1], removed = _a[2];
|
|
42
|
-
return added.some(function (result) { return result; }) || removed.some(function (result) { return result; });
|
|
43
|
-
});
|
|
44
|
-
};
|
|
45
|
-
RBSegmentsCachePluggable.prototype.setChangeNumber = function (changeNumber) {
|
|
46
|
-
return this.wrapper.set(this.keys.buildRBSegmentsTillKey(), changeNumber + '');
|
|
47
|
-
};
|
|
48
|
-
RBSegmentsCachePluggable.prototype.getChangeNumber = function () {
|
|
49
|
-
var _this = this;
|
|
50
|
-
return this.wrapper.get(this.keys.buildRBSegmentsTillKey()).then(function (value) {
|
|
51
|
-
var i = parseInt(value, 10);
|
|
52
|
-
return (0, lang_1.isNaNNumber)(i) ? -1 : i;
|
|
53
|
-
}).catch(function (e) {
|
|
54
|
-
_this.log.error(constants_1.LOG_PREFIX + 'Could not retrieve changeNumber from storage. Error: ' + e);
|
|
55
|
-
return -1;
|
|
56
|
-
});
|
|
57
|
-
};
|
|
58
|
-
// @TODO implement if required by DataLoader or producer mode
|
|
59
|
-
RBSegmentsCachePluggable.prototype.clear = function () {
|
|
60
|
-
return Promise.resolve();
|
|
61
|
-
};
|
|
62
|
-
return RBSegmentsCachePluggable;
|
|
63
|
-
}());
|
|
64
|
-
exports.RBSegmentsCachePluggable = RBSegmentsCachePluggable;
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SegmentsCachePluggable = void 0;
|
|
4
|
-
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
5
|
-
/* eslint-disable no-unused-vars */
|
|
6
|
-
var lang_1 = require("../../utils/lang");
|
|
7
|
-
var constants_1 = require("./constants");
|
|
8
|
-
/**
|
|
9
|
-
* ISegmentsCacheAsync implementation for pluggable storages.
|
|
10
|
-
*/
|
|
11
|
-
var SegmentsCachePluggable = /** @class */ (function () {
|
|
12
|
-
function SegmentsCachePluggable(log, keys, wrapper) {
|
|
13
|
-
this.log = log;
|
|
14
|
-
this.keys = keys;
|
|
15
|
-
this.wrapper = wrapper;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Update the given segment `name` with the lists of `addedKeys`, `removedKeys` and `changeNumber`.
|
|
19
|
-
* The returned promise is resolved if the operation success, with `true` if the segment was updated (i.e., some key was added or removed),
|
|
20
|
-
* or rejected if it fails (e.g., wrapper operation fails).
|
|
21
|
-
*/
|
|
22
|
-
SegmentsCachePluggable.prototype.update = function (name, addedKeys, removedKeys, changeNumber) {
|
|
23
|
-
var segmentKey = this.keys.buildSegmentNameKey(name);
|
|
24
|
-
return Promise.all([
|
|
25
|
-
addedKeys.length && this.wrapper.addItems(segmentKey, addedKeys),
|
|
26
|
-
removedKeys.length && this.wrapper.removeItems(segmentKey, removedKeys),
|
|
27
|
-
this.wrapper.set(this.keys.buildSegmentTillKey(name), changeNumber + '')
|
|
28
|
-
]).then(function () {
|
|
29
|
-
return addedKeys.length > 0 || removedKeys.length > 0;
|
|
30
|
-
});
|
|
31
|
-
};
|
|
32
|
-
/**
|
|
33
|
-
* Returns a promise that resolves with a boolean value indicating if `key` is part of `name` segment.
|
|
34
|
-
* Promise can be rejected if wrapper operation fails.
|
|
35
|
-
*/
|
|
36
|
-
SegmentsCachePluggable.prototype.isInSegment = function (name, key) {
|
|
37
|
-
return this.wrapper.itemContains(this.keys.buildSegmentNameKey(name), key);
|
|
38
|
-
};
|
|
39
|
-
/**
|
|
40
|
-
* Get till number or -1 if it's not defined.
|
|
41
|
-
* The returned promise is resolved with the changeNumber or -1 if it doesn't exist or a wrapper operation fails.
|
|
42
|
-
* The promise will never be rejected.
|
|
43
|
-
*/
|
|
44
|
-
SegmentsCachePluggable.prototype.getChangeNumber = function (name) {
|
|
45
|
-
var _this = this;
|
|
46
|
-
return this.wrapper.get(this.keys.buildSegmentTillKey(name)).then(function (value) {
|
|
47
|
-
var i = parseInt(value, 10);
|
|
48
|
-
return (0, lang_1.isNaNNumber)(i) ? undefined : i;
|
|
49
|
-
}).catch(function (e) {
|
|
50
|
-
_this.log.error(constants_1.LOG_PREFIX + 'Could not retrieve changeNumber from segments storage. Error: ' + e);
|
|
51
|
-
return undefined;
|
|
52
|
-
});
|
|
53
|
-
};
|
|
54
|
-
/**
|
|
55
|
-
* Add the given segment names to the set of registered segments.
|
|
56
|
-
* The returned promise is resolved when the operation success,
|
|
57
|
-
* or rejected if it fails (e.g., wrapper operation fails).
|
|
58
|
-
*/
|
|
59
|
-
SegmentsCachePluggable.prototype.registerSegments = function (segments) {
|
|
60
|
-
if (segments.length) {
|
|
61
|
-
return this.wrapper.addItems(this.keys.buildRegisteredSegmentsKey(), segments);
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
return Promise.resolve();
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
/**
|
|
68
|
-
* Returns a promise that resolves with the set of registered segments in a list,
|
|
69
|
-
* or rejected if it fails (e.g., wrapper operation fails).
|
|
70
|
-
*/
|
|
71
|
-
SegmentsCachePluggable.prototype.getRegisteredSegments = function () {
|
|
72
|
-
return this.wrapper.getItems(this.keys.buildRegisteredSegmentsKey());
|
|
73
|
-
};
|
|
74
|
-
// @TODO implement if required by DataLoader or Producer mode
|
|
75
|
-
SegmentsCachePluggable.prototype.clear = function () {
|
|
76
|
-
return Promise.resolve(true);
|
|
77
|
-
};
|
|
78
|
-
return SegmentsCachePluggable;
|
|
79
|
-
}());
|
|
80
|
-
exports.SegmentsCachePluggable = SegmentsCachePluggable;
|
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SplitsCachePluggable = void 0;
|
|
4
|
-
var tslib_1 = require("tslib");
|
|
5
|
-
var lang_1 = require("../../utils/lang");
|
|
6
|
-
var constants_1 = require("./constants");
|
|
7
|
-
var AbstractSplitsCacheAsync_1 = require("../AbstractSplitsCacheAsync");
|
|
8
|
-
var sets_1 = require("../../utils/lang/sets");
|
|
9
|
-
/**
|
|
10
|
-
* ISplitsCacheAsync implementation for pluggable storages.
|
|
11
|
-
*/
|
|
12
|
-
var SplitsCachePluggable = /** @class */ (function (_super) {
|
|
13
|
-
(0, tslib_1.__extends)(SplitsCachePluggable, _super);
|
|
14
|
-
/**
|
|
15
|
-
* Create a SplitsCache that uses a storage wrapper.
|
|
16
|
-
* @param log - Logger instance.
|
|
17
|
-
* @param keys - Key builder.
|
|
18
|
-
* @param wrapper - Adapted wrapper storage.
|
|
19
|
-
*/
|
|
20
|
-
function SplitsCachePluggable(log, keys, wrapper, splitFiltersValidation) {
|
|
21
|
-
var _this = _super.call(this) || this;
|
|
22
|
-
_this.log = log;
|
|
23
|
-
_this.keys = keys;
|
|
24
|
-
_this.wrapper = wrapper;
|
|
25
|
-
_this.flagSetsFilter = splitFiltersValidation ? splitFiltersValidation.groupedFilters.bySet : [];
|
|
26
|
-
return _this;
|
|
27
|
-
}
|
|
28
|
-
SplitsCachePluggable.prototype._decrementCounts = function (split) {
|
|
29
|
-
var _this = this;
|
|
30
|
-
var ttKey = this.keys.buildTrafficTypeKey(split.trafficTypeName);
|
|
31
|
-
return this.wrapper.decr(ttKey).then(function (count) {
|
|
32
|
-
if (count === 0)
|
|
33
|
-
return _this.wrapper.del(ttKey);
|
|
34
|
-
});
|
|
35
|
-
};
|
|
36
|
-
SplitsCachePluggable.prototype._incrementCounts = function (split) {
|
|
37
|
-
var ttKey = this.keys.buildTrafficTypeKey(split.trafficTypeName);
|
|
38
|
-
return this.wrapper.incr(ttKey);
|
|
39
|
-
};
|
|
40
|
-
SplitsCachePluggable.prototype._updateFlagSets = function (featureFlagName, flagSetsOfRemovedFlag, flagSetsOfAddedFlag) {
|
|
41
|
-
var _this = this;
|
|
42
|
-
var removeFromFlagSets = (0, sets_1.returnDifference)(flagSetsOfRemovedFlag, flagSetsOfAddedFlag);
|
|
43
|
-
var addToFlagSets = (0, sets_1.returnDifference)(flagSetsOfAddedFlag, flagSetsOfRemovedFlag);
|
|
44
|
-
if (this.flagSetsFilter.length > 0) {
|
|
45
|
-
addToFlagSets = addToFlagSets.filter(function (flagSet) {
|
|
46
|
-
return _this.flagSetsFilter.some(function (filterFlagSet) { return filterFlagSet === flagSet; });
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
var items = [featureFlagName];
|
|
50
|
-
return Promise.all((0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([], removeFromFlagSets.map(function (flagSetName) { return _this.wrapper.removeItems(_this.keys.buildFlagSetKey(flagSetName), items); }), true), addToFlagSets.map(function (flagSetName) { return _this.wrapper.addItems(_this.keys.buildFlagSetKey(flagSetName), items); }), true));
|
|
51
|
-
};
|
|
52
|
-
/**
|
|
53
|
-
* Add a given split.
|
|
54
|
-
* The returned promise is resolved when the operation success
|
|
55
|
-
* or rejected if it fails (e.g., wrapper operation fails)
|
|
56
|
-
*/
|
|
57
|
-
SplitsCachePluggable.prototype.addSplit = function (split) {
|
|
58
|
-
var _this = this;
|
|
59
|
-
var name = split.name;
|
|
60
|
-
var splitKey = this.keys.buildSplitKey(name);
|
|
61
|
-
return this.wrapper.get(splitKey).then(function (splitFromStorage) {
|
|
62
|
-
// handling parsing error
|
|
63
|
-
var parsedPreviousSplit, stringifiedNewSplit;
|
|
64
|
-
try {
|
|
65
|
-
parsedPreviousSplit = splitFromStorage ? JSON.parse(splitFromStorage) : undefined;
|
|
66
|
-
stringifiedNewSplit = JSON.stringify(split);
|
|
67
|
-
}
|
|
68
|
-
catch (e) {
|
|
69
|
-
throw new Error('Error parsing feature flag definition: ' + e);
|
|
70
|
-
}
|
|
71
|
-
return _this.wrapper.set(splitKey, stringifiedNewSplit).then(function () {
|
|
72
|
-
// avoid unnecessary increment/decrement operations
|
|
73
|
-
if (parsedPreviousSplit && parsedPreviousSplit.trafficTypeName === split.trafficTypeName)
|
|
74
|
-
return;
|
|
75
|
-
// update traffic type counts
|
|
76
|
-
return _this._incrementCounts(split).then(function () {
|
|
77
|
-
if (parsedPreviousSplit)
|
|
78
|
-
return _this._decrementCounts(parsedPreviousSplit);
|
|
79
|
-
});
|
|
80
|
-
}).then(function () { return _this._updateFlagSets(name, parsedPreviousSplit && parsedPreviousSplit.sets, split.sets); });
|
|
81
|
-
}).then(function () { return true; });
|
|
82
|
-
};
|
|
83
|
-
/**
|
|
84
|
-
* Remove a given split.
|
|
85
|
-
* The returned promise is resolved when the operation success, with a boolean indicating if the split existed or not.
|
|
86
|
-
* or rejected if it fails (e.g., wrapper operation fails).
|
|
87
|
-
*/
|
|
88
|
-
SplitsCachePluggable.prototype.removeSplit = function (name) {
|
|
89
|
-
var _this = this;
|
|
90
|
-
return this.getSplit(name).then(function (split) {
|
|
91
|
-
if (split) {
|
|
92
|
-
return _this._decrementCounts(split).then(function () { return _this._updateFlagSets(name, split.sets); });
|
|
93
|
-
}
|
|
94
|
-
}).then(function () {
|
|
95
|
-
return _this.wrapper.del(_this.keys.buildSplitKey(name));
|
|
96
|
-
});
|
|
97
|
-
};
|
|
98
|
-
/**
|
|
99
|
-
* Get split.
|
|
100
|
-
* The returned promise is resolved with the split definition or null if it's not defined,
|
|
101
|
-
* or rejected if wrapper operation fails.
|
|
102
|
-
*/
|
|
103
|
-
SplitsCachePluggable.prototype.getSplit = function (name) {
|
|
104
|
-
return this.wrapper.get(this.keys.buildSplitKey(name))
|
|
105
|
-
.then(function (maybeSplit) { return maybeSplit && JSON.parse(maybeSplit); });
|
|
106
|
-
};
|
|
107
|
-
/**
|
|
108
|
-
* Get list of splits.
|
|
109
|
-
* The returned promise is resolved with a map of split names to their split definition or null if it's not defined,
|
|
110
|
-
* or rejected if wrapper operation fails.
|
|
111
|
-
*/
|
|
112
|
-
SplitsCachePluggable.prototype.getSplits = function (names) {
|
|
113
|
-
var _this = this;
|
|
114
|
-
var keys = names.map(function (name) { return _this.keys.buildSplitKey(name); });
|
|
115
|
-
return this.wrapper.getMany(keys).then(function (splitDefinitions) {
|
|
116
|
-
var splits = {};
|
|
117
|
-
names.forEach(function (name, idx) {
|
|
118
|
-
var split = splitDefinitions[idx];
|
|
119
|
-
splits[name] = split && JSON.parse(split);
|
|
120
|
-
});
|
|
121
|
-
return Promise.resolve(splits);
|
|
122
|
-
});
|
|
123
|
-
};
|
|
124
|
-
/**
|
|
125
|
-
* Get list of all split definitions.
|
|
126
|
-
* The returned promise is resolved with the list of split definitions,
|
|
127
|
-
* or rejected if wrapper operation fails.
|
|
128
|
-
*/
|
|
129
|
-
SplitsCachePluggable.prototype.getAll = function () {
|
|
130
|
-
var _this = this;
|
|
131
|
-
return this.wrapper.getKeysByPrefix(this.keys.buildSplitKeyPrefix())
|
|
132
|
-
.then(function (listOfKeys) { return _this.wrapper.getMany(listOfKeys); })
|
|
133
|
-
.then(function (splitDefinitions) { return splitDefinitions.map(function (splitDefinition) {
|
|
134
|
-
return JSON.parse(splitDefinition);
|
|
135
|
-
}); });
|
|
136
|
-
};
|
|
137
|
-
/**
|
|
138
|
-
* Get list of split names.
|
|
139
|
-
* The returned promise is resolved with the list of split names,
|
|
140
|
-
* or rejected if wrapper operation fails.
|
|
141
|
-
*/
|
|
142
|
-
SplitsCachePluggable.prototype.getSplitNames = function () {
|
|
143
|
-
var _this = this;
|
|
144
|
-
return this.wrapper.getKeysByPrefix(this.keys.buildSplitKeyPrefix()).then(function (listOfKeys) { return listOfKeys.map(_this.keys.extractKey); });
|
|
145
|
-
};
|
|
146
|
-
/**
|
|
147
|
-
* Get list of feature flag names related to a given list of flag set names.
|
|
148
|
-
* The returned promise is resolved with the list of feature flag names per flag set.
|
|
149
|
-
* It never rejects (If there is a wrapper error for some flag set, an empty set is returned for it).
|
|
150
|
-
*/
|
|
151
|
-
SplitsCachePluggable.prototype.getNamesByFlagSets = function (flagSets) {
|
|
152
|
-
var _this = this;
|
|
153
|
-
return Promise.all(flagSets.map(function (flagSet) {
|
|
154
|
-
var flagSetKey = _this.keys.buildFlagSetKey(flagSet);
|
|
155
|
-
return _this.wrapper.getItems(flagSetKey).catch(function () { return []; });
|
|
156
|
-
})).then(function (namesByFlagSets) { return namesByFlagSets.map(function (namesByFlagSet) { return new Set(namesByFlagSet); }); });
|
|
157
|
-
};
|
|
158
|
-
/**
|
|
159
|
-
* Check traffic type existence.
|
|
160
|
-
* The returned promise is resolved with a boolean indicating whether the TT exist or not.
|
|
161
|
-
* In case of wrapper operation failures, the promise resolves with a true value, assuming that the TT might exist.
|
|
162
|
-
* It will never be rejected.
|
|
163
|
-
*/
|
|
164
|
-
SplitsCachePluggable.prototype.trafficTypeExists = function (trafficType) {
|
|
165
|
-
var _this = this;
|
|
166
|
-
// If there is a number there should be > 0, otherwise the TT is considered as not existent.
|
|
167
|
-
return this.wrapper.get(this.keys.buildTrafficTypeKey(trafficType))
|
|
168
|
-
.then(function (ttCount) {
|
|
169
|
-
if (ttCount === null)
|
|
170
|
-
return false; // if entry doesn't exist, means that TT doesn't exist
|
|
171
|
-
ttCount = parseInt(ttCount, 10);
|
|
172
|
-
if (!(0, lang_1.isFiniteNumber)(ttCount) || ttCount < 0) {
|
|
173
|
-
_this.log.info(constants_1.LOG_PREFIX + ("Could not validate traffic type existence of " + trafficType + " due to data corruption of some sorts."));
|
|
174
|
-
return false;
|
|
175
|
-
}
|
|
176
|
-
return ttCount > 0;
|
|
177
|
-
}).catch(function (e) {
|
|
178
|
-
_this.log.error(constants_1.LOG_PREFIX + ("Could not validate traffic type existence of " + trafficType + " due to an error: " + e + "."));
|
|
179
|
-
// If there is an error, bypass the validation so the event can get tracked.
|
|
180
|
-
return true;
|
|
181
|
-
});
|
|
182
|
-
};
|
|
183
|
-
/**
|
|
184
|
-
* Set till number.
|
|
185
|
-
* The returned promise is resolved when the operation success,
|
|
186
|
-
* or rejected if it fails (e.g., wrapper operation fails).
|
|
187
|
-
*/
|
|
188
|
-
SplitsCachePluggable.prototype.setChangeNumber = function (changeNumber) {
|
|
189
|
-
return this.wrapper.set(this.keys.buildSplitsTillKey(), changeNumber + '');
|
|
190
|
-
};
|
|
191
|
-
/**
|
|
192
|
-
* Get till number or -1 if it's not defined.
|
|
193
|
-
* The returned promise is resolved with the changeNumber or -1 if it doesn't exist or a wrapper operation fails.
|
|
194
|
-
* The promise will never be rejected.
|
|
195
|
-
*/
|
|
196
|
-
SplitsCachePluggable.prototype.getChangeNumber = function () {
|
|
197
|
-
var _this = this;
|
|
198
|
-
return this.wrapper.get(this.keys.buildSplitsTillKey()).then(function (value) {
|
|
199
|
-
var i = parseInt(value, 10);
|
|
200
|
-
return (0, lang_1.isNaNNumber)(i) ? -1 : i;
|
|
201
|
-
}).catch(function (e) {
|
|
202
|
-
_this.log.error(constants_1.LOG_PREFIX + 'Could not retrieve changeNumber from storage. Error: ' + e);
|
|
203
|
-
return -1;
|
|
204
|
-
});
|
|
205
|
-
};
|
|
206
|
-
// @TODO implement if required by DataLoader or producer mode
|
|
207
|
-
SplitsCachePluggable.prototype.clear = function () {
|
|
208
|
-
return Promise.resolve(true);
|
|
209
|
-
};
|
|
210
|
-
return SplitsCachePluggable;
|
|
211
|
-
}(AbstractSplitsCacheAsync_1.AbstractSplitsCacheAsync));
|
|
212
|
-
exports.SplitsCachePluggable = SplitsCachePluggable;
|
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TelemetryCachePluggable = void 0;
|
|
4
|
-
var findLatencyIndex_1 = require("../findLatencyIndex");
|
|
5
|
-
var telemetrySubmitter_1 = require("../../sync/submitters/telemetrySubmitter");
|
|
6
|
-
var constants_1 = require("../../utils/constants");
|
|
7
|
-
var lang_1 = require("../../utils/lang");
|
|
8
|
-
var TelemetryCacheInMemory_1 = require("../inMemory/TelemetryCacheInMemory");
|
|
9
|
-
var utils_1 = require("../utils");
|
|
10
|
-
var TelemetryCachePluggable = /** @class */ (function () {
|
|
11
|
-
/**
|
|
12
|
-
* Create a Telemetry cache that uses a storage wrapper.
|
|
13
|
-
* @param log - Logger instance.
|
|
14
|
-
* @param keys - Key builder.
|
|
15
|
-
* @param wrapper - Adapted wrapper storage.
|
|
16
|
-
*/
|
|
17
|
-
function TelemetryCachePluggable(log, keys, wrapper) {
|
|
18
|
-
this.log = log;
|
|
19
|
-
this.keys = keys;
|
|
20
|
-
this.wrapper = wrapper;
|
|
21
|
-
}
|
|
22
|
-
TelemetryCachePluggable.prototype.recordLatency = function (method, latencyMs) {
|
|
23
|
-
return this.wrapper.incr(this.keys.buildLatencyKey(method, (0, findLatencyIndex_1.findLatencyIndex)(latencyMs)))
|
|
24
|
-
.catch(function () { });
|
|
25
|
-
};
|
|
26
|
-
TelemetryCachePluggable.prototype.recordException = function (method) {
|
|
27
|
-
return this.wrapper.incr(this.keys.buildExceptionKey(method))
|
|
28
|
-
.catch(function () { });
|
|
29
|
-
};
|
|
30
|
-
TelemetryCachePluggable.prototype.recordConfig = function () {
|
|
31
|
-
var value = JSON.stringify((0, telemetrySubmitter_1.getTelemetryConfigStats)(constants_1.CONSUMER_MODE, constants_1.STORAGE_PLUGGABLE));
|
|
32
|
-
return this.wrapper.set(this.keys.buildInitKey(), value).catch(function () { });
|
|
33
|
-
};
|
|
34
|
-
/**
|
|
35
|
-
* Pop telemetry latencies.
|
|
36
|
-
* The returned promise rejects if wrapper operations fail.
|
|
37
|
-
*/
|
|
38
|
-
TelemetryCachePluggable.prototype.popLatencies = function () {
|
|
39
|
-
var _this = this;
|
|
40
|
-
return this.wrapper.getKeysByPrefix(this.keys.latencyPrefix).then(function (latencyKeys) {
|
|
41
|
-
return latencyKeys.length ?
|
|
42
|
-
_this.wrapper.getMany(latencyKeys).then(function (latencies) {
|
|
43
|
-
var result = new Map();
|
|
44
|
-
for (var i = 0; i < latencyKeys.length; i++) {
|
|
45
|
-
var field = latencyKeys[i].split('::')[1];
|
|
46
|
-
var parsedField = (0, utils_1.parseLatencyField)(field);
|
|
47
|
-
if ((0, lang_1.isString)(parsedField)) {
|
|
48
|
-
_this.log.error("Ignoring invalid latency field: " + field + ": " + parsedField);
|
|
49
|
-
continue;
|
|
50
|
-
}
|
|
51
|
-
// @ts-ignore
|
|
52
|
-
var count = parseInt(latencies[i]);
|
|
53
|
-
if ((0, lang_1.isNaNNumber)(count)) {
|
|
54
|
-
_this.log.error("Ignoring latency with invalid count: " + latencies[i]);
|
|
55
|
-
continue;
|
|
56
|
-
}
|
|
57
|
-
var metadata = parsedField[0], method = parsedField[1], bucket = parsedField[2];
|
|
58
|
-
if (bucket >= TelemetryCacheInMemory_1.MAX_LATENCY_BUCKET_COUNT) {
|
|
59
|
-
_this.log.error("Ignoring latency with invalid bucket: " + bucket);
|
|
60
|
-
continue;
|
|
61
|
-
}
|
|
62
|
-
var methodLatencies = result.get(metadata) || {};
|
|
63
|
-
methodLatencies[method] = methodLatencies[method] || (0, TelemetryCacheInMemory_1.newBuckets)();
|
|
64
|
-
methodLatencies[method][bucket] = count;
|
|
65
|
-
result.set(metadata, methodLatencies);
|
|
66
|
-
}
|
|
67
|
-
return Promise.all(latencyKeys.map(function (latencyKey) { return _this.wrapper.del(latencyKey); })).then(function () { return result; });
|
|
68
|
-
}) :
|
|
69
|
-
// If latencyKeys is empty, return an empty map.
|
|
70
|
-
new Map();
|
|
71
|
-
});
|
|
72
|
-
};
|
|
73
|
-
/**
|
|
74
|
-
* Pop telemetry exceptions.
|
|
75
|
-
* The returned promise rejects if wrapper operations fail.
|
|
76
|
-
*/
|
|
77
|
-
TelemetryCachePluggable.prototype.popExceptions = function () {
|
|
78
|
-
var _this = this;
|
|
79
|
-
return this.wrapper.getKeysByPrefix(this.keys.exceptionPrefix).then(function (exceptionKeys) {
|
|
80
|
-
return exceptionKeys.length ?
|
|
81
|
-
_this.wrapper.getMany(exceptionKeys).then(function (exceptions) {
|
|
82
|
-
var result = new Map();
|
|
83
|
-
for (var i = 0; i < exceptionKeys.length; i++) {
|
|
84
|
-
var field = exceptionKeys[i].split('::')[1];
|
|
85
|
-
var parsedField = (0, utils_1.parseExceptionField)(field);
|
|
86
|
-
if ((0, lang_1.isString)(parsedField)) {
|
|
87
|
-
_this.log.error("Ignoring invalid exception field: " + field + ": " + parsedField);
|
|
88
|
-
continue;
|
|
89
|
-
}
|
|
90
|
-
// @ts-ignore
|
|
91
|
-
var count = parseInt(exceptions[i]);
|
|
92
|
-
if ((0, lang_1.isNaNNumber)(count)) {
|
|
93
|
-
_this.log.error("Ignoring exception with invalid count: " + exceptions[i]);
|
|
94
|
-
continue;
|
|
95
|
-
}
|
|
96
|
-
var metadata = parsedField[0], method = parsedField[1];
|
|
97
|
-
if (!result.has(metadata))
|
|
98
|
-
result.set(metadata, {});
|
|
99
|
-
result.get(metadata)[method] = count;
|
|
100
|
-
}
|
|
101
|
-
return Promise.all(exceptionKeys.map(function (exceptionKey) { return _this.wrapper.del(exceptionKey); })).then(function () { return result; });
|
|
102
|
-
}) :
|
|
103
|
-
// If exceptionKeys is empty, return an empty map.
|
|
104
|
-
new Map();
|
|
105
|
-
});
|
|
106
|
-
};
|
|
107
|
-
/**
|
|
108
|
-
* Pop telemetry configs.
|
|
109
|
-
* The returned promise rejects if wrapper operations fail.
|
|
110
|
-
*/
|
|
111
|
-
TelemetryCachePluggable.prototype.popConfigs = function () {
|
|
112
|
-
var _this = this;
|
|
113
|
-
return this.wrapper.getKeysByPrefix(this.keys.initPrefix).then(function (configKeys) {
|
|
114
|
-
return configKeys.length ?
|
|
115
|
-
_this.wrapper.getMany(configKeys).then(function (configs) {
|
|
116
|
-
var result = new Map();
|
|
117
|
-
for (var i = 0; i < configKeys.length; i++) {
|
|
118
|
-
var field = configKeys[i].split('::')[1];
|
|
119
|
-
var parsedField = (0, utils_1.parseMetadata)(field);
|
|
120
|
-
if ((0, lang_1.isString)(parsedField)) {
|
|
121
|
-
_this.log.error("Ignoring invalid config field: " + field + ": " + parsedField);
|
|
122
|
-
continue;
|
|
123
|
-
}
|
|
124
|
-
var metadata = parsedField[0];
|
|
125
|
-
try { // @ts-ignore
|
|
126
|
-
var config = JSON.parse(configs[i]);
|
|
127
|
-
result.set(metadata, config);
|
|
128
|
-
}
|
|
129
|
-
catch (e) {
|
|
130
|
-
_this.log.error("Ignoring invalid config: " + configs[i]);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
return Promise.all(configKeys.map(function (configKey) { return _this.wrapper.del(configKey); })).then(function () { return result; });
|
|
134
|
-
}) :
|
|
135
|
-
// If configKeys is empty, return an empty map.
|
|
136
|
-
new Map();
|
|
137
|
-
});
|
|
138
|
-
};
|
|
139
|
-
return TelemetryCachePluggable;
|
|
140
|
-
}());
|
|
141
|
-
exports.TelemetryCachePluggable = TelemetryCachePluggable;
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UniqueKeysCachePluggable = void 0;
|
|
4
|
-
var tslib_1 = require("tslib");
|
|
5
|
-
var UniqueKeysCacheInMemory_1 = require("../inMemory/UniqueKeysCacheInMemory");
|
|
6
|
-
var constants_1 = require("../inRedis/constants");
|
|
7
|
-
var constants_2 = require("./constants");
|
|
8
|
-
var sets_1 = require("../../utils/lang/sets");
|
|
9
|
-
var UniqueKeysCachePluggable = /** @class */ (function (_super) {
|
|
10
|
-
(0, tslib_1.__extends)(UniqueKeysCachePluggable, _super);
|
|
11
|
-
function UniqueKeysCachePluggable(log, key, wrapper, uniqueKeysQueueSize, refreshRate) {
|
|
12
|
-
if (uniqueKeysQueueSize === void 0) { uniqueKeysQueueSize = constants_1.DEFAULT_CACHE_SIZE; }
|
|
13
|
-
if (refreshRate === void 0) { refreshRate = constants_1.REFRESH_RATE; }
|
|
14
|
-
var _this = _super.call(this, uniqueKeysQueueSize) || this;
|
|
15
|
-
_this.log = log;
|
|
16
|
-
_this.key = key;
|
|
17
|
-
_this.wrapper = wrapper;
|
|
18
|
-
_this.refreshRate = refreshRate;
|
|
19
|
-
_this.onFullQueue = function () { _this.storeUniqueKeys(); };
|
|
20
|
-
return _this;
|
|
21
|
-
}
|
|
22
|
-
UniqueKeysCachePluggable.prototype.storeUniqueKeys = function () {
|
|
23
|
-
var _this = this;
|
|
24
|
-
var featureNames = Object.keys(this.uniqueKeysTracker);
|
|
25
|
-
if (!featureNames.length)
|
|
26
|
-
return Promise.resolve(false);
|
|
27
|
-
var uniqueKeysArray = featureNames.map(function (featureName) {
|
|
28
|
-
var featureKeys = (0, sets_1.setToArray)(_this.uniqueKeysTracker[featureName]);
|
|
29
|
-
var uniqueKeysPayload = {
|
|
30
|
-
f: featureName,
|
|
31
|
-
ks: featureKeys
|
|
32
|
-
};
|
|
33
|
-
return JSON.stringify(uniqueKeysPayload);
|
|
34
|
-
});
|
|
35
|
-
this.clear();
|
|
36
|
-
return this.wrapper.pushItems(this.key, uniqueKeysArray)
|
|
37
|
-
.catch(function (err) {
|
|
38
|
-
_this.log.error(constants_2.LOG_PREFIX + "Error in uniqueKeys pipeline: " + err + ".");
|
|
39
|
-
return false;
|
|
40
|
-
});
|
|
41
|
-
};
|
|
42
|
-
UniqueKeysCachePluggable.prototype.start = function () {
|
|
43
|
-
this.intervalId = setInterval(this.storeUniqueKeys.bind(this), this.refreshRate);
|
|
44
|
-
};
|
|
45
|
-
UniqueKeysCachePluggable.prototype.stop = function () {
|
|
46
|
-
clearInterval(this.intervalId);
|
|
47
|
-
return this.storeUniqueKeys();
|
|
48
|
-
};
|
|
49
|
-
/**
|
|
50
|
-
* Async consumer API, used by synchronizer.
|
|
51
|
-
* @param count - number of items to pop from the queue. If not provided or equal 0, all items will be popped.
|
|
52
|
-
*/
|
|
53
|
-
UniqueKeysCachePluggable.prototype.popNRaw = function (count) {
|
|
54
|
-
var _this = this;
|
|
55
|
-
if (count === void 0) { count = 0; }
|
|
56
|
-
return Promise.resolve(count || this.wrapper.getItemsCount(this.key))
|
|
57
|
-
.then(function (count) { return _this.wrapper.popItems(_this.key, count); })
|
|
58
|
-
.then(function (uniqueKeyItems) { return uniqueKeyItems.map(function (uniqueKeyItem) { return JSON.parse(uniqueKeyItem); }); });
|
|
59
|
-
};
|
|
60
|
-
return UniqueKeysCachePluggable;
|
|
61
|
-
}(UniqueKeysCacheInMemory_1.UniqueKeysCacheInMemory));
|
|
62
|
-
exports.UniqueKeysCachePluggable = UniqueKeysCachePluggable;
|