@splitsoftware/splitio-commons 2.5.0-rc.0 → 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 +893 -142
- 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 -2087
- 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 -109
- package/cjs/storages/findLatencyIndex.js +0 -18
- package/cjs/storages/inLocalStorage/MySegmentsCacheInLocal.js +0 -81
- package/cjs/storages/inLocalStorage/RBSegmentsCacheInLocal.js +0 -121
- package/cjs/storages/inLocalStorage/SplitsCacheInLocal.js +0 -208
- package/cjs/storages/inLocalStorage/constants.js +0 -5
- package/cjs/storages/inLocalStorage/index.js +0 -73
- package/cjs/storages/inLocalStorage/validateCache.js +0 -80
- 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 -81
- package/cjs/storages/inMemory/MySegmentsCacheInMemory.js +0 -46
- package/cjs/storages/inMemory/RBSegmentsCacheInMemory.js +0 -65
- 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 -72
- 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 -81
- package/cjs/sync/polling/updaters/segmentChangesUpdater.js +0 -80
- package/cjs/sync/polling/updaters/splitChangesUpdater.js +0 -188
- 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 -172
- 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 -16
- 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 -104
- package/esm/storages/findLatencyIndex.js +0 -14
- package/esm/storages/inLocalStorage/MySegmentsCacheInLocal.js +0 -78
- package/esm/storages/inLocalStorage/RBSegmentsCacheInLocal.js +0 -118
- package/esm/storages/inLocalStorage/SplitsCacheInLocal.js +0 -205
- package/esm/storages/inLocalStorage/constants.js +0 -2
- package/esm/storages/inLocalStorage/index.js +0 -69
- package/esm/storages/inLocalStorage/validateCache.js +0 -76
- 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 -77
- package/esm/storages/inMemory/MySegmentsCacheInMemory.js +0 -43
- package/esm/storages/inMemory/RBSegmentsCacheInMemory.js +0 -62
- 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 -67
- 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 -77
- package/esm/sync/polling/updaters/segmentChangesUpdater.js +0 -76
- package/esm/sync/polling/updaters/splitChangesUpdater.js +0 -182
- 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 -168
- 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 -12
- 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 -132
- 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 -113
- package/src/storages/findLatencyIndex.ts +0 -16
- package/src/storages/inLocalStorage/MySegmentsCacheInLocal.ts +0 -86
- package/src/storages/inLocalStorage/RBSegmentsCacheInLocal.ts +0 -140
- package/src/storages/inLocalStorage/SplitsCacheInLocal.ts +0 -244
- package/src/storages/inLocalStorage/constants.ts +0 -2
- package/src/storages/inLocalStorage/index.ts +0 -83
- package/src/storages/inLocalStorage/validateCache.ts +0 -93
- 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 -92
- package/src/storages/inMemory/MySegmentsCacheInMemory.ts +0 -49
- package/src/storages/inMemory/RBSegmentsCacheInMemory.ts +0 -72
- 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 -522
- 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 -98
- 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 -102
- package/src/sync/polling/updaters/segmentChangesUpdater.ts +0 -92
- package/src/sync/polling/updaters/splitChangesUpdater.ts +0 -218
- 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 -190
- 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 -44
- 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 -11
- 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,124 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TelemetryCacheInRedis = 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 TelemetryCacheInRedis = /** @class */ (function () {
|
|
11
|
-
/**
|
|
12
|
-
* Create a Telemetry cache that uses Redis as storage.
|
|
13
|
-
* @param log - Logger instance.
|
|
14
|
-
* @param keys - Key builder.
|
|
15
|
-
* @param redis - Redis client.
|
|
16
|
-
*/
|
|
17
|
-
function TelemetryCacheInRedis(log, keys, redis) {
|
|
18
|
-
this.log = log;
|
|
19
|
-
this.keys = keys;
|
|
20
|
-
this.redis = redis;
|
|
21
|
-
}
|
|
22
|
-
TelemetryCacheInRedis.prototype.recordLatency = function (method, latencyMs) {
|
|
23
|
-
var _a = this.keys.buildLatencyKey(method, (0, findLatencyIndex_1.findLatencyIndex)(latencyMs)).split('::'), key = _a[0], field = _a[1];
|
|
24
|
-
return this.redis.hincrby(key, field, 1)
|
|
25
|
-
.catch(function () { });
|
|
26
|
-
};
|
|
27
|
-
TelemetryCacheInRedis.prototype.recordException = function (method) {
|
|
28
|
-
var _a = this.keys.buildExceptionKey(method).split('::'), key = _a[0], field = _a[1];
|
|
29
|
-
return this.redis.hincrby(key, field, 1)
|
|
30
|
-
.catch(function () { });
|
|
31
|
-
};
|
|
32
|
-
TelemetryCacheInRedis.prototype.recordConfig = function () {
|
|
33
|
-
var _a = this.keys.buildInitKey().split('::'), key = _a[0], field = _a[1];
|
|
34
|
-
var value = JSON.stringify((0, telemetrySubmitter_1.getTelemetryConfigStats)(constants_1.CONSUMER_MODE, constants_1.STORAGE_REDIS));
|
|
35
|
-
return this.redis.hset(key, field, value).catch(function () { });
|
|
36
|
-
};
|
|
37
|
-
/**
|
|
38
|
-
* Pop telemetry latencies.
|
|
39
|
-
* The returned promise rejects if redis operations fail.
|
|
40
|
-
*/
|
|
41
|
-
TelemetryCacheInRedis.prototype.popLatencies = function () {
|
|
42
|
-
var _this = this;
|
|
43
|
-
return this.redis.hgetall(this.keys.latencyPrefix).then(function (latencies) {
|
|
44
|
-
var result = new Map();
|
|
45
|
-
Object.keys(latencies).forEach(function (field) {
|
|
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
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
var count = parseInt(latencies[field]);
|
|
52
|
-
if ((0, lang_1.isNaNNumber)(count)) {
|
|
53
|
-
_this.log.error("Ignoring latency with invalid count: " + latencies[field]);
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
var metadata = parsedField[0], method = parsedField[1], bucket = parsedField[2];
|
|
57
|
-
if (bucket >= TelemetryCacheInMemory_1.MAX_LATENCY_BUCKET_COUNT) {
|
|
58
|
-
_this.log.error("Ignoring latency with invalid bucket: " + bucket);
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
var methodLatencies = result.get(metadata) || {};
|
|
62
|
-
methodLatencies[method] = methodLatencies[method] || (0, TelemetryCacheInMemory_1.newBuckets)();
|
|
63
|
-
methodLatencies[method][bucket] = count;
|
|
64
|
-
result.set(metadata, methodLatencies);
|
|
65
|
-
});
|
|
66
|
-
return _this.redis.del(_this.keys.latencyPrefix).then(function () { return result; });
|
|
67
|
-
});
|
|
68
|
-
};
|
|
69
|
-
/**
|
|
70
|
-
* Pop telemetry exceptions.
|
|
71
|
-
* The returned promise rejects if redis operations fail.
|
|
72
|
-
*/
|
|
73
|
-
TelemetryCacheInRedis.prototype.popExceptions = function () {
|
|
74
|
-
var _this = this;
|
|
75
|
-
return this.redis.hgetall(this.keys.exceptionPrefix).then(function (exceptions) {
|
|
76
|
-
var result = new Map();
|
|
77
|
-
Object.keys(exceptions).forEach(function (field) {
|
|
78
|
-
var parsedField = (0, utils_1.parseExceptionField)(field);
|
|
79
|
-
if ((0, lang_1.isString)(parsedField)) {
|
|
80
|
-
_this.log.error("Ignoring invalid exception field: " + field + ": " + parsedField);
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
var count = parseInt(exceptions[field]);
|
|
84
|
-
if ((0, lang_1.isNaNNumber)(count)) {
|
|
85
|
-
_this.log.error("Ignoring exception with invalid count: " + exceptions[field]);
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
var metadata = parsedField[0], method = parsedField[1];
|
|
89
|
-
if (!result.has(metadata))
|
|
90
|
-
result.set(metadata, {});
|
|
91
|
-
result.get(metadata)[method] = count;
|
|
92
|
-
});
|
|
93
|
-
return _this.redis.del(_this.keys.exceptionPrefix).then(function () { return result; });
|
|
94
|
-
});
|
|
95
|
-
};
|
|
96
|
-
/**
|
|
97
|
-
* Pop telemetry configs.
|
|
98
|
-
* The returned promise rejects if redis operations fail.
|
|
99
|
-
*/
|
|
100
|
-
TelemetryCacheInRedis.prototype.popConfigs = function () {
|
|
101
|
-
var _this = this;
|
|
102
|
-
return this.redis.hgetall(this.keys.initPrefix).then(function (configs) {
|
|
103
|
-
var result = new Map();
|
|
104
|
-
Object.keys(configs).forEach(function (field) {
|
|
105
|
-
var parsedField = (0, utils_1.parseMetadata)(field);
|
|
106
|
-
if ((0, lang_1.isString)(parsedField)) {
|
|
107
|
-
_this.log.error("Ignoring invalid config field: " + field + ": " + parsedField);
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
var metadata = parsedField[0];
|
|
111
|
-
try {
|
|
112
|
-
var config = JSON.parse(configs[field]);
|
|
113
|
-
result.set(metadata, config);
|
|
114
|
-
}
|
|
115
|
-
catch (e) {
|
|
116
|
-
_this.log.error("Ignoring invalid config: " + configs[field]);
|
|
117
|
-
}
|
|
118
|
-
});
|
|
119
|
-
return _this.redis.del(_this.keys.initPrefix).then(function () { return result; });
|
|
120
|
-
});
|
|
121
|
-
};
|
|
122
|
-
return TelemetryCacheInRedis;
|
|
123
|
-
}());
|
|
124
|
-
exports.TelemetryCacheInRedis = TelemetryCacheInRedis;
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UniqueKeysCacheInRedis = void 0;
|
|
4
|
-
var tslib_1 = require("tslib");
|
|
5
|
-
var UniqueKeysCacheInMemory_1 = require("../inMemory/UniqueKeysCacheInMemory");
|
|
6
|
-
var constants_1 = require("./constants");
|
|
7
|
-
var constants_2 = require("./constants");
|
|
8
|
-
var sets_1 = require("../../utils/lang/sets");
|
|
9
|
-
var UniqueKeysCacheInRedis = /** @class */ (function (_super) {
|
|
10
|
-
(0, tslib_1.__extends)(UniqueKeysCacheInRedis, _super);
|
|
11
|
-
function UniqueKeysCacheInRedis(log, key, redis, 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.redis = redis;
|
|
18
|
-
_this.refreshRate = refreshRate;
|
|
19
|
-
_this.onFullQueue = function () { _this.postUniqueKeysInRedis(); };
|
|
20
|
-
return _this;
|
|
21
|
-
}
|
|
22
|
-
UniqueKeysCacheInRedis.prototype.postUniqueKeysInRedis = 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.redis.rpush(this.key, uniqueKeysArray)
|
|
37
|
-
.then(function (data) {
|
|
38
|
-
// If this is the creation of the key on Redis, set the expiration for it in 3600 seconds.
|
|
39
|
-
if (data === featureNames.length) {
|
|
40
|
-
return _this.redis.expire(_this.key, constants_1.TTL_REFRESH);
|
|
41
|
-
}
|
|
42
|
-
})
|
|
43
|
-
.catch(function (err) {
|
|
44
|
-
_this.log.error(constants_2.LOG_PREFIX + "Error in uniqueKeys pipeline: " + err + ".");
|
|
45
|
-
return false;
|
|
46
|
-
});
|
|
47
|
-
};
|
|
48
|
-
UniqueKeysCacheInRedis.prototype.start = function () {
|
|
49
|
-
this.intervalId = setInterval(this.postUniqueKeysInRedis.bind(this), this.refreshRate);
|
|
50
|
-
};
|
|
51
|
-
UniqueKeysCacheInRedis.prototype.stop = function () {
|
|
52
|
-
clearInterval(this.intervalId);
|
|
53
|
-
return this.postUniqueKeysInRedis();
|
|
54
|
-
};
|
|
55
|
-
/**
|
|
56
|
-
* Async consumer API, used by synchronizer.
|
|
57
|
-
* @param count - number of items to pop from the queue. If not provided or equal 0, all items will be popped.
|
|
58
|
-
*/
|
|
59
|
-
UniqueKeysCacheInRedis.prototype.popNRaw = function (count) {
|
|
60
|
-
var _this = this;
|
|
61
|
-
if (count === void 0) { count = 0; }
|
|
62
|
-
return this.redis.lrange(this.key, 0, count - 1).then(function (uniqueKeyItems) {
|
|
63
|
-
return _this.redis.ltrim(_this.key, uniqueKeyItems.length, -1)
|
|
64
|
-
.then(function () { return uniqueKeyItems.map(function (uniqueKeyItem) { return JSON.parse(uniqueKeyItem); }); });
|
|
65
|
-
});
|
|
66
|
-
};
|
|
67
|
-
return UniqueKeysCacheInRedis;
|
|
68
|
-
}(UniqueKeysCacheInMemory_1.UniqueKeysCacheInMemory));
|
|
69
|
-
exports.UniqueKeysCacheInRedis = UniqueKeysCacheInRedis;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TTL_REFRESH = exports.REFRESH_RATE = exports.DEFAULT_CACHE_SIZE = exports.LOG_PREFIX = void 0;
|
|
4
|
-
exports.LOG_PREFIX = 'storage:redis: ';
|
|
5
|
-
exports.DEFAULT_CACHE_SIZE = 30000;
|
|
6
|
-
exports.REFRESH_RATE = 300000; // 300000 ms = start after 5 mins
|
|
7
|
-
exports.TTL_REFRESH = 3600; // 1hr
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.InRedisStorage = void 0;
|
|
4
|
-
var KeyBuilder_1 = require("../KeyBuilder");
|
|
5
|
-
var KeyBuilderSS_1 = require("../KeyBuilderSS");
|
|
6
|
-
var SplitsCacheInRedis_1 = require("./SplitsCacheInRedis");
|
|
7
|
-
var SegmentsCacheInRedis_1 = require("./SegmentsCacheInRedis");
|
|
8
|
-
var ImpressionsCacheInRedis_1 = require("./ImpressionsCacheInRedis");
|
|
9
|
-
var EventsCacheInRedis_1 = require("./EventsCacheInRedis");
|
|
10
|
-
var constants_1 = require("../../utils/constants");
|
|
11
|
-
var TelemetryCacheInRedis_1 = require("./TelemetryCacheInRedis");
|
|
12
|
-
var UniqueKeysCacheInRedis_1 = require("./UniqueKeysCacheInRedis");
|
|
13
|
-
var ImpressionCountsCacheInRedis_1 = require("./ImpressionCountsCacheInRedis");
|
|
14
|
-
var utils_1 = require("../utils");
|
|
15
|
-
var RBSegmentsCacheInRedis_1 = require("./RBSegmentsCacheInRedis");
|
|
16
|
-
var RD;
|
|
17
|
-
try {
|
|
18
|
-
// Using `require` to prevent error when bundling or importing the SDK in a .mjs file, since ioredis is a CommonJS module.
|
|
19
|
-
// Redis storage is not supported with .mjs files.
|
|
20
|
-
RD = require('./RedisAdapter').RedisAdapter;
|
|
21
|
-
}
|
|
22
|
-
catch (error) { /* empty */ }
|
|
23
|
-
/**
|
|
24
|
-
* InRedis storage factory for consumer server-side SplitFactory, that uses `Ioredis` Redis client for Node.js
|
|
25
|
-
* @see {@link https://www.npmjs.com/package/ioredis}
|
|
26
|
-
*/
|
|
27
|
-
function InRedisStorage(options) {
|
|
28
|
-
if (options === void 0) { options = {}; }
|
|
29
|
-
var prefix = (0, KeyBuilder_1.validatePrefix)(options.prefix);
|
|
30
|
-
function InRedisStorageFactory(params) {
|
|
31
|
-
if (!RD)
|
|
32
|
-
throw new Error('The SDK Redis storage is unavailable. Make sure your runtime environment supports CommonJS (`require`) so the `ioredis` dependency can be imported.');
|
|
33
|
-
var onReadyFromCacheCb = params.onReadyFromCacheCb, onReadyCb = params.onReadyCb, settings = params.settings, log = params.settings.log;
|
|
34
|
-
var metadata = (0, utils_1.metadataBuilder)(settings);
|
|
35
|
-
var keys = new KeyBuilderSS_1.KeyBuilderSS(prefix, metadata);
|
|
36
|
-
var redisClient = new RD(log, options.options || {});
|
|
37
|
-
var telemetry = new TelemetryCacheInRedis_1.TelemetryCacheInRedis(log, keys, redisClient);
|
|
38
|
-
var impressionCountsCache = new ImpressionCountsCacheInRedis_1.ImpressionCountsCacheInRedis(log, keys.buildImpressionsCountKey(), redisClient);
|
|
39
|
-
var uniqueKeysCache = new UniqueKeysCacheInRedis_1.UniqueKeysCacheInRedis(log, keys.buildUniqueKeysKey(), redisClient);
|
|
40
|
-
// RedisAdapter lets queue operations before connected
|
|
41
|
-
onReadyFromCacheCb();
|
|
42
|
-
// Subscription to Redis connect event in order to emit SDK_READY event on consumer mode
|
|
43
|
-
redisClient.on('connect', function () {
|
|
44
|
-
onReadyCb();
|
|
45
|
-
impressionCountsCache.start();
|
|
46
|
-
uniqueKeysCache.start();
|
|
47
|
-
// Synchronize config
|
|
48
|
-
telemetry.recordConfig();
|
|
49
|
-
});
|
|
50
|
-
return {
|
|
51
|
-
splits: new SplitsCacheInRedis_1.SplitsCacheInRedis(log, keys, redisClient, settings.sync.__splitFiltersValidation),
|
|
52
|
-
rbSegments: new RBSegmentsCacheInRedis_1.RBSegmentsCacheInRedis(log, keys, redisClient),
|
|
53
|
-
segments: new SegmentsCacheInRedis_1.SegmentsCacheInRedis(log, keys, redisClient),
|
|
54
|
-
impressions: new ImpressionsCacheInRedis_1.ImpressionsCacheInRedis(log, keys.buildImpressionsKey(), redisClient, metadata),
|
|
55
|
-
impressionCounts: impressionCountsCache,
|
|
56
|
-
events: new EventsCacheInRedis_1.EventsCacheInRedis(log, keys.buildEventsKey(), redisClient, metadata),
|
|
57
|
-
telemetry: telemetry,
|
|
58
|
-
uniqueKeys: uniqueKeysCache,
|
|
59
|
-
// When using REDIS we should:
|
|
60
|
-
// 1- Disconnect from the storage
|
|
61
|
-
destroy: function () {
|
|
62
|
-
return Promise.all([
|
|
63
|
-
impressionCountsCache.stop(),
|
|
64
|
-
uniqueKeysCache.stop()
|
|
65
|
-
]).then(function () { redisClient.disconnect(); });
|
|
66
|
-
// @TODO check that caches works as expected when redisClient is disconnected
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
InRedisStorageFactory.type = constants_1.STORAGE_REDIS;
|
|
71
|
-
return InRedisStorageFactory;
|
|
72
|
-
}
|
|
73
|
-
exports.InRedisStorage = InRedisStorage;
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EventsCachePluggable = void 0;
|
|
4
|
-
var constants_1 = require("./constants");
|
|
5
|
-
var EventsCachePluggable = /** @class */ (function () {
|
|
6
|
-
function EventsCachePluggable(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 event to the storage.
|
|
14
|
-
* @param eventData - Event item to push.
|
|
15
|
-
* @returns A promise that is resolved with a boolean value indicating if the push operation succeeded or failed.
|
|
16
|
-
* Unlike `impressions::track`, The promise will never be rejected.
|
|
17
|
-
*/
|
|
18
|
-
EventsCachePluggable.prototype.track = function (eventData) {
|
|
19
|
-
var _this = this;
|
|
20
|
-
return this.wrapper.pushItems(this.key, [this._toJSON(eventData)])
|
|
21
|
-
// We use boolean values to signal successful queueing
|
|
22
|
-
.then(function () { return true; })
|
|
23
|
-
.catch(function (e) {
|
|
24
|
-
_this.log.error(constants_1.LOG_PREFIX + "Error adding event to queue: " + e + ".");
|
|
25
|
-
return false;
|
|
26
|
-
});
|
|
27
|
-
};
|
|
28
|
-
EventsCachePluggable.prototype._toJSON = function (eventData) {
|
|
29
|
-
return JSON.stringify({
|
|
30
|
-
m: this.metadata,
|
|
31
|
-
e: eventData
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
/**
|
|
35
|
-
* Returns a promise that resolves with the count of stored events, or 0 if there was some error.
|
|
36
|
-
* The promise will never be rejected.
|
|
37
|
-
*/
|
|
38
|
-
EventsCachePluggable.prototype.count = function () {
|
|
39
|
-
return this.wrapper.getItemsCount(this.key).catch(function () { return 0; });
|
|
40
|
-
};
|
|
41
|
-
/**
|
|
42
|
-
* Removes the given number of events from the store. If a number is not provided, it deletes all items.
|
|
43
|
-
* The returned promise rejects if the wrapper operation fails.
|
|
44
|
-
*/
|
|
45
|
-
EventsCachePluggable.prototype.drop = function (count) {
|
|
46
|
-
if (!count)
|
|
47
|
-
return this.wrapper.del(this.key);
|
|
48
|
-
return this.wrapper.popItems(this.key, count).then(function () { });
|
|
49
|
-
};
|
|
50
|
-
/**
|
|
51
|
-
* Pop the given number of events from the storage.
|
|
52
|
-
* The returned promise rejects if the wrapper operation fails.
|
|
53
|
-
*
|
|
54
|
-
* NOTE: this method doesn't take into account MAX_EVENT_SIZE or MAX_QUEUE_BYTE_SIZE limits.
|
|
55
|
-
* It is the submitter responsability to handle that.
|
|
56
|
-
*/
|
|
57
|
-
EventsCachePluggable.prototype.popNWithMetadata = function (count) {
|
|
58
|
-
return this.wrapper.popItems(this.key, count).then(function (items) {
|
|
59
|
-
return items.map(function (item) { return JSON.parse(item); });
|
|
60
|
-
});
|
|
61
|
-
};
|
|
62
|
-
return EventsCachePluggable;
|
|
63
|
-
}());
|
|
64
|
-
exports.EventsCachePluggable = EventsCachePluggable;
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ImpressionCountsCachePluggable = void 0;
|
|
4
|
-
var tslib_1 = require("tslib");
|
|
5
|
-
var ImpressionCountsCacheInMemory_1 = require("../inMemory/ImpressionCountsCacheInMemory");
|
|
6
|
-
var constants_1 = require("../inRedis/constants");
|
|
7
|
-
var constants_2 = require("./constants");
|
|
8
|
-
var ImpressionCountsCachePluggable = /** @class */ (function (_super) {
|
|
9
|
-
(0, tslib_1.__extends)(ImpressionCountsCachePluggable, _super);
|
|
10
|
-
function ImpressionCountsCachePluggable(log, key, wrapper, impressionCountsCacheSize, refreshRate) {
|
|
11
|
-
if (refreshRate === void 0) { refreshRate = constants_1.REFRESH_RATE; }
|
|
12
|
-
var _this = _super.call(this, impressionCountsCacheSize) || this;
|
|
13
|
-
_this.log = log;
|
|
14
|
-
_this.key = key;
|
|
15
|
-
_this.wrapper = wrapper;
|
|
16
|
-
_this.refreshRate = refreshRate;
|
|
17
|
-
_this.onFullQueue = function () { _this.storeImpressionCounts(); };
|
|
18
|
-
return _this;
|
|
19
|
-
}
|
|
20
|
-
ImpressionCountsCachePluggable.prototype.storeImpressionCounts = function () {
|
|
21
|
-
var _this = this;
|
|
22
|
-
var counts = this.pop();
|
|
23
|
-
var keys = Object.keys(counts);
|
|
24
|
-
if (!keys.length)
|
|
25
|
-
return Promise.resolve(false);
|
|
26
|
-
var pipeline = keys.reduce(function (pipeline, key) {
|
|
27
|
-
return pipeline.then(function () { return _this.wrapper.incr(_this.key + "::" + key, counts[key]); });
|
|
28
|
-
}, Promise.resolve());
|
|
29
|
-
return pipeline.catch(function (err) {
|
|
30
|
-
_this.log.error(constants_2.LOG_PREFIX + "Error in impression counts pipeline: " + err + ".");
|
|
31
|
-
return false;
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
ImpressionCountsCachePluggable.prototype.start = function () {
|
|
35
|
-
this.intervalId = setInterval(this.storeImpressionCounts.bind(this), this.refreshRate);
|
|
36
|
-
};
|
|
37
|
-
ImpressionCountsCachePluggable.prototype.stop = function () {
|
|
38
|
-
clearInterval(this.intervalId);
|
|
39
|
-
return this.storeImpressionCounts();
|
|
40
|
-
};
|
|
41
|
-
// Async consumer API, used by synchronizer
|
|
42
|
-
ImpressionCountsCachePluggable.prototype.getImpressionsCount = function () {
|
|
43
|
-
var _this = this;
|
|
44
|
-
return this.wrapper.getKeysByPrefix(this.key)
|
|
45
|
-
.then(function (keys) {
|
|
46
|
-
return keys.length ? Promise.all(keys.map(function (key) { return _this.wrapper.get(key); }))
|
|
47
|
-
.then(function (counts) {
|
|
48
|
-
keys.forEach(function (key) { return _this.wrapper.del(key).catch(function () { }); });
|
|
49
|
-
var pf = [];
|
|
50
|
-
for (var i = 0; i < keys.length; i++) {
|
|
51
|
-
var key = keys[i];
|
|
52
|
-
var count = counts[i];
|
|
53
|
-
var keyFeatureNameAndTime = key.split('::');
|
|
54
|
-
if (keyFeatureNameAndTime.length !== 3) {
|
|
55
|
-
_this.log.error(constants_2.LOG_PREFIX + "Error spliting key " + key);
|
|
56
|
-
continue;
|
|
57
|
-
}
|
|
58
|
-
var timeFrame = parseInt(keyFeatureNameAndTime[2]);
|
|
59
|
-
if (isNaN(timeFrame)) {
|
|
60
|
-
_this.log.error(constants_2.LOG_PREFIX + "Error parsing time frame " + keyFeatureNameAndTime[2]);
|
|
61
|
-
continue;
|
|
62
|
-
}
|
|
63
|
-
// @ts-ignore
|
|
64
|
-
var rawCount = parseInt(count);
|
|
65
|
-
if (isNaN(rawCount)) {
|
|
66
|
-
_this.log.error(constants_2.LOG_PREFIX + "Error parsing raw count " + count);
|
|
67
|
-
continue;
|
|
68
|
-
}
|
|
69
|
-
pf.push({
|
|
70
|
-
f: keyFeatureNameAndTime[1],
|
|
71
|
-
m: timeFrame,
|
|
72
|
-
rc: rawCount,
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
return { pf: pf };
|
|
76
|
-
}) : undefined;
|
|
77
|
-
});
|
|
78
|
-
};
|
|
79
|
-
return ImpressionCountsCachePluggable;
|
|
80
|
-
}(ImpressionCountsCacheInMemory_1.ImpressionCountsCacheInMemory));
|
|
81
|
-
exports.ImpressionCountsCachePluggable = ImpressionCountsCachePluggable;
|
|
@@ -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;
|