@splitsoftware/splitio-commons 1.16.1-rc.0 → 1.16.1-rc.10
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 +4 -0
- package/cjs/logger/constants.js +5 -4
- package/cjs/logger/messages/info.js +2 -1
- package/cjs/logger/messages/warn.js +1 -1
- package/cjs/readiness/readinessManager.js +3 -9
- package/cjs/services/splitApi.js +4 -8
- package/cjs/storages/AbstractSegmentsCacheSync.js +1 -6
- package/cjs/storages/AbstractSplitsCacheAsync.js +2 -2
- package/cjs/storages/AbstractSplitsCacheSync.js +7 -5
- package/cjs/storages/KeyBuilder.js +0 -3
- package/cjs/storages/KeyBuilderCS.js +6 -0
- package/cjs/storages/inLocalStorage/MySegmentsCacheInLocal.js +23 -2
- package/cjs/storages/inLocalStorage/SplitsCacheInLocal.js +4 -16
- package/cjs/storages/inMemory/MySegmentsCacheInMemory.js +5 -1
- package/cjs/storages/inMemory/SplitsCacheInMemory.js +6 -15
- package/cjs/storages/pluggable/inMemoryWrapper.js +1 -1
- package/cjs/sync/polling/fetchers/mySegmentsFetcher.js +4 -7
- package/cjs/sync/polling/fetchers/segmentChangesFetcher.js +1 -1
- package/cjs/sync/polling/pollingManagerCS.js +30 -54
- package/cjs/sync/polling/syncTasks/mySegmentsSyncTask.js +2 -2
- package/cjs/sync/polling/updaters/mySegmentsUpdater.js +25 -27
- package/cjs/sync/streaming/SSEHandler/index.js +7 -8
- package/cjs/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.js +18 -5
- package/cjs/sync/streaming/constants.js +2 -3
- package/cjs/sync/streaming/parseUtils.js +14 -9
- package/cjs/sync/streaming/pushManager.js +29 -53
- package/cjs/sync/submitters/telemetrySubmitter.js +0 -2
- package/cjs/sync/syncManagerOnline.js +14 -24
- package/cjs/utils/constants/index.js +1 -1
- package/cjs/utils/settingsValidation/index.js +1 -5
- package/esm/logger/constants.js +2 -1
- package/esm/logger/messages/info.js +2 -1
- package/esm/logger/messages/warn.js +1 -1
- package/esm/readiness/readinessManager.js +3 -9
- package/esm/services/splitApi.js +5 -9
- package/esm/storages/AbstractSegmentsCacheSync.js +1 -6
- package/esm/storages/AbstractSplitsCacheAsync.js +2 -2
- package/esm/storages/AbstractSplitsCacheSync.js +5 -3
- package/esm/storages/KeyBuilder.js +0 -3
- package/esm/storages/KeyBuilderCS.js +6 -0
- package/esm/storages/inLocalStorage/MySegmentsCacheInLocal.js +23 -2
- package/esm/storages/inLocalStorage/SplitsCacheInLocal.js +5 -17
- package/esm/storages/inMemory/MySegmentsCacheInMemory.js +5 -1
- package/esm/storages/inMemory/SplitsCacheInMemory.js +7 -16
- package/esm/storages/pluggable/inMemoryWrapper.js +1 -1
- package/esm/sync/polling/fetchers/mySegmentsFetcher.js +4 -7
- package/esm/sync/polling/fetchers/segmentChangesFetcher.js +1 -1
- package/esm/sync/polling/pollingManagerCS.js +31 -55
- package/esm/sync/polling/syncTasks/mySegmentsSyncTask.js +2 -2
- package/esm/sync/polling/updaters/mySegmentsUpdater.js +23 -25
- package/esm/sync/streaming/SSEHandler/index.js +8 -9
- package/esm/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.js +18 -5
- package/esm/sync/streaming/constants.js +1 -2
- package/esm/sync/streaming/parseUtils.js +12 -8
- package/esm/sync/streaming/pushManager.js +31 -54
- package/esm/sync/submitters/telemetrySubmitter.js +0 -2
- package/esm/sync/syncManagerOnline.js +15 -25
- package/esm/utils/constants/index.js +1 -1
- package/esm/utils/settingsValidation/index.js +1 -5
- package/package.json +1 -1
- package/src/dtos/types.ts +14 -8
- package/src/logger/constants.ts +2 -1
- package/src/logger/messages/info.ts +2 -1
- package/src/logger/messages/warn.ts +1 -1
- package/src/readiness/readinessManager.ts +3 -7
- package/src/readiness/types.ts +0 -1
- package/src/services/splitApi.ts +6 -11
- package/src/services/splitHttpClient.ts +1 -1
- package/src/services/types.ts +2 -3
- package/src/storages/AbstractSegmentsCacheSync.ts +2 -6
- package/src/storages/AbstractSplitsCacheAsync.ts +2 -2
- package/src/storages/AbstractSplitsCacheSync.ts +6 -4
- package/src/storages/KeyBuilder.ts +0 -3
- package/src/storages/KeyBuilderCS.ts +9 -0
- package/src/storages/inLocalStorage/MySegmentsCacheInLocal.ts +26 -2
- package/src/storages/inLocalStorage/SplitsCacheInLocal.ts +5 -20
- package/src/storages/inMemory/MySegmentsCacheInMemory.ts +7 -1
- package/src/storages/inMemory/SplitsCacheInMemory.ts +7 -13
- package/src/storages/pluggable/inMemoryWrapper.ts +1 -1
- package/src/storages/types.ts +6 -5
- package/src/sync/polling/fetchers/mySegmentsFetcher.ts +7 -10
- package/src/sync/polling/fetchers/segmentChangesFetcher.ts +1 -1
- package/src/sync/polling/fetchers/types.ts +2 -2
- package/src/sync/polling/pollingManagerCS.ts +27 -62
- package/src/sync/polling/syncTasks/mySegmentsSyncTask.ts +11 -11
- package/src/sync/polling/types.ts +9 -8
- package/src/sync/polling/updaters/mySegmentsUpdater.ts +22 -24
- package/src/sync/streaming/SSEClient/index.ts +4 -6
- package/src/sync/streaming/SSEHandler/index.ts +11 -13
- package/src/sync/streaming/SSEHandler/types.ts +13 -25
- package/src/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.ts +21 -7
- package/src/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.ts +1 -1
- package/src/sync/streaming/UpdateWorkers/SplitsUpdateWorker.ts +1 -1
- package/src/sync/streaming/UpdateWorkers/types.ts +2 -2
- package/src/sync/streaming/constants.ts +1 -2
- package/src/sync/streaming/parseUtils.ts +19 -11
- package/src/sync/streaming/pushManager.ts +37 -65
- package/src/sync/streaming/types.ts +9 -11
- package/src/sync/submitters/telemetrySubmitter.ts +0 -2
- package/src/sync/submitters/types.ts +1 -3
- package/src/sync/syncManagerOnline.ts +11 -19
- package/src/types.ts +1 -26
- package/src/utils/constants/index.ts +1 -1
- package/src/utils/settingsValidation/index.ts +1 -5
- package/types/dtos/types.d.ts +14 -7
- package/types/logger/constants.d.ts +2 -1
- package/types/readiness/types.d.ts +0 -1
- package/types/services/decorateHeaders.d.ts +2 -0
- package/types/services/splitApi.d.ts +1 -1
- package/types/services/splitHttpClient.d.ts +1 -1
- package/types/services/types.d.ts +2 -3
- package/types/storages/AbstractSegmentsCacheSync.d.ts +2 -6
- package/types/storages/AbstractSplitsCacheAsync.d.ts +1 -1
- package/types/storages/AbstractSplitsCacheSync.d.ts +3 -3
- package/types/storages/KeyBuilder.d.ts +0 -1
- package/types/storages/KeyBuilderCS.d.ts +2 -0
- package/types/storages/inLocalStorage/MySegmentsCacheInLocal.d.ts +3 -2
- package/types/storages/inLocalStorage/SplitsCacheInLocal.d.ts +1 -1
- package/types/storages/inMemory/MySegmentsCacheInMemory.d.ts +3 -1
- package/types/storages/inMemory/SplitsCacheInMemory.d.ts +1 -2
- package/types/storages/pluggable/inMemoryWrapper.d.ts +1 -1
- package/types/storages/types.d.ts +4 -4
- package/types/sync/polling/fetchers/mySegmentsFetcher.d.ts +2 -2
- package/types/sync/polling/fetchers/types.d.ts +2 -2
- package/types/sync/polling/syncTasks/mySegmentsSyncTask.d.ts +4 -3
- package/types/sync/polling/types.d.ts +7 -13
- package/types/sync/polling/updaters/mySegmentsUpdater.d.ts +3 -2
- package/types/sync/streaming/SSEHandler/types.d.ts +13 -22
- package/types/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.d.ts +2 -2
- package/types/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.d.ts +2 -1
- package/types/sync/streaming/UpdateWorkers/SplitsUpdateWorker.d.ts +3 -2
- package/types/sync/streaming/UpdateWorkers/types.d.ts +2 -2
- package/types/sync/streaming/constants.d.ts +1 -2
- package/types/sync/streaming/parseUtils.d.ts +4 -5
- package/types/sync/streaming/pushManager.d.ts +0 -2
- package/types/sync/streaming/pushManagerCS_Spec1_3.d.ts +9 -0
- package/types/sync/streaming/pushManager_Spec1_3.d.ts +9 -0
- package/types/sync/streaming/types.d.ts +8 -9
- package/types/sync/submitters/types.d.ts +1 -3
- package/types/types.d.ts +0 -25
- package/types/utils/constants/index.d.ts +1 -1
- package/types/utils/settingsValidation/index.d.ts +0 -2
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
import { ControlType } from '../constants';
|
|
2
|
-
import {
|
|
3
|
-
export interface IMySegmentsUpdateData {
|
|
4
|
-
type: MY_SEGMENTS_UPDATE;
|
|
5
|
-
changeNumber: number;
|
|
6
|
-
includesPayload: boolean;
|
|
7
|
-
segmentList?: string[];
|
|
8
|
-
}
|
|
2
|
+
import { SEGMENT_UPDATE, SPLIT_UPDATE, SPLIT_KILL, CONTROL, OCCUPANCY, MY_LARGE_SEGMENTS_UPDATE, MY_SEGMENTS_UPDATE_V3 } from '../types';
|
|
9
3
|
export declare enum Compression {
|
|
10
4
|
None = 0,
|
|
11
5
|
Gzip = 1,
|
|
@@ -21,25 +15,21 @@ export interface KeyList {
|
|
|
21
15
|
a?: string[];
|
|
22
16
|
r?: string[];
|
|
23
17
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
c
|
|
29
|
-
d
|
|
30
|
-
u: UpdateStrategy;
|
|
31
|
-
}
|
|
32
|
-
export interface IMyLargeSegmentsUpdateData {
|
|
33
|
-
type: MY_LARGE_SEGMENTS_UPDATE;
|
|
34
|
-
changeNumber: number;
|
|
35
|
-
largeSegments: string[];
|
|
36
|
-
c: Compression;
|
|
37
|
-
d: string;
|
|
18
|
+
interface IMySegmentsUpdateData<T extends string> {
|
|
19
|
+
t: T;
|
|
20
|
+
cn: number;
|
|
21
|
+
n?: string[];
|
|
22
|
+
c?: Compression;
|
|
23
|
+
d?: string;
|
|
38
24
|
u: UpdateStrategy;
|
|
39
25
|
i?: number;
|
|
40
26
|
h?: number;
|
|
41
27
|
s?: number;
|
|
42
28
|
}
|
|
29
|
+
export interface IMySegmentsUpdateV3Data extends IMySegmentsUpdateData<MY_SEGMENTS_UPDATE_V3> {
|
|
30
|
+
}
|
|
31
|
+
export interface IMyLargeSegmentsUpdateData extends IMySegmentsUpdateData<MY_LARGE_SEGMENTS_UPDATE> {
|
|
32
|
+
}
|
|
43
33
|
export interface ISegmentUpdateData {
|
|
44
34
|
type: SEGMENT_UPDATE;
|
|
45
35
|
changeNumber: number;
|
|
@@ -68,7 +58,7 @@ export interface IOccupancyData {
|
|
|
68
58
|
publishers: number;
|
|
69
59
|
};
|
|
70
60
|
}
|
|
71
|
-
export declare type INotificationData =
|
|
61
|
+
export declare type INotificationData = IMySegmentsUpdateV3Data | IMyLargeSegmentsUpdateData | ISegmentUpdateData | ISplitUpdateData | ISplitKillData | IControlData | IOccupancyData;
|
|
72
62
|
export declare type INotificationMessage = {
|
|
73
63
|
parsedData: INotificationData;
|
|
74
64
|
channel: string;
|
|
@@ -79,3 +69,4 @@ export declare type INotificationError = Event & {
|
|
|
79
69
|
parsedData?: any;
|
|
80
70
|
message?: string;
|
|
81
71
|
};
|
|
72
|
+
export {};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { IMySegmentsSyncTask } from '../../polling/types';
|
|
1
|
+
import { IMySegmentsSyncTask, MySegmentsData } from '../../polling/types';
|
|
2
2
|
import { IUpdateWorker } from './types';
|
|
3
3
|
import { ITelemetryTracker } from '../../../trackers/types';
|
|
4
4
|
import { UpdatesFromSSEEnum } from '../../submitters/types';
|
|
5
5
|
/**
|
|
6
6
|
* MySegmentsUpdateWorker factory
|
|
7
7
|
*/
|
|
8
|
-
export declare function MySegmentsUpdateWorker(mySegmentsSyncTask: IMySegmentsSyncTask, telemetryTracker: ITelemetryTracker, updateType: UpdatesFromSSEEnum): IUpdateWorker
|
|
8
|
+
export declare function MySegmentsUpdateWorker(mySegmentsSyncTask: IMySegmentsSyncTask, telemetryTracker: ITelemetryTracker, updateType: UpdatesFromSSEEnum): IUpdateWorker<[changeNumber: number, segmentsData?: MySegmentsData, delay?: number]>;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { ILogger } from '../../../logger/types';
|
|
2
2
|
import { ISegmentsCacheSync } from '../../../storages/types';
|
|
3
3
|
import { ISegmentsSyncTask } from '../../polling/types';
|
|
4
|
+
import { ISegmentUpdateData } from '../SSEHandler/types';
|
|
4
5
|
import { IUpdateWorker } from './types';
|
|
5
6
|
/**
|
|
6
7
|
* SegmentsUpdateWorker factory
|
|
7
8
|
*/
|
|
8
|
-
export declare function SegmentsUpdateWorker(log: ILogger, segmentsSyncTask: ISegmentsSyncTask, segmentsCache: ISegmentsCacheSync): IUpdateWorker
|
|
9
|
+
export declare function SegmentsUpdateWorker(log: ILogger, segmentsSyncTask: ISegmentsSyncTask, segmentsCache: ISegmentsCacheSync): IUpdateWorker<[ISegmentUpdateData]>;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
+
import { ISplit } from '../../../dtos/types';
|
|
1
2
|
import { ILogger } from '../../../logger/types';
|
|
2
3
|
import { ISplitsEventEmitter } from '../../../readiness/types';
|
|
3
4
|
import { ISplitsCacheSync } from '../../../storages/types';
|
|
4
5
|
import { ITelemetryTracker } from '../../../trackers/types';
|
|
5
6
|
import { ISegmentsSyncTask, ISplitsSyncTask } from '../../polling/types';
|
|
6
|
-
import { ISplitKillData } from '../SSEHandler/types';
|
|
7
|
+
import { ISplitKillData, ISplitUpdateData } from '../SSEHandler/types';
|
|
7
8
|
import { IUpdateWorker } from './types';
|
|
8
9
|
/**
|
|
9
10
|
* SplitsUpdateWorker factory
|
|
10
11
|
*/
|
|
11
|
-
export declare function SplitsUpdateWorker(log: ILogger, splitsCache: ISplitsCacheSync, splitsSyncTask: ISplitsSyncTask, splitsEventEmitter: ISplitsEventEmitter, telemetryTracker: ITelemetryTracker, segmentsSyncTask?: ISegmentsSyncTask): IUpdateWorker & {
|
|
12
|
+
export declare function SplitsUpdateWorker(log: ILogger, splitsCache: ISplitsCacheSync, splitsSyncTask: ISplitsSyncTask, splitsEventEmitter: ISplitsEventEmitter, telemetryTracker: ITelemetryTracker, segmentsSyncTask?: ISegmentsSyncTask): IUpdateWorker<[updateData: ISplitUpdateData, payload?: ISplit]> & {
|
|
12
13
|
killSplit(event: ISplitKillData): void;
|
|
13
14
|
};
|
|
@@ -19,8 +19,7 @@ export declare const PUSH_SUBSYSTEM_UP = "PUSH_SUBSYSTEM_UP";
|
|
|
19
19
|
* triggers `startPolling` and `stopWorkers` calls
|
|
20
20
|
*/
|
|
21
21
|
export declare const PUSH_SUBSYSTEM_DOWN = "PUSH_SUBSYSTEM_DOWN";
|
|
22
|
-
export declare const
|
|
23
|
-
export declare const MY_SEGMENTS_UPDATE_V2 = "MY_SEGMENTS_UPDATE_V2";
|
|
22
|
+
export declare const MY_SEGMENTS_UPDATE_V3 = "MY_SEGMENTS_UPDATE_V3";
|
|
24
23
|
export declare const SEGMENT_UPDATE = "SEGMENT_UPDATE";
|
|
25
24
|
export declare const SPLIT_KILL = "SPLIT_KILL";
|
|
26
25
|
export declare const SPLIT_UPDATE = "SPLIT_UPDATE";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Compression, KeyList } from './SSEHandler/types';
|
|
1
|
+
import { Compression, IMyLargeSegmentsUpdateData, KeyList } from './SSEHandler/types';
|
|
2
|
+
import { ISplit } from '../../dtos/types';
|
|
2
3
|
/**
|
|
3
4
|
* Decode, decompress and parse the provided 'data' into a KeyList object
|
|
4
5
|
*
|
|
@@ -28,8 +29,6 @@ export declare function parseBitmap(data: string, compression: Compression): Uin
|
|
|
28
29
|
export declare function isInBitmap(bitmap: Uint8Array, hash64hex: string): boolean;
|
|
29
30
|
/**
|
|
30
31
|
* Parse feature flags notifications for instant feature flag updates
|
|
31
|
-
*
|
|
32
|
-
* @param {ISplitUpdateData} data
|
|
33
|
-
* @returns {KeyList}
|
|
34
32
|
*/
|
|
35
|
-
export declare function parseFFUpdatePayload(compression: Compression, data: string):
|
|
33
|
+
export declare function parseFFUpdatePayload(compression: Compression, data: string): ISplit | undefined;
|
|
34
|
+
export declare function getDelay(parsedData: Pick<IMyLargeSegmentsUpdateData, 'i' | 'h' | 's'>, matchingKey: string): number;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { IPushManager } from './types';
|
|
2
2
|
import { IPollingManager } from '../polling/types';
|
|
3
|
-
import { IMyLargeSegmentsUpdateData } from './SSEHandler/types';
|
|
4
3
|
import { ISdkFactoryContextSync } from '../../sdkFactory/types';
|
|
5
|
-
export declare function getDelay(parsedData: IMyLargeSegmentsUpdateData, matchingKey: string): number;
|
|
6
4
|
/**
|
|
7
5
|
* PushManager factory:
|
|
8
6
|
* - for server-side if key is not provided in settings.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { IPushManager } from './types';
|
|
2
|
+
import { IPollingManager } from '../polling/types';
|
|
3
|
+
import { ISdkFactoryContextSync } from '../../sdkFactory/types';
|
|
4
|
+
/**
|
|
5
|
+
* PushManager factory:
|
|
6
|
+
* - for server-side if key is not provided in settings.
|
|
7
|
+
* - for client-side, with support for multiple clients, if key is provided in settings
|
|
8
|
+
*/
|
|
9
|
+
export declare function pushManagerFactory(params: ISdkFactoryContextSync, pollingManager: IPollingManager): IPushManager | undefined;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { IPushManager } from './types';
|
|
2
|
+
import { IPollingManager } from '../polling/types';
|
|
3
|
+
import { ISdkFactoryContextSync } from '../../sdkFactory/types';
|
|
4
|
+
/**
|
|
5
|
+
* PushManager factory:
|
|
6
|
+
* - for server-side if key is not provided in settings.
|
|
7
|
+
* - for client-side, with support for multiple clients, if key is provided in settings
|
|
8
|
+
*/
|
|
9
|
+
export declare function pushManagerFactory(params: ISdkFactoryContextSync, pollingManager: IPollingManager): IPushManager | undefined;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IMySegmentsUpdateV3Data, ISegmentUpdateData, ISplitUpdateData, ISplitKillData, IMyLargeSegmentsUpdateData, INotificationData } from './SSEHandler/types';
|
|
2
2
|
import { ITask } from '../types';
|
|
3
3
|
import { IMySegmentsSyncTask } from '../polling/types';
|
|
4
4
|
import { IEventEmitter } from '../../types';
|
|
@@ -7,30 +7,29 @@ export declare type PUSH_SUBSYSTEM_UP = 'PUSH_SUBSYSTEM_UP';
|
|
|
7
7
|
export declare type PUSH_SUBSYSTEM_DOWN = 'PUSH_SUBSYSTEM_DOWN';
|
|
8
8
|
export declare type PUSH_NONRETRYABLE_ERROR = 'PUSH_NONRETRYABLE_ERROR';
|
|
9
9
|
export declare type PUSH_RETRYABLE_ERROR = 'PUSH_RETRYABLE_ERROR';
|
|
10
|
-
export declare type
|
|
11
|
-
export declare type MY_SEGMENTS_UPDATE_V2 = 'MY_SEGMENTS_UPDATE_V2';
|
|
10
|
+
export declare type MY_SEGMENTS_UPDATE_V3 = 'MY_SEGMENTS_UPDATE_V3';
|
|
12
11
|
export declare type SEGMENT_UPDATE = 'SEGMENT_UPDATE';
|
|
13
12
|
export declare type SPLIT_KILL = 'SPLIT_KILL';
|
|
14
13
|
export declare type SPLIT_UPDATE = 'SPLIT_UPDATE';
|
|
15
14
|
export declare type MY_LARGE_SEGMENTS_UPDATE = 'MY_LARGE_SEGMENTS_UPDATE';
|
|
16
15
|
export declare type CONTROL = 'CONTROL';
|
|
17
16
|
export declare type OCCUPANCY = 'OCCUPANCY';
|
|
18
|
-
export declare type IPushEvent = PUSH_SUBSYSTEM_UP | PUSH_SUBSYSTEM_DOWN | PUSH_NONRETRYABLE_ERROR | PUSH_RETRYABLE_ERROR |
|
|
19
|
-
declare type IParsedData<T extends IPushEvent> = T extends
|
|
17
|
+
export declare type IPushEvent = PUSH_SUBSYSTEM_UP | PUSH_SUBSYSTEM_DOWN | PUSH_NONRETRYABLE_ERROR | PUSH_RETRYABLE_ERROR | MY_SEGMENTS_UPDATE_V3 | SEGMENT_UPDATE | SPLIT_UPDATE | SPLIT_KILL | MY_LARGE_SEGMENTS_UPDATE | ControlType.STREAMING_RESET;
|
|
18
|
+
declare type IParsedData<T extends IPushEvent> = T extends MY_SEGMENTS_UPDATE_V3 ? IMySegmentsUpdateV3Data : T extends MY_LARGE_SEGMENTS_UPDATE ? IMyLargeSegmentsUpdateData : T extends SEGMENT_UPDATE ? ISegmentUpdateData : T extends SPLIT_UPDATE ? ISplitUpdateData : T extends SPLIT_KILL ? ISplitKillData : INotificationData;
|
|
20
19
|
/**
|
|
21
20
|
* EventEmitter used as Feedback Loop between the SyncManager and PushManager,
|
|
22
21
|
* where the latter pushes messages and the former consumes it
|
|
23
22
|
*/
|
|
24
23
|
export interface IPushEventEmitter extends IEventEmitter {
|
|
25
|
-
once<T extends IPushEvent>(event: T, listener: (parsedData: IParsedData<T
|
|
26
|
-
on<T extends IPushEvent>(event: T, listener: (parsedData: IParsedData<T
|
|
27
|
-
emit<T extends IPushEvent>(event: T, parsedData?: IParsedData<T
|
|
24
|
+
once<T extends IPushEvent>(event: T, listener: (parsedData: IParsedData<T>) => void): this;
|
|
25
|
+
on<T extends IPushEvent>(event: T, listener: (parsedData: IParsedData<T>) => void): this;
|
|
26
|
+
emit<T extends IPushEvent>(event: T, parsedData?: IParsedData<T>): boolean;
|
|
28
27
|
}
|
|
29
28
|
/**
|
|
30
29
|
* PushManager
|
|
31
30
|
*/
|
|
32
31
|
export interface IPushManager extends ITask, IPushEventEmitter {
|
|
33
|
-
add(userKey: string, mySegmentsSyncTask: IMySegmentsSyncTask
|
|
32
|
+
add(userKey: string, mySegmentsSyncTask: IMySegmentsSyncTask): void;
|
|
34
33
|
remove(userKey: string): void;
|
|
35
34
|
}
|
|
36
35
|
export {};
|
|
@@ -100,7 +100,7 @@ export declare type TOKEN = 'to';
|
|
|
100
100
|
export declare type SEGMENT = 'se';
|
|
101
101
|
export declare type MY_SEGMENT = 'ms';
|
|
102
102
|
export declare type MY_LARGE_SEGMENT = 'mls';
|
|
103
|
-
export declare type OperationType = SPLITS | IMPRESSIONS | IMPRESSIONS_COUNT | EVENTS | TELEMETRY | TOKEN | SEGMENT | MY_SEGMENT
|
|
103
|
+
export declare type OperationType = SPLITS | IMPRESSIONS | IMPRESSIONS_COUNT | EVENTS | TELEMETRY | TOKEN | SEGMENT | MY_SEGMENT;
|
|
104
104
|
export declare type LastSync = Partial<Record<OperationType, number | undefined>>;
|
|
105
105
|
export declare type HttpErrors = Partial<Record<OperationType, {
|
|
106
106
|
[statusCode: string]: number;
|
|
@@ -177,7 +177,6 @@ export declare type RefreshRates = {
|
|
|
177
177
|
sp: number;
|
|
178
178
|
se?: number;
|
|
179
179
|
ms?: number;
|
|
180
|
-
mls?: number;
|
|
181
180
|
im: number;
|
|
182
181
|
ev: number;
|
|
183
182
|
te: number;
|
|
@@ -198,7 +197,6 @@ export declare type TelemetryConfigStats = {
|
|
|
198
197
|
};
|
|
199
198
|
export declare type TelemetryConfigStatsPayload = TelemetryConfigStats & {
|
|
200
199
|
sE: boolean;
|
|
201
|
-
lE?: boolean;
|
|
202
200
|
rR: RefreshRates;
|
|
203
201
|
uO: UrlOverrides;
|
|
204
202
|
iQ: number;
|
package/types/types.d.ts
CHANGED
|
@@ -80,7 +80,6 @@ export interface ISettings {
|
|
|
80
80
|
metricsRefreshRate?: number;
|
|
81
81
|
telemetryRefreshRate: number;
|
|
82
82
|
segmentsRefreshRate: number;
|
|
83
|
-
largeSegmentsRefreshRate: number;
|
|
84
83
|
offlineRefreshRate: number;
|
|
85
84
|
eventsPushRate: number;
|
|
86
85
|
eventsQueueSize: number;
|
|
@@ -91,7 +90,6 @@ export interface ISettings {
|
|
|
91
90
|
requestTimeoutBeforeReady: number;
|
|
92
91
|
retriesOnFailureBeforeReady: number;
|
|
93
92
|
eventsFirstPushWindow: number;
|
|
94
|
-
waitForLargeSegments: boolean;
|
|
95
93
|
};
|
|
96
94
|
readonly storage: IStorageSyncFactory | IStorageAsyncFactory;
|
|
97
95
|
readonly integrations: Array<{
|
|
@@ -115,7 +113,6 @@ export interface ISettings {
|
|
|
115
113
|
__splitFiltersValidation: ISplitFiltersValidation;
|
|
116
114
|
localhostMode?: SplitIO.LocalhostFactory;
|
|
117
115
|
enabled: boolean;
|
|
118
|
-
largeSegmentsEnabled: boolean;
|
|
119
116
|
flagSpecVersion: string;
|
|
120
117
|
};
|
|
121
118
|
readonly runtime: {
|
|
@@ -813,13 +810,6 @@ export declare namespace SplitIO {
|
|
|
813
810
|
* @default 10
|
|
814
811
|
*/
|
|
815
812
|
eventsFirstPushWindow?: number;
|
|
816
|
-
/**
|
|
817
|
-
* Whether the SDK should wait for large segments to be ready before emitting SDK_READY event.
|
|
818
|
-
* It only applies if largeSegmentsEnabled is true.
|
|
819
|
-
* @property {number} waitForLargeSegments
|
|
820
|
-
* @default true
|
|
821
|
-
*/
|
|
822
|
-
waitForLargeSegments?: boolean;
|
|
823
813
|
};
|
|
824
814
|
/**
|
|
825
815
|
* SDK scheduler settings.
|
|
@@ -864,13 +854,6 @@ export declare namespace SplitIO {
|
|
|
864
854
|
* @default 60
|
|
865
855
|
*/
|
|
866
856
|
segmentsRefreshRate?: number;
|
|
867
|
-
/**
|
|
868
|
-
* The SDK polls Split servers for changes to large segment definitions. This parameter controls this polling period in seconds.
|
|
869
|
-
* It only applies if largeSegmentsEnabled is true.
|
|
870
|
-
* @property {number} largeSegmentsRefreshRate
|
|
871
|
-
* @default 60
|
|
872
|
-
*/
|
|
873
|
-
largeSegmentsRefreshRate?: number;
|
|
874
857
|
/**
|
|
875
858
|
* The SDK posts the queued events data in bulks. This parameter controls the posting rate in seconds.
|
|
876
859
|
* @property {number} eventsPushRate
|
|
@@ -943,14 +926,6 @@ export declare namespace SplitIO {
|
|
|
943
926
|
* @property {Object} urls
|
|
944
927
|
*/
|
|
945
928
|
urls?: UrlSettings;
|
|
946
|
-
sync?: ISharedSettings['sync'] & {
|
|
947
|
-
/**
|
|
948
|
-
* Enables synchronization of large segments.
|
|
949
|
-
* @property {boolean} largeSegmentsEnabled
|
|
950
|
-
* @default false
|
|
951
|
-
*/
|
|
952
|
-
largeSegmentsEnabled?: boolean;
|
|
953
|
-
};
|
|
954
929
|
}
|
|
955
930
|
/**
|
|
956
931
|
* Settings interface for SDK instances created on NodeJS.
|
|
@@ -79,6 +79,6 @@ export declare const NON_REQUESTED = 1;
|
|
|
79
79
|
export declare const DISABLED = 0;
|
|
80
80
|
export declare const ENABLED = 1;
|
|
81
81
|
export declare const PAUSED = 2;
|
|
82
|
-
export declare const FLAG_SPEC_VERSION = "1.
|
|
82
|
+
export declare const FLAG_SPEC_VERSION = "1.2";
|
|
83
83
|
export declare const IN_SEGMENT = "IN_SEGMENT";
|
|
84
84
|
export declare const IN_LARGE_SEGMENT = "IN_LARGE_SEGMENT";
|
|
@@ -12,7 +12,6 @@ export declare const base: {
|
|
|
12
12
|
scheduler: {
|
|
13
13
|
featuresRefreshRate: number;
|
|
14
14
|
segmentsRefreshRate: number;
|
|
15
|
-
largeSegmentsRefreshRate: number;
|
|
16
15
|
telemetryRefreshRate: number;
|
|
17
16
|
impressionsRefreshRate: number;
|
|
18
17
|
offlineRefreshRate: number;
|
|
@@ -40,7 +39,6 @@ export declare const base: {
|
|
|
40
39
|
localhostMode: undefined;
|
|
41
40
|
enabled: boolean;
|
|
42
41
|
flagSpecVersion: string;
|
|
43
|
-
largeSegmentsEnabled: boolean;
|
|
44
42
|
};
|
|
45
43
|
log: undefined;
|
|
46
44
|
};
|