@splitsoftware/splitio-commons 1.6.2-rc.1 → 1.6.2-rc.4
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/listeners/browser.js +1 -2
- package/cjs/logger/constants.js +1 -2
- package/cjs/sdkClient/clientAttributesDecoration.js +1 -1
- package/cjs/sdkFactory/index.js +6 -13
- package/cjs/services/splitApi.js +1 -20
- package/cjs/storages/inMemory/AttributesCacheInMemory.js +1 -1
- package/cjs/sync/submitters/submitterManager.js +0 -3
- package/cjs/trackers/impressionsTracker.js +28 -7
- package/cjs/utils/constants/index.js +2 -3
- package/cjs/utils/key/index.js +1 -1
- package/cjs/utils/settingsValidation/impressionsMode.js +2 -2
- package/cjs/utils/settingsValidation/index.js +1 -3
- package/esm/listeners/browser.js +2 -3
- package/esm/logger/constants.js +0 -1
- package/esm/sdkClient/clientAttributesDecoration.js +1 -1
- package/esm/sdkFactory/index.js +6 -13
- package/esm/services/splitApi.js +1 -20
- package/esm/storages/inMemory/AttributesCacheInMemory.js +1 -1
- package/esm/sync/submitters/submitterManager.js +0 -3
- package/esm/trackers/impressionsTracker.js +28 -7
- package/esm/utils/constants/index.js +0 -1
- package/esm/utils/key/index.js +1 -1
- package/esm/utils/settingsValidation/impressionsMode.js +3 -3
- package/esm/utils/settingsValidation/index.js +1 -3
- package/package.json +4 -5
- package/src/consent/sdkUserConsent.ts +4 -3
- package/src/dtos/types.ts +0 -8
- package/src/evaluator/Engine.ts +3 -3
- package/src/evaluator/combiners/and.ts +1 -1
- package/src/evaluator/combiners/ifelseif.ts +3 -3
- package/src/evaluator/condition/engineUtils.ts +1 -1
- package/src/evaluator/condition/index.ts +6 -6
- package/src/evaluator/index.ts +10 -10
- 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 +1 -1
- 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 +1 -1
- package/src/evaluator/matchers/lte.ts +1 -1
- package/src/evaluator/matchers/part_of.ts +1 -1
- package/src/evaluator/matchers/segment.ts +1 -1
- 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/parser/index.ts +3 -3
- package/src/evaluator/types.ts +6 -6
- package/src/evaluator/value/index.ts +4 -4
- package/src/evaluator/value/sanitize.ts +4 -4
- package/src/integrations/ga/GaToSplit.ts +6 -6
- package/src/integrations/ga/SplitToGa.ts +10 -10
- package/src/integrations/ga/types.ts +4 -4
- package/src/integrations/pluggable.ts +3 -3
- package/src/integrations/types.ts +2 -2
- package/src/listeners/browser.ts +2 -3
- package/src/logger/.DS_Store +0 -0
- package/src/logger/constants.ts +0 -1
- package/src/logger/index.ts +3 -3
- package/src/logger/sdkLogger.ts +1 -2
- package/src/logger/types.ts +0 -16
- package/src/readiness/sdkReadinessManager.ts +1 -1
- package/src/readiness/types.ts +2 -9
- package/src/sdkClient/client.ts +13 -13
- package/src/sdkClient/clientAttributesDecoration.ts +13 -13
- package/src/sdkClient/clientCS.ts +3 -4
- package/src/sdkClient/clientInputValidation.ts +15 -15
- package/src/sdkClient/sdkClient.ts +2 -2
- package/src/sdkClient/sdkClientMethod.ts +2 -2
- package/src/sdkClient/sdkClientMethodCS.ts +9 -9
- package/src/sdkClient/sdkClientMethodCSWithTT.ts +9 -9
- package/src/sdkFactory/index.ts +8 -17
- package/src/sdkFactory/types.ts +8 -11
- package/src/sdkManager/index.ts +5 -5
- package/src/services/splitApi.ts +1 -22
- package/src/services/types.ts +0 -6
- package/src/storages/dataLoader.ts +2 -2
- package/src/storages/inLocalStorage/MySegmentsCacheInLocal.ts +1 -1
- package/src/storages/inLocalStorage/SplitsCacheInLocal.ts +2 -2
- package/src/storages/inLocalStorage/index.ts +3 -2
- package/src/storages/inMemory/AttributesCacheInMemory.ts +13 -12
- package/src/storages/inMemory/EventsCacheInMemory.ts +4 -4
- package/src/storages/inRedis/EventsCacheInRedis.ts +4 -4
- package/src/storages/inRedis/ImpressionsCacheInRedis.ts +1 -1
- package/src/storages/inRedis/RedisAdapter.ts +1 -1
- package/src/storages/inRedis/SegmentsCacheInRedis.ts +1 -1
- package/src/storages/inRedis/SplitsCacheInRedis.ts +1 -1
- package/src/storages/inRedis/TelemetryCacheInRedis.ts +1 -1
- package/src/storages/inRedis/index.ts +3 -2
- package/src/storages/pluggable/EventsCachePluggable.ts +4 -4
- package/src/storages/pluggable/ImpressionsCachePluggable.ts +1 -1
- package/src/storages/pluggable/SegmentsCachePluggable.ts +1 -1
- package/src/storages/pluggable/SplitsCachePluggable.ts +1 -1
- package/src/storages/pluggable/TelemetryCachePluggable.ts +1 -1
- package/src/storages/pluggable/index.ts +3 -3
- package/src/storages/pluggable/wrapperAdapter.ts +1 -1
- package/src/storages/types.ts +46 -35
- package/src/sync/offline/LocalhostFromObject.ts +4 -4
- package/src/sync/offline/splitsParser/splitsParserFromSettings.ts +8 -8
- 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/SSEHandler/index.ts +1 -1
- package/src/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.ts +1 -1
- package/src/sync/streaming/UpdateWorkers/SplitsUpdateWorker.ts +1 -1
- package/src/sync/submitters/submitter.ts +1 -1
- package/src/sync/submitters/submitterManager.ts +0 -2
- package/src/sync/submitters/types.ts +3 -22
- package/src/sync/syncTask.ts +1 -1
- package/src/trackers/eventTracker.ts +3 -3
- package/src/trackers/impressionsTracker.ts +37 -15
- package/src/trackers/types.ts +4 -34
- package/src/types.d.ts +1581 -0
- package/src/utils/constants/index.ts +1 -2
- package/src/utils/inputValidation/apiKey.ts +1 -1
- package/src/utils/inputValidation/attribute.ts +1 -1
- package/src/utils/inputValidation/attributes.ts +3 -3
- package/src/utils/inputValidation/event.ts +1 -1
- package/src/utils/inputValidation/eventProperties.ts +3 -3
- package/src/utils/inputValidation/eventValue.ts +1 -1
- package/src/utils/inputValidation/isOperational.ts +1 -1
- package/src/utils/inputValidation/key.ts +3 -3
- package/src/utils/inputValidation/preloadedData.ts +3 -3
- package/src/utils/inputValidation/split.ts +1 -1
- package/src/utils/inputValidation/splitExistance.ts +1 -1
- package/src/utils/inputValidation/splits.ts +1 -1
- package/src/utils/inputValidation/trafficType.ts +1 -1
- package/src/utils/inputValidation/trafficTypeExistance.ts +1 -1
- package/src/utils/key/index.ts +9 -9
- package/src/utils/settingsValidation/consent.ts +1 -2
- package/src/utils/settingsValidation/impressionsMode.ts +6 -6
- package/src/utils/settingsValidation/index.ts +1 -4
- package/src/utils/settingsValidation/integrations/common.ts +1 -1
- package/src/utils/settingsValidation/integrations/configurable.ts +1 -1
- package/src/utils/settingsValidation/integrations/pluggable.ts +1 -2
- package/src/utils/settingsValidation/localhost/builtin.ts +1 -2
- package/src/utils/settingsValidation/localhost/pluggable.ts +1 -2
- package/src/utils/settingsValidation/logger/builtinLogger.ts +1 -2
- package/src/utils/settingsValidation/logger/pluggableLogger.ts +1 -2
- package/src/utils/settingsValidation/splitFilters.ts +7 -9
- package/src/utils/settingsValidation/storage/storageCS.ts +1 -2
- package/cjs/sync/submitters/uniqueKeysSubmitter.js +0 -70
- package/cjs/trackers/strategy/strategyDebug.js +0 -25
- package/cjs/trackers/strategy/strategyNone.js +0 -29
- package/cjs/trackers/strategy/strategyOptimized.js +0 -34
- package/cjs/trackers/uniqueKeysTracker.js +0 -69
- package/cjs/types.js +0 -2
- package/esm/sync/submitters/uniqueKeysSubmitter.js +0 -64
- package/esm/trackers/strategy/strategyDebug.js +0 -21
- package/esm/trackers/strategy/strategyNone.js +0 -25
- package/esm/trackers/strategy/strategyOptimized.js +0 -30
- package/esm/trackers/uniqueKeysTracker.js +0 -65
- package/esm/types.js +0 -1
- package/src/sync/submitters/uniqueKeysSubmitter.ts +0 -79
- package/src/trackers/strategy/strategyDebug.ts +0 -28
- package/src/trackers/strategy/strategyNone.ts +0 -34
- package/src/trackers/strategy/strategyOptimized.ts +0 -42
- package/src/trackers/uniqueKeysTracker.ts +0 -80
- package/src/types.ts +0 -1264
- package/types/consent/index.d.ts +0 -2
- package/types/consent/sdkUserConsent.d.ts +0 -13
- package/types/dtos/types.d.ts +0 -172
- package/types/evaluator/Engine.d.ts +0 -15
- package/types/evaluator/combiners/and.d.ts +0 -4
- package/types/evaluator/combiners/ifelseif.d.ts +0 -3
- package/types/evaluator/condition/engineUtils.d.ts +0 -11
- package/types/evaluator/condition/index.d.ts +0 -6
- package/types/evaluator/convertions/index.d.ts +0 -2
- package/types/evaluator/index.d.ts +0 -7
- package/types/evaluator/matchers/all.d.ts +0 -2
- package/types/evaluator/matchers/between.d.ts +0 -3
- package/types/evaluator/matchers/boolean.d.ts +0 -2
- package/types/evaluator/matchers/cont_all.d.ts +0 -2
- package/types/evaluator/matchers/cont_any.d.ts +0 -2
- package/types/evaluator/matchers/cont_str.d.ts +0 -2
- package/types/evaluator/matchers/dependency.d.ts +0 -5
- package/types/evaluator/matchers/eq.d.ts +0 -2
- package/types/evaluator/matchers/eq_set.d.ts +0 -2
- package/types/evaluator/matchers/ew.d.ts +0 -2
- package/types/evaluator/matchers/gte.d.ts +0 -2
- package/types/evaluator/matchers/index.d.ts +0 -7
- package/types/evaluator/matchers/lte.d.ts +0 -2
- package/types/evaluator/matchers/matcherTypes.d.ts +0 -10
- package/types/evaluator/matchers/part_of.d.ts +0 -2
- package/types/evaluator/matchers/segment.d.ts +0 -6
- package/types/evaluator/matchers/string.d.ts +0 -2
- package/types/evaluator/matchers/sw.d.ts +0 -2
- package/types/evaluator/matchers/whitelist.d.ts +0 -3
- package/types/evaluator/matchersTransform/index.d.ts +0 -6
- package/types/evaluator/matchersTransform/segment.d.ts +0 -5
- package/types/evaluator/matchersTransform/set.d.ts +0 -5
- package/types/evaluator/matchersTransform/unaryNumeric.d.ts +0 -5
- package/types/evaluator/matchersTransform/whitelist.d.ts +0 -5
- package/types/evaluator/parser/index.d.ts +0 -5
- package/types/evaluator/treatments/index.d.ts +0 -8
- package/types/evaluator/types.d.ts +0 -28
- package/types/evaluator/value/index.d.ts +0 -7
- package/types/evaluator/value/sanitize.d.ts +0 -7
- package/types/index.d.ts +0 -5
- package/types/integrations/browser.d.ts +0 -12
- package/types/integrations/ga/GaToSplit.d.ts +0 -40
- package/types/integrations/ga/GoogleAnalyticsToSplit.d.ts +0 -3
- package/types/integrations/ga/SplitToGa.d.ts +0 -34
- package/types/integrations/ga/SplitToGoogleAnalytics.d.ts +0 -3
- package/types/integrations/ga/types.d.ts +0 -148
- package/types/integrations/pluggable.d.ts +0 -11
- package/types/integrations/types.d.ts +0 -17
- package/types/listeners/browser.d.ts +0 -40
- package/types/listeners/node.d.ts +0 -22
- package/types/listeners/types.d.ts +0 -4
- package/types/logger/browser/DebugLogger.d.ts +0 -2
- package/types/logger/browser/ErrorLogger.d.ts +0 -2
- package/types/logger/browser/InfoLogger.d.ts +0 -2
- package/types/logger/browser/WarnLogger.d.ts +0 -2
- package/types/logger/constants.d.ts +0 -142
- package/types/logger/index.d.ts +0 -22
- package/types/logger/messages/debug.d.ts +0 -1
- package/types/logger/messages/error.d.ts +0 -1
- package/types/logger/messages/info.d.ts +0 -1
- package/types/logger/messages/warn.d.ts +0 -1
- package/types/logger/sdkLogger.d.ts +0 -8
- package/types/logger/types.d.ts +0 -17
- package/types/readiness/constants.d.ts +0 -7
- package/types/readiness/readinessManager.d.ts +0 -6
- package/types/readiness/sdkReadinessManager.d.ts +0 -11
- package/types/readiness/types.d.ts +0 -60
- package/types/sdkClient/client.d.ts +0 -6
- package/types/sdkClient/clientAttributesDecoration.d.ts +0 -51
- package/types/sdkClient/clientCS.d.ts +0 -10
- package/types/sdkClient/clientInputValidation.d.ts +0 -7
- package/types/sdkClient/sdkClient.d.ts +0 -6
- package/types/sdkClient/sdkClientMethod.d.ts +0 -6
- package/types/sdkClient/sdkClientMethodCS.d.ts +0 -7
- package/types/sdkClient/sdkClientMethodCSWithTT.d.ts +0 -8
- package/types/sdkClient/types.d.ts +0 -18
- package/types/sdkFactory/index.d.ts +0 -6
- package/types/sdkFactory/types.d.ts +0 -82
- package/types/sdkManager/index.d.ts +0 -5
- package/types/services/splitApi.d.ts +0 -11
- package/types/services/splitHttpClient.d.ts +0 -10
- package/types/services/types.d.ts +0 -54
- package/types/storages/AbstractSegmentsCacheSync.d.ts +0 -55
- package/types/storages/AbstractSplitsCacheAsync.d.ts +0 -36
- package/types/storages/AbstractSplitsCacheSync.d.ts +0 -42
- package/types/storages/KeyBuilder.d.ts +0 -14
- package/types/storages/KeyBuilderCS.d.ts +0 -16
- package/types/storages/KeyBuilderSS.d.ts +0 -15
- package/types/storages/dataLoader.d.ts +0 -10
- package/types/storages/findLatencyIndex.d.ts +0 -7
- package/types/storages/inLocalStorage/MySegmentsCacheInLocal.d.ts +0 -25
- package/types/storages/inLocalStorage/SplitsCacheInLocal.d.ts +0 -51
- package/types/storages/inLocalStorage/constants.d.ts +0 -2
- package/types/storages/inLocalStorage/index.d.ts +0 -8
- package/types/storages/inMemory/AttributesCacheInMemory.d.ts +0 -43
- package/types/storages/inMemory/CountsCacheInMemory.d.ts +0 -20
- package/types/storages/inMemory/EventsCacheInMemory.d.ts +0 -35
- package/types/storages/inMemory/ImpressionCountsCacheInMemory.d.ts +0 -24
- package/types/storages/inMemory/ImpressionsCacheInMemory.d.ts +0 -30
- package/types/storages/inMemory/InMemoryStorage.d.ts +0 -10
- package/types/storages/inMemory/InMemoryStorageCS.d.ts +0 -10
- package/types/storages/inMemory/LatenciesCacheInMemory.d.ts +0 -20
- package/types/storages/inMemory/MySegmentsCacheInMemory.d.ts +0 -22
- package/types/storages/inMemory/SegmentsCacheInMemory.d.ts +0 -19
- package/types/storages/inMemory/SplitsCacheInMemory.d.ts +0 -20
- package/types/storages/inMemory/TelemetryCacheInMemory.d.ts +0 -53
- package/types/storages/inRedis/CountsCacheInRedis.d.ts +0 -9
- package/types/storages/inRedis/EventsCacheInRedis.d.ts +0 -32
- package/types/storages/inRedis/ImpressionsCacheInRedis.d.ts +0 -18
- package/types/storages/inRedis/LatenciesCacheInRedis.d.ts +0 -9
- package/types/storages/inRedis/RedisAdapter.d.ts +0 -24
- package/types/storages/inRedis/SegmentsCacheInRedis.d.ts +0 -18
- package/types/storages/inRedis/SplitsCacheInRedis.d.ts +0 -91
- package/types/storages/inRedis/TelemetryCacheInRedis.d.ts +0 -20
- package/types/storages/inRedis/constants.d.ts +0 -1
- package/types/storages/inRedis/index.d.ts +0 -10
- package/types/storages/metadataBuilder.d.ts +0 -3
- package/types/storages/pluggable/EventsCachePluggable.d.ts +0 -38
- package/types/storages/pluggable/ImpressionsCachePluggable.d.ts +0 -35
- package/types/storages/pluggable/SegmentsCachePluggable.d.ts +0 -54
- package/types/storages/pluggable/SplitsCachePluggable.d.ts +0 -89
- package/types/storages/pluggable/TelemetryCachePluggable.d.ts +0 -18
- package/types/storages/pluggable/constants.d.ts +0 -1
- package/types/storages/pluggable/inMemoryWrapper.d.ts +0 -13
- package/types/storages/pluggable/index.d.ts +0 -9
- package/types/storages/pluggable/wrapperAdapter.d.ts +0 -12
- package/types/storages/types.d.ts +0 -417
- package/types/sync/offline/LocalhostFromFile.d.ts +0 -2
- package/types/sync/offline/LocalhostFromObject.d.ts +0 -2
- package/types/sync/offline/splitsParser/parseCondition.d.ts +0 -7
- package/types/sync/offline/splitsParser/splitsParserFromFile.d.ts +0 -2
- package/types/sync/offline/splitsParser/splitsParserFromSettings.d.ts +0 -3
- package/types/sync/offline/splitsParser/types.d.ts +0 -3
- package/types/sync/offline/syncManagerOffline.d.ts +0 -10
- package/types/sync/offline/syncTasks/fromObjectSyncTask.d.ts +0 -17
- package/types/sync/polling/fetchers/mySegmentsFetcher.d.ts +0 -7
- package/types/sync/polling/fetchers/segmentChangesFetcher.d.ts +0 -7
- package/types/sync/polling/fetchers/splitChangesFetcher.d.ts +0 -7
- package/types/sync/polling/fetchers/types.d.ts +0 -5
- package/types/sync/polling/pollingManagerCS.d.ts +0 -7
- package/types/sync/polling/pollingManagerSS.d.ts +0 -6
- package/types/sync/polling/syncTasks/mySegmentsSyncTask.d.ts +0 -9
- package/types/sync/polling/syncTasks/segmentsSyncTask.d.ts +0 -9
- package/types/sync/polling/syncTasks/splitsSyncTask.d.ts +0 -9
- package/types/sync/polling/types.d.ts +0 -26
- package/types/sync/polling/updaters/mySegmentsUpdater.d.ts +0 -13
- package/types/sync/polling/updaters/segmentChangesUpdater.d.ts +0 -18
- package/types/sync/polling/updaters/splitChangesUpdater.d.ts +0 -39
- package/types/sync/streaming/AuthClient/index.d.ts +0 -12
- package/types/sync/streaming/AuthClient/types.d.ts +0 -17
- package/types/sync/streaming/SSEClient/index.d.ts +0 -34
- package/types/sync/streaming/SSEClient/types.d.ts +0 -11
- package/types/sync/streaming/SSEHandler/NotificationKeeper.d.ts +0 -14
- package/types/sync/streaming/SSEHandler/NotificationParser.d.ts +0 -20
- package/types/sync/streaming/SSEHandler/index.d.ts +0 -11
- package/types/sync/streaming/SSEHandler/types.d.ts +0 -67
- package/types/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.d.ts +0 -6
- package/types/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.d.ts +0 -8
- package/types/sync/streaming/UpdateWorkers/SplitsUpdateWorker.d.ts +0 -12
- package/types/sync/streaming/UpdateWorkers/constants.d.ts +0 -3
- package/types/sync/streaming/UpdateWorkers/types.d.ts +0 -4
- package/types/sync/streaming/constants.d.ts +0 -34
- package/types/sync/streaming/mySegmentsV2utils.d.ts +0 -27
- package/types/sync/streaming/pushManager.d.ts +0 -9
- package/types/sync/streaming/types.d.ts +0 -35
- package/types/sync/submitters/eventsSubmitter.d.ts +0 -5
- package/types/sync/submitters/eventsSyncTask.d.ts +0 -8
- package/types/sync/submitters/impressionCountsSubmitter.d.ts +0 -10
- package/types/sync/submitters/impressionCountsSyncTask.d.ts +0 -13
- package/types/sync/submitters/impressionsSubmitter.d.ts +0 -11
- package/types/sync/submitters/impressionsSyncTask.d.ts +0 -14
- package/types/sync/submitters/metricsSyncTask.d.ts +0 -12
- package/types/sync/submitters/submitter.d.ts +0 -12
- package/types/sync/submitters/submitterManager.d.ts +0 -3
- package/types/sync/submitters/submitterSyncTask.d.ts +0 -10
- package/types/sync/submitters/telemetrySubmitter.d.ts +0 -25
- package/types/sync/submitters/types.d.ts +0 -194
- package/types/sync/submitters/uniqueKeysSubmitter.d.ts +0 -19
- package/types/sync/syncManagerOnline.d.ts +0 -13
- package/types/sync/syncTask.d.ts +0 -13
- package/types/sync/syncTaskComposite.d.ts +0 -5
- package/types/sync/types.d.ts +0 -43
- package/types/trackers/eventTracker.d.ts +0 -10
- package/types/trackers/filter/bloomFilter.d.ts +0 -10
- package/types/trackers/filter/dictionaryFilter.d.ts +0 -8
- package/types/trackers/filter/types.d.ts +0 -5
- package/types/trackers/impressionObserver/ImpressionObserver.d.ts +0 -8
- package/types/trackers/impressionObserver/buildKey.d.ts +0 -2
- package/types/trackers/impressionObserver/impressionObserverCS.d.ts +0 -4
- package/types/trackers/impressionObserver/impressionObserverSS.d.ts +0 -4
- package/types/trackers/impressionObserver/types.d.ts +0 -4
- package/types/trackers/impressionObserver/utils.d.ts +0 -13
- package/types/trackers/impressionsTracker.d.ts +0 -13
- package/types/trackers/strategy/strategyDebug.d.ts +0 -9
- package/types/trackers/strategy/strategyNone.d.ts +0 -10
- package/types/trackers/strategy/strategyOptimized.d.ts +0 -11
- package/types/trackers/telemetryTracker.d.ts +0 -3
- package/types/trackers/types.d.ts +0 -65
- package/types/trackers/uniqueKeysTracker.d.ts +0 -13
- package/types/types.d.ts +0 -1262
- package/types/utils/Backoff.d.ts +0 -25
- package/types/utils/LRUCache/LinkedList.d.ts +0 -34
- package/types/utils/LRUCache/index.d.ts +0 -16
- package/types/utils/MinEventEmitter.d.ts +0 -12
- package/types/utils/MinEvents.d.ts +0 -4
- package/types/utils/base64/index.d.ts +0 -30
- package/types/utils/constants/browser.d.ts +0 -3
- package/types/utils/constants/index.d.ts +0 -63
- package/types/utils/decompress/index.d.ts +0 -16
- package/types/utils/env/isLocalStorageAvailable.d.ts +0 -1
- package/types/utils/env/isNode.d.ts +0 -5
- package/types/utils/inputValidation/apiKey.d.ts +0 -7
- package/types/utils/inputValidation/attribute.d.ts +0 -2
- package/types/utils/inputValidation/attributes.d.ts +0 -4
- package/types/utils/inputValidation/event.d.ts +0 -2
- package/types/utils/inputValidation/eventProperties.d.ts +0 -6
- package/types/utils/inputValidation/eventValue.d.ts +0 -2
- package/types/utils/inputValidation/index.d.ts +0 -13
- package/types/utils/inputValidation/isOperational.d.ts +0 -4
- package/types/utils/inputValidation/key.d.ts +0 -3
- package/types/utils/inputValidation/preloadedData.d.ts +0 -3
- package/types/utils/inputValidation/split.d.ts +0 -2
- package/types/utils/inputValidation/splitExistance.d.ts +0 -7
- package/types/utils/inputValidation/splits.d.ts +0 -2
- package/types/utils/inputValidation/trafficType.d.ts +0 -2
- package/types/utils/inputValidation/trafficTypeExistance.d.ts +0 -9
- package/types/utils/jwt/index.d.ts +0 -5
- package/types/utils/jwt/types.d.ts +0 -5
- package/types/utils/key/index.d.ts +0 -8
- package/types/utils/labels/index.d.ts +0 -7
- package/types/utils/lang/binarySearch.d.ts +0 -9
- package/types/utils/lang/getFnName.d.ts +0 -4
- package/types/utils/lang/getGlobal.d.ts +0 -4
- package/types/utils/lang/index.d.ts +0 -105
- package/types/utils/lang/maps.d.ts +0 -55
- package/types/utils/lang/objectAssign.d.ts +0 -3
- package/types/utils/lang/sets.d.ts +0 -60
- package/types/utils/murmur3/common.d.ts +0 -12
- package/types/utils/murmur3/legacy.d.ts +0 -2
- package/types/utils/murmur3/murmur3.d.ts +0 -2
- package/types/utils/murmur3/murmur3_128.d.ts +0 -6
- package/types/utils/murmur3/murmur3_128_x86.d.ts +0 -7
- package/types/utils/murmur3/murmur3_64.d.ts +0 -10
- package/types/utils/murmur3/utfx.d.ts +0 -27
- package/types/utils/promise/thenable.d.ts +0 -1
- package/types/utils/promise/timeout.d.ts +0 -1
- package/types/utils/promise/wrapper.d.ts +0 -21
- package/types/utils/settingsValidation/consent.d.ts +0 -6
- package/types/utils/settingsValidation/impressionsMode.d.ts +0 -3
- package/types/utils/settingsValidation/index.d.ts +0 -52
- package/types/utils/settingsValidation/integrations/common.d.ts +0 -14
- package/types/utils/settingsValidation/integrations/configurable.d.ts +0 -13
- package/types/utils/settingsValidation/integrations/pluggable.d.ts +0 -13
- package/types/utils/settingsValidation/localhost/builtin.d.ts +0 -16
- package/types/utils/settingsValidation/localhost/pluggable.d.ts +0 -16
- package/types/utils/settingsValidation/logger/builtinLogger.d.ts +0 -10
- package/types/utils/settingsValidation/logger/commons.d.ts +0 -9
- package/types/utils/settingsValidation/logger/pluggableLogger.d.ts +0 -11
- package/types/utils/settingsValidation/mode.d.ts +0 -1
- package/types/utils/settingsValidation/runtime.d.ts +0 -2
- package/types/utils/settingsValidation/splitFilters.d.ts +0 -16
- package/types/utils/settingsValidation/storage/storageCS.d.ts +0 -21
- package/types/utils/settingsValidation/types.d.ts +0 -32
- package/types/utils/settingsValidation/url.d.ts +0 -10
- package/types/utils/time/index.d.ts +0 -4
- package/types/utils/timeTracker/index.d.ts +0 -70
- package/types/utils/timeTracker/now/browser.d.ts +0 -1
- package/types/utils/timeTracker/now/node.d.ts +0 -1
- package/types/utils/timeTracker/timer.d.ts +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { StorageType } from '../../
|
|
1
|
+
import { StorageType } from '../../types';
|
|
2
2
|
import { SDKMode } from '../../types';
|
|
3
3
|
|
|
4
4
|
// Special treatments
|
|
@@ -19,7 +19,6 @@ export const SPLIT_EVENT = 'EVENT';
|
|
|
19
19
|
// Impression collection modes
|
|
20
20
|
export const DEBUG = 'DEBUG';
|
|
21
21
|
export const OPTIMIZED = 'OPTIMIZED';
|
|
22
|
-
export const NONE = 'NONE';
|
|
23
22
|
|
|
24
23
|
// SDK Modes
|
|
25
24
|
export const LOCALHOST_MODE: SDKMode = 'localhost';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ERROR_NULL, ERROR_EMPTY, ERROR_INVALID, WARN_API_KEY, LOG_PREFIX_INSTANTIATION } from '../../logger/constants';
|
|
2
|
-
import { ILogger } from '../../
|
|
2
|
+
import { ILogger } from '../../types';
|
|
3
3
|
import { isString } from '../lang';
|
|
4
4
|
|
|
5
5
|
const item = 'api_key';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isString, isFiniteNumber, isBoolean } from '../../utils/lang';
|
|
2
|
-
import { ILogger } from '../../
|
|
2
|
+
import { ILogger } from '../../types';
|
|
3
3
|
|
|
4
4
|
export function validateAttribute(log: ILogger, attributeKey: string, attributeValue: Object, method: string): boolean {
|
|
5
5
|
if (!isString(attributeKey) || attributeKey.length === 0) {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { isObject } from '../lang';
|
|
2
|
-
import {
|
|
3
|
-
import { ILogger } from '../../
|
|
2
|
+
import { Attributes } from '../../types';
|
|
3
|
+
import { ILogger } from '../../types';
|
|
4
4
|
import { validateAttribute } from './attribute';
|
|
5
5
|
import { ERROR_NOT_PLAIN_OBJECT } from '../../logger/constants';
|
|
6
6
|
|
|
7
|
-
export function validateAttributes(log: ILogger, maybeAttrs: any, method: string):
|
|
7
|
+
export function validateAttributes(log: ILogger, maybeAttrs: any, method: string): Attributes | undefined | false {
|
|
8
8
|
// Attributes are optional
|
|
9
9
|
if (maybeAttrs == undefined || isObject(maybeAttrs)) // eslint-disable-line eqeqeq
|
|
10
10
|
return maybeAttrs;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ERROR_EVENT_TYPE_FORMAT, ERROR_NULL, ERROR_INVALID, ERROR_EMPTY } from '../../logger/constants';
|
|
2
|
-
import { ILogger } from '../../
|
|
2
|
+
import { ILogger } from '../../types';
|
|
3
3
|
import { isString } from '../lang';
|
|
4
4
|
|
|
5
5
|
const EVENT_TYPE_REGEX = /^[a-zA-Z0-9][-_.:a-zA-Z0-9]{0,79}$/;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isObject, isString, isFiniteNumber, isBoolean } from '../lang';
|
|
2
2
|
import { objectAssign } from '../lang/objectAssign';
|
|
3
|
-
import {
|
|
4
|
-
import { ILogger } from '../../
|
|
3
|
+
import { Properties } from '../../types';
|
|
4
|
+
import { ILogger } from '../../types';
|
|
5
5
|
import { ERROR_NOT_PLAIN_OBJECT, ERROR_SIZE_EXCEEDED, WARN_SETTING_NULL, WARN_TRIMMING_PROPERTIES } from '../../logger/constants';
|
|
6
6
|
|
|
7
7
|
const ECMA_SIZES = {
|
|
@@ -14,7 +14,7 @@ const MAX_PROPERTIES_AMOUNT = 300;
|
|
|
14
14
|
const MAX_EVENT_SIZE = 1024 * 32;
|
|
15
15
|
const BASE_EVENT_SIZE = 1024; // We assume 1kb events without properties (avg measured)
|
|
16
16
|
|
|
17
|
-
export function validateEventProperties(log: ILogger, maybeProperties: any, method: string): { properties:
|
|
17
|
+
export function validateEventProperties(log: ILogger, maybeProperties: any, method: string): { properties: Properties | null | false, size: number } {
|
|
18
18
|
if (maybeProperties == undefined) return { properties: null, size: BASE_EVENT_SIZE }; // eslint-disable-line eqeqeq
|
|
19
19
|
|
|
20
20
|
if (!isObject(maybeProperties)) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ERROR_NOT_FINITE } from '../../logger/constants';
|
|
2
|
-
import { ILogger } from '../../
|
|
2
|
+
import { ILogger } from '../../types';
|
|
3
3
|
import { isFiniteNumber } from '../lang';
|
|
4
4
|
|
|
5
5
|
export function validateEventValue(log: ILogger, maybeValue: any, method: string): number | false {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ERROR_CLIENT_DESTROYED, CLIENT_NOT_READY } from '../../logger/constants';
|
|
2
|
-
import { ILogger } from '../../
|
|
2
|
+
import { ILogger } from '../../types';
|
|
3
3
|
import { IReadinessManager } from '../../readiness/types';
|
|
4
4
|
|
|
5
5
|
export function validateIfNotDestroyed(log: ILogger, readinessManager: IReadinessManager, method: string): boolean {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isObject, isString, isFiniteNumber, toString } from '../lang';
|
|
2
|
-
import {
|
|
3
|
-
import { ILogger } from '../../
|
|
2
|
+
import { SplitKey } from '../../types';
|
|
3
|
+
import { ILogger } from '../../types';
|
|
4
4
|
import { ERROR_NULL, WARN_CONVERTING, ERROR_EMPTY, ERROR_TOO_LONG, ERROR_INVALID, ERROR_INVALID_KEY_OBJECT } from '../../logger/constants';
|
|
5
5
|
|
|
6
6
|
const KEY_MAX_LENGTH = 250;
|
|
@@ -33,7 +33,7 @@ function validateKeyValue(log: ILogger, maybeKey: any, method: string, type: str
|
|
|
33
33
|
return false;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
export function validateKey(log: ILogger, maybeKey: any, method: string):
|
|
36
|
+
export function validateKey(log: ILogger, maybeKey: any, method: string): SplitKey | false {
|
|
37
37
|
if (isObject(maybeKey)) {
|
|
38
38
|
// Validate key object
|
|
39
39
|
const matchingKey = validateKeyValue(log, maybeKey.matchingKey, method, 'matchingKey');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isObject, isString, isFiniteNumber } from '../lang';
|
|
2
2
|
import { validateSplit } from './split';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { ILogger } from '../../types';
|
|
4
|
+
import { PreloadedData } from '../../storages/types';
|
|
5
5
|
|
|
6
6
|
function validateTimestampData(log: ILogger, maybeTimestamp: any, method: string, item: string) {
|
|
7
7
|
if (isFiniteNumber(maybeTimestamp) && maybeTimestamp > -1) return true;
|
|
@@ -42,7 +42,7 @@ function validateSegmentsData(log: ILogger, maybeSegmentsData: any, method: stri
|
|
|
42
42
|
return false;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
export function validatePreloadedData(log: ILogger, maybePreloadedData: any, method: string): maybePreloadedData is
|
|
45
|
+
export function validatePreloadedData(log: ILogger, maybePreloadedData: any, method: string): maybePreloadedData is PreloadedData {
|
|
46
46
|
if (!isObject(maybePreloadedData)) {
|
|
47
47
|
log.error(`${method}: preloadedData must be an object.`);
|
|
48
48
|
} else if (
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SPLIT_NOT_FOUND } from '../labels';
|
|
2
2
|
import { IReadinessManager } from '../../readiness/types';
|
|
3
|
-
import { ILogger } from '../../
|
|
3
|
+
import { ILogger } from '../../types';
|
|
4
4
|
import { WARN_NOT_EXISTENT_SPLIT } from '../../logger/constants';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ERROR_NULL, ERROR_INVALID, ERROR_EMPTY, WARN_LOWERCASE_TRAFFIC_TYPE } from '../../logger/constants';
|
|
2
|
-
import { ILogger } from '../../
|
|
2
|
+
import { ILogger } from '../../types';
|
|
3
3
|
import { isString } from '../lang';
|
|
4
4
|
|
|
5
5
|
const CAPITAL_LETTERS_REGEX = /[A-Z]/;
|
|
@@ -4,7 +4,7 @@ import { ISplitsCacheBase } from '../../storages/types';
|
|
|
4
4
|
import { IReadinessManager } from '../../readiness/types';
|
|
5
5
|
import { SDKMode } from '../../types';
|
|
6
6
|
import { MaybeThenable } from '../../dtos/types';
|
|
7
|
-
import { ILogger } from '../../
|
|
7
|
+
import { ILogger } from '../../types';
|
|
8
8
|
import { WARN_NOT_EXISTENT_TT } from '../../logger/constants';
|
|
9
9
|
|
|
10
10
|
function logTTExistanceWarning(log: ILogger, maybeTT: string, method: string) {
|
package/src/utils/key/index.ts
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SplitKey, SplitKeyObject } from '../../types';
|
|
2
2
|
import { isObject } from '../lang';
|
|
3
3
|
|
|
4
|
-
// function isSplitKeyObject(key: any): key is
|
|
4
|
+
// function isSplitKeyObject(key: any): key is SplitKeyObject {
|
|
5
5
|
// return key !== undefined && key !== null && typeof key.matchingKey === 'string';
|
|
6
6
|
// }
|
|
7
7
|
|
|
8
8
|
// returns the matchingKey if the Key is defined as an object or the key itself if it is a string
|
|
9
|
-
export function getMatching(key
|
|
10
|
-
return isObject(key) ? (key as
|
|
9
|
+
export function getMatching(key?: SplitKey): string {
|
|
10
|
+
return isObject(key) ? (key as SplitKeyObject).matchingKey : key as string;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
// if the key is a string, there's no bucketingKey (undefined)
|
|
14
|
-
export function getBucketing(key:
|
|
15
|
-
return isObject(key) ? (key as
|
|
14
|
+
export function getBucketing(key: SplitKey): string | undefined {
|
|
15
|
+
return isObject(key) ? (key as SplitKeyObject).bucketingKey : undefined;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* Verify type of key and return a valid object key used for get treatment for a
|
|
20
20
|
* specific split.
|
|
21
21
|
*/
|
|
22
|
-
export function keyParser(key:
|
|
22
|
+
export function keyParser(key: SplitKey): SplitKeyObject {
|
|
23
23
|
if (isObject(key)) {
|
|
24
24
|
return {
|
|
25
|
-
matchingKey: (key as
|
|
26
|
-
bucketingKey: (key as
|
|
25
|
+
matchingKey: (key as SplitKeyObject).matchingKey,
|
|
26
|
+
bucketingKey: (key as SplitKeyObject).bucketingKey
|
|
27
27
|
};
|
|
28
28
|
} else {
|
|
29
29
|
return {
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ERROR_INVALID_CONFIG_PARAM } from '../../logger/constants';
|
|
2
|
-
import { ILogger } from '../../
|
|
3
|
-
import { ConsentStatus } from '../../types';
|
|
2
|
+
import { ConsentStatus, ILogger } from '../../types';
|
|
4
3
|
import { CONSENT_DECLINED, CONSENT_GRANTED, CONSENT_UNKNOWN } from '../constants';
|
|
5
4
|
import { stringToUpperCase } from '../lang';
|
|
6
5
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { ERROR_INVALID_CONFIG_PARAM } from '../../logger/constants';
|
|
2
|
-
import { ILogger } from '../../
|
|
3
|
-
import {
|
|
4
|
-
import { DEBUG, OPTIMIZED
|
|
2
|
+
import { ILogger } from '../../types';
|
|
3
|
+
import { ImpressionsMode } from '../../types';
|
|
4
|
+
import { DEBUG, OPTIMIZED } from '../constants';
|
|
5
5
|
import { stringToUpperCase } from '../lang';
|
|
6
6
|
|
|
7
|
-
export function validImpressionsMode(log: ILogger, impressionsMode: any):
|
|
7
|
+
export function validImpressionsMode(log: ILogger, impressionsMode: any): ImpressionsMode {
|
|
8
8
|
impressionsMode = stringToUpperCase(impressionsMode);
|
|
9
9
|
|
|
10
|
-
if ([DEBUG, OPTIMIZED
|
|
10
|
+
if ([DEBUG, OPTIMIZED].indexOf(impressionsMode) > -1) return impressionsMode;
|
|
11
11
|
|
|
12
|
-
log.error(ERROR_INVALID_CONFIG_PARAM, ['impressionsMode', [DEBUG, OPTIMIZED
|
|
12
|
+
log.error(ERROR_INVALID_CONFIG_PARAM, ['impressionsMode', [DEBUG, OPTIMIZED], OPTIMIZED]);
|
|
13
13
|
return OPTIMIZED;
|
|
14
14
|
}
|
|
@@ -36,8 +36,6 @@ export const base = {
|
|
|
36
36
|
telemetryRefreshRate: 3600,
|
|
37
37
|
// publish evaluations each 300 sec (default value for OPTIMIZED impressions mode)
|
|
38
38
|
impressionsRefreshRate: 300,
|
|
39
|
-
// publish unique Keys each 900 sec (15 min)
|
|
40
|
-
uniqueKeysRefreshRate: 900,
|
|
41
39
|
// fetch offline changes each 15 sec
|
|
42
40
|
offlineRefreshRate: 15,
|
|
43
41
|
// publish events every 60 seconds after the first flush
|
|
@@ -132,13 +130,11 @@ export function settingsValidation(config: unknown, validationParams: ISettingsV
|
|
|
132
130
|
scheduler.segmentsRefreshRate = fromSecondsToMillis(scheduler.segmentsRefreshRate);
|
|
133
131
|
scheduler.offlineRefreshRate = fromSecondsToMillis(scheduler.offlineRefreshRate);
|
|
134
132
|
scheduler.eventsPushRate = fromSecondsToMillis(scheduler.eventsPushRate);
|
|
135
|
-
scheduler.uniqueKeysRefreshRate = fromSecondsToMillis(scheduler.uniqueKeysRefreshRate);
|
|
136
133
|
scheduler.telemetryRefreshRate = fromSecondsToMillis(validateMinValue('telemetryRefreshRate', scheduler.telemetryRefreshRate, 60));
|
|
137
134
|
|
|
138
135
|
// Default impressionsRefreshRate for DEBUG mode is 60 secs
|
|
139
136
|
if (get(config, 'scheduler.impressionsRefreshRate') === undefined && withDefaults.sync.impressionsMode === DEBUG) scheduler.impressionsRefreshRate = 60;
|
|
140
137
|
scheduler.impressionsRefreshRate = fromSecondsToMillis(scheduler.impressionsRefreshRate);
|
|
141
|
-
|
|
142
138
|
|
|
143
139
|
// Log deprecation for old telemetry param
|
|
144
140
|
if (scheduler.metricsRefreshRate) log.warn('`metricsRefreshRate` will be deprecated soon. For configuring telemetry rates, update `telemetryRefreshRate` value in configs');
|
|
@@ -204,6 +200,7 @@ export function settingsValidation(config: unknown, validationParams: ISettingsV
|
|
|
204
200
|
// validate the `splitFilters` settings and parse splits query
|
|
205
201
|
const splitFiltersValidation = validateSplitFilters(log, withDefaults.sync.splitFilters, withDefaults.mode);
|
|
206
202
|
withDefaults.sync.splitFilters = splitFiltersValidation.validFilters;
|
|
203
|
+
// @ts-ignore
|
|
207
204
|
withDefaults.sync.__splitFiltersValidation = splitFiltersValidation;
|
|
208
205
|
|
|
209
206
|
// ensure a valid user consent value
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { validateIntegrations } from './common';
|
|
2
2
|
import { isString } from '../../lang';
|
|
3
|
-
import { ILogger } from '../../../
|
|
3
|
+
import { ILogger } from '../../../types';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* This function validates `settings.integrations` object that consists of a list of configuration items, used by the isomorphic JS SDK.
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { ISettings } from '../../../types';
|
|
1
|
+
import { ISettings, ILogger } from '../../../types';
|
|
2
2
|
import { validateIntegrations } from './common';
|
|
3
|
-
import { ILogger } from '../../../logger/types';
|
|
4
3
|
|
|
5
4
|
/**
|
|
6
5
|
* This function validates `settings.integrations` object that consists of a list of pluggable integration factories.
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { ILogger } from '../../../
|
|
2
|
-
import { SDKMode, } from '../../../types';
|
|
1
|
+
import { SDKMode, ILogger } from '../../../types';
|
|
3
2
|
import { LocalhostFromObject } from '../../../sync/offline/LocalhostFromObject';
|
|
4
3
|
import { validateLocalhost } from './pluggable';
|
|
5
4
|
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ERROR_LOCALHOST_MODULE_REQUIRED } from '../../../logger/constants';
|
|
2
|
-
import { ILogger } from '../../../
|
|
3
|
-
import { SDKMode, } from '../../../types';
|
|
2
|
+
import { SDKMode, ILogger } from '../../../types';
|
|
4
3
|
import { LOCALHOST_MODE } from '../../constants';
|
|
5
4
|
|
|
6
5
|
/**
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { isLogLevelString, Logger, LogLevels } from '../../../logger';
|
|
2
|
-
import { ILogger } from '../../../logger/types';
|
|
3
2
|
import { isLocalStorageAvailable } from '../../env/isLocalStorageAvailable';
|
|
4
3
|
import { isNode } from '../../env/isNode';
|
|
5
4
|
import { codesDebug } from '../../../logger/messages/debug';
|
|
6
5
|
import { _Map } from '../../lang/maps';
|
|
7
6
|
import { getLogLevel } from './commons';
|
|
8
|
-
import { LogLevel } from '../../../types';
|
|
7
|
+
import { LogLevel, ILogger } from '../../../types';
|
|
9
8
|
|
|
10
9
|
const allCodes = new _Map(codesDebug);
|
|
11
10
|
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Logger, LogLevels } from '../../../logger';
|
|
2
|
-
import { ILogger } from '../../../
|
|
3
|
-
import { LogLevel } from '../../../types';
|
|
2
|
+
import { LogLevel, ILogger } from '../../../types';
|
|
4
3
|
import { getLogLevel } from './commons';
|
|
5
4
|
|
|
6
5
|
function isLogger(log: any): log is ILogger {
|
|
@@ -1,20 +1,18 @@
|
|
|
1
1
|
import { STANDALONE_MODE } from '../constants';
|
|
2
2
|
import { validateSplits } from '../inputValidation/splits';
|
|
3
|
-
import { ISplitFiltersValidation } from '../../
|
|
4
|
-
import { SplitIO } from '../../types';
|
|
5
|
-
import { ILogger } from '../../logger/types';
|
|
3
|
+
import { ISplitFiltersValidation, SplitFilterType, ILogger } from '../../types';
|
|
6
4
|
import { WARN_SPLITS_FILTER_IGNORED, WARN_SPLITS_FILTER_EMPTY, WARN_SPLITS_FILTER_INVALID, SETTINGS_SPLITS_FILTER, LOG_PREFIX_SETTINGS } from '../../logger/constants';
|
|
7
5
|
|
|
8
6
|
// Split filters metadata.
|
|
9
7
|
// Ordered according to their precedency when forming the filter query string: `&names=<values>&prefixes=<values>`
|
|
10
8
|
const FILTERS_METADATA = [
|
|
11
9
|
{
|
|
12
|
-
type: 'byName' as
|
|
10
|
+
type: 'byName' as SplitFilterType,
|
|
13
11
|
maxLength: 400,
|
|
14
12
|
queryParam: 'names='
|
|
15
13
|
},
|
|
16
14
|
{
|
|
17
|
-
type: 'byPrefix' as
|
|
15
|
+
type: 'byPrefix' as SplitFilterType,
|
|
18
16
|
maxLength: 50,
|
|
19
17
|
queryParam: 'prefixes='
|
|
20
18
|
}
|
|
@@ -23,7 +21,7 @@ const FILTERS_METADATA = [
|
|
|
23
21
|
/**
|
|
24
22
|
* Validates that the given value is a valid filter type
|
|
25
23
|
*/
|
|
26
|
-
function validateFilterType(maybeFilterType: any): maybeFilterType is
|
|
24
|
+
function validateFilterType(maybeFilterType: any): maybeFilterType is SplitFilterType {
|
|
27
25
|
return FILTERS_METADATA.some(filterMetadata => filterMetadata.type === maybeFilterType);
|
|
28
26
|
}
|
|
29
27
|
|
|
@@ -37,7 +35,7 @@ function validateFilterType(maybeFilterType: any): maybeFilterType is SplitIO.Sp
|
|
|
37
35
|
*
|
|
38
36
|
* @throws Error if the sanitized list exceeds the length indicated by `maxLength`
|
|
39
37
|
*/
|
|
40
|
-
function validateSplitFilter(log: ILogger, type:
|
|
38
|
+
function validateSplitFilter(log: ILogger, type: SplitFilterType, values: string[], maxLength: number) {
|
|
41
39
|
// validate and remove invalid and duplicated values
|
|
42
40
|
let result = validateSplits(log, values, LOG_PREFIX_SETTINGS, `${type} filter`, `${type} filter value`);
|
|
43
41
|
|
|
@@ -63,7 +61,7 @@ function validateSplitFilter(log: ILogger, type: SplitIO.SplitFilterType, values
|
|
|
63
61
|
* @param {Object} groupedFilters object of filters. Each filter must be a list of valid, unique and ordered string values.
|
|
64
62
|
* @returns null or string with the `split filter query` component of the URL.
|
|
65
63
|
*/
|
|
66
|
-
function queryStringBuilder(groupedFilters: Record<
|
|
64
|
+
function queryStringBuilder(groupedFilters: Record<SplitFilterType, string[]>) {
|
|
67
65
|
const queryParams: string[] = [];
|
|
68
66
|
FILTERS_METADATA.forEach(({ type, queryParam }) => {
|
|
69
67
|
const filter = groupedFilters[type];
|
|
@@ -109,7 +107,7 @@ export function validateSplitFilters(log: ILogger, maybeSplitFilters: any, mode:
|
|
|
109
107
|
// Validate filters and group their values by filter type inside `groupedFilters` object
|
|
110
108
|
res.validFilters = maybeSplitFilters.filter((filter, index) => {
|
|
111
109
|
if (filter && validateFilterType(filter.type) && Array.isArray(filter.values)) {
|
|
112
|
-
res.groupedFilters[filter.type as
|
|
110
|
+
res.groupedFilters[filter.type as SplitFilterType] = res.groupedFilters[filter.type as SplitFilterType].concat(filter.values);
|
|
113
111
|
return true;
|
|
114
112
|
} else {
|
|
115
113
|
log.warn(WARN_SPLITS_FILTER_INVALID, [index]);
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { InMemoryStorageCSFactory } from '../../../storages/inMemory/InMemoryStorageCS';
|
|
2
|
-
import { ISettings, SDKMode } from '../../../types';
|
|
3
|
-
import { ILogger } from '../../../logger/types';
|
|
2
|
+
import { ISettings, SDKMode, ILogger } from '../../../types';
|
|
4
3
|
import { ERROR_STORAGE_INVALID } from '../../../logger/constants';
|
|
5
4
|
import { LOCALHOST_MODE, STANDALONE_MODE, STORAGE_PLUGGABLE, STORAGE_LOCALSTORAGE, STORAGE_MEMORY } from '../../../utils/constants';
|
|
6
5
|
import { IStorageFactoryParams, IStorageSync } from '../../../storages/types';
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.uniqueKeysSubmitterFactory = exports.fromUniqueKeysCollectorSs = exports.fromUniqueKeysCollectorCs = void 0;
|
|
4
|
-
var sets_1 = require("../../utils/lang/sets");
|
|
5
|
-
var submitter_1 = require("./submitter");
|
|
6
|
-
/**
|
|
7
|
-
* Invert keys for feature to features for key
|
|
8
|
-
*/
|
|
9
|
-
function invertUniqueKeys(uniqueKeys) {
|
|
10
|
-
var featureNames = Object.keys(uniqueKeys);
|
|
11
|
-
var inverted = {};
|
|
12
|
-
for (var i = 0; i < featureNames.length; i++) {
|
|
13
|
-
var featureName = featureNames[i];
|
|
14
|
-
var featureKeys = (0, sets_1.setToArray)(uniqueKeys[featureName]);
|
|
15
|
-
for (var j = 0; j < featureKeys.length; j++) {
|
|
16
|
-
var featureKey = featureKeys[j];
|
|
17
|
-
if (!inverted[featureKey])
|
|
18
|
-
inverted[featureKey] = [];
|
|
19
|
-
inverted[featureKey].push(featureName);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
return inverted;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Converts `uniqueKeys` data from cache into request payload for CS.
|
|
26
|
-
*/
|
|
27
|
-
function fromUniqueKeysCollectorCs(uniqueKeys) {
|
|
28
|
-
var payload = [];
|
|
29
|
-
var featuresPerKey = invertUniqueKeys(uniqueKeys);
|
|
30
|
-
var keys = Object.keys(featuresPerKey);
|
|
31
|
-
for (var k = 0; k < keys.length; k++) {
|
|
32
|
-
var key = keys[k];
|
|
33
|
-
var uniqueKeysPayload = {
|
|
34
|
-
k: key,
|
|
35
|
-
fs: featuresPerKey[key]
|
|
36
|
-
};
|
|
37
|
-
payload.push(uniqueKeysPayload);
|
|
38
|
-
}
|
|
39
|
-
return { keys: payload };
|
|
40
|
-
}
|
|
41
|
-
exports.fromUniqueKeysCollectorCs = fromUniqueKeysCollectorCs;
|
|
42
|
-
/**
|
|
43
|
-
* Converts `uniqueKeys` data from cache into request payload for SS.
|
|
44
|
-
*/
|
|
45
|
-
function fromUniqueKeysCollectorSs(uniqueKeys) {
|
|
46
|
-
var payload = [];
|
|
47
|
-
var featureNames = Object.keys(uniqueKeys);
|
|
48
|
-
for (var i = 0; i < featureNames.length; i++) {
|
|
49
|
-
var featureName = featureNames[i];
|
|
50
|
-
var featureKeys = (0, sets_1.setToArray)(uniqueKeys[featureName]);
|
|
51
|
-
var uniqueKeysPayload = {
|
|
52
|
-
f: featureName,
|
|
53
|
-
ks: featureKeys
|
|
54
|
-
};
|
|
55
|
-
payload.push(uniqueKeysPayload);
|
|
56
|
-
}
|
|
57
|
-
return { keys: payload };
|
|
58
|
-
}
|
|
59
|
-
exports.fromUniqueKeysCollectorSs = fromUniqueKeysCollectorSs;
|
|
60
|
-
/**
|
|
61
|
-
* Submitter that periodically posts impression counts
|
|
62
|
-
*/
|
|
63
|
-
function uniqueKeysSubmitterFactory(params) {
|
|
64
|
-
var _a = params.settings, log = _a.log, uniqueKeysRefreshRate = _a.scheduler.uniqueKeysRefreshRate, key = _a.core.key, _b = params.splitApi, postUniqueKeysBulkCs = _b.postUniqueKeysBulkCs, postUniqueKeysBulkSs = _b.postUniqueKeysBulkSs, uniqueKeys = params.storage.uniqueKeys;
|
|
65
|
-
var isClientSide = key !== undefined;
|
|
66
|
-
var postUniqueKeysBulk = isClientSide ? postUniqueKeysBulkCs : postUniqueKeysBulkSs;
|
|
67
|
-
var fromUniqueKeysCollector = isClientSide ? fromUniqueKeysCollectorCs : fromUniqueKeysCollectorSs;
|
|
68
|
-
return (0, submitter_1.submitterFactory)(log, postUniqueKeysBulk, uniqueKeys, uniqueKeysRefreshRate, 'unique keys', fromUniqueKeysCollector);
|
|
69
|
-
}
|
|
70
|
-
exports.uniqueKeysSubmitterFactory = uniqueKeysSubmitterFactory;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.strategyDebugFactory = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Debug strategy for impressions tracker. Wraps impressions to store and adds previousTime if it corresponds
|
|
6
|
-
*
|
|
7
|
-
* @param impressionsObserver impression observer. Previous time (pt property) is included in impression instances
|
|
8
|
-
* @returns IStrategyResult
|
|
9
|
-
*/
|
|
10
|
-
function strategyDebugFactory(impressionsObserver) {
|
|
11
|
-
return {
|
|
12
|
-
process: function (impressions) {
|
|
13
|
-
impressions.forEach(function (impression) {
|
|
14
|
-
// Adds previous time if it is enabled
|
|
15
|
-
impression.pt = impressionsObserver.testAndSet(impression);
|
|
16
|
-
});
|
|
17
|
-
return {
|
|
18
|
-
impressionsToStore: impressions,
|
|
19
|
-
impressionsToListener: impressions,
|
|
20
|
-
deduped: 0
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
exports.strategyDebugFactory = strategyDebugFactory;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.strategyNoneFactory = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* None strategy for impressions tracker.
|
|
6
|
-
*
|
|
7
|
-
* @param impressionsCounter cache to save impressions count. impressions will be deduped (OPTIMIZED mode)
|
|
8
|
-
* @param uniqueKeysTracker unique keys tracker in charge of tracking the unique keys per split.
|
|
9
|
-
* @returns IStrategyResult
|
|
10
|
-
*/
|
|
11
|
-
function strategyNoneFactory(impressionsCounter, uniqueKeysTracker) {
|
|
12
|
-
return {
|
|
13
|
-
process: function (impressions) {
|
|
14
|
-
impressions.forEach(function (impression) {
|
|
15
|
-
var now = Date.now();
|
|
16
|
-
// Increments impression counter per featureName
|
|
17
|
-
impressionsCounter.track(impression.feature, now, 1);
|
|
18
|
-
// Keep track by unique key
|
|
19
|
-
uniqueKeysTracker.track(impression.feature, impression.keyName);
|
|
20
|
-
});
|
|
21
|
-
return {
|
|
22
|
-
impressionsToStore: [],
|
|
23
|
-
impressionsToListener: impressions,
|
|
24
|
-
deduped: 0
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
exports.strategyNoneFactory = strategyNoneFactory;
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.strategyOptimizedFactory = void 0;
|
|
4
|
-
var time_1 = require("../../utils/time");
|
|
5
|
-
/**
|
|
6
|
-
* Optimized strategy for impressions tracker. Wraps impressions to store and adds previousTime if it corresponds
|
|
7
|
-
*
|
|
8
|
-
* @param impressionsObserver impression observer. previous time (pt property) is included in impression instances
|
|
9
|
-
* @param impressionsCounter cache to save impressions count. impressions will be deduped (OPTIMIZED mode)
|
|
10
|
-
* @returns IStrategyResult
|
|
11
|
-
*/
|
|
12
|
-
function strategyOptimizedFactory(impressionsObserver, impressionsCounter) {
|
|
13
|
-
return {
|
|
14
|
-
process: function (impressions) {
|
|
15
|
-
var impressionsToStore = [];
|
|
16
|
-
impressions.forEach(function (impression) {
|
|
17
|
-
impression.pt = impressionsObserver.testAndSet(impression);
|
|
18
|
-
var now = Date.now();
|
|
19
|
-
// Increments impression counter per featureName
|
|
20
|
-
impressionsCounter.track(impression.feature, now, 1);
|
|
21
|
-
// Checks if the impression should be added in queue to be sent
|
|
22
|
-
if (!impression.pt || impression.pt < (0, time_1.truncateTimeFrame)(now)) {
|
|
23
|
-
impressionsToStore.push(impression);
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
return {
|
|
27
|
-
impressionsToStore: impressionsToStore,
|
|
28
|
-
impressionsToListener: impressions,
|
|
29
|
-
deduped: impressions.length - impressionsToStore.length
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
exports.strategyOptimizedFactory = strategyOptimizedFactory;
|