@splitsoftware/splitio-commons 1.6.2-rc.3 → 1.6.2-rc.4
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/sdkClient/clientAttributesDecoration.js +1 -1
- package/cjs/storages/inMemory/AttributesCacheInMemory.js +1 -1
- package/esm/sdkClient/clientAttributesDecoration.js +1 -1
- package/esm/storages/inMemory/AttributesCacheInMemory.js +1 -1
- package/package.json +4 -5
- package/src/sdkClient/clientAttributesDecoration.ts +6 -6
- package/src/sdkClient/clientCS.ts +3 -3
- package/src/sdkClient/sdkClientMethodCSWithTT.ts +3 -3
- package/src/storages/inMemory/AttributesCacheInMemory.ts +13 -12
- package/src/types.d.ts +5 -70
- package/types/consent/index.d.ts +0 -2
- package/types/consent/sdkUserConsent.d.ts +0 -6
- package/types/dtos/types.d.ts +0 -166
- package/types/evaluator/Engine.d.ts +0 -15
- package/types/evaluator/combiners/and.d.ts +0 -4
- package/types/evaluator/combiners/ifelseif.d.ts +0 -3
- package/types/evaluator/condition/engineUtils.d.ts +0 -11
- package/types/evaluator/condition/index.d.ts +0 -6
- package/types/evaluator/convertions/index.d.ts +0 -2
- package/types/evaluator/index.d.ts +0 -7
- package/types/evaluator/matchers/all.d.ts +0 -2
- package/types/evaluator/matchers/between.d.ts +0 -3
- package/types/evaluator/matchers/boolean.d.ts +0 -2
- package/types/evaluator/matchers/cont_all.d.ts +0 -2
- package/types/evaluator/matchers/cont_any.d.ts +0 -2
- package/types/evaluator/matchers/cont_str.d.ts +0 -2
- package/types/evaluator/matchers/dependency.d.ts +0 -5
- package/types/evaluator/matchers/eq.d.ts +0 -2
- package/types/evaluator/matchers/eq_set.d.ts +0 -2
- package/types/evaluator/matchers/ew.d.ts +0 -2
- package/types/evaluator/matchers/gte.d.ts +0 -2
- package/types/evaluator/matchers/index.d.ts +0 -7
- package/types/evaluator/matchers/lte.d.ts +0 -2
- package/types/evaluator/matchers/matcherTypes.d.ts +0 -10
- package/types/evaluator/matchers/part_of.d.ts +0 -2
- package/types/evaluator/matchers/segment.d.ts +0 -6
- package/types/evaluator/matchers/string.d.ts +0 -2
- package/types/evaluator/matchers/sw.d.ts +0 -2
- package/types/evaluator/matchers/whitelist.d.ts +0 -3
- package/types/evaluator/matchersTransform/index.d.ts +0 -6
- package/types/evaluator/matchersTransform/segment.d.ts +0 -5
- package/types/evaluator/matchersTransform/set.d.ts +0 -5
- package/types/evaluator/matchersTransform/unaryNumeric.d.ts +0 -5
- package/types/evaluator/matchersTransform/whitelist.d.ts +0 -5
- package/types/evaluator/parser/index.d.ts +0 -5
- package/types/evaluator/treatments/index.d.ts +0 -8
- package/types/evaluator/types.d.ts +0 -28
- package/types/evaluator/value/index.d.ts +0 -7
- package/types/evaluator/value/sanitize.d.ts +0 -7
- package/types/index.d.ts +0 -5
- package/types/integrations/browser.d.ts +0 -12
- package/types/integrations/ga/GaToSplit.d.ts +0 -40
- package/types/integrations/ga/GoogleAnalyticsToSplit.d.ts +0 -3
- package/types/integrations/ga/SplitToGa.d.ts +0 -34
- package/types/integrations/ga/SplitToGoogleAnalytics.d.ts +0 -3
- package/types/integrations/ga/types.d.ts +0 -148
- package/types/integrations/pluggable.d.ts +0 -11
- package/types/integrations/types.d.ts +0 -17
- package/types/listeners/browser.d.ts +0 -40
- package/types/listeners/node.d.ts +0 -22
- package/types/listeners/types.d.ts +0 -4
- package/types/logger/browser/DebugLogger.d.ts +0 -2
- package/types/logger/browser/ErrorLogger.d.ts +0 -2
- package/types/logger/browser/InfoLogger.d.ts +0 -2
- package/types/logger/browser/WarnLogger.d.ts +0 -2
- package/types/logger/constants.d.ts +0 -141
- package/types/logger/index.d.ts +0 -20
- package/types/logger/messages/debug.d.ts +0 -1
- package/types/logger/messages/error.d.ts +0 -1
- package/types/logger/messages/info.d.ts +0 -1
- package/types/logger/messages/warn.d.ts +0 -1
- package/types/logger/sdkLogger.d.ts +0 -7
- package/types/logger/types.d.ts +0 -6
- package/types/readiness/constants.d.ts +0 -7
- package/types/readiness/readinessManager.d.ts +0 -6
- package/types/readiness/sdkReadinessManager.d.ts +0 -11
- package/types/readiness/types.d.ts +0 -54
- package/types/sdkClient/client.d.ts +0 -6
- package/types/sdkClient/clientAttributesDecoration.d.ts +0 -51
- package/types/sdkClient/clientCS.d.ts +0 -9
- package/types/sdkClient/clientInputValidation.d.ts +0 -7
- package/types/sdkClient/sdkClient.d.ts +0 -6
- package/types/sdkClient/sdkClientMethod.d.ts +0 -6
- package/types/sdkClient/sdkClientMethodCS.d.ts +0 -7
- package/types/sdkClient/sdkClientMethodCSWithTT.d.ts +0 -8
- package/types/sdkFactory/index.d.ts +0 -6
- package/types/sdkFactory/types.d.ts +0 -80
- package/types/sdkManager/index.d.ts +0 -5
- package/types/services/splitApi.d.ts +0 -11
- package/types/services/splitHttpClient.d.ts +0 -10
- package/types/services/types.d.ts +0 -50
- package/types/storages/AbstractSegmentsCacheSync.d.ts +0 -55
- package/types/storages/AbstractSplitsCacheAsync.d.ts +0 -36
- package/types/storages/AbstractSplitsCacheSync.d.ts +0 -42
- package/types/storages/KeyBuilder.d.ts +0 -14
- package/types/storages/KeyBuilderCS.d.ts +0 -16
- package/types/storages/KeyBuilderSS.d.ts +0 -15
- package/types/storages/dataLoader.d.ts +0 -10
- package/types/storages/findLatencyIndex.d.ts +0 -7
- package/types/storages/inLocalStorage/MySegmentsCacheInLocal.d.ts +0 -25
- package/types/storages/inLocalStorage/SplitsCacheInLocal.d.ts +0 -50
- package/types/storages/inLocalStorage/constants.d.ts +0 -2
- package/types/storages/inLocalStorage/index.d.ts +0 -8
- package/types/storages/inMemory/AttributesCacheInMemory.d.ts +0 -43
- package/types/storages/inMemory/EventsCacheInMemory.d.ts +0 -35
- package/types/storages/inMemory/ImpressionCountsCacheInMemory.d.ts +0 -24
- package/types/storages/inMemory/ImpressionsCacheInMemory.d.ts +0 -30
- package/types/storages/inMemory/InMemoryStorage.d.ts +0 -10
- package/types/storages/inMemory/InMemoryStorageCS.d.ts +0 -10
- package/types/storages/inMemory/MySegmentsCacheInMemory.d.ts +0 -22
- package/types/storages/inMemory/SegmentsCacheInMemory.d.ts +0 -19
- package/types/storages/inMemory/SplitsCacheInMemory.d.ts +0 -20
- package/types/storages/inMemory/TelemetryCacheInMemory.d.ts +0 -53
- package/types/storages/inRedis/EventsCacheInRedis.d.ts +0 -32
- package/types/storages/inRedis/ImpressionsCacheInRedis.d.ts +0 -18
- package/types/storages/inRedis/RedisAdapter.d.ts +0 -24
- package/types/storages/inRedis/SegmentsCacheInRedis.d.ts +0 -18
- package/types/storages/inRedis/SplitsCacheInRedis.d.ts +0 -91
- package/types/storages/inRedis/TelemetryCacheInRedis.d.ts +0 -20
- package/types/storages/inRedis/constants.d.ts +0 -1
- package/types/storages/inRedis/index.d.ts +0 -10
- package/types/storages/metadataBuilder.d.ts +0 -3
- package/types/storages/pluggable/EventsCachePluggable.d.ts +0 -38
- package/types/storages/pluggable/ImpressionsCachePluggable.d.ts +0 -35
- package/types/storages/pluggable/SegmentsCachePluggable.d.ts +0 -54
- package/types/storages/pluggable/SplitsCachePluggable.d.ts +0 -89
- package/types/storages/pluggable/TelemetryCachePluggable.d.ts +0 -18
- package/types/storages/pluggable/constants.d.ts +0 -1
- package/types/storages/pluggable/inMemoryWrapper.d.ts +0 -13
- package/types/storages/pluggable/index.d.ts +0 -10
- package/types/storages/pluggable/wrapperAdapter.d.ts +0 -12
- package/types/storages/types.d.ts +0 -430
- package/types/sync/offline/LocalhostFromObject.d.ts +0 -2
- package/types/sync/offline/splitsParser/parseCondition.d.ts +0 -7
- package/types/sync/offline/splitsParser/splitsParserFromSettings.d.ts +0 -3
- package/types/sync/offline/splitsParser/types.d.ts +0 -3
- package/types/sync/offline/syncManagerOffline.d.ts +0 -10
- package/types/sync/offline/syncTasks/fromObjectSyncTask.d.ts +0 -17
- package/types/sync/polling/fetchers/mySegmentsFetcher.d.ts +0 -7
- package/types/sync/polling/fetchers/segmentChangesFetcher.d.ts +0 -7
- package/types/sync/polling/fetchers/splitChangesFetcher.d.ts +0 -7
- package/types/sync/polling/fetchers/types.d.ts +0 -5
- package/types/sync/polling/pollingManagerCS.d.ts +0 -7
- package/types/sync/polling/pollingManagerSS.d.ts +0 -6
- package/types/sync/polling/syncTasks/mySegmentsSyncTask.d.ts +0 -9
- package/types/sync/polling/syncTasks/segmentsSyncTask.d.ts +0 -9
- package/types/sync/polling/syncTasks/splitsSyncTask.d.ts +0 -9
- package/types/sync/polling/types.d.ts +0 -26
- package/types/sync/polling/updaters/mySegmentsUpdater.d.ts +0 -13
- package/types/sync/polling/updaters/segmentChangesUpdater.d.ts +0 -18
- package/types/sync/polling/updaters/splitChangesUpdater.d.ts +0 -39
- package/types/sync/streaming/AuthClient/index.d.ts +0 -12
- package/types/sync/streaming/AuthClient/types.d.ts +0 -17
- package/types/sync/streaming/SSEClient/index.d.ts +0 -34
- package/types/sync/streaming/SSEClient/types.d.ts +0 -11
- package/types/sync/streaming/SSEHandler/NotificationKeeper.d.ts +0 -14
- package/types/sync/streaming/SSEHandler/NotificationParser.d.ts +0 -20
- package/types/sync/streaming/SSEHandler/index.d.ts +0 -11
- package/types/sync/streaming/SSEHandler/types.d.ts +0 -67
- package/types/sync/streaming/UpdateWorkers/MySegmentsUpdateWorker.d.ts +0 -6
- package/types/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.d.ts +0 -8
- package/types/sync/streaming/UpdateWorkers/SplitsUpdateWorker.d.ts +0 -12
- package/types/sync/streaming/UpdateWorkers/constants.d.ts +0 -3
- package/types/sync/streaming/UpdateWorkers/types.d.ts +0 -4
- package/types/sync/streaming/constants.d.ts +0 -34
- package/types/sync/streaming/mySegmentsV2utils.d.ts +0 -27
- package/types/sync/streaming/pushManager.d.ts +0 -9
- package/types/sync/streaming/types.d.ts +0 -35
- package/types/sync/submitters/eventsSubmitter.d.ts +0 -5
- package/types/sync/submitters/impressionCountsSubmitter.d.ts +0 -10
- package/types/sync/submitters/impressionsSubmitter.d.ts +0 -11
- package/types/sync/submitters/submitter.d.ts +0 -12
- package/types/sync/submitters/submitterManager.d.ts +0 -3
- package/types/sync/submitters/telemetrySubmitter.d.ts +0 -25
- package/types/sync/submitters/types.d.ts +0 -177
- package/types/sync/syncManagerOnline.d.ts +0 -13
- package/types/sync/syncTask.d.ts +0 -13
- package/types/sync/types.d.ts +0 -43
- package/types/trackers/eventTracker.d.ts +0 -10
- package/types/trackers/impressionObserver/ImpressionObserver.d.ts +0 -8
- package/types/trackers/impressionObserver/buildKey.d.ts +0 -2
- package/types/trackers/impressionObserver/impressionObserverCS.d.ts +0 -4
- package/types/trackers/impressionObserver/impressionObserverSS.d.ts +0 -4
- package/types/trackers/impressionObserver/types.d.ts +0 -4
- package/types/trackers/impressionObserver/utils.d.ts +0 -13
- package/types/trackers/impressionsTracker.d.ts +0 -15
- package/types/trackers/telemetryTracker.d.ts +0 -3
- package/types/trackers/types.d.ts +0 -36
- package/types/utils/Backoff.d.ts +0 -25
- package/types/utils/LRUCache/LinkedList.d.ts +0 -34
- package/types/utils/LRUCache/index.d.ts +0 -16
- package/types/utils/MinEventEmitter.d.ts +0 -12
- package/types/utils/MinEvents.d.ts +0 -4
- package/types/utils/base64/index.d.ts +0 -30
- package/types/utils/constants/browser.d.ts +0 -3
- package/types/utils/constants/index.d.ts +0 -62
- package/types/utils/decompress/index.d.ts +0 -16
- package/types/utils/env/isLocalStorageAvailable.d.ts +0 -1
- package/types/utils/env/isNode.d.ts +0 -5
- package/types/utils/inputValidation/apiKey.d.ts +0 -7
- package/types/utils/inputValidation/attribute.d.ts +0 -2
- package/types/utils/inputValidation/attributes.d.ts +0 -4
- package/types/utils/inputValidation/event.d.ts +0 -2
- package/types/utils/inputValidation/eventProperties.d.ts +0 -6
- package/types/utils/inputValidation/eventValue.d.ts +0 -2
- package/types/utils/inputValidation/index.d.ts +0 -13
- package/types/utils/inputValidation/isOperational.d.ts +0 -4
- package/types/utils/inputValidation/key.d.ts +0 -3
- package/types/utils/inputValidation/preloadedData.d.ts +0 -3
- package/types/utils/inputValidation/split.d.ts +0 -2
- package/types/utils/inputValidation/splitExistance.d.ts +0 -7
- package/types/utils/inputValidation/splits.d.ts +0 -2
- package/types/utils/inputValidation/trafficType.d.ts +0 -2
- package/types/utils/inputValidation/trafficTypeExistance.d.ts +0 -9
- package/types/utils/jwt/index.d.ts +0 -5
- package/types/utils/jwt/types.d.ts +0 -5
- package/types/utils/key/index.d.ts +0 -8
- package/types/utils/labels/index.d.ts +0 -7
- package/types/utils/lang/binarySearch.d.ts +0 -9
- package/types/utils/lang/getFnName.d.ts +0 -4
- package/types/utils/lang/getGlobal.d.ts +0 -4
- package/types/utils/lang/index.d.ts +0 -105
- package/types/utils/lang/maps.d.ts +0 -55
- package/types/utils/lang/objectAssign.d.ts +0 -3
- package/types/utils/lang/sets.d.ts +0 -60
- package/types/utils/murmur3/common.d.ts +0 -12
- package/types/utils/murmur3/legacy.d.ts +0 -2
- package/types/utils/murmur3/murmur3.d.ts +0 -2
- package/types/utils/murmur3/murmur3_128.d.ts +0 -6
- package/types/utils/murmur3/murmur3_128_x86.d.ts +0 -7
- package/types/utils/murmur3/murmur3_64.d.ts +0 -10
- package/types/utils/murmur3/utfx.d.ts +0 -27
- package/types/utils/promise/thenable.d.ts +0 -1
- package/types/utils/promise/timeout.d.ts +0 -1
- package/types/utils/promise/wrapper.d.ts +0 -21
- package/types/utils/settingsValidation/consent.d.ts +0 -5
- package/types/utils/settingsValidation/impressionsMode.d.ts +0 -3
- package/types/utils/settingsValidation/index.d.ts +0 -51
- package/types/utils/settingsValidation/integrations/common.d.ts +0 -14
- package/types/utils/settingsValidation/integrations/configurable.d.ts +0 -13
- package/types/utils/settingsValidation/integrations/pluggable.d.ts +0 -12
- package/types/utils/settingsValidation/localhost/builtin.d.ts +0 -15
- package/types/utils/settingsValidation/localhost/pluggable.d.ts +0 -15
- package/types/utils/settingsValidation/logger/builtinLogger.d.ts +0 -10
- package/types/utils/settingsValidation/logger/commons.d.ts +0 -9
- package/types/utils/settingsValidation/logger/pluggableLogger.d.ts +0 -11
- package/types/utils/settingsValidation/mode.d.ts +0 -1
- package/types/utils/settingsValidation/runtime.d.ts +0 -2
- package/types/utils/settingsValidation/splitFilters.d.ts +0 -15
- package/types/utils/settingsValidation/storage/storageCS.d.ts +0 -20
- package/types/utils/settingsValidation/types.d.ts +0 -32
- package/types/utils/settingsValidation/url.d.ts +0 -10
- package/types/utils/time/index.d.ts +0 -4
- package/types/utils/timeTracker/now/browser.d.ts +0 -1
- package/types/utils/timeTracker/now/node.d.ts +0 -1
- package/types/utils/timeTracker/timer.d.ts +0 -1
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { IDependencyMatcherData, MaybeThenable } from '../../dtos/types';
|
|
2
|
-
import { IStorageAsync, IStorageSync } from '../../storages/types';
|
|
3
|
-
import { ILogger } from '../../types';
|
|
4
|
-
import { IDependencyMatcherValue, ISplitEvaluator } from '../types';
|
|
5
|
-
export declare function dependencyMatcherContext(log: ILogger, { split, treatments }: IDependencyMatcherData, storage: IStorageSync | IStorageAsync): ({ key, attributes }: IDependencyMatcherValue, splitEvaluator: ISplitEvaluator) => MaybeThenable<boolean>;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { IStorageAsync, IStorageSync } from '../../storages/types';
|
|
2
|
-
import { IMatcher, IMatcherDto } from '../types';
|
|
3
|
-
import { ILogger } from '../../types';
|
|
4
|
-
/**
|
|
5
|
-
* Matcher factory.
|
|
6
|
-
*/
|
|
7
|
-
export declare function matcherFactory(log: ILogger, matcherDto: IMatcherDto, storage?: IStorageSync | IStorageAsync): IMatcher | undefined;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export declare const matcherTypes: Record<string, number>;
|
|
2
|
-
export declare const matcherDataTypes: {
|
|
3
|
-
BOOLEAN: string;
|
|
4
|
-
STRING: string;
|
|
5
|
-
NUMBER: string;
|
|
6
|
-
SET: string;
|
|
7
|
-
DATETIME: string;
|
|
8
|
-
NOT_SPECIFIED: string;
|
|
9
|
-
};
|
|
10
|
-
export declare function matcherTypesMapper(matcherType: string): number;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { MaybeThenable } from '../../dtos/types';
|
|
2
|
-
import { ISegmentsCacheBase } from '../../storages/types';
|
|
3
|
-
import { ILogger } from '../../types';
|
|
4
|
-
export declare function segmentMatcherContext(log: ILogger, segmentName: string, storage: {
|
|
5
|
-
segments: ISegmentsCacheBase;
|
|
6
|
-
}): (key: string) => MaybeThenable<boolean>;
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { IEvaluator } from '../types';
|
|
2
|
-
import { ISplitCondition } from '../../dtos/types';
|
|
3
|
-
import { IStorageAsync, IStorageSync } from '../../storages/types';
|
|
4
|
-
import { ILogger } from '../../types';
|
|
5
|
-
export declare function parser(log: ILogger, conditions: ISplitCondition[], storage: IStorageSync | IStorageAsync): IEvaluator;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { ISplitPartition } from '../../dtos/types';
|
|
2
|
-
export declare class Treatments {
|
|
3
|
-
private _ranges;
|
|
4
|
-
private _treatments;
|
|
5
|
-
constructor(ranges: number[], treatments: string[]);
|
|
6
|
-
static parse(data: ISplitPartition[]): Treatments;
|
|
7
|
-
getTreatmentFor(x: number): string;
|
|
8
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { IBetweenMatcherData, IDependencyMatcherData, MaybeThenable } from '../dtos/types';
|
|
2
|
-
import { IStorageAsync, IStorageSync } from '../storages/types';
|
|
3
|
-
import { ISet } from '../utils/lang/sets';
|
|
4
|
-
import { SplitKey, Attributes } from '../types';
|
|
5
|
-
import { ILogger } from '../types';
|
|
6
|
-
export interface IDependencyMatcherValue {
|
|
7
|
-
key: SplitKey;
|
|
8
|
-
attributes?: Attributes;
|
|
9
|
-
}
|
|
10
|
-
export interface IMatcherDto {
|
|
11
|
-
type: number;
|
|
12
|
-
value?: string | number | boolean | string[] | IDependencyMatcherData | ISet<string> | IBetweenMatcherData | null;
|
|
13
|
-
attribute: string | null;
|
|
14
|
-
negate: boolean;
|
|
15
|
-
dataType: string;
|
|
16
|
-
}
|
|
17
|
-
export interface IEvaluation {
|
|
18
|
-
treatment?: string;
|
|
19
|
-
label: string;
|
|
20
|
-
changeNumber?: number;
|
|
21
|
-
config?: string | null;
|
|
22
|
-
}
|
|
23
|
-
export declare type IEvaluationResult = IEvaluation & {
|
|
24
|
-
treatment: string;
|
|
25
|
-
};
|
|
26
|
-
export declare type ISplitEvaluator = (log: ILogger, key: SplitKey, splitName: string, attributes: Attributes | undefined, storage: IStorageSync | IStorageAsync) => MaybeThenable<IEvaluation>;
|
|
27
|
-
export declare type IEvaluator = (key: SplitKey, seed: number, trafficAllocation?: number, trafficAllocationSeed?: number, attributes?: Attributes, splitEvaluator?: ISplitEvaluator) => MaybeThenable<IEvaluation | undefined>;
|
|
28
|
-
export declare type IMatcher = (...args: any) => MaybeThenable<boolean>;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { Attributes } from '../../types';
|
|
2
|
-
import { IMatcherDto } from '../types';
|
|
3
|
-
import { ILogger } from '../../types';
|
|
4
|
-
/**
|
|
5
|
-
* Defines value to be matched (key / attribute).
|
|
6
|
-
*/
|
|
7
|
-
export declare function sanitizeValue(log: ILogger, key: string, matcherDto: IMatcherDto, attributes?: Attributes): string | number | boolean | (string | number)[] | import("../types").IDependencyMatcherValue | undefined;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { Attributes } from '../../types';
|
|
2
|
-
import { IDependencyMatcherValue } from '../types';
|
|
3
|
-
import { ILogger } from '../../types';
|
|
4
|
-
/**
|
|
5
|
-
* Sanitize matcher value
|
|
6
|
-
*/
|
|
7
|
-
export declare function sanitize(log: ILogger, matcherTypeID: number, value: string | number | boolean | Array<string | number> | undefined, dataType: string, attributes?: Attributes): string | number | boolean | (string | number)[] | IDependencyMatcherValue | undefined;
|
package/types/index.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export { InMemoryStorageFactory } from './storages/inMemory/InMemoryStorage';
|
|
2
|
-
export { InMemoryStorageCSFactory } from './storages/inMemory/InMemoryStorageCS';
|
|
3
|
-
export { InLocalStorage } from './storages/inLocalStorage';
|
|
4
|
-
export { PluggableStorage } from './storages/pluggable';
|
|
5
|
-
export { InRedisStorage } from './storages/inRedis';
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { IIntegrationManager, IIntegrationFactoryParams } from './types';
|
|
2
|
-
import { BrowserIntegration } from './ga/types';
|
|
3
|
-
/**
|
|
4
|
-
* IntegrationsManager factory for the browser variant of the isomorphic JS SDK.
|
|
5
|
-
* The integrations manager instantiates integration modules, and bypass tracked events and impressions to them.
|
|
6
|
-
*
|
|
7
|
-
* @param integrations valid integration settings object for browser sdk
|
|
8
|
-
* @param params information of the Sdk factory instance that integrations can access to
|
|
9
|
-
*
|
|
10
|
-
* @returns integration manager or undefined if `integrations` are not present in settings.
|
|
11
|
-
*/
|
|
12
|
-
export declare function integrationsManagerFactory(integrations: BrowserIntegration[], params: IIntegrationFactoryParams): IIntegrationManager | undefined;
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/// <reference types="google.analytics" />
|
|
2
|
-
import { EventData } from '../../types';
|
|
3
|
-
import { Identity, GoogleAnalyticsToSplitOptions } from './types';
|
|
4
|
-
import { ILogger } from '../../types';
|
|
5
|
-
import { IIntegrationFactoryParams } from '../types';
|
|
6
|
-
export declare const defaultMapper: (model: UniversalAnalytics.Model) => EventData;
|
|
7
|
-
export declare const defaultPrefix = "ga";
|
|
8
|
-
/**
|
|
9
|
-
* Return a new list of identities removing invalid and duplicated ones.
|
|
10
|
-
*
|
|
11
|
-
* @param {Array} identities list of identities
|
|
12
|
-
* @returns list of valid and unique identities. The list might be empty if `identities` is not an array or all its elements are invalid.
|
|
13
|
-
*/
|
|
14
|
-
export declare function validateIdentities(identities?: Identity[]): Identity[];
|
|
15
|
-
/**
|
|
16
|
-
* Checks if EventData fields (except EventTypeId) are valid, and logs corresponding warnings.
|
|
17
|
-
* EventTypeId is validated separately.
|
|
18
|
-
*
|
|
19
|
-
* @param {EventData} data event data instance to validate. Precondition: data != undefined
|
|
20
|
-
* @returns {boolean} Whether the data instance is a valid EventData or not.
|
|
21
|
-
*/
|
|
22
|
-
export declare function validateEventData(log: ILogger, eventData: any): eventData is EventData;
|
|
23
|
-
/**
|
|
24
|
-
* Fixes the passed string value to comply with EventTypeId format, by removing invalid characters and truncating if necessary.
|
|
25
|
-
*
|
|
26
|
-
* @param {object} log factory logger
|
|
27
|
-
* @param {string} eventTypeId string value to fix.
|
|
28
|
-
* @returns {string} Fixed version of `eventTypeId`.
|
|
29
|
-
*/
|
|
30
|
-
export declare function fixEventTypeId(log: ILogger, eventTypeId: any): any;
|
|
31
|
-
/**
|
|
32
|
-
* GaToSplit integration.
|
|
33
|
-
* This function provides the SplitTracker plugin to ga command queue.
|
|
34
|
-
*
|
|
35
|
-
* @param {object} sdkOptions options passed at the SDK integrations settings (isomorphic SDK) or the GoogleAnalyticsToSplit plugin (pluggable browser SDK)
|
|
36
|
-
* @param {object} storage SDK storage passed to track events
|
|
37
|
-
* @param {object} coreSettings core settings used to define an identity if no one provided as SDK or plugin options
|
|
38
|
-
* @param {object} log factory logger
|
|
39
|
-
*/
|
|
40
|
-
export declare function GaToSplit(sdkOptions: GoogleAnalyticsToSplitOptions, params: IIntegrationFactoryParams): void;
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/// <reference types="google.analytics" />
|
|
2
|
-
import { IntegrationData } from '../../types';
|
|
3
|
-
import { IIntegration } from '../types';
|
|
4
|
-
import { SplitToGoogleAnalyticsOptions } from './types';
|
|
5
|
-
import { ILogger } from '../../types';
|
|
6
|
-
export declare class SplitToGa implements IIntegration {
|
|
7
|
-
static defaultTrackerNames: string[];
|
|
8
|
-
private trackerNames;
|
|
9
|
-
private filter?;
|
|
10
|
-
private mapper?;
|
|
11
|
-
private impressions;
|
|
12
|
-
private events;
|
|
13
|
-
private log;
|
|
14
|
-
static defaultMapper({ type, payload }: IntegrationData): UniversalAnalytics.FieldsObject;
|
|
15
|
-
static getGa(): UniversalAnalytics.ga | undefined;
|
|
16
|
-
/**
|
|
17
|
-
* Validates if a given object is a UniversalAnalytics.FieldsObject instance, and logs a warning if not.
|
|
18
|
-
* It checks that the object contains a `hitType`, since it is the minimal field required to send the hit
|
|
19
|
-
* and avoid the GA error `No hit type specified. Aborting hit.`.
|
|
20
|
-
* Other validations (e.g., an `event` hitType must have a `eventCategory` and `eventAction`) are handled
|
|
21
|
-
* and logged (as warnings or errors depending the case) by GA debugger, but the hit is sent anyway.
|
|
22
|
-
*
|
|
23
|
-
* @param {object} log factory logger
|
|
24
|
-
* @param {UniversalAnalytics.FieldsObject} fieldsObject object to validate.
|
|
25
|
-
* @returns {boolean} Whether the data instance is a valid FieldsObject or not.
|
|
26
|
-
*/
|
|
27
|
-
static validateFieldsObject(log: ILogger, fieldsObject: any): fieldsObject is UniversalAnalytics.FieldsObject;
|
|
28
|
-
/**
|
|
29
|
-
* constructor description
|
|
30
|
-
* @param {object} options options passed at the SDK integrations settings (isomorphic SDK) or the SplitToGoogleAnalytics plugin (pluggable browser SDK)
|
|
31
|
-
*/
|
|
32
|
-
constructor(log: ILogger, options: SplitToGoogleAnalyticsOptions);
|
|
33
|
-
queue(data: IntegrationData): void;
|
|
34
|
-
}
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
/// <reference types="google.analytics" />
|
|
2
|
-
import { IntegrationData, EventData } from '../../types';
|
|
3
|
-
/**
|
|
4
|
-
* A pair of user key and it's trafficType, required for tracking valid Split events.
|
|
5
|
-
* @typedef {Object} Identity
|
|
6
|
-
* @property {string} key The user key.
|
|
7
|
-
* @property {string} trafficType The key traffic type.
|
|
8
|
-
*/
|
|
9
|
-
export declare type Identity = {
|
|
10
|
-
key: string;
|
|
11
|
-
trafficType: string;
|
|
12
|
-
};
|
|
13
|
-
/**
|
|
14
|
-
* Options for GoogleAnalyticsToSplit integration plugin
|
|
15
|
-
*/
|
|
16
|
-
export interface GoogleAnalyticsToSplitOptions {
|
|
17
|
-
/**
|
|
18
|
-
* Optional flag to filter GA hits from being tracked as Split events.
|
|
19
|
-
* @property {boolean} hits
|
|
20
|
-
* @default true
|
|
21
|
-
*/
|
|
22
|
-
hits?: boolean;
|
|
23
|
-
/**
|
|
24
|
-
* Optional predicate used to define a custom filter for tracking GA hits as Split events.
|
|
25
|
-
* For example, the following filter allows to track only 'event' hits:
|
|
26
|
-
* `(model) => model.get('hitType') === 'event'`
|
|
27
|
-
* By default, all hits are tracked as Split events.
|
|
28
|
-
*/
|
|
29
|
-
filter?: (model: UniversalAnalytics.Model) => boolean;
|
|
30
|
-
/**
|
|
31
|
-
* Optional function useful when you need to modify the Split event before tracking it.
|
|
32
|
-
* This function is invoked with two arguments:
|
|
33
|
-
* 1. the GA model object representing the hit.
|
|
34
|
-
* 2. the default format of the mapped Split event instance.
|
|
35
|
-
* The return value must be a Split event, that can be the second argument or a new object.
|
|
36
|
-
*
|
|
37
|
-
* For example, the following mapper adds a custom property to events:
|
|
38
|
-
* `(model, defaultMapping) => {
|
|
39
|
-
* defaultMapping.properties.someProperty = SOME_VALUE;
|
|
40
|
-
* return defaultMapping;
|
|
41
|
-
* }`
|
|
42
|
-
*/
|
|
43
|
-
mapper?: (model: UniversalAnalytics.Model, defaultMapping: EventData) => EventData;
|
|
44
|
-
/**
|
|
45
|
-
* Optional prefix for EventTypeId, to prevent any kind of data collision between events.
|
|
46
|
-
* @property {string} prefix
|
|
47
|
-
* @default 'ga'
|
|
48
|
-
*/
|
|
49
|
-
prefix?: string;
|
|
50
|
-
/**
|
|
51
|
-
* List of Split identities (key & traffic type pairs) used to track events.
|
|
52
|
-
* If not provided, events are sent using the key and traffic type provided at SDK config
|
|
53
|
-
*/
|
|
54
|
-
identities?: Identity[];
|
|
55
|
-
/**
|
|
56
|
-
* Optional flag to log an error if the `auto-require` script is not detected.
|
|
57
|
-
* The auto-require script automatically requires the `splitTracker` plugin for created trackers,
|
|
58
|
-
* and should be placed right after your Google Analytics, Google Tag Manager or gtag.js script tag.
|
|
59
|
-
*
|
|
60
|
-
* @see {@link https://help.split.io/hc/en-us/articles/360040838752#set-up-with-gtm-and-gtag.js}
|
|
61
|
-
*
|
|
62
|
-
* @property {boolean} autoRequire
|
|
63
|
-
* @default false
|
|
64
|
-
*/
|
|
65
|
-
autoRequire?: boolean;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Enable 'Google Analytics to Split' integration, to track Google Analytics hits as Split events.
|
|
69
|
-
* Used by the browser variant of the isomorphic JS SDK.
|
|
70
|
-
*
|
|
71
|
-
* @see {@link https://help.split.io/hc/en-us/articles/360040838752#google-analytics-to-split}
|
|
72
|
-
*/
|
|
73
|
-
export interface IGoogleAnalyticsToSplitConfig extends GoogleAnalyticsToSplitOptions {
|
|
74
|
-
type: 'GOOGLE_ANALYTICS_TO_SPLIT';
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Options for SplitToGoogleAnalytics integration plugin
|
|
78
|
-
*/
|
|
79
|
-
export interface SplitToGoogleAnalyticsOptions {
|
|
80
|
-
/**
|
|
81
|
-
* Optional flag to filter Split impressions from being tracked as GA hits.
|
|
82
|
-
* @property {boolean} impressions
|
|
83
|
-
* @default true
|
|
84
|
-
*/
|
|
85
|
-
impressions?: boolean;
|
|
86
|
-
/**
|
|
87
|
-
* Optional flag to filter Split events from being tracked as GA hits.
|
|
88
|
-
* @property {boolean} events
|
|
89
|
-
* @default true
|
|
90
|
-
*/
|
|
91
|
-
events?: boolean;
|
|
92
|
-
/**
|
|
93
|
-
* Optional predicate used to define a custom filter for tracking Split data (events and impressions) as GA hits.
|
|
94
|
-
* For example, the following filter allows to track only impressions, equivalent to setting events to false:
|
|
95
|
-
* `(data) => data.type === 'IMPRESSION'`
|
|
96
|
-
*/
|
|
97
|
-
filter?: (data: IntegrationData) => boolean;
|
|
98
|
-
/**
|
|
99
|
-
* Optional function useful when you need to modify the GA hit before sending it.
|
|
100
|
-
* This function is invoked with two arguments:
|
|
101
|
-
* 1. the input data (Split event or impression).
|
|
102
|
-
* 2. the default format of the mapped FieldsObject instance (GA hit).
|
|
103
|
-
* The return value must be a FieldsObject, that can be the second argument or a new object.
|
|
104
|
-
*
|
|
105
|
-
* For example, the following mapper adds a custom dimension to hits:
|
|
106
|
-
* `(data, defaultMapping) => {
|
|
107
|
-
* defaultMapping.dimension1 = SOME_VALUE;
|
|
108
|
-
* return defaultMapping;
|
|
109
|
-
* }`
|
|
110
|
-
*
|
|
111
|
-
* Default FieldsObject instance for data.type === 'IMPRESSION':
|
|
112
|
-
* `{
|
|
113
|
-
* hitType: 'event',
|
|
114
|
-
* eventCategory: 'split-impression',
|
|
115
|
-
* eventAction: 'Evaluate ' + data.payload.impression.feature,
|
|
116
|
-
* eventLabel: 'Treatment: ' + data.payload.impression.treatment + '. Targeting rule: ' + data.payload.impression.label + '.',
|
|
117
|
-
* nonInteraction: true,
|
|
118
|
-
* }`
|
|
119
|
-
* Default FieldsObject instance for data.type === 'EVENT':
|
|
120
|
-
* `{
|
|
121
|
-
* hitType: 'event',
|
|
122
|
-
* eventCategory: 'split-event',
|
|
123
|
-
* eventAction: data.payload.eventTypeId,
|
|
124
|
-
* eventValue: data.payload.value,
|
|
125
|
-
* nonInteraction: true,
|
|
126
|
-
* }`
|
|
127
|
-
*/
|
|
128
|
-
mapper?: (data: IntegrationData, defaultMapping: UniversalAnalytics.FieldsObject) => UniversalAnalytics.FieldsObject;
|
|
129
|
-
/**
|
|
130
|
-
* List of tracker names to send the hit. An empty string represents the default tracker.
|
|
131
|
-
* If not provided, hits are only sent to default tracker.
|
|
132
|
-
*/
|
|
133
|
-
trackerNames?: string[];
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Enable 'Split to Google Analytics' integration, to track Split impressions and events as Google Analytics hits.
|
|
137
|
-
* Used by the browser variant of the isomorphic JS SDK.
|
|
138
|
-
*
|
|
139
|
-
* @see {@link https://help.split.io/hc/en-us/articles/360040838752#split-to-google-analytics}
|
|
140
|
-
*/
|
|
141
|
-
export interface ISplitToGoogleAnalyticsConfig extends SplitToGoogleAnalyticsOptions {
|
|
142
|
-
type: 'SPLIT_TO_GOOGLE_ANALYTICS';
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Available integration options for the browser
|
|
146
|
-
* Used by the browser variant of the isomorphic JS SDK.
|
|
147
|
-
*/
|
|
148
|
-
export declare type BrowserIntegration = ISplitToGoogleAnalyticsConfig | IGoogleAnalyticsToSplitConfig;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { IIntegration, IIntegrationManager, IIntegrationFactoryParams } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* Factory function for IntegrationsManager with pluggable integrations.
|
|
4
|
-
* The integrations manager instantiates integration, and bypass tracked events and impressions to them.
|
|
5
|
-
*
|
|
6
|
-
* @param integrations validated list of integration factories
|
|
7
|
-
* @param params information of the Sdk factory instance that integrations can access to
|
|
8
|
-
*
|
|
9
|
-
* @returns integration manager or undefined if `integrations` are not present in settings.
|
|
10
|
-
*/
|
|
11
|
-
export declare function pluggableIntegrationsManagerFactory(integrations: Array<(params: IIntegrationFactoryParams) => IIntegration | void>, params: IIntegrationFactoryParams): IIntegrationManager | undefined;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { IEventsCacheBase } from '../storages/types';
|
|
2
|
-
import { IEventsHandler, IImpressionsHandler } from '../trackers/types';
|
|
3
|
-
import { ISettings, IntegrationData } from '../types';
|
|
4
|
-
export interface IIntegration {
|
|
5
|
-
queue(data: IntegrationData): void;
|
|
6
|
-
}
|
|
7
|
-
export declare type IIntegrationManager = IEventsHandler & IImpressionsHandler;
|
|
8
|
-
export interface IIntegrationFactoryParams {
|
|
9
|
-
storage: {
|
|
10
|
-
events: IEventsCacheBase;
|
|
11
|
-
};
|
|
12
|
-
settings: ISettings;
|
|
13
|
-
}
|
|
14
|
-
export declare type IntegrationFactory = {
|
|
15
|
-
readonly type: string;
|
|
16
|
-
(params: IIntegrationFactoryParams): IIntegration | void;
|
|
17
|
-
};
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { ISignalListener } from './types';
|
|
2
|
-
import { IStorageSync } from '../storages/types';
|
|
3
|
-
import { ISplitApi } from '../services/types';
|
|
4
|
-
import { ISettings } from '../types';
|
|
5
|
-
import { ISyncManager } from '../sync/types';
|
|
6
|
-
/**
|
|
7
|
-
* We'll listen for events over the window object.
|
|
8
|
-
*/
|
|
9
|
-
export declare class BrowserSignalListener implements ISignalListener {
|
|
10
|
-
private syncManager;
|
|
11
|
-
private settings;
|
|
12
|
-
private storage;
|
|
13
|
-
private serviceApi;
|
|
14
|
-
private fromImpressionsCollector;
|
|
15
|
-
constructor(syncManager: ISyncManager | undefined, settings: ISettings, storage: IStorageSync, serviceApi: ISplitApi);
|
|
16
|
-
/**
|
|
17
|
-
* start method.
|
|
18
|
-
* Called when SplitFactory is initialized, it adds event listeners to close streaming and flush impressions and events.
|
|
19
|
-
*/
|
|
20
|
-
start(): void;
|
|
21
|
-
/**
|
|
22
|
-
* stop method.
|
|
23
|
-
* Called when client is destroyed, it removes event listeners.
|
|
24
|
-
*/
|
|
25
|
-
stop(): void;
|
|
26
|
-
stopSync(): void;
|
|
27
|
-
/**
|
|
28
|
-
* flushData method.
|
|
29
|
-
* Called when pagehide event is triggered. It flushed remaining impressions and events to the backend,
|
|
30
|
-
* using beacon API if possible, or falling back to regular post transport.
|
|
31
|
-
*/
|
|
32
|
-
flushData(): void;
|
|
33
|
-
flushDataIfHidden(): void;
|
|
34
|
-
private _flushData;
|
|
35
|
-
/**
|
|
36
|
-
* _sendBeacon method.
|
|
37
|
-
* Util method that check if beacon API is available, build the payload and send it.
|
|
38
|
-
*/
|
|
39
|
-
private _sendBeacon;
|
|
40
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { ISignalListener } from './types';
|
|
2
|
-
import { ISettings } from '../types';
|
|
3
|
-
import { ISyncManager } from '../sync/types';
|
|
4
|
-
/**
|
|
5
|
-
* We'll listen for SIGTERM since it's the standard signal for server shutdown.
|
|
6
|
-
*
|
|
7
|
-
* If you're stopping the execution yourself via the keyboard, or by calling process.exit,
|
|
8
|
-
* you should call the cleanup logic yourself, since we cannot ensure the data is sent after
|
|
9
|
-
* the process is already exiting.
|
|
10
|
-
*/
|
|
11
|
-
export declare class NodeSignalListener implements ISignalListener {
|
|
12
|
-
private handler;
|
|
13
|
-
private settings;
|
|
14
|
-
constructor(syncManager: ISyncManager | undefined, // private handler: () => MaybeThenable<void>,
|
|
15
|
-
settings: ISettings);
|
|
16
|
-
start(): void;
|
|
17
|
-
stop(): void;
|
|
18
|
-
/**
|
|
19
|
-
* Call the handler, clean up listeners and emit the signal again.
|
|
20
|
-
*/
|
|
21
|
-
private _sigtermHandler;
|
|
22
|
-
}
|