@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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { GOOGLE_ANALYTICS_TO_SPLIT, SPLIT_TO_GOOGLE_ANALYTICS } from '../utils/constants/browser';
|
|
2
|
-
import pluggableIntegrationsManagerFactory from './pluggable';
|
|
2
|
+
import { pluggableIntegrationsManagerFactory } from './pluggable';
|
|
3
3
|
import { GoogleAnalyticsToSplit } from './ga/GoogleAnalyticsToSplit';
|
|
4
4
|
import { SplitToGoogleAnalytics } from './ga/SplitToGoogleAnalytics';
|
|
5
5
|
/**
|
|
@@ -11,7 +11,7 @@ import { SplitToGoogleAnalytics } from './ga/SplitToGoogleAnalytics';
|
|
|
11
11
|
*
|
|
12
12
|
* @returns integration manager or undefined if `integrations` are not present in settings.
|
|
13
13
|
*/
|
|
14
|
-
export
|
|
14
|
+
export function integrationsManagerFactory(integrations, params) {
|
|
15
15
|
// maps integration config items into integration factories to reuse the pluggable integration manager
|
|
16
16
|
var integrationFactories = integrations
|
|
17
17
|
.map(function (integrationOptions) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable no-undef */
|
|
2
|
-
import objectAssign from '
|
|
2
|
+
import { objectAssign } from '../../utils/lang/objectAssign';
|
|
3
3
|
import { isString, isFiniteNumber, uniqAsStrings } from '../../utils/lang';
|
|
4
4
|
import { validateEvent, validateEventValue, validateEventProperties, validateKey, validateTrafficType, } from '../../utils/inputValidation';
|
|
5
5
|
var logPrefix = 'ga-to-split: ';
|
|
@@ -8,7 +8,7 @@ import { SPLIT_IMPRESSION, SPLIT_EVENT } from '../utils/constants';
|
|
|
8
8
|
*
|
|
9
9
|
* @returns integration manager or undefined if `integrations` are not present in settings.
|
|
10
10
|
*/
|
|
11
|
-
export
|
|
11
|
+
export function pluggableIntegrationsManagerFactory(integrations, params) {
|
|
12
12
|
var listeners = [];
|
|
13
13
|
// No need to check if `settings.integrations` is an array of functions. It was already validated
|
|
14
14
|
integrations.forEach(function (integrationFactory) {
|
package/esm/listeners/browser.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { fromImpressionsCollector } from '../sync/submitters/impressionsSyncTask';
|
|
2
2
|
import { fromImpressionCountsCollector } from '../sync/submitters/impressionCountsSyncTask';
|
|
3
3
|
import { OPTIMIZED, DEBUG } from '../utils/constants';
|
|
4
|
-
import objectAssign from '
|
|
4
|
+
import { objectAssign } from '../utils/lang/objectAssign';
|
|
5
5
|
import { CLEANUP_REGISTERING, CLEANUP_DEREGISTERING } from '../logger/constants';
|
|
6
6
|
// 'unload' event is used instead of 'beforeunload', since 'unload' is not a cancelable event, so no other listeners can stop the event from occurring.
|
|
7
7
|
var UNLOAD_DOM_EVENT = 'unload';
|
|
@@ -95,4 +95,4 @@ var BrowserSignalListener = /** @class */ (function () {
|
|
|
95
95
|
};
|
|
96
96
|
return BrowserSignalListener;
|
|
97
97
|
}());
|
|
98
|
-
export
|
|
98
|
+
export { BrowserSignalListener };
|
package/esm/listeners/node.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import thenable from '../utils/promise/thenable';
|
|
1
|
+
import { thenable } from '../utils/promise/thenable';
|
|
2
2
|
import { LOG_PREFIX_CLEANUP, CLEANUP_REGISTERING, CLEANUP_DEREGISTERING } from '../logger/constants';
|
|
3
3
|
var SIGTERM = 'SIGTERM';
|
|
4
4
|
var EVENT_NAME = 'for SIGTERM signal.';
|
|
@@ -62,4 +62,4 @@ var NodeSignalListener = /** @class */ (function () {
|
|
|
62
62
|
};
|
|
63
63
|
return NodeSignalListener;
|
|
64
64
|
}());
|
|
65
|
-
export
|
|
65
|
+
export { NodeSignalListener };
|
package/esm/logger/index.js
CHANGED
|
@@ -20,9 +20,9 @@ export var codesWarn = codesError.concat([
|
|
|
20
20
|
[c.WARN_TRIMMING_PROPERTIES, '%s: Event has more than 300 properties. Some of them will be trimmed when processed.'],
|
|
21
21
|
[c.WARN_CONVERTING, '%s: %s "%s" is not of type string, converting.'],
|
|
22
22
|
[c.WARN_TRIMMING, '%s: %s "%s" has extra whitespace, trimming.'],
|
|
23
|
-
[c.WARN_NOT_EXISTENT_SPLIT, '%s: split "%s" does not exist in this environment, please double check what splits exist in the web console.'],
|
|
23
|
+
[c.WARN_NOT_EXISTENT_SPLIT, '%s: split "%s" does not exist in this environment, please double check what splits exist in the Split web console.'],
|
|
24
24
|
[c.WARN_LOWERCASE_TRAFFIC_TYPE, '%s: traffic_type_name should be all lowercase - converting string to lowercase.'],
|
|
25
|
-
[c.WARN_NOT_EXISTENT_TT, '%s: traffic type "%s" does not have any corresponding split in this environment, make sure you\'re tracking your events to a valid traffic type defined in the web console.'],
|
|
25
|
+
[c.WARN_NOT_EXISTENT_TT, '%s: traffic type "%s" does not have any corresponding split in this environment, make sure you\'re tracking your events to a valid traffic type defined in the Split web console.'],
|
|
26
26
|
// initialization / settings validation
|
|
27
27
|
[c.WARN_INTEGRATION_INVALID, c.LOG_PREFIX_SETTINGS + ': %s integration item(s) at settings is invalid. %s'],
|
|
28
28
|
[c.WARN_SPLITS_FILTER_IGNORED, c.LOG_PREFIX_SETTINGS + ': split filters have been configured but will have no effect if mode is not "%s", since synchronization is being deferred to an external tool.'],
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import objectAssign from '
|
|
1
|
+
import { objectAssign } from '../utils/lang/objectAssign';
|
|
2
2
|
import { SDK_SPLITS_ARRIVED, SDK_SPLITS_CACHE_LOADED, SDK_SEGMENTS_ARRIVED, SDK_READY_TIMED_OUT, SDK_READY_FROM_CACHE, SDK_UPDATE, SDK_READY } from './constants';
|
|
3
3
|
function splitsEventEmitterFactory(EventEmitter) {
|
|
4
4
|
var splitsEventEmitter = objectAssign(new EventEmitter(), {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import objectAssign from '
|
|
2
|
-
import promiseWrapper from '../utils/promise/wrapper';
|
|
1
|
+
import { objectAssign } from '../utils/lang/objectAssign';
|
|
2
|
+
import { promiseWrapper } from '../utils/promise/wrapper';
|
|
3
3
|
import { readinessManagerFactory } from './readinessManager';
|
|
4
4
|
import { SDK_READY, SDK_READY_TIMED_OUT, SDK_READY_FROM_CACHE, SDK_UPDATE } from './constants';
|
|
5
5
|
import { ERROR_CLIENT_LISTENER, CLIENT_READY_FROM_CACHE, CLIENT_READY, CLIENT_NO_LISTENER } from '../logger/constants';
|
|
@@ -14,7 +14,7 @@ var REMOVE_LISTENER_EVENT = 'removeListener';
|
|
|
14
14
|
* by the SDK. It is required to properly log the warning 'No listeners for SDK Readiness detected'
|
|
15
15
|
* @param readinessManager optional readinessManager to use. only used internally for `shared` method
|
|
16
16
|
*/
|
|
17
|
-
export
|
|
17
|
+
export function sdkReadinessManagerFactory(log, EventEmitter, readyTimeout, internalReadyCbCount, readinessManager) {
|
|
18
18
|
if (readyTimeout === void 0) { readyTimeout = 0; }
|
|
19
19
|
if (internalReadyCbCount === void 0) { internalReadyCbCount = 0; }
|
|
20
20
|
if (readinessManager === void 0) { readinessManager = readinessManagerFactory(EventEmitter, readyTimeout); }
|
package/esm/sdkClient/client.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { evaluateFeature, evaluateFeatures } from '../evaluator';
|
|
2
|
-
import thenable from '../utils/promise/thenable';
|
|
2
|
+
import { thenable } from '../utils/promise/thenable';
|
|
3
3
|
import { getMatching, getBucketing } from '../utils/key';
|
|
4
4
|
import { validateSplitExistance } from '../utils/inputValidation/splitExistance';
|
|
5
5
|
import { validateTrafficTypeExistance } from '../utils/inputValidation/trafficTypeExistance';
|
|
@@ -10,7 +10,7 @@ import { IMPRESSION, IMPRESSION_QUEUEING } from '../logger/constants';
|
|
|
10
10
|
* Creator of base client with getTreatments and track methods.
|
|
11
11
|
*/
|
|
12
12
|
// @TODO missing time tracking to collect telemetry
|
|
13
|
-
export
|
|
13
|
+
export function clientFactory(params) {
|
|
14
14
|
var readinessManager = params.sdkReadinessManager.readinessManager, storage = params.storage, _a = params.settings, log = _a.log, mode = _a.mode, impressionsTracker = params.impressionsTracker, eventTracker = params.eventTracker;
|
|
15
15
|
function getTreatment(key, splitName, attributes, withConfig) {
|
|
16
16
|
if (withConfig === void 0) { withConfig = false; }
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import objectAssign from '
|
|
1
|
+
import { objectAssign } from '../utils/lang/objectAssign';
|
|
2
2
|
/**
|
|
3
3
|
* Decorator that binds a key and (optionally) a traffic type to client methods
|
|
4
4
|
*
|
|
@@ -6,7 +6,7 @@ import objectAssign from 'object-assign';
|
|
|
6
6
|
* @param key validated split key
|
|
7
7
|
* @param trafficType validated traffic type
|
|
8
8
|
*/
|
|
9
|
-
export
|
|
9
|
+
export function clientCSDecorator(client, key, trafficType) {
|
|
10
10
|
return objectAssign(client, {
|
|
11
11
|
// In the client-side API, we bind a key to the client `getTreatment*` methods
|
|
12
12
|
getTreatment: client.getTreatment.bind(client, key),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import objectAssign from '
|
|
1
|
+
import { objectAssign } from '../utils/lang/objectAssign';
|
|
2
2
|
import { validateAttributes, validateEvent, validateEventValue, validateEventProperties, validateKey, validateSplit, validateSplits, validateTrafficType, validateIfNotDestroyed, validateIfOperational } from '../utils/inputValidation';
|
|
3
3
|
import { startsWith } from '../utils/lang';
|
|
4
4
|
import { CONTROL, CONTROL_WITH_CONFIG } from '../utils/constants';
|
|
@@ -6,7 +6,7 @@ import { CONTROL, CONTROL_WITH_CONFIG } from '../utils/constants';
|
|
|
6
6
|
* Decorator that validates the input before actually executing the client methods.
|
|
7
7
|
* We should "guard" the client here, while not polluting the "real" implementation of those methods.
|
|
8
8
|
*/
|
|
9
|
-
export
|
|
9
|
+
export function clientInputValidationDecorator(log, client, readinessManager, isStorageSync) {
|
|
10
10
|
if (isStorageSync === void 0) { isStorageSync = false; }
|
|
11
11
|
/**
|
|
12
12
|
* Avoid repeating this validations code
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import objectAssign from '
|
|
1
|
+
import { objectAssign } from '../utils/lang/objectAssign';
|
|
2
2
|
import { CONSUMER_MODE, CONSUMER_PARTIAL_MODE } from '../utils/constants';
|
|
3
3
|
import { releaseApiKey } from '../utils/inputValidation/apiKey';
|
|
4
|
-
import clientFactory from './client';
|
|
5
|
-
import clientInputValidationDecorator from './clientInputValidation';
|
|
4
|
+
import { clientFactory } from './client';
|
|
5
|
+
import { clientInputValidationDecorator } from './clientInputValidation';
|
|
6
6
|
/**
|
|
7
7
|
* Creates an Sdk client, i.e., a base client with status and destroy interface
|
|
8
8
|
*/
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import clientCSDecorator from './clientCS';
|
|
1
|
+
import { clientCSDecorator } from './clientCS';
|
|
2
2
|
import { validateKey } from '../utils/inputValidation/key';
|
|
3
3
|
import { getMatching, keyParser } from '../utils/key';
|
|
4
4
|
import { sdkClientFactory } from './sdkClient';
|
|
5
|
-
import objectAssign from '
|
|
5
|
+
import { objectAssign } from '../utils/lang/objectAssign';
|
|
6
6
|
import { RETRIEVE_CLIENT_DEFAULT, NEW_SHARED_CLIENT, RETRIEVE_CLIENT_EXISTING } from '../logger/constants';
|
|
7
7
|
import { SDK_SEGMENTS_ARRIVED } from '../readiness/constants';
|
|
8
8
|
function buildInstanceId(key) {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import clientCSDecorator from './clientCS';
|
|
1
|
+
import { clientCSDecorator } from './clientCS';
|
|
2
2
|
import { validateKey } from '../utils/inputValidation/key';
|
|
3
3
|
import { validateTrafficType } from '../utils/inputValidation/trafficType';
|
|
4
4
|
import { getMatching, keyParser } from '../utils/key';
|
|
5
5
|
import { sdkClientFactory } from './sdkClient';
|
|
6
|
-
import objectAssign from '
|
|
6
|
+
import { objectAssign } from '../utils/lang/objectAssign';
|
|
7
7
|
import { RETRIEVE_CLIENT_DEFAULT, NEW_SHARED_CLIENT, RETRIEVE_CLIENT_EXISTING } from '../logger/constants';
|
|
8
8
|
import { SDK_SEGMENTS_ARRIVED } from '../readiness/constants';
|
|
9
9
|
function buildInstanceId(key, trafficType) {
|
package/esm/sdkFactory/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import sdkReadinessManagerFactory from '../readiness/sdkReadinessManager';
|
|
2
|
-
import impressionsTrackerFactory from '../trackers/impressionsTracker';
|
|
3
|
-
import eventTrackerFactory from '../trackers/eventTracker';
|
|
1
|
+
import { sdkReadinessManagerFactory } from '../readiness/sdkReadinessManager';
|
|
2
|
+
import { impressionsTrackerFactory } from '../trackers/impressionsTracker';
|
|
3
|
+
import { eventTrackerFactory } from '../trackers/eventTracker';
|
|
4
4
|
import { getMatching } from '../utils/key';
|
|
5
5
|
import { shouldBeOptimized } from '../trackers/impressionObserver/utils';
|
|
6
6
|
import { validateAndTrackApiKey } from '../utils/inputValidation/apiKey';
|
|
@@ -33,7 +33,7 @@ export function sdkFactory(params) {
|
|
|
33
33
|
// or only instantiates submitters, and therefore it is not able to emit readiness events.
|
|
34
34
|
onReadyCb: function (error) {
|
|
35
35
|
if (error)
|
|
36
|
-
return; //
|
|
36
|
+
return; // Don't emit SDK_READY if storage failed to connect. Error message is logged by wrapperAdapter
|
|
37
37
|
readinessManager.splits.emit(SDK_SPLITS_ARRIVED);
|
|
38
38
|
readinessManager.segments.emit(SDK_SEGMENTS_ARRIVED);
|
|
39
39
|
},
|
package/esm/sdkManager/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import objectAssign from '
|
|
2
|
-
import thenable from '../utils/promise/thenable';
|
|
1
|
+
import { objectAssign } from '../utils/lang/objectAssign';
|
|
2
|
+
import { thenable } from '../utils/promise/thenable';
|
|
3
3
|
import { find } from '../utils/lang';
|
|
4
4
|
import { validateSplit, validateSplitExistance, validateIfNotDestroyed, validateIfOperational } from '../utils/inputValidation';
|
|
5
5
|
function collectTreatments(splitObject) {
|
package/esm/services/splitApi.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { splitHttpClientFactory } from './splitHttpClient';
|
|
2
|
-
import objectAssign from '
|
|
2
|
+
import { objectAssign } from '../utils/lang/objectAssign';
|
|
3
3
|
var noCacheHeaderOptions = { headers: { 'Cache-Control': 'no-cache' } };
|
|
4
4
|
function userKeyToQueryParam(userKey) {
|
|
5
5
|
return 'users=' + encodeURIComponent(userKey); // no need to check availability of `encodeURIComponent`, since it is a global highly supported.
|
|
@@ -32,4 +32,4 @@ var AbstractSegmentsCacheSync = /** @class */ (function () {
|
|
|
32
32
|
AbstractSegmentsCacheSync.prototype.resetSegments = function (names) { return true; };
|
|
33
33
|
return AbstractSegmentsCacheSync;
|
|
34
34
|
}());
|
|
35
|
-
export
|
|
35
|
+
export { AbstractSegmentsCacheSync };
|
|
@@ -58,7 +58,7 @@ var AbstractSplitsCacheSync = /** @class */ (function () {
|
|
|
58
58
|
};
|
|
59
59
|
return AbstractSplitsCacheSync;
|
|
60
60
|
}());
|
|
61
|
-
export
|
|
61
|
+
export { AbstractSplitsCacheSync };
|
|
62
62
|
/**
|
|
63
63
|
* Given a parsed split, it returns a boolean flagging if its conditions use segments matchers (rules & whitelists).
|
|
64
64
|
* This util is intended to simplify the implementation of `splitsCache::usesSegments` method
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __extends } from "tslib";
|
|
2
2
|
import { startsWith } from '../utils/lang';
|
|
3
|
-
import KeyBuilder from './KeyBuilder';
|
|
3
|
+
import { KeyBuilder } from './KeyBuilder';
|
|
4
4
|
var KeyBuilderCS = /** @class */ (function (_super) {
|
|
5
5
|
__extends(KeyBuilderCS, _super);
|
|
6
6
|
function KeyBuilderCS(prefix, matchingKey) {
|
|
@@ -31,4 +31,4 @@ var KeyBuilderCS = /** @class */ (function (_super) {
|
|
|
31
31
|
};
|
|
32
32
|
return KeyBuilderCS;
|
|
33
33
|
}(KeyBuilder));
|
|
34
|
-
export
|
|
34
|
+
export { KeyBuilderCS };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __extends } from "tslib";
|
|
2
|
-
import KeyBuilder from './KeyBuilder';
|
|
2
|
+
import { KeyBuilder } from './KeyBuilder';
|
|
3
3
|
// NOT USED
|
|
4
4
|
// const everythingAfterCount = /count\.([^/]+)$/;
|
|
5
5
|
// const latencyMetricNameAndBucket = /latency\.([^/]+)\.bucket\.([0-9]+)$/;
|
|
@@ -44,4 +44,4 @@ var KeyBuilderSS = /** @class */ (function (_super) {
|
|
|
44
44
|
};
|
|
45
45
|
return KeyBuilderSS;
|
|
46
46
|
}(KeyBuilder));
|
|
47
|
-
export
|
|
47
|
+
export { KeyBuilderSS };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isNaNNumber } from '../utils/lang';
|
|
2
2
|
// @TODO add unit tests
|
|
3
|
-
export
|
|
3
|
+
export function findLatencyIndex(latency, min, max, base) {
|
|
4
4
|
if (min === void 0) { min = 0; }
|
|
5
5
|
if (max === void 0) { max = 23; }
|
|
6
6
|
if (base === void 0) { base = 1.5; }
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __extends } from "tslib";
|
|
2
|
-
import AbstractSegmentsCacheSync from '../AbstractSegmentsCacheSync';
|
|
2
|
+
import { AbstractSegmentsCacheSync } from '../AbstractSegmentsCacheSync';
|
|
3
3
|
import { LOG_PREFIX, DEFINED } from './constants';
|
|
4
4
|
var MySegmentsCacheInLocal = /** @class */ (function (_super) {
|
|
5
5
|
__extends(MySegmentsCacheInLocal, _super);
|
|
@@ -86,4 +86,4 @@ var MySegmentsCacheInLocal = /** @class */ (function (_super) {
|
|
|
86
86
|
};
|
|
87
87
|
return MySegmentsCacheInLocal;
|
|
88
88
|
}(AbstractSegmentsCacheSync));
|
|
89
|
-
export
|
|
89
|
+
export { MySegmentsCacheInLocal };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __extends } from "tslib";
|
|
2
|
-
import AbstractSplitsCacheSync,
|
|
2
|
+
import { AbstractSplitsCacheSync, usesSegments } from '../AbstractSplitsCacheSync';
|
|
3
3
|
import { isFiniteNumber, toNumber, isNaNNumber } from '../../utils/lang';
|
|
4
4
|
import { LOG_PREFIX } from './constants';
|
|
5
5
|
/**
|
|
@@ -248,4 +248,4 @@ var SplitsCacheInLocal = /** @class */ (function (_super) {
|
|
|
248
248
|
};
|
|
249
249
|
return SplitsCacheInLocal;
|
|
250
250
|
}(AbstractSplitsCacheSync));
|
|
251
|
-
export
|
|
251
|
+
export { SplitsCacheInLocal };
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import ImpressionsCacheInMemory from '../inMemory/ImpressionsCacheInMemory';
|
|
2
|
-
import ImpressionCountsCacheInMemory from '../inMemory/ImpressionCountsCacheInMemory';
|
|
3
|
-
import EventsCacheInMemory from '../inMemory/EventsCacheInMemory';
|
|
1
|
+
import { ImpressionsCacheInMemory } from '../inMemory/ImpressionsCacheInMemory';
|
|
2
|
+
import { ImpressionCountsCacheInMemory } from '../inMemory/ImpressionCountsCacheInMemory';
|
|
3
|
+
import { EventsCacheInMemory } from '../inMemory/EventsCacheInMemory';
|
|
4
4
|
import { validatePrefix } from '../KeyBuilder';
|
|
5
|
-
import KeyBuilderCS from '../KeyBuilderCS';
|
|
5
|
+
import { KeyBuilderCS } from '../KeyBuilderCS';
|
|
6
6
|
import { isLocalStorageAvailable } from '../../utils/env/isLocalStorageAvailable';
|
|
7
|
-
import SplitsCacheInLocal from './SplitsCacheInLocal';
|
|
8
|
-
import MySegmentsCacheInLocal from './MySegmentsCacheInLocal';
|
|
9
|
-
import MySegmentsCacheInMemory from '../inMemory/MySegmentsCacheInMemory';
|
|
10
|
-
import SplitsCacheInMemory from '../inMemory/SplitsCacheInMemory';
|
|
7
|
+
import { SplitsCacheInLocal } from './SplitsCacheInLocal';
|
|
8
|
+
import { MySegmentsCacheInLocal } from './MySegmentsCacheInLocal';
|
|
9
|
+
import { MySegmentsCacheInMemory } from '../inMemory/MySegmentsCacheInMemory';
|
|
10
|
+
import { SplitsCacheInMemory } from '../inMemory/SplitsCacheInMemory';
|
|
11
11
|
import { DEFAULT_CACHE_EXPIRATION_IN_MILLIS } from '../../utils/constants/browser';
|
|
12
12
|
import { InMemoryStorageCSFactory } from '../inMemory/InMemoryStorageCS';
|
|
13
13
|
import { LOG_PREFIX } from './constants';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import SplitsCacheInMemory from './SplitsCacheInMemory';
|
|
2
|
-
import SegmentsCacheInMemory from './SegmentsCacheInMemory';
|
|
3
|
-
import ImpressionsCacheInMemory from './ImpressionsCacheInMemory';
|
|
4
|
-
import EventsCacheInMemory from './EventsCacheInMemory';
|
|
5
|
-
import ImpressionCountsCacheInMemory from './ImpressionCountsCacheInMemory';
|
|
1
|
+
import { SplitsCacheInMemory } from './SplitsCacheInMemory';
|
|
2
|
+
import { SegmentsCacheInMemory } from './SegmentsCacheInMemory';
|
|
3
|
+
import { ImpressionsCacheInMemory } from './ImpressionsCacheInMemory';
|
|
4
|
+
import { EventsCacheInMemory } from './EventsCacheInMemory';
|
|
5
|
+
import { ImpressionCountsCacheInMemory } from './ImpressionCountsCacheInMemory';
|
|
6
6
|
import { STORAGE_MEMORY } from '../../utils/constants';
|
|
7
7
|
/**
|
|
8
8
|
* InMemory storage factory for standalone server-side SplitFactory
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import SplitsCacheInMemory from './SplitsCacheInMemory';
|
|
2
|
-
import MySegmentsCacheInMemory from './MySegmentsCacheInMemory';
|
|
3
|
-
import ImpressionsCacheInMemory from './ImpressionsCacheInMemory';
|
|
4
|
-
import EventsCacheInMemory from './EventsCacheInMemory';
|
|
5
|
-
import ImpressionCountsCacheInMemory from './ImpressionCountsCacheInMemory';
|
|
1
|
+
import { SplitsCacheInMemory } from './SplitsCacheInMemory';
|
|
2
|
+
import { MySegmentsCacheInMemory } from './MySegmentsCacheInMemory';
|
|
3
|
+
import { ImpressionsCacheInMemory } from './ImpressionsCacheInMemory';
|
|
4
|
+
import { EventsCacheInMemory } from './EventsCacheInMemory';
|
|
5
|
+
import { ImpressionCountsCacheInMemory } from './ImpressionCountsCacheInMemory';
|
|
6
6
|
import { STORAGE_MEMORY } from '../../utils/constants';
|
|
7
7
|
/**
|
|
8
8
|
* InMemory storage factory for standalone client-side SplitFactory
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import findLatencyIndex from '../findLatencyIndex';
|
|
1
|
+
import { findLatencyIndex } from '../findLatencyIndex';
|
|
2
2
|
var LatenciesCacheInMemory = /** @class */ (function () {
|
|
3
3
|
function LatenciesCacheInMemory() {
|
|
4
4
|
this.counters = {};
|
|
@@ -37,4 +37,4 @@ var LatenciesCacheInMemory = /** @class */ (function () {
|
|
|
37
37
|
};
|
|
38
38
|
return LatenciesCacheInMemory;
|
|
39
39
|
}());
|
|
40
|
-
export
|
|
40
|
+
export { LatenciesCacheInMemory };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __extends } from "tslib";
|
|
2
|
-
import AbstractSegmentsCacheSync from '../AbstractSegmentsCacheSync';
|
|
2
|
+
import { AbstractSegmentsCacheSync } from '../AbstractSegmentsCacheSync';
|
|
3
3
|
/**
|
|
4
4
|
* Default MySegmentsCacheInMemory implementation that stores MySegments in memory.
|
|
5
5
|
* Supported by all JS runtimes.
|
|
@@ -65,4 +65,4 @@ var MySegmentsCacheInMemory = /** @class */ (function (_super) {
|
|
|
65
65
|
};
|
|
66
66
|
return MySegmentsCacheInMemory;
|
|
67
67
|
}(AbstractSegmentsCacheSync));
|
|
68
|
-
export
|
|
68
|
+
export { MySegmentsCacheInMemory };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __extends } from "tslib";
|
|
2
|
-
import AbstractSegmentsCacheSync from '../AbstractSegmentsCacheSync';
|
|
2
|
+
import { AbstractSegmentsCacheSync } from '../AbstractSegmentsCacheSync';
|
|
3
3
|
import { _Set } from '../../utils/lang/sets';
|
|
4
4
|
import { isIntegerNumber } from '../../utils/lang';
|
|
5
5
|
/**
|
|
@@ -64,4 +64,4 @@ var SegmentsCacheInMemory = /** @class */ (function (_super) {
|
|
|
64
64
|
};
|
|
65
65
|
return SegmentsCacheInMemory;
|
|
66
66
|
}(AbstractSegmentsCacheSync));
|
|
67
|
-
export
|
|
67
|
+
export { SegmentsCacheInMemory };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __extends } from "tslib";
|
|
2
|
-
import AbstractSplitsCacheSync,
|
|
2
|
+
import { AbstractSplitsCacheSync, usesSegments } from '../AbstractSplitsCacheSync';
|
|
3
3
|
import { isFiniteNumber } from '../../utils/lang';
|
|
4
4
|
/**
|
|
5
5
|
* Default ISplitsCacheSync implementation that stores split definitions in memory.
|
|
@@ -97,4 +97,4 @@ var SplitsCacheInMemory = /** @class */ (function (_super) {
|
|
|
97
97
|
};
|
|
98
98
|
return SplitsCacheInMemory;
|
|
99
99
|
}(AbstractSplitsCacheSync));
|
|
100
|
-
export
|
|
100
|
+
export { SplitsCacheInMemory };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import findLatencyIndex from '../findLatencyIndex';
|
|
1
|
+
import { findLatencyIndex } from '../findLatencyIndex';
|
|
2
2
|
var LatenciesCacheInRedis = /** @class */ (function () {
|
|
3
3
|
function LatenciesCacheInRedis(keys, redis) {
|
|
4
4
|
this.keys = keys;
|
|
@@ -12,4 +12,4 @@ var LatenciesCacheInRedis = /** @class */ (function () {
|
|
|
12
12
|
};
|
|
13
13
|
return LatenciesCacheInRedis;
|
|
14
14
|
}());
|
|
15
|
-
export
|
|
15
|
+
export { LatenciesCacheInRedis };
|
|
@@ -2,8 +2,8 @@ import { __extends } from "tslib";
|
|
|
2
2
|
import ioredis from 'ioredis';
|
|
3
3
|
import { merge, isString } from '../../utils/lang';
|
|
4
4
|
import { _Set, setToArray } from '../../utils/lang/sets';
|
|
5
|
-
import thenable from '../../utils/promise/thenable';
|
|
6
|
-
import timeout from '../../utils/promise/timeout';
|
|
5
|
+
import { thenable } from '../../utils/promise/thenable';
|
|
6
|
+
import { timeout } from '../../utils/promise/timeout';
|
|
7
7
|
var LOG_PREFIX = 'storage:redis-adapter: ';
|
|
8
8
|
// If we ever decide to fully wrap every method, there's a Commander.getBuiltinCommands from ioredis.
|
|
9
9
|
var METHODS_TO_PROMISE_WRAP = ['set', 'exec', 'del', 'get', 'keys', 'sadd', 'srem', 'sismember', 'smembers', 'incr', 'rpush', 'pipeline', 'expire', 'mget', 'lrange', 'ltrim'];
|
|
@@ -157,4 +157,4 @@ var RedisAdapter = /** @class */ (function (_super) {
|
|
|
157
157
|
};
|
|
158
158
|
return RedisAdapter;
|
|
159
159
|
}(ioredis));
|
|
160
|
-
export
|
|
160
|
+
export { RedisAdapter };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __extends } from "tslib";
|
|
2
2
|
import { isFiniteNumber, isNaNNumber } from '../../utils/lang';
|
|
3
3
|
import { LOG_PREFIX } from './constants';
|
|
4
|
-
import AbstractSplitsCacheAsync from '../AbstractSplitsCacheAsync';
|
|
4
|
+
import { AbstractSplitsCacheAsync } from '../AbstractSplitsCacheAsync';
|
|
5
5
|
/**
|
|
6
6
|
* Discard errors for an answer of multiple operations.
|
|
7
7
|
*/
|
|
@@ -226,4 +226,4 @@ var SplitsCacheInRedis = /** @class */ (function (_super) {
|
|
|
226
226
|
};
|
|
227
227
|
return SplitsCacheInRedis;
|
|
228
228
|
}(AbstractSplitsCacheAsync));
|
|
229
|
-
export
|
|
229
|
+
export { SplitsCacheInRedis };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import RedisAdapter from './RedisAdapter';
|
|
1
|
+
import { RedisAdapter } from './RedisAdapter';
|
|
2
2
|
import { validatePrefix } from '../KeyBuilder';
|
|
3
|
-
import KeyBuilderSS from '../KeyBuilderSS';
|
|
4
|
-
import SplitsCacheInRedis from './SplitsCacheInRedis';
|
|
5
|
-
import SegmentsCacheInRedis from './SegmentsCacheInRedis';
|
|
6
|
-
import ImpressionsCacheInRedis from './ImpressionsCacheInRedis';
|
|
7
|
-
import EventsCacheInRedis from './EventsCacheInRedis';
|
|
8
|
-
import LatenciesCacheInRedis from './LatenciesCacheInRedis';
|
|
9
|
-
import CountsCacheInRedis from './CountsCacheInRedis';
|
|
3
|
+
import { KeyBuilderSS } from '../KeyBuilderSS';
|
|
4
|
+
import { SplitsCacheInRedis } from './SplitsCacheInRedis';
|
|
5
|
+
import { SegmentsCacheInRedis } from './SegmentsCacheInRedis';
|
|
6
|
+
import { ImpressionsCacheInRedis } from './ImpressionsCacheInRedis';
|
|
7
|
+
import { EventsCacheInRedis } from './EventsCacheInRedis';
|
|
8
|
+
import { LatenciesCacheInRedis } from './LatenciesCacheInRedis';
|
|
9
|
+
import { CountsCacheInRedis } from './CountsCacheInRedis';
|
|
10
10
|
import { STORAGE_REDIS } from '../../utils/constants';
|
|
11
11
|
/**
|
|
12
12
|
* InRedis storage factory for consumer server-side SplitFactory, that uses `Ioredis` Redis client for Node.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __extends } from "tslib";
|
|
2
2
|
import { isFiniteNumber, isNaNNumber } from '../../utils/lang';
|
|
3
3
|
import { LOG_PREFIX } from './constants';
|
|
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 var LOG_PREFIX = 'storage:pluggable:';
|
|
1
|
+
export var LOG_PREFIX = 'storage:pluggable: ';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __assign } from "tslib";
|
|
2
|
-
import KeyBuilderSS from '../KeyBuilderSS';
|
|
2
|
+
import { KeyBuilderSS } from '../KeyBuilderSS';
|
|
3
3
|
import { SplitsCachePluggable } from './SplitsCachePluggable';
|
|
4
4
|
import { SegmentsCachePluggable } from './SegmentsCachePluggable';
|
|
5
5
|
import { ImpressionsCachePluggable } from './ImpressionsCachePluggable';
|
|
@@ -8,9 +8,9 @@ import { wrapperAdapter, METHODS_TO_PROMISE_WRAP } from './wrapperAdapter';
|
|
|
8
8
|
import { isObject } from '../../utils/lang';
|
|
9
9
|
import { validatePrefix } from '../KeyBuilder';
|
|
10
10
|
import { CONSUMER_PARTIAL_MODE, STORAGE_PLUGGABLE } from '../../utils/constants';
|
|
11
|
-
import ImpressionsCacheInMemory from '../inMemory/ImpressionsCacheInMemory';
|
|
12
|
-
import EventsCacheInMemory from '../inMemory/EventsCacheInMemory';
|
|
13
|
-
import ImpressionCountsCacheInMemory from '../inMemory/ImpressionCountsCacheInMemory';
|
|
11
|
+
import { ImpressionsCacheInMemory } from '../inMemory/ImpressionsCacheInMemory';
|
|
12
|
+
import { EventsCacheInMemory } from '../inMemory/EventsCacheInMemory';
|
|
13
|
+
import { ImpressionCountsCacheInMemory } from '../inMemory/ImpressionCountsCacheInMemory';
|
|
14
14
|
var NO_VALID_WRAPPER = 'Expecting pluggable storage `wrapper` in options, but no valid wrapper instance was provided.';
|
|
15
15
|
var NO_VALID_WRAPPER_INTERFACE = 'The provided wrapper instance doesn’t follow the expected interface. Check our docs.';
|
|
16
16
|
/**
|