@splitsoftware/splitio-commons 1.0.1-rc.4 → 1.1.1-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGES.txt +13 -3
- package/LICENSE +1 -1
- package/README.md +1 -1
- 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/info.js +1 -1
- 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/clientAttributesDecoration.js +108 -0
- package/cjs/sdkClient/clientCS.js +12 -10
- 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 +9 -10
- 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/AttributesCacheInMemory.js +70 -0
- 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/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 +8 -6
- package/cjs/sync/streaming/AuthClient/index.js +2 -3
- package/cjs/sync/streaming/SSEClient/index.js +2 -1
- 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 +18 -17
- 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 +2 -1
- package/cjs/utils/MinEvents.js +13 -15
- package/cjs/utils/inputValidation/attribute.js +20 -0
- package/cjs/utils/inputValidation/attributes.js +13 -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 +5 -6
- 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/info.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/clientAttributesDecoration.js +104 -0
- package/esm/sdkClient/clientCS.js +10 -8
- package/esm/sdkClient/clientInputValidation.js +2 -2
- package/esm/sdkClient/sdkClient.js +3 -3
- package/esm/sdkClient/sdkClientMethodCS.js +4 -4
- package/esm/sdkClient/sdkClientMethodCSWithTT.js +4 -4
- package/esm/sdkFactory/index.js +6 -6
- 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/AttributesCacheInMemory.js +67 -0
- 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/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 +7 -4
- package/esm/sync/streaming/AuthClient/index.js +1 -1
- package/esm/sync/streaming/SSEClient/index.js +1 -1
- 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 +10 -9
- 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 +1 -1
- package/esm/utils/MinEvents.js +2 -5
- package/esm/utils/inputValidation/attribute.js +16 -0
- package/esm/utils/inputValidation/attributes.js +11 -0
- 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 +3 -3
- 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 +2 -3
- 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/info.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/clientAttributesDecoration.ts +122 -0
- package/src/sdkClient/clientCS.ts +13 -8
- package/src/sdkClient/clientInputValidation.ts +2 -2
- package/src/sdkClient/sdkClient.ts +3 -3
- package/src/sdkClient/sdkClientMethodCS.ts +4 -2
- package/src/sdkClient/sdkClientMethodCSWithTT.ts +4 -2
- package/src/sdkFactory/index.ts +6 -6
- package/src/sdkManager/index.ts +2 -2
- package/src/services/splitApi.ts +1 -1
- package/src/services/splitHttpClient.ts +1 -1
- 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/AttributesCacheInMemory.ts +73 -0
- 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/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 +6 -3
- package/src/sync/streaming/AuthClient/index.ts +1 -1
- package/src/sync/streaming/SSEClient/index.ts +1 -1
- 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 +10 -9
- 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 +39 -0
- package/src/utils/Backoff.ts +1 -1
- package/src/utils/LRUCache/index.ts +1 -1
- package/src/utils/MinEventEmitter.ts +1 -1
- package/src/utils/MinEvents.ts +2 -7
- package/src/utils/inputValidation/attribute.ts +21 -0
- package/src/utils/inputValidation/attributes.ts +14 -0
- 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 +3 -3
- 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/logger/browser/{debugLogger.d.ts → DebugLogger.d.ts} +0 -0
- package/types/logger/browser/{errorLogger.d.ts → ErrorLogger.d.ts} +0 -0
- package/types/logger/browser/{infoLogger.d.ts → InfoLogger.d.ts} +0 -0
- package/types/logger/browser/{warnLogger.d.ts → WarnLogger.d.ts} +0 -0
- package/types/readiness/sdkReadinessManager.d.ts +1 -1
- package/types/sdkClient/client.d.ts +1 -1
- package/types/sdkClient/clientAttributesDecoration.d.ts +51 -0
- package/types/sdkClient/clientCS.d.ts +2 -1
- package/types/sdkClient/clientInputValidation.d.ts +1 -1
- 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/AttributesCacheInMemory.d.ts +43 -0
- 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/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 +1 -1
- 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 +39 -0
- package/types/utils/Backoff.d.ts +1 -1
- package/types/utils/LRUCache/index.d.ts +1 -1
- package/types/utils/MinEventEmitter.d.ts +1 -1
- package/types/utils/MinEvents.d.ts +3 -2
- package/types/utils/inputValidation/attribute.d.ts +2 -0
- package/types/utils/inputValidation/attributes.d.ts +1 -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
- package/src/logger/.DS_Store +0 -0
- package/types/integrations/ga/GaToSplitPlugin.d.ts +0 -3
- package/types/integrations/ga/SplitToGaPlugin.d.ts +0 -4
- package/types/logger/codes.d.ts +0 -2
- package/types/logger/codesConstants.d.ts +0 -117
- package/types/logger/codesConstantsBrowser.d.ts +0 -2
- package/types/logger/codesConstantsNode.d.ts +0 -14
- package/types/logger/codesDebug.d.ts +0 -1
- package/types/logger/codesDebugBrowser.d.ts +0 -1
- package/types/logger/codesDebugNode.d.ts +0 -1
- package/types/logger/codesError.d.ts +0 -1
- package/types/logger/codesErrorNode.d.ts +0 -1
- package/types/logger/codesInfo.d.ts +0 -1
- package/types/logger/codesWarn.d.ts +0 -1
- package/types/logger/codesWarnNode.d.ts +0 -1
- package/types/logger/debugLogger.d.ts +0 -2
- package/types/logger/errorLogger.d.ts +0 -2
- package/types/logger/infoLogger.d.ts +0 -2
- package/types/logger/messages/debugBrowser.d.ts +0 -1
- package/types/logger/messages/debugNode.d.ts +0 -1
- package/types/logger/messages/errorNode.d.ts +0 -1
- package/types/logger/messages/warnNode.d.ts +0 -1
- package/types/logger/noopLogger.d.ts +0 -2
- package/types/logger/warnLogger.d.ts +0 -2
- package/types/sdkManager/sdkManagerMethod.d.ts +0 -6
- package/types/storages/getRegisteredSegments.d.ts +0 -10
- package/types/sync/polling/syncTasks/splitsSyncTask.copy.d.ts +0 -35
- package/types/sync/polling/syncTasks/splitsSyncTask.morelikeoriginal.d.ts +0 -35
- package/types/sync/streaming/AuthClient/indexV1.d.ts +0 -12
- package/types/sync/streaming/AuthClient/indexV2.d.ts +0 -8
- package/types/sync/streaming/pushManagerCS.d.ts +0 -12
- package/types/sync/streaming/pushManagerNoUsers.d.ts +0 -13
- package/types/sync/streaming/pushManagerSS.d.ts +0 -11
- package/types/sync/syncManagerFromFile.d.ts +0 -2
- package/types/sync/syncManagerFromObject.d.ts +0 -2
- package/types/sync/syncManagerOffline.d.ts +0 -9
- package/types/utils/lang/errors.d.ts +0 -10
- package/types/utils/murmur3/commons.d.ts +0 -12
- package/types/utils/settingsValidation/buildMetadata.d.ts +0 -3
- package/types/utils/settingsValidation/localhost/index.d.ts +0 -9
- package/types/utils/settingsValidation/logger.d.ts +0 -11
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
var syncTask_1 =
|
|
5
|
-
var mySegmentsFetcher_1 =
|
|
3
|
+
exports.mySegmentsSyncTaskFactory = void 0;
|
|
4
|
+
var syncTask_1 = require("../../syncTask");
|
|
5
|
+
var mySegmentsFetcher_1 = require("../fetchers/mySegmentsFetcher");
|
|
6
6
|
var mySegmentsUpdater_1 = require("../updaters/mySegmentsUpdater");
|
|
7
7
|
/**
|
|
8
8
|
* Creates a sync task that periodically executes a `mySegmentsUpdater` task
|
|
9
9
|
*/
|
|
10
10
|
function mySegmentsSyncTaskFactory(fetchMySegments, storage, readiness, settings, matchingKey) {
|
|
11
|
-
return syncTask_1.
|
|
11
|
+
return syncTask_1.syncTaskFactory(settings.log, mySegmentsUpdater_1.mySegmentsUpdaterFactory(settings.log, mySegmentsFetcher_1.mySegmentsFetcherFactory(fetchMySegments, matchingKey), storage.splits, storage.segments, readiness.segments, settings.startup.requestTimeoutBeforeReady, settings.startup.retriesOnFailureBeforeReady), settings.scheduler.segmentsRefreshRate, 'mySegmentsUpdater');
|
|
12
12
|
}
|
|
13
|
-
exports.
|
|
13
|
+
exports.mySegmentsSyncTaskFactory = mySegmentsSyncTaskFactory;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
var syncTask_1 =
|
|
5
|
-
var segmentChangesFetcher_1 =
|
|
3
|
+
exports.segmentsSyncTaskFactory = void 0;
|
|
4
|
+
var syncTask_1 = require("../../syncTask");
|
|
5
|
+
var segmentChangesFetcher_1 = require("../fetchers/segmentChangesFetcher");
|
|
6
6
|
var segmentChangesUpdater_1 = require("../updaters/segmentChangesUpdater");
|
|
7
7
|
/**
|
|
8
8
|
* Creates a sync task that periodically executes a `segmentChangesUpdater` task
|
|
9
9
|
*/
|
|
10
10
|
function segmentsSyncTaskFactory(fetchSegmentChanges, storage, readiness, settings) {
|
|
11
|
-
return syncTask_1.
|
|
11
|
+
return syncTask_1.syncTaskFactory(settings.log, segmentChangesUpdater_1.segmentChangesUpdaterFactory(settings.log, segmentChangesFetcher_1.segmentChangesFetcherFactory(fetchSegmentChanges), storage.segments, readiness), settings.scheduler.segmentsRefreshRate, 'segmentChangesUpdater');
|
|
12
12
|
}
|
|
13
|
-
exports.
|
|
13
|
+
exports.segmentsSyncTaskFactory = segmentsSyncTaskFactory;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
var syncTask_1 =
|
|
5
|
-
var splitChangesFetcher_1 =
|
|
3
|
+
exports.splitsSyncTaskFactory = void 0;
|
|
4
|
+
var syncTask_1 = require("../../syncTask");
|
|
5
|
+
var splitChangesFetcher_1 = require("../fetchers/splitChangesFetcher");
|
|
6
6
|
var splitChangesUpdater_1 = require("../updaters/splitChangesUpdater");
|
|
7
7
|
/**
|
|
8
8
|
* Creates a sync task that periodically executes a `splitChangesUpdater` task
|
|
9
9
|
*/
|
|
10
10
|
function splitsSyncTaskFactory(fetchSplitChanges, storage, readiness, settings) {
|
|
11
|
-
return syncTask_1.
|
|
11
|
+
return syncTask_1.syncTaskFactory(settings.log, splitChangesUpdater_1.splitChangesUpdaterFactory(settings.log, splitChangesFetcher_1.splitChangesFetcherFactory(fetchSplitChanges), storage.splits, storage.segments, readiness.splits, settings.startup.requestTimeoutBeforeReady, settings.startup.retriesOnFailureBeforeReady), settings.scheduler.featuresRefreshRate, 'splitChangesUpdater');
|
|
12
12
|
}
|
|
13
|
-
exports.
|
|
13
|
+
exports.splitsSyncTaskFactory = splitsSyncTaskFactory;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.mySegmentsUpdaterFactory = void 0;
|
|
4
|
-
var
|
|
5
|
-
var timeout_1 = tslib_1.__importDefault(require("../../../utils/promise/timeout"));
|
|
4
|
+
var timeout_1 = require("../../../utils/promise/timeout");
|
|
6
5
|
var constants_1 = require("../../../readiness/constants");
|
|
7
6
|
var constants_2 = require("../../../logger/constants");
|
|
8
7
|
/**
|
|
@@ -17,7 +16,7 @@ function mySegmentsUpdaterFactory(log, mySegmentsFetcher, splitsCache, mySegment
|
|
|
17
16
|
/** timeout and telemetry decorator for `splitChangesFetcher` promise */
|
|
18
17
|
function _promiseDecorator(promise) {
|
|
19
18
|
if (startingUp)
|
|
20
|
-
promise = timeout_1.
|
|
19
|
+
promise = timeout_1.timeout(requestTimeoutBeforeReady, promise);
|
|
21
20
|
return promise;
|
|
22
21
|
// @TODO telemetry
|
|
23
22
|
// NOTE: We only collect metrics on startup.
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.segmentChangesUpdaterFactory = void 0;
|
|
4
|
-
var tslib_1 = require("tslib");
|
|
5
4
|
var lang_1 = require("../../../utils/lang");
|
|
6
5
|
var constants_1 = require("../../../readiness/constants");
|
|
7
6
|
var constants_2 = require("../../../logger/constants");
|
|
8
|
-
var thenable_1 =
|
|
7
|
+
var thenable_1 = require("../../../utils/promise/thenable");
|
|
9
8
|
/**
|
|
10
9
|
* Factory of SegmentChanges updater, a task that:
|
|
11
10
|
* - fetches segment changes using `segmentChangesFetcher`
|
|
@@ -66,7 +65,7 @@ function segmentChangesUpdaterFactory(log, segmentChangesFetcher, segments, read
|
|
|
66
65
|
log.debug(constants_2.LOG_PREFIX_SYNC_SEGMENTS + "Processed " + segmentName + " with till = " + x.till + ". Added: " + x.added.length + ". Removed: " + x.removed.length);
|
|
67
66
|
});
|
|
68
67
|
// If at least one storage operation result is a promise, join all in a single promise.
|
|
69
|
-
if (results.some(function (result) { return thenable_1.
|
|
68
|
+
if (results.some(function (result) { return thenable_1.thenable(result); }))
|
|
70
69
|
return Promise.all(results).then(function () { return changeNumber; });
|
|
71
70
|
return changeNumber;
|
|
72
71
|
});
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.splitChangesUpdaterFactory = exports.computeSplitsMutation = exports.parseSegments = void 0;
|
|
4
|
-
var tslib_1 = require("tslib");
|
|
5
4
|
var sets_1 = require("../../../utils/lang/sets");
|
|
6
|
-
var timeout_1 =
|
|
5
|
+
var timeout_1 = require("../../../utils/promise/timeout");
|
|
7
6
|
var constants_1 = require("../../../readiness/constants");
|
|
8
7
|
var constants_2 = require("../../../logger/constants");
|
|
9
8
|
// Checks that all registered segments have been fetched (changeNumber !== -1 for every segment).
|
|
@@ -77,7 +76,7 @@ function splitChangesUpdaterFactory(log, splitChangesFetcher, splits, segments,
|
|
|
77
76
|
/** timeout and telemetry decorator for `splitChangesFetcher` promise */
|
|
78
77
|
function _promiseDecorator(promise) {
|
|
79
78
|
if (startingUp && requestTimeoutBeforeReady)
|
|
80
|
-
promise = timeout_1.
|
|
79
|
+
promise = timeout_1.timeout(requestTimeoutBeforeReady, promise);
|
|
81
80
|
return promise;
|
|
82
81
|
// @TODO telemetry
|
|
83
82
|
// const collectMetrics = startingUp || isNode; // If we are on the browser, only collect this metric for first fetch. On node do it always.
|
|
@@ -139,10 +138,13 @@ function splitChangesUpdaterFactory(log, splitChangesFetcher, splits, segments,
|
|
|
139
138
|
}
|
|
140
139
|
return false;
|
|
141
140
|
});
|
|
142
|
-
// After triggering the requests, if we have cached splits information let's notify that.
|
|
141
|
+
// After triggering the requests, if we have cached splits information let's notify that to emit SDK_READY_FROM_CACHE.
|
|
142
|
+
// Wrapping in a promise since checkCache can be async.
|
|
143
143
|
if (splitsEventEmitter && startingUp) {
|
|
144
|
-
Promise.resolve(splits.checkCache()).then(function (
|
|
145
|
-
|
|
144
|
+
Promise.resolve(splits.checkCache()).then(function (isCacheReady) {
|
|
145
|
+
if (isCacheReady)
|
|
146
|
+
splitsEventEmitter.emit(constants_1.SDK_SPLITS_CACHE_LOADED);
|
|
147
|
+
});
|
|
146
148
|
}
|
|
147
149
|
return fetcherPromise;
|
|
148
150
|
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.hashUserKey = exports.authenticateFactory = void 0;
|
|
4
|
-
var
|
|
5
|
-
var object_assign_1 = tslib_1.__importDefault(require("object-assign"));
|
|
4
|
+
var objectAssign_1 = require("../../../utils/lang/objectAssign");
|
|
6
5
|
var base64_1 = require("../../../utils/base64");
|
|
7
6
|
var jwt_1 = require("../../../utils/jwt");
|
|
8
7
|
var murmur3_1 = require("../../../utils/murmur3/murmur3");
|
|
@@ -26,7 +25,7 @@ function authenticateFactory(fetchAuth) {
|
|
|
26
25
|
if (typeof decodedToken.iat !== 'number' || typeof decodedToken.exp !== 'number')
|
|
27
26
|
throw new Error('token properties "issuedAt" (iat) or "expiration" (exp) are missing or invalid');
|
|
28
27
|
var channels = JSON.parse(decodedToken['x-ably-capability']);
|
|
29
|
-
return
|
|
28
|
+
return objectAssign_1.objectAssign({
|
|
30
29
|
decodedToken: decodedToken,
|
|
31
30
|
channels: channels
|
|
32
31
|
}, json);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SSEClient = void 0;
|
|
3
4
|
var VERSION = '1.1';
|
|
4
5
|
var CONTROL_CHANNEL_REGEX = /^control_/;
|
|
5
6
|
/**
|
|
@@ -78,4 +79,4 @@ var SSEClient = /** @class */ (function () {
|
|
|
78
79
|
};
|
|
79
80
|
return SSEClient;
|
|
80
81
|
}());
|
|
81
|
-
exports.
|
|
82
|
+
exports.SSEClient = SSEClient;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.notificationKeeperFactory = void 0;
|
|
3
4
|
var constants_1 = require("../constants");
|
|
4
5
|
var CONTROL_CHANNEL_REGEXS = [/control_pri$/, /control_sec$/];
|
|
5
6
|
/**
|
|
@@ -87,4 +88,4 @@ function notificationKeeperFactory(pushEmitter) {
|
|
|
87
88
|
},
|
|
88
89
|
};
|
|
89
90
|
}
|
|
90
|
-
exports.
|
|
91
|
+
exports.notificationKeeperFactory = notificationKeeperFactory;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
3
|
+
exports.SSEHandlerFactory = void 0;
|
|
4
4
|
var NotificationParser_1 = require("./NotificationParser");
|
|
5
|
-
var NotificationKeeper_1 =
|
|
5
|
+
var NotificationKeeper_1 = require("./NotificationKeeper");
|
|
6
6
|
var constants_1 = require("../constants");
|
|
7
7
|
var constants_2 = require("../../../logger/constants");
|
|
8
8
|
function isRetryableError(error) {
|
|
@@ -25,7 +25,7 @@ function isRetryableError(error) {
|
|
|
25
25
|
* @param pushEmitter emitter for events related to streaming support
|
|
26
26
|
*/
|
|
27
27
|
function SSEHandlerFactory(log, pushEmitter) {
|
|
28
|
-
var notificationKeeper = NotificationKeeper_1.
|
|
28
|
+
var notificationKeeper = NotificationKeeper_1.notificationKeeperFactory(pushEmitter);
|
|
29
29
|
return {
|
|
30
30
|
handleOpen: function () {
|
|
31
31
|
notificationKeeper.handleOpen();
|
|
@@ -89,4 +89,4 @@ function SSEHandlerFactory(log, pushEmitter) {
|
|
|
89
89
|
},
|
|
90
90
|
};
|
|
91
91
|
}
|
|
92
|
-
exports.
|
|
92
|
+
exports.SSEHandlerFactory = SSEHandlerFactory;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
var Backoff_1 =
|
|
3
|
+
exports.MySegmentsUpdateWorker = void 0;
|
|
4
|
+
var Backoff_1 = require("../../../utils/Backoff");
|
|
5
5
|
/**
|
|
6
6
|
* MySegmentsUpdateWorker class
|
|
7
7
|
*/
|
|
@@ -17,7 +17,7 @@ var MySegmentsUpdateWorker = /** @class */ (function () {
|
|
|
17
17
|
this.currentChangeNumber = -1; // @TODO: remove once `/mySegments` endpoint provides the changeNumber
|
|
18
18
|
this.put = this.put.bind(this);
|
|
19
19
|
this.__handleMySegmentsUpdateCall = this.__handleMySegmentsUpdateCall.bind(this);
|
|
20
|
-
this.backoff = new Backoff_1.
|
|
20
|
+
this.backoff = new Backoff_1.Backoff(this.__handleMySegmentsUpdateCall);
|
|
21
21
|
}
|
|
22
22
|
// Private method
|
|
23
23
|
// Precondition: this.mySegmentsSyncTask.isSynchronizingMySegments === false
|
|
@@ -58,4 +58,4 @@ var MySegmentsUpdateWorker = /** @class */ (function () {
|
|
|
58
58
|
};
|
|
59
59
|
return MySegmentsUpdateWorker;
|
|
60
60
|
}());
|
|
61
|
-
exports.
|
|
61
|
+
exports.MySegmentsUpdateWorker = MySegmentsUpdateWorker;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
var Backoff_1 =
|
|
3
|
+
exports.SegmentsUpdateWorker = void 0;
|
|
4
|
+
var Backoff_1 = require("../../../utils/Backoff");
|
|
5
5
|
/**
|
|
6
6
|
* SegmentUpdateWorker class
|
|
7
7
|
*/
|
|
@@ -17,7 +17,7 @@ var SegmentsUpdateWorker = /** @class */ (function () {
|
|
|
17
17
|
this.handleNewEvent = false;
|
|
18
18
|
this.put = this.put.bind(this);
|
|
19
19
|
this.__handleSegmentUpdateCall = this.__handleSegmentUpdateCall.bind(this);
|
|
20
|
-
this.backoff = new Backoff_1.
|
|
20
|
+
this.backoff = new Backoff_1.Backoff(this.__handleSegmentUpdateCall);
|
|
21
21
|
}
|
|
22
22
|
// Private method
|
|
23
23
|
// Precondition: this.segmentsSyncTask.isSynchronizingSegments === false
|
|
@@ -71,4 +71,4 @@ var SegmentsUpdateWorker = /** @class */ (function () {
|
|
|
71
71
|
};
|
|
72
72
|
return SegmentsUpdateWorker;
|
|
73
73
|
}());
|
|
74
|
-
exports.
|
|
74
|
+
exports.SegmentsUpdateWorker = SegmentsUpdateWorker;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
3
|
+
exports.SplitsUpdateWorker = void 0;
|
|
4
4
|
var constants_1 = require("../../../readiness/constants");
|
|
5
|
-
var Backoff_1 =
|
|
5
|
+
var Backoff_1 = require("../../../utils/Backoff");
|
|
6
6
|
/**
|
|
7
7
|
* SplitsUpdateWorker class
|
|
8
8
|
*/
|
|
@@ -22,7 +22,7 @@ var SplitsUpdateWorker = /** @class */ (function () {
|
|
|
22
22
|
this.put = this.put.bind(this);
|
|
23
23
|
this.killSplit = this.killSplit.bind(this);
|
|
24
24
|
this.__handleSplitUpdateCall = this.__handleSplitUpdateCall.bind(this);
|
|
25
|
-
this.backoff = new Backoff_1.
|
|
25
|
+
this.backoff = new Backoff_1.Backoff(this.__handleSplitUpdateCall);
|
|
26
26
|
}
|
|
27
27
|
// Private method
|
|
28
28
|
// Preconditions: this.splitsSyncTask.isSynchronizingSplits === false
|
|
@@ -79,4 +79,4 @@ var SplitsUpdateWorker = /** @class */ (function () {
|
|
|
79
79
|
};
|
|
80
80
|
return SplitsUpdateWorker;
|
|
81
81
|
}());
|
|
82
|
-
exports.
|
|
82
|
+
exports.SplitsUpdateWorker = SplitsUpdateWorker;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
var
|
|
5
|
-
var Backoff_1 =
|
|
6
|
-
var SSEHandler_1 =
|
|
7
|
-
var MySegmentsUpdateWorker_1 =
|
|
8
|
-
var SegmentsUpdateWorker_1 =
|
|
9
|
-
var SplitsUpdateWorker_1 =
|
|
3
|
+
exports.pushManagerFactory = void 0;
|
|
4
|
+
var objectAssign_1 = require("../../utils/lang/objectAssign");
|
|
5
|
+
var Backoff_1 = require("../../utils/Backoff");
|
|
6
|
+
var SSEHandler_1 = require("./SSEHandler");
|
|
7
|
+
var MySegmentsUpdateWorker_1 = require("./UpdateWorkers/MySegmentsUpdateWorker");
|
|
8
|
+
var SegmentsUpdateWorker_1 = require("./UpdateWorkers/SegmentsUpdateWorker");
|
|
9
|
+
var SplitsUpdateWorker_1 = require("./UpdateWorkers/SplitsUpdateWorker");
|
|
10
10
|
var AuthClient_1 = require("./AuthClient");
|
|
11
11
|
var lang_1 = require("../../utils/lang");
|
|
12
|
-
var SSEClient_1 =
|
|
12
|
+
var SSEClient_1 = require("./SSEClient");
|
|
13
13
|
var key_1 = require("../../utils/key");
|
|
14
14
|
var constants_1 = require("./constants");
|
|
15
15
|
var constants_2 = require("../../logger/constants");
|
|
@@ -30,7 +30,7 @@ function pushManagerFactory(pollingManager, storage, readiness, fetchAuth, platf
|
|
|
30
30
|
var sseClient;
|
|
31
31
|
try {
|
|
32
32
|
// `useHeaders` false for client-side, even if the platform EventSource supports headers (e.g., React Native).
|
|
33
|
-
sseClient = new SSEClient_1.
|
|
33
|
+
sseClient = new SSEClient_1.SSEClient(settings, userKey ? false : true, platform.getEventSource);
|
|
34
34
|
}
|
|
35
35
|
catch (e) {
|
|
36
36
|
log.warn(constants_2.STREAMING_FALLBACK, [e]);
|
|
@@ -39,12 +39,12 @@ function pushManagerFactory(pollingManager, storage, readiness, fetchAuth, platf
|
|
|
39
39
|
var authenticate = AuthClient_1.authenticateFactory(fetchAuth);
|
|
40
40
|
// init feedback loop
|
|
41
41
|
var pushEmitter = new platform.EventEmitter();
|
|
42
|
-
var sseHandler = SSEHandler_1.
|
|
42
|
+
var sseHandler = SSEHandler_1.SSEHandlerFactory(log, pushEmitter);
|
|
43
43
|
sseClient.setEventHandler(sseHandler);
|
|
44
44
|
// init workers
|
|
45
|
-
var segmentsUpdateWorker = userKey ? new MySegmentsUpdateWorker_1.
|
|
45
|
+
var segmentsUpdateWorker = userKey ? new MySegmentsUpdateWorker_1.MySegmentsUpdateWorker(pollingManager.segmentsSyncTask) : new SegmentsUpdateWorker_1.SegmentsUpdateWorker(storage.segments, pollingManager.segmentsSyncTask);
|
|
46
46
|
// For server-side we pass the segmentsSyncTask, used by SplitsUpdateWorker to fetch new segments
|
|
47
|
-
var splitsUpdateWorker = new SplitsUpdateWorker_1.
|
|
47
|
+
var splitsUpdateWorker = new SplitsUpdateWorker_1.SplitsUpdateWorker(storage.splits, pollingManager.splitsSyncTask, readiness.splits, userKey ? undefined : pollingManager.segmentsSyncTask);
|
|
48
48
|
// [Only for client-side] map of hashes to user keys, to dispatch MY_SEGMENTS_UPDATE events to the corresponding MySegmentsUpdateWorker
|
|
49
49
|
var userKeyHashes = {};
|
|
50
50
|
// [Only for client-side] map of user keys to their corresponding hash64 and MySegmentsUpdateWorkers.
|
|
@@ -63,7 +63,7 @@ function pushManagerFactory(pollingManager, storage, readiness, fetchAuth, platf
|
|
|
63
63
|
// flag that indicates a PUSH_NONRETRYABLE_ERROR, condition with which starting pushManager again is ignored.
|
|
64
64
|
var disabled; // `disabled` implies `disconnected === true`
|
|
65
65
|
/** PushManager functions related to initialization */
|
|
66
|
-
var connectPushRetryBackoff = new Backoff_1.
|
|
66
|
+
var connectPushRetryBackoff = new Backoff_1.Backoff(connectPush, settings.scheduler.pushRetryBackoffBase);
|
|
67
67
|
var timeoutIdTokenRefresh;
|
|
68
68
|
var timeoutIdSseOpen;
|
|
69
69
|
function scheduleTokenRefreshAndSse(authData) {
|
|
@@ -90,7 +90,8 @@ function pushManagerFactory(pollingManager, storage, readiness, fetchAuth, platf
|
|
|
90
90
|
// Guard condition in case `stop/disconnectPush` has been called (e.g., calling SDK destroy, or app signal close/background)
|
|
91
91
|
if (disconnected)
|
|
92
92
|
return;
|
|
93
|
-
|
|
93
|
+
// @TODO distinguish log for 'Connecting' (1st time) and 'Re-connecting'
|
|
94
|
+
log.info(constants_2.STREAMING_CONNECTING);
|
|
94
95
|
disconnected = false;
|
|
95
96
|
var userKeys = userKey ? Object.keys(clients) : undefined;
|
|
96
97
|
authenticate(userKeys).then(function (authData) {
|
|
@@ -257,7 +258,7 @@ function pushManagerFactory(pollingManager, storage, readiness, fetchAuth, platf
|
|
|
257
258
|
else {
|
|
258
259
|
pushEmitter.on(constants_1.SEGMENT_UPDATE, segmentsUpdateWorker.put);
|
|
259
260
|
}
|
|
260
|
-
return
|
|
261
|
+
return objectAssign_1.objectAssign(
|
|
261
262
|
// Expose Event Emitter functionality and Event constants
|
|
262
263
|
Object.create(pushEmitter), {
|
|
263
264
|
// Expose functionality for starting and stoping push mode:
|
|
@@ -272,7 +273,7 @@ function pushManagerFactory(pollingManager, storage, readiness, fetchAuth, platf
|
|
|
272
273
|
},
|
|
273
274
|
// [Only for client-side]
|
|
274
275
|
add: function (userKey, mySegmentsSyncTask) {
|
|
275
|
-
clients[userKey] = { hash64: murmur3_64_1.hash64(userKey), worker: new MySegmentsUpdateWorker_1.
|
|
276
|
+
clients[userKey] = { hash64: murmur3_64_1.hash64(userKey), worker: new MySegmentsUpdateWorker_1.MySegmentsUpdateWorker(mySegmentsSyncTask) };
|
|
276
277
|
var hash = AuthClient_1.hashUserKey(userKey);
|
|
277
278
|
if (!userKeyHashes[hash]) {
|
|
278
279
|
userKeyHashes[hash] = userKey;
|
|
@@ -296,4 +297,4 @@ function pushManagerFactory(pollingManager, storage, readiness, fetchAuth, platf
|
|
|
296
297
|
}
|
|
297
298
|
});
|
|
298
299
|
}
|
|
299
|
-
exports.
|
|
300
|
+
exports.pushManagerFactory = pushManagerFactory;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.submitterSyncTaskFactory = void 0;
|
|
4
|
-
var
|
|
5
|
-
var syncTask_1 = tslib_1.__importDefault(require("../syncTask"));
|
|
4
|
+
var syncTask_1 = require("../syncTask");
|
|
6
5
|
var constants_1 = require("../../logger/constants");
|
|
7
6
|
/**
|
|
8
7
|
* Base function to create submitter sync tasks, such as ImpressionsSyncTask and EventsSyncTask
|
|
@@ -40,6 +39,6 @@ function submitterSyncTaskFactory(log, postClient, sourceCache, postRate, dataNa
|
|
|
40
39
|
// if latencyTracker provided, attach stop callback to postEventsPromise
|
|
41
40
|
return latencyTrackerStop ? postPromise.then(latencyTrackerStop).catch(latencyTrackerStop) : postPromise;
|
|
42
41
|
}
|
|
43
|
-
return syncTask_1.
|
|
42
|
+
return syncTask_1.syncTaskFactory(log, postData, postRate, dataName + ' submitter');
|
|
44
43
|
}
|
|
45
44
|
exports.submitterSyncTaskFactory = submitterSyncTaskFactory;
|
package/cjs/sync/syncTask.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.syncTaskFactory = void 0;
|
|
3
4
|
var constants_1 = require("../logger/constants");
|
|
4
5
|
/**
|
|
5
6
|
* Creates a syncTask that handles the periodic execution of a given task ("start" and "stop" methods).
|
|
@@ -78,4 +79,4 @@ function syncTaskFactory(log, task, period, taskName) {
|
|
|
78
79
|
}
|
|
79
80
|
};
|
|
80
81
|
}
|
|
81
|
-
exports.
|
|
82
|
+
exports.syncTaskFactory = syncTaskFactory;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
var
|
|
5
|
-
var thenable_1 =
|
|
3
|
+
exports.eventTrackerFactory = void 0;
|
|
4
|
+
var objectAssign_1 = require("../utils/lang/objectAssign");
|
|
5
|
+
var thenable_1 = require("../utils/promise/thenable");
|
|
6
6
|
var constants_1 = require("../logger/constants");
|
|
7
7
|
/**
|
|
8
8
|
* Event tracker stores events in cache and pass them to the integrations manager if provided.
|
|
@@ -21,9 +21,9 @@ function eventTrackerFactory(log, eventsCache, integrationsManager) {
|
|
|
21
21
|
// Wrap in a timeout because we don't want it to be blocking.
|
|
22
22
|
setTimeout(function () {
|
|
23
23
|
// copy of event, to avoid unexpected behaviour if modified by integrations
|
|
24
|
-
var eventDataCopy =
|
|
24
|
+
var eventDataCopy = objectAssign_1.objectAssign({}, eventData);
|
|
25
25
|
if (eventData.properties)
|
|
26
|
-
eventDataCopy.properties =
|
|
26
|
+
eventDataCopy.properties = objectAssign_1.objectAssign({}, eventData.properties);
|
|
27
27
|
// integrationsManager does not throw errors (they are internally handled by each integration module)
|
|
28
28
|
integrationsManager.handleEvent(eventDataCopy);
|
|
29
29
|
}, 0);
|
|
@@ -37,7 +37,7 @@ function eventTrackerFactory(log, eventsCache, integrationsManager) {
|
|
|
37
37
|
return {
|
|
38
38
|
track: function (eventData, size) {
|
|
39
39
|
var tracked = eventsCache.track(eventData, size);
|
|
40
|
-
if (thenable_1.
|
|
40
|
+
if (thenable_1.thenable(tracked)) {
|
|
41
41
|
return tracked.then(queueEventsCallback.bind(null, eventData));
|
|
42
42
|
}
|
|
43
43
|
else {
|
|
@@ -46,4 +46,4 @@ function eventTrackerFactory(log, eventsCache, integrationsManager) {
|
|
|
46
46
|
}
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
|
-
exports.
|
|
49
|
+
exports.eventTrackerFactory = eventTrackerFactory;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
var LRUCache_1 =
|
|
3
|
+
exports.ImpressionObserver = void 0;
|
|
4
|
+
var LRUCache_1 = require("../../utils/LRUCache");
|
|
5
5
|
var ImpressionObserver = /** @class */ (function () {
|
|
6
6
|
function ImpressionObserver(size, hasher) {
|
|
7
|
-
this.cache = new LRUCache_1.
|
|
7
|
+
this.cache = new LRUCache_1.LRUCache(size);
|
|
8
8
|
this.hasher = hasher;
|
|
9
9
|
}
|
|
10
10
|
ImpressionObserver.prototype.testAndSet = function (impression) {
|
|
@@ -15,4 +15,4 @@ var ImpressionObserver = /** @class */ (function () {
|
|
|
15
15
|
};
|
|
16
16
|
return ImpressionObserver;
|
|
17
17
|
}());
|
|
18
|
-
exports.
|
|
18
|
+
exports.ImpressionObserver = ImpressionObserver;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.impressionObserverCSFactory = exports.hashImpression32 = void 0;
|
|
4
|
-
var
|
|
5
|
-
var ImpressionObserver_1 = tslib_1.__importDefault(require("./ImpressionObserver"));
|
|
4
|
+
var ImpressionObserver_1 = require("./ImpressionObserver");
|
|
6
5
|
var murmur3_1 = require("../../utils/murmur3/murmur3");
|
|
7
6
|
var buildKey_1 = require("./buildKey");
|
|
8
7
|
function hashImpression32(impression) {
|
|
@@ -11,6 +10,6 @@ function hashImpression32(impression) {
|
|
|
11
10
|
exports.hashImpression32 = hashImpression32;
|
|
12
11
|
var LAST_SEEN_CACHE_SIZE = 500; // cache up to 500 impression hashes
|
|
13
12
|
function impressionObserverCSFactory() {
|
|
14
|
-
return new ImpressionObserver_1.
|
|
13
|
+
return new ImpressionObserver_1.ImpressionObserver(LAST_SEEN_CACHE_SIZE, hashImpression32);
|
|
15
14
|
}
|
|
16
15
|
exports.impressionObserverCSFactory = impressionObserverCSFactory;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.impressionObserverSSFactory = exports.hashImpression128 = void 0;
|
|
4
|
-
var
|
|
5
|
-
var ImpressionObserver_1 = tslib_1.__importDefault(require("./ImpressionObserver"));
|
|
4
|
+
var ImpressionObserver_1 = require("./ImpressionObserver");
|
|
6
5
|
var murmur3_128_x86_1 = require("../../utils/murmur3/murmur3_128_x86");
|
|
7
6
|
var buildKey_1 = require("./buildKey");
|
|
8
7
|
function hashImpression128(impression) {
|
|
@@ -11,6 +10,6 @@ function hashImpression128(impression) {
|
|
|
11
10
|
exports.hashImpression128 = hashImpression128;
|
|
12
11
|
var LAST_SEEN_CACHE_SIZE = 500000; // cache up to 500k impression hashes
|
|
13
12
|
function impressionObserverSSFactory() {
|
|
14
|
-
return new ImpressionObserver_1.
|
|
13
|
+
return new ImpressionObserver_1.ImpressionObserver(LAST_SEEN_CACHE_SIZE, hashImpression128);
|
|
15
14
|
}
|
|
16
15
|
exports.impressionObserverSSFactory = impressionObserverSSFactory;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
var
|
|
5
|
-
var thenable_1 =
|
|
3
|
+
exports.impressionsTrackerFactory = void 0;
|
|
4
|
+
var objectAssign_1 = require("../utils/lang/objectAssign");
|
|
5
|
+
var thenable_1 = require("../utils/promise/thenable");
|
|
6
6
|
var time_1 = require("../utils/time");
|
|
7
7
|
var constants_1 = require("../logger/constants");
|
|
8
8
|
/**
|
|
@@ -45,7 +45,7 @@ countsCache) {
|
|
|
45
45
|
});
|
|
46
46
|
var res = impressionsCache.track(impressionsToStore);
|
|
47
47
|
// If we're on an async storage, handle error and log it.
|
|
48
|
-
if (thenable_1.
|
|
48
|
+
if (thenable_1.thenable(res)) {
|
|
49
49
|
res.then(function () {
|
|
50
50
|
log.info(constants_1.IMPRESSIONS_TRACKER_SUCCESS, [impressionsCount]);
|
|
51
51
|
}).catch(function (err) {
|
|
@@ -57,7 +57,7 @@ countsCache) {
|
|
|
57
57
|
var _loop_1 = function (i) {
|
|
58
58
|
var impressionData = {
|
|
59
59
|
// copy of impression, to avoid unexpected behaviour if modified by integrations or impressionListener
|
|
60
|
-
impression:
|
|
60
|
+
impression: objectAssign_1.objectAssign({}, impressions[i]),
|
|
61
61
|
attributes: attributes,
|
|
62
62
|
ip: ip,
|
|
63
63
|
hostname: hostname,
|
|
@@ -84,4 +84,4 @@ countsCache) {
|
|
|
84
84
|
}
|
|
85
85
|
};
|
|
86
86
|
}
|
|
87
|
-
exports.
|
|
87
|
+
exports.impressionsTrackerFactory = impressionsTrackerFactory;
|
package/cjs/utils/Backoff.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Backoff = void 0;
|
|
3
4
|
var Backoff = /** @class */ (function () {
|
|
4
5
|
/**
|
|
5
6
|
* Schedule function calls with exponential backoff
|
|
@@ -40,4 +41,4 @@ var Backoff = /** @class */ (function () {
|
|
|
40
41
|
Backoff.DEFAULT_MAX_MILLIS = 1800000; // 30 minutes
|
|
41
42
|
return Backoff;
|
|
42
43
|
}());
|
|
43
|
-
exports.
|
|
44
|
+
exports.Backoff = Backoff;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LRUCache = void 0;
|
|
3
4
|
var maps_1 = require("../lang/maps");
|
|
4
5
|
var LinkedList_1 = require("./LinkedList");
|
|
5
6
|
var LRUCache = /** @class */ (function () {
|
|
@@ -39,4 +40,4 @@ var LRUCache = /** @class */ (function () {
|
|
|
39
40
|
};
|
|
40
41
|
return LRUCache;
|
|
41
42
|
}());
|
|
42
|
-
exports.
|
|
43
|
+
exports.LRUCache = LRUCache;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EventEmitter = void 0;
|
|
3
4
|
var NEW_LISTENER_EVENT = 'newListener';
|
|
4
5
|
var REMOVE_LISTENER_EVENT = 'removeListener';
|
|
5
6
|
function checkListener(listener) {
|
|
@@ -96,4 +97,4 @@ var EventEmitter = /** @class */ (function () {
|
|
|
96
97
|
};
|
|
97
98
|
return EventEmitter;
|
|
98
99
|
}());
|
|
99
|
-
exports.
|
|
100
|
+
exports.EventEmitter = EventEmitter;
|