@splitsoftware/splitio-commons 1.6.2-rc.2 → 1.6.2-rc.3
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/sdkFactory/index.js +6 -14
- package/cjs/services/splitApi.js +1 -20
- package/cjs/storages/inLocalStorage/index.js +0 -4
- package/cjs/storages/inMemory/InMemoryStorage.js +1 -5
- package/cjs/storages/inMemory/InMemoryStorageCS.js +1 -5
- package/cjs/sync/submitters/submitterManager.js +0 -3
- package/cjs/sync/submitters/telemetrySubmitter.js +0 -1
- package/cjs/trackers/impressionsTracker.js +28 -7
- package/cjs/utils/constants/index.js +2 -4
- 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/sdkFactory/index.js +6 -14
- package/esm/services/splitApi.js +1 -20
- package/esm/storages/inLocalStorage/index.js +1 -5
- package/esm/storages/inMemory/InMemoryStorage.js +2 -6
- package/esm/storages/inMemory/InMemoryStorageCS.js +2 -6
- package/esm/sync/submitters/submitterManager.js +0 -3
- package/esm/sync/submitters/telemetrySubmitter.js +1 -2
- package/esm/trackers/impressionsTracker.js +28 -7
- package/esm/utils/constants/index.js +0 -2
- 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 +2 -2
- 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 +9 -9
- 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 -18
- 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 +4 -6
- package/src/storages/inMemory/EventsCacheInMemory.ts +4 -4
- package/src/storages/inMemory/InMemoryStorage.ts +2 -5
- package/src/storages/inMemory/InMemoryStorageCS.ts +2 -6
- 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 +48 -40
- 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/telemetrySubmitter.ts +3 -4
- 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 +38 -15
- package/src/trackers/types.ts +4 -30
- package/src/types.d.ts +1646 -0
- package/src/utils/constants/index.ts +1 -3
- 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/types/consent/sdkUserConsent.d.ts +2 -9
- package/types/dtos/types.d.ts +0 -6
- package/types/evaluator/Engine.d.ts +3 -3
- package/types/evaluator/combiners/and.d.ts +1 -1
- package/types/evaluator/combiners/ifelseif.d.ts +1 -1
- package/types/evaluator/condition/engineUtils.d.ts +1 -1
- package/types/evaluator/condition/index.d.ts +1 -1
- package/types/evaluator/index.d.ts +4 -4
- package/types/evaluator/matchers/all.d.ts +1 -1
- package/types/evaluator/matchers/between.d.ts +1 -1
- package/types/evaluator/matchers/boolean.d.ts +1 -1
- package/types/evaluator/matchers/cont_all.d.ts +1 -1
- package/types/evaluator/matchers/cont_any.d.ts +1 -1
- package/types/evaluator/matchers/cont_str.d.ts +1 -1
- package/types/evaluator/matchers/dependency.d.ts +1 -1
- package/types/evaluator/matchers/eq.d.ts +1 -1
- package/types/evaluator/matchers/eq_set.d.ts +1 -1
- package/types/evaluator/matchers/ew.d.ts +1 -1
- package/types/evaluator/matchers/gte.d.ts +1 -1
- package/types/evaluator/matchers/index.d.ts +1 -1
- package/types/evaluator/matchers/lte.d.ts +1 -1
- package/types/evaluator/matchers/part_of.d.ts +1 -1
- package/types/evaluator/matchers/segment.d.ts +1 -1
- package/types/evaluator/matchers/string.d.ts +1 -1
- package/types/evaluator/matchers/sw.d.ts +1 -1
- package/types/evaluator/matchers/whitelist.d.ts +1 -1
- package/types/evaluator/parser/index.d.ts +1 -1
- package/types/evaluator/types.d.ts +6 -6
- package/types/evaluator/value/index.d.ts +3 -3
- package/types/evaluator/value/sanitize.d.ts +3 -3
- package/types/integrations/ga/GaToSplit.d.ts +4 -4
- package/types/integrations/ga/SplitToGa.d.ts +4 -4
- package/types/integrations/ga/types.d.ts +4 -4
- package/types/integrations/types.d.ts +2 -2
- package/types/logger/constants.d.ts +0 -1
- package/types/logger/index.d.ts +3 -5
- package/types/logger/sdkLogger.d.ts +1 -2
- package/types/logger/types.d.ts +0 -11
- package/types/readiness/sdkReadinessManager.d.ts +1 -1
- package/types/readiness/types.d.ts +2 -8
- package/types/sdkClient/client.d.ts +2 -2
- package/types/sdkClient/clientAttributesDecoration.d.ts +8 -8
- package/types/sdkClient/clientCS.d.ts +2 -3
- package/types/sdkClient/clientInputValidation.d.ts +2 -2
- package/types/sdkClient/sdkClient.d.ts +2 -2
- package/types/sdkClient/sdkClientMethod.d.ts +2 -2
- package/types/sdkClient/sdkClientMethodCS.d.ts +2 -2
- package/types/sdkClient/sdkClientMethodCSWithTT.d.ts +2 -2
- package/types/sdkFactory/index.d.ts +2 -2
- package/types/sdkFactory/types.d.ts +8 -10
- package/types/sdkManager/index.d.ts +3 -3
- package/types/services/types.d.ts +0 -4
- package/types/storages/dataLoader.d.ts +2 -2
- package/types/storages/inLocalStorage/MySegmentsCacheInLocal.d.ts +1 -1
- package/types/storages/inLocalStorage/SplitsCacheInLocal.d.ts +1 -2
- package/types/storages/inLocalStorage/index.d.ts +2 -2
- package/types/storages/inMemory/EventsCacheInMemory.d.ts +3 -3
- package/types/storages/inMemory/InMemoryStorage.d.ts +1 -1
- package/types/storages/inMemory/InMemoryStorageCS.d.ts +1 -1
- package/types/storages/inRedis/EventsCacheInRedis.d.ts +3 -3
- package/types/storages/inRedis/ImpressionsCacheInRedis.d.ts +1 -1
- package/types/storages/inRedis/RedisAdapter.d.ts +1 -1
- package/types/storages/inRedis/SegmentsCacheInRedis.d.ts +1 -1
- package/types/storages/inRedis/SplitsCacheInRedis.d.ts +1 -1
- package/types/storages/inRedis/TelemetryCacheInRedis.d.ts +1 -1
- package/types/storages/inRedis/index.d.ts +2 -2
- package/types/storages/pluggable/EventsCachePluggable.d.ts +3 -3
- package/types/storages/pluggable/ImpressionsCachePluggable.d.ts +1 -1
- package/types/storages/pluggable/SegmentsCachePluggable.d.ts +1 -1
- package/types/storages/pluggable/SplitsCachePluggable.d.ts +1 -1
- package/types/storages/pluggable/TelemetryCachePluggable.d.ts +1 -1
- package/types/storages/pluggable/index.d.ts +3 -2
- package/types/storages/pluggable/wrapperAdapter.d.ts +1 -1
- package/types/storages/types.d.ts +46 -30
- package/types/sync/offline/LocalhostFromObject.d.ts +2 -2
- package/types/sync/polling/updaters/mySegmentsUpdater.d.ts +1 -1
- package/types/sync/polling/updaters/segmentChangesUpdater.d.ts +1 -1
- package/types/sync/polling/updaters/splitChangesUpdater.d.ts +1 -1
- package/types/sync/streaming/SSEHandler/index.d.ts +1 -1
- package/types/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.d.ts +1 -1
- package/types/sync/streaming/UpdateWorkers/SplitsUpdateWorker.d.ts +1 -1
- package/types/sync/submitters/submitter.d.ts +1 -1
- package/types/sync/submitters/types.d.ts +3 -20
- package/types/sync/syncTask.d.ts +1 -1
- package/types/trackers/impressionsTracker.d.ts +6 -4
- package/types/trackers/types.d.ts +4 -25
- package/types/utils/constants/index.d.ts +1 -3
- package/types/utils/inputValidation/apiKey.d.ts +1 -1
- package/types/utils/inputValidation/attribute.d.ts +1 -1
- package/types/utils/inputValidation/attributes.d.ts +3 -3
- package/types/utils/inputValidation/event.d.ts +1 -1
- package/types/utils/inputValidation/eventProperties.d.ts +3 -3
- package/types/utils/inputValidation/eventValue.d.ts +1 -1
- package/types/utils/inputValidation/isOperational.d.ts +1 -1
- package/types/utils/inputValidation/key.d.ts +3 -3
- package/types/utils/inputValidation/preloadedData.d.ts +3 -3
- package/types/utils/inputValidation/split.d.ts +1 -1
- package/types/utils/inputValidation/splitExistance.d.ts +1 -1
- package/types/utils/inputValidation/splits.d.ts +1 -1
- package/types/utils/inputValidation/trafficType.d.ts +1 -1
- package/types/utils/inputValidation/trafficTypeExistance.d.ts +1 -1
- package/types/utils/key/index.d.ts +4 -4
- package/types/utils/settingsValidation/consent.d.ts +1 -2
- package/types/utils/settingsValidation/impressionsMode.d.ts +3 -3
- package/types/utils/settingsValidation/index.d.ts +0 -1
- package/types/utils/settingsValidation/integrations/common.d.ts +1 -1
- package/types/utils/settingsValidation/integrations/configurable.d.ts +1 -1
- package/types/utils/settingsValidation/integrations/pluggable.d.ts +1 -2
- package/types/utils/settingsValidation/localhost/builtin.d.ts +1 -2
- package/types/utils/settingsValidation/localhost/pluggable.d.ts +1 -2
- package/types/utils/settingsValidation/logger/builtinLogger.d.ts +1 -1
- package/types/utils/settingsValidation/logger/pluggableLogger.d.ts +1 -1
- package/types/utils/settingsValidation/splitFilters.d.ts +1 -2
- package/types/utils/settingsValidation/storage/storageCS.d.ts +2 -3
- package/cjs/storages/inMemory/uniqueKeysCacheInMemory.js +0 -73
- package/cjs/storages/inMemory/uniqueKeysCacheInMemoryCS.js +0 -78
- package/cjs/sync/submitters/uniqueKeysSubmitter.js +0 -26
- 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 -31
- package/cjs/types.js +0 -2
- package/esm/storages/inMemory/uniqueKeysCacheInMemory.js +0 -70
- package/esm/storages/inMemory/uniqueKeysCacheInMemoryCS.js +0 -75
- package/esm/sync/submitters/uniqueKeysSubmitter.js +0 -22
- 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 -27
- package/esm/types.js +0 -1
- package/src/storages/inMemory/uniqueKeysCacheInMemory.ts +0 -83
- package/src/storages/inMemory/uniqueKeysCacheInMemoryCS.ts +0 -89
- package/src/sync/submitters/uniqueKeysSubmitter.ts +0 -35
- 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 -37
- package/src/types.ts +0 -1265
- package/types/sdkClient/types.d.ts +0 -18
- package/types/storages/inMemory/CountsCacheInMemory.d.ts +0 -20
- package/types/storages/inMemory/LatenciesCacheInMemory.d.ts +0 -20
- package/types/storages/inMemory/uniqueKeysCacheInMemory.d.ts +0 -32
- package/types/storages/inMemory/uniqueKeysCacheInMemoryCS.d.ts +0 -37
- package/types/storages/inRedis/CountsCacheInRedis.d.ts +0 -9
- package/types/storages/inRedis/LatenciesCacheInRedis.d.ts +0 -9
- package/types/sync/offline/LocalhostFromFile.d.ts +0 -2
- package/types/sync/offline/splitsParser/splitsParserFromFile.d.ts +0 -2
- package/types/sync/submitters/eventsSyncTask.d.ts +0 -8
- package/types/sync/submitters/impressionCountsSyncTask.d.ts +0 -13
- package/types/sync/submitters/impressionsSyncTask.d.ts +0 -14
- package/types/sync/submitters/metricsSyncTask.d.ts +0 -12
- package/types/sync/submitters/submitterSyncTask.d.ts +0 -10
- package/types/sync/submitters/uniqueKeysSubmitter.d.ts +0 -5
- package/types/sync/syncTaskComposite.d.ts +0 -5
- 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/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/uniqueKeysTracker.d.ts +0 -13
- package/types/types.d.ts +0 -1263
- package/types/utils/timeTracker/index.d.ts +0 -70
|
@@ -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';
|
|
@@ -50,7 +49,6 @@ export const CONSUMER_PARTIAL_ENUM = 2;
|
|
|
50
49
|
|
|
51
50
|
export const OPTIMIZED_ENUM = 0;
|
|
52
51
|
export const DEBUG_ENUM = 1;
|
|
53
|
-
export const NONE_ENUM = 2;
|
|
54
52
|
|
|
55
53
|
export const SPLITS = 'sp';
|
|
56
54
|
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 '../../
|
|
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,13 +1,6 @@
|
|
|
1
1
|
import { ISdkFactoryContext } from '../sdkFactory/types';
|
|
2
|
+
import { IUserConsentAPI } from '../types';
|
|
2
3
|
/**
|
|
3
4
|
* The public user consent API exposed via SplitFactory, used to control if the SDK tracks and sends impressions and events or not.
|
|
4
5
|
*/
|
|
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
|
-
};
|
|
6
|
+
export declare function createUserConsentAPI(params: ISdkFactoryContext): IUserConsentAPI;
|
package/types/dtos/types.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { SplitIO } from '../types';
|
|
2
1
|
export declare type MaybeThenable<T> = T | Promise<T>;
|
|
3
2
|
/** Split Matchers */
|
|
4
3
|
export declare type IMatcherDataType = null | 'DATETIME' | 'NUMBER';
|
|
@@ -164,9 +163,4 @@ export interface IMetadata {
|
|
|
164
163
|
/** host name */
|
|
165
164
|
n: string;
|
|
166
165
|
}
|
|
167
|
-
export declare type ISplitFiltersValidation = {
|
|
168
|
-
queryString: string | null;
|
|
169
|
-
groupedFilters: Record<SplitIO.SplitFilterType, string[]>;
|
|
170
|
-
validFilters: SplitIO.SplitFilter[];
|
|
171
|
-
};
|
|
172
166
|
export {};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { ISplit, MaybeThenable } from '../dtos/types';
|
|
2
|
-
import {
|
|
2
|
+
import { SplitKey, Attributes } from '../types';
|
|
3
3
|
import { IStorageAsync, IStorageSync } from '../storages/types';
|
|
4
4
|
import { IEvaluationResult, IEvaluator, ISplitEvaluator } from './types';
|
|
5
|
-
import { ILogger } from '../
|
|
5
|
+
import { ILogger } from '../types';
|
|
6
6
|
export declare class Engine {
|
|
7
7
|
private baseInfo;
|
|
8
8
|
private evaluator;
|
|
9
9
|
constructor(baseInfo: ISplit, evaluator: IEvaluator);
|
|
10
10
|
static parse(log: ILogger, splitFlatStructure: ISplit, storage: IStorageSync | IStorageAsync): Engine;
|
|
11
11
|
getKey(): string;
|
|
12
|
-
getTreatment(key:
|
|
12
|
+
getTreatment(key: SplitKey, attributes: Attributes | undefined, splitEvaluator: ISplitEvaluator): MaybeThenable<IEvaluationResult>;
|
|
13
13
|
isGarbage(): boolean;
|
|
14
14
|
getChangeNumber(): number;
|
|
15
15
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ILogger } from '../../
|
|
1
|
+
import { ILogger } from '../../types';
|
|
2
2
|
import { MaybeThenable } from '../../dtos/types';
|
|
3
3
|
import { IMatcher } from '../types';
|
|
4
4
|
export declare function andCombinerContext(log: ILogger, matchers: IMatcher[]): (...params: any) => MaybeThenable<boolean>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MaybeThenable } from '../../dtos/types';
|
|
2
2
|
import { IEvaluator } from '../types';
|
|
3
|
-
import { ILogger } from '../../
|
|
3
|
+
import { ILogger } from '../../types';
|
|
4
4
|
export declare function conditionContext(log: ILogger, matcherEvaluator: (...args: any) => MaybeThenable<boolean>, treatments: {
|
|
5
5
|
getTreatmentFor: (x: number) => string;
|
|
6
6
|
}, label: string, conditionType: 'ROLLOUT' | 'WHITELIST'): IEvaluator;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MaybeThenable } from '../dtos/types';
|
|
2
2
|
import { IStorageAsync, IStorageSync } from '../storages/types';
|
|
3
3
|
import { IEvaluationResult } from './types';
|
|
4
|
-
import {
|
|
5
|
-
import { ILogger } from '../
|
|
6
|
-
export declare function evaluateFeature(log: ILogger, key:
|
|
7
|
-
export declare function evaluateFeatures(log: ILogger, key:
|
|
4
|
+
import { SplitKey, Attributes } from '../types';
|
|
5
|
+
import { ILogger } from '../types';
|
|
6
|
+
export declare function evaluateFeature(log: ILogger, key: SplitKey, splitName: string, attributes: Attributes | undefined, storage: IStorageSync | IStorageAsync): MaybeThenable<IEvaluationResult>;
|
|
7
|
+
export declare function evaluateFeatures(log: ILogger, key: SplitKey, splitNames: string[], attributes: Attributes | undefined, storage: IStorageSync | IStorageAsync): MaybeThenable<Record<string, IEvaluationResult>>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ILogger } from '../../
|
|
1
|
+
import { ILogger } from '../../types';
|
|
2
2
|
export declare function allMatcherContext(log: ILogger): (runtimeAttr: string) => boolean;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ILogger } from '../../
|
|
1
|
+
import { ILogger } from '../../types';
|
|
2
2
|
export declare function booleanMatcherContext(log: ILogger, ruleAttr: boolean): (runtimeAttr: boolean) => boolean;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ILogger } from '../../
|
|
1
|
+
import { ILogger } from '../../types';
|
|
2
2
|
export declare function containsAllSetMatcherContext(log: ILogger, ruleAttr: string[]): (runtimeAttr: string[]) => boolean;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ILogger } from '../../
|
|
1
|
+
import { ILogger } from '../../types';
|
|
2
2
|
export declare function containsAnySetMatcherContext(log: ILogger, ruleAttr: string[]): (runtimeAttr: string[]) => boolean;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ILogger } from '../../
|
|
1
|
+
import { ILogger } from '../../types';
|
|
2
2
|
export declare function containsStringMatcherContext(log: ILogger, ruleAttr: string[]): (runtimeAttr: string) => boolean;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IDependencyMatcherData, MaybeThenable } from '../../dtos/types';
|
|
2
2
|
import { IStorageAsync, IStorageSync } from '../../storages/types';
|
|
3
|
-
import { ILogger } from '../../
|
|
3
|
+
import { ILogger } from '../../types';
|
|
4
4
|
import { IDependencyMatcherValue, ISplitEvaluator } from '../types';
|
|
5
5
|
export declare function dependencyMatcherContext(log: ILogger, { split, treatments }: IDependencyMatcherData, storage: IStorageSync | IStorageAsync): ({ key, attributes }: IDependencyMatcherValue, splitEvaluator: ISplitEvaluator) => MaybeThenable<boolean>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ILogger } from '../../
|
|
1
|
+
import { ILogger } from '../../types';
|
|
2
2
|
export declare function equalToMatcherContext(log: ILogger, ruleAttr: number): (runtimeAttr: number) => boolean;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ILogger } from '../../
|
|
1
|
+
import { ILogger } from '../../types';
|
|
2
2
|
export declare function equalToSetMatcherContext(log: ILogger, ruleAttr: string[]): (runtimeAttr: string[]) => boolean;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ILogger } from '../../
|
|
1
|
+
import { ILogger } from '../../types';
|
|
2
2
|
export declare function endsWithMatcherContext(log: ILogger, ruleAttr: string[]): (runtimeAttr: string) => boolean;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ILogger } from '../../
|
|
1
|
+
import { ILogger } from '../../types';
|
|
2
2
|
export declare function greaterThanEqualMatcherContext(log: ILogger, ruleAttr: number): (runtimeAttr: number) => boolean;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ILogger } from '../../
|
|
1
|
+
import { ILogger } from '../../types';
|
|
2
2
|
export declare function lessThanEqualMatcherContext(log: ILogger, ruleAttr: number): (runtimeAttr: number) => boolean;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ILogger } from '../../
|
|
1
|
+
import { ILogger } from '../../types';
|
|
2
2
|
export declare function partOfSetMatcherContext(log: ILogger, ruleAttr: string[]): (runtimeAttr: string[]) => boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MaybeThenable } from '../../dtos/types';
|
|
2
2
|
import { ISegmentsCacheBase } from '../../storages/types';
|
|
3
|
-
import { ILogger } from '../../
|
|
3
|
+
import { ILogger } from '../../types';
|
|
4
4
|
export declare function segmentMatcherContext(log: ILogger, segmentName: string, storage: {
|
|
5
5
|
segments: ISegmentsCacheBase;
|
|
6
6
|
}): (key: string) => MaybeThenable<boolean>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ILogger } from '../../
|
|
1
|
+
import { ILogger } from '../../types';
|
|
2
2
|
export declare function stringMatcherContext(log: ILogger, ruleAttr: string): (runtimeAttr: string) => boolean;
|