@splitsoftware/splitio-commons 1.6.2-rc.3 → 1.6.2-rc.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/evaluator/index.js +10 -11
- package/cjs/integrations/ga/GaToSplit.js +8 -5
- package/cjs/sdkFactory/index.js +2 -3
- package/cjs/sdkManager/index.js +3 -11
- package/cjs/services/splitApi.js +0 -1
- package/cjs/storages/AbstractSplitsCacheAsync.js +7 -9
- package/cjs/storages/AbstractSplitsCacheSync.js +7 -9
- package/cjs/storages/dataLoader.js +1 -1
- package/cjs/storages/inLocalStorage/SplitsCacheInLocal.js +5 -6
- package/cjs/storages/inMemory/SplitsCacheInMemory.js +7 -10
- package/cjs/storages/inRedis/SplitsCacheInRedis.js +15 -9
- 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/trackers/telemetryTracker.js +6 -0
- package/cjs/types.js +2 -0
- package/cjs/utils/key/index.js +1 -1
- package/cjs/utils/settingsValidation/index.js +0 -1
- package/esm/evaluator/index.js +10 -11
- package/esm/integrations/ga/GaToSplit.js +8 -5
- package/esm/sdkFactory/index.js +2 -3
- package/esm/sdkManager/index.js +3 -11
- package/esm/services/splitApi.js +0 -1
- package/esm/storages/AbstractSplitsCacheAsync.js +7 -9
- package/esm/storages/AbstractSplitsCacheSync.js +7 -9
- package/esm/storages/dataLoader.js +1 -1
- package/esm/storages/inLocalStorage/SplitsCacheInLocal.js +5 -6
- package/esm/storages/inMemory/SplitsCacheInMemory.js +7 -10
- package/esm/storages/inRedis/SplitsCacheInRedis.js +15 -9
- 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/trackers/telemetryTracker.js +6 -0
- package/esm/types.js +1 -0
- package/esm/utils/key/index.js +1 -1
- package/esm/utils/settingsValidation/index.js +0 -1
- package/package.json +2 -2
- package/src/consent/sdkUserConsent.ts +3 -4
- 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/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 +9 -9
- package/src/sdkClient/clientCS.ts +4 -3
- 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 +4 -5
- package/src/sdkFactory/types.ts +4 -4
- package/src/sdkManager/index.ts +7 -16
- package/src/services/splitApi.ts +0 -1
- package/src/storages/AbstractSplitsCacheAsync.ts +13 -14
- package/src/storages/AbstractSplitsCacheSync.ts +14 -16
- 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 +2 -3
- package/src/storages/inMemory/EventsCacheInMemory.ts +4 -4
- package/src/storages/inMemory/SplitsCacheInMemory.ts +10 -14
- 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 +22 -18
- package/src/storages/inRedis/TelemetryCacheInRedis.ts +1 -1
- package/src/storages/inRedis/index.ts +2 -3
- 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 +30 -54
- 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/types.ts +2 -2
- package/src/sync/syncTask.ts +1 -1
- package/src/trackers/eventTracker.ts +3 -3
- package/src/trackers/impressionsTracker.ts +3 -3
- package/src/trackers/telemetryTracker.ts +7 -2
- package/src/trackers/types.ts +8 -4
- package/src/types.ts +1263 -0
- package/src/utils/constants/index.ts +1 -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 +3 -3
- package/src/utils/settingsValidation/index.ts +0 -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/sdkUserConsent.d.ts +9 -2
- package/types/dtos/types.d.ts +6 -0
- 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 +4 -3
- package/types/logger/index.d.ts +5 -3
- package/types/logger/sdkLogger.d.ts +2 -1
- package/types/logger/types.d.ts +11 -0
- package/types/readiness/sdkReadinessManager.d.ts +1 -1
- package/types/readiness/types.d.ts +8 -2
- package/types/sdkClient/client.d.ts +2 -2
- package/types/sdkClient/clientAttributesDecoration.d.ts +8 -8
- package/types/sdkClient/clientCS.d.ts +3 -2
- 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 +6 -6
- package/types/sdkManager/index.d.ts +3 -3
- package/types/storages/AbstractSplitsCacheAsync.d.ts +6 -5
- package/types/storages/AbstractSplitsCacheSync.d.ts +5 -5
- package/types/storages/dataLoader.d.ts +2 -2
- package/types/storages/inLocalStorage/MySegmentsCacheInLocal.d.ts +1 -1
- package/types/storages/inLocalStorage/SplitsCacheInLocal.d.ts +4 -3
- 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/inMemory/SplitsCacheInMemory.d.ts +3 -2
- 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 +7 -6
- 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 +7 -6
- package/types/storages/pluggable/TelemetryCachePluggable.d.ts +1 -1
- package/types/storages/pluggable/index.d.ts +2 -3
- package/types/storages/pluggable/wrapperAdapter.d.ts +1 -1
- package/types/storages/types.d.ts +28 -54
- 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 +2 -2
- 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 +2 -2
- package/types/sync/syncTask.d.ts +1 -1
- package/types/trackers/types.d.ts +8 -4
- package/types/types.d.ts +1261 -0
- package/types/utils/constants/index.d.ts +1 -1
- 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 +2 -1
- package/types/utils/settingsValidation/impressionsMode.d.ts +3 -3
- 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 +2 -1
- package/types/utils/settingsValidation/localhost/builtin.d.ts +2 -1
- package/types/utils/settingsValidation/localhost/pluggable.d.ts +2 -1
- 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 +2 -1
- package/types/utils/settingsValidation/storage/storageCS.d.ts +3 -2
- package/src/types.d.ts +0 -1646
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { KeyBuilderSS } from '../KeyBuilderSS';
|
|
2
2
|
import { Redis } from 'ioredis';
|
|
3
|
-
import { ILogger } from '../../types';
|
|
3
|
+
import { ILogger } from '../../logger/types';
|
|
4
|
+
import { ISplit } from '../../dtos/types';
|
|
4
5
|
import { AbstractSplitsCacheAsync } from '../AbstractSplitsCacheAsync';
|
|
5
6
|
/**
|
|
6
7
|
* ISplitsCacheAsync implementation that stores split definitions in Redis.
|
|
@@ -19,13 +20,13 @@ export declare class SplitsCacheInRedis extends AbstractSplitsCacheAsync {
|
|
|
19
20
|
* The returned promise is resolved when the operation success
|
|
20
21
|
* or rejected if it fails (e.g., redis operation fails)
|
|
21
22
|
*/
|
|
22
|
-
addSplit(name: string, split:
|
|
23
|
+
addSplit(name: string, split: ISplit): Promise<boolean>;
|
|
23
24
|
/**
|
|
24
25
|
* Add a list of splits.
|
|
25
26
|
* The returned promise is resolved when the operation success
|
|
26
27
|
* or rejected if it fails (e.g., redis operation fails)
|
|
27
28
|
*/
|
|
28
|
-
addSplits(entries: [string,
|
|
29
|
+
addSplits(entries: [string, ISplit][]): Promise<boolean[]>;
|
|
29
30
|
/**
|
|
30
31
|
* Remove a given split.
|
|
31
32
|
* The returned promise is resolved when the operation success, with 1 or 0 indicating if the split existed or not.
|
|
@@ -42,7 +43,7 @@ export declare class SplitsCacheInRedis extends AbstractSplitsCacheAsync {
|
|
|
42
43
|
* Get split definition or null if it's not defined.
|
|
43
44
|
* Returned promise is rejected if redis operation fails.
|
|
44
45
|
*/
|
|
45
|
-
getSplit(name: string): Promise<
|
|
46
|
+
getSplit(name: string): Promise<ISplit | null>;
|
|
46
47
|
/**
|
|
47
48
|
* Set till number.
|
|
48
49
|
* The returned promise is resolved when the operation success,
|
|
@@ -63,7 +64,7 @@ export declare class SplitsCacheInRedis extends AbstractSplitsCacheAsync {
|
|
|
63
64
|
* @TODO we need to benchmark which is the maximun number of commands we could
|
|
64
65
|
* pipeline without kill redis performance.
|
|
65
66
|
*/
|
|
66
|
-
getAll(): Promise<
|
|
67
|
+
getAll(): Promise<ISplit[]>;
|
|
67
68
|
/**
|
|
68
69
|
* Get list of split names.
|
|
69
70
|
* The returned promise is resolved with the list of split names,
|
|
@@ -87,5 +88,5 @@ export declare class SplitsCacheInRedis extends AbstractSplitsCacheAsync {
|
|
|
87
88
|
* Fetches multiple splits definitions.
|
|
88
89
|
* Returned promise is rejected if redis operation fails.
|
|
89
90
|
*/
|
|
90
|
-
getSplits(names: string[]): Promise<Record<string,
|
|
91
|
+
getSplits(names: string[]): Promise<Record<string, ISplit | null>>;
|
|
91
92
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IStorageAsyncFactory } from '../types';
|
|
2
2
|
export interface InRedisStorageOptions {
|
|
3
3
|
prefix?: string;
|
|
4
4
|
options?: Record<string, any>;
|
|
@@ -7,4 +7,4 @@ export interface InRedisStorageOptions {
|
|
|
7
7
|
* InRedis storage factory for consumer server-side SplitFactory, that uses `Ioredis` Redis client for Node.
|
|
8
8
|
* @see {@link https://www.npmjs.com/package/ioredis}
|
|
9
9
|
*/
|
|
10
|
-
export declare function InRedisStorage(options?: InRedisStorageOptions):
|
|
10
|
+
export declare function InRedisStorage(options?: InRedisStorageOptions): IStorageAsyncFactory;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IPluggableStorageWrapper, IEventsCacheAsync } from '../types';
|
|
2
2
|
import { IMetadata } from '../../dtos/types';
|
|
3
|
-
import {
|
|
4
|
-
import { ILogger } from '../../types';
|
|
3
|
+
import { SplitIO } from '../../types';
|
|
4
|
+
import { ILogger } from '../../logger/types';
|
|
5
5
|
import { StoredEventWithMetadata } from '../../sync/submitters/types';
|
|
6
6
|
export declare class EventsCachePluggable implements IEventsCacheAsync {
|
|
7
7
|
private readonly log;
|
|
@@ -15,7 +15,7 @@ export declare class EventsCachePluggable implements IEventsCacheAsync {
|
|
|
15
15
|
* @returns A promise that is resolved with a boolean value indicating if the push operation succeeded or failed.
|
|
16
16
|
* Unlike `impressions::track`, The promise will never be rejected.
|
|
17
17
|
*/
|
|
18
|
-
track(eventData: EventData): Promise<boolean>;
|
|
18
|
+
track(eventData: SplitIO.EventData): Promise<boolean>;
|
|
19
19
|
private _toJSON;
|
|
20
20
|
/**
|
|
21
21
|
* Returns a promise that resolves with the count of stored events, or 0 if there was some error.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IPluggableStorageWrapper, IImpressionsCacheAsync } from '../types';
|
|
2
2
|
import { IMetadata } from '../../dtos/types';
|
|
3
3
|
import { ImpressionDTO } from '../../types';
|
|
4
|
-
import { ILogger } from '../../types';
|
|
4
|
+
import { ILogger } from '../../logger/types';
|
|
5
5
|
import { StoredImpressionWithMetadata } from '../../sync/submitters/types';
|
|
6
6
|
export declare class ImpressionsCachePluggable implements IImpressionsCacheAsync {
|
|
7
7
|
private readonly log;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { KeyBuilderSS } from '../KeyBuilderSS';
|
|
2
2
|
import { IPluggableStorageWrapper, ISegmentsCacheAsync } from '../types';
|
|
3
|
-
import { ILogger } from '../../types';
|
|
3
|
+
import { ILogger } from '../../logger/types';
|
|
4
4
|
/**
|
|
5
5
|
* ISegmentsCacheAsync implementation for pluggable storages.
|
|
6
6
|
*/
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { KeyBuilder } from '../KeyBuilder';
|
|
2
2
|
import { IPluggableStorageWrapper } from '../types';
|
|
3
|
-
import { ILogger } from '../../types';
|
|
3
|
+
import { ILogger } from '../../logger/types';
|
|
4
|
+
import { ISplit } from '../../dtos/types';
|
|
4
5
|
import { AbstractSplitsCacheAsync } from '../AbstractSplitsCacheAsync';
|
|
5
6
|
/**
|
|
6
7
|
* ISplitsCacheAsync implementation for pluggable storages.
|
|
@@ -23,13 +24,13 @@ export declare class SplitsCachePluggable extends AbstractSplitsCacheAsync {
|
|
|
23
24
|
* The returned promise is resolved when the operation success
|
|
24
25
|
* or rejected if it fails (e.g., wrapper operation fails)
|
|
25
26
|
*/
|
|
26
|
-
addSplit(name: string, split:
|
|
27
|
+
addSplit(name: string, split: ISplit): Promise<boolean>;
|
|
27
28
|
/**
|
|
28
29
|
* Add a list of splits.
|
|
29
30
|
* The returned promise is resolved when the operation success
|
|
30
31
|
* or rejected if it fails (e.g., wrapper operation fails)
|
|
31
32
|
*/
|
|
32
|
-
addSplits(entries: [string,
|
|
33
|
+
addSplits(entries: [string, ISplit][]): Promise<boolean[]>;
|
|
33
34
|
/**
|
|
34
35
|
* Remove a given split.
|
|
35
36
|
* The returned promise is resolved when the operation success, with a boolean indicating if the split existed or not.
|
|
@@ -47,19 +48,19 @@ export declare class SplitsCachePluggable extends AbstractSplitsCacheAsync {
|
|
|
47
48
|
* The returned promise is resolved with the split definition or null if it's not defined,
|
|
48
49
|
* or rejected if wrapper operation fails.
|
|
49
50
|
*/
|
|
50
|
-
getSplit(name: string): Promise<
|
|
51
|
+
getSplit(name: string): Promise<ISplit | null>;
|
|
51
52
|
/**
|
|
52
53
|
* Get list of splits.
|
|
53
54
|
* The returned promise is resolved with a map of split names to their split definition or null if it's not defined,
|
|
54
55
|
* or rejected if wrapper operation fails.
|
|
55
56
|
*/
|
|
56
|
-
getSplits(names: string[]): Promise<Record<string,
|
|
57
|
+
getSplits(names: string[]): Promise<Record<string, ISplit | null>>;
|
|
57
58
|
/**
|
|
58
59
|
* Get list of all split definitions.
|
|
59
60
|
* The returned promise is resolved with the list of split definitions,
|
|
60
61
|
* or rejected if wrapper operation fails.
|
|
61
62
|
*/
|
|
62
|
-
getAll(): Promise<
|
|
63
|
+
getAll(): Promise<ISplit[]>;
|
|
63
64
|
/**
|
|
64
65
|
* Get list of split names.
|
|
65
66
|
* The returned promise is resolved with the list of split names,
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { IPluggableStorageWrapper } from '../types';
|
|
2
|
-
import { StorageAsyncFactory } from '../../types';
|
|
1
|
+
import { IPluggableStorageWrapper, IStorageAsyncFactory } from '../types';
|
|
3
2
|
export interface PluggableStorageOptions {
|
|
4
3
|
prefix?: string;
|
|
5
4
|
wrapper: IPluggableStorageWrapper;
|
|
@@ -7,4 +6,4 @@ export interface PluggableStorageOptions {
|
|
|
7
6
|
/**
|
|
8
7
|
* Pluggable storage factory for consumer server-side & client-side SplitFactory.
|
|
9
8
|
*/
|
|
10
|
-
export declare function PluggableStorage(options: PluggableStorageOptions):
|
|
9
|
+
export declare function PluggableStorage(options: PluggableStorageOptions): IStorageAsyncFactory;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { MaybeThenable, IMetadata } from '../dtos/types';
|
|
1
|
+
import { MaybeThenable, IMetadata, ISplitFiltersValidation, ISplit } from '../dtos/types';
|
|
2
|
+
import { ILogger } from '../logger/types';
|
|
2
3
|
import { EventDataType, HttpErrors, HttpLatencies, ImpressionDataType, LastSync, Method, MethodExceptions, MethodLatencies, OperationType, StoredEventWithMetadata, StoredImpressionWithMetadata, StreamingEvent } from '../sync/submitters/types';
|
|
3
|
-
import { ImpressionDTO, SDKMode
|
|
4
|
+
import { SplitIO, ImpressionDTO, SDKMode } from '../types';
|
|
4
5
|
/**
|
|
5
6
|
* Interface of a pluggable storage wrapper.
|
|
6
7
|
*/
|
|
@@ -177,13 +178,13 @@ export interface IPluggableStorageWrapper {
|
|
|
177
178
|
}
|
|
178
179
|
/** Splits cache */
|
|
179
180
|
export interface ISplitsCacheBase {
|
|
180
|
-
addSplits(entries: [string,
|
|
181
|
+
addSplits(entries: [string, ISplit][]): MaybeThenable<boolean[] | void>;
|
|
181
182
|
removeSplits(names: string[]): MaybeThenable<boolean[] | void>;
|
|
182
|
-
getSplit(name: string): MaybeThenable<
|
|
183
|
-
getSplits(names: string[]): MaybeThenable<Record<string,
|
|
183
|
+
getSplit(name: string): MaybeThenable<ISplit | null>;
|
|
184
|
+
getSplits(names: string[]): MaybeThenable<Record<string, ISplit | null>>;
|
|
184
185
|
setChangeNumber(changeNumber: number): MaybeThenable<boolean | void>;
|
|
185
186
|
getChangeNumber(): MaybeThenable<number>;
|
|
186
|
-
getAll(): MaybeThenable<
|
|
187
|
+
getAll(): MaybeThenable<ISplit[]>;
|
|
187
188
|
getSplitNames(): MaybeThenable<string[]>;
|
|
188
189
|
trafficTypeExists(trafficType: string): MaybeThenable<boolean>;
|
|
189
190
|
usesSegments(): MaybeThenable<boolean>;
|
|
@@ -192,13 +193,13 @@ export interface ISplitsCacheBase {
|
|
|
192
193
|
killLocally(name: string, defaultTreatment: string, changeNumber: number): MaybeThenable<boolean>;
|
|
193
194
|
}
|
|
194
195
|
export interface ISplitsCacheSync extends ISplitsCacheBase {
|
|
195
|
-
addSplits(entries: [string,
|
|
196
|
+
addSplits(entries: [string, ISplit][]): boolean[];
|
|
196
197
|
removeSplits(names: string[]): boolean[];
|
|
197
|
-
getSplit(name: string):
|
|
198
|
-
getSplits(names: string[]): Record<string,
|
|
198
|
+
getSplit(name: string): ISplit | null;
|
|
199
|
+
getSplits(names: string[]): Record<string, ISplit | null>;
|
|
199
200
|
setChangeNumber(changeNumber: number): boolean;
|
|
200
201
|
getChangeNumber(): number;
|
|
201
|
-
getAll():
|
|
202
|
+
getAll(): ISplit[];
|
|
202
203
|
getSplitNames(): string[];
|
|
203
204
|
trafficTypeExists(trafficType: string): boolean;
|
|
204
205
|
usesSegments(): boolean;
|
|
@@ -207,13 +208,13 @@ export interface ISplitsCacheSync extends ISplitsCacheBase {
|
|
|
207
208
|
killLocally(name: string, defaultTreatment: string, changeNumber: number): boolean;
|
|
208
209
|
}
|
|
209
210
|
export interface ISplitsCacheAsync extends ISplitsCacheBase {
|
|
210
|
-
addSplits(entries: [string,
|
|
211
|
+
addSplits(entries: [string, ISplit][]): Promise<boolean[] | void>;
|
|
211
212
|
removeSplits(names: string[]): Promise<boolean[] | void>;
|
|
212
|
-
getSplit(name: string): Promise<
|
|
213
|
-
getSplits(names: string[]): Promise<Record<string,
|
|
213
|
+
getSplit(name: string): Promise<ISplit | null>;
|
|
214
|
+
getSplits(names: string[]): Promise<Record<string, ISplit | null>>;
|
|
214
215
|
setChangeNumber(changeNumber: number): Promise<boolean | void>;
|
|
215
216
|
getChangeNumber(): Promise<number>;
|
|
216
|
-
getAll(): Promise<
|
|
217
|
+
getAll(): Promise<ISplit[]>;
|
|
217
218
|
getSplitNames(): Promise<string[]>;
|
|
218
219
|
trafficTypeExists(trafficType: string): Promise<boolean>;
|
|
219
220
|
usesSegments(): Promise<boolean>;
|
|
@@ -259,7 +260,7 @@ export interface IImpressionsCacheBase {
|
|
|
259
260
|
track(data: ImpressionDTO[]): MaybeThenable<void>;
|
|
260
261
|
}
|
|
261
262
|
export interface IEventsCacheBase {
|
|
262
|
-
track(data: EventData, size?: number): MaybeThenable<boolean>;
|
|
263
|
+
track(data: SplitIO.EventData, size?: number): MaybeThenable<boolean>;
|
|
263
264
|
}
|
|
264
265
|
/** Impressions and events cache for standalone mode (sync) */
|
|
265
266
|
export interface IRecorderCacheProducerSync<T> {
|
|
@@ -271,8 +272,8 @@ export interface IImpressionsCacheSync extends IImpressionsCacheBase, IRecorderC
|
|
|
271
272
|
track(data: ImpressionDTO[]): void;
|
|
272
273
|
setOnFullQueueCb(cb: () => void): void;
|
|
273
274
|
}
|
|
274
|
-
export interface IEventsCacheSync extends IEventsCacheBase, IRecorderCacheProducerSync<EventData[]> {
|
|
275
|
-
track(data: EventData, size?: number): boolean;
|
|
275
|
+
export interface IEventsCacheSync extends IEventsCacheBase, IRecorderCacheProducerSync<SplitIO.EventData[]> {
|
|
276
|
+
track(data: SplitIO.EventData, size?: number): boolean;
|
|
276
277
|
setOnFullQueueCb(cb: () => void): void;
|
|
277
278
|
}
|
|
278
279
|
/** Impressions and events cache for consumer and producer mode (async) */
|
|
@@ -285,7 +286,7 @@ export interface IImpressionsCacheAsync extends IImpressionsCacheBase, IRecorder
|
|
|
285
286
|
track(data: ImpressionDTO[]): Promise<void>;
|
|
286
287
|
}
|
|
287
288
|
export interface IEventsCacheAsync extends IEventsCacheBase, IRecorderCacheProducerAsync<StoredEventWithMetadata[]> {
|
|
288
|
-
track(data: EventData, size?: number): Promise<boolean>;
|
|
289
|
+
track(data: SplitIO.EventData, size?: number): Promise<boolean>;
|
|
289
290
|
}
|
|
290
291
|
/**
|
|
291
292
|
* Impression counts cache for impressions dedup in standalone and producer mode.
|
|
@@ -392,39 +393,12 @@ export interface IStorageFactoryParams {
|
|
|
392
393
|
onReadyCb: (error?: any) => void;
|
|
393
394
|
metadata: IMetadata;
|
|
394
395
|
}
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
lastUpdated: number;
|
|
405
|
-
/**
|
|
406
|
-
* Change number of the preloaded data.
|
|
407
|
-
* If this value is older than the current changeNumber at the storage, the data is not used to update the storage content.
|
|
408
|
-
*/
|
|
409
|
-
since: number;
|
|
410
|
-
/**
|
|
411
|
-
* Map of splits to their serialized definitions.
|
|
412
|
-
*/
|
|
413
|
-
splitsData: {
|
|
414
|
-
[splitName: string]: string;
|
|
415
|
-
};
|
|
416
|
-
/**
|
|
417
|
-
* Optional map of user keys to their list of segments.
|
|
418
|
-
* @TODO remove when releasing first version
|
|
419
|
-
*/
|
|
420
|
-
mySegmentsData?: {
|
|
421
|
-
[key: string]: string[];
|
|
422
|
-
};
|
|
423
|
-
/**
|
|
424
|
-
* Optional map of segments to their serialized definitions.
|
|
425
|
-
* This property is ignored if `mySegmentsData` was provided.
|
|
426
|
-
*/
|
|
427
|
-
segmentsData?: {
|
|
428
|
-
[segmentName: string]: string;
|
|
429
|
-
};
|
|
430
|
-
}
|
|
396
|
+
export declare type StorageType = 'MEMORY' | 'LOCALSTORAGE' | 'REDIS' | 'PLUGGABLE';
|
|
397
|
+
export declare type IStorageSyncFactory = {
|
|
398
|
+
readonly type: StorageType;
|
|
399
|
+
(params: IStorageFactoryParams): IStorageSync;
|
|
400
|
+
};
|
|
401
|
+
export declare type IStorageAsyncFactory = {
|
|
402
|
+
type: StorageType;
|
|
403
|
+
(params: IStorageFactoryParams): IStorageAsync;
|
|
404
|
+
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function LocalhostFromObject(): LocalhostFactory;
|
|
1
|
+
import { SplitIO } from '../../types';
|
|
2
|
+
export declare function LocalhostFromObject(): SplitIO.LocalhostFactory;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IMySegmentsFetcher } from '../fetchers/types';
|
|
2
2
|
import { ISegmentsCacheSync, ISplitsCacheSync } from '../../../storages/types';
|
|
3
3
|
import { ISegmentsEventEmitter } from '../../../readiness/types';
|
|
4
|
-
import { ILogger } from '../../../types';
|
|
4
|
+
import { ILogger } from '../../../logger/types';
|
|
5
5
|
declare type IMySegmentsUpdater = (segmentList?: string[], noCache?: boolean) => Promise<boolean>;
|
|
6
6
|
/**
|
|
7
7
|
* factory of MySegments updater, a task that:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ISegmentChangesFetcher } from '../fetchers/types';
|
|
2
2
|
import { ISegmentsCacheBase } from '../../../storages/types';
|
|
3
3
|
import { IReadinessManager } from '../../../readiness/types';
|
|
4
|
-
import { ILogger } from '../../../types';
|
|
4
|
+
import { ILogger } from '../../../logger/types';
|
|
5
5
|
declare type ISegmentChangesUpdater = (fetchOnlyNew?: boolean, segmentName?: string, noCache?: boolean, till?: number) => Promise<boolean>;
|
|
6
6
|
/**
|
|
7
7
|
* Factory of SegmentChanges updater, a task that:
|
|
@@ -3,7 +3,7 @@ import { ISegmentsCacheBase, ISplitsCacheBase } from '../../../storages/types';
|
|
|
3
3
|
import { ISplitChangesFetcher } from '../fetchers/types';
|
|
4
4
|
import { ISplit } from '../../../dtos/types';
|
|
5
5
|
import { ISplitsEventEmitter } from '../../../readiness/types';
|
|
6
|
-
import { ILogger } from '../../../types';
|
|
6
|
+
import { ILogger } from '../../../logger/types';
|
|
7
7
|
declare type ISplitChangesUpdater = (noCache?: boolean, till?: number) => Promise<boolean>;
|
|
8
8
|
/**
|
|
9
9
|
* Collect segments from a raw split definition.
|
|
@@ -11,7 +11,7 @@ declare type ISplitChangesUpdater = (noCache?: boolean, till?: number) => Promis
|
|
|
11
11
|
*/
|
|
12
12
|
export declare function parseSegments({ conditions }: ISplit): ISet<string>;
|
|
13
13
|
interface ISplitMutations {
|
|
14
|
-
added: [string,
|
|
14
|
+
added: [string, ISplit][];
|
|
15
15
|
removed: string[];
|
|
16
16
|
segments: string[];
|
|
17
17
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { IPushEventEmitter } from '../types';
|
|
2
2
|
import { ISseEventHandler } from '../SSEClient/types';
|
|
3
|
-
import { ILogger } from '../../../types';
|
|
3
|
+
import { ILogger } from '../../../logger/types';
|
|
4
4
|
import { ITelemetryTracker } from '../../../trackers/types';
|
|
5
5
|
/**
|
|
6
6
|
* Factory for SSEHandler, which processes SSEClient messages and emits the corresponding push events.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ILogger } from '../../../types';
|
|
1
|
+
import { ILogger } from '../../../logger/types';
|
|
2
2
|
import { ISplitsEventEmitter } from '../../../readiness/types';
|
|
3
3
|
import { ISplitsCacheSync } from '../../../storages/types';
|
|
4
4
|
import { ISegmentsSyncTask, ISplitsSyncTask } from '../../polling/types';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ISyncTask } from '../types';
|
|
2
2
|
import { IRecorderCacheProducerSync } from '../../storages/types';
|
|
3
|
-
import { ILogger } from '../../types';
|
|
3
|
+
import { ILogger } from '../../logger/types';
|
|
4
4
|
import { IResponse } from '../../services/types';
|
|
5
5
|
/**
|
|
6
6
|
* Base function to create submitters, such as ImpressionsSubmitter and EventsSubmitter
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IMetadata } from '../../dtos/types';
|
|
2
|
-
import {
|
|
2
|
+
import { SplitIO } from '../../types';
|
|
3
3
|
import { ISyncTask } from '../types';
|
|
4
4
|
export declare type ImpressionsPayload = {
|
|
5
5
|
/** Split name */
|
|
@@ -57,7 +57,7 @@ export declare type StoredEventWithMetadata = {
|
|
|
57
57
|
/** Metadata */
|
|
58
58
|
m: IMetadata;
|
|
59
59
|
/** Stored event */
|
|
60
|
-
e: EventData;
|
|
60
|
+
e: SplitIO.EventData;
|
|
61
61
|
};
|
|
62
62
|
/**
|
|
63
63
|
* Telemetry usage stats
|
package/types/sync/syncTask.d.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SplitIO, ImpressionDTO } from '../types';
|
|
2
2
|
import { StreamingEventType, Method, OperationType } from '../sync/submitters/types';
|
|
3
3
|
import { IEventsCacheBase } from '../storages/types';
|
|
4
4
|
import { NetworkError } from '../services/types';
|
|
5
5
|
/** Events tracker */
|
|
6
6
|
export interface IEventsHandler {
|
|
7
|
-
handleEvent(eventData: EventData): any;
|
|
7
|
+
handleEvent(eventData: SplitIO.EventData): any;
|
|
8
8
|
}
|
|
9
9
|
export declare type IEventTracker = IEventsCacheBase;
|
|
10
10
|
/** Impressions tracker */
|
|
11
11
|
export interface IImpressionsHandler {
|
|
12
|
-
handleImpression(impressionData: ImpressionData): any;
|
|
12
|
+
handleImpression(impressionData: SplitIO.ImpressionData): any;
|
|
13
13
|
}
|
|
14
14
|
export interface IImpressionsTracker {
|
|
15
|
-
track(impressions: ImpressionDTO[], attributes?: Attributes): void;
|
|
15
|
+
track(impressions: ImpressionDTO[], attributes?: SplitIO.Attributes): void;
|
|
16
16
|
}
|
|
17
17
|
/** Telemetry tracker */
|
|
18
18
|
export declare type AUTH_REJECTION = 80;
|
|
@@ -33,4 +33,8 @@ export interface ITelemetryTracker {
|
|
|
33
33
|
* Records streaming event
|
|
34
34
|
*/
|
|
35
35
|
streamingEvent(e: StreamingEventType | AUTH_REJECTION, d?: number): void;
|
|
36
|
+
/**
|
|
37
|
+
* Records tag
|
|
38
|
+
*/
|
|
39
|
+
addTag(tag: string): void;
|
|
36
40
|
}
|