@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,47 +0,0 @@
|
|
|
1
|
-
import { isObject, isString, isFiniteNumber, toString } from '../lang';
|
|
2
|
-
import { ERROR_NULL, WARN_CONVERTING, ERROR_EMPTY, ERROR_TOO_LONG, ERROR_INVALID, ERROR_INVALID_KEY_OBJECT } from '../../logger/constants';
|
|
3
|
-
var KEY_MAX_LENGTH = 250;
|
|
4
|
-
function validateKeyValue(log, maybeKey, method, type) {
|
|
5
|
-
if (maybeKey == undefined) { // eslint-disable-line eqeqeq
|
|
6
|
-
log.error(ERROR_NULL, [method, type]);
|
|
7
|
-
return false;
|
|
8
|
-
}
|
|
9
|
-
if (isFiniteNumber(maybeKey)) {
|
|
10
|
-
log.warn(WARN_CONVERTING, [method, type, maybeKey]);
|
|
11
|
-
return toString(maybeKey);
|
|
12
|
-
}
|
|
13
|
-
if (isString(maybeKey)) {
|
|
14
|
-
// It's a string, start by trimming the value.
|
|
15
|
-
maybeKey = maybeKey.trim();
|
|
16
|
-
// It's aaaaaall good.
|
|
17
|
-
if (maybeKey.length > 0 && maybeKey.length <= KEY_MAX_LENGTH)
|
|
18
|
-
return maybeKey;
|
|
19
|
-
if (maybeKey.length === 0) {
|
|
20
|
-
log.error(ERROR_EMPTY, [method, type]);
|
|
21
|
-
}
|
|
22
|
-
else if (maybeKey.length > KEY_MAX_LENGTH) {
|
|
23
|
-
log.error(ERROR_TOO_LONG, [method, type]);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
log.error(ERROR_INVALID, [method, type]);
|
|
28
|
-
}
|
|
29
|
-
return false;
|
|
30
|
-
}
|
|
31
|
-
export function validateKey(log, maybeKey, method) {
|
|
32
|
-
if (isObject(maybeKey)) {
|
|
33
|
-
// Validate key object
|
|
34
|
-
var matchingKey = validateKeyValue(log, maybeKey.matchingKey, method, 'matchingKey');
|
|
35
|
-
var bucketingKey = validateKeyValue(log, maybeKey.bucketingKey, method, 'bucketingKey');
|
|
36
|
-
if (matchingKey && bucketingKey)
|
|
37
|
-
return {
|
|
38
|
-
matchingKey: matchingKey,
|
|
39
|
-
bucketingKey: bucketingKey
|
|
40
|
-
};
|
|
41
|
-
log.error(ERROR_INVALID_KEY_OBJECT, [method]);
|
|
42
|
-
return false;
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
return validateKeyValue(log, maybeKey, method, 'key');
|
|
46
|
-
}
|
|
47
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { isObject, isString, isFiniteNumber } from '../lang';
|
|
2
|
-
import { validateSplit } from './split';
|
|
3
|
-
function validateTimestampData(log, maybeTimestamp, method, item) {
|
|
4
|
-
if (isFiniteNumber(maybeTimestamp) && maybeTimestamp > -1)
|
|
5
|
-
return true;
|
|
6
|
-
log.error(method + ": preloadedData." + item + " must be a positive number.");
|
|
7
|
-
return false;
|
|
8
|
-
}
|
|
9
|
-
function validateSplitsData(log, maybeSplitsData, method) {
|
|
10
|
-
if (isObject(maybeSplitsData)) {
|
|
11
|
-
var splitNames = Object.keys(maybeSplitsData);
|
|
12
|
-
if (splitNames.length === 0)
|
|
13
|
-
log.warn(method + ": preloadedData.splitsData doesn't contain feature flag definitions.");
|
|
14
|
-
// @TODO in the future, consider handling the possibility of having parsed definitions of splits
|
|
15
|
-
if (splitNames.every(function (splitName) { return validateSplit(log, splitName, method) && isString(maybeSplitsData[splitName]); }))
|
|
16
|
-
return true;
|
|
17
|
-
}
|
|
18
|
-
log.error(method + ": preloadedData.splitsData must be a map of feature flag names to their stringified definitions.");
|
|
19
|
-
return false;
|
|
20
|
-
}
|
|
21
|
-
function validateMySegmentsData(log, maybeMySegmentsData, method) {
|
|
22
|
-
if (isObject(maybeMySegmentsData)) {
|
|
23
|
-
var userKeys = Object.keys(maybeMySegmentsData);
|
|
24
|
-
if (userKeys.every(function (userKey) {
|
|
25
|
-
var segmentNames = maybeMySegmentsData[userKey];
|
|
26
|
-
// an empty list is valid
|
|
27
|
-
return Array.isArray(segmentNames) && segmentNames.every(function (segmentName) { return isString(segmentName); });
|
|
28
|
-
}))
|
|
29
|
-
return true;
|
|
30
|
-
}
|
|
31
|
-
log.error(method + ": preloadedData.mySegmentsData must be a map of user keys to their list of segment names.");
|
|
32
|
-
return false;
|
|
33
|
-
}
|
|
34
|
-
function validateSegmentsData(log, maybeSegmentsData, method) {
|
|
35
|
-
if (isObject(maybeSegmentsData)) {
|
|
36
|
-
var segmentNames = Object.keys(maybeSegmentsData);
|
|
37
|
-
if (segmentNames.every(function (segmentName) { return isString(maybeSegmentsData[segmentName]); }))
|
|
38
|
-
return true;
|
|
39
|
-
}
|
|
40
|
-
log.error(method + ": preloadedData.segmentsData must be a map of segment names to their stringified definitions.");
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
43
|
-
export function validatePreloadedData(log, maybePreloadedData, method) {
|
|
44
|
-
if (!isObject(maybePreloadedData)) {
|
|
45
|
-
log.error(method + ": preloadedData must be an object.");
|
|
46
|
-
}
|
|
47
|
-
else if (validateTimestampData(log, maybePreloadedData.lastUpdated, method, 'lastUpdated') &&
|
|
48
|
-
validateTimestampData(log, maybePreloadedData.since, method, 'since') &&
|
|
49
|
-
validateSplitsData(log, maybePreloadedData.splitsData, method) &&
|
|
50
|
-
(!maybePreloadedData.mySegmentsData || validateMySegmentsData(log, maybePreloadedData.mySegmentsData, method)) &&
|
|
51
|
-
(!maybePreloadedData.segmentsData || validateSegmentsData(log, maybePreloadedData.segmentsData, method))) {
|
|
52
|
-
return true;
|
|
53
|
-
}
|
|
54
|
-
return false;
|
|
55
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { ERROR_NULL, ERROR_INVALID, WARN_TRIMMING, ERROR_EMPTY } from '../../logger/constants';
|
|
2
|
-
import { isString } from '../lang';
|
|
3
|
-
// include BOM and nbsp
|
|
4
|
-
var TRIMMABLE_SPACES_REGEX = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/;
|
|
5
|
-
export function validateSplit(log, maybeSplit, method, item) {
|
|
6
|
-
if (item === void 0) { item = 'feature flag name'; }
|
|
7
|
-
if (maybeSplit == undefined) { // eslint-disable-line eqeqeq
|
|
8
|
-
log.error(ERROR_NULL, [method, item]);
|
|
9
|
-
}
|
|
10
|
-
else if (!isString(maybeSplit)) {
|
|
11
|
-
log.error(ERROR_INVALID, [method, item]);
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
if (TRIMMABLE_SPACES_REGEX.test(maybeSplit)) {
|
|
15
|
-
log.warn(WARN_TRIMMING, [method, item, maybeSplit]);
|
|
16
|
-
maybeSplit = maybeSplit.trim();
|
|
17
|
-
}
|
|
18
|
-
if (maybeSplit.length > 0) {
|
|
19
|
-
return maybeSplit;
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
log.error(ERROR_EMPTY, [method, item]);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
return false;
|
|
26
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { SPLIT_NOT_FOUND } from '../labels';
|
|
2
|
-
import { WARN_NOT_EXISTENT_SPLIT } from '../../logger/constants';
|
|
3
|
-
/**
|
|
4
|
-
* This is defined here and in this format mostly because of the logger and the fact that it's considered a validation at product level.
|
|
5
|
-
* But it's not going to run on the input validation layer. In any case, the most compeling reason to use it as we do is to avoid going to Redis and get a split twice.
|
|
6
|
-
*/
|
|
7
|
-
export function validateSplitExistence(log, readinessManager, splitName, labelOrSplitObj, method) {
|
|
8
|
-
if (readinessManager.isReady()) { // Only if it's ready we validate this, otherwise it may just be that the SDK is not ready yet.
|
|
9
|
-
if (labelOrSplitObj === SPLIT_NOT_FOUND || labelOrSplitObj == null) {
|
|
10
|
-
log.warn(WARN_NOT_EXISTENT_SPLIT, [method, splitName]);
|
|
11
|
-
return false;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
return true;
|
|
15
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { ERROR_EMPTY_ARRAY } from '../../logger/constants';
|
|
2
|
-
import { uniq } from '../lang';
|
|
3
|
-
import { validateSplit } from './split';
|
|
4
|
-
export function validateSplits(log, maybeSplits, method, listName, item) {
|
|
5
|
-
if (listName === void 0) { listName = 'feature flag names'; }
|
|
6
|
-
if (item === void 0) { item = 'feature flag name'; }
|
|
7
|
-
if (Array.isArray(maybeSplits) && maybeSplits.length > 0) {
|
|
8
|
-
var validatedArray_1 = [];
|
|
9
|
-
// Remove invalid values
|
|
10
|
-
maybeSplits.forEach(function (maybeSplit) {
|
|
11
|
-
var splitName = validateSplit(log, maybeSplit, method, item);
|
|
12
|
-
if (splitName)
|
|
13
|
-
validatedArray_1.push(splitName);
|
|
14
|
-
});
|
|
15
|
-
// Strip off duplicated values if we have valid split names then return
|
|
16
|
-
if (validatedArray_1.length)
|
|
17
|
-
return uniq(validatedArray_1);
|
|
18
|
-
}
|
|
19
|
-
log.error(ERROR_EMPTY_ARRAY, [method, listName]);
|
|
20
|
-
return false;
|
|
21
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { ERROR_NULL, ERROR_INVALID, ERROR_EMPTY, WARN_LOWERCASE_TRAFFIC_TYPE } from '../../logger/constants';
|
|
2
|
-
import { isString } from '../lang';
|
|
3
|
-
var CAPITAL_LETTERS_REGEX = /[A-Z]/;
|
|
4
|
-
var item = 'traffic_type';
|
|
5
|
-
export function validateTrafficType(log, maybeTT, method) {
|
|
6
|
-
if (maybeTT == undefined) { // eslint-disable-line eqeqeq
|
|
7
|
-
log.error(ERROR_NULL, [method, item]);
|
|
8
|
-
}
|
|
9
|
-
else if (!isString(maybeTT)) {
|
|
10
|
-
log.error(ERROR_INVALID, [method, item]);
|
|
11
|
-
}
|
|
12
|
-
else {
|
|
13
|
-
if (maybeTT.length === 0) {
|
|
14
|
-
log.error(ERROR_EMPTY, [method, item]);
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
if (CAPITAL_LETTERS_REGEX.test(maybeTT)) {
|
|
18
|
-
log.warn(WARN_LOWERCASE_TRAFFIC_TYPE, [method]);
|
|
19
|
-
maybeTT = maybeTT.toLowerCase();
|
|
20
|
-
}
|
|
21
|
-
return maybeTT;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
return false;
|
|
25
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { thenable } from '../promise/thenable';
|
|
2
|
-
import { LOCALHOST_MODE } from '../constants';
|
|
3
|
-
import { WARN_NOT_EXISTENT_TT } from '../../logger/constants';
|
|
4
|
-
function logTTExistenceWarning(log, maybeTT, method) {
|
|
5
|
-
log.warn(WARN_NOT_EXISTENT_TT, [method, maybeTT]);
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Separated from the previous method since on some cases it'll be async.
|
|
9
|
-
*/
|
|
10
|
-
export function validateTrafficTypeExistence(log, readinessManager, splitsCache, mode, maybeTT, method) {
|
|
11
|
-
// If not ready or in localhost mode, we won't run the validation
|
|
12
|
-
if (!readinessManager.isReady() || mode === LOCALHOST_MODE)
|
|
13
|
-
return true;
|
|
14
|
-
var res = splitsCache.trafficTypeExists(maybeTT); // never rejects or throws error
|
|
15
|
-
if (thenable(res)) {
|
|
16
|
-
return res.then(function (isValid) {
|
|
17
|
-
if (!isValid)
|
|
18
|
-
logTTExistenceWarning(log, maybeTT, method);
|
|
19
|
-
return isValid; // propagate result
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
if (!res)
|
|
24
|
-
logTTExistenceWarning(log, maybeTT, method);
|
|
25
|
-
return res;
|
|
26
|
-
}
|
|
27
|
-
}
|
package/esm/utils/jwt/index.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { decodeFromBase64 } from '../base64';
|
|
2
|
-
/**
|
|
3
|
-
* Decode a JWT token.
|
|
4
|
-
*/
|
|
5
|
-
export function decodeJWTtoken(token) {
|
|
6
|
-
var base64Url = token.split('.')[1];
|
|
7
|
-
var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
|
|
8
|
-
// no need to check availability of `encodeURIComponent`, since it is a function highly supported in browsers, node and other platforms.
|
|
9
|
-
var jsonPayload = decodeURIComponent(decodeFromBase64(base64).split('').map(function (c) {
|
|
10
|
-
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
|
|
11
|
-
}).join(''));
|
|
12
|
-
return JSON.parse(jsonPayload);
|
|
13
|
-
}
|
package/esm/utils/jwt/types.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/esm/utils/key/index.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { isObject } from '../lang';
|
|
2
|
-
// function isSplitKeyObject(key: any): key is SplitIO.SplitKeyObject {
|
|
3
|
-
// return key !== undefined && key !== null && typeof key.matchingKey === 'string';
|
|
4
|
-
// }
|
|
5
|
-
// returns the matchingKey if the Key is defined as an object or the key itself if it is a string
|
|
6
|
-
export function getMatching(key) {
|
|
7
|
-
return isObject(key) ? key.matchingKey : key;
|
|
8
|
-
}
|
|
9
|
-
// if the key is a string, there's no bucketingKey (undefined)
|
|
10
|
-
export function getBucketing(key) {
|
|
11
|
-
return isObject(key) ? key.bucketingKey : undefined;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Verify type of key and return a valid object key used for get treatment for a
|
|
15
|
-
* specific split.
|
|
16
|
-
*/
|
|
17
|
-
export function keyParser(key) {
|
|
18
|
-
if (isObject(key)) {
|
|
19
|
-
return {
|
|
20
|
-
matchingKey: key.matchingKey,
|
|
21
|
-
bucketingKey: key.bucketingKey
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
return {
|
|
26
|
-
matchingKey: key,
|
|
27
|
-
bucketingKey: key
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export var SPLIT_KILLED = 'killed';
|
|
2
|
-
export var NO_CONDITION_MATCH = 'default rule';
|
|
3
|
-
export var SPLIT_NOT_FOUND = 'definition not found';
|
|
4
|
-
export var SDK_NOT_READY = 'not ready';
|
|
5
|
-
export var EXCEPTION = 'exception';
|
|
6
|
-
export var SPLIT_ARCHIVED = 'archived';
|
|
7
|
-
export var NOT_IN_SPLIT = 'not in split';
|
|
8
|
-
export var UNSUPPORTED_MATCHER_TYPE = 'targeting rule type unsupported by sdk';
|
|
9
|
-
export var PREREQUISITES_NOT_MET = 'prerequisites not met';
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Searches the index of the specified `value` inside an ordered array of `items` using the binary search algorithm.
|
|
3
|
-
*
|
|
4
|
-
* @param items - the array to be searched
|
|
5
|
-
* @param value - the value to be searched for
|
|
6
|
-
* @returns integer number between 0 and `items.length`. This value is the index of the search value,
|
|
7
|
-
* if it is contained in the array, or the index at which the value should be inserted to keep the array ordered.
|
|
8
|
-
*/
|
|
9
|
-
export function binarySearch(items, value) {
|
|
10
|
-
var startIndex = 0;
|
|
11
|
-
var stopIndex = items.length - 1;
|
|
12
|
-
var middle = Math.floor((stopIndex + startIndex) / 2);
|
|
13
|
-
var minIndex = startIndex;
|
|
14
|
-
var maxIndex = stopIndex;
|
|
15
|
-
while (items[middle] !== value && startIndex < stopIndex) {
|
|
16
|
-
// adjust search area
|
|
17
|
-
if (value < items[middle]) {
|
|
18
|
-
stopIndex = middle - 1;
|
|
19
|
-
}
|
|
20
|
-
else if (value > items[middle]) {
|
|
21
|
-
startIndex = middle + 1;
|
|
22
|
-
}
|
|
23
|
-
// recalculate middle
|
|
24
|
-
middle = Math.floor((stopIndex + startIndex) / 2);
|
|
25
|
-
}
|
|
26
|
-
// correct if middle is out of range
|
|
27
|
-
if (middle < minIndex) {
|
|
28
|
-
middle = minIndex;
|
|
29
|
-
}
|
|
30
|
-
else if (middle > maxIndex) {
|
|
31
|
-
middle = maxIndex;
|
|
32
|
-
}
|
|
33
|
-
// we want to always return based on strict minor comparation
|
|
34
|
-
if (value < items[middle] && middle > minIndex) {
|
|
35
|
-
return middle - 1;
|
|
36
|
-
}
|
|
37
|
-
return middle;
|
|
38
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-undef */
|
|
2
|
-
// Reference to the global object if it exists: https://github.com/tc39/proposal-global
|
|
3
|
-
// The only reliable means to get the global object is `Function('return this')()`. However, this causes CSP violations in Chrome apps.
|
|
4
|
-
var globalRef = typeof global !== 'undefined' ? global : // reference to global object in Node runtime environment
|
|
5
|
-
typeof window !== 'undefined' ? window : // reference to global object in browsers
|
|
6
|
-
typeof self !== 'undefined' ? self : // reference to global object in browsers, web workers and others
|
|
7
|
-
typeof globalThis !== 'undefined' ? globalThis : undefined; // ECMAScript proposal for global reference
|
|
8
|
-
/**
|
|
9
|
-
* Get a global object passing its key
|
|
10
|
-
*/
|
|
11
|
-
export function getGlobal(key) {
|
|
12
|
-
// @ts-ignore
|
|
13
|
-
return globalRef && globalRef[key];
|
|
14
|
-
}
|
package/esm/utils/lang/index.js
DELETED
|
@@ -1,258 +0,0 @@
|
|
|
1
|
-
import { __spreadArray } from "tslib";
|
|
2
|
-
/**
|
|
3
|
-
* Checks if the target string ends with the sub string.
|
|
4
|
-
*/
|
|
5
|
-
export function endsWith(target, sub, caseInsensitive) {
|
|
6
|
-
if (caseInsensitive === void 0) { caseInsensitive = false; }
|
|
7
|
-
if (!(isString(target) && isString(sub))) {
|
|
8
|
-
return false;
|
|
9
|
-
}
|
|
10
|
-
if (caseInsensitive) {
|
|
11
|
-
target = target.toLowerCase();
|
|
12
|
-
sub = sub.toLowerCase();
|
|
13
|
-
}
|
|
14
|
-
return target.slice(target.length - sub.length) === sub;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Loops through a source collection (an object or an array) running iteratee
|
|
18
|
-
* against each element. It returns the first element for which iteratee returned
|
|
19
|
-
* a truthy value and stops the loop.
|
|
20
|
-
* Iteratee receives three arguments (element, key/index, collection)
|
|
21
|
-
*/
|
|
22
|
-
export function find(source, iteratee) {
|
|
23
|
-
var res;
|
|
24
|
-
if (isObject(source)) {
|
|
25
|
-
var keys = Object.keys(source);
|
|
26
|
-
for (var i = 0; i < keys.length && !res; i++) {
|
|
27
|
-
var key = keys[i];
|
|
28
|
-
var iterateeResult = iteratee(source[key], key, source);
|
|
29
|
-
if (iterateeResult)
|
|
30
|
-
res = source[key];
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
else if (Array.isArray(source)) {
|
|
34
|
-
for (var i = 0; i < source.length && !res; i++) {
|
|
35
|
-
var iterateeResult = iteratee(source[i], i, source);
|
|
36
|
-
if (iterateeResult)
|
|
37
|
-
res = source[i];
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
return res;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Evaluates iteratee for each element of the source array. Returns the index of the first element
|
|
44
|
-
* for which iteratee returns truthy. If no element is found or there's an issue with the params it returns -1.
|
|
45
|
-
*/
|
|
46
|
-
export function findIndex(source, iteratee) {
|
|
47
|
-
if (Array.isArray(source) && typeof iteratee === 'function') {
|
|
48
|
-
for (var i = 0; i < source.length; i++) {
|
|
49
|
-
if (iteratee(source[i], i, source) === true) {
|
|
50
|
-
return i;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
return -1;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Executes iteratee for given obj own props.
|
|
58
|
-
*/
|
|
59
|
-
export function forOwn(obj, iteratee) {
|
|
60
|
-
var keys = Object.keys(obj);
|
|
61
|
-
keys.forEach(function (key) { return iteratee(obj[key], key, obj); });
|
|
62
|
-
return obj;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Safely retrieve the specified prop from obj. If we can't retrieve
|
|
66
|
-
* that property value, we return the default value.
|
|
67
|
-
*/
|
|
68
|
-
export function get(obj, prop, val) {
|
|
69
|
-
var res = val;
|
|
70
|
-
try { // No risks nor lots of checks.
|
|
71
|
-
var pathPieces = prop.split('.');
|
|
72
|
-
var partial_1 = obj;
|
|
73
|
-
pathPieces.forEach(function (pathPiece) { return partial_1 = partial_1[pathPiece]; });
|
|
74
|
-
if (typeof partial_1 !== 'undefined')
|
|
75
|
-
res = partial_1;
|
|
76
|
-
}
|
|
77
|
-
catch (e) {
|
|
78
|
-
// noop
|
|
79
|
-
}
|
|
80
|
-
return res;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Parses an array into a map of different arrays, grouping by the specified prop value.
|
|
84
|
-
*/
|
|
85
|
-
export function groupBy(source, prop) {
|
|
86
|
-
var map = {};
|
|
87
|
-
if (Array.isArray(source) && isString(prop)) {
|
|
88
|
-
for (var i = 0; i < source.length; i++) {
|
|
89
|
-
var key = source[i][prop];
|
|
90
|
-
// Skip the element if the key is not a string.
|
|
91
|
-
if (isString(key)) {
|
|
92
|
-
if (!map[key])
|
|
93
|
-
map[key] = [];
|
|
94
|
-
map[key].push(source[i]);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
return map;
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Checks if a given value is a boolean.
|
|
102
|
-
*/
|
|
103
|
-
export function isBoolean(val) {
|
|
104
|
-
return val === true || val === false;
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Checks if a given value is a finite value of number type or Number object.
|
|
108
|
-
* Unlike `Number.isFinite`, it also tests Number object instances.
|
|
109
|
-
* Unlike global `isFinite`, it returns false if the value is not a number or Number object instance.
|
|
110
|
-
*/
|
|
111
|
-
export function isFiniteNumber(val) {
|
|
112
|
-
if (val instanceof Number)
|
|
113
|
-
val = val.valueOf();
|
|
114
|
-
return typeof val === 'number' ?
|
|
115
|
-
Number.isFinite ? Number.isFinite(val) : isFinite(val) :
|
|
116
|
-
false;
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Checks if a given value is an integer value of number type or Number object.
|
|
120
|
-
* Unlike `Number.isInteger`, it also tests Number object instances.
|
|
121
|
-
*/
|
|
122
|
-
export function isIntegerNumber(val) {
|
|
123
|
-
if (val instanceof Number)
|
|
124
|
-
val = val.valueOf();
|
|
125
|
-
return typeof val === 'number' ?
|
|
126
|
-
Number.isInteger ? Number.isInteger(val) : isFinite(val) && Math.floor(val) === val :
|
|
127
|
-
false;
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Checks if a given value is a NaN value of number type or Number object.
|
|
131
|
-
* Unlike `Number.isNaN`, it also tests Number object instances.
|
|
132
|
-
* Unlike global `isNan`, it returns false if the value is not a number or Number object instance.
|
|
133
|
-
*/
|
|
134
|
-
export function isNaNNumber(val) {
|
|
135
|
-
if (val instanceof Number)
|
|
136
|
-
val = val.valueOf();
|
|
137
|
-
// @TODO replace with `Number.isNaN` once it is fully supported by targets
|
|
138
|
-
return val !== val;
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Validates if a value is an object created by the Object constructor (plain object).
|
|
142
|
-
* It checks `constructor.name` to avoid false negatives when validating values on a separate VM context, which has its own global built-ins.
|
|
143
|
-
*/
|
|
144
|
-
export function isObject(obj) {
|
|
145
|
-
return obj !== null && typeof obj === 'object' && (obj.constructor === Object ||
|
|
146
|
-
(obj.constructor != null && obj.constructor.name === 'Object'));
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Checks if a given value is a string.
|
|
150
|
-
*/
|
|
151
|
-
export function isString(val) {
|
|
152
|
-
return typeof val === 'string' || val instanceof String;
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* String sanitizer. Returns the provided value converted to uppercase if it is a string.
|
|
156
|
-
*/
|
|
157
|
-
export function stringToUpperCase(val) {
|
|
158
|
-
return isString(val) ? val.toUpperCase() : val;
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Deep copy version of Object.assign using recursion.
|
|
162
|
-
* There are some assumptions here. It's for internal use and we don't need verbose errors
|
|
163
|
-
* or to ensure the data types or whatever. Parameters should always be correct (at least have a target and a source, of type object).
|
|
164
|
-
*/
|
|
165
|
-
export function merge(target, source) {
|
|
166
|
-
var rest = [];
|
|
167
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
168
|
-
rest[_i - 2] = arguments[_i];
|
|
169
|
-
}
|
|
170
|
-
var res = target;
|
|
171
|
-
isObject(source) && Object.keys(source).forEach(function (key) {
|
|
172
|
-
var val = source[key];
|
|
173
|
-
if (isObject(val)) {
|
|
174
|
-
if (res[key] && isObject(res[key])) { // If both are objects, merge into a new one.
|
|
175
|
-
val = merge({}, res[key], val);
|
|
176
|
-
}
|
|
177
|
-
else { // else make a copy.
|
|
178
|
-
val = merge({}, val);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
// We skip undefined values.
|
|
182
|
-
if (val !== undefined)
|
|
183
|
-
res[key] = val;
|
|
184
|
-
});
|
|
185
|
-
if (rest && rest.length) {
|
|
186
|
-
var nextSource = rest.splice(0, 1)[0];
|
|
187
|
-
res = merge.apply(void 0, __spreadArray([res, nextSource], rest, false));
|
|
188
|
-
}
|
|
189
|
-
return res;
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* Checks if the target string starts with the sub string.
|
|
193
|
-
*/
|
|
194
|
-
export function startsWith(target, sub) {
|
|
195
|
-
if (!(isString(target) && isString(sub))) {
|
|
196
|
-
return false;
|
|
197
|
-
}
|
|
198
|
-
return target.slice(0, sub.length) === sub;
|
|
199
|
-
}
|
|
200
|
-
/**
|
|
201
|
-
* Transforms a value into a number.
|
|
202
|
-
* Note: We're not expecting anything fancy here. If we are at some point, add more type checks.
|
|
203
|
-
*/
|
|
204
|
-
export function toNumber(val) {
|
|
205
|
-
if (typeof val === 'number')
|
|
206
|
-
return val;
|
|
207
|
-
if (isObject(val) && typeof val.valueOf === 'function') {
|
|
208
|
-
var valOf = val.valueOf();
|
|
209
|
-
val = isObject(valOf) ? valOf + '' : valOf;
|
|
210
|
-
}
|
|
211
|
-
if (typeof val !== 'string') {
|
|
212
|
-
return val === 0 ? val : +val;
|
|
213
|
-
}
|
|
214
|
-
// Remove trailing whitespaces.
|
|
215
|
-
val = val.replace(/^\s+|\s+$/g, '');
|
|
216
|
-
return +val;
|
|
217
|
-
}
|
|
218
|
-
/**
|
|
219
|
-
* Transforms a value into it's string representation.
|
|
220
|
-
*/
|
|
221
|
-
export function toString(val) {
|
|
222
|
-
if (val == null)
|
|
223
|
-
return '';
|
|
224
|
-
if (typeof val === 'string')
|
|
225
|
-
return val;
|
|
226
|
-
if (Array.isArray(val))
|
|
227
|
-
return val.map(function (val) { return isString(val) ? val : ''; }) + '';
|
|
228
|
-
var result = val + '';
|
|
229
|
-
return (result === '0' && (1 / val) === Number.NEGATIVE_INFINITY) ? '-0' : result;
|
|
230
|
-
}
|
|
231
|
-
/**
|
|
232
|
-
* Removes duplicate items on an array of strings.
|
|
233
|
-
*/
|
|
234
|
-
export function uniq(arr) {
|
|
235
|
-
var seen = {};
|
|
236
|
-
return arr.filter(function (item) {
|
|
237
|
-
return Object.prototype.hasOwnProperty.call(seen, item) ? false : seen[item] = true;
|
|
238
|
-
});
|
|
239
|
-
}
|
|
240
|
-
/**
|
|
241
|
-
* Removes duplicate items on an array of objects using an optional `stringify` function as equality criteria.
|
|
242
|
-
* It uses JSON.stringify as default criteria.
|
|
243
|
-
*/
|
|
244
|
-
export function uniqAsStrings(arr, stringify) {
|
|
245
|
-
if (stringify === void 0) { stringify = JSON.stringify; }
|
|
246
|
-
var seen = {};
|
|
247
|
-
return arr.filter(function (item) {
|
|
248
|
-
var itemString = stringify(item);
|
|
249
|
-
return Object.prototype.hasOwnProperty.call(seen, itemString) ? false : seen[itemString] = true;
|
|
250
|
-
});
|
|
251
|
-
}
|
|
252
|
-
var uniqueIdCounter = -1;
|
|
253
|
-
/**
|
|
254
|
-
* Returns a number to be used as ID, which will be unique.
|
|
255
|
-
*/
|
|
256
|
-
export function uniqueId() {
|
|
257
|
-
return uniqueIdCounter++;
|
|
258
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A tiny polyfill for Object.assign
|
|
3
|
-
*/
|
|
4
|
-
export var objectAssign = Object.assign || function (target) {
|
|
5
|
-
if (target === null || target === undefined)
|
|
6
|
-
throw new TypeError('Object.assign cannot be called with null or undefined');
|
|
7
|
-
target = Object(target);
|
|
8
|
-
for (var i = 1; i < arguments.length; i++) {
|
|
9
|
-
var source = Object(arguments[i]); // eslint-disable-next-line no-restricted-syntax
|
|
10
|
-
for (var key in source) {
|
|
11
|
-
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
12
|
-
target[key] = source[key];
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
return target;
|
|
17
|
-
};
|
package/esm/utils/lang/sets.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export function setToArray(set) {
|
|
2
|
-
if (Array.from)
|
|
3
|
-
return Array.from(set);
|
|
4
|
-
var array = [];
|
|
5
|
-
set.forEach(function (value) {
|
|
6
|
-
array.push(value);
|
|
7
|
-
});
|
|
8
|
-
return array;
|
|
9
|
-
}
|
|
10
|
-
export function returnSetsUnion(set, set2) {
|
|
11
|
-
return new Set(setToArray(set).concat(setToArray(set2)));
|
|
12
|
-
}
|
|
13
|
-
export function returnDifference(list, list2) {
|
|
14
|
-
if (list === void 0) { list = []; }
|
|
15
|
-
if (list2 === void 0) { list2 = []; }
|
|
16
|
-
return list.filter(function (item) { return list2.indexOf(item) === -1; });
|
|
17
|
-
}
|