@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,141 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.inMemoryWrapperFactory = void 0;
|
|
4
|
-
var lang_1 = require("../../utils/lang");
|
|
5
|
-
var sets_1 = require("../../utils/lang/sets");
|
|
6
|
-
/**
|
|
7
|
-
* Creates a IPluggableStorageWrapper implementation that stores items in memory.
|
|
8
|
-
* The `_cache` property is the object were items are stored.
|
|
9
|
-
* Intended for testing purposes.
|
|
10
|
-
*
|
|
11
|
-
* @param connDelay - delay in millis for `connect` resolve. If not provided, `connect` resolves immediately.
|
|
12
|
-
*/
|
|
13
|
-
function inMemoryWrapperFactory(connDelay) {
|
|
14
|
-
var _cache = {};
|
|
15
|
-
var _connDelay = connDelay;
|
|
16
|
-
return {
|
|
17
|
-
/** Holds items (for key-value operations), list of items (for list operations) and set of items (for set operations) */
|
|
18
|
-
_cache: _cache,
|
|
19
|
-
get: function (key) {
|
|
20
|
-
return Promise.resolve(key in _cache ? _cache[key] : null);
|
|
21
|
-
},
|
|
22
|
-
set: function (key, value) {
|
|
23
|
-
var result = key in _cache;
|
|
24
|
-
_cache[key] = value;
|
|
25
|
-
return Promise.resolve(result);
|
|
26
|
-
},
|
|
27
|
-
getAndSet: function (key, value) {
|
|
28
|
-
var result = key in _cache ? _cache[key] : null;
|
|
29
|
-
_cache[key] = value;
|
|
30
|
-
return Promise.resolve(result);
|
|
31
|
-
},
|
|
32
|
-
del: function (key) {
|
|
33
|
-
var result = key in _cache;
|
|
34
|
-
delete _cache[key];
|
|
35
|
-
return Promise.resolve(result);
|
|
36
|
-
},
|
|
37
|
-
getKeysByPrefix: function (prefix) {
|
|
38
|
-
return Promise.resolve(Object.keys(_cache).filter(function (key) { return (0, lang_1.startsWith)(key, prefix); }));
|
|
39
|
-
},
|
|
40
|
-
incr: function (key, increment) {
|
|
41
|
-
if (increment === void 0) { increment = 1; }
|
|
42
|
-
if (key in _cache) {
|
|
43
|
-
var count = (0, lang_1.toNumber)(_cache[key]) + increment;
|
|
44
|
-
if (isNaN(count))
|
|
45
|
-
return Promise.reject('Given key is not a number');
|
|
46
|
-
_cache[key] = count + '';
|
|
47
|
-
return Promise.resolve(count);
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
_cache[key] = '' + increment;
|
|
51
|
-
return Promise.resolve(1);
|
|
52
|
-
}
|
|
53
|
-
},
|
|
54
|
-
decr: function (key, decrement) {
|
|
55
|
-
if (decrement === void 0) { decrement = 1; }
|
|
56
|
-
if (key in _cache) {
|
|
57
|
-
var count = (0, lang_1.toNumber)(_cache[key]) - decrement;
|
|
58
|
-
if (isNaN(count))
|
|
59
|
-
return Promise.reject('Given key is not a number');
|
|
60
|
-
_cache[key] = count + '';
|
|
61
|
-
return Promise.resolve(count);
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
_cache[key] = '-' + decrement;
|
|
65
|
-
return Promise.resolve(-1);
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
|
-
getMany: function (keys) {
|
|
69
|
-
return Promise.resolve(keys.map(function (key) { return _cache[key] ? _cache[key] : null; }));
|
|
70
|
-
},
|
|
71
|
-
pushItems: function (key, items) {
|
|
72
|
-
if (!(key in _cache))
|
|
73
|
-
_cache[key] = [];
|
|
74
|
-
var list = _cache[key];
|
|
75
|
-
if (Array.isArray(list)) {
|
|
76
|
-
list.push.apply(list, items);
|
|
77
|
-
return Promise.resolve();
|
|
78
|
-
}
|
|
79
|
-
return Promise.reject('key is not a list');
|
|
80
|
-
},
|
|
81
|
-
popItems: function (key, count) {
|
|
82
|
-
var list = _cache[key];
|
|
83
|
-
return Promise.resolve(Array.isArray(list) ? list.splice(0, count) : []);
|
|
84
|
-
},
|
|
85
|
-
getItemsCount: function (key) {
|
|
86
|
-
var list = _cache[key];
|
|
87
|
-
return Promise.resolve(Array.isArray(list) ? list.length : 0);
|
|
88
|
-
},
|
|
89
|
-
itemContains: function (key, item) {
|
|
90
|
-
var set = _cache[key];
|
|
91
|
-
if (!set)
|
|
92
|
-
return Promise.resolve(false);
|
|
93
|
-
if (set instanceof Set)
|
|
94
|
-
return Promise.resolve(set.has(item));
|
|
95
|
-
return Promise.reject('key is not a set');
|
|
96
|
-
},
|
|
97
|
-
addItems: function (key, items) {
|
|
98
|
-
if (!(key in _cache))
|
|
99
|
-
_cache[key] = new Set();
|
|
100
|
-
var set = _cache[key];
|
|
101
|
-
if (set instanceof Set) {
|
|
102
|
-
items.forEach(function (item) { return set.add(item); });
|
|
103
|
-
return Promise.resolve();
|
|
104
|
-
}
|
|
105
|
-
return Promise.reject('key is not a set');
|
|
106
|
-
},
|
|
107
|
-
removeItems: function (key, items) {
|
|
108
|
-
if (!(key in _cache))
|
|
109
|
-
_cache[key] = new Set();
|
|
110
|
-
var set = _cache[key];
|
|
111
|
-
if (set instanceof Set) {
|
|
112
|
-
items.forEach(function (item) { return set.delete(item); });
|
|
113
|
-
return Promise.resolve();
|
|
114
|
-
}
|
|
115
|
-
return Promise.reject('key is not a set');
|
|
116
|
-
},
|
|
117
|
-
getItems: function (key) {
|
|
118
|
-
var set = _cache[key];
|
|
119
|
-
if (!set)
|
|
120
|
-
return Promise.resolve([]);
|
|
121
|
-
if (set instanceof Set)
|
|
122
|
-
return Promise.resolve((0, sets_1.setToArray)(set));
|
|
123
|
-
return Promise.reject('key is not a set');
|
|
124
|
-
},
|
|
125
|
-
// always connects and disconnects
|
|
126
|
-
connect: function () {
|
|
127
|
-
if (typeof _connDelay === 'number') {
|
|
128
|
-
return new Promise(function (res) { return setTimeout(res, _connDelay); });
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
return Promise.resolve();
|
|
132
|
-
}
|
|
133
|
-
},
|
|
134
|
-
disconnect: function () { return Promise.resolve(); },
|
|
135
|
-
// for testing
|
|
136
|
-
_setConnDelay: function (connDelay) {
|
|
137
|
-
_connDelay = connDelay;
|
|
138
|
-
}
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
exports.inMemoryWrapperFactory = inMemoryWrapperFactory;
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PluggableStorage = void 0;
|
|
4
|
-
var tslib_1 = require("tslib");
|
|
5
|
-
var KeyBuilderSS_1 = require("../KeyBuilderSS");
|
|
6
|
-
var SplitsCachePluggable_1 = require("./SplitsCachePluggable");
|
|
7
|
-
var SegmentsCachePluggable_1 = require("./SegmentsCachePluggable");
|
|
8
|
-
var ImpressionsCachePluggable_1 = require("./ImpressionsCachePluggable");
|
|
9
|
-
var EventsCachePluggable_1 = require("./EventsCachePluggable");
|
|
10
|
-
var wrapperAdapter_1 = require("./wrapperAdapter");
|
|
11
|
-
var lang_1 = require("../../utils/lang");
|
|
12
|
-
var KeyBuilder_1 = require("../KeyBuilder");
|
|
13
|
-
var constants_1 = require("../../utils/constants");
|
|
14
|
-
var ImpressionsCacheInMemory_1 = require("../inMemory/ImpressionsCacheInMemory");
|
|
15
|
-
var EventsCacheInMemory_1 = require("../inMemory/EventsCacheInMemory");
|
|
16
|
-
var ImpressionCountsCacheInMemory_1 = require("../inMemory/ImpressionCountsCacheInMemory");
|
|
17
|
-
var TelemetryCacheInMemory_1 = require("../inMemory/TelemetryCacheInMemory");
|
|
18
|
-
var TelemetryCachePluggable_1 = require("./TelemetryCachePluggable");
|
|
19
|
-
var ImpressionCountsCachePluggable_1 = require("./ImpressionCountsCachePluggable");
|
|
20
|
-
var UniqueKeysCachePluggable_1 = require("./UniqueKeysCachePluggable");
|
|
21
|
-
var UniqueKeysCacheInMemory_1 = require("../inMemory/UniqueKeysCacheInMemory");
|
|
22
|
-
var UniqueKeysCacheInMemoryCS_1 = require("../inMemory/UniqueKeysCacheInMemoryCS");
|
|
23
|
-
var utils_1 = require("../utils");
|
|
24
|
-
var constants_2 = require("../pluggable/constants");
|
|
25
|
-
var RBSegmentsCachePluggable_1 = require("./RBSegmentsCachePluggable");
|
|
26
|
-
var NO_VALID_WRAPPER = 'Expecting pluggable storage `wrapper` in options, but no valid wrapper instance was provided.';
|
|
27
|
-
var NO_VALID_WRAPPER_INTERFACE = 'The provided wrapper instance doesn’t follow the expected interface. Check our docs.';
|
|
28
|
-
/**
|
|
29
|
-
* Validate pluggable storage factory options.
|
|
30
|
-
*
|
|
31
|
-
* @param options - user options
|
|
32
|
-
* @throws Will throw an error if the options are invalid. Example: wrapper is not provided or doesn't have some methods.
|
|
33
|
-
*/
|
|
34
|
-
function validatePluggableStorageOptions(options) {
|
|
35
|
-
if (!(0, lang_1.isObject)(options) || !(0, lang_1.isObject)(options.wrapper))
|
|
36
|
-
throw new Error(NO_VALID_WRAPPER);
|
|
37
|
-
var wrapper = options.wrapper;
|
|
38
|
-
var missingMethods = wrapperAdapter_1.METHODS_TO_PROMISE_WRAP.filter(function (method) { return typeof wrapper[method] !== 'function'; });
|
|
39
|
-
if (missingMethods.length)
|
|
40
|
-
throw new Error(NO_VALID_WRAPPER_INTERFACE + " The following methods are missing or invalid: " + missingMethods);
|
|
41
|
-
}
|
|
42
|
-
// Async return type in `client.track` method on consumer partial mode
|
|
43
|
-
// No need to promisify impressions cache
|
|
44
|
-
function promisifyEventsTrack(events) {
|
|
45
|
-
var origTrack = events.track;
|
|
46
|
-
events.track = function () {
|
|
47
|
-
return Promise.resolve(origTrack.apply(this, arguments));
|
|
48
|
-
};
|
|
49
|
-
return events;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Pluggable storage factory for consumer server-side & client-side SplitFactory.
|
|
53
|
-
*/
|
|
54
|
-
function PluggableStorage(options) {
|
|
55
|
-
validatePluggableStorageOptions(options);
|
|
56
|
-
var prefix = (0, KeyBuilder_1.validatePrefix)(options.prefix);
|
|
57
|
-
function PluggableStorageFactory(params) {
|
|
58
|
-
var onReadyCb = params.onReadyCb, settings = params.settings, _a = params.settings, log = _a.log, mode = _a.mode, _b = _a.scheduler, impressionsQueueSize = _b.impressionsQueueSize, eventsQueueSize = _b.eventsQueueSize;
|
|
59
|
-
var metadata = (0, utils_1.metadataBuilder)(settings);
|
|
60
|
-
var keys = new KeyBuilderSS_1.KeyBuilderSS(prefix, metadata);
|
|
61
|
-
var wrapper = (0, wrapperAdapter_1.wrapperAdapter)(log, options.wrapper);
|
|
62
|
-
var isSynchronizer = mode === undefined; // If mode is not defined, the synchronizer is running
|
|
63
|
-
var isPartialConsumer = mode === constants_1.CONSUMER_PARTIAL_MODE;
|
|
64
|
-
var telemetry = (0, TelemetryCacheInMemory_1.shouldRecordTelemetry)(params) || isSynchronizer ?
|
|
65
|
-
isPartialConsumer ?
|
|
66
|
-
new TelemetryCacheInMemory_1.TelemetryCacheInMemory() :
|
|
67
|
-
new TelemetryCachePluggable_1.TelemetryCachePluggable(log, keys, wrapper) :
|
|
68
|
-
undefined;
|
|
69
|
-
var impressionCountsCache = isPartialConsumer ?
|
|
70
|
-
new ImpressionCountsCacheInMemory_1.ImpressionCountsCacheInMemory() :
|
|
71
|
-
new ImpressionCountsCachePluggable_1.ImpressionCountsCachePluggable(log, keys.buildImpressionsCountKey(), wrapper);
|
|
72
|
-
var uniqueKeysCache = isPartialConsumer ?
|
|
73
|
-
settings.core.key === undefined ? new UniqueKeysCacheInMemory_1.UniqueKeysCacheInMemory() : new UniqueKeysCacheInMemoryCS_1.UniqueKeysCacheInMemoryCS() :
|
|
74
|
-
new UniqueKeysCachePluggable_1.UniqueKeysCachePluggable(log, keys.buildUniqueKeysKey(), wrapper);
|
|
75
|
-
// Connects to wrapper and emits SDK_READY event on main client
|
|
76
|
-
var connectPromise = wrapper.connect().then(function () {
|
|
77
|
-
if (isSynchronizer) {
|
|
78
|
-
// @TODO reuse InLocalStorage::validateCache logic
|
|
79
|
-
// In standalone or producer mode, clear storage if SDK key, flags filter criteria or flags spec version was modified
|
|
80
|
-
return wrapper.get(keys.buildHashKey()).then(function (hash) {
|
|
81
|
-
var currentHash = (0, KeyBuilder_1.getStorageHash)(settings);
|
|
82
|
-
if (hash !== currentHash) {
|
|
83
|
-
log.info(constants_2.LOG_PREFIX + 'Storage HASH has changed (SDK key, flags filter criteria or flags spec version was modified). Clearing cache');
|
|
84
|
-
return wrapper.getKeysByPrefix(keys.prefix + ".").then(function (storageKeys) {
|
|
85
|
-
return Promise.all(storageKeys.map(function (storageKey) { return wrapper.del(storageKey); }));
|
|
86
|
-
}).then(function () { return wrapper.set(keys.buildHashKey(), currentHash); });
|
|
87
|
-
}
|
|
88
|
-
}).then(function () {
|
|
89
|
-
onReadyCb();
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
// Start periodic flush of async storages if not running synchronizer (producer mode)
|
|
94
|
-
if (impressionCountsCache.start)
|
|
95
|
-
impressionCountsCache.start();
|
|
96
|
-
if (uniqueKeysCache.start)
|
|
97
|
-
uniqueKeysCache.start();
|
|
98
|
-
if (telemetry && telemetry.recordConfig)
|
|
99
|
-
telemetry.recordConfig();
|
|
100
|
-
onReadyCb();
|
|
101
|
-
}
|
|
102
|
-
}).catch(function (e) {
|
|
103
|
-
e = e || new Error('Error connecting wrapper');
|
|
104
|
-
onReadyCb(e);
|
|
105
|
-
return e; // Propagate error for shared clients
|
|
106
|
-
});
|
|
107
|
-
return {
|
|
108
|
-
splits: new SplitsCachePluggable_1.SplitsCachePluggable(log, keys, wrapper, settings.sync.__splitFiltersValidation),
|
|
109
|
-
rbSegments: new RBSegmentsCachePluggable_1.RBSegmentsCachePluggable(log, keys, wrapper),
|
|
110
|
-
segments: new SegmentsCachePluggable_1.SegmentsCachePluggable(log, keys, wrapper),
|
|
111
|
-
impressions: isPartialConsumer ? new ImpressionsCacheInMemory_1.ImpressionsCacheInMemory(impressionsQueueSize) : new ImpressionsCachePluggable_1.ImpressionsCachePluggable(log, keys.buildImpressionsKey(), wrapper, metadata),
|
|
112
|
-
impressionCounts: impressionCountsCache,
|
|
113
|
-
events: isPartialConsumer ? promisifyEventsTrack(new EventsCacheInMemory_1.EventsCacheInMemory(eventsQueueSize)) : new EventsCachePluggable_1.EventsCachePluggable(log, keys.buildEventsKey(), wrapper, metadata),
|
|
114
|
-
telemetry: telemetry,
|
|
115
|
-
uniqueKeys: uniqueKeysCache,
|
|
116
|
-
// Stop periodic flush and disconnect the underlying storage
|
|
117
|
-
destroy: function () {
|
|
118
|
-
return Promise.all(isSynchronizer ? [] : [
|
|
119
|
-
impressionCountsCache.stop && impressionCountsCache.stop(),
|
|
120
|
-
uniqueKeysCache.stop && uniqueKeysCache.stop(),
|
|
121
|
-
]).then(function () { return wrapper.disconnect(); });
|
|
122
|
-
},
|
|
123
|
-
// emits SDK_READY event on shared clients and returns a reference to the storage
|
|
124
|
-
shared: function (_, onReadyCb) {
|
|
125
|
-
connectPromise.then(onReadyCb);
|
|
126
|
-
return (0, tslib_1.__assign)((0, tslib_1.__assign)({}, this), {
|
|
127
|
-
// no-op destroy, to disconnect the wrapper only when the main client is destroyed
|
|
128
|
-
destroy: function () { } });
|
|
129
|
-
}
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
PluggableStorageFactory.type = constants_1.STORAGE_PLUGGABLE;
|
|
133
|
-
return PluggableStorageFactory;
|
|
134
|
-
}
|
|
135
|
-
exports.PluggableStorage = PluggableStorage;
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.wrapperAdapter = exports.METHODS_TO_PROMISE_WRAP = void 0;
|
|
4
|
-
var constants_1 = require("./constants");
|
|
5
|
-
exports.METHODS_TO_PROMISE_WRAP = [
|
|
6
|
-
'get',
|
|
7
|
-
'set',
|
|
8
|
-
'getAndSet',
|
|
9
|
-
'del',
|
|
10
|
-
'getKeysByPrefix',
|
|
11
|
-
'incr',
|
|
12
|
-
'decr',
|
|
13
|
-
'getMany',
|
|
14
|
-
'pushItems',
|
|
15
|
-
'popItems',
|
|
16
|
-
'getItemsCount',
|
|
17
|
-
'itemContains',
|
|
18
|
-
'addItems',
|
|
19
|
-
'removeItems',
|
|
20
|
-
'getItems',
|
|
21
|
-
'connect',
|
|
22
|
-
'disconnect'
|
|
23
|
-
];
|
|
24
|
-
/**
|
|
25
|
-
* Adapter of the Pluggable Storage Wrapper.
|
|
26
|
-
* Used to handle exceptions as rejected promises, in order to simplify the error handling on storages.
|
|
27
|
-
*
|
|
28
|
-
* @param log - logger instance
|
|
29
|
-
* @param wrapper - storage wrapper to adapt
|
|
30
|
-
* @returns an adapted version of the given storage wrapper
|
|
31
|
-
*/
|
|
32
|
-
function wrapperAdapter(log, wrapper) {
|
|
33
|
-
var wrapperAdapter = {};
|
|
34
|
-
exports.METHODS_TO_PROMISE_WRAP.forEach(function (method) {
|
|
35
|
-
// Logs error and wraps it into a rejected promise.
|
|
36
|
-
function handleError(e) {
|
|
37
|
-
log.error(constants_1.LOG_PREFIX + " Wrapper '" + method + "' operation threw an error. Message: " + e);
|
|
38
|
-
return Promise.reject(e);
|
|
39
|
-
}
|
|
40
|
-
wrapperAdapter[method] = function () {
|
|
41
|
-
try {
|
|
42
|
-
// @ts-ignore
|
|
43
|
-
return wrapper[method].apply(wrapper, arguments).then(function (value) { return value; }).catch(handleError);
|
|
44
|
-
}
|
|
45
|
-
catch (e) {
|
|
46
|
-
return handleError(e);
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
});
|
|
50
|
-
// @ts-ignore
|
|
51
|
-
return wrapperAdapter;
|
|
52
|
-
}
|
|
53
|
-
exports.wrapperAdapter = wrapperAdapter;
|
package/cjs/storages/types.js
DELETED
package/cjs/storages/utils.js
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// Shared utils for Redis and Pluggable storage
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.parseLatencyField = exports.parseExceptionField = exports.parseMetadata = exports.impressionsToJSON = exports.metadataBuilder = void 0;
|
|
5
|
-
var constants_1 = require("../utils/constants");
|
|
6
|
-
var TelemetryCacheInMemory_1 = require("./inMemory/TelemetryCacheInMemory");
|
|
7
|
-
var KeyBuilderSS_1 = require("./KeyBuilderSS");
|
|
8
|
-
function metadataBuilder(settings) {
|
|
9
|
-
return {
|
|
10
|
-
s: settings.version,
|
|
11
|
-
i: settings.runtime.ip || constants_1.UNKNOWN,
|
|
12
|
-
n: settings.runtime.hostname || constants_1.UNKNOWN,
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
exports.metadataBuilder = metadataBuilder;
|
|
16
|
-
// Converts impressions to be stored in Redis or pluggable storage.
|
|
17
|
-
function impressionsToJSON(impressions, metadata) {
|
|
18
|
-
return impressions.map(function (impression) {
|
|
19
|
-
var impressionWithMetadata = {
|
|
20
|
-
m: metadata,
|
|
21
|
-
i: {
|
|
22
|
-
k: impression.keyName,
|
|
23
|
-
b: impression.bucketingKey,
|
|
24
|
-
f: impression.feature,
|
|
25
|
-
t: impression.treatment,
|
|
26
|
-
r: impression.label,
|
|
27
|
-
c: impression.changeNumber,
|
|
28
|
-
m: impression.time,
|
|
29
|
-
pt: impression.pt,
|
|
30
|
-
properties: impression.properties
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
return JSON.stringify(impressionWithMetadata);
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
exports.impressionsToJSON = impressionsToJSON;
|
|
37
|
-
// Utilities used by TelemetryCacheInRedis and TelemetryCachePluggable
|
|
38
|
-
var REVERSE_METHOD_NAMES = Object.keys(KeyBuilderSS_1.METHOD_NAMES).reduce(function (acc, key) {
|
|
39
|
-
acc[KeyBuilderSS_1.METHOD_NAMES[key]] = key;
|
|
40
|
-
return acc;
|
|
41
|
-
}, {});
|
|
42
|
-
function parseMetadata(field) {
|
|
43
|
-
var parts = field.split('/');
|
|
44
|
-
if (parts.length !== 3)
|
|
45
|
-
return "invalid subsection count. Expected 3, got: " + parts.length;
|
|
46
|
-
var s = parts[0] /* metadata.s */, n = parts[1] /* metadata.n */, i = parts[2] /* metadata.i */;
|
|
47
|
-
return [JSON.stringify({ s: s, n: n, i: i })];
|
|
48
|
-
}
|
|
49
|
-
exports.parseMetadata = parseMetadata;
|
|
50
|
-
function parseExceptionField(field) {
|
|
51
|
-
var parts = field.split('/');
|
|
52
|
-
if (parts.length !== 4)
|
|
53
|
-
return "invalid subsection count. Expected 4, got: " + parts.length;
|
|
54
|
-
var s = parts[0] /* metadata.s */, n = parts[1] /* metadata.n */, i = parts[2] /* metadata.i */, m = parts[3];
|
|
55
|
-
var method = REVERSE_METHOD_NAMES[m];
|
|
56
|
-
if (!method)
|
|
57
|
-
return "unknown method '" + m + "'";
|
|
58
|
-
return [JSON.stringify({ s: s, n: n, i: i }), method];
|
|
59
|
-
}
|
|
60
|
-
exports.parseExceptionField = parseExceptionField;
|
|
61
|
-
function parseLatencyField(field) {
|
|
62
|
-
var parts = field.split('/');
|
|
63
|
-
if (parts.length !== 5)
|
|
64
|
-
return "invalid subsection count. Expected 5, got: " + parts.length;
|
|
65
|
-
var s = parts[0] /* metadata.s */, n = parts[1] /* metadata.n */, i = parts[2] /* metadata.i */, m = parts[3], b = parts[4];
|
|
66
|
-
var method = REVERSE_METHOD_NAMES[m];
|
|
67
|
-
if (!method)
|
|
68
|
-
return "unknown method '" + m + "'";
|
|
69
|
-
var bucket = parseInt(b);
|
|
70
|
-
if (isNaN(bucket) || bucket >= TelemetryCacheInMemory_1.MAX_LATENCY_BUCKET_COUNT)
|
|
71
|
-
return "invalid bucket. Expected a number between 0 and " + (TelemetryCacheInMemory_1.MAX_LATENCY_BUCKET_COUNT - 1) + ", got: " + b;
|
|
72
|
-
return [JSON.stringify({ s: s, n: n, i: i }), method, bucket];
|
|
73
|
-
}
|
|
74
|
-
exports.parseLatencyField = parseLatencyField;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.localhostFromObjectFactory = void 0;
|
|
4
|
-
var splitsParserFromSettings_1 = require("./splitsParser/splitsParserFromSettings");
|
|
5
|
-
var syncManagerOffline_1 = require("./syncManagerOffline");
|
|
6
|
-
// Singleton instance of the factory function for offline SyncManager from object
|
|
7
|
-
// SDK instances instantiate their SyncManagers with the same factory
|
|
8
|
-
exports.localhostFromObjectFactory = (0, syncManagerOffline_1.syncManagerOfflineFactory)(splitsParserFromSettings_1.splitsParserFromSettingsFactory);
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseCondition = void 0;
|
|
4
|
-
var lang_1 = require("../../../utils/lang");
|
|
5
|
-
function parseCondition(data) {
|
|
6
|
-
var treatment = data.treatment;
|
|
7
|
-
if (data.keys) {
|
|
8
|
-
return {
|
|
9
|
-
conditionType: 'WHITELIST',
|
|
10
|
-
matcherGroup: {
|
|
11
|
-
combiner: 'AND',
|
|
12
|
-
matchers: [
|
|
13
|
-
{
|
|
14
|
-
keySelector: null,
|
|
15
|
-
matcherType: 'WHITELIST',
|
|
16
|
-
negate: false,
|
|
17
|
-
whitelistMatcherData: {
|
|
18
|
-
whitelist: (0, lang_1.isString)(data.keys) ? [data.keys] : data.keys
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
]
|
|
22
|
-
},
|
|
23
|
-
partitions: [
|
|
24
|
-
{
|
|
25
|
-
treatment: treatment,
|
|
26
|
-
size: 100
|
|
27
|
-
}
|
|
28
|
-
],
|
|
29
|
-
label: "whitelisted " + treatment
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
return {
|
|
34
|
-
conditionType: 'ROLLOUT',
|
|
35
|
-
matcherGroup: {
|
|
36
|
-
combiner: 'AND',
|
|
37
|
-
matchers: [
|
|
38
|
-
{
|
|
39
|
-
keySelector: null,
|
|
40
|
-
matcherType: 'ALL_KEYS',
|
|
41
|
-
negate: false
|
|
42
|
-
}
|
|
43
|
-
]
|
|
44
|
-
},
|
|
45
|
-
partitions: [
|
|
46
|
-
{
|
|
47
|
-
treatment: treatment,
|
|
48
|
-
size: 100
|
|
49
|
-
}
|
|
50
|
-
],
|
|
51
|
-
label: 'default rule'
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
exports.parseCondition = parseCondition;
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.splitsParserFromSettingsFactory = void 0;
|
|
4
|
-
var lang_1 = require("../../../utils/lang");
|
|
5
|
-
var parseCondition_1 = require("./parseCondition");
|
|
6
|
-
function hasTreatmentChanged(prev, curr) {
|
|
7
|
-
if (typeof prev !== typeof curr)
|
|
8
|
-
return true;
|
|
9
|
-
if (typeof prev === 'string') { // strings treatments, just compare
|
|
10
|
-
return prev !== curr;
|
|
11
|
-
}
|
|
12
|
-
else { // has treatment and config, compare both
|
|
13
|
-
return prev.treatment !== curr.treatment || prev.config !== curr.config;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
function splitsParserFromSettingsFactory() {
|
|
17
|
-
var previousMock = { 'emptyMock': '1' };
|
|
18
|
-
function mockUpdated(currentData) {
|
|
19
|
-
var names = Object.keys(currentData);
|
|
20
|
-
// Different amount of items
|
|
21
|
-
if (names.length !== Object.keys(previousMock).length) {
|
|
22
|
-
previousMock = (0, lang_1.merge)({}, currentData);
|
|
23
|
-
return true;
|
|
24
|
-
}
|
|
25
|
-
return names.some(function (name) {
|
|
26
|
-
var newSplit = !previousMock[name];
|
|
27
|
-
var newTreatment = hasTreatmentChanged(previousMock[name], currentData[name]);
|
|
28
|
-
var changed = newSplit || newTreatment;
|
|
29
|
-
if (changed)
|
|
30
|
-
previousMock = (0, lang_1.merge)({}, currentData);
|
|
31
|
-
return changed;
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
*
|
|
36
|
-
* @param settings - validated object with mocked features mapping.
|
|
37
|
-
*/
|
|
38
|
-
return function splitsParserFromSettings(settings) {
|
|
39
|
-
var features = settings.features || {};
|
|
40
|
-
if (!mockUpdated(features))
|
|
41
|
-
return false;
|
|
42
|
-
var splitObjects = {};
|
|
43
|
-
(0, lang_1.forOwn)(features, function (data, splitName) {
|
|
44
|
-
var treatment = data;
|
|
45
|
-
var config = null;
|
|
46
|
-
if ((0, lang_1.isObject)(data)) {
|
|
47
|
-
treatment = data.treatment;
|
|
48
|
-
config = data.config || config;
|
|
49
|
-
}
|
|
50
|
-
var configurations = {};
|
|
51
|
-
if (config !== null)
|
|
52
|
-
configurations[treatment] = config;
|
|
53
|
-
splitObjects[splitName] = {
|
|
54
|
-
trafficTypeName: 'localhost',
|
|
55
|
-
conditions: [(0, parseCondition_1.parseCondition)({ treatment: treatment })],
|
|
56
|
-
configurations: configurations
|
|
57
|
-
};
|
|
58
|
-
});
|
|
59
|
-
return splitObjects;
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
exports.splitsParserFromSettingsFactory = splitsParserFromSettingsFactory;
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.syncManagerOfflineFactory = void 0;
|
|
4
|
-
var fromObjectSyncTask_1 = require("./syncTasks/fromObjectSyncTask");
|
|
5
|
-
var objectAssign_1 = require("../../utils/lang/objectAssign");
|
|
6
|
-
var constants_1 = require("../../readiness/constants");
|
|
7
|
-
function flush() {
|
|
8
|
-
return Promise.resolve();
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Offline SyncManager factory.
|
|
12
|
-
* Can be used for server-side API, and client-side API with or without multiple clients.
|
|
13
|
-
*
|
|
14
|
-
* @param splitsParser - e.g., `splitsParserFromFile`, `splitsParserFromSettings`.
|
|
15
|
-
*/
|
|
16
|
-
function syncManagerOfflineFactory(splitsParserFactory) {
|
|
17
|
-
/**
|
|
18
|
-
* SyncManager factory for modular SDK
|
|
19
|
-
*/
|
|
20
|
-
return function (_a) {
|
|
21
|
-
var settings = _a.settings, readiness = _a.readiness, storage = _a.storage;
|
|
22
|
-
var mainSyncManager = (0, fromObjectSyncTask_1.fromObjectSyncTaskFactory)(splitsParserFactory(), storage, readiness, settings);
|
|
23
|
-
var mainStart = mainSyncManager.start;
|
|
24
|
-
var sharedStarts = [];
|
|
25
|
-
return (0, objectAssign_1.objectAssign)(mainSyncManager, {
|
|
26
|
-
start: function () {
|
|
27
|
-
mainStart();
|
|
28
|
-
sharedStarts.forEach(function (cb) { return cb(); });
|
|
29
|
-
sharedStarts.length = 0;
|
|
30
|
-
},
|
|
31
|
-
// fake flush, that resolves immediately
|
|
32
|
-
flush: flush,
|
|
33
|
-
// [Only used for client-side]
|
|
34
|
-
shared: function (matchingKey, readinessManager) {
|
|
35
|
-
// In LOCALHOST mode, shared clients are ready in the next event-loop cycle than created
|
|
36
|
-
// SDK_READY cannot be emitted directly because this will not update the readiness status
|
|
37
|
-
function emitSdkReady() {
|
|
38
|
-
readinessManager.segments.emit(constants_1.SDK_SEGMENTS_ARRIVED); // SDK_SPLITS_ARRIVED emitted by main SyncManager
|
|
39
|
-
}
|
|
40
|
-
if (mainSyncManager.isRunning())
|
|
41
|
-
setTimeout(emitSdkReady);
|
|
42
|
-
else
|
|
43
|
-
sharedStarts.push(emitSdkReady);
|
|
44
|
-
return {
|
|
45
|
-
stop: function () { },
|
|
46
|
-
flush: flush,
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
exports.syncManagerOfflineFactory = syncManagerOfflineFactory;
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.fromObjectSyncTaskFactory = exports.fromObjectUpdaterFactory = void 0;
|
|
4
|
-
var lang_1 = require("../../../utils/lang");
|
|
5
|
-
var syncTask_1 = require("../../syncTask");
|
|
6
|
-
var constants_1 = require("../../../utils/constants");
|
|
7
|
-
var constants_2 = require("../../../readiness/constants");
|
|
8
|
-
var constants_3 = require("../../../logger/constants");
|
|
9
|
-
/**
|
|
10
|
-
* Offline equivalent of `splitChangesUpdaterFactory`
|
|
11
|
-
*/
|
|
12
|
-
function fromObjectUpdaterFactory(splitsParser, storage, readiness, settings) {
|
|
13
|
-
var log = settings.log, splitsCache = storage.splits;
|
|
14
|
-
var startingUp = true;
|
|
15
|
-
return function objectUpdater() {
|
|
16
|
-
var splits = [];
|
|
17
|
-
var loadError = null;
|
|
18
|
-
var splitsMock = {};
|
|
19
|
-
try {
|
|
20
|
-
splitsMock = splitsParser(settings);
|
|
21
|
-
}
|
|
22
|
-
catch (err) {
|
|
23
|
-
loadError = err;
|
|
24
|
-
log.error(constants_3.ERROR_SYNC_OFFLINE_LOADING, [err]);
|
|
25
|
-
}
|
|
26
|
-
if (!loadError && splitsMock) {
|
|
27
|
-
log.debug(constants_3.SYNC_OFFLINE_DATA, [JSON.stringify(splitsMock)]);
|
|
28
|
-
(0, lang_1.forOwn)(splitsMock, function (val, name) {
|
|
29
|
-
// @ts-ignore Split changeNumber and seed is undefined in localhost mode
|
|
30
|
-
splits.push({
|
|
31
|
-
name: name,
|
|
32
|
-
status: 'ACTIVE',
|
|
33
|
-
killed: false,
|
|
34
|
-
trafficAllocation: 100,
|
|
35
|
-
defaultTreatment: constants_1.CONTROL,
|
|
36
|
-
conditions: val.conditions || [],
|
|
37
|
-
configurations: val.configurations,
|
|
38
|
-
trafficTypeName: val.trafficTypeName
|
|
39
|
-
});
|
|
40
|
-
});
|
|
41
|
-
return Promise.all([
|
|
42
|
-
splitsCache.clear(),
|
|
43
|
-
splitsCache.update(splits, [], Date.now())
|
|
44
|
-
]).then(function () {
|
|
45
|
-
readiness.splits.emit(constants_2.SDK_SPLITS_ARRIVED);
|
|
46
|
-
if (startingUp) {
|
|
47
|
-
startingUp = false;
|
|
48
|
-
Promise.resolve(storage.validateCache ? storage.validateCache() : false).then(function (isCacheLoaded) {
|
|
49
|
-
// Emits SDK_READY_FROM_CACHE
|
|
50
|
-
if (isCacheLoaded)
|
|
51
|
-
readiness.splits.emit(constants_2.SDK_SPLITS_CACHE_LOADED);
|
|
52
|
-
// Emits SDK_READY
|
|
53
|
-
readiness.segments.emit(constants_2.SDK_SEGMENTS_ARRIVED);
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
return true;
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
return Promise.resolve(true);
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
exports.fromObjectUpdaterFactory = fromObjectUpdaterFactory;
|
|
65
|
-
/**
|
|
66
|
-
* PollingManager in Offline mode
|
|
67
|
-
*/
|
|
68
|
-
function fromObjectSyncTaskFactory(splitsParser, storage, readiness, settings) {
|
|
69
|
-
return (0, syncTask_1.syncTaskFactory)(settings.log, fromObjectUpdaterFactory(splitsParser, storage, readiness, settings), settings.scheduler.offlineRefreshRate, 'offlineUpdater');
|
|
70
|
-
}
|
|
71
|
-
exports.fromObjectSyncTaskFactory = fromObjectSyncTaskFactory;
|