@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
package/CONTRIBUTORS-GUIDE.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Contributing to the Split JavaScript SDK
|
|
1
|
+
# Contributing to the Split JavaScript SDK
|
|
2
2
|
|
|
3
3
|
Split SDK is an open source project and we welcome feedback and contribution. The information below describes how to build the project with your changes, run the tests, and send the Pull Request(PR).
|
|
4
4
|
|
|
@@ -7,36 +7,46 @@ Split SDK is an open source project and we welcome feedback and contribution. Th
|
|
|
7
7
|
### Development process
|
|
8
8
|
|
|
9
9
|
1. Fork the repository and create a topic branch from `development` branch. Please use a descriptive name for your branch.
|
|
10
|
-
2.
|
|
11
|
-
3.
|
|
12
|
-
4.
|
|
13
|
-
5.
|
|
14
|
-
6. Run
|
|
15
|
-
7.
|
|
16
|
-
8.
|
|
17
|
-
9.
|
|
18
|
-
10.
|
|
19
|
-
11.
|
|
10
|
+
2. Run `nvm use` to ensure that you are using the right npm and Node.js version, and `npm install` to have the dependencies up to date.
|
|
11
|
+
3. While developing, use descriptive messages in your commits. Avoid short or meaningless sentences like: "fix bug".
|
|
12
|
+
4. Make sure to add tests for both positive and negative cases.
|
|
13
|
+
5. If your changes have any impact on the public API, make sure you update the TypeScript declarations as well as it's related test file.
|
|
14
|
+
6. Run the linter script of the project and fix any issues you find.
|
|
15
|
+
7. Run the build script and make sure it runs with no errors.
|
|
16
|
+
8. Run all tests and make sure there are no failures.
|
|
17
|
+
9. Run the TypeScript declarations tests and make sure it compiles correctly.
|
|
18
|
+
10. `git push` your changes to GitHub within your topic branch.
|
|
19
|
+
11. Open a Pull Request(PR) from your forked repo and into the `development` branch of the original repository.
|
|
20
|
+
12. When creating your PR, please fill out all the fields of the PR template, as applicable, for the project.
|
|
21
|
+
13. Check for conflicts once the pull request is created to make sure your PR can be merged cleanly into `development`.
|
|
22
|
+
14. Keep an eye out for any feedback or comments from Split's SDK team.
|
|
20
23
|
|
|
21
24
|
### Building the SDK
|
|
22
25
|
|
|
23
|
-
For widespread
|
|
24
|
-
* A **
|
|
25
|
-
* A **
|
|
26
|
+
For widespread use of the SDK with different environments and module formats, we have three different builds:
|
|
27
|
+
* A bundled **UMD** file.
|
|
28
|
+
* A **ES2015** modules compatible build.
|
|
29
|
+
* A **CommonJS** modules compatible build.
|
|
26
30
|
|
|
27
31
|
The different builds can be generated all at once with the command `npm run build`. Refer to [package.json](package.json) for more insight on the build scripts.
|
|
28
32
|
|
|
29
33
|
### Running tests
|
|
30
34
|
|
|
31
|
-
The project includes unit as well as integration tests for browser environments.
|
|
35
|
+
The project includes unit as well as integration tests for both browser and Node.js environments.
|
|
32
36
|
|
|
33
37
|
All tests can be run at once with the command `npm run test`.
|
|
34
38
|
|
|
39
|
+
If you've updated the TypeScript declaration files (located in `/types` folder), you should add some lines verifying the updates in `/ts-tests/index.ts` and then run the TypeScript compilation test using the `npm run test-ts-decls` command.
|
|
40
|
+
|
|
35
41
|
For additional testing scripts or to get more insight on how these work, please refer to our [package.json](package.json) file.
|
|
36
42
|
|
|
37
43
|
### Linting and other useful checks
|
|
38
44
|
|
|
39
|
-
Consider running the linter
|
|
45
|
+
Consider running the linter script (`npm run check:lint`) and fixing any issues before pushing your changes.
|
|
46
|
+
|
|
47
|
+
If you want to debug your changes consuming it from a test application, you could:
|
|
48
|
+
- For browsers, import the **UMD** bundle from an HTML document. To debug you can use the browser dev tools.
|
|
49
|
+
- For Node.js, you could use symlinks via [npm link command](https://docs.npmjs.com/cli/link.html) and then import the package as usual. To debug you could use the [Node.js inspector](https://nodejs.org/en/docs/guides/debugging-getting-started/).
|
|
40
50
|
|
|
41
51
|
# Contact
|
|
42
52
|
|
package/README.md
CHANGED
|
@@ -1,20 +1,58 @@
|
|
|
1
|
-
# Split
|
|
1
|
+
# Split SDK for JavaScript
|
|
2
2
|
|
|
3
|
-
[](https://badge.fury.io/js/%40splitsoftware%2Fsplitio) [](https://github.com/splitio/javascript-client/actions/workflows/ci-cd.yml) [](https://greenkeeper.io/)
|
|
4
4
|
|
|
5
5
|
## Overview
|
|
6
|
-
This
|
|
6
|
+
This SDK is designed to work with Split, the platform for controlled rollouts, which serves features to your users via feature flags to manage your complete customer experience.
|
|
7
7
|
|
|
8
8
|
[](https://twitter.com/intent/follow?screen_name=splitsoftware)
|
|
9
9
|
|
|
10
10
|
## Compatibility
|
|
11
|
-
|
|
11
|
+
The JavaScript SDK is an isomorphic library for both Node.js and Web browser environments.
|
|
12
|
+
|
|
13
|
+
It supports **Node.js version 14.x or later**.
|
|
14
|
+
|
|
15
|
+
For browsers, the library was build to support ES5 syntax and all major browsers. *However, there are a few polyfills that would be required when targeting old browsers that don't have native support for Promises, Map and Set global objects. You should include polyfills for those, like [es6-promise](https://github.com/stefanpenner/es6-promise) for promises.*
|
|
16
|
+
|
|
17
|
+
## Getting started
|
|
18
|
+
Below is a simple Node.js example that describes the instantiation and most basic usage of our SDK:
|
|
19
|
+
```javascript
|
|
20
|
+
// Import the SDK
|
|
21
|
+
var SplitFactory = require('@splitsoftware/splitio').SplitFactory;
|
|
22
|
+
|
|
23
|
+
// Instantiate the SDK
|
|
24
|
+
var factory = SplitFactory({
|
|
25
|
+
core: {
|
|
26
|
+
authorizationKey: 'YOUR_SDK_KEY'
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
// Get the client instance you'll use
|
|
31
|
+
var client = factory.client();
|
|
32
|
+
|
|
33
|
+
// Set a callback to listen for the SDK_READY event, to make sure the SDK is properly loaded before asking for a treatment
|
|
34
|
+
client.on(client.Event.SDK_READY, function() {
|
|
35
|
+
var treatment = client.getTreatment('CUSTOMER_ID', 'FEATURE_FLAG_NAME');
|
|
36
|
+
if (treatment == 'on') {
|
|
37
|
+
// insert code here for on treatment
|
|
38
|
+
} else if (treatment == 'off') {
|
|
39
|
+
// insert code here for off treatment
|
|
40
|
+
} else {
|
|
41
|
+
// insert your control treatment code here
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Please refer to [JavaScript SDK (client-side)](https://help.split.io/hc/en-us/articles/360020448791-JavaScript-SDK) or [Node.js SDK (server-side)](https://help.split.io/hc/en-us/articles/360020564931-Node-js-SDK) to learn about all the functionality provided by our SDK as well as specifics for each environment and the configuration options available for tailoring it to your current application setup.
|
|
47
|
+
|
|
48
|
+
## Submitting issues
|
|
49
|
+
The Split team monitors all issues submitted to this [issue tracker](https://github.com/splitio/javascript-client/issues). We encourage you to use this issue tracker to submit any bug reports, feedback, and feature enhancements. We'll do our best to respond in a timely manner.
|
|
12
50
|
|
|
13
51
|
## Contributing
|
|
14
52
|
Please see [Contributors Guide](CONTRIBUTORS-GUIDE.md) to find all you need to submit a Pull Request (PR).
|
|
15
53
|
|
|
16
54
|
## License
|
|
17
|
-
Licensed under the Apache License, Version 2.0. See: [Apache License](
|
|
55
|
+
Licensed under the Apache License, Version 2.0. See: [Apache License](http://www.apache.org/licenses/).
|
|
18
56
|
|
|
19
57
|
## About Split
|
|
20
58
|
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SplitFactory = void 0;
|
|
4
|
+
var splitApi_1 = require("@splitsoftware/splitio-commons/cjs/services/splitApi");
|
|
5
|
+
var syncManagerOnline_1 = require("@splitsoftware/splitio-commons/cjs/sync/syncManagerOnline");
|
|
6
|
+
var pushManager_1 = require("@splitsoftware/splitio-commons/cjs/sync/streaming/pushManager");
|
|
7
|
+
var pollingManagerCS_1 = require("@splitsoftware/splitio-commons/cjs/sync/polling/pollingManagerCS");
|
|
8
|
+
var inLocalStorage_1 = require("@splitsoftware/splitio-commons/cjs/storages/inLocalStorage");
|
|
9
|
+
var InMemoryStorageCS_1 = require("@splitsoftware/splitio-commons/cjs/storages/inMemory/InMemoryStorageCS");
|
|
10
|
+
var sdkManager_1 = require("@splitsoftware/splitio-commons/cjs/sdkManager");
|
|
11
|
+
var sdkClientMethodCS_1 = require("@splitsoftware/splitio-commons/cjs/sdkClient/sdkClientMethodCS");
|
|
12
|
+
var impressionObserverCS_1 = require("@splitsoftware/splitio-commons/cjs/trackers/impressionObserver/impressionObserverCS");
|
|
13
|
+
var storageCS_1 = require("@splitsoftware/splitio-commons/cjs/utils/settingsValidation/storage/storageCS");
|
|
14
|
+
var sdkFactory_1 = require("@splitsoftware/splitio-commons/cjs/sdkFactory");
|
|
15
|
+
var constants_1 = require("@splitsoftware/splitio-commons/cjs/utils/constants");
|
|
16
|
+
var sdkUserConsent_1 = require("@splitsoftware/splitio-commons/cjs/consent/sdkUserConsent");
|
|
17
|
+
var LocalhostFromObject_1 = require("@splitsoftware/splitio-commons/cjs/sync/offline/LocalhostFromObject");
|
|
18
|
+
var browser_1 = require("../settings/browser");
|
|
19
|
+
var platform_1 = require("../platform");
|
|
20
|
+
var syncManagerOnlineCSFactory = (0, syncManagerOnline_1.syncManagerOnlineFactory)(pollingManagerCS_1.pollingManagerCSFactory, pushManager_1.pushManagerFactory);
|
|
21
|
+
function getStorage(settings) {
|
|
22
|
+
return settings.storage.type === constants_1.STORAGE_LOCALSTORAGE ?
|
|
23
|
+
(0, inLocalStorage_1.InLocalStorage)(settings.storage) :
|
|
24
|
+
settings.storage.__originalType === constants_1.STORAGE_LOCALSTORAGE ?
|
|
25
|
+
storageCS_1.__InLocalStorageMockFactory :
|
|
26
|
+
InMemoryStorageCS_1.InMemoryStorageCSFactory;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
*
|
|
30
|
+
* @param {import("@splitsoftware/splitio-commons/types/types").ISettings} settings
|
|
31
|
+
*/
|
|
32
|
+
function getModules(settings) {
|
|
33
|
+
var modules = {
|
|
34
|
+
settings: settings,
|
|
35
|
+
platform: platform_1.platform,
|
|
36
|
+
storageFactory: getStorage(settings),
|
|
37
|
+
splitApiFactory: splitApi_1.splitApiFactory,
|
|
38
|
+
syncManagerFactory: syncManagerOnlineCSFactory,
|
|
39
|
+
sdkManagerFactory: sdkManager_1.sdkManagerFactory,
|
|
40
|
+
sdkClientMethodFactory: sdkClientMethodCS_1.sdkClientMethodCSFactory,
|
|
41
|
+
SignalListener: platform_1.SignalListener,
|
|
42
|
+
impressionsObserverFactory: impressionObserverCS_1.impressionObserverCSFactory,
|
|
43
|
+
extraProps: function (params) {
|
|
44
|
+
return {
|
|
45
|
+
UserConsent: (0, sdkUserConsent_1.createUserConsentAPI)(params)
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
switch (settings.mode) {
|
|
50
|
+
case constants_1.LOCALHOST_MODE:
|
|
51
|
+
modules.splitApiFactory = undefined;
|
|
52
|
+
modules.syncManagerFactory = LocalhostFromObject_1.localhostFromObjectFactory;
|
|
53
|
+
modules.SignalListener = undefined;
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
return modules;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* SplitFactory for client-side.
|
|
60
|
+
*
|
|
61
|
+
* @param {SplitIO.IBrowserSettings} config configuration object used to instantiate the SDK
|
|
62
|
+
* @param {Function=} __updateModules optional function that lets redefine internal SDK modules. Use with
|
|
63
|
+
* caution since, unlike `config`, this param is not validated neither considered part of the public API.
|
|
64
|
+
* @throws Will throw an error if the provided config is invalid.
|
|
65
|
+
*/
|
|
66
|
+
function SplitFactory(config, __updateModules) {
|
|
67
|
+
var settings = (0, browser_1.settingsFactory)(config);
|
|
68
|
+
var modules = getModules(settings);
|
|
69
|
+
if (__updateModules)
|
|
70
|
+
__updateModules(modules);
|
|
71
|
+
return (0, sdkFactory_1.sdkFactory)(modules);
|
|
72
|
+
}
|
|
73
|
+
exports.SplitFactory = SplitFactory;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SplitFactory = void 0;
|
|
4
|
+
var splitApi_1 = require("@splitsoftware/splitio-commons/cjs/services/splitApi");
|
|
5
|
+
var syncManagerOnline_1 = require("@splitsoftware/splitio-commons/cjs/sync/syncManagerOnline");
|
|
6
|
+
var pushManager_1 = require("@splitsoftware/splitio-commons/cjs/sync/streaming/pushManager");
|
|
7
|
+
var pollingManagerSS_1 = require("@splitsoftware/splitio-commons/cjs/sync/polling/pollingManagerSS");
|
|
8
|
+
var inRedis_1 = require("@splitsoftware/splitio-commons/cjs/storages/inRedis");
|
|
9
|
+
var InMemoryStorage_1 = require("@splitsoftware/splitio-commons/cjs/storages/inMemory/InMemoryStorage");
|
|
10
|
+
var dataLoader_1 = require("@splitsoftware/splitio-commons/cjs/storages/dataLoader");
|
|
11
|
+
var sdkManager_1 = require("@splitsoftware/splitio-commons/cjs/sdkManager");
|
|
12
|
+
var sdkClientMethod_1 = require("@splitsoftware/splitio-commons/cjs/sdkClient/sdkClientMethod");
|
|
13
|
+
var impressionObserverSS_1 = require("@splitsoftware/splitio-commons/cjs/trackers/impressionObserver/impressionObserverSS");
|
|
14
|
+
var sdkFactory_1 = require("@splitsoftware/splitio-commons/cjs/sdkFactory");
|
|
15
|
+
var constants_1 = require("@splitsoftware/splitio-commons/cjs/utils/constants");
|
|
16
|
+
var LocalhostFromFile_1 = require("../sync/offline/LocalhostFromFile");
|
|
17
|
+
var node_1 = require("../settings/node");
|
|
18
|
+
var platform_1 = require("../platform");
|
|
19
|
+
var bloomFilter_1 = require("../platform/filter/bloomFilter");
|
|
20
|
+
var syncManagerOnlineSSFactory = (0, syncManagerOnline_1.syncManagerOnlineFactory)(pollingManagerSS_1.pollingManagerSSFactory, pushManager_1.pushManagerFactory);
|
|
21
|
+
function getStorage(settings) {
|
|
22
|
+
return settings.storage.type === 'REDIS' ?
|
|
23
|
+
(0, inRedis_1.InRedisStorage)(settings.storage) :
|
|
24
|
+
InMemoryStorage_1.InMemoryStorageFactory;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
*
|
|
28
|
+
* @param {import("@splitsoftware/splitio-commons/types/types").ISettings} settings
|
|
29
|
+
*/
|
|
30
|
+
function getModules(settings) {
|
|
31
|
+
var modules = {
|
|
32
|
+
settings: settings,
|
|
33
|
+
platform: platform_1.platform,
|
|
34
|
+
storageFactory: getStorage(settings),
|
|
35
|
+
splitApiFactory: splitApi_1.splitApiFactory,
|
|
36
|
+
syncManagerFactory: syncManagerOnlineSSFactory,
|
|
37
|
+
sdkManagerFactory: sdkManager_1.sdkManagerFactory,
|
|
38
|
+
sdkClientMethodFactory: sdkClientMethod_1.sdkClientMethodFactory,
|
|
39
|
+
SignalListener: platform_1.SignalListener,
|
|
40
|
+
impressionsObserverFactory: impressionObserverSS_1.impressionObserverSSFactory,
|
|
41
|
+
filterAdapterFactory: bloomFilter_1.bloomFilterFactory,
|
|
42
|
+
extraProps: function (params) {
|
|
43
|
+
if (params.settings.mode !== constants_1.CONSUMER_MODE) {
|
|
44
|
+
return {
|
|
45
|
+
getCache: function (userKeys) {
|
|
46
|
+
return (0, dataLoader_1.getCache)(params.settings.log, params.storage, userKeys);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
switch (settings.mode) {
|
|
53
|
+
case constants_1.LOCALHOST_MODE:
|
|
54
|
+
modules.splitApiFactory = undefined;
|
|
55
|
+
modules.syncManagerFactory = LocalhostFromFile_1.localhostFromFileFactory;
|
|
56
|
+
modules.SignalListener = undefined;
|
|
57
|
+
break;
|
|
58
|
+
case constants_1.CONSUMER_MODE:
|
|
59
|
+
modules.syncManagerFactory = undefined;
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
return modules;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* SplitFactory for server-side.
|
|
66
|
+
*
|
|
67
|
+
* @param {SplitIO.INodeSettings | SplitIO.INodeAsyncSettings} config configuration object used to instantiate the SDK
|
|
68
|
+
* @param {Function=} __updateModules optional function that lets redefine internal SDK modules. Use with
|
|
69
|
+
* caution since, unlike `config`, this param is not validated neither considered part of the public API.
|
|
70
|
+
* @throws Will throw an error if the provided config is invalid.
|
|
71
|
+
*/
|
|
72
|
+
function SplitFactory(config, __updateModules) {
|
|
73
|
+
var settings = (0, node_1.settingsFactory)(config);
|
|
74
|
+
var modules = getModules(settings);
|
|
75
|
+
if (__updateModules)
|
|
76
|
+
__updateModules(modules);
|
|
77
|
+
return (0, sdkFactory_1.sdkFactory)(modules);
|
|
78
|
+
}
|
|
79
|
+
exports.SplitFactory = SplitFactory;
|
package/cjs/index.js
CHANGED
|
@@ -1,18 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
Object.defineProperty(exports, "InMemoryStorageFactory", { enumerable: true, get: function () { return InMemoryStorage_1.InMemoryStorageFactory; } });
|
|
7
|
-
// InMemory storage factory for standalone client-side SplitFactory
|
|
8
|
-
var InMemoryStorageCS_1 = require("./storages/inMemory/InMemoryStorageCS");
|
|
9
|
-
Object.defineProperty(exports, "InMemoryStorageCSFactory", { enumerable: true, get: function () { return InMemoryStorageCS_1.InMemoryStorageCSFactory; } });
|
|
10
|
-
// InLocalStorage factory for standalone client-side SplitFactory in Web browsers
|
|
11
|
-
var inLocalStorage_1 = require("./storages/inLocalStorage");
|
|
12
|
-
Object.defineProperty(exports, "InLocalStorage", { enumerable: true, get: function () { return inLocalStorage_1.InLocalStorage; } });
|
|
13
|
-
// Pluggable storage factory for consumer/producer mode
|
|
14
|
-
var pluggable_1 = require("./storages/pluggable");
|
|
15
|
-
Object.defineProperty(exports, "PluggableStorage", { enumerable: true, get: function () { return pluggable_1.PluggableStorage; } });
|
|
16
|
-
// Pluggable storage factory for consumer/producer mode
|
|
17
|
-
var inRedis_1 = require("./storages/inRedis");
|
|
18
|
-
Object.defineProperty(exports, "InRedisStorage", { enumerable: true, get: function () { return inRedis_1.InRedisStorage; } });
|
|
3
|
+
exports.SplitFactory = void 0;
|
|
4
|
+
var factory_1 = require("./factory");
|
|
5
|
+
Object.defineProperty(exports, "SplitFactory", { enumerable: true, get: function () { return factory_1.SplitFactory; } });
|
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// @ts-nocheck
|
|
3
|
-
// Trimmed version of "events" library (https://www.npmjs.com/package/events).
|
|
4
|
-
// Removed features:
|
|
5
|
-
// - Max listener leak warning
|
|
6
|
-
// - EventEmitter.prototype.prependListener
|
|
7
|
-
// - EventEmitter.prototype.prependOnceListener
|
|
8
|
-
// - EventEmitter.prototype.listeners
|
|
9
|
-
// - EventEmitter.prototype.rawListeners
|
|
10
|
-
// - EventEmitter.prototype.listenerCount
|
|
11
|
-
// - EventEmitter.prototype.eventNames
|
|
12
|
-
//
|
|
13
2
|
// Copyright Joyent, Inc. and other Node contributors.
|
|
14
3
|
//
|
|
15
4
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
@@ -32,31 +21,91 @@
|
|
|
32
21
|
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
33
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
23
|
exports.EventEmitter = void 0;
|
|
24
|
+
// Adaptation of "events" library (https://www.npmjs.com/package/events)
|
|
25
|
+
// exported as an ES module instead of CommonJS, to avoid extra configuration steps when using
|
|
26
|
+
// the ESM build of the SDK with tools that doesn't support CommonJS by default (e.g. Rollup).
|
|
35
27
|
var R = typeof Reflect === 'object' ? Reflect : null;
|
|
36
28
|
var ReflectApply = R && typeof R.apply === 'function'
|
|
37
29
|
? R.apply
|
|
38
30
|
: function ReflectApply(target, receiver, args) {
|
|
39
31
|
return Function.prototype.apply.call(target, receiver, args);
|
|
40
32
|
};
|
|
41
|
-
var
|
|
42
|
-
|
|
33
|
+
var ReflectOwnKeys;
|
|
34
|
+
if (R && typeof R.ownKeys === 'function') {
|
|
35
|
+
ReflectOwnKeys = R.ownKeys;
|
|
36
|
+
}
|
|
37
|
+
else if (Object.getOwnPropertySymbols) {
|
|
38
|
+
ReflectOwnKeys = function ReflectOwnKeys(target) {
|
|
39
|
+
return Object.getOwnPropertyNames(target)
|
|
40
|
+
.concat(Object.getOwnPropertySymbols(target));
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
ReflectOwnKeys = function ReflectOwnKeys(target) {
|
|
45
|
+
return Object.getOwnPropertyNames(target);
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
function ProcessEmitWarning(warning) {
|
|
49
|
+
if (console && console.warn)
|
|
50
|
+
console.warn(warning);
|
|
51
|
+
}
|
|
52
|
+
// eslint-disable-next-line compat/compat
|
|
53
|
+
var NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {
|
|
54
|
+
return value !== value;
|
|
43
55
|
};
|
|
56
|
+
function EventEmitter() {
|
|
57
|
+
EventEmitter.init.call(this);
|
|
58
|
+
}
|
|
44
59
|
exports.EventEmitter = EventEmitter;
|
|
45
|
-
|
|
46
|
-
|
|
60
|
+
EventEmitter.prototype._events = undefined;
|
|
61
|
+
EventEmitter.prototype._eventsCount = 0;
|
|
62
|
+
EventEmitter.prototype._maxListeners = undefined;
|
|
63
|
+
// By default EventEmitters will print a warning if more than 10 listeners are
|
|
64
|
+
// added to it. This is a useful default which helps finding memory leaks.
|
|
65
|
+
var defaultMaxListeners = 10;
|
|
47
66
|
function checkListener(listener) {
|
|
48
67
|
if (typeof listener !== 'function') {
|
|
49
68
|
throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener);
|
|
50
69
|
}
|
|
51
70
|
}
|
|
52
|
-
|
|
71
|
+
Object.defineProperty(EventEmitter, 'defaultMaxListeners', {
|
|
72
|
+
enumerable: true,
|
|
73
|
+
get: function () {
|
|
74
|
+
return defaultMaxListeners;
|
|
75
|
+
},
|
|
76
|
+
set: function (arg) {
|
|
77
|
+
if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {
|
|
78
|
+
throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + arg + '.');
|
|
79
|
+
}
|
|
80
|
+
defaultMaxListeners = arg;
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
EventEmitter.init = function () {
|
|
53
84
|
if (this._events === undefined ||
|
|
54
85
|
this._events === Object.getPrototypeOf(this)._events) {
|
|
55
86
|
this._events = Object.create(null);
|
|
56
87
|
this._eventsCount = 0;
|
|
57
88
|
}
|
|
89
|
+
this._maxListeners = this._maxListeners || undefined;
|
|
90
|
+
};
|
|
91
|
+
// Obviously not all Emitters should be limited to 10. This function allows
|
|
92
|
+
// that to be increased. Set to zero for unlimited.
|
|
93
|
+
EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {
|
|
94
|
+
if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {
|
|
95
|
+
throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + n + '.');
|
|
96
|
+
}
|
|
97
|
+
this._maxListeners = n;
|
|
98
|
+
return this;
|
|
58
99
|
};
|
|
59
|
-
|
|
100
|
+
function _getMaxListeners(that) {
|
|
101
|
+
if (that._maxListeners === undefined)
|
|
102
|
+
return EventEmitter.defaultMaxListeners;
|
|
103
|
+
return that._maxListeners;
|
|
104
|
+
}
|
|
105
|
+
EventEmitter.prototype.getMaxListeners = function getMaxListeners() {
|
|
106
|
+
return _getMaxListeners(this);
|
|
107
|
+
};
|
|
108
|
+
EventEmitter.prototype.emit = function emit(type) {
|
|
60
109
|
var args = [];
|
|
61
110
|
for (var i = 1; i < arguments.length; i++)
|
|
62
111
|
args.push(arguments[i]);
|
|
@@ -73,7 +122,7 @@ exports.EventEmitter.prototype.emit = function emit(type) {
|
|
|
73
122
|
er = args[0];
|
|
74
123
|
if (er instanceof Error) {
|
|
75
124
|
// Note: The comments on the `throw` lines are intentional, they show
|
|
76
|
-
// up in Node
|
|
125
|
+
// up in Node.js output if this results in an unhandled exception.
|
|
77
126
|
throw er; // Unhandled 'error' event
|
|
78
127
|
}
|
|
79
128
|
// At least give some kind of context to the user
|
|
@@ -89,13 +138,14 @@ exports.EventEmitter.prototype.emit = function emit(type) {
|
|
|
89
138
|
}
|
|
90
139
|
else {
|
|
91
140
|
var len = handler.length;
|
|
92
|
-
var listeners = arrayClone(handler, len);
|
|
93
|
-
for (var
|
|
94
|
-
ReflectApply(listeners[
|
|
141
|
+
var listeners = arrayClone(handler, len); // eslint-disable-next-line no-redeclare
|
|
142
|
+
for (var i = 0; i < len; ++i)
|
|
143
|
+
ReflectApply(listeners[i], this, args);
|
|
95
144
|
}
|
|
96
145
|
return true;
|
|
97
146
|
};
|
|
98
147
|
function _addListener(target, type, listener, prepend) {
|
|
148
|
+
var m;
|
|
99
149
|
var events;
|
|
100
150
|
var existing;
|
|
101
151
|
checkListener(listener);
|
|
@@ -133,13 +183,33 @@ function _addListener(target, type, listener, prepend) {
|
|
|
133
183
|
else {
|
|
134
184
|
existing.push(listener);
|
|
135
185
|
}
|
|
186
|
+
// Check for listener leak
|
|
187
|
+
m = _getMaxListeners(target);
|
|
188
|
+
if (m > 0 && existing.length > m && !existing.warned) {
|
|
189
|
+
existing.warned = true;
|
|
190
|
+
// No error code for this since it is a Warning
|
|
191
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
192
|
+
var w = new Error('Possible EventEmitter memory leak detected. ' +
|
|
193
|
+
existing.length + ' ' + String(type) + ' listeners ' +
|
|
194
|
+
'added. Use emitter.setMaxListeners() to ' +
|
|
195
|
+
'increase limit');
|
|
196
|
+
w.name = 'MaxListenersExceededWarning';
|
|
197
|
+
w.emitter = target;
|
|
198
|
+
w.type = type;
|
|
199
|
+
w.count = existing.length;
|
|
200
|
+
ProcessEmitWarning(w);
|
|
201
|
+
}
|
|
136
202
|
}
|
|
137
203
|
return target;
|
|
138
204
|
}
|
|
139
|
-
|
|
205
|
+
EventEmitter.prototype.addListener = function addListener(type, listener) {
|
|
140
206
|
return _addListener(this, type, listener, false);
|
|
141
207
|
};
|
|
142
|
-
|
|
208
|
+
EventEmitter.prototype.on = EventEmitter.prototype.addListener;
|
|
209
|
+
EventEmitter.prototype.prependListener =
|
|
210
|
+
function prependListener(type, listener) {
|
|
211
|
+
return _addListener(this, type, listener, true);
|
|
212
|
+
};
|
|
143
213
|
function onceWrapper() {
|
|
144
214
|
if (!this.fired) {
|
|
145
215
|
this.target.removeListener(this.type, this.wrapFn);
|
|
@@ -156,13 +226,19 @@ function _onceWrap(target, type, listener) {
|
|
|
156
226
|
state.wrapFn = wrapped;
|
|
157
227
|
return wrapped;
|
|
158
228
|
}
|
|
159
|
-
|
|
229
|
+
EventEmitter.prototype.once = function once(type, listener) {
|
|
160
230
|
checkListener(listener);
|
|
161
231
|
this.on(type, _onceWrap(this, type, listener));
|
|
162
232
|
return this;
|
|
163
233
|
};
|
|
234
|
+
EventEmitter.prototype.prependOnceListener =
|
|
235
|
+
function prependOnceListener(type, listener) {
|
|
236
|
+
checkListener(listener);
|
|
237
|
+
this.prependListener(type, _onceWrap(this, type, listener));
|
|
238
|
+
return this;
|
|
239
|
+
};
|
|
164
240
|
// Emits a 'removeListener' event if and only if the listener was removed.
|
|
165
|
-
|
|
241
|
+
EventEmitter.prototype.removeListener =
|
|
166
242
|
function removeListener(type, listener) {
|
|
167
243
|
var list, events, position, i, originalListener;
|
|
168
244
|
checkListener(listener);
|
|
@@ -204,8 +280,8 @@ exports.EventEmitter.prototype.removeListener =
|
|
|
204
280
|
}
|
|
205
281
|
return this;
|
|
206
282
|
};
|
|
207
|
-
|
|
208
|
-
|
|
283
|
+
EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
|
|
284
|
+
EventEmitter.prototype.removeAllListeners =
|
|
209
285
|
function removeAllListeners(type) {
|
|
210
286
|
var listeners, events, i;
|
|
211
287
|
events = this._events;
|
|
@@ -252,6 +328,49 @@ exports.EventEmitter.prototype.removeAllListeners =
|
|
|
252
328
|
}
|
|
253
329
|
return this;
|
|
254
330
|
};
|
|
331
|
+
function _listeners(target, type, unwrap) {
|
|
332
|
+
var events = target._events;
|
|
333
|
+
if (events === undefined)
|
|
334
|
+
return [];
|
|
335
|
+
var evlistener = events[type];
|
|
336
|
+
if (evlistener === undefined)
|
|
337
|
+
return [];
|
|
338
|
+
if (typeof evlistener === 'function')
|
|
339
|
+
return unwrap ? [evlistener.listener || evlistener] : [evlistener];
|
|
340
|
+
return unwrap ?
|
|
341
|
+
unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);
|
|
342
|
+
}
|
|
343
|
+
EventEmitter.prototype.listeners = function listeners(type) {
|
|
344
|
+
return _listeners(this, type, true);
|
|
345
|
+
};
|
|
346
|
+
EventEmitter.prototype.rawListeners = function rawListeners(type) {
|
|
347
|
+
return _listeners(this, type, false);
|
|
348
|
+
};
|
|
349
|
+
EventEmitter.listenerCount = function (emitter, type) {
|
|
350
|
+
if (typeof emitter.listenerCount === 'function') {
|
|
351
|
+
return emitter.listenerCount(type);
|
|
352
|
+
}
|
|
353
|
+
else {
|
|
354
|
+
return listenerCount.call(emitter, type);
|
|
355
|
+
}
|
|
356
|
+
};
|
|
357
|
+
EventEmitter.prototype.listenerCount = listenerCount;
|
|
358
|
+
function listenerCount(type) {
|
|
359
|
+
var events = this._events;
|
|
360
|
+
if (events !== undefined) {
|
|
361
|
+
var evlistener = events[type];
|
|
362
|
+
if (typeof evlistener === 'function') {
|
|
363
|
+
return 1;
|
|
364
|
+
}
|
|
365
|
+
else if (evlistener !== undefined) {
|
|
366
|
+
return evlistener.length;
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
return 0;
|
|
370
|
+
}
|
|
371
|
+
EventEmitter.prototype.eventNames = function eventNames() {
|
|
372
|
+
return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];
|
|
373
|
+
};
|
|
255
374
|
function arrayClone(arr, n) {
|
|
256
375
|
var copy = new Array(n);
|
|
257
376
|
for (var i = 0; i < n; ++i)
|
|
@@ -263,3 +382,10 @@ function spliceOne(list, index) {
|
|
|
263
382
|
list[index] = list[index + 1];
|
|
264
383
|
list.pop();
|
|
265
384
|
}
|
|
385
|
+
function unwrapListeners(arr) {
|
|
386
|
+
var ret = new Array(arr.length);
|
|
387
|
+
for (var i = 0; i < ret.length; ++i) {
|
|
388
|
+
ret[i] = arr[i].listener || arr[i];
|
|
389
|
+
}
|
|
390
|
+
return ret;
|
|
391
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SignalListener = exports.platform = void 0;
|
|
4
|
+
var EventEmitter_1 = require("./EventEmitter");
|
|
5
|
+
var browser_1 = require("../platform/getFetch/browser");
|
|
6
|
+
var browser_2 = require("../platform/getEventSource/browser");
|
|
7
|
+
var browser_3 = require("@splitsoftware/splitio-commons/cjs/listeners/browser");
|
|
8
|
+
var browser_4 = require("@splitsoftware/splitio-commons/cjs/utils/timeTracker/now/browser");
|
|
9
|
+
exports.platform = {
|
|
10
|
+
getFetch: browser_1.getFetch,
|
|
11
|
+
getEventSource: browser_2.getEventSource,
|
|
12
|
+
EventEmitter: EventEmitter_1.EventEmitter,
|
|
13
|
+
now: browser_4.now
|
|
14
|
+
};
|
|
15
|
+
exports.SignalListener = browser_3.BrowserSignalListener;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.bloomFilterFactory = void 0;
|
|
4
|
+
var bloom_filters_1 = require("bloom-filters");
|
|
5
|
+
var EXPECTED_INSERTIONS = 10000000;
|
|
6
|
+
var ERROR_RATE = 0.01;
|
|
7
|
+
var REFRESH_RATE = 24 * 60 * 60000; // 24HS
|
|
8
|
+
function bloomFilterFactory(expectedInsertions, errorRate, refreshRate) {
|
|
9
|
+
if (expectedInsertions === void 0) { expectedInsertions = EXPECTED_INSERTIONS; }
|
|
10
|
+
if (errorRate === void 0) { errorRate = ERROR_RATE; }
|
|
11
|
+
if (refreshRate === void 0) { refreshRate = REFRESH_RATE; }
|
|
12
|
+
var filter = bloom_filters_1.BloomFilter.create(expectedInsertions, errorRate);
|
|
13
|
+
return {
|
|
14
|
+
refreshRate: refreshRate,
|
|
15
|
+
add: function (key, value) {
|
|
16
|
+
var data = key + ":" + value;
|
|
17
|
+
if (filter.has(data)) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
filter.add(data);
|
|
21
|
+
return true;
|
|
22
|
+
},
|
|
23
|
+
contains: function (key, value) {
|
|
24
|
+
var data = key + ":" + value;
|
|
25
|
+
return filter.has(data);
|
|
26
|
+
},
|
|
27
|
+
clear: function () {
|
|
28
|
+
filter = bloom_filters_1.BloomFilter.create(expectedInsertions, errorRate);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
exports.bloomFilterFactory = bloomFilterFactory;
|