@splitsoftware/splitio-commons 1.16.0 → 1.16.1-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGES.txt +3 -0
- package/cjs/evaluator/matchers/index.js +3 -1
- package/cjs/evaluator/matchers/large_segment.js +16 -0
- package/cjs/evaluator/matchers/matcherTypes.js +1 -0
- package/cjs/evaluator/matchersTransform/index.js +1 -1
- package/cjs/logger/constants.js +4 -4
- package/cjs/logger/messages/info.js +0 -1
- package/cjs/readiness/readinessManager.js +14 -10
- package/cjs/readiness/sdkReadinessManager.js +5 -6
- package/cjs/sdkClient/sdkClientMethodCS.js +3 -4
- package/cjs/sdkClient/sdkClientMethodCSWithTT.js +4 -5
- package/cjs/sdkFactory/index.js +1 -1
- package/cjs/services/splitApi.js +4 -0
- package/cjs/storages/AbstractSplitsCacheAsync.js +2 -2
- package/cjs/storages/AbstractSplitsCacheSync.js +5 -5
- package/cjs/storages/KeyBuilder.js +3 -0
- package/cjs/storages/KeyBuilderCS.js +17 -5
- package/cjs/storages/inLocalStorage/SplitsCacheInLocal.js +16 -4
- package/cjs/storages/inLocalStorage/index.js +6 -2
- package/cjs/storages/inMemory/InMemoryStorageCS.js +5 -0
- package/cjs/storages/inMemory/SplitsCacheInMemory.js +20 -11
- package/cjs/storages/inMemory/TelemetryCacheInMemory.js +7 -10
- package/cjs/storages/pluggable/inMemoryWrapper.js +1 -1
- package/cjs/sync/polling/fetchers/mySegmentsFetcher.js +5 -1
- package/cjs/sync/polling/pollingManagerCS.js +51 -33
- package/cjs/sync/polling/syncTasks/mySegmentsSyncTask.js +2 -2
- package/cjs/sync/polling/updaters/mySegmentsUpdater.js +5 -6
- package/cjs/sync/polling/updaters/splitChangesUpdater.js +2 -1
- package/cjs/sync/streaming/SSEHandler/index.js +1 -0
- package/cjs/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.js +15 -5
- package/cjs/sync/streaming/constants.js +2 -1
- package/cjs/sync/streaming/pushManager.js +95 -64
- package/cjs/sync/submitters/telemetrySubmitter.js +2 -0
- package/cjs/sync/syncManagerOnline.js +24 -14
- package/cjs/utils/constants/index.js +5 -1
- package/cjs/utils/settingsValidation/index.js +9 -4
- package/esm/evaluator/matchers/index.js +3 -1
- package/esm/evaluator/matchers/large_segment.js +12 -0
- package/esm/evaluator/matchers/matcherTypes.js +1 -0
- package/esm/evaluator/matchersTransform/index.js +1 -1
- package/esm/logger/constants.js +1 -1
- package/esm/logger/messages/info.js +0 -1
- package/esm/readiness/readinessManager.js +14 -10
- package/esm/readiness/sdkReadinessManager.js +5 -6
- package/esm/sdkClient/sdkClientMethodCS.js +4 -5
- package/esm/sdkClient/sdkClientMethodCSWithTT.js +5 -6
- package/esm/sdkFactory/index.js +1 -1
- package/esm/services/splitApi.js +5 -1
- package/esm/storages/AbstractSplitsCacheAsync.js +2 -2
- package/esm/storages/AbstractSplitsCacheSync.js +3 -3
- package/esm/storages/KeyBuilder.js +3 -0
- package/esm/storages/KeyBuilderCS.js +15 -4
- package/esm/storages/inLocalStorage/SplitsCacheInLocal.js +17 -5
- package/esm/storages/inLocalStorage/index.js +7 -3
- package/esm/storages/inMemory/InMemoryStorageCS.js +5 -0
- package/esm/storages/inMemory/SplitsCacheInMemory.js +21 -12
- package/esm/storages/inMemory/TelemetryCacheInMemory.js +7 -10
- package/esm/storages/pluggable/inMemoryWrapper.js +1 -1
- package/esm/sync/polling/fetchers/mySegmentsFetcher.js +5 -1
- package/esm/sync/polling/pollingManagerCS.js +52 -34
- package/esm/sync/polling/syncTasks/mySegmentsSyncTask.js +2 -2
- package/esm/sync/polling/updaters/mySegmentsUpdater.js +3 -4
- package/esm/sync/polling/updaters/splitChangesUpdater.js +2 -1
- package/esm/sync/streaming/SSEHandler/index.js +2 -1
- package/esm/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.js +15 -5
- package/esm/sync/streaming/constants.js +1 -0
- package/esm/sync/streaming/pushManager.js +95 -65
- package/esm/sync/submitters/telemetrySubmitter.js +2 -0
- package/esm/sync/syncManagerOnline.js +25 -15
- package/esm/utils/constants/index.js +4 -0
- package/esm/utils/settingsValidation/index.js +10 -5
- package/package.json +1 -1
- package/src/dtos/types.ts +17 -7
- package/src/evaluator/matchers/index.ts +2 -0
- package/src/evaluator/matchers/large_segment.ts +18 -0
- package/src/evaluator/matchers/matcherTypes.ts +1 -0
- package/src/evaluator/matchersTransform/index.ts +1 -1
- package/src/logger/constants.ts +1 -1
- package/src/logger/messages/info.ts +0 -1
- package/src/readiness/readinessManager.ts +13 -9
- package/src/readiness/sdkReadinessManager.ts +7 -7
- package/src/readiness/types.ts +3 -2
- package/src/sdkClient/sdkClientMethodCS.ts +4 -6
- package/src/sdkClient/sdkClientMethodCSWithTT.ts +5 -7
- package/src/sdkFactory/index.ts +1 -1
- package/src/services/splitApi.ts +6 -1
- package/src/services/types.ts +1 -0
- package/src/storages/AbstractSplitsCacheAsync.ts +2 -2
- package/src/storages/AbstractSplitsCacheSync.ts +4 -4
- package/src/storages/KeyBuilder.ts +3 -0
- package/src/storages/KeyBuilderCS.ts +25 -5
- package/src/storages/inLocalStorage/MySegmentsCacheInLocal.ts +3 -3
- package/src/storages/inLocalStorage/SplitsCacheInLocal.ts +20 -5
- package/src/storages/inLocalStorage/index.ts +8 -4
- package/src/storages/inMemory/InMemoryStorageCS.ts +5 -0
- package/src/storages/inMemory/SplitsCacheInMemory.ts +15 -10
- package/src/storages/inMemory/TelemetryCacheInMemory.ts +7 -11
- package/src/storages/pluggable/inMemoryWrapper.ts +1 -1
- package/src/storages/types.ts +7 -5
- package/src/sync/polling/fetchers/mySegmentsFetcher.ts +6 -2
- package/src/sync/polling/pollingManagerCS.ts +61 -29
- package/src/sync/polling/syncTasks/mySegmentsSyncTask.ts +10 -10
- package/src/sync/polling/types.ts +3 -2
- package/src/sync/polling/updaters/mySegmentsUpdater.ts +5 -8
- package/src/sync/polling/updaters/splitChangesUpdater.ts +4 -3
- package/src/sync/streaming/SSEHandler/index.ts +2 -1
- package/src/sync/streaming/SSEHandler/types.ts +14 -2
- package/src/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.ts +17 -5
- package/src/sync/streaming/constants.ts +1 -0
- package/src/sync/streaming/pushManager.ts +100 -63
- package/src/sync/streaming/types.ts +5 -3
- package/src/sync/submitters/telemetrySubmitter.ts +2 -0
- package/src/sync/submitters/types.ts +10 -4
- package/src/sync/syncManagerOnline.ts +19 -11
- package/src/types.ts +26 -1
- package/src/utils/constants/index.ts +5 -0
- package/src/utils/settingsValidation/index.ts +11 -6
- package/src/utils/settingsValidation/types.ts +1 -1
- package/types/dtos/types.d.ts +14 -6
- package/types/evaluator/matchers/large_segment.d.ts +5 -0
- package/types/logger/constants.d.ts +1 -1
- package/types/readiness/readinessManager.d.ts +2 -2
- package/types/readiness/sdkReadinessManager.d.ts +2 -3
- package/types/readiness/types.d.ts +3 -2
- package/types/services/types.d.ts +1 -0
- package/types/storages/AbstractSplitsCacheAsync.d.ts +1 -1
- package/types/storages/AbstractSplitsCacheSync.d.ts +3 -3
- package/types/storages/KeyBuilder.d.ts +1 -0
- package/types/storages/KeyBuilderCS.d.ts +7 -2
- package/types/storages/inLocalStorage/MySegmentsCacheInLocal.d.ts +2 -2
- package/types/storages/inLocalStorage/SplitsCacheInLocal.d.ts +1 -1
- package/types/storages/inMemory/SplitsCacheInMemory.d.ts +3 -2
- package/types/storages/inMemory/TelemetryCacheInMemory.d.ts +4 -6
- package/types/storages/pluggable/inMemoryWrapper.d.ts +1 -1
- package/types/storages/types.d.ts +4 -3
- package/types/sync/polling/syncTasks/mySegmentsSyncTask.d.ts +2 -3
- package/types/sync/polling/types.d.ts +9 -2
- package/types/sync/polling/updaters/mySegmentsUpdater.d.ts +4 -4
- package/types/sync/streaming/SSEHandler/types.d.ts +13 -2
- package/types/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.d.ts +2 -1
- package/types/sync/streaming/constants.d.ts +1 -0
- package/types/sync/streaming/pushManager.d.ts +2 -0
- package/types/sync/streaming/types.d.ts +5 -4
- package/types/sync/submitters/types.d.ts +9 -3
- package/types/types.d.ts +25 -0
- package/types/utils/constants/index.d.ts +3 -0
- package/types/utils/settingsValidation/index.d.ts +2 -0
- package/types/utils/settingsValidation/types.d.ts +1 -1
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { IReadinessManager } from '../../../readiness/types';
|
|
1
|
+
import { ISegmentsCacheSync } from '../../../storages/types';
|
|
3
2
|
import { IMySegmentsSyncTask } from '../types';
|
|
4
3
|
import { IFetchMySegments } from '../../../services/types';
|
|
5
4
|
import { ISettings } from '../../../types';
|
|
6
5
|
/**
|
|
7
6
|
* Creates a sync task that periodically executes a `mySegmentsUpdater` task
|
|
8
7
|
*/
|
|
9
|
-
export declare function mySegmentsSyncTaskFactory(fetchMySegments: IFetchMySegments,
|
|
8
|
+
export declare function mySegmentsSyncTaskFactory(fetchMySegments: IFetchMySegments, mySegmentsCache: ISegmentsCacheSync, notifyUpdate: () => void, settings: ISettings, matchingKey: string, segmentsRefreshRate: number, NAME: string): IMySegmentsSyncTask;
|
|
@@ -19,12 +19,19 @@ export interface IPollingManager extends ITask {
|
|
|
19
19
|
syncAll(): Promise<any>;
|
|
20
20
|
splitsSyncTask: ISplitsSyncTask;
|
|
21
21
|
segmentsSyncTask: ISyncTask;
|
|
22
|
+
largeSegmentsSyncTask?: ISyncTask;
|
|
22
23
|
}
|
|
23
24
|
/**
|
|
24
25
|
* PollingManager for client-side with support for multiple clients
|
|
25
26
|
*/
|
|
26
27
|
export interface IPollingManagerCS extends IPollingManager {
|
|
27
|
-
add(matchingKey: string, readiness: IReadinessManager, storage: IStorageSync):
|
|
28
|
+
add(matchingKey: string, readiness: IReadinessManager, storage: IStorageSync): {
|
|
29
|
+
msSyncTask: IMySegmentsSyncTask;
|
|
30
|
+
mlsSyncTask?: IMySegmentsSyncTask;
|
|
31
|
+
};
|
|
28
32
|
remove(matchingKey: string): void;
|
|
29
|
-
get(matchingKey: string):
|
|
33
|
+
get(matchingKey: string): {
|
|
34
|
+
msSyncTask: IMySegmentsSyncTask;
|
|
35
|
+
mlsSyncTask?: IMySegmentsSyncTask;
|
|
36
|
+
} | undefined;
|
|
30
37
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { IMySegmentsFetcher } from '../fetchers/types';
|
|
2
|
-
import { ISegmentsCacheSync
|
|
3
|
-
import { ISegmentsEventEmitter } from '../../../readiness/types';
|
|
2
|
+
import { ISegmentsCacheSync } from '../../../storages/types';
|
|
4
3
|
import { ILogger } from '../../../logger/types';
|
|
5
|
-
|
|
4
|
+
import { MySegmentsData } from '../types';
|
|
5
|
+
declare type IMySegmentsUpdater = (segmentList?: MySegmentsData, noCache?: boolean) => Promise<boolean>;
|
|
6
6
|
/**
|
|
7
7
|
* factory of MySegments updater, a task that:
|
|
8
8
|
* - fetches mySegments using `mySegmentsFetcher`
|
|
9
9
|
* - updates `mySegmentsCache`
|
|
10
10
|
* - uses `segmentsEventEmitter` to emit events related to segments data updates
|
|
11
11
|
*/
|
|
12
|
-
export declare function mySegmentsUpdaterFactory(log: ILogger, mySegmentsFetcher: IMySegmentsFetcher,
|
|
12
|
+
export declare function mySegmentsUpdaterFactory(log: ILogger, mySegmentsFetcher: IMySegmentsFetcher, mySegmentsCache: ISegmentsCacheSync, notifyUpdate: () => void, requestTimeoutBeforeReady: number, retriesOnFailureBeforeReady: number, matchingKey: string): IMySegmentsUpdater;
|
|
13
13
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ControlType } from '../constants';
|
|
2
|
-
import { MY_SEGMENTS_UPDATE, MY_SEGMENTS_UPDATE_V2, SEGMENT_UPDATE, SPLIT_UPDATE, SPLIT_KILL, CONTROL, OCCUPANCY } from '../types';
|
|
2
|
+
import { MY_SEGMENTS_UPDATE, MY_SEGMENTS_UPDATE_V2, SEGMENT_UPDATE, SPLIT_UPDATE, SPLIT_KILL, CONTROL, OCCUPANCY, MY_LARGE_SEGMENTS_UPDATE } from '../types';
|
|
3
3
|
export interface IMySegmentsUpdateData {
|
|
4
4
|
type: MY_SEGMENTS_UPDATE;
|
|
5
5
|
changeNumber: number;
|
|
@@ -29,6 +29,17 @@ export interface IMySegmentsUpdateV2Data {
|
|
|
29
29
|
d: string;
|
|
30
30
|
u: UpdateStrategy;
|
|
31
31
|
}
|
|
32
|
+
export interface IMyLargeSegmentsUpdateData {
|
|
33
|
+
type: MY_LARGE_SEGMENTS_UPDATE;
|
|
34
|
+
changeNumber: number;
|
|
35
|
+
largeSegments: string[];
|
|
36
|
+
c: Compression;
|
|
37
|
+
d: string;
|
|
38
|
+
u: UpdateStrategy;
|
|
39
|
+
i?: number;
|
|
40
|
+
h?: number;
|
|
41
|
+
s?: number;
|
|
42
|
+
}
|
|
32
43
|
export interface ISegmentUpdateData {
|
|
33
44
|
type: SEGMENT_UPDATE;
|
|
34
45
|
changeNumber: number;
|
|
@@ -57,7 +68,7 @@ export interface IOccupancyData {
|
|
|
57
68
|
publishers: number;
|
|
58
69
|
};
|
|
59
70
|
}
|
|
60
|
-
export declare type INotificationData = IMySegmentsUpdateData | IMySegmentsUpdateV2Data | ISegmentUpdateData | ISplitUpdateData | ISplitKillData | IControlData | IOccupancyData;
|
|
71
|
+
export declare type INotificationData = IMySegmentsUpdateData | IMySegmentsUpdateV2Data | IMyLargeSegmentsUpdateData | ISegmentUpdateData | ISplitUpdateData | ISplitKillData | IControlData | IOccupancyData;
|
|
61
72
|
export declare type INotificationMessage = {
|
|
62
73
|
parsedData: INotificationData;
|
|
63
74
|
channel: string;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { IMySegmentsSyncTask } from '../../polling/types';
|
|
2
2
|
import { IUpdateWorker } from './types';
|
|
3
3
|
import { ITelemetryTracker } from '../../../trackers/types';
|
|
4
|
+
import { UpdatesFromSSEEnum } from '../../submitters/types';
|
|
4
5
|
/**
|
|
5
6
|
* MySegmentsUpdateWorker factory
|
|
6
7
|
*/
|
|
7
|
-
export declare function MySegmentsUpdateWorker(mySegmentsSyncTask: IMySegmentsSyncTask, telemetryTracker: ITelemetryTracker): IUpdateWorker;
|
|
8
|
+
export declare function MySegmentsUpdateWorker(mySegmentsSyncTask: IMySegmentsSyncTask, telemetryTracker: ITelemetryTracker, updateType: UpdatesFromSSEEnum): IUpdateWorker;
|
|
@@ -24,6 +24,7 @@ export declare const MY_SEGMENTS_UPDATE_V2 = "MY_SEGMENTS_UPDATE_V2";
|
|
|
24
24
|
export declare const SEGMENT_UPDATE = "SEGMENT_UPDATE";
|
|
25
25
|
export declare const SPLIT_KILL = "SPLIT_KILL";
|
|
26
26
|
export declare const SPLIT_UPDATE = "SPLIT_UPDATE";
|
|
27
|
+
export declare const MY_LARGE_SEGMENTS_UPDATE = "MY_LARGE_SEGMENTS_UPDATE";
|
|
27
28
|
export declare const CONTROL = "CONTROL";
|
|
28
29
|
export declare const OCCUPANCY = "OCCUPANCY";
|
|
29
30
|
export declare enum ControlType {
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { IPushManager } from './types';
|
|
2
2
|
import { IPollingManager } from '../polling/types';
|
|
3
|
+
import { IMyLargeSegmentsUpdateData } from './SSEHandler/types';
|
|
3
4
|
import { ISdkFactoryContextSync } from '../../sdkFactory/types';
|
|
5
|
+
export declare function getDelay(parsedData: Pick<IMyLargeSegmentsUpdateData, 'i' | 'h' | 's'>, matchingKey: string): number;
|
|
4
6
|
/**
|
|
5
7
|
* PushManager factory:
|
|
6
8
|
* - for server-side if key is not provided in settings.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IMySegmentsUpdateData, IMySegmentsUpdateV2Data, ISegmentUpdateData, ISplitUpdateData, ISplitKillData } from './SSEHandler/types';
|
|
1
|
+
import { IMySegmentsUpdateData, IMySegmentsUpdateV2Data, ISegmentUpdateData, ISplitUpdateData, ISplitKillData, IMyLargeSegmentsUpdateData } from './SSEHandler/types';
|
|
2
2
|
import { ITask } from '../types';
|
|
3
3
|
import { IMySegmentsSyncTask } from '../polling/types';
|
|
4
4
|
import { IEventEmitter } from '../../types';
|
|
@@ -12,10 +12,11 @@ export declare type MY_SEGMENTS_UPDATE_V2 = 'MY_SEGMENTS_UPDATE_V2';
|
|
|
12
12
|
export declare type SEGMENT_UPDATE = 'SEGMENT_UPDATE';
|
|
13
13
|
export declare type SPLIT_KILL = 'SPLIT_KILL';
|
|
14
14
|
export declare type SPLIT_UPDATE = 'SPLIT_UPDATE';
|
|
15
|
+
export declare type MY_LARGE_SEGMENTS_UPDATE = 'MY_LARGE_SEGMENTS_UPDATE';
|
|
15
16
|
export declare type CONTROL = 'CONTROL';
|
|
16
17
|
export declare type OCCUPANCY = 'OCCUPANCY';
|
|
17
|
-
export declare type IPushEvent = PUSH_SUBSYSTEM_UP | PUSH_SUBSYSTEM_DOWN | PUSH_NONRETRYABLE_ERROR | PUSH_RETRYABLE_ERROR | MY_SEGMENTS_UPDATE | MY_SEGMENTS_UPDATE_V2 | SEGMENT_UPDATE | SPLIT_UPDATE | SPLIT_KILL | ControlType.STREAMING_RESET;
|
|
18
|
-
declare type IParsedData<T extends IPushEvent> = T extends MY_SEGMENTS_UPDATE ? IMySegmentsUpdateData : T extends MY_SEGMENTS_UPDATE_V2 ? IMySegmentsUpdateV2Data : T extends SEGMENT_UPDATE ? ISegmentUpdateData : T extends SPLIT_UPDATE ? ISplitUpdateData : T extends SPLIT_KILL ? ISplitKillData : undefined;
|
|
18
|
+
export declare type IPushEvent = PUSH_SUBSYSTEM_UP | PUSH_SUBSYSTEM_DOWN | PUSH_NONRETRYABLE_ERROR | PUSH_RETRYABLE_ERROR | MY_SEGMENTS_UPDATE | MY_SEGMENTS_UPDATE_V2 | SEGMENT_UPDATE | SPLIT_UPDATE | SPLIT_KILL | MY_LARGE_SEGMENTS_UPDATE | ControlType.STREAMING_RESET;
|
|
19
|
+
declare type IParsedData<T extends IPushEvent> = T extends MY_SEGMENTS_UPDATE ? IMySegmentsUpdateData : T extends MY_SEGMENTS_UPDATE_V2 ? IMySegmentsUpdateV2Data : T extends MY_LARGE_SEGMENTS_UPDATE ? IMyLargeSegmentsUpdateData : T extends SEGMENT_UPDATE ? ISegmentUpdateData : T extends SPLIT_UPDATE ? ISplitUpdateData : T extends SPLIT_KILL ? ISplitKillData : undefined;
|
|
19
20
|
/**
|
|
20
21
|
* EventEmitter used as Feedback Loop between the SyncManager and PushManager,
|
|
21
22
|
* where the latter pushes messages and the former consumes it
|
|
@@ -29,7 +30,7 @@ export interface IPushEventEmitter extends IEventEmitter {
|
|
|
29
30
|
* PushManager
|
|
30
31
|
*/
|
|
31
32
|
export interface IPushManager extends ITask, IPushEventEmitter {
|
|
32
|
-
add(userKey: string, mySegmentsSyncTask: IMySegmentsSyncTask): void;
|
|
33
|
+
add(userKey: string, mySegmentsSyncTask: IMySegmentsSyncTask, myLargeSegmentsSyncTask?: IMySegmentsSyncTask): void;
|
|
33
34
|
remove(userKey: string): void;
|
|
34
35
|
}
|
|
35
36
|
export {};
|
|
@@ -90,7 +90,7 @@ export declare type DROPPED = 1;
|
|
|
90
90
|
export declare type DEDUPED = 2;
|
|
91
91
|
export declare type ImpressionDataType = QUEUED | DROPPED | DEDUPED;
|
|
92
92
|
export declare type EventDataType = QUEUED | DROPPED;
|
|
93
|
-
export declare type UpdatesFromSSEEnum = SPLITS | MY_SEGMENT;
|
|
93
|
+
export declare type UpdatesFromSSEEnum = SPLITS | MY_SEGMENT | MY_LARGE_SEGMENT;
|
|
94
94
|
export declare type SPLITS = 'sp';
|
|
95
95
|
export declare type IMPRESSIONS = 'im';
|
|
96
96
|
export declare type IMPRESSIONS_COUNT = 'ic';
|
|
@@ -99,7 +99,8 @@ export declare type TELEMETRY = 'te';
|
|
|
99
99
|
export declare type TOKEN = 'to';
|
|
100
100
|
export declare type SEGMENT = 'se';
|
|
101
101
|
export declare type MY_SEGMENT = 'ms';
|
|
102
|
-
export declare type
|
|
102
|
+
export declare type MY_LARGE_SEGMENT = 'mls';
|
|
103
|
+
export declare type OperationType = SPLITS | IMPRESSIONS | IMPRESSIONS_COUNT | EVENTS | TELEMETRY | TOKEN | SEGMENT | MY_SEGMENT | MY_LARGE_SEGMENT;
|
|
103
104
|
export declare type LastSync = Partial<Record<OperationType, number | undefined>>;
|
|
104
105
|
export declare type HttpErrors = Partial<Record<OperationType, {
|
|
105
106
|
[statusCode: string]: number;
|
|
@@ -136,8 +137,9 @@ export declare type TelemetryUsageStats = {
|
|
|
136
137
|
mE?: MethodExceptions;
|
|
137
138
|
};
|
|
138
139
|
export declare type UpdatesFromSSE = {
|
|
139
|
-
sp
|
|
140
|
+
sp?: number;
|
|
140
141
|
ms?: number;
|
|
142
|
+
mls?: number;
|
|
141
143
|
};
|
|
142
144
|
export declare type TelemetryUsageStatsPayload = TelemetryUsageStats & {
|
|
143
145
|
lS: LastSync;
|
|
@@ -151,6 +153,8 @@ export declare type TelemetryUsageStatsPayload = TelemetryUsageStats & {
|
|
|
151
153
|
spC?: number;
|
|
152
154
|
seC?: number;
|
|
153
155
|
skC?: number;
|
|
156
|
+
lseC?: number;
|
|
157
|
+
lskC?: number;
|
|
154
158
|
sL?: number;
|
|
155
159
|
eQ: number;
|
|
156
160
|
eD: number;
|
|
@@ -173,6 +177,7 @@ export declare type RefreshRates = {
|
|
|
173
177
|
sp: number;
|
|
174
178
|
se?: number;
|
|
175
179
|
ms?: number;
|
|
180
|
+
mls?: number;
|
|
176
181
|
im: number;
|
|
177
182
|
ev: number;
|
|
178
183
|
te: number;
|
|
@@ -193,6 +198,7 @@ export declare type TelemetryConfigStats = {
|
|
|
193
198
|
};
|
|
194
199
|
export declare type TelemetryConfigStatsPayload = TelemetryConfigStats & {
|
|
195
200
|
sE: boolean;
|
|
201
|
+
lE?: boolean;
|
|
196
202
|
rR: RefreshRates;
|
|
197
203
|
uO: UrlOverrides;
|
|
198
204
|
iQ: number;
|
package/types/types.d.ts
CHANGED
|
@@ -80,6 +80,7 @@ export interface ISettings {
|
|
|
80
80
|
metricsRefreshRate?: number;
|
|
81
81
|
telemetryRefreshRate: number;
|
|
82
82
|
segmentsRefreshRate: number;
|
|
83
|
+
largeSegmentsRefreshRate: number;
|
|
83
84
|
offlineRefreshRate: number;
|
|
84
85
|
eventsPushRate: number;
|
|
85
86
|
eventsQueueSize: number;
|
|
@@ -90,6 +91,7 @@ export interface ISettings {
|
|
|
90
91
|
requestTimeoutBeforeReady: number;
|
|
91
92
|
retriesOnFailureBeforeReady: number;
|
|
92
93
|
eventsFirstPushWindow: number;
|
|
94
|
+
waitForLargeSegments: boolean;
|
|
93
95
|
};
|
|
94
96
|
readonly storage: IStorageSyncFactory | IStorageAsyncFactory;
|
|
95
97
|
readonly integrations: Array<{
|
|
@@ -113,6 +115,7 @@ export interface ISettings {
|
|
|
113
115
|
__splitFiltersValidation: ISplitFiltersValidation;
|
|
114
116
|
localhostMode?: SplitIO.LocalhostFactory;
|
|
115
117
|
enabled: boolean;
|
|
118
|
+
largeSegmentsEnabled: boolean;
|
|
116
119
|
flagSpecVersion: string;
|
|
117
120
|
};
|
|
118
121
|
readonly runtime: {
|
|
@@ -810,6 +813,13 @@ export declare namespace SplitIO {
|
|
|
810
813
|
* @default 10
|
|
811
814
|
*/
|
|
812
815
|
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;
|
|
813
823
|
};
|
|
814
824
|
/**
|
|
815
825
|
* SDK scheduler settings.
|
|
@@ -854,6 +864,13 @@ export declare namespace SplitIO {
|
|
|
854
864
|
* @default 60
|
|
855
865
|
*/
|
|
856
866
|
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;
|
|
857
874
|
/**
|
|
858
875
|
* The SDK posts the queued events data in bulks. This parameter controls the posting rate in seconds.
|
|
859
876
|
* @property {number} eventsPushRate
|
|
@@ -926,6 +943,14 @@ export declare namespace SplitIO {
|
|
|
926
943
|
* @property {Object} urls
|
|
927
944
|
*/
|
|
928
945
|
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
|
+
};
|
|
929
954
|
}
|
|
930
955
|
/**
|
|
931
956
|
* Settings interface for SDK instances created on NodeJS.
|
|
@@ -53,6 +53,7 @@ export declare const TELEMETRY = "te";
|
|
|
53
53
|
export declare const TOKEN = "to";
|
|
54
54
|
export declare const SEGMENT = "se";
|
|
55
55
|
export declare const MY_SEGMENT = "ms";
|
|
56
|
+
export declare const MY_LARGE_SEGMENT = "mls";
|
|
56
57
|
export declare const TREATMENT = "t";
|
|
57
58
|
export declare const TREATMENTS = "ts";
|
|
58
59
|
export declare const TREATMENT_WITH_CONFIG = "tc";
|
|
@@ -79,3 +80,5 @@ export declare const DISABLED = 0;
|
|
|
79
80
|
export declare const ENABLED = 1;
|
|
80
81
|
export declare const PAUSED = 2;
|
|
81
82
|
export declare const FLAG_SPEC_VERSION = "1.1";
|
|
83
|
+
export declare const IN_SEGMENT = "IN_SEGMENT";
|
|
84
|
+
export declare const IN_LARGE_SEGMENT = "IN_LARGE_SEGMENT";
|
|
@@ -12,6 +12,7 @@ export declare const base: {
|
|
|
12
12
|
scheduler: {
|
|
13
13
|
featuresRefreshRate: number;
|
|
14
14
|
segmentsRefreshRate: number;
|
|
15
|
+
largeSegmentsRefreshRate: number;
|
|
15
16
|
telemetryRefreshRate: number;
|
|
16
17
|
impressionsRefreshRate: number;
|
|
17
18
|
offlineRefreshRate: number;
|
|
@@ -39,6 +40,7 @@ export declare const base: {
|
|
|
39
40
|
localhostMode: undefined;
|
|
40
41
|
enabled: boolean;
|
|
41
42
|
flagSpecVersion: string;
|
|
43
|
+
largeSegmentsEnabled: boolean;
|
|
42
44
|
};
|
|
43
45
|
log: undefined;
|
|
44
46
|
};
|
|
@@ -28,7 +28,7 @@ export interface ISettingsValidationParams {
|
|
|
28
28
|
/** Localhost mode validator (`settings.sync.localhostMode`) */
|
|
29
29
|
localhost?: (settings: ISettings) => ISettings['sync']['localhostMode'];
|
|
30
30
|
/** User consent validator (`settings.userConsent`) */
|
|
31
|
-
consent
|
|
31
|
+
consent?: (settings: ISettings) => ISettings['userConsent'];
|
|
32
32
|
/** Flag spec version validation. Configurable by the JS Synchronizer but not by the SDKs */
|
|
33
33
|
flagSpec?: (settings: ISettings) => ISettings['sync']['flagSpecVersion'];
|
|
34
34
|
}
|