@splitsoftware/splitio-commons 1.0.1-rc.2 → 1.0.1-rc.6
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/cjs/evaluator/Engine.js +6 -5
- package/cjs/evaluator/combiners/and.js +4 -4
- package/cjs/evaluator/combiners/ifelseif.js +4 -3
- package/cjs/evaluator/condition/index.js +4 -3
- package/cjs/evaluator/index.js +10 -11
- package/cjs/evaluator/matchers/all.js +2 -1
- package/cjs/evaluator/matchers/between.js +2 -1
- package/cjs/evaluator/matchers/boolean.js +2 -1
- package/cjs/evaluator/matchers/cont_all.js +3 -2
- package/cjs/evaluator/matchers/cont_any.js +3 -2
- package/cjs/evaluator/matchers/cont_str.js +2 -1
- package/cjs/evaluator/matchers/dependency.js +4 -4
- package/cjs/evaluator/matchers/eq.js +2 -1
- package/cjs/evaluator/matchers/eq_set.js +2 -1
- package/cjs/evaluator/matchers/ew.js +2 -1
- package/cjs/evaluator/matchers/gte.js +2 -1
- package/cjs/evaluator/matchers/index.js +36 -36
- package/cjs/evaluator/matchers/lte.js +2 -1
- package/cjs/evaluator/matchers/part_of.js +3 -2
- package/cjs/evaluator/matchers/segment.js +5 -5
- package/cjs/evaluator/matchers/string.js +2 -1
- package/cjs/evaluator/matchers/sw.js +2 -1
- package/cjs/evaluator/matchers/whitelist.js +2 -1
- package/cjs/evaluator/matchersTransform/index.js +12 -12
- package/cjs/evaluator/matchersTransform/segment.js +3 -2
- package/cjs/evaluator/matchersTransform/set.js +3 -2
- package/cjs/evaluator/matchersTransform/unaryNumeric.js +3 -2
- package/cjs/evaluator/matchersTransform/whitelist.js +3 -2
- package/cjs/evaluator/parser/index.js +16 -16
- package/cjs/evaluator/treatments/index.js +2 -1
- package/cjs/evaluator/value/index.js +5 -5
- package/cjs/evaluator/value/sanitize.js +2 -1
- package/cjs/integrations/browser.js +4 -4
- package/cjs/integrations/ga/GaToSplit.js +3 -4
- package/cjs/integrations/pluggable.js +3 -2
- package/cjs/listeners/browser.js +4 -4
- package/cjs/listeners/node.js +4 -4
- package/cjs/logger/index.js +2 -3
- package/cjs/logger/messages/warn.js +2 -2
- package/cjs/readiness/readinessManager.js +3 -4
- package/cjs/readiness/sdkReadinessManager.js +7 -7
- package/cjs/sdkClient/client.js +5 -5
- package/cjs/sdkClient/clientCS.js +4 -4
- package/cjs/sdkClient/clientInputValidation.js +5 -5
- package/cjs/sdkClient/sdkClient.js +5 -6
- package/cjs/sdkClient/sdkClientMethodCS.js +4 -5
- package/cjs/sdkClient/sdkClientMethodCSWithTT.js +4 -5
- package/cjs/sdkFactory/index.js +7 -8
- package/cjs/sdkManager/index.js +6 -7
- package/cjs/services/splitApi.js +2 -3
- package/cjs/services/splitHttpClient.js +3 -4
- package/cjs/storages/AbstractSegmentsCacheSync.js +2 -1
- package/cjs/storages/AbstractSplitsCacheAsync.js +2 -1
- package/cjs/storages/AbstractSplitsCacheSync.js +2 -2
- package/cjs/storages/KeyBuilder.js +2 -2
- package/cjs/storages/KeyBuilderCS.js +4 -3
- package/cjs/storages/KeyBuilderSS.js +4 -3
- package/cjs/storages/findLatencyIndex.js +2 -1
- package/cjs/storages/inLocalStorage/MySegmentsCacheInLocal.js +4 -3
- package/cjs/storages/inLocalStorage/SplitsCacheInLocal.js +4 -3
- package/cjs/storages/inLocalStorage/index.js +20 -21
- package/cjs/storages/inMemory/CountsCacheInMemory.js +2 -1
- package/cjs/storages/inMemory/EventsCacheInMemory.js +2 -1
- package/cjs/storages/inMemory/ImpressionCountsCacheInMemory.js +2 -1
- package/cjs/storages/inMemory/ImpressionsCacheInMemory.js +2 -1
- package/cjs/storages/inMemory/InMemoryStorage.js +10 -11
- package/cjs/storages/inMemory/InMemoryStorageCS.js +12 -13
- package/cjs/storages/inMemory/LatenciesCacheInMemory.js +4 -4
- package/cjs/storages/inMemory/MySegmentsCacheInMemory.js +4 -3
- package/cjs/storages/inMemory/SegmentsCacheInMemory.js +4 -3
- package/cjs/storages/inMemory/SplitsCacheInMemory.js +4 -3
- package/cjs/storages/inRedis/CountsCacheInRedis.js +2 -1
- package/cjs/storages/inRedis/EventsCacheInRedis.js +2 -1
- package/cjs/storages/inRedis/ImpressionsCacheInRedis.js +2 -1
- package/cjs/storages/inRedis/LatenciesCacheInRedis.js +4 -4
- package/cjs/storages/inRedis/RedisAdapter.js +6 -5
- package/cjs/storages/inRedis/SegmentsCacheInRedis.js +2 -1
- package/cjs/storages/inRedis/SplitsCacheInRedis.js +4 -3
- package/cjs/storages/inRedis/index.js +16 -17
- package/cjs/storages/pluggable/SplitsCachePluggable.js +2 -2
- package/cjs/storages/pluggable/constants.js +1 -1
- package/cjs/storages/pluggable/index.js +8 -8
- package/cjs/sync/offline/splitsParser/parseCondition.js +2 -1
- package/cjs/sync/offline/splitsParser/splitsParserFromFile.js +3 -3
- package/cjs/sync/offline/splitsParser/splitsParserFromSettings.js +2 -3
- package/cjs/sync/offline/syncManagerOffline.js +3 -4
- package/cjs/sync/offline/syncTasks/fromObjectSyncTask.js +4 -5
- package/cjs/sync/polling/fetchers/mySegmentsFetcher.js +2 -1
- package/cjs/sync/polling/fetchers/segmentChangesFetcher.js +2 -1
- package/cjs/sync/polling/fetchers/splitChangesFetcher.js +2 -1
- package/cjs/sync/polling/pollingManagerCS.js +6 -6
- package/cjs/sync/polling/pollingManagerSS.js +8 -8
- package/cjs/sync/polling/syncTasks/mySegmentsSyncTask.js +5 -5
- package/cjs/sync/polling/syncTasks/segmentsSyncTask.js +5 -5
- package/cjs/sync/polling/syncTasks/splitsSyncTask.js +5 -5
- package/cjs/sync/polling/updaters/mySegmentsUpdater.js +2 -3
- package/cjs/sync/polling/updaters/segmentChangesUpdater.js +2 -3
- package/cjs/sync/polling/updaters/splitChangesUpdater.js +2 -3
- package/cjs/sync/streaming/AuthClient/index.js +2 -3
- package/cjs/sync/streaming/SSEClient/index.js +2 -2
- package/cjs/sync/streaming/SSEHandler/NotificationKeeper.js +2 -1
- package/cjs/sync/streaming/SSEHandler/index.js +4 -4
- package/cjs/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.js +4 -4
- package/cjs/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.js +4 -4
- package/cjs/sync/streaming/UpdateWorkers/SplitsUpdateWorker.js +4 -4
- package/cjs/sync/streaming/pushManager.js +16 -16
- package/cjs/sync/submitters/submitterSyncTask.js +2 -3
- package/cjs/sync/syncTask.js +2 -1
- package/cjs/trackers/eventTracker.js +7 -7
- package/cjs/trackers/impressionObserver/ImpressionObserver.js +4 -4
- package/cjs/trackers/impressionObserver/impressionObserverCS.js +2 -3
- package/cjs/trackers/impressionObserver/impressionObserverSS.js +2 -3
- package/cjs/trackers/impressionsTracker.js +6 -6
- package/cjs/utils/Backoff.js +2 -1
- package/cjs/utils/LRUCache/index.js +2 -1
- package/cjs/utils/MinEventEmitter.js +7 -6
- package/cjs/utils/MinEvents.js +13 -15
- package/cjs/utils/env/isNode.js +4 -1
- package/cjs/utils/inputValidation/trafficTypeExistance.js +2 -3
- package/cjs/utils/lang/binarySearch.js +2 -1
- package/cjs/utils/lang/objectAssign.js +85 -0
- package/cjs/utils/promise/thenable.js +5 -1
- package/cjs/utils/promise/timeout.js +2 -1
- package/cjs/utils/promise/wrapper.js +2 -1
- package/cjs/utils/settingsValidation/impressionsMode.js +2 -1
- package/cjs/utils/settingsValidation/index.js +4 -5
- package/cjs/utils/settingsValidation/mode.js +2 -1
- package/cjs/utils/timeTracker/index.js +7 -8
- package/cjs/utils/timeTracker/now/browser.js +2 -2
- package/cjs/utils/timeTracker/now/node.js +2 -1
- package/cjs/utils/timeTracker/timer.js +3 -2
- package/esm/evaluator/Engine.js +3 -3
- package/esm/evaluator/combiners/and.js +2 -2
- package/esm/evaluator/combiners/ifelseif.js +2 -2
- package/esm/evaluator/condition/index.js +2 -2
- package/esm/evaluator/index.js +5 -6
- package/esm/evaluator/matchers/all.js +1 -1
- package/esm/evaluator/matchers/between.js +1 -1
- package/esm/evaluator/matchers/boolean.js +1 -1
- package/esm/evaluator/matchers/cont_all.js +1 -1
- package/esm/evaluator/matchers/cont_any.js +1 -1
- package/esm/evaluator/matchers/cont_str.js +1 -1
- package/esm/evaluator/matchers/dependency.js +2 -2
- package/esm/evaluator/matchers/eq.js +1 -1
- package/esm/evaluator/matchers/eq_set.js +1 -1
- package/esm/evaluator/matchers/ew.js +1 -1
- package/esm/evaluator/matchers/gte.js +1 -1
- package/esm/evaluator/matchers/index.js +35 -35
- package/esm/evaluator/matchers/lte.js +1 -1
- package/esm/evaluator/matchers/part_of.js +1 -1
- package/esm/evaluator/matchers/segment.js +2 -2
- package/esm/evaluator/matchers/string.js +1 -1
- package/esm/evaluator/matchers/sw.js +1 -1
- package/esm/evaluator/matchers/whitelist.js +1 -1
- package/esm/evaluator/matchersTransform/index.js +5 -5
- package/esm/evaluator/matchersTransform/segment.js +1 -1
- package/esm/evaluator/matchersTransform/set.js +1 -1
- package/esm/evaluator/matchersTransform/unaryNumeric.js +1 -1
- package/esm/evaluator/matchersTransform/whitelist.js +1 -1
- package/esm/evaluator/parser/index.js +11 -11
- package/esm/evaluator/treatments/index.js +1 -1
- package/esm/evaluator/value/index.js +3 -3
- package/esm/evaluator/value/sanitize.js +1 -1
- package/esm/integrations/browser.js +2 -2
- package/esm/integrations/ga/GaToSplit.js +1 -1
- package/esm/integrations/pluggable.js +1 -1
- package/esm/listeners/browser.js +2 -2
- package/esm/listeners/node.js +2 -2
- package/esm/logger/index.js +1 -1
- package/esm/logger/messages/warn.js +2 -2
- package/esm/readiness/readinessManager.js +1 -1
- package/esm/readiness/sdkReadinessManager.js +3 -3
- package/esm/sdkClient/client.js +2 -2
- package/esm/sdkClient/clientCS.js +2 -2
- package/esm/sdkClient/clientInputValidation.js +2 -2
- package/esm/sdkClient/sdkClient.js +3 -3
- package/esm/sdkClient/sdkClientMethodCS.js +2 -2
- package/esm/sdkClient/sdkClientMethodCSWithTT.js +2 -2
- package/esm/sdkFactory/index.js +4 -4
- package/esm/sdkManager/index.js +2 -2
- package/esm/services/splitApi.js +1 -1
- package/esm/services/splitHttpClient.js +1 -1
- package/esm/storages/AbstractSegmentsCacheSync.js +1 -1
- package/esm/storages/AbstractSplitsCacheAsync.js +1 -1
- package/esm/storages/AbstractSplitsCacheSync.js +1 -1
- package/esm/storages/KeyBuilder.js +1 -1
- package/esm/storages/KeyBuilderCS.js +2 -2
- package/esm/storages/KeyBuilderSS.js +2 -2
- package/esm/storages/findLatencyIndex.js +1 -1
- package/esm/storages/inLocalStorage/MySegmentsCacheInLocal.js +2 -2
- package/esm/storages/inLocalStorage/SplitsCacheInLocal.js +2 -2
- package/esm/storages/inLocalStorage/index.js +8 -8
- package/esm/storages/inMemory/CountsCacheInMemory.js +1 -1
- package/esm/storages/inMemory/EventsCacheInMemory.js +1 -1
- package/esm/storages/inMemory/ImpressionCountsCacheInMemory.js +1 -1
- package/esm/storages/inMemory/ImpressionsCacheInMemory.js +1 -1
- package/esm/storages/inMemory/InMemoryStorage.js +5 -5
- package/esm/storages/inMemory/InMemoryStorageCS.js +5 -5
- package/esm/storages/inMemory/LatenciesCacheInMemory.js +2 -2
- package/esm/storages/inMemory/MySegmentsCacheInMemory.js +2 -2
- package/esm/storages/inMemory/SegmentsCacheInMemory.js +2 -2
- package/esm/storages/inMemory/SplitsCacheInMemory.js +2 -2
- package/esm/storages/inRedis/CountsCacheInRedis.js +1 -1
- package/esm/storages/inRedis/EventsCacheInRedis.js +1 -1
- package/esm/storages/inRedis/ImpressionsCacheInRedis.js +1 -1
- package/esm/storages/inRedis/LatenciesCacheInRedis.js +2 -2
- package/esm/storages/inRedis/RedisAdapter.js +3 -3
- package/esm/storages/inRedis/SegmentsCacheInRedis.js +1 -1
- package/esm/storages/inRedis/SplitsCacheInRedis.js +2 -2
- package/esm/storages/inRedis/index.js +8 -8
- package/esm/storages/pluggable/SplitsCachePluggable.js +1 -1
- package/esm/storages/pluggable/constants.js +1 -1
- package/esm/storages/pluggable/index.js +4 -4
- package/esm/sync/offline/splitsParser/parseCondition.js +1 -1
- package/esm/sync/offline/splitsParser/splitsParserFromFile.js +1 -1
- package/esm/sync/offline/splitsParser/splitsParserFromSettings.js +1 -1
- package/esm/sync/offline/syncManagerOffline.js +2 -2
- package/esm/sync/offline/syncTasks/fromObjectSyncTask.js +2 -2
- package/esm/sync/polling/fetchers/mySegmentsFetcher.js +1 -1
- package/esm/sync/polling/fetchers/segmentChangesFetcher.js +1 -1
- package/esm/sync/polling/fetchers/splitChangesFetcher.js +1 -1
- package/esm/sync/polling/pollingManagerCS.js +3 -3
- package/esm/sync/polling/pollingManagerSS.js +4 -4
- package/esm/sync/polling/syncTasks/mySegmentsSyncTask.js +3 -3
- package/esm/sync/polling/syncTasks/segmentsSyncTask.js +3 -3
- package/esm/sync/polling/syncTasks/splitsSyncTask.js +3 -3
- package/esm/sync/polling/updaters/mySegmentsUpdater.js +1 -1
- package/esm/sync/polling/updaters/segmentChangesUpdater.js +1 -1
- package/esm/sync/polling/updaters/splitChangesUpdater.js +1 -1
- package/esm/sync/streaming/AuthClient/index.js +1 -1
- package/esm/sync/streaming/SSEClient/index.js +1 -2
- package/esm/sync/streaming/SSEHandler/NotificationKeeper.js +1 -1
- package/esm/sync/streaming/SSEHandler/index.js +2 -2
- package/esm/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.js +2 -2
- package/esm/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.js +2 -2
- package/esm/sync/streaming/UpdateWorkers/SplitsUpdateWorker.js +2 -2
- package/esm/sync/streaming/pushManager.js +8 -8
- package/esm/sync/submitters/submitterSyncTask.js +1 -1
- package/esm/sync/syncTask.js +1 -1
- package/esm/trackers/eventTracker.js +3 -3
- package/esm/trackers/impressionObserver/ImpressionObserver.js +2 -2
- package/esm/trackers/impressionObserver/impressionObserverCS.js +1 -1
- package/esm/trackers/impressionObserver/impressionObserverSS.js +1 -1
- package/esm/trackers/impressionsTracker.js +3 -3
- package/esm/utils/Backoff.js +1 -1
- package/esm/utils/LRUCache/index.js +1 -1
- package/esm/utils/MinEventEmitter.js +6 -6
- package/esm/utils/MinEvents.js +2 -5
- package/esm/utils/env/isNode.js +4 -1
- package/esm/utils/inputValidation/trafficTypeExistance.js +1 -1
- package/esm/utils/lang/binarySearch.js +1 -1
- package/esm/utils/lang/objectAssign.js +82 -0
- package/esm/utils/promise/thenable.js +3 -1
- package/esm/utils/promise/timeout.js +1 -1
- package/esm/utils/promise/wrapper.js +1 -1
- package/esm/utils/settingsValidation/impressionsMode.js +1 -1
- package/esm/utils/settingsValidation/index.js +2 -2
- package/esm/utils/settingsValidation/mode.js +1 -1
- package/esm/utils/timeTracker/index.js +4 -5
- package/esm/utils/timeTracker/now/browser.js +1 -2
- package/esm/utils/timeTracker/now/node.js +1 -1
- package/esm/utils/timeTracker/timer.js +1 -1
- package/package.json +4 -6
- package/src/evaluator/Engine.ts +3 -3
- package/src/evaluator/combiners/and.ts +2 -2
- package/src/evaluator/combiners/ifelseif.ts +2 -2
- package/src/evaluator/condition/index.ts +2 -2
- package/src/evaluator/index.ts +5 -6
- package/src/evaluator/matchers/all.ts +1 -1
- package/src/evaluator/matchers/between.ts +1 -1
- package/src/evaluator/matchers/boolean.ts +1 -1
- package/src/evaluator/matchers/cont_all.ts +1 -1
- package/src/evaluator/matchers/cont_any.ts +1 -1
- package/src/evaluator/matchers/cont_str.ts +1 -1
- package/src/evaluator/matchers/dependency.ts +2 -2
- package/src/evaluator/matchers/eq.ts +1 -1
- package/src/evaluator/matchers/eq_set.ts +1 -1
- package/src/evaluator/matchers/ew.ts +1 -1
- package/src/evaluator/matchers/gte.ts +1 -1
- package/src/evaluator/matchers/index.ts +35 -35
- package/src/evaluator/matchers/lte.ts +1 -1
- package/src/evaluator/matchers/part_of.ts +1 -1
- package/src/evaluator/matchers/segment.ts +2 -2
- package/src/evaluator/matchers/string.ts +1 -1
- package/src/evaluator/matchers/sw.ts +1 -1
- package/src/evaluator/matchers/whitelist.ts +1 -1
- package/src/evaluator/matchersTransform/index.ts +5 -5
- package/src/evaluator/matchersTransform/segment.ts +1 -1
- package/src/evaluator/matchersTransform/set.ts +1 -1
- package/src/evaluator/matchersTransform/unaryNumeric.ts +1 -1
- package/src/evaluator/matchersTransform/whitelist.ts +1 -1
- package/src/evaluator/parser/index.ts +12 -12
- package/src/evaluator/treatments/index.ts +1 -1
- package/src/evaluator/value/index.ts +3 -3
- package/src/evaluator/value/sanitize.ts +1 -1
- package/src/integrations/browser.ts +2 -2
- package/src/integrations/ga/GaToSplit.ts +1 -1
- package/src/integrations/pluggable.ts +1 -1
- package/src/listeners/browser.ts +2 -2
- package/src/listeners/node.ts +2 -2
- package/src/logger/index.ts +1 -1
- package/src/logger/messages/warn.ts +2 -2
- package/src/readiness/readinessManager.ts +2 -2
- package/src/readiness/sdkReadinessManager.ts +3 -3
- package/src/sdkClient/client.ts +2 -2
- package/src/sdkClient/clientCS.ts +2 -2
- package/src/sdkClient/clientInputValidation.ts +2 -2
- package/src/sdkClient/sdkClient.ts +3 -3
- package/src/sdkClient/sdkClientMethodCS.ts +2 -2
- package/src/sdkClient/sdkClientMethodCSWithTT.ts +2 -2
- package/src/sdkFactory/index.ts +4 -4
- package/src/sdkFactory/types.ts +2 -2
- package/src/sdkManager/index.ts +2 -2
- package/src/services/splitApi.ts +1 -1
- package/src/services/splitHttpClient.ts +1 -1
- package/src/services/types.ts +16 -2
- package/src/storages/AbstractSegmentsCacheSync.ts +1 -1
- package/src/storages/AbstractSplitsCacheAsync.ts +1 -1
- package/src/storages/AbstractSplitsCacheSync.ts +1 -1
- package/src/storages/KeyBuilder.ts +1 -1
- package/src/storages/KeyBuilderCS.ts +2 -2
- package/src/storages/KeyBuilderSS.ts +2 -2
- package/src/storages/findLatencyIndex.ts +1 -1
- package/src/storages/inLocalStorage/MySegmentsCacheInLocal.ts +3 -3
- package/src/storages/inLocalStorage/SplitsCacheInLocal.ts +3 -3
- package/src/storages/inLocalStorage/index.ts +8 -8
- package/src/storages/inMemory/CountsCacheInMemory.ts +1 -1
- package/src/storages/inMemory/EventsCacheInMemory.ts +1 -1
- package/src/storages/inMemory/ImpressionCountsCacheInMemory.ts +1 -1
- package/src/storages/inMemory/ImpressionsCacheInMemory.ts +1 -1
- package/src/storages/inMemory/InMemoryStorage.ts +5 -5
- package/src/storages/inMemory/InMemoryStorageCS.ts +5 -5
- package/src/storages/inMemory/LatenciesCacheInMemory.ts +2 -2
- package/src/storages/inMemory/MySegmentsCacheInMemory.ts +2 -2
- package/src/storages/inMemory/SegmentsCacheInMemory.ts +2 -2
- package/src/storages/inMemory/SplitsCacheInMemory.ts +2 -2
- package/src/storages/inRedis/CountsCacheInRedis.ts +2 -2
- package/src/storages/inRedis/EventsCacheInRedis.ts +1 -1
- package/src/storages/inRedis/ImpressionsCacheInRedis.ts +1 -1
- package/src/storages/inRedis/LatenciesCacheInRedis.ts +3 -3
- package/src/storages/inRedis/RedisAdapter.ts +3 -3
- package/src/storages/inRedis/SegmentsCacheInRedis.ts +2 -2
- package/src/storages/inRedis/SplitsCacheInRedis.ts +3 -3
- package/src/storages/inRedis/index.ts +8 -8
- package/src/storages/pluggable/SegmentsCachePluggable.ts +1 -1
- package/src/storages/pluggable/SplitsCachePluggable.ts +2 -2
- package/src/storages/pluggable/constants.ts +1 -1
- package/src/storages/pluggable/index.ts +4 -4
- package/src/storages/types.ts +2 -2
- package/src/sync/offline/splitsParser/parseCondition.ts +1 -1
- package/src/sync/offline/splitsParser/splitsParserFromFile.ts +1 -1
- package/src/sync/offline/splitsParser/splitsParserFromSettings.ts +1 -1
- package/src/sync/offline/syncManagerOffline.ts +2 -2
- package/src/sync/offline/syncTasks/fromObjectSyncTask.ts +2 -2
- package/src/sync/polling/fetchers/mySegmentsFetcher.ts +1 -1
- package/src/sync/polling/fetchers/segmentChangesFetcher.ts +1 -1
- package/src/sync/polling/fetchers/splitChangesFetcher.ts +1 -1
- package/src/sync/polling/pollingManagerCS.ts +3 -3
- package/src/sync/polling/pollingManagerSS.ts +4 -4
- package/src/sync/polling/syncTasks/mySegmentsSyncTask.ts +3 -3
- package/src/sync/polling/syncTasks/segmentsSyncTask.ts +3 -3
- package/src/sync/polling/syncTasks/splitsSyncTask.ts +3 -3
- package/src/sync/polling/updaters/mySegmentsUpdater.ts +1 -1
- package/src/sync/polling/updaters/segmentChangesUpdater.ts +1 -1
- package/src/sync/polling/updaters/splitChangesUpdater.ts +1 -1
- package/src/sync/streaming/AuthClient/index.ts +1 -1
- package/src/sync/streaming/SSEClient/index.ts +6 -6
- package/src/sync/streaming/SSEHandler/NotificationKeeper.ts +1 -1
- package/src/sync/streaming/SSEHandler/index.ts +2 -2
- package/src/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.ts +2 -2
- package/src/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.ts +2 -2
- package/src/sync/streaming/UpdateWorkers/SplitsUpdateWorker.ts +2 -2
- package/src/sync/streaming/UpdateWorkers/types.ts +1 -1
- package/src/sync/streaming/pushManager.ts +8 -8
- package/src/sync/submitters/submitterSyncTask.ts +1 -1
- package/src/sync/syncTask.ts +1 -1
- package/src/trackers/eventTracker.ts +3 -3
- package/src/trackers/impressionObserver/ImpressionObserver.ts +2 -2
- package/src/trackers/impressionObserver/impressionObserverCS.ts +1 -1
- package/src/trackers/impressionObserver/impressionObserverSS.ts +1 -1
- package/src/trackers/impressionsTracker.ts +3 -3
- package/src/types.ts +9 -8
- package/src/utils/Backoff.ts +1 -1
- package/src/utils/LRUCache/index.ts +1 -1
- package/src/utils/MinEventEmitter.ts +11 -11
- package/src/utils/MinEvents.ts +2 -7
- package/src/utils/env/isNode.ts +4 -1
- package/src/utils/inputValidation/trafficTypeExistance.ts +1 -1
- package/src/utils/lang/binarySearch.ts +1 -1
- package/src/utils/lang/objectAssign.ts +104 -0
- package/src/utils/promise/thenable.ts +3 -1
- package/src/utils/promise/timeout.ts +1 -1
- package/src/utils/promise/wrapper.ts +1 -1
- package/src/utils/settingsValidation/impressionsMode.ts +1 -1
- package/src/utils/settingsValidation/index.ts +2 -2
- package/src/utils/settingsValidation/mode.ts +1 -1
- package/src/utils/timeTracker/index.ts +4 -6
- package/src/utils/timeTracker/now/browser.ts +1 -3
- package/src/utils/timeTracker/now/node.ts +1 -1
- package/src/utils/timeTracker/timer.ts +1 -1
- package/types/evaluator/Engine.d.ts +1 -1
- package/types/evaluator/combiners/and.d.ts +1 -1
- package/types/evaluator/combiners/ifelseif.d.ts +1 -1
- package/types/evaluator/condition/index.d.ts +1 -1
- package/types/evaluator/matchers/all.d.ts +1 -1
- package/types/evaluator/matchers/between.d.ts +1 -1
- package/types/evaluator/matchers/boolean.d.ts +1 -1
- package/types/evaluator/matchers/cont_all.d.ts +1 -1
- package/types/evaluator/matchers/cont_any.d.ts +1 -1
- package/types/evaluator/matchers/cont_str.d.ts +1 -1
- package/types/evaluator/matchers/dependency.d.ts +1 -1
- package/types/evaluator/matchers/eq.d.ts +1 -1
- package/types/evaluator/matchers/eq_set.d.ts +1 -1
- package/types/evaluator/matchers/ew.d.ts +1 -1
- package/types/evaluator/matchers/gte.d.ts +1 -1
- package/types/evaluator/matchers/index.d.ts +1 -1
- package/types/evaluator/matchers/lte.d.ts +1 -1
- package/types/evaluator/matchers/part_of.d.ts +1 -1
- package/types/evaluator/matchers/segment.d.ts +1 -1
- package/types/evaluator/matchers/string.d.ts +1 -1
- package/types/evaluator/matchers/sw.d.ts +1 -1
- package/types/evaluator/matchers/whitelist.d.ts +1 -1
- package/types/evaluator/matchersTransform/index.d.ts +1 -1
- package/types/evaluator/matchersTransform/segment.d.ts +1 -1
- package/types/evaluator/matchersTransform/set.d.ts +1 -1
- package/types/evaluator/matchersTransform/unaryNumeric.d.ts +1 -1
- package/types/evaluator/matchersTransform/whitelist.d.ts +1 -1
- package/types/evaluator/parser/index.d.ts +1 -1
- package/types/evaluator/treatments/index.d.ts +1 -1
- package/types/evaluator/value/index.d.ts +1 -1
- package/types/evaluator/value/sanitize.d.ts +1 -1
- package/types/integrations/browser.d.ts +1 -1
- package/types/integrations/pluggable.d.ts +1 -1
- package/types/listeners/browser.d.ts +1 -1
- package/types/listeners/node.d.ts +1 -1
- package/types/readiness/sdkReadinessManager.d.ts +1 -1
- package/types/sdkClient/client.d.ts +1 -1
- package/types/sdkClient/clientCS.d.ts +1 -1
- package/types/sdkClient/clientInputValidation.d.ts +1 -1
- package/types/sdkFactory/types.d.ts +2 -2
- package/types/services/types.d.ts +11 -0
- package/types/storages/AbstractSegmentsCacheSync.d.ts +1 -1
- package/types/storages/AbstractSplitsCacheAsync.d.ts +1 -1
- package/types/storages/AbstractSplitsCacheSync.d.ts +1 -1
- package/types/storages/KeyBuilder.d.ts +1 -1
- package/types/storages/KeyBuilderCS.d.ts +2 -2
- package/types/storages/KeyBuilderSS.d.ts +2 -2
- package/types/storages/findLatencyIndex.d.ts +1 -1
- package/types/storages/inLocalStorage/MySegmentsCacheInLocal.d.ts +3 -3
- package/types/storages/inLocalStorage/SplitsCacheInLocal.d.ts +3 -3
- package/types/storages/inMemory/CountsCacheInMemory.d.ts +1 -1
- package/types/storages/inMemory/EventsCacheInMemory.d.ts +1 -1
- package/types/storages/inMemory/ImpressionCountsCacheInMemory.d.ts +1 -1
- package/types/storages/inMemory/ImpressionsCacheInMemory.d.ts +1 -1
- package/types/storages/inMemory/LatenciesCacheInMemory.d.ts +1 -1
- package/types/storages/inMemory/MySegmentsCacheInMemory.d.ts +2 -2
- package/types/storages/inMemory/SegmentsCacheInMemory.d.ts +2 -2
- package/types/storages/inMemory/SplitsCacheInMemory.d.ts +2 -2
- package/types/storages/inRedis/CountsCacheInRedis.d.ts +2 -2
- package/types/storages/inRedis/EventsCacheInRedis.d.ts +1 -1
- package/types/storages/inRedis/ImpressionsCacheInRedis.d.ts +1 -1
- package/types/storages/inRedis/LatenciesCacheInRedis.d.ts +2 -2
- package/types/storages/inRedis/RedisAdapter.d.ts +1 -1
- package/types/storages/inRedis/SegmentsCacheInRedis.d.ts +2 -2
- package/types/storages/inRedis/SplitsCacheInRedis.d.ts +3 -3
- package/types/storages/pluggable/SegmentsCachePluggable.d.ts +1 -1
- package/types/storages/pluggable/SplitsCachePluggable.d.ts +2 -2
- package/types/storages/pluggable/constants.d.ts +1 -1
- package/types/storages/types.d.ts +2 -2
- package/types/sync/offline/splitsParser/parseCondition.d.ts +1 -1
- package/types/sync/offline/syncTasks/fromObjectSyncTask.d.ts +1 -1
- package/types/sync/polling/fetchers/mySegmentsFetcher.d.ts +1 -1
- package/types/sync/polling/fetchers/segmentChangesFetcher.d.ts +1 -1
- package/types/sync/polling/fetchers/splitChangesFetcher.d.ts +1 -1
- package/types/sync/polling/pollingManagerCS.d.ts +1 -1
- package/types/sync/polling/pollingManagerSS.d.ts +1 -1
- package/types/sync/polling/syncTasks/mySegmentsSyncTask.d.ts +1 -1
- package/types/sync/polling/syncTasks/segmentsSyncTask.d.ts +1 -1
- package/types/sync/polling/syncTasks/splitsSyncTask.d.ts +1 -1
- package/types/sync/streaming/SSEClient/index.d.ts +5 -4
- package/types/sync/streaming/SSEHandler/NotificationKeeper.d.ts +1 -1
- package/types/sync/streaming/SSEHandler/index.d.ts +1 -1
- package/types/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.d.ts +2 -2
- package/types/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.d.ts +2 -2
- package/types/sync/streaming/UpdateWorkers/SplitsUpdateWorker.d.ts +2 -2
- package/types/sync/streaming/UpdateWorkers/types.d.ts +1 -1
- package/types/sync/streaming/pushManager.d.ts +1 -1
- package/types/sync/syncTask.d.ts +1 -1
- package/types/trackers/eventTracker.d.ts +1 -1
- package/types/trackers/impressionObserver/ImpressionObserver.d.ts +1 -1
- package/types/trackers/impressionObserver/impressionObserverCS.d.ts +1 -1
- package/types/trackers/impressionObserver/impressionObserverSS.d.ts +1 -1
- package/types/trackers/impressionsTracker.d.ts +1 -1
- package/types/types.d.ts +9 -9
- package/types/utils/Backoff.d.ts +1 -1
- package/types/utils/LRUCache/index.d.ts +1 -1
- package/types/utils/MinEventEmitter.d.ts +7 -7
- package/types/utils/MinEvents.d.ts +3 -2
- package/types/utils/env/isNode.d.ts +4 -0
- package/types/utils/lang/binarySearch.d.ts +1 -1
- package/types/utils/lang/objectAssign.d.ts +3 -0
- package/types/utils/promise/thenable.d.ts +1 -2
- package/types/utils/promise/timeout.d.ts +1 -1
- package/types/utils/promise/wrapper.d.ts +1 -1
- package/types/utils/settingsValidation/impressionsMode.d.ts +1 -1
- package/types/utils/settingsValidation/mode.d.ts +1 -1
- package/types/utils/timeTracker/index.d.ts +2 -2
- package/types/utils/timeTracker/now/browser.d.ts +1 -2
- package/types/utils/timeTracker/now/node.d.ts +1 -1
- package/types/utils/timeTracker/timer.d.ts +1 -1
|
@@ -8,7 +8,7 @@ import { ISyncManager } from '../sync/types';
|
|
|
8
8
|
* you should call the cleanup logic yourself, since we cannot ensure the data is sent after
|
|
9
9
|
* the process is already exiting.
|
|
10
10
|
*/
|
|
11
|
-
export
|
|
11
|
+
export declare class NodeSignalListener implements ISignalListener {
|
|
12
12
|
private handler;
|
|
13
13
|
private settings;
|
|
14
14
|
constructor(syncManager: ISyncManager | undefined, // private handler: () => MaybeThenable<void>,
|
|
@@ -10,4 +10,4 @@ import { ILogger } from '../logger/types';
|
|
|
10
10
|
* by the SDK. It is required to properly log the warning 'No listeners for SDK Readiness detected'
|
|
11
11
|
* @param readinessManager optional readinessManager to use. only used internally for `shared` method
|
|
12
12
|
*/
|
|
13
|
-
export
|
|
13
|
+
export declare function sdkReadinessManagerFactory(log: ILogger, EventEmitter: new () => IEventEmitter, readyTimeout?: number, internalReadyCbCount?: number, readinessManager?: import("./types").IReadinessManager): ISdkReadinessManager;
|
|
@@ -3,4 +3,4 @@ import { SplitIO } from '../types';
|
|
|
3
3
|
/**
|
|
4
4
|
* Creator of base client with getTreatments and track methods.
|
|
5
5
|
*/
|
|
6
|
-
export
|
|
6
|
+
export declare function clientFactory(params: IClientFactoryParams): SplitIO.IClient | SplitIO.IAsyncClient;
|
|
@@ -6,4 +6,4 @@ import { SplitIO } from '../types';
|
|
|
6
6
|
* @param key validated split key
|
|
7
7
|
* @param trafficType validated traffic type
|
|
8
8
|
*/
|
|
9
|
-
export
|
|
9
|
+
export declare function clientCSDecorator(client: SplitIO.IClient, key: SplitIO.SplitKey, trafficType?: string): SplitIO.ICsClient;
|
|
@@ -5,4 +5,4 @@ import { ILogger } from '../logger/types';
|
|
|
5
5
|
* Decorator that validates the input before actually executing the client methods.
|
|
6
6
|
* We should "guard" the client here, while not polluting the "real" implementation of those methods.
|
|
7
7
|
*/
|
|
8
|
-
export
|
|
8
|
+
export declare function clientInputValidationDecorator<TClient extends SplitIO.IClient | SplitIO.IAsyncClient>(log: ILogger, client: TClient, readinessManager: IReadinessManager, isStorageSync?: boolean): TClient;
|
|
@@ -3,7 +3,7 @@ import { ISignalListener } from '../listeners/types';
|
|
|
3
3
|
import { ILogger } from '../logger/types';
|
|
4
4
|
import { ISdkReadinessManager } from '../readiness/types';
|
|
5
5
|
import { ISdkClientFactoryParams } from '../sdkClient/types';
|
|
6
|
-
import { IFetch, ISplitApi } from '../services/types';
|
|
6
|
+
import { IFetch, ISplitApi, IEventSourceConstructor } from '../services/types';
|
|
7
7
|
import { IStorageAsync, IStorageSync, ISplitsCacheSync, ISplitsCacheAsync, IStorageFactoryParams } from '../storages/types';
|
|
8
8
|
import { ISyncManager, ISyncManagerFactoryParams } from '../sync/types';
|
|
9
9
|
import { IImpressionObserver } from '../trackers/impressionObserver/types';
|
|
@@ -15,7 +15,7 @@ import { SplitIO, ISettings, IEventEmitter } from '../types';
|
|
|
15
15
|
export interface IPlatform {
|
|
16
16
|
getOptions?: () => object;
|
|
17
17
|
getFetch?: () => (IFetch | undefined);
|
|
18
|
-
getEventSource?: () => (
|
|
18
|
+
getEventSource?: () => (IEventSourceConstructor | undefined);
|
|
19
19
|
EventEmitter: new () => IEventEmitter;
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
@@ -34,3 +34,14 @@ export interface ISplitApi {
|
|
|
34
34
|
postMetricsCounters: IPostMetricsCounters;
|
|
35
35
|
postMetricsTimes: IPostMetricsTimes;
|
|
36
36
|
}
|
|
37
|
+
interface EventSourceEventMap {
|
|
38
|
+
'error': Event;
|
|
39
|
+
'message': MessageEvent;
|
|
40
|
+
'open': Event;
|
|
41
|
+
}
|
|
42
|
+
interface IEventSource {
|
|
43
|
+
addEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: IEventSource, ev: EventSourceEventMap[K]) => any): void;
|
|
44
|
+
close(): void;
|
|
45
|
+
}
|
|
46
|
+
export declare type IEventSourceConstructor = new (url: string, eventSourceInitDict?: any) => IEventSource;
|
|
47
|
+
export {};
|
|
@@ -3,7 +3,7 @@ import { ISegmentsCacheSync } from './types';
|
|
|
3
3
|
* This class provides a skeletal implementation of the ISegmentsCacheSync interface
|
|
4
4
|
* to minimize the effort required to implement this interface.
|
|
5
5
|
*/
|
|
6
|
-
export
|
|
6
|
+
export declare abstract class AbstractSegmentsCacheSync implements ISegmentsCacheSync {
|
|
7
7
|
/**
|
|
8
8
|
* For server-side synchronizer: add `segmentKeys` list of keys to `name` segment.
|
|
9
9
|
* For client-side synchronizer: add `name` segment to the cache. `segmentKeys` is undefined.
|
|
@@ -3,7 +3,7 @@ import { ISplitsCacheAsync } from './types';
|
|
|
3
3
|
* This class provides a skeletal implementation of the ISplitsCacheAsync interface
|
|
4
4
|
* to minimize the effort required to implement this interface.
|
|
5
5
|
*/
|
|
6
|
-
export
|
|
6
|
+
export declare abstract class AbstractSplitsCacheAsync implements ISplitsCacheAsync {
|
|
7
7
|
abstract addSplit(name: string, split: string): Promise<boolean>;
|
|
8
8
|
abstract addSplits(entries: [string, string][]): Promise<boolean[] | void>;
|
|
9
9
|
abstract removeSplits(names: string[]): Promise<boolean[] | void>;
|
|
@@ -4,7 +4,7 @@ import { ISplit } from '../dtos/types';
|
|
|
4
4
|
* This class provides a skeletal implementation of the ISplitsCacheSync interface
|
|
5
5
|
* to minimize the effort required to implement this interface.
|
|
6
6
|
*/
|
|
7
|
-
export
|
|
7
|
+
export declare abstract class AbstractSplitsCacheSync implements ISplitsCacheSync {
|
|
8
8
|
abstract addSplit(name: string, split: string): boolean;
|
|
9
9
|
addSplits(entries: [string, string][]): boolean[];
|
|
10
10
|
abstract removeSplit(name: string): boolean;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import KeyBuilder from './KeyBuilder';
|
|
2
|
-
export
|
|
1
|
+
import { KeyBuilder } from './KeyBuilder';
|
|
2
|
+
export declare class KeyBuilderCS extends KeyBuilder {
|
|
3
3
|
protected readonly regexSplitsCacheKey: RegExp;
|
|
4
4
|
protected readonly matchingKey: string;
|
|
5
5
|
constructor(prefix: string, matchingKey: string);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import KeyBuilder from './KeyBuilder';
|
|
1
|
+
import { KeyBuilder } from './KeyBuilder';
|
|
2
2
|
import { IMetadata } from '../dtos/types';
|
|
3
|
-
export
|
|
3
|
+
export declare class KeyBuilderSS extends KeyBuilder {
|
|
4
4
|
protected readonly metadata: IMetadata;
|
|
5
5
|
constructor(prefix: string, metadata: IMetadata);
|
|
6
6
|
buildRegisteredSegmentsKey(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export declare function findLatencyIndex(latency: number, min?: number, max?: number, base?: number): number;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ILogger } from '../../logger/types';
|
|
2
|
-
import AbstractSegmentsCacheSync from '../AbstractSegmentsCacheSync';
|
|
3
|
-
import KeyBuilderCS from '../KeyBuilderCS';
|
|
4
|
-
export
|
|
2
|
+
import { AbstractSegmentsCacheSync } from '../AbstractSegmentsCacheSync';
|
|
3
|
+
import { KeyBuilderCS } from '../KeyBuilderCS';
|
|
4
|
+
export declare class MySegmentsCacheInLocal extends AbstractSegmentsCacheSync {
|
|
5
5
|
private readonly keys;
|
|
6
6
|
private readonly log;
|
|
7
7
|
constructor(log: ILogger, keys: KeyBuilderCS);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ISplitFiltersValidation } from '../../dtos/types';
|
|
2
|
-
import AbstractSplitsCacheSync from '../AbstractSplitsCacheSync';
|
|
3
|
-
import KeyBuilderCS from '../KeyBuilderCS';
|
|
2
|
+
import { AbstractSplitsCacheSync } from '../AbstractSplitsCacheSync';
|
|
3
|
+
import { KeyBuilderCS } from '../KeyBuilderCS';
|
|
4
4
|
import { ILogger } from '../../logger/types';
|
|
5
5
|
/**
|
|
6
6
|
* ISplitsCacheSync implementation that stores split definitions in browser LocalStorage.
|
|
7
7
|
*/
|
|
8
|
-
export
|
|
8
|
+
export declare class SplitsCacheInLocal extends AbstractSplitsCacheSync {
|
|
9
9
|
private readonly log;
|
|
10
10
|
private readonly keys;
|
|
11
11
|
private readonly splitFiltersValidation;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SplitIO } from '../../types';
|
|
2
2
|
import { IEventsCacheSync } from '../types';
|
|
3
|
-
export
|
|
3
|
+
export declare class EventsCacheInMemory implements IEventsCacheSync {
|
|
4
4
|
private onFullQueue?;
|
|
5
5
|
private readonly maxQueue;
|
|
6
6
|
private queue;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IImpressionCountsCacheSync } from '../types';
|
|
2
|
-
export
|
|
2
|
+
export declare class ImpressionCountsCacheInMemory implements IImpressionCountsCacheSync {
|
|
3
3
|
private cache;
|
|
4
4
|
/**
|
|
5
5
|
* Builds key to be stored in the cache with the featureName and the timeFrame truncated.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { IImpressionsCacheSync } from '../types';
|
|
2
2
|
import { ImpressionDTO } from '../../types';
|
|
3
|
-
export
|
|
3
|
+
export declare class ImpressionsCacheInMemory implements IImpressionsCacheSync {
|
|
4
4
|
private queue;
|
|
5
5
|
/**
|
|
6
6
|
* Store impressions in sequential order
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import AbstractSegmentsCacheSync from '../AbstractSegmentsCacheSync';
|
|
1
|
+
import { AbstractSegmentsCacheSync } from '../AbstractSegmentsCacheSync';
|
|
2
2
|
/**
|
|
3
3
|
* Default MySegmentsCacheInMemory implementation that stores MySegments in memory.
|
|
4
4
|
* Supported by all JS runtimes.
|
|
5
5
|
*/
|
|
6
|
-
export
|
|
6
|
+
export declare class MySegmentsCacheInMemory extends AbstractSegmentsCacheSync {
|
|
7
7
|
private segmentCache;
|
|
8
8
|
clear(): void;
|
|
9
9
|
addToSegment(name: string): boolean;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import AbstractSegmentsCacheSync from '../AbstractSegmentsCacheSync';
|
|
1
|
+
import { AbstractSegmentsCacheSync } from '../AbstractSegmentsCacheSync';
|
|
2
2
|
/**
|
|
3
3
|
* Default ISplitsCacheSync implementation that stores split definitions in memory.
|
|
4
4
|
* Supported by all JS runtimes.
|
|
5
5
|
*/
|
|
6
|
-
export
|
|
6
|
+
export declare class SegmentsCacheInMemory extends AbstractSegmentsCacheSync {
|
|
7
7
|
private segmentCache;
|
|
8
8
|
private segmentChangeNumber;
|
|
9
9
|
addToSegment(name: string, segmentKeys: string[]): boolean;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import AbstractSplitsCacheSync from '../AbstractSplitsCacheSync';
|
|
1
|
+
import { AbstractSplitsCacheSync } from '../AbstractSplitsCacheSync';
|
|
2
2
|
/**
|
|
3
3
|
* Default ISplitsCacheSync implementation that stores split definitions in memory.
|
|
4
4
|
* Supported by all JS runtimes.
|
|
5
5
|
*/
|
|
6
|
-
export
|
|
6
|
+
export declare class SplitsCacheInMemory extends AbstractSplitsCacheSync {
|
|
7
7
|
private splitsCache;
|
|
8
8
|
private ttCache;
|
|
9
9
|
private changeNumber;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ICountsCacheAsync } from '../types';
|
|
2
|
-
import KeyBuilderSS from '../KeyBuilderSS';
|
|
2
|
+
import { KeyBuilderSS } from '../KeyBuilderSS';
|
|
3
3
|
import { Redis } from 'ioredis';
|
|
4
|
-
export
|
|
4
|
+
export declare class CountsCacheInRedis implements ICountsCacheAsync {
|
|
5
5
|
private readonly redis;
|
|
6
6
|
private readonly keys;
|
|
7
7
|
constructor(keys: KeyBuilderSS, redis: Redis);
|
|
@@ -4,7 +4,7 @@ import { Redis } from 'ioredis';
|
|
|
4
4
|
import { SplitIO } from '../../types';
|
|
5
5
|
import { ILogger } from '../../logger/types';
|
|
6
6
|
import { StoredEventWithMetadata } from '../../sync/submitters/types';
|
|
7
|
-
export
|
|
7
|
+
export declare class EventsCacheInRedis implements IEventsCacheAsync {
|
|
8
8
|
private readonly log;
|
|
9
9
|
private readonly key;
|
|
10
10
|
private readonly redis;
|
|
@@ -4,7 +4,7 @@ import { ImpressionDTO } from '../../types';
|
|
|
4
4
|
import { Redis } from 'ioredis';
|
|
5
5
|
import { StoredImpressionWithMetadata } from '../../sync/submitters/types';
|
|
6
6
|
import { ILogger } from '../../logger/types';
|
|
7
|
-
export
|
|
7
|
+
export declare class ImpressionsCacheInRedis implements IImpressionsCacheAsync {
|
|
8
8
|
private readonly log;
|
|
9
9
|
private readonly key;
|
|
10
10
|
private readonly redis;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ILatenciesCacheAsync } from '../types';
|
|
2
|
-
import KeyBuilderSS from '../KeyBuilderSS';
|
|
2
|
+
import { KeyBuilderSS } from '../KeyBuilderSS';
|
|
3
3
|
import { Redis } from 'ioredis';
|
|
4
|
-
export
|
|
4
|
+
export declare class LatenciesCacheInRedis implements ILatenciesCacheAsync {
|
|
5
5
|
private readonly redis;
|
|
6
6
|
private readonly keys;
|
|
7
7
|
constructor(keys: KeyBuilderSS, redis: Redis);
|
|
@@ -3,7 +3,7 @@ import { ILogger } from '../../logger/types';
|
|
|
3
3
|
/**
|
|
4
4
|
* Redis adapter on top of the library of choice (written with ioredis) for some extra control.
|
|
5
5
|
*/
|
|
6
|
-
export
|
|
6
|
+
export declare class RedisAdapter extends ioredis {
|
|
7
7
|
private readonly log;
|
|
8
8
|
private _options;
|
|
9
9
|
private _notReadyCommandsQueue?;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Redis } from 'ioredis';
|
|
2
2
|
import { ILogger } from '../../logger/types';
|
|
3
|
-
import KeyBuilderSS from '../KeyBuilderSS';
|
|
3
|
+
import { KeyBuilderSS } from '../KeyBuilderSS';
|
|
4
4
|
import { ISegmentsCacheAsync } from '../types';
|
|
5
|
-
export
|
|
5
|
+
export declare class SegmentsCacheInRedis implements ISegmentsCacheAsync {
|
|
6
6
|
private readonly log;
|
|
7
7
|
private readonly redis;
|
|
8
8
|
private readonly keys;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import KeyBuilderSS from '../KeyBuilderSS';
|
|
1
|
+
import { KeyBuilderSS } from '../KeyBuilderSS';
|
|
2
2
|
import { Redis } from 'ioredis';
|
|
3
3
|
import { ILogger } from '../../logger/types';
|
|
4
|
-
import AbstractSplitsCacheAsync from '../AbstractSplitsCacheAsync';
|
|
4
|
+
import { AbstractSplitsCacheAsync } from '../AbstractSplitsCacheAsync';
|
|
5
5
|
/**
|
|
6
6
|
* ISplitsCacheAsync implementation that stores split definitions in Redis.
|
|
7
7
|
* Supported by Node.
|
|
8
8
|
*/
|
|
9
|
-
export
|
|
9
|
+
export declare class SplitsCacheInRedis extends AbstractSplitsCacheAsync {
|
|
10
10
|
private readonly log;
|
|
11
11
|
private readonly redis;
|
|
12
12
|
private readonly keys;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import KeyBuilder from '../KeyBuilder';
|
|
1
|
+
import { KeyBuilder } from '../KeyBuilder';
|
|
2
2
|
import { IPluggableStorageWrapper } from '../types';
|
|
3
3
|
import { ILogger } from '../../logger/types';
|
|
4
|
-
import AbstractSplitsCacheAsync from '../AbstractSplitsCacheAsync';
|
|
4
|
+
import { AbstractSplitsCacheAsync } from '../AbstractSplitsCacheAsync';
|
|
5
5
|
/**
|
|
6
6
|
* ISplitsCacheAsync implementation for pluggable storages.
|
|
7
7
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const LOG_PREFIX = "storage:pluggable:";
|
|
1
|
+
export declare const LOG_PREFIX = "storage:pluggable: ";
|
|
@@ -65,7 +65,7 @@ export interface IPluggableStorageWrapper {
|
|
|
65
65
|
getMany: (keys: string[]) => Promise<(string | null)[]>;
|
|
66
66
|
/** Integer operations */
|
|
67
67
|
/**
|
|
68
|
-
* Increments in 1 the given `key` value or set it
|
|
68
|
+
* Increments in 1 the given `key` value or set it to 1 if the value doesn't exist.
|
|
69
69
|
*
|
|
70
70
|
* @function incr
|
|
71
71
|
* @param {string} key Key to increment
|
|
@@ -74,7 +74,7 @@ export interface IPluggableStorageWrapper {
|
|
|
74
74
|
*/
|
|
75
75
|
incr: (key: string) => Promise<number>;
|
|
76
76
|
/**
|
|
77
|
-
* Decrements in 1 the given `key` value or set it
|
|
77
|
+
* Decrements in 1 the given `key` value or set it to -1 if the value doesn't exist.
|
|
78
78
|
*
|
|
79
79
|
* @function decr
|
|
80
80
|
* @param {string} key Key to decrement
|
|
@@ -12,6 +12,6 @@ export declare function fromObjectUpdaterFactory(splitsParser: ISplitsParser, st
|
|
|
12
12
|
/**
|
|
13
13
|
* PollingManager in Offline mode
|
|
14
14
|
*/
|
|
15
|
-
export
|
|
15
|
+
export declare function fromObjectSyncTaskFactory(splitsParser: ISplitsParser, storage: {
|
|
16
16
|
splits: ISplitsCacheSync;
|
|
17
17
|
}, readiness: IReadinessManager, settings: ISettings): ISyncTask<[], boolean>;
|
|
@@ -4,4 +4,4 @@ import { IMySegmentsFetcher } from './types';
|
|
|
4
4
|
* Factory of MySegments fetcher.
|
|
5
5
|
* MySegments fetcher is a wrapper around `mySegments` API service that parses the response and handle errors.
|
|
6
6
|
*/
|
|
7
|
-
export
|
|
7
|
+
export declare function mySegmentsFetcherFactory(fetchMySegments: IFetchMySegments, userMatchingKey: string): IMySegmentsFetcher;
|
|
@@ -4,4 +4,4 @@ import { ISegmentChangesFetcher } from './types';
|
|
|
4
4
|
* Factory of SegmentChanges fetcher.
|
|
5
5
|
* SegmentChanges fetcher is a wrapper around `segmentChanges` API service that parses the response and handle errors and retries.
|
|
6
6
|
*/
|
|
7
|
-
export
|
|
7
|
+
export declare function segmentChangesFetcherFactory(fetchSegmentChanges: IFetchSegmentChanges): ISegmentChangesFetcher;
|
|
@@ -4,4 +4,4 @@ import { ISplitChangesFetcher } from './types';
|
|
|
4
4
|
* Factory of SplitChanges fetcher.
|
|
5
5
|
* SplitChanges fetcher is a wrapper around `splitChanges` API service that parses the response and handle errors.
|
|
6
6
|
*/
|
|
7
|
-
export
|
|
7
|
+
export declare function splitChangesFetcherFactory(fetchSplitChanges: IFetchSplitChanges): ISplitChangesFetcher;
|
|
@@ -7,4 +7,4 @@ import { ISettings } from '../../types';
|
|
|
7
7
|
* Expose start / stop mechanism for polling data from services.
|
|
8
8
|
* For client-side API with multiple clients.
|
|
9
9
|
*/
|
|
10
|
-
export
|
|
10
|
+
export declare function pollingManagerCSFactory(splitApi: ISplitApi, storage: IStorageSync, readiness: IReadinessManager, settings: ISettings): IPollingManagerCS;
|
|
@@ -6,4 +6,4 @@ import { IPollingManager } from './types';
|
|
|
6
6
|
/**
|
|
7
7
|
* Expose start / stop mechanism for pulling data from services.
|
|
8
8
|
*/
|
|
9
|
-
export
|
|
9
|
+
export declare function pollingManagerSSFactory(splitApi: ISplitApi, storage: IStorageSync, readiness: IReadinessManager, settings: ISettings): IPollingManager;
|
|
@@ -6,4 +6,4 @@ import { ISettings } from '../../../types';
|
|
|
6
6
|
/**
|
|
7
7
|
* Creates a sync task that periodically executes a `mySegmentsUpdater` task
|
|
8
8
|
*/
|
|
9
|
-
export
|
|
9
|
+
export declare function mySegmentsSyncTaskFactory(fetchMySegments: IFetchMySegments, storage: IStorageSync, readiness: IReadinessManager, settings: ISettings, matchingKey: string): ISegmentsSyncTask;
|
|
@@ -6,4 +6,4 @@ import { ISettings } from '../../../types';
|
|
|
6
6
|
/**
|
|
7
7
|
* Creates a sync task that periodically executes a `segmentChangesUpdater` task
|
|
8
8
|
*/
|
|
9
|
-
export
|
|
9
|
+
export declare function segmentsSyncTaskFactory(fetchSegmentChanges: IFetchSegmentChanges, storage: IStorageSync, readiness: IReadinessManager, settings: ISettings): ISegmentsSyncTask;
|
|
@@ -6,4 +6,4 @@ import { ISettings } from '../../../types';
|
|
|
6
6
|
/**
|
|
7
7
|
* Creates a sync task that periodically executes a `splitChangesUpdater` task
|
|
8
8
|
*/
|
|
9
|
-
export
|
|
9
|
+
export declare function splitsSyncTaskFactory(fetchSplitChanges: IFetchSplitChanges, storage: IStorageSync, readiness: IReadinessManager, settings: ISettings): ISplitsSyncTask;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
+
import { IEventSourceConstructor } from '../../../services/types';
|
|
1
2
|
import { ISettings } from '../../../types';
|
|
2
3
|
import { IAuthTokenPushEnabled } from '../AuthClient/types';
|
|
3
4
|
import { ISSEClient, ISseEventHandler } from './types';
|
|
4
5
|
/**
|
|
5
6
|
* Handles streaming connections with EventSource API
|
|
6
7
|
*/
|
|
7
|
-
export
|
|
8
|
-
eventSource
|
|
8
|
+
export declare class SSEClient implements ISSEClient {
|
|
9
|
+
eventSource?: IEventSourceConstructor;
|
|
9
10
|
streamingUrl: string;
|
|
10
|
-
connection?: InstanceType<
|
|
11
|
+
connection?: InstanceType<IEventSourceConstructor>;
|
|
11
12
|
handler?: ISseEventHandler;
|
|
12
13
|
useHeaders?: boolean;
|
|
13
14
|
headers: Record<string, string>;
|
|
@@ -19,7 +20,7 @@ export default class SSEClient implements ISSEClient {
|
|
|
19
20
|
* @param getEventSource Function to get the EventSource constructor.
|
|
20
21
|
* @throws 'EventSource API is not available. ' if EventSource is not available.
|
|
21
22
|
*/
|
|
22
|
-
constructor(settings: ISettings, useHeaders?: boolean, getEventSource?: () => (
|
|
23
|
+
constructor(settings: ISettings, useHeaders?: boolean, getEventSource?: () => (IEventSourceConstructor | undefined));
|
|
23
24
|
setEventHandler(handler: ISseEventHandler): void;
|
|
24
25
|
/**
|
|
25
26
|
* Open the connection with a given authToken
|
|
@@ -5,7 +5,7 @@ import { IPushEventEmitter } from '../types';
|
|
|
5
5
|
*
|
|
6
6
|
* @param pushEmitter emitter for events related to streaming support
|
|
7
7
|
*/
|
|
8
|
-
export
|
|
8
|
+
export declare function notificationKeeperFactory(pushEmitter: IPushEventEmitter): {
|
|
9
9
|
handleOpen(): void;
|
|
10
10
|
isStreamingUp(): boolean;
|
|
11
11
|
handleOccupancyEvent(publishers: number, channel: string, timestamp: number): void;
|
|
@@ -7,4 +7,4 @@ import { ILogger } from '../../../logger/types';
|
|
|
7
7
|
* @param log factory logger
|
|
8
8
|
* @param pushEmitter emitter for events related to streaming support
|
|
9
9
|
*/
|
|
10
|
-
export
|
|
10
|
+
export declare function SSEHandlerFactory(log: ILogger, pushEmitter: IPushEventEmitter): ISseEventHandler;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ISegmentsSyncTask } from '../../polling/types';
|
|
2
|
-
import Backoff from '../../../utils/Backoff';
|
|
2
|
+
import { Backoff } from '../../../utils/Backoff';
|
|
3
3
|
import { IUpdateWorker } from './types';
|
|
4
4
|
import { SegmentsData } from '../SSEHandler/types';
|
|
5
5
|
/**
|
|
6
6
|
* MySegmentsUpdateWorker class
|
|
7
7
|
*/
|
|
8
|
-
export
|
|
8
|
+
export declare class MySegmentsUpdateWorker implements IUpdateWorker {
|
|
9
9
|
private readonly mySegmentsSyncTask;
|
|
10
10
|
private maxChangeNumber;
|
|
11
11
|
private handleNewEvent;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { ISegmentsCacheSync } from '../../../storages/types';
|
|
2
|
-
import Backoff from '../../../utils/Backoff';
|
|
2
|
+
import { Backoff } from '../../../utils/Backoff';
|
|
3
3
|
import { ISegmentsSyncTask } from '../../polling/types';
|
|
4
4
|
import { ISegmentUpdateData } from '../SSEHandler/types';
|
|
5
5
|
import { IUpdateWorker } from './types';
|
|
6
6
|
/**
|
|
7
7
|
* SegmentUpdateWorker class
|
|
8
8
|
*/
|
|
9
|
-
export
|
|
9
|
+
export declare class SegmentsUpdateWorker implements IUpdateWorker {
|
|
10
10
|
private readonly segmentsCache;
|
|
11
11
|
private readonly segmentsSyncTask;
|
|
12
12
|
private readonly maxChangeNumbers;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { ISplitsEventEmitter } from '../../../readiness/types';
|
|
2
2
|
import { ISplitsCacheSync } from '../../../storages/types';
|
|
3
|
-
import Backoff from '../../../utils/Backoff';
|
|
3
|
+
import { Backoff } from '../../../utils/Backoff';
|
|
4
4
|
import { ISegmentsSyncTask, ISplitsSyncTask } from '../../polling/types';
|
|
5
5
|
import { ISplitKillData, ISplitUpdateData } from '../SSEHandler/types';
|
|
6
6
|
import { IUpdateWorker } from './types';
|
|
7
7
|
/**
|
|
8
8
|
* SplitsUpdateWorker class
|
|
9
9
|
*/
|
|
10
|
-
export
|
|
10
|
+
export declare class SplitsUpdateWorker implements IUpdateWorker {
|
|
11
11
|
private readonly splitsCache;
|
|
12
12
|
private readonly splitsSyncTask;
|
|
13
13
|
private readonly splitsEventEmitter;
|
|
@@ -10,4 +10,4 @@ import { IPlatform } from '../../sdkFactory/types';
|
|
|
10
10
|
* - for server-side if key is not provided in settings.
|
|
11
11
|
* - for client-side, with support for multiple clients, if key is provided in settings
|
|
12
12
|
*/
|
|
13
|
-
export
|
|
13
|
+
export declare function pushManagerFactory(pollingManager: IPollingManager, storage: IStorageSync, readiness: IReadinessManager, fetchAuth: IFetchAuth, platform: IPlatform, settings: ISettings): IPushManagerCS | undefined;
|
package/types/sync/syncTask.d.ts
CHANGED
|
@@ -11,4 +11,4 @@ import { ISyncTask } from './types';
|
|
|
11
11
|
* @param taskName Optional task name for logging.
|
|
12
12
|
* @returns A sync task that wraps the given task.
|
|
13
13
|
*/
|
|
14
|
-
export
|
|
14
|
+
export declare function syncTaskFactory<Input extends any[], Output = any>(log: ILogger, task: (...args: Input) => Promise<Output>, period: number, taskName?: string): ISyncTask<Input, Output>;
|
|
@@ -7,4 +7,4 @@ import { ILogger } from '../logger/types';
|
|
|
7
7
|
* @param eventsCache cache to save events
|
|
8
8
|
* @param integrationsManager optional event handler used for integrations
|
|
9
9
|
*/
|
|
10
|
-
export
|
|
10
|
+
export declare function eventTrackerFactory(log: ILogger, eventsCache: IEventsCacheBase, integrationsManager?: IEventsHandler): IEventTracker;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ImpressionDTO } from '../../types';
|
|
2
2
|
import { IImpressionObserver } from './types';
|
|
3
|
-
export
|
|
3
|
+
export declare class ImpressionObserver<K extends string | number = string> implements IImpressionObserver {
|
|
4
4
|
private cache;
|
|
5
5
|
private hasher;
|
|
6
6
|
constructor(size: number, hasher: (impression: ImpressionDTO) => K);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import ImpressionObserver from './ImpressionObserver';
|
|
1
|
+
import { ImpressionObserver } from './ImpressionObserver';
|
|
2
2
|
import { ImpressionDTO } from '../../types';
|
|
3
3
|
export declare function hashImpression32(impression: ImpressionDTO): number;
|
|
4
4
|
export declare function impressionObserverCSFactory(): ImpressionObserver<number>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import ImpressionObserver from './ImpressionObserver';
|
|
1
|
+
import { ImpressionObserver } from './ImpressionObserver';
|
|
2
2
|
import { ImpressionDTO } from '../../types';
|
|
3
3
|
export declare function hashImpression128(impression: ImpressionDTO): string;
|
|
4
4
|
export declare function impressionObserverSSFactory(): ImpressionObserver<string>;
|
|
@@ -13,4 +13,4 @@ import { ILogger } from '../logger/types';
|
|
|
13
13
|
* @param observer optional impression observer. If provided, previous time (pt property) is included in impression instances
|
|
14
14
|
* @param countsCache optional cache to save impressions count. If provided, impressions will be deduped (OPTIMIZED mode)
|
|
15
15
|
*/
|
|
16
|
-
export
|
|
16
|
+
export declare function impressionsTrackerFactory(log: ILogger, impressionsCache: IImpressionsCacheBase, { runtime: { ip, hostname }, version }: Pick<ISettings, 'version' | 'runtime'>, impressionListener?: SplitIO.IImpressionListener, integrationsManager?: IImpressionsHandler, observer?: IImpressionObserver, countsCache?: IImpressionCountsCacheSync): IImpressionsTracker;
|