@splitsoftware/splitio-commons 1.6.2-rc.4 → 1.6.2-rc.7
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 +3 -0
- package/cjs/consent/sdkUserConsent.js +2 -2
- package/cjs/evaluator/index.js +10 -11
- package/cjs/integrations/ga/GaToSplit.js +8 -5
- package/cjs/listeners/browser.js +2 -1
- package/cjs/logger/constants.js +2 -1
- package/cjs/sdkClient/clientAttributesDecoration.js +1 -1
- package/cjs/sdkClient/sdkClient.js +3 -1
- package/cjs/sdkFactory/index.js +28 -8
- package/cjs/sdkManager/index.js +3 -11
- package/cjs/services/splitApi.js +20 -1
- package/cjs/storages/AbstractSplitsCacheAsync.js +7 -9
- package/cjs/storages/AbstractSplitsCacheSync.js +7 -9
- package/cjs/storages/KeyBuilderSS.js +6 -0
- package/cjs/storages/dataLoader.js +1 -1
- package/cjs/storages/inLocalStorage/SplitsCacheInLocal.js +5 -6
- package/cjs/storages/inLocalStorage/index.js +4 -0
- package/cjs/storages/inMemory/AttributesCacheInMemory.js +1 -1
- package/cjs/storages/inMemory/ImpressionCountsCacheInMemory.js +12 -1
- package/cjs/storages/inMemory/InMemoryStorage.js +5 -1
- package/cjs/storages/inMemory/InMemoryStorageCS.js +5 -1
- package/cjs/storages/inMemory/SplitsCacheInMemory.js +7 -10
- package/cjs/storages/inMemory/uniqueKeysCacheInMemory.js +73 -0
- package/cjs/storages/inMemory/uniqueKeysCacheInMemoryCS.js +78 -0
- package/cjs/storages/inRedis/ImpressionCountsCacheInRedis.js +49 -0
- package/cjs/storages/inRedis/SplitsCacheInRedis.js +15 -9
- package/cjs/storages/inRedis/constants.js +4 -1
- package/cjs/storages/inRedis/index.js +15 -1
- package/cjs/storages/inRedis/uniqueKeysCacheInRedis.js +56 -0
- package/cjs/storages/pluggable/SplitsCachePluggable.js +14 -9
- package/cjs/sync/offline/syncTasks/fromObjectSyncTask.js +2 -3
- package/cjs/sync/polling/updaters/splitChangesUpdater.js +1 -1
- package/cjs/sync/submitters/submitterManager.js +3 -0
- package/cjs/sync/submitters/telemetrySubmitter.js +1 -0
- package/cjs/sync/submitters/uniqueKeysSubmitter.js +26 -0
- package/cjs/trackers/impressionsTracker.js +22 -41
- package/cjs/trackers/strategy/strategyDebug.js +25 -0
- package/cjs/trackers/strategy/strategyNone.js +29 -0
- package/cjs/trackers/strategy/strategyOptimized.js +35 -0
- package/cjs/trackers/telemetryTracker.js +6 -0
- package/cjs/trackers/uniqueKeysTracker.js +38 -0
- package/cjs/types.js +2 -0
- package/cjs/utils/constants/index.js +4 -2
- package/cjs/utils/key/index.js +1 -1
- package/cjs/utils/settingsValidation/impressionsMode.js +2 -2
- package/cjs/utils/settingsValidation/index.js +4 -1
- package/esm/consent/sdkUserConsent.js +2 -2
- package/esm/evaluator/index.js +10 -11
- package/esm/integrations/ga/GaToSplit.js +8 -5
- package/esm/listeners/browser.js +3 -2
- package/esm/logger/constants.js +1 -0
- package/esm/sdkClient/clientAttributesDecoration.js +1 -1
- package/esm/sdkClient/sdkClient.js +3 -1
- package/esm/sdkFactory/index.js +28 -8
- package/esm/sdkManager/index.js +3 -11
- package/esm/services/splitApi.js +20 -1
- package/esm/storages/AbstractSplitsCacheAsync.js +7 -9
- package/esm/storages/AbstractSplitsCacheSync.js +7 -9
- package/esm/storages/KeyBuilderSS.js +6 -0
- package/esm/storages/dataLoader.js +1 -1
- package/esm/storages/inLocalStorage/SplitsCacheInLocal.js +5 -6
- package/esm/storages/inLocalStorage/index.js +5 -1
- package/esm/storages/inMemory/AttributesCacheInMemory.js +1 -1
- package/esm/storages/inMemory/ImpressionCountsCacheInMemory.js +12 -1
- package/esm/storages/inMemory/InMemoryStorage.js +6 -2
- package/esm/storages/inMemory/InMemoryStorageCS.js +6 -2
- package/esm/storages/inMemory/SplitsCacheInMemory.js +7 -10
- package/esm/storages/inMemory/uniqueKeysCacheInMemory.js +70 -0
- package/esm/storages/inMemory/uniqueKeysCacheInMemoryCS.js +75 -0
- package/esm/storages/inRedis/ImpressionCountsCacheInRedis.js +46 -0
- package/esm/storages/inRedis/SplitsCacheInRedis.js +15 -9
- package/esm/storages/inRedis/constants.js +3 -0
- package/esm/storages/inRedis/index.js +16 -2
- package/esm/storages/inRedis/uniqueKeysCacheInRedis.js +53 -0
- package/esm/storages/pluggable/SplitsCachePluggable.js +14 -9
- package/esm/sync/offline/syncTasks/fromObjectSyncTask.js +2 -3
- package/esm/sync/polling/updaters/splitChangesUpdater.js +1 -1
- package/esm/sync/submitters/submitterManager.js +3 -0
- package/esm/sync/submitters/telemetrySubmitter.js +2 -1
- package/esm/sync/submitters/uniqueKeysSubmitter.js +22 -0
- package/esm/trackers/impressionsTracker.js +22 -41
- package/esm/trackers/strategy/strategyDebug.js +21 -0
- package/esm/trackers/strategy/strategyNone.js +25 -0
- package/esm/trackers/strategy/strategyOptimized.js +31 -0
- package/esm/trackers/telemetryTracker.js +6 -0
- package/esm/trackers/uniqueKeysTracker.js +34 -0
- package/esm/types.js +1 -0
- package/esm/utils/constants/index.js +2 -0
- package/esm/utils/key/index.js +1 -1
- package/esm/utils/settingsValidation/impressionsMode.js +3 -3
- package/esm/utils/settingsValidation/index.js +4 -1
- package/package.json +5 -4
- package/src/consent/sdkUserConsent.ts +5 -6
- package/src/dtos/types.ts +8 -0
- 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 +18 -19
- 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 +15 -11
- 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 +4 -3
- package/src/listeners/browser.ts +3 -2
- package/src/logger/constants.ts +1 -0
- package/src/logger/index.ts +3 -3
- package/src/logger/sdkLogger.ts +2 -1
- package/src/logger/types.ts +16 -0
- package/src/readiness/sdkReadinessManager.ts +1 -1
- package/src/readiness/types.ts +9 -2
- package/src/sdkClient/client.ts +13 -13
- package/src/sdkClient/clientAttributesDecoration.ts +13 -13
- package/src/sdkClient/clientCS.ts +4 -3
- package/src/sdkClient/clientInputValidation.ts +15 -15
- package/src/sdkClient/sdkClient.ts +5 -3
- 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 +34 -11
- package/src/sdkFactory/types.ts +11 -8
- package/src/sdkManager/index.ts +7 -16
- package/src/services/splitApi.ts +22 -1
- package/src/services/types.ts +6 -0
- package/src/storages/AbstractSplitsCacheAsync.ts +12 -14
- package/src/storages/AbstractSplitsCacheSync.ts +14 -16
- package/src/storages/KeyBuilderSS.ts +8 -0
- package/src/storages/dataLoader.ts +3 -3
- package/src/storages/inLocalStorage/MySegmentsCacheInLocal.ts +1 -1
- package/src/storages/inLocalStorage/SplitsCacheInLocal.ts +10 -12
- package/src/storages/inLocalStorage/index.ts +6 -4
- package/src/storages/inMemory/AttributesCacheInMemory.ts +12 -13
- package/src/storages/inMemory/EventsCacheInMemory.ts +4 -4
- package/src/storages/inMemory/ImpressionCountsCacheInMemory.ts +16 -1
- package/src/storages/inMemory/InMemoryStorage.ts +5 -2
- package/src/storages/inMemory/InMemoryStorageCS.ts +6 -2
- package/src/storages/inMemory/SplitsCacheInMemory.ts +10 -14
- package/src/storages/inMemory/uniqueKeysCacheInMemory.ts +82 -0
- package/src/storages/inMemory/uniqueKeysCacheInMemoryCS.ts +88 -0
- package/src/storages/inRedis/EventsCacheInRedis.ts +4 -4
- package/src/storages/inRedis/ImpressionCountsCacheInRedis.ts +51 -0
- 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 +22 -18
- package/src/storages/inRedis/TelemetryCacheInRedis.ts +1 -1
- package/src/storages/inRedis/constants.ts +3 -0
- package/src/storages/inRedis/index.ts +14 -6
- package/src/storages/inRedis/uniqueKeysCacheInRedis.ts +63 -0
- 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 +21 -18
- 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 +60 -62
- package/src/sync/offline/LocalhostFromObject.ts +4 -4
- package/src/sync/offline/splitsParser/splitsParserFromSettings.ts +8 -8
- package/src/sync/offline/syncTasks/fromObjectSyncTask.ts +5 -6
- 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 +3 -3
- 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 +2 -0
- package/src/sync/submitters/telemetrySubmitter.ts +4 -3
- package/src/sync/submitters/types.ts +22 -3
- package/src/sync/submitters/uniqueKeysSubmitter.ts +35 -0
- package/src/sync/syncTask.ts +1 -1
- package/src/trackers/eventTracker.ts +3 -3
- package/src/trackers/impressionsTracker.ts +30 -51
- package/src/trackers/strategy/strategyDebug.ts +28 -0
- package/src/trackers/strategy/strategyNone.ts +34 -0
- package/src/trackers/strategy/strategyOptimized.ts +42 -0
- package/src/trackers/telemetryTracker.ts +7 -2
- package/src/trackers/types.ts +36 -4
- package/src/trackers/uniqueKeysTracker.ts +48 -0
- package/src/types.ts +1267 -0
- package/src/utils/constants/index.ts +3 -1
- 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 +2 -1
- package/src/utils/settingsValidation/impressionsMode.ts +6 -6
- package/src/utils/settingsValidation/index.ts +5 -1
- 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 +2 -1
- package/src/utils/settingsValidation/localhost/builtin.ts +2 -1
- package/src/utils/settingsValidation/localhost/pluggable.ts +2 -1
- package/src/utils/settingsValidation/logger/builtinLogger.ts +2 -1
- package/src/utils/settingsValidation/logger/pluggableLogger.ts +2 -1
- package/src/utils/settingsValidation/splitFilters.ts +9 -7
- package/src/utils/settingsValidation/storage/storageCS.ts +2 -1
- package/types/consent/index.d.ts +2 -0
- package/types/consent/sdkUserConsent.d.ts +13 -0
- package/types/dtos/types.d.ts +172 -0
- package/types/evaluator/Engine.d.ts +15 -0
- package/types/evaluator/combiners/and.d.ts +4 -0
- package/types/evaluator/combiners/ifelseif.d.ts +3 -0
- package/types/evaluator/condition/engineUtils.d.ts +11 -0
- package/types/evaluator/condition/index.d.ts +6 -0
- package/types/evaluator/convertions/index.d.ts +2 -0
- package/types/evaluator/index.d.ts +7 -0
- package/types/evaluator/matchers/all.d.ts +2 -0
- package/types/evaluator/matchers/between.d.ts +3 -0
- package/types/evaluator/matchers/boolean.d.ts +2 -0
- package/types/evaluator/matchers/cont_all.d.ts +2 -0
- package/types/evaluator/matchers/cont_any.d.ts +2 -0
- package/types/evaluator/matchers/cont_str.d.ts +2 -0
- package/types/evaluator/matchers/dependency.d.ts +5 -0
- package/types/evaluator/matchers/eq.d.ts +2 -0
- package/types/evaluator/matchers/eq_set.d.ts +2 -0
- package/types/evaluator/matchers/ew.d.ts +2 -0
- package/types/evaluator/matchers/gte.d.ts +2 -0
- package/types/evaluator/matchers/index.d.ts +7 -0
- package/types/evaluator/matchers/lte.d.ts +2 -0
- package/types/evaluator/matchers/matcherTypes.d.ts +10 -0
- package/types/evaluator/matchers/part_of.d.ts +2 -0
- package/types/evaluator/matchers/segment.d.ts +6 -0
- package/types/evaluator/matchers/string.d.ts +2 -0
- package/types/evaluator/matchers/sw.d.ts +2 -0
- package/types/evaluator/matchers/whitelist.d.ts +3 -0
- package/types/evaluator/matchersTransform/index.d.ts +6 -0
- package/types/evaluator/matchersTransform/segment.d.ts +5 -0
- package/types/evaluator/matchersTransform/set.d.ts +5 -0
- package/types/evaluator/matchersTransform/unaryNumeric.d.ts +5 -0
- package/types/evaluator/matchersTransform/whitelist.d.ts +5 -0
- package/types/evaluator/parser/index.d.ts +5 -0
- package/types/evaluator/treatments/index.d.ts +8 -0
- package/types/evaluator/types.d.ts +28 -0
- package/types/evaluator/value/index.d.ts +7 -0
- package/types/evaluator/value/sanitize.d.ts +7 -0
- package/types/index.d.ts +5 -0
- package/types/integrations/browser.d.ts +12 -0
- package/types/integrations/ga/GaToSplit.d.ts +40 -0
- package/types/integrations/ga/GoogleAnalyticsToSplit.d.ts +3 -0
- package/types/integrations/ga/SplitToGa.d.ts +34 -0
- package/types/integrations/ga/SplitToGoogleAnalytics.d.ts +3 -0
- package/types/integrations/ga/types.d.ts +148 -0
- package/types/integrations/pluggable.d.ts +11 -0
- package/types/integrations/types.d.ts +18 -0
- package/types/listeners/browser.d.ts +40 -0
- package/types/listeners/node.d.ts +22 -0
- package/types/listeners/types.d.ts +4 -0
- package/types/logger/browser/DebugLogger.d.ts +2 -0
- package/types/logger/browser/ErrorLogger.d.ts +2 -0
- package/types/logger/browser/InfoLogger.d.ts +2 -0
- package/types/logger/browser/WarnLogger.d.ts +2 -0
- package/types/logger/constants.d.ts +142 -0
- package/types/logger/index.d.ts +22 -0
- package/types/logger/messages/debug.d.ts +1 -0
- package/types/logger/messages/error.d.ts +1 -0
- package/types/logger/messages/info.d.ts +1 -0
- package/types/logger/messages/warn.d.ts +1 -0
- package/types/logger/sdkLogger.d.ts +8 -0
- package/types/logger/types.d.ts +17 -0
- package/types/readiness/constants.d.ts +7 -0
- package/types/readiness/readinessManager.d.ts +6 -0
- package/types/readiness/sdkReadinessManager.d.ts +11 -0
- package/types/readiness/types.d.ts +60 -0
- package/types/sdkClient/client.d.ts +6 -0
- package/types/sdkClient/clientAttributesDecoration.d.ts +51 -0
- package/types/sdkClient/clientCS.d.ts +10 -0
- package/types/sdkClient/clientInputValidation.d.ts +7 -0
- package/types/sdkClient/sdkClient.d.ts +6 -0
- package/types/sdkClient/sdkClientMethod.d.ts +6 -0
- package/types/sdkClient/sdkClientMethodCS.d.ts +7 -0
- package/types/sdkClient/sdkClientMethodCSWithTT.d.ts +8 -0
- package/types/sdkClient/types.d.ts +18 -0
- package/types/sdkFactory/index.d.ts +6 -0
- package/types/sdkFactory/types.d.ts +82 -0
- package/types/sdkManager/index.d.ts +5 -0
- package/types/services/splitApi.d.ts +11 -0
- package/types/services/splitHttpClient.d.ts +10 -0
- package/types/services/types.d.ts +54 -0
- package/types/storages/AbstractSegmentsCacheSync.d.ts +55 -0
- package/types/storages/AbstractSplitsCacheAsync.d.ts +37 -0
- package/types/storages/AbstractSplitsCacheSync.d.ts +42 -0
- package/types/storages/KeyBuilder.d.ts +14 -0
- package/types/storages/KeyBuilderCS.d.ts +16 -0
- package/types/storages/KeyBuilderSS.d.ts +17 -0
- package/types/storages/dataLoader.d.ts +10 -0
- package/types/storages/findLatencyIndex.d.ts +7 -0
- package/types/storages/inLocalStorage/MySegmentsCacheInLocal.d.ts +25 -0
- package/types/storages/inLocalStorage/SplitsCacheInLocal.d.ts +51 -0
- package/types/storages/inLocalStorage/constants.d.ts +2 -0
- package/types/storages/inLocalStorage/index.d.ts +8 -0
- package/types/storages/inMemory/AttributesCacheInMemory.d.ts +43 -0
- package/types/storages/inMemory/CountsCacheInMemory.d.ts +20 -0
- package/types/storages/inMemory/EventsCacheInMemory.d.ts +35 -0
- package/types/storages/inMemory/ImpressionCountsCacheInMemory.d.ts +28 -0
- package/types/storages/inMemory/ImpressionsCacheInMemory.d.ts +30 -0
- package/types/storages/inMemory/InMemoryStorage.d.ts +10 -0
- package/types/storages/inMemory/InMemoryStorageCS.d.ts +10 -0
- package/types/storages/inMemory/LatenciesCacheInMemory.d.ts +20 -0
- package/types/storages/inMemory/MySegmentsCacheInMemory.d.ts +22 -0
- package/types/storages/inMemory/SegmentsCacheInMemory.d.ts +19 -0
- package/types/storages/inMemory/SplitsCacheInMemory.d.ts +21 -0
- package/types/storages/inMemory/TelemetryCacheInMemory.d.ts +53 -0
- package/types/storages/inMemory/uniqueKeysCacheInMemory.d.ts +35 -0
- package/types/storages/inMemory/uniqueKeysCacheInMemoryCS.d.ts +37 -0
- package/types/storages/inRedis/CountsCacheInRedis.d.ts +9 -0
- package/types/storages/inRedis/EventsCacheInRedis.d.ts +32 -0
- package/types/storages/inRedis/ImpressionCountsCacheInRedis.d.ts +14 -0
- package/types/storages/inRedis/ImpressionsCacheInRedis.d.ts +18 -0
- package/types/storages/inRedis/LatenciesCacheInRedis.d.ts +9 -0
- package/types/storages/inRedis/RedisAdapter.d.ts +24 -0
- package/types/storages/inRedis/SegmentsCacheInRedis.d.ts +18 -0
- package/types/storages/inRedis/SplitsCacheInRedis.d.ts +92 -0
- package/types/storages/inRedis/TelemetryCacheInRedis.d.ts +20 -0
- package/types/storages/inRedis/constants.d.ts +4 -0
- package/types/storages/inRedis/index.d.ts +10 -0
- package/types/storages/inRedis/uniqueKeysCacheInRedis.d.ts +15 -0
- package/types/storages/metadataBuilder.d.ts +3 -0
- package/types/storages/pluggable/EventsCachePluggable.d.ts +38 -0
- package/types/storages/pluggable/ImpressionsCachePluggable.d.ts +35 -0
- package/types/storages/pluggable/SegmentsCachePluggable.d.ts +54 -0
- package/types/storages/pluggable/SplitsCachePluggable.d.ts +90 -0
- package/types/storages/pluggable/TelemetryCachePluggable.d.ts +18 -0
- package/types/storages/pluggable/constants.d.ts +1 -0
- package/types/storages/pluggable/inMemoryWrapper.d.ts +13 -0
- package/types/storages/pluggable/index.d.ts +9 -0
- package/types/storages/pluggable/wrapperAdapter.d.ts +12 -0
- package/types/storages/types.d.ts +417 -0
- package/types/sync/offline/LocalhostFromFile.d.ts +2 -0
- package/types/sync/offline/LocalhostFromObject.d.ts +2 -0
- package/types/sync/offline/splitsParser/parseCondition.d.ts +7 -0
- package/types/sync/offline/splitsParser/splitsParserFromFile.d.ts +2 -0
- package/types/sync/offline/splitsParser/splitsParserFromSettings.d.ts +3 -0
- package/types/sync/offline/splitsParser/types.d.ts +3 -0
- package/types/sync/offline/syncManagerOffline.d.ts +10 -0
- package/types/sync/offline/syncTasks/fromObjectSyncTask.d.ts +17 -0
- package/types/sync/polling/fetchers/mySegmentsFetcher.d.ts +7 -0
- package/types/sync/polling/fetchers/segmentChangesFetcher.d.ts +7 -0
- package/types/sync/polling/fetchers/splitChangesFetcher.d.ts +7 -0
- package/types/sync/polling/fetchers/types.d.ts +5 -0
- package/types/sync/polling/pollingManagerCS.d.ts +7 -0
- package/types/sync/polling/pollingManagerSS.d.ts +6 -0
- package/types/sync/polling/syncTasks/mySegmentsSyncTask.d.ts +9 -0
- package/types/sync/polling/syncTasks/segmentsSyncTask.d.ts +9 -0
- package/types/sync/polling/syncTasks/splitsSyncTask.d.ts +9 -0
- package/types/sync/polling/types.d.ts +26 -0
- package/types/sync/polling/updaters/mySegmentsUpdater.d.ts +13 -0
- package/types/sync/polling/updaters/segmentChangesUpdater.d.ts +18 -0
- package/types/sync/polling/updaters/splitChangesUpdater.d.ts +39 -0
- package/types/sync/streaming/AuthClient/index.d.ts +12 -0
- package/types/sync/streaming/AuthClient/types.d.ts +17 -0
- package/types/sync/streaming/SSEClient/index.d.ts +34 -0
- package/types/sync/streaming/SSEClient/types.d.ts +11 -0
- package/types/sync/streaming/SSEHandler/NotificationKeeper.d.ts +14 -0
- package/types/sync/streaming/SSEHandler/NotificationParser.d.ts +20 -0
- package/types/sync/streaming/SSEHandler/index.d.ts +11 -0
- package/types/sync/streaming/SSEHandler/types.d.ts +67 -0
- package/types/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.d.ts +6 -0
- package/types/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.d.ts +8 -0
- package/types/sync/streaming/UpdateWorkers/SplitsUpdateWorker.d.ts +12 -0
- package/types/sync/streaming/UpdateWorkers/constants.d.ts +3 -0
- package/types/sync/streaming/UpdateWorkers/types.d.ts +4 -0
- package/types/sync/streaming/constants.d.ts +34 -0
- package/types/sync/streaming/mySegmentsV2utils.d.ts +27 -0
- package/types/sync/streaming/pushManager.d.ts +9 -0
- package/types/sync/streaming/types.d.ts +35 -0
- package/types/sync/submitters/eventsSubmitter.d.ts +5 -0
- package/types/sync/submitters/eventsSyncTask.d.ts +8 -0
- package/types/sync/submitters/impressionCountsSubmitter.d.ts +10 -0
- package/types/sync/submitters/impressionCountsSubmitterInRedis.d.ts +5 -0
- package/types/sync/submitters/impressionCountsSyncTask.d.ts +13 -0
- package/types/sync/submitters/impressionsSubmitter.d.ts +11 -0
- package/types/sync/submitters/impressionsSyncTask.d.ts +14 -0
- package/types/sync/submitters/metricsSyncTask.d.ts +12 -0
- package/types/sync/submitters/submitter.d.ts +12 -0
- package/types/sync/submitters/submitterManager.d.ts +3 -0
- package/types/sync/submitters/submitterSyncTask.d.ts +10 -0
- package/types/sync/submitters/telemetrySubmitter.d.ts +25 -0
- package/types/sync/submitters/types.d.ts +194 -0
- package/types/sync/submitters/uniqueKeysSubmitter.d.ts +5 -0
- package/types/sync/submitters/uniqueKeysSubmitterInRedis.d.ts +5 -0
- package/types/sync/syncManagerOnline.d.ts +13 -0
- package/types/sync/syncTask.d.ts +13 -0
- package/types/sync/syncTaskComposite.d.ts +5 -0
- package/types/sync/types.d.ts +43 -0
- package/types/trackers/eventTracker.d.ts +10 -0
- package/types/trackers/filter/bloomFilter.d.ts +10 -0
- package/types/trackers/filter/dictionaryFilter.d.ts +8 -0
- package/types/trackers/filter/types.d.ts +5 -0
- package/types/trackers/impressionObserver/ImpressionObserver.d.ts +8 -0
- package/types/trackers/impressionObserver/buildKey.d.ts +2 -0
- package/types/trackers/impressionObserver/impressionObserverCS.d.ts +4 -0
- package/types/trackers/impressionObserver/impressionObserverSS.d.ts +4 -0
- package/types/trackers/impressionObserver/types.d.ts +4 -0
- package/types/trackers/impressionObserver/utils.d.ts +13 -0
- package/types/trackers/impressionsTracker.d.ts +13 -0
- package/types/trackers/strategy/strategyDebug.d.ts +9 -0
- package/types/trackers/strategy/strategyNone.d.ts +10 -0
- package/types/trackers/strategy/strategyOptimized.d.ts +11 -0
- package/types/trackers/telemetryTracker.d.ts +3 -0
- package/types/trackers/types.d.ts +63 -0
- package/types/trackers/uniqueKeysTracker.d.ts +13 -0
- package/types/types.d.ts +1265 -0
- package/types/utils/Backoff.d.ts +25 -0
- package/types/utils/LRUCache/LinkedList.d.ts +34 -0
- package/types/utils/LRUCache/index.d.ts +16 -0
- package/types/utils/MinEventEmitter.d.ts +12 -0
- package/types/utils/MinEvents.d.ts +4 -0
- package/types/utils/base64/index.d.ts +30 -0
- package/types/utils/constants/browser.d.ts +3 -0
- package/types/utils/constants/index.d.ts +64 -0
- package/types/utils/decompress/index.d.ts +16 -0
- package/types/utils/env/isLocalStorageAvailable.d.ts +1 -0
- package/types/utils/env/isNode.d.ts +5 -0
- package/types/utils/inputValidation/apiKey.d.ts +7 -0
- package/types/utils/inputValidation/attribute.d.ts +2 -0
- package/types/utils/inputValidation/attributes.d.ts +4 -0
- package/types/utils/inputValidation/event.d.ts +2 -0
- package/types/utils/inputValidation/eventProperties.d.ts +6 -0
- package/types/utils/inputValidation/eventValue.d.ts +2 -0
- package/types/utils/inputValidation/index.d.ts +13 -0
- package/types/utils/inputValidation/isOperational.d.ts +4 -0
- package/types/utils/inputValidation/key.d.ts +3 -0
- package/types/utils/inputValidation/preloadedData.d.ts +3 -0
- package/types/utils/inputValidation/split.d.ts +2 -0
- package/types/utils/inputValidation/splitExistance.d.ts +7 -0
- package/types/utils/inputValidation/splits.d.ts +2 -0
- package/types/utils/inputValidation/trafficType.d.ts +2 -0
- package/types/utils/inputValidation/trafficTypeExistance.d.ts +9 -0
- package/types/utils/jwt/index.d.ts +5 -0
- package/types/utils/jwt/types.d.ts +5 -0
- package/types/utils/key/index.d.ts +8 -0
- package/types/utils/labels/index.d.ts +7 -0
- package/types/utils/lang/binarySearch.d.ts +9 -0
- package/types/utils/lang/getFnName.d.ts +4 -0
- package/types/utils/lang/getGlobal.d.ts +4 -0
- package/types/utils/lang/index.d.ts +105 -0
- package/types/utils/lang/maps.d.ts +55 -0
- package/types/utils/lang/objectAssign.d.ts +3 -0
- package/types/utils/lang/sets.d.ts +60 -0
- package/types/utils/murmur3/common.d.ts +12 -0
- package/types/utils/murmur3/legacy.d.ts +2 -0
- package/types/utils/murmur3/murmur3.d.ts +2 -0
- package/types/utils/murmur3/murmur3_128.d.ts +6 -0
- package/types/utils/murmur3/murmur3_128_x86.d.ts +7 -0
- package/types/utils/murmur3/murmur3_64.d.ts +10 -0
- package/types/utils/murmur3/utfx.d.ts +27 -0
- package/types/utils/promise/thenable.d.ts +1 -0
- package/types/utils/promise/timeout.d.ts +1 -0
- package/types/utils/promise/wrapper.d.ts +21 -0
- package/types/utils/settingsValidation/consent.d.ts +6 -0
- package/types/utils/settingsValidation/impressionsMode.d.ts +3 -0
- package/types/utils/settingsValidation/index.d.ts +52 -0
- package/types/utils/settingsValidation/integrations/common.d.ts +14 -0
- package/types/utils/settingsValidation/integrations/configurable.d.ts +13 -0
- package/types/utils/settingsValidation/integrations/pluggable.d.ts +13 -0
- package/types/utils/settingsValidation/localhost/builtin.d.ts +16 -0
- package/types/utils/settingsValidation/localhost/pluggable.d.ts +16 -0
- package/types/utils/settingsValidation/logger/builtinLogger.d.ts +10 -0
- package/types/utils/settingsValidation/logger/commons.d.ts +9 -0
- package/types/utils/settingsValidation/logger/pluggableLogger.d.ts +11 -0
- package/types/utils/settingsValidation/mode.d.ts +1 -0
- package/types/utils/settingsValidation/runtime.d.ts +2 -0
- package/types/utils/settingsValidation/splitFilters.d.ts +16 -0
- package/types/utils/settingsValidation/storage/storageCS.d.ts +21 -0
- package/types/utils/settingsValidation/types.d.ts +32 -0
- package/types/utils/settingsValidation/url.d.ts +10 -0
- package/types/utils/time/index.d.ts +4 -0
- package/types/utils/timeTracker/index.d.ts +70 -0
- package/types/utils/timeTracker/now/browser.d.ts +1 -0
- package/types/utils/timeTracker/now/node.d.ts +1 -0
- package/types/utils/timeTracker/timer.d.ts +1 -0
- package/src/logger/.DS_Store +0 -0
- package/src/types.d.ts +0 -1581
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { StorageType } from '../../types';
|
|
1
|
+
import { StorageType } from '../../storages/types';
|
|
2
2
|
import { SDKMode } from '../../types';
|
|
3
3
|
|
|
4
4
|
// Special treatments
|
|
@@ -19,6 +19,7 @@ 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';
|
|
22
23
|
|
|
23
24
|
// SDK Modes
|
|
24
25
|
export const LOCALHOST_MODE: SDKMode = 'localhost';
|
|
@@ -49,6 +50,7 @@ export const CONSUMER_PARTIAL_ENUM = 2;
|
|
|
49
50
|
|
|
50
51
|
export const OPTIMIZED_ENUM = 0;
|
|
51
52
|
export const DEBUG_ENUM = 1;
|
|
53
|
+
export const NONE_ENUM = 2;
|
|
52
54
|
|
|
53
55
|
export const SPLITS = 'sp';
|
|
54
56
|
export const IMPRESSIONS = 'im';
|
|
@@ -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 '../../types';
|
|
2
|
+
import { ILogger } from '../../logger/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 '../../types';
|
|
2
|
+
import { ILogger } from '../../logger/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 '../../types';
|
|
2
|
+
import { SplitIO } from '../../types';
|
|
3
|
+
import { ILogger } from '../../logger/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): Attributes | undefined | false {
|
|
7
|
+
export function validateAttributes(log: ILogger, maybeAttrs: any, method: string): SplitIO.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 '../../types';
|
|
2
|
+
import { ILogger } from '../../logger/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 '../../types';
|
|
3
|
+
import { SplitIO } from '../../types';
|
|
4
|
+
import { ILogger } from '../../logger/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: Properties | null | false, size: number } {
|
|
17
|
+
export function validateEventProperties(log: ILogger, maybeProperties: any, method: string): { properties: SplitIO.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 '../../types';
|
|
2
|
+
import { ILogger } from '../../logger/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 '../../types';
|
|
2
|
+
import { ILogger } from '../../logger/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 '../../types';
|
|
2
|
+
import { SplitIO } from '../../types';
|
|
3
|
+
import { ILogger } from '../../logger/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): SplitKey | false {
|
|
36
|
+
export function validateKey(log: ILogger, maybeKey: any, method: string): SplitIO.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 { SplitIO } from '../../types';
|
|
4
|
+
import { ILogger } from '../../logger/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 PreloadedData {
|
|
45
|
+
export function validatePreloadedData(log: ILogger, maybePreloadedData: any, method: string): maybePreloadedData is SplitIO.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 '../../types';
|
|
3
|
+
import { ILogger } from '../../logger/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 '../../types';
|
|
2
|
+
import { ILogger } from '../../logger/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 '../../types';
|
|
7
|
+
import { ILogger } from '../../logger/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 { SplitIO } from '../../types';
|
|
2
2
|
import { isObject } from '../lang';
|
|
3
3
|
|
|
4
|
-
// function isSplitKeyObject(key: any): key is SplitKeyObject {
|
|
4
|
+
// function isSplitKeyObject(key: any): key is SplitIO.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 SplitKeyObject).matchingKey : key as string;
|
|
9
|
+
export function getMatching(key: SplitIO.SplitKey): string {
|
|
10
|
+
return isObject(key) ? (key as SplitIO.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: SplitKey): string | undefined {
|
|
15
|
-
return isObject(key) ? (key as SplitKeyObject).bucketingKey : undefined;
|
|
14
|
+
export function getBucketing(key: SplitIO.SplitKey): string | undefined {
|
|
15
|
+
return isObject(key) ? (key as SplitIO.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: SplitKey): SplitKeyObject {
|
|
22
|
+
export function keyParser(key: SplitIO.SplitKey): SplitIO.SplitKeyObject {
|
|
23
23
|
if (isObject(key)) {
|
|
24
24
|
return {
|
|
25
|
-
matchingKey: (key as SplitKeyObject).matchingKey,
|
|
26
|
-
bucketingKey: (key as SplitKeyObject).bucketingKey
|
|
25
|
+
matchingKey: (key as SplitIO.SplitKeyObject).matchingKey,
|
|
26
|
+
bucketingKey: (key as SplitIO.SplitKeyObject).bucketingKey
|
|
27
27
|
};
|
|
28
28
|
} else {
|
|
29
29
|
return {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ERROR_INVALID_CONFIG_PARAM } from '../../logger/constants';
|
|
2
|
-
import {
|
|
2
|
+
import { ILogger } from '../../logger/types';
|
|
3
|
+
import { ConsentStatus } from '../../types';
|
|
3
4
|
import { CONSENT_DECLINED, CONSENT_GRANTED, CONSENT_UNKNOWN } from '../constants';
|
|
4
5
|
import { stringToUpperCase } from '../lang';
|
|
5
6
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { ERROR_INVALID_CONFIG_PARAM } from '../../logger/constants';
|
|
2
|
-
import { ILogger } from '../../types';
|
|
3
|
-
import {
|
|
4
|
-
import { DEBUG, OPTIMIZED } from '../constants';
|
|
2
|
+
import { ILogger } from '../../logger/types';
|
|
3
|
+
import { SplitIO } from '../../types';
|
|
4
|
+
import { DEBUG, OPTIMIZED, NONE } from '../constants';
|
|
5
5
|
import { stringToUpperCase } from '../lang';
|
|
6
6
|
|
|
7
|
-
export function validImpressionsMode(log: ILogger, impressionsMode: any): ImpressionsMode {
|
|
7
|
+
export function validImpressionsMode(log: ILogger, impressionsMode: any): SplitIO.ImpressionsMode {
|
|
8
8
|
impressionsMode = stringToUpperCase(impressionsMode);
|
|
9
9
|
|
|
10
|
-
if ([DEBUG, OPTIMIZED].indexOf(impressionsMode) > -1) return impressionsMode;
|
|
10
|
+
if ([DEBUG, OPTIMIZED, NONE].indexOf(impressionsMode) > -1) return impressionsMode;
|
|
11
11
|
|
|
12
|
-
log.error(ERROR_INVALID_CONFIG_PARAM, ['impressionsMode', [DEBUG, OPTIMIZED], OPTIMIZED]);
|
|
12
|
+
log.error(ERROR_INVALID_CONFIG_PARAM, ['impressionsMode', [DEBUG, OPTIMIZED, NONE], OPTIMIZED]);
|
|
13
13
|
return OPTIMIZED;
|
|
14
14
|
}
|
|
@@ -36,6 +36,8 @@ 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,
|
|
39
41
|
// fetch offline changes each 15 sec
|
|
40
42
|
offlineRefreshRate: 15,
|
|
41
43
|
// publish events every 60 seconds after the first flush
|
|
@@ -130,11 +132,14 @@ export function settingsValidation(config: unknown, validationParams: ISettingsV
|
|
|
130
132
|
scheduler.segmentsRefreshRate = fromSecondsToMillis(scheduler.segmentsRefreshRate);
|
|
131
133
|
scheduler.offlineRefreshRate = fromSecondsToMillis(scheduler.offlineRefreshRate);
|
|
132
134
|
scheduler.eventsPushRate = fromSecondsToMillis(scheduler.eventsPushRate);
|
|
135
|
+
scheduler.uniqueKeysRefreshRate = fromSecondsToMillis(scheduler.uniqueKeysRefreshRate);
|
|
136
|
+
scheduler.impressionCountsRefreshRate = fromSecondsToMillis(scheduler.impressionCountsRefreshRate);
|
|
133
137
|
scheduler.telemetryRefreshRate = fromSecondsToMillis(validateMinValue('telemetryRefreshRate', scheduler.telemetryRefreshRate, 60));
|
|
134
138
|
|
|
135
139
|
// Default impressionsRefreshRate for DEBUG mode is 60 secs
|
|
136
140
|
if (get(config, 'scheduler.impressionsRefreshRate') === undefined && withDefaults.sync.impressionsMode === DEBUG) scheduler.impressionsRefreshRate = 60;
|
|
137
141
|
scheduler.impressionsRefreshRate = fromSecondsToMillis(scheduler.impressionsRefreshRate);
|
|
142
|
+
|
|
138
143
|
|
|
139
144
|
// Log deprecation for old telemetry param
|
|
140
145
|
if (scheduler.metricsRefreshRate) log.warn('`metricsRefreshRate` will be deprecated soon. For configuring telemetry rates, update `telemetryRefreshRate` value in configs');
|
|
@@ -200,7 +205,6 @@ export function settingsValidation(config: unknown, validationParams: ISettingsV
|
|
|
200
205
|
// validate the `splitFilters` settings and parse splits query
|
|
201
206
|
const splitFiltersValidation = validateSplitFilters(log, withDefaults.sync.splitFilters, withDefaults.mode);
|
|
202
207
|
withDefaults.sync.splitFilters = splitFiltersValidation.validFilters;
|
|
203
|
-
// @ts-ignore
|
|
204
208
|
withDefaults.sync.__splitFiltersValidation = splitFiltersValidation;
|
|
205
209
|
|
|
206
210
|
// 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 '../../../types';
|
|
3
|
+
import { ILogger } from '../../../logger/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,5 +1,6 @@
|
|
|
1
|
-
import { ISettings
|
|
1
|
+
import { ISettings } from '../../../types';
|
|
2
2
|
import { validateIntegrations } from './common';
|
|
3
|
+
import { ILogger } from '../../../logger/types';
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* This function validates `settings.integrations` object that consists of a list of pluggable integration factories.
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ILogger } from '../../../logger/types';
|
|
2
|
+
import { SDKMode, } from '../../../types';
|
|
2
3
|
import { LocalhostFromObject } from '../../../sync/offline/LocalhostFromObject';
|
|
3
4
|
import { validateLocalhost } from './pluggable';
|
|
4
5
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ERROR_LOCALHOST_MODULE_REQUIRED } from '../../../logger/constants';
|
|
2
|
-
import {
|
|
2
|
+
import { ILogger } from '../../../logger/types';
|
|
3
|
+
import { SDKMode, } from '../../../types';
|
|
3
4
|
import { LOCALHOST_MODE } from '../../constants';
|
|
4
5
|
|
|
5
6
|
/**
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { isLogLevelString, Logger, LogLevels } from '../../../logger';
|
|
2
|
+
import { ILogger } from '../../../logger/types';
|
|
2
3
|
import { isLocalStorageAvailable } from '../../env/isLocalStorageAvailable';
|
|
3
4
|
import { isNode } from '../../env/isNode';
|
|
4
5
|
import { codesDebug } from '../../../logger/messages/debug';
|
|
5
6
|
import { _Map } from '../../lang/maps';
|
|
6
7
|
import { getLogLevel } from './commons';
|
|
7
|
-
import { LogLevel
|
|
8
|
+
import { LogLevel } from '../../../types';
|
|
8
9
|
|
|
9
10
|
const allCodes = new _Map(codesDebug);
|
|
10
11
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Logger, LogLevels } from '../../../logger';
|
|
2
|
-
import {
|
|
2
|
+
import { ILogger } from '../../../logger/types';
|
|
3
|
+
import { LogLevel } from '../../../types';
|
|
3
4
|
import { getLogLevel } from './commons';
|
|
4
5
|
|
|
5
6
|
function isLogger(log: any): log is ILogger {
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
import { STANDALONE_MODE } from '../constants';
|
|
2
2
|
import { validateSplits } from '../inputValidation/splits';
|
|
3
|
-
import { ISplitFiltersValidation
|
|
3
|
+
import { ISplitFiltersValidation } from '../../dtos/types';
|
|
4
|
+
import { SplitIO } from '../../types';
|
|
5
|
+
import { ILogger } from '../../logger/types';
|
|
4
6
|
import { WARN_SPLITS_FILTER_IGNORED, WARN_SPLITS_FILTER_EMPTY, WARN_SPLITS_FILTER_INVALID, SETTINGS_SPLITS_FILTER, LOG_PREFIX_SETTINGS } from '../../logger/constants';
|
|
5
7
|
|
|
6
8
|
// Split filters metadata.
|
|
7
9
|
// Ordered according to their precedency when forming the filter query string: `&names=<values>&prefixes=<values>`
|
|
8
10
|
const FILTERS_METADATA = [
|
|
9
11
|
{
|
|
10
|
-
type: 'byName' as SplitFilterType,
|
|
12
|
+
type: 'byName' as SplitIO.SplitFilterType,
|
|
11
13
|
maxLength: 400,
|
|
12
14
|
queryParam: 'names='
|
|
13
15
|
},
|
|
14
16
|
{
|
|
15
|
-
type: 'byPrefix' as SplitFilterType,
|
|
17
|
+
type: 'byPrefix' as SplitIO.SplitFilterType,
|
|
16
18
|
maxLength: 50,
|
|
17
19
|
queryParam: 'prefixes='
|
|
18
20
|
}
|
|
@@ -21,7 +23,7 @@ const FILTERS_METADATA = [
|
|
|
21
23
|
/**
|
|
22
24
|
* Validates that the given value is a valid filter type
|
|
23
25
|
*/
|
|
24
|
-
function validateFilterType(maybeFilterType: any): maybeFilterType is SplitFilterType {
|
|
26
|
+
function validateFilterType(maybeFilterType: any): maybeFilterType is SplitIO.SplitFilterType {
|
|
25
27
|
return FILTERS_METADATA.some(filterMetadata => filterMetadata.type === maybeFilterType);
|
|
26
28
|
}
|
|
27
29
|
|
|
@@ -35,7 +37,7 @@ function validateFilterType(maybeFilterType: any): maybeFilterType is SplitFilte
|
|
|
35
37
|
*
|
|
36
38
|
* @throws Error if the sanitized list exceeds the length indicated by `maxLength`
|
|
37
39
|
*/
|
|
38
|
-
function validateSplitFilter(log: ILogger, type: SplitFilterType, values: string[], maxLength: number) {
|
|
40
|
+
function validateSplitFilter(log: ILogger, type: SplitIO.SplitFilterType, values: string[], maxLength: number) {
|
|
39
41
|
// validate and remove invalid and duplicated values
|
|
40
42
|
let result = validateSplits(log, values, LOG_PREFIX_SETTINGS, `${type} filter`, `${type} filter value`);
|
|
41
43
|
|
|
@@ -61,7 +63,7 @@ function validateSplitFilter(log: ILogger, type: SplitFilterType, values: string
|
|
|
61
63
|
* @param {Object} groupedFilters object of filters. Each filter must be a list of valid, unique and ordered string values.
|
|
62
64
|
* @returns null or string with the `split filter query` component of the URL.
|
|
63
65
|
*/
|
|
64
|
-
function queryStringBuilder(groupedFilters: Record<SplitFilterType, string[]>) {
|
|
66
|
+
function queryStringBuilder(groupedFilters: Record<SplitIO.SplitFilterType, string[]>) {
|
|
65
67
|
const queryParams: string[] = [];
|
|
66
68
|
FILTERS_METADATA.forEach(({ type, queryParam }) => {
|
|
67
69
|
const filter = groupedFilters[type];
|
|
@@ -107,7 +109,7 @@ export function validateSplitFilters(log: ILogger, maybeSplitFilters: any, mode:
|
|
|
107
109
|
// Validate filters and group their values by filter type inside `groupedFilters` object
|
|
108
110
|
res.validFilters = maybeSplitFilters.filter((filter, index) => {
|
|
109
111
|
if (filter && validateFilterType(filter.type) && Array.isArray(filter.values)) {
|
|
110
|
-
res.groupedFilters[filter.type as SplitFilterType] = res.groupedFilters[filter.type as SplitFilterType].concat(filter.values);
|
|
112
|
+
res.groupedFilters[filter.type as SplitIO.SplitFilterType] = res.groupedFilters[filter.type as SplitIO.SplitFilterType].concat(filter.values);
|
|
111
113
|
return true;
|
|
112
114
|
} else {
|
|
113
115
|
log.warn(WARN_SPLITS_FILTER_INVALID, [index]);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { InMemoryStorageCSFactory } from '../../../storages/inMemory/InMemoryStorageCS';
|
|
2
|
-
import { ISettings, SDKMode
|
|
2
|
+
import { ISettings, SDKMode } from '../../../types';
|
|
3
|
+
import { ILogger } from '../../../logger/types';
|
|
3
4
|
import { ERROR_STORAGE_INVALID } from '../../../logger/constants';
|
|
4
5
|
import { LOCALHOST_MODE, STANDALONE_MODE, STORAGE_PLUGGABLE, STORAGE_LOCALSTORAGE, STORAGE_MEMORY } from '../../../utils/constants';
|
|
5
6
|
import { IStorageFactoryParams, IStorageSync } from '../../../storages/types';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ISdkFactoryContext } from '../sdkFactory/types';
|
|
2
|
+
/**
|
|
3
|
+
* The public user consent API exposed via SplitFactory, used to control if the SDK tracks and sends impressions and events or not.
|
|
4
|
+
*/
|
|
5
|
+
export declare function createUserConsentAPI(params: ISdkFactoryContext): {
|
|
6
|
+
setStatus(consent: unknown): boolean;
|
|
7
|
+
getStatus(): import("../types").ConsentStatus | undefined;
|
|
8
|
+
Status: {
|
|
9
|
+
GRANTED: string;
|
|
10
|
+
DECLINED: string;
|
|
11
|
+
UNKNOWN: string;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { SplitIO } from '../types';
|
|
2
|
+
export declare type MaybeThenable<T> = T | Promise<T>;
|
|
3
|
+
/** Split Matchers */
|
|
4
|
+
export declare type IMatcherDataType = null | 'DATETIME' | 'NUMBER';
|
|
5
|
+
export interface IUnaryNumericMatcherData {
|
|
6
|
+
dataType: IMatcherDataType;
|
|
7
|
+
value: number;
|
|
8
|
+
}
|
|
9
|
+
export interface IBetweenMatcherData {
|
|
10
|
+
dataType: IMatcherDataType;
|
|
11
|
+
start: number;
|
|
12
|
+
end: number;
|
|
13
|
+
}
|
|
14
|
+
export interface IWhitelistMatcherData {
|
|
15
|
+
whitelist: string[];
|
|
16
|
+
}
|
|
17
|
+
export interface IInSegmentMatcherData {
|
|
18
|
+
segmentName: string;
|
|
19
|
+
}
|
|
20
|
+
export interface IDependencyMatcherData {
|
|
21
|
+
split: string;
|
|
22
|
+
treatments: string[];
|
|
23
|
+
}
|
|
24
|
+
interface ISplitMatcherBase {
|
|
25
|
+
matcherType: string;
|
|
26
|
+
negate: boolean;
|
|
27
|
+
keySelector: null | {
|
|
28
|
+
trafficType: string;
|
|
29
|
+
attribute: string | null;
|
|
30
|
+
};
|
|
31
|
+
userDefinedSegmentMatcherData?: null | IInSegmentMatcherData;
|
|
32
|
+
whitelistMatcherData?: null | IWhitelistMatcherData;
|
|
33
|
+
unaryNumericMatcherData?: null | IUnaryNumericMatcherData;
|
|
34
|
+
betweenMatcherData?: null | IBetweenMatcherData;
|
|
35
|
+
dependencyMatcherData?: null | IDependencyMatcherData;
|
|
36
|
+
booleanMatcherData?: null | boolean;
|
|
37
|
+
stringMatcherData?: null | string;
|
|
38
|
+
}
|
|
39
|
+
interface IAllKeysMatcher extends ISplitMatcherBase {
|
|
40
|
+
matcherType: 'ALL_KEYS';
|
|
41
|
+
}
|
|
42
|
+
interface IInSegmentMatcher extends ISplitMatcherBase {
|
|
43
|
+
matcherType: 'IN_SEGMENT';
|
|
44
|
+
userDefinedSegmentMatcherData: IInSegmentMatcherData;
|
|
45
|
+
}
|
|
46
|
+
interface IWhitelistMatcher extends ISplitMatcherBase {
|
|
47
|
+
matcherType: 'WHITELIST';
|
|
48
|
+
whitelistMatcherData: IWhitelistMatcherData;
|
|
49
|
+
}
|
|
50
|
+
interface IEqualToMatcher extends ISplitMatcherBase {
|
|
51
|
+
matcherType: 'EQUAL_TO';
|
|
52
|
+
unaryNumericMatcherData: IUnaryNumericMatcherData;
|
|
53
|
+
}
|
|
54
|
+
interface IGreaterThanOrEqualToMatcher extends ISplitMatcherBase {
|
|
55
|
+
matcherType: 'GREATER_THAN_OR_EQUAL_TO';
|
|
56
|
+
unaryNumericMatcherData: IUnaryNumericMatcherData;
|
|
57
|
+
}
|
|
58
|
+
interface ILessThanOrEqualToMatcher extends ISplitMatcherBase {
|
|
59
|
+
matcherType: 'LESS_THAN_OR_EQUAL_TO';
|
|
60
|
+
unaryNumericMatcherData: IUnaryNumericMatcherData;
|
|
61
|
+
}
|
|
62
|
+
interface IBetweenMatcher extends ISplitMatcherBase {
|
|
63
|
+
matcherType: 'BETWEEN';
|
|
64
|
+
betweenMatcherData: IBetweenMatcherData;
|
|
65
|
+
}
|
|
66
|
+
interface IEqualToSetMatcher extends ISplitMatcherBase {
|
|
67
|
+
matcherType: 'EQUAL_TO_SET';
|
|
68
|
+
whitelistMatcherData: IWhitelistMatcherData;
|
|
69
|
+
}
|
|
70
|
+
interface IContainsAnyOfSetMatcher extends ISplitMatcherBase {
|
|
71
|
+
matcherType: 'CONTAINS_ANY_OF_SET';
|
|
72
|
+
whitelistMatcherData: IWhitelistMatcherData;
|
|
73
|
+
}
|
|
74
|
+
interface IContainsAllOfSetMatcher extends ISplitMatcherBase {
|
|
75
|
+
matcherType: 'CONTAINS_ALL_OF_SET';
|
|
76
|
+
whitelistMatcherData: IWhitelistMatcherData;
|
|
77
|
+
}
|
|
78
|
+
interface IPartOfSetMatcher extends ISplitMatcherBase {
|
|
79
|
+
matcherType: 'PART_OF_SET';
|
|
80
|
+
whitelistMatcherData: IWhitelistMatcherData;
|
|
81
|
+
}
|
|
82
|
+
interface IStartsWithMatcher extends ISplitMatcherBase {
|
|
83
|
+
matcherType: 'STARTS_WITH';
|
|
84
|
+
whitelistMatcherData: IWhitelistMatcherData;
|
|
85
|
+
}
|
|
86
|
+
interface IEndsWithMatcher extends ISplitMatcherBase {
|
|
87
|
+
matcherType: 'ENDS_WITH';
|
|
88
|
+
whitelistMatcherData: IWhitelistMatcherData;
|
|
89
|
+
}
|
|
90
|
+
interface IContainsStringMatcher extends ISplitMatcherBase {
|
|
91
|
+
matcherType: 'CONTAINS_STRING';
|
|
92
|
+
whitelistMatcherData: IWhitelistMatcherData;
|
|
93
|
+
}
|
|
94
|
+
interface IInSplitTreatmentMatcher extends ISplitMatcherBase {
|
|
95
|
+
matcherType: 'IN_SPLIT_TREATMENT';
|
|
96
|
+
dependencyMatcherData: IDependencyMatcherData;
|
|
97
|
+
}
|
|
98
|
+
interface IEqualToBooleanMatcher extends ISplitMatcherBase {
|
|
99
|
+
matcherType: 'EQUAL_TO_BOOLEAN';
|
|
100
|
+
booleanMatcherData: boolean;
|
|
101
|
+
}
|
|
102
|
+
interface IMatchesStringMatcher extends ISplitMatcherBase {
|
|
103
|
+
matcherType: 'MATCHES_STRING';
|
|
104
|
+
stringMatcherData: string;
|
|
105
|
+
}
|
|
106
|
+
export declare type ISplitMatcher = IAllKeysMatcher | IInSegmentMatcher | IWhitelistMatcher | IEqualToMatcher | IGreaterThanOrEqualToMatcher | ILessThanOrEqualToMatcher | IBetweenMatcher | IEqualToSetMatcher | IContainsAnyOfSetMatcher | IContainsAllOfSetMatcher | IPartOfSetMatcher | IStartsWithMatcher | IEndsWithMatcher | IContainsStringMatcher | IInSplitTreatmentMatcher | IEqualToBooleanMatcher | IMatchesStringMatcher;
|
|
107
|
+
/** Split object */
|
|
108
|
+
export interface ISplitPartition {
|
|
109
|
+
treatment: string;
|
|
110
|
+
size: number;
|
|
111
|
+
}
|
|
112
|
+
export interface ISplitCondition {
|
|
113
|
+
matcherGroup: {
|
|
114
|
+
combiner: 'AND';
|
|
115
|
+
matchers: ISplitMatcher[];
|
|
116
|
+
};
|
|
117
|
+
partitions: ISplitPartition[];
|
|
118
|
+
label: string;
|
|
119
|
+
conditionType: 'ROLLOUT' | 'WHITELIST';
|
|
120
|
+
}
|
|
121
|
+
export interface ISplit {
|
|
122
|
+
name: string;
|
|
123
|
+
changeNumber: number;
|
|
124
|
+
killed: boolean;
|
|
125
|
+
defaultTreatment: string;
|
|
126
|
+
trafficTypeName: string;
|
|
127
|
+
conditions: ISplitCondition[];
|
|
128
|
+
status: 'ACTIVE' | 'ARCHIVED';
|
|
129
|
+
seed: number;
|
|
130
|
+
trafficAllocation?: number;
|
|
131
|
+
trafficAllocationSeed?: number;
|
|
132
|
+
configurations?: {
|
|
133
|
+
[treatmentName: string]: string;
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
export declare type ISplitPartial = Pick<ISplit, 'conditions' | 'configurations' | 'trafficTypeName'>;
|
|
137
|
+
/** Interface of the parsed JSON response of `/splitChanges` */
|
|
138
|
+
export interface ISplitChangesResponse {
|
|
139
|
+
till: number;
|
|
140
|
+
splits: ISplit[];
|
|
141
|
+
}
|
|
142
|
+
/** Interface of the parsed JSON response of `/segmentChanges/{segmentName}` */
|
|
143
|
+
export interface ISegmentChangesResponse {
|
|
144
|
+
name: string;
|
|
145
|
+
added: string[];
|
|
146
|
+
removed: string[];
|
|
147
|
+
since: number;
|
|
148
|
+
till: number;
|
|
149
|
+
}
|
|
150
|
+
export interface IMySegmentsResponseItem {
|
|
151
|
+
id: string;
|
|
152
|
+
name: string;
|
|
153
|
+
}
|
|
154
|
+
/** Interface of the parsed JSON response of `/mySegments/{userKey}` */
|
|
155
|
+
export interface IMySegmentsResponse {
|
|
156
|
+
mySegments: IMySegmentsResponseItem[];
|
|
157
|
+
}
|
|
158
|
+
/** Metadata internal type for storages */
|
|
159
|
+
export interface IMetadata {
|
|
160
|
+
/** SDK version */
|
|
161
|
+
s: string;
|
|
162
|
+
/** host IP */
|
|
163
|
+
i: string;
|
|
164
|
+
/** host name */
|
|
165
|
+
n: string;
|
|
166
|
+
}
|
|
167
|
+
export declare type ISplitFiltersValidation = {
|
|
168
|
+
queryString: string | null;
|
|
169
|
+
groupedFilters: Record<SplitIO.SplitFilterType, string[]>;
|
|
170
|
+
validFilters: SplitIO.SplitFilter[];
|
|
171
|
+
};
|
|
172
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ISplit, MaybeThenable } from '../dtos/types';
|
|
2
|
+
import { SplitIO } from '../types';
|
|
3
|
+
import { IStorageAsync, IStorageSync } from '../storages/types';
|
|
4
|
+
import { IEvaluationResult, IEvaluator, ISplitEvaluator } from './types';
|
|
5
|
+
import { ILogger } from '../logger/types';
|
|
6
|
+
export declare class Engine {
|
|
7
|
+
private baseInfo;
|
|
8
|
+
private evaluator;
|
|
9
|
+
constructor(baseInfo: ISplit, evaluator: IEvaluator);
|
|
10
|
+
static parse(log: ILogger, splitFlatStructure: ISplit, storage: IStorageSync | IStorageAsync): Engine;
|
|
11
|
+
getKey(): string;
|
|
12
|
+
getTreatment(key: SplitIO.SplitKey, attributes: SplitIO.Attributes | undefined, splitEvaluator: ISplitEvaluator): MaybeThenable<IEvaluationResult>;
|
|
13
|
+
isGarbage(): boolean;
|
|
14
|
+
getChangeNumber(): number;
|
|
15
|
+
}
|