@splitsoftware/splitio-commons 1.2.1-rc.0 → 1.2.1-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/evaluator/Engine.js +6 -6
- package/cjs/evaluator/combiners/and.js +1 -1
- package/cjs/evaluator/combiners/ifelseif.js +2 -2
- package/cjs/evaluator/condition/engineUtils.js +2 -2
- package/cjs/evaluator/condition/index.js +4 -4
- package/cjs/evaluator/index.js +5 -5
- package/cjs/evaluator/matchers/cont_all.js +1 -1
- package/cjs/evaluator/matchers/cont_any.js +1 -1
- package/cjs/evaluator/matchers/cont_str.js +1 -1
- package/cjs/evaluator/matchers/dependency.js +1 -1
- package/cjs/evaluator/matchers/eq_set.js +1 -1
- package/cjs/evaluator/matchers/ew.js +3 -3
- package/cjs/evaluator/matchers/part_of.js +1 -1
- package/cjs/evaluator/matchers/segment.js +1 -1
- package/cjs/evaluator/matchers/sw.js +1 -1
- package/cjs/evaluator/matchers/whitelist.js +1 -1
- package/cjs/evaluator/matchersTransform/index.js +12 -12
- package/cjs/evaluator/parser/index.js +6 -6
- package/cjs/evaluator/treatments/index.js +1 -1
- package/cjs/evaluator/value/index.js +1 -1
- package/cjs/evaluator/value/sanitize.js +4 -4
- package/cjs/integrations/browser.js +3 -3
- package/cjs/integrations/ga/GaToSplit.js +14 -14
- package/cjs/integrations/ga/GoogleAnalyticsToSplit.js +5 -3
- package/cjs/integrations/ga/SplitToGa.js +1 -1
- package/cjs/integrations/ga/SplitToGoogleAnalytics.js +4 -2
- package/cjs/listeners/browser.js +1 -1
- package/cjs/listeners/node.js +1 -1
- package/cjs/logger/constants.js +4 -2
- package/cjs/logger/index.js +2 -2
- package/cjs/logger/messages/debug.js +1 -1
- package/cjs/logger/messages/error.js +2 -2
- package/cjs/logger/messages/info.js +3 -3
- package/cjs/logger/messages/warn.js +1 -1
- package/cjs/logger/sdkLogger.js +1 -1
- package/cjs/readiness/readinessManager.js +2 -2
- package/cjs/readiness/sdkReadinessManager.js +4 -4
- package/cjs/sdkClient/client.js +9 -9
- package/cjs/sdkClient/clientAttributesDecoration.js +4 -4
- package/cjs/sdkClient/clientCS.js +2 -2
- package/cjs/sdkClient/clientInputValidation.js +14 -14
- package/cjs/sdkClient/sdkClient.js +3 -3
- package/cjs/sdkClient/sdkClientMethod.js +1 -1
- package/cjs/sdkClient/sdkClientMethodCS.js +6 -6
- package/cjs/sdkClient/sdkClientMethodCSWithTT.js +8 -8
- package/cjs/sdkFactory/index.js +9 -8
- package/cjs/sdkManager/index.js +11 -11
- package/cjs/services/splitApi.js +3 -2
- package/cjs/services/splitHttpClient.js +2 -2
- package/cjs/storages/KeyBuilder.js +2 -2
- package/cjs/storages/KeyBuilderCS.js +2 -2
- package/cjs/storages/KeyBuilderSS.js +1 -1
- package/cjs/storages/findLatencyIndex.js +1 -1
- package/cjs/storages/inLocalStorage/MySegmentsCacheInLocal.js +1 -1
- package/cjs/storages/inLocalStorage/SplitsCacheInLocal.js +12 -12
- package/cjs/storages/inLocalStorage/index.js +4 -4
- package/cjs/storages/inMemory/AttributesCacheInMemory.js +1 -1
- package/cjs/storages/inMemory/ImpressionCountsCacheInMemory.js +1 -1
- package/cjs/storages/inMemory/ImpressionsCacheInMemory.js +15 -1
- package/cjs/storages/inMemory/InMemoryStorage.js +1 -1
- package/cjs/storages/inMemory/InMemoryStorageCS.js +1 -1
- package/cjs/storages/inMemory/LatenciesCacheInMemory.js +1 -1
- package/cjs/storages/inMemory/MySegmentsCacheInMemory.js +1 -1
- package/cjs/storages/inMemory/SegmentsCacheInMemory.js +2 -2
- package/cjs/storages/inMemory/SplitsCacheInMemory.js +5 -5
- package/cjs/storages/inRedis/LatenciesCacheInRedis.js +1 -1
- package/cjs/storages/inRedis/RedisAdapter.js +16 -10
- package/cjs/storages/inRedis/SegmentsCacheInRedis.js +1 -1
- package/cjs/storages/inRedis/SplitsCacheInRedis.js +3 -3
- package/cjs/storages/inRedis/index.js +1 -1
- package/cjs/storages/pluggable/SegmentsCachePluggable.js +1 -1
- package/cjs/storages/pluggable/SplitsCachePluggable.js +3 -3
- package/cjs/storages/pluggable/inMemoryWrapper.js +4 -4
- package/cjs/storages/pluggable/index.js +6 -6
- package/cjs/sync/offline/LocalhostFromFile.js +1 -1
- package/cjs/sync/offline/LocalhostFromObject.js +1 -1
- package/cjs/sync/offline/splitsParser/parseCondition.js +1 -1
- package/cjs/sync/offline/splitsParser/splitsParserFromFile.js +13 -13
- package/cjs/sync/offline/splitsParser/splitsParserFromSettings.js +3 -3
- package/cjs/sync/offline/syncManagerOffline.js +1 -1
- package/cjs/sync/offline/syncTasks/fromObjectSyncTask.js +2 -2
- package/cjs/sync/polling/fetchers/mySegmentsFetcher.js +2 -2
- package/cjs/sync/polling/fetchers/segmentChangesFetcher.js +1 -1
- package/cjs/sync/polling/pollingManagerCS.js +8 -7
- package/cjs/sync/polling/pollingManagerSS.js +5 -4
- package/cjs/sync/polling/syncTasks/mySegmentsSyncTask.js +1 -1
- package/cjs/sync/polling/syncTasks/segmentsSyncTask.js +1 -1
- package/cjs/sync/polling/syncTasks/splitsSyncTask.js +1 -1
- package/cjs/sync/polling/updaters/mySegmentsUpdater.js +3 -3
- package/cjs/sync/polling/updaters/segmentChangesUpdater.js +2 -2
- package/cjs/sync/polling/updaters/splitChangesUpdater.js +2 -2
- package/cjs/sync/streaming/AuthClient/index.js +3 -3
- package/cjs/sync/streaming/SSEHandler/NotificationParser.js +1 -1
- package/cjs/sync/streaming/SSEHandler/index.js +3 -3
- package/cjs/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.js +1 -1
- package/cjs/sync/streaming/mySegmentsV2utils.js +1 -1
- package/cjs/sync/streaming/pushManager.js +27 -19
- package/cjs/sync/submitters/eventsSyncTask.js +4 -3
- package/cjs/sync/submitters/impressionCountsSyncTask.js +1 -1
- package/cjs/sync/submitters/impressionsSyncTask.js +11 -3
- package/cjs/sync/submitters/metricsSyncTask.js +3 -3
- package/cjs/sync/submitters/submitterManager.js +6 -5
- package/cjs/sync/submitters/submitterSyncTask.js +1 -1
- package/cjs/sync/syncManagerOnline.js +8 -13
- package/cjs/trackers/eventTracker.js +3 -3
- package/cjs/trackers/impressionObserver/impressionObserverCS.js +1 -1
- package/cjs/trackers/impressionObserver/impressionObserverSS.js +1 -1
- package/cjs/trackers/impressionsTracker.js +3 -3
- package/cjs/utils/MinEvents.js +2 -1
- package/cjs/utils/inputValidation/apiKey.js +1 -1
- package/cjs/utils/inputValidation/attribute.js +4 -4
- package/cjs/utils/inputValidation/attributes.js +2 -2
- package/cjs/utils/inputValidation/event.js +1 -1
- package/cjs/utils/inputValidation/eventProperties.js +7 -5
- package/cjs/utils/inputValidation/eventValue.js +1 -1
- package/cjs/utils/inputValidation/key.js +6 -5
- package/cjs/utils/inputValidation/preloadedData.js +8 -8
- package/cjs/utils/inputValidation/split.js +1 -1
- package/cjs/utils/inputValidation/splits.js +2 -2
- package/cjs/utils/inputValidation/trafficType.js +1 -1
- package/cjs/utils/inputValidation/trafficTypeExistance.js +1 -1
- package/cjs/utils/jwt/index.js +1 -1
- package/cjs/utils/key/index.js +3 -3
- package/cjs/utils/lang/index.js +2 -14
- package/cjs/utils/murmur3/common.js +1 -1
- package/cjs/utils/murmur3/murmur3.js +10 -10
- package/cjs/utils/murmur3/murmur3_128.js +1 -1
- package/cjs/utils/murmur3/murmur3_128_x86.js +37 -37
- package/cjs/utils/murmur3/murmur3_64.js +1 -1
- package/cjs/utils/settingsValidation/index.js +7 -10
- package/cjs/utils/settingsValidation/integrations/configurable.js +1 -1
- package/cjs/utils/settingsValidation/integrations/pluggable.js +1 -1
- package/cjs/utils/settingsValidation/localhost/builtin.js +2 -2
- package/cjs/utils/settingsValidation/logger/builtinLogger.js +3 -3
- package/cjs/utils/settingsValidation/logger/commons.js +1 -1
- package/cjs/utils/settingsValidation/logger/pluggableLogger.js +1 -1
- package/cjs/utils/settingsValidation/runtime.js +11 -0
- package/cjs/utils/settingsValidation/splitFilters.js +1 -1
- package/cjs/utils/settingsValidation/storage/storageCS.js +1 -1
- package/cjs/utils/timeTracker/index.js +3 -3
- package/esm/evaluator/matchers/ew.js +4 -4
- package/esm/integrations/ga/GoogleAnalyticsToSplit.js +4 -2
- package/esm/integrations/ga/SplitToGoogleAnalytics.js +4 -2
- package/esm/logger/constants.js +1 -1
- package/esm/logger/messages/error.js +1 -1
- package/esm/logger/messages/info.js +2 -2
- package/esm/sdkFactory/index.js +1 -0
- package/esm/services/splitApi.js +2 -1
- package/esm/storages/inLocalStorage/index.js +1 -1
- package/esm/storages/inMemory/ImpressionsCacheInMemory.js +15 -1
- package/esm/storages/inMemory/InMemoryStorage.js +1 -1
- package/esm/storages/inMemory/InMemoryStorageCS.js +1 -1
- package/esm/storages/inRedis/RedisAdapter.js +7 -1
- package/esm/storages/pluggable/index.js +2 -2
- package/esm/sync/offline/splitsParser/splitsParserFromFile.js +1 -1
- package/esm/sync/polling/fetchers/mySegmentsFetcher.js +2 -2
- package/esm/sync/polling/fetchers/segmentChangesFetcher.js +2 -2
- package/esm/sync/polling/pollingManagerCS.js +2 -1
- package/esm/sync/polling/pollingManagerSS.js +2 -1
- package/esm/sync/polling/syncTasks/mySegmentsSyncTask.js +1 -1
- package/esm/sync/polling/updaters/mySegmentsUpdater.js +2 -2
- package/esm/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.js +1 -1
- package/esm/sync/streaming/pushManager.js +13 -5
- package/esm/sync/submitters/eventsSyncTask.js +5 -4
- package/esm/sync/submitters/impressionsSyncTask.js +9 -1
- package/esm/sync/submitters/submitterManager.js +2 -1
- package/esm/sync/syncManagerOnline.js +8 -13
- package/esm/utils/inputValidation/eventProperties.js +4 -2
- package/esm/utils/inputValidation/key.js +2 -1
- package/esm/utils/lang/index.js +2 -13
- package/esm/utils/settingsValidation/index.js +3 -6
- package/esm/utils/settingsValidation/runtime.js +7 -0
- package/package.json +6 -6
- package/src/evaluator/matchers/ew.ts +4 -4
- package/src/integrations/ga/GoogleAnalyticsToSplit.ts +7 -4
- package/src/integrations/ga/SplitToGoogleAnalytics.ts +7 -4
- package/src/integrations/types.ts +5 -0
- package/src/logger/constants.ts +1 -1
- package/src/logger/messages/error.ts +1 -1
- package/src/logger/messages/info.ts +2 -2
- package/src/logger/types.ts +4 -0
- package/src/sdkFactory/index.ts +1 -0
- package/src/storages/inLocalStorage/index.ts +1 -1
- package/src/storages/inMemory/ImpressionsCacheInMemory.ts +22 -1
- package/src/storages/inMemory/InMemoryStorage.ts +1 -1
- package/src/storages/inMemory/InMemoryStorageCS.ts +1 -1
- package/src/storages/pluggable/index.ts +2 -2
- package/src/storages/types.ts +6 -2
- package/src/sync/offline/splitsParser/splitsParserFromFile.ts +1 -1
- package/src/sync/polling/fetchers/mySegmentsFetcher.ts +2 -1
- package/src/sync/polling/fetchers/types.ts +1 -0
- package/src/sync/polling/pollingManagerCS.ts +3 -6
- package/src/sync/polling/pollingManagerSS.ts +3 -8
- package/src/sync/polling/syncTasks/mySegmentsSyncTask.ts +2 -1
- package/src/sync/polling/types.ts +0 -12
- package/src/sync/polling/updaters/mySegmentsUpdater.ts +2 -1
- package/src/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.ts +1 -1
- package/src/sync/streaming/pushManager.ts +19 -16
- package/src/sync/streaming/types.ts +5 -25
- package/src/sync/submitters/eventsSyncTask.ts +6 -4
- package/src/sync/submitters/impressionsSyncTask.ts +12 -1
- package/src/sync/submitters/submitterManager.ts +4 -8
- package/src/sync/syncManagerOnline.ts +14 -24
- package/src/types.ts +15 -0
- package/src/utils/inputValidation/eventProperties.ts +4 -2
- package/src/utils/lang/index.ts +0 -14
- package/src/utils/settingsValidation/index.ts +3 -6
- package/src/utils/settingsValidation/runtime.ts +9 -0
- package/src/utils/settingsValidation/types.ts +6 -6
- package/types/integrations/ga/GoogleAnalyticsToSplit.d.ts +2 -2
- package/types/integrations/ga/SplitToGoogleAnalytics.d.ts +2 -3
- package/types/integrations/types.d.ts +4 -0
- package/types/logger/constants.d.ts +1 -1
- package/types/logger/types.d.ts +4 -0
- package/types/sdkClient/clientAttributesDecoration.d.ts +1 -1
- package/types/storages/inMemory/ImpressionsCacheInMemory.d.ts +9 -0
- package/types/storages/inMemory/index.d.ts +10 -0
- package/types/storages/parseSegments.d.ts +6 -0
- package/types/storages/types.d.ts +3 -1
- package/types/sync/polling/fetchers/mySegmentsFetcher.d.ts +1 -1
- package/types/sync/polling/fetchers/types.d.ts +1 -1
- package/types/sync/polling/pollingManagerCS.d.ts +2 -5
- package/types/sync/polling/pollingManagerSS.d.ts +2 -5
- package/types/sync/polling/types.d.ts +0 -11
- package/types/sync/polling/updaters/mySegmentsUpdater.d.ts +1 -1
- package/types/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.d.ts +1 -1
- package/types/sync/streaming/pushManager.d.ts +3 -7
- package/types/sync/streaming/pushManagerCS.d.ts +1 -12
- package/types/sync/streaming/pushManagerSS.d.ts +1 -11
- package/types/sync/streaming/types.d.ts +3 -23
- package/types/sync/submitters/submitterManager.d.ts +2 -4
- package/types/sync/syncManagerOnline.d.ts +3 -3
- package/types/types.d.ts +15 -0
- package/types/utils/lang/index.d.ts +0 -4
- package/types/utils/settingsValidation/runtime/browser.d.ts +2 -0
- package/types/utils/settingsValidation/runtime/node.d.ts +2 -0
- package/types/utils/settingsValidation/runtime.d.ts +2 -0
- package/types/utils/settingsValidation/types.d.ts +6 -6
|
@@ -3,14 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.impressionsSyncTaskFactory = exports.fromImpressionsCollector = void 0;
|
|
4
4
|
var lang_1 = require("../../utils/lang");
|
|
5
5
|
var submitterSyncTask_1 = require("./submitterSyncTask");
|
|
6
|
+
var constants_1 = require("../../logger/constants");
|
|
7
|
+
var DATA_NAME = 'impressions';
|
|
6
8
|
/**
|
|
7
9
|
* Converts `impressions` data from cache into request payload.
|
|
8
10
|
*/
|
|
9
11
|
function fromImpressionsCollector(sendLabels, data) {
|
|
10
|
-
var groupedByFeature = lang_1.groupBy(data, 'feature');
|
|
12
|
+
var groupedByFeature = (0, lang_1.groupBy)(data, 'feature');
|
|
11
13
|
var dto = [];
|
|
12
14
|
// using forOwn instead of for...in since the last also iterates over prototype enumerables
|
|
13
|
-
lang_1.forOwn(groupedByFeature, function (value, name) {
|
|
15
|
+
(0, lang_1.forOwn)(groupedByFeature, function (value, name) {
|
|
14
16
|
dto.push({
|
|
15
17
|
f: name,
|
|
16
18
|
i: value.map(function (entry) {
|
|
@@ -36,6 +38,12 @@ exports.fromImpressionsCollector = fromImpressionsCollector;
|
|
|
36
38
|
function impressionsSyncTaskFactory(log, postTestImpressionsBulk, impressionsCache, impressionsRefreshRate, sendLabels, latencyTracker) {
|
|
37
39
|
if (sendLabels === void 0) { sendLabels = false; }
|
|
38
40
|
// retry impressions only once.
|
|
39
|
-
|
|
41
|
+
var syncTask = (0, submitterSyncTask_1.submitterSyncTaskFactory)(log, postTestImpressionsBulk, impressionsCache, impressionsRefreshRate, DATA_NAME, latencyTracker, fromImpressionsCollector.bind(undefined, sendLabels), 1);
|
|
42
|
+
// register impressions submitter to be executed when impressions cache is full
|
|
43
|
+
impressionsCache.setOnFullQueueCb(function () {
|
|
44
|
+
log.info(constants_1.SUBMITTERS_PUSH_FULL_QUEUE, [DATA_NAME]);
|
|
45
|
+
syncTask.execute();
|
|
46
|
+
});
|
|
47
|
+
return syncTask;
|
|
40
48
|
}
|
|
41
49
|
exports.impressionsSyncTaskFactory = impressionsSyncTaskFactory;
|
|
@@ -7,7 +7,7 @@ var submitterSyncTask_1 = require("./submitterSyncTask");
|
|
|
7
7
|
function fromCache(propertyName) {
|
|
8
8
|
return function (data) {
|
|
9
9
|
var result = [];
|
|
10
|
-
lang_1.forOwn(data, function (value, key) {
|
|
10
|
+
(0, lang_1.forOwn)(data, function (value, key) {
|
|
11
11
|
var _a;
|
|
12
12
|
result.push((_a = { name: key }, _a[propertyName] = value, _a));
|
|
13
13
|
});
|
|
@@ -18,7 +18,7 @@ function fromCache(propertyName) {
|
|
|
18
18
|
* Sync task that periodically posts telemetry counts
|
|
19
19
|
*/
|
|
20
20
|
function countsSyncTaskFactory(log, postMetricsCounters, countsCache, metricsRefreshRate, latencyTracker) {
|
|
21
|
-
return submitterSyncTask_1.submitterSyncTaskFactory(log, postMetricsCounters, countsCache, metricsRefreshRate, 'count metrics', latencyTracker, fromCache('delta'));
|
|
21
|
+
return (0, submitterSyncTask_1.submitterSyncTaskFactory)(log, postMetricsCounters, countsCache, metricsRefreshRate, 'count metrics', latencyTracker, fromCache('delta'));
|
|
22
22
|
}
|
|
23
23
|
exports.countsSyncTaskFactory = countsSyncTaskFactory;
|
|
24
24
|
/**
|
|
@@ -26,6 +26,6 @@ exports.countsSyncTaskFactory = countsSyncTaskFactory;
|
|
|
26
26
|
*/
|
|
27
27
|
function latenciesSyncTaskFactory(log, postMetricsLatencies, latenciesCache, metricsRefreshRate, latencyTracker) {
|
|
28
28
|
// don't retry metrics.
|
|
29
|
-
return submitterSyncTask_1.submitterSyncTaskFactory(log, postMetricsLatencies, latenciesCache, metricsRefreshRate, 'latency metrics', latencyTracker, fromCache('latencies'), 0, true);
|
|
29
|
+
return (0, submitterSyncTask_1.submitterSyncTaskFactory)(log, postMetricsLatencies, latenciesCache, metricsRefreshRate, 'latency metrics', latencyTracker, fromCache('latencies'), 0, true);
|
|
30
30
|
}
|
|
31
31
|
exports.latenciesSyncTaskFactory = latenciesSyncTaskFactory;
|
|
@@ -5,15 +5,16 @@ var syncTaskComposite_1 = require("../syncTaskComposite");
|
|
|
5
5
|
var eventsSyncTask_1 = require("./eventsSyncTask");
|
|
6
6
|
var impressionsSyncTask_1 = require("./impressionsSyncTask");
|
|
7
7
|
var impressionCountsSyncTask_1 = require("./impressionCountsSyncTask");
|
|
8
|
-
function submitterManagerFactory(
|
|
8
|
+
function submitterManagerFactory(params) {
|
|
9
|
+
var settings = params.settings, storage = params.storage, splitApi = params.splitApi;
|
|
9
10
|
var log = settings.log;
|
|
10
11
|
var submitters = [
|
|
11
|
-
impressionsSyncTask_1.impressionsSyncTaskFactory(log, splitApi.postTestImpressionsBulk, storage.impressions, settings.scheduler.impressionsRefreshRate, settings.core.labelsEnabled),
|
|
12
|
-
eventsSyncTask_1.eventsSyncTaskFactory(log, splitApi.postEventsBulk, storage.events, settings.scheduler.eventsPushRate, settings.startup.eventsFirstPushWindow)
|
|
12
|
+
(0, impressionsSyncTask_1.impressionsSyncTaskFactory)(log, splitApi.postTestImpressionsBulk, storage.impressions, settings.scheduler.impressionsRefreshRate, settings.core.labelsEnabled),
|
|
13
|
+
(0, eventsSyncTask_1.eventsSyncTaskFactory)(log, splitApi.postEventsBulk, storage.events, settings.scheduler.eventsPushRate, settings.startup.eventsFirstPushWindow)
|
|
13
14
|
// @TODO add telemetry submitter
|
|
14
15
|
];
|
|
15
16
|
if (storage.impressionCounts)
|
|
16
|
-
submitters.push(impressionCountsSyncTask_1.impressionCountsSyncTaskFactory(log, splitApi.postTestImpressionsCount, storage.impressionCounts));
|
|
17
|
-
return syncTaskComposite_1.syncTaskComposite(submitters);
|
|
17
|
+
submitters.push((0, impressionCountsSyncTask_1.impressionCountsSyncTaskFactory)(log, splitApi.postTestImpressionsCount, storage.impressionCounts));
|
|
18
|
+
return (0, syncTaskComposite_1.syncTaskComposite)(submitters);
|
|
18
19
|
}
|
|
19
20
|
exports.submitterManagerFactory = submitterManagerFactory;
|
|
@@ -39,6 +39,6 @@ function submitterSyncTaskFactory(log, postClient, sourceCache, postRate, dataNa
|
|
|
39
39
|
// if latencyTracker provided, attach stop callback to postEventsPromise
|
|
40
40
|
return latencyTrackerStop ? postPromise.then(latencyTrackerStop).catch(latencyTrackerStop) : postPromise;
|
|
41
41
|
}
|
|
42
|
-
return syncTask_1.syncTaskFactory(log, postData, postRate, dataName + ' submitter');
|
|
42
|
+
return (0, syncTask_1.syncTaskFactory)(log, postData, postRate, dataName + ' submitter');
|
|
43
43
|
}
|
|
44
44
|
exports.submitterSyncTaskFactory = submitterSyncTaskFactory;
|
|
@@ -16,18 +16,17 @@ function syncManagerOnlineFactory(pollingManagerFactory, pushManagerFactory) {
|
|
|
16
16
|
/**
|
|
17
17
|
* SyncManager factory for modular SDK
|
|
18
18
|
*/
|
|
19
|
-
return function (
|
|
20
|
-
var
|
|
21
|
-
var log = settings.log;
|
|
19
|
+
return function (params) {
|
|
20
|
+
var _a = params.settings, log = _a.log, streamingEnabled = _a.streamingEnabled;
|
|
22
21
|
/** Polling Manager */
|
|
23
|
-
var pollingManager = pollingManagerFactory && pollingManagerFactory(
|
|
22
|
+
var pollingManager = pollingManagerFactory && pollingManagerFactory(params);
|
|
24
23
|
/** Push Manager */
|
|
25
|
-
var pushManager =
|
|
26
|
-
pushManagerFactory(
|
|
24
|
+
var pushManager = streamingEnabled && pollingManager && pushManagerFactory ?
|
|
25
|
+
pushManagerFactory(params, pollingManager) :
|
|
27
26
|
undefined;
|
|
28
27
|
/** Submitter Manager */
|
|
29
28
|
// It is not inyected as push and polling managers, because at the moment it is required
|
|
30
|
-
var submitter = submitterManager_1.submitterManagerFactory(
|
|
29
|
+
var submitter = (0, submitterManager_1.submitterManagerFactory)(params);
|
|
31
30
|
/** Sync Manager logic */
|
|
32
31
|
function startPolling() {
|
|
33
32
|
if (pollingManager.isRunning()) {
|
|
@@ -58,9 +57,6 @@ function syncManagerOnlineFactory(pollingManagerFactory, pushManagerFactory) {
|
|
|
58
57
|
* Method used to start the syncManager for the first time, or resume it after being stopped.
|
|
59
58
|
*/
|
|
60
59
|
start: function () {
|
|
61
|
-
if (running)
|
|
62
|
-
return;
|
|
63
|
-
running = true;
|
|
64
60
|
// start syncing splits and segments
|
|
65
61
|
if (pollingManager) {
|
|
66
62
|
if (pushManager) {
|
|
@@ -78,14 +74,12 @@ function syncManagerOnlineFactory(pollingManagerFactory, pushManagerFactory) {
|
|
|
78
74
|
// start periodic data recording (events, impressions, telemetry).
|
|
79
75
|
if (submitter)
|
|
80
76
|
submitter.start();
|
|
77
|
+
running = true;
|
|
81
78
|
},
|
|
82
79
|
/**
|
|
83
80
|
* Method used to stop/pause the syncManager.
|
|
84
81
|
*/
|
|
85
82
|
stop: function () {
|
|
86
|
-
if (!running)
|
|
87
|
-
return;
|
|
88
|
-
running = false;
|
|
89
83
|
// stop syncing
|
|
90
84
|
if (pushManager)
|
|
91
85
|
pushManager.stop();
|
|
@@ -94,6 +88,7 @@ function syncManagerOnlineFactory(pollingManagerFactory, pushManagerFactory) {
|
|
|
94
88
|
// stop periodic data recording (events, impressions, telemetry).
|
|
95
89
|
if (submitter)
|
|
96
90
|
submitter.stop();
|
|
91
|
+
running = false;
|
|
97
92
|
},
|
|
98
93
|
isRunning: function () {
|
|
99
94
|
return running;
|
|
@@ -21,9 +21,9 @@ function eventTrackerFactory(log, eventsCache, integrationsManager) {
|
|
|
21
21
|
// Wrap in a timeout because we don't want it to be blocking.
|
|
22
22
|
setTimeout(function () {
|
|
23
23
|
// copy of event, to avoid unexpected behaviour if modified by integrations
|
|
24
|
-
var eventDataCopy = objectAssign_1.objectAssign({}, eventData);
|
|
24
|
+
var eventDataCopy = (0, objectAssign_1.objectAssign)({}, eventData);
|
|
25
25
|
if (eventData.properties)
|
|
26
|
-
eventDataCopy.properties = objectAssign_1.objectAssign({}, eventData.properties);
|
|
26
|
+
eventDataCopy.properties = (0, objectAssign_1.objectAssign)({}, eventData.properties);
|
|
27
27
|
// integrationsManager does not throw errors (they are internally handled by each integration module)
|
|
28
28
|
integrationsManager.handleEvent(eventDataCopy);
|
|
29
29
|
}, 0);
|
|
@@ -37,7 +37,7 @@ function eventTrackerFactory(log, eventsCache, integrationsManager) {
|
|
|
37
37
|
return {
|
|
38
38
|
track: function (eventData, size) {
|
|
39
39
|
var tracked = eventsCache.track(eventData, size);
|
|
40
|
-
if (thenable_1.thenable(tracked)) {
|
|
40
|
+
if ((0, thenable_1.thenable)(tracked)) {
|
|
41
41
|
return tracked.then(queueEventsCallback.bind(null, eventData));
|
|
42
42
|
}
|
|
43
43
|
else {
|
|
@@ -5,7 +5,7 @@ var ImpressionObserver_1 = require("./ImpressionObserver");
|
|
|
5
5
|
var murmur3_1 = require("../../utils/murmur3/murmur3");
|
|
6
6
|
var buildKey_1 = require("./buildKey");
|
|
7
7
|
function hashImpression32(impression) {
|
|
8
|
-
return murmur3_1.hash(buildKey_1.buildKey(impression));
|
|
8
|
+
return (0, murmur3_1.hash)((0, buildKey_1.buildKey)(impression));
|
|
9
9
|
}
|
|
10
10
|
exports.hashImpression32 = hashImpression32;
|
|
11
11
|
var LAST_SEEN_CACHE_SIZE = 500; // cache up to 500 impression hashes
|
|
@@ -5,7 +5,7 @@ var ImpressionObserver_1 = require("./ImpressionObserver");
|
|
|
5
5
|
var murmur3_128_x86_1 = require("../../utils/murmur3/murmur3_128_x86");
|
|
6
6
|
var buildKey_1 = require("./buildKey");
|
|
7
7
|
function hashImpression128(impression) {
|
|
8
|
-
return murmur3_128_x86_1.hash128(buildKey_1.buildKey(impression));
|
|
8
|
+
return (0, murmur3_128_x86_1.hash128)((0, buildKey_1.buildKey)(impression));
|
|
9
9
|
}
|
|
10
10
|
exports.hashImpression128 = hashImpression128;
|
|
11
11
|
var LAST_SEEN_CACHE_SIZE = 500000; // cache up to 500k impression hashes
|
|
@@ -39,13 +39,13 @@ countsCache) {
|
|
|
39
39
|
countsCache.track(impression.feature, now, 1);
|
|
40
40
|
}
|
|
41
41
|
// Checks if the impression should be added in queue to be sent
|
|
42
|
-
if (!countsCache || !impression.pt || impression.pt < time_1.truncateTimeFrame(now)) {
|
|
42
|
+
if (!countsCache || !impression.pt || impression.pt < (0, time_1.truncateTimeFrame)(now)) {
|
|
43
43
|
impressionsToStore.push(impression);
|
|
44
44
|
}
|
|
45
45
|
});
|
|
46
46
|
var res = impressionsCache.track(impressionsToStore);
|
|
47
47
|
// If we're on an async storage, handle error and log it.
|
|
48
|
-
if (thenable_1.thenable(res)) {
|
|
48
|
+
if ((0, thenable_1.thenable)(res)) {
|
|
49
49
|
res.then(function () {
|
|
50
50
|
log.info(constants_1.IMPRESSIONS_TRACKER_SUCCESS, [impressionsCount]);
|
|
51
51
|
}).catch(function (err) {
|
|
@@ -57,7 +57,7 @@ countsCache) {
|
|
|
57
57
|
var _loop_1 = function (i) {
|
|
58
58
|
var impressionData = {
|
|
59
59
|
// copy of impression, to avoid unexpected behaviour if modified by integrations or impressionListener
|
|
60
|
-
impression: objectAssign_1.objectAssign({}, impressions[i]),
|
|
60
|
+
impression: (0, objectAssign_1.objectAssign)({}, impressions[i]),
|
|
61
61
|
attributes: attributes,
|
|
62
62
|
ip: ip,
|
|
63
63
|
hostname: hostname,
|
package/cjs/utils/MinEvents.js
CHANGED
|
@@ -38,9 +38,10 @@ var ReflectApply = R && typeof R.apply === 'function'
|
|
|
38
38
|
: function ReflectApply(target, receiver, args) {
|
|
39
39
|
return Function.prototype.apply.call(target, receiver, args);
|
|
40
40
|
};
|
|
41
|
-
|
|
41
|
+
var EventEmitter = function EventEmitter() {
|
|
42
42
|
EventEmitter.init.call(this);
|
|
43
43
|
};
|
|
44
|
+
exports.EventEmitter = EventEmitter;
|
|
44
45
|
exports.EventEmitter.prototype._events = undefined;
|
|
45
46
|
exports.EventEmitter.prototype._eventsCount = 0;
|
|
46
47
|
function checkListener(listener) {
|
|
@@ -10,7 +10,7 @@ function validateApiKey(log, maybeApiKey) {
|
|
|
10
10
|
if (maybeApiKey == undefined) { // eslint-disable-line eqeqeq
|
|
11
11
|
log.error(constants_1.ERROR_NULL, [constants_1.LOG_PREFIX_INSTANTIATION, item]);
|
|
12
12
|
}
|
|
13
|
-
else if (lang_1.isString(maybeApiKey)) {
|
|
13
|
+
else if ((0, lang_1.isString)(maybeApiKey)) {
|
|
14
14
|
if (maybeApiKey.length > 0)
|
|
15
15
|
apiKey = maybeApiKey;
|
|
16
16
|
else
|
|
@@ -3,13 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.validateAttribute = void 0;
|
|
4
4
|
var lang_1 = require("../../utils/lang");
|
|
5
5
|
function validateAttribute(log, attributeKey, attributeValue, method) {
|
|
6
|
-
if (!lang_1.isString(attributeKey) || attributeKey.length === 0) {
|
|
6
|
+
if (!(0, lang_1.isString)(attributeKey) || attributeKey.length === 0) {
|
|
7
7
|
log.warn(method + ": you passed an invalid attribute name, attribute name must be a non-empty string.");
|
|
8
8
|
return false;
|
|
9
9
|
}
|
|
10
|
-
var isStringVal = lang_1.isString(attributeValue);
|
|
11
|
-
var isFiniteVal = lang_1.isFiniteNumber(attributeValue);
|
|
12
|
-
var isBoolVal = lang_1.isBoolean(attributeValue);
|
|
10
|
+
var isStringVal = (0, lang_1.isString)(attributeValue);
|
|
11
|
+
var isFiniteVal = (0, lang_1.isFiniteNumber)(attributeValue);
|
|
12
|
+
var isBoolVal = (0, lang_1.isBoolean)(attributeValue);
|
|
13
13
|
var isArrayVal = Array.isArray(attributeValue);
|
|
14
14
|
if (!(isStringVal || isFiniteVal || isBoolVal || isArrayVal)) { // If it's not of valid type.
|
|
15
15
|
log.warn(method + ": you passed an invalid attribute value for " + attributeKey + ". Acceptable types are: string, number, boolean and array of strings.");
|
|
@@ -6,7 +6,7 @@ var attribute_1 = require("./attribute");
|
|
|
6
6
|
var constants_1 = require("../../logger/constants");
|
|
7
7
|
function validateAttributes(log, maybeAttrs, method) {
|
|
8
8
|
// Attributes are optional
|
|
9
|
-
if (lang_1.isObject(maybeAttrs) || maybeAttrs == undefined) // eslint-disable-line eqeqeq
|
|
9
|
+
if ((0, lang_1.isObject)(maybeAttrs) || maybeAttrs == undefined) // eslint-disable-line eqeqeq
|
|
10
10
|
return maybeAttrs;
|
|
11
11
|
log.error(constants_1.ERROR_NOT_PLAIN_OBJECT, [method, 'attributes']);
|
|
12
12
|
return false;
|
|
@@ -17,7 +17,7 @@ function validateAttributesDeep(log, maybeAttributes, method) {
|
|
|
17
17
|
return false;
|
|
18
18
|
var result = true;
|
|
19
19
|
Object.keys(maybeAttributes).forEach(function (attributeKey) {
|
|
20
|
-
if (!attribute_1.validateAttribute(log, attributeKey, maybeAttributes[attributeKey], method))
|
|
20
|
+
if (!(0, attribute_1.validateAttribute)(log, attributeKey, maybeAttributes[attributeKey], method))
|
|
21
21
|
result = false;
|
|
22
22
|
});
|
|
23
23
|
return result;
|
|
@@ -9,7 +9,7 @@ function validateEvent(log, maybeEvent, method) {
|
|
|
9
9
|
if (maybeEvent == undefined) { // eslint-disable-line eqeqeq
|
|
10
10
|
log.error(constants_1.ERROR_NULL, [method, item]);
|
|
11
11
|
}
|
|
12
|
-
else if (!lang_1.isString(maybeEvent)) {
|
|
12
|
+
else if (!(0, lang_1.isString)(maybeEvent)) {
|
|
13
13
|
log.error(constants_1.ERROR_INVALID, [method, item]);
|
|
14
14
|
}
|
|
15
15
|
else { // It is a string.
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.validateEventProperties = void 0;
|
|
4
4
|
var lang_1 = require("../lang");
|
|
5
|
+
var objectAssign_1 = require("../lang/objectAssign");
|
|
5
6
|
var constants_1 = require("../../logger/constants");
|
|
6
7
|
var ECMA_SIZES = {
|
|
7
8
|
NULL: 0,
|
|
@@ -15,12 +16,13 @@ var BASE_EVENT_SIZE = 1024; // We assume 1kb events without properties (avg meas
|
|
|
15
16
|
function validateEventProperties(log, maybeProperties, method) {
|
|
16
17
|
if (maybeProperties == undefined)
|
|
17
18
|
return { properties: null, size: BASE_EVENT_SIZE }; // eslint-disable-line eqeqeq
|
|
18
|
-
if (!lang_1.isObject(maybeProperties)) {
|
|
19
|
+
if (!(0, lang_1.isObject)(maybeProperties)) {
|
|
19
20
|
log.error(constants_1.ERROR_NOT_PLAIN_OBJECT, [method, 'properties']);
|
|
20
21
|
return { properties: false, size: BASE_EVENT_SIZE };
|
|
21
22
|
}
|
|
22
23
|
var keys = Object.keys(maybeProperties);
|
|
23
|
-
|
|
24
|
+
// Shallow clone
|
|
25
|
+
var clone = (0, objectAssign_1.objectAssign)({}, maybeProperties);
|
|
24
26
|
// To avoid calculating the size twice we'll return it from here.
|
|
25
27
|
var output = {
|
|
26
28
|
properties: clone,
|
|
@@ -32,9 +34,9 @@ function validateEventProperties(log, maybeProperties, method) {
|
|
|
32
34
|
for (var i = 0; i < keys.length; i++) {
|
|
33
35
|
output.size += keys[i].length * ECMA_SIZES.STRING; // Count the size of the key which is always a string.
|
|
34
36
|
var val = clone[keys[i]];
|
|
35
|
-
var isStringVal = lang_1.isString(val);
|
|
36
|
-
var isFiniteVal = lang_1.isFiniteNumber(val);
|
|
37
|
-
var isBoolVal = lang_1.isBoolean(val);
|
|
37
|
+
var isStringVal = (0, lang_1.isString)(val);
|
|
38
|
+
var isFiniteVal = (0, lang_1.isFiniteNumber)(val);
|
|
39
|
+
var isBoolVal = (0, lang_1.isBoolean)(val);
|
|
38
40
|
var isNullVal = val === null;
|
|
39
41
|
if (!(isStringVal || isFiniteVal || isBoolVal || isNullVal)) { // If it's not of valid type.
|
|
40
42
|
clone[keys[i]] = null;
|
|
@@ -4,7 +4,7 @@ exports.validateEventValue = void 0;
|
|
|
4
4
|
var constants_1 = require("../../logger/constants");
|
|
5
5
|
var lang_1 = require("../lang");
|
|
6
6
|
function validateEventValue(log, maybeValue, method) {
|
|
7
|
-
if (lang_1.isFiniteNumber(maybeValue) || maybeValue == undefined) // eslint-disable-line eqeqeq
|
|
7
|
+
if ((0, lang_1.isFiniteNumber)(maybeValue) || maybeValue == undefined) // eslint-disable-line eqeqeq
|
|
8
8
|
return maybeValue;
|
|
9
9
|
log.error(constants_1.ERROR_NOT_FINITE, [method]);
|
|
10
10
|
return false;
|
|
@@ -9,11 +9,11 @@ function validateKeyValue(log, maybeKey, method, type) {
|
|
|
9
9
|
log.error(constants_1.ERROR_NULL, [method, type]);
|
|
10
10
|
return false;
|
|
11
11
|
}
|
|
12
|
-
if (lang_1.isFiniteNumber(maybeKey)) {
|
|
12
|
+
if ((0, lang_1.isFiniteNumber)(maybeKey)) {
|
|
13
13
|
log.warn(constants_1.WARN_CONVERTING, [method, type, maybeKey]);
|
|
14
|
-
return lang_1.toString(maybeKey);
|
|
14
|
+
return (0, lang_1.toString)(maybeKey);
|
|
15
15
|
}
|
|
16
|
-
if (lang_1.isString(maybeKey)) {
|
|
16
|
+
if ((0, lang_1.isString)(maybeKey)) {
|
|
17
17
|
// It's a string, start by trimming the value.
|
|
18
18
|
maybeKey = maybeKey.trim();
|
|
19
19
|
// It's aaaaaall good.
|
|
@@ -32,13 +32,14 @@ function validateKeyValue(log, maybeKey, method, type) {
|
|
|
32
32
|
return false;
|
|
33
33
|
}
|
|
34
34
|
function validateKey(log, maybeKey, method) {
|
|
35
|
-
if (lang_1.isObject(maybeKey)) {
|
|
35
|
+
if ((0, lang_1.isObject)(maybeKey)) {
|
|
36
36
|
// Validate key object
|
|
37
37
|
var matchingKey = validateKeyValue(log, maybeKey.matchingKey, method, 'matchingKey');
|
|
38
38
|
var bucketingKey = validateKeyValue(log, maybeKey.bucketingKey, method, 'bucketingKey');
|
|
39
39
|
if (matchingKey && bucketingKey)
|
|
40
40
|
return {
|
|
41
|
-
matchingKey: matchingKey,
|
|
41
|
+
matchingKey: matchingKey,
|
|
42
|
+
bucketingKey: bucketingKey
|
|
42
43
|
};
|
|
43
44
|
log.error(constants_1.ERROR_INVALID_KEY_OBJECT, [method]);
|
|
44
45
|
return false;
|
|
@@ -4,30 +4,30 @@ exports.validatePreloadedData = void 0;
|
|
|
4
4
|
var lang_1 = require("../lang");
|
|
5
5
|
var split_1 = require("./split");
|
|
6
6
|
function validateTimestampData(log, maybeTimestamp, method, item) {
|
|
7
|
-
if (lang_1.isFiniteNumber(maybeTimestamp) && maybeTimestamp > -1)
|
|
7
|
+
if ((0, lang_1.isFiniteNumber)(maybeTimestamp) && maybeTimestamp > -1)
|
|
8
8
|
return true;
|
|
9
9
|
log.error(method + ": preloadedData." + item + " must be a positive number.");
|
|
10
10
|
return false;
|
|
11
11
|
}
|
|
12
12
|
function validateSplitsData(log, maybeSplitsData, method) {
|
|
13
|
-
if (lang_1.isObject(maybeSplitsData)) {
|
|
13
|
+
if ((0, lang_1.isObject)(maybeSplitsData)) {
|
|
14
14
|
var splitNames = Object.keys(maybeSplitsData);
|
|
15
15
|
if (splitNames.length === 0)
|
|
16
16
|
log.warn(method + ": preloadedData.splitsData doesn't contain split definitions.");
|
|
17
17
|
// @TODO in the future, consider handling the possibility of having parsed definitions of splits
|
|
18
|
-
if (splitNames.every(function (splitName) { return split_1.validateSplit(log, splitName, method) && lang_1.isString(maybeSplitsData[splitName]); }))
|
|
18
|
+
if (splitNames.every(function (splitName) { return (0, split_1.validateSplit)(log, splitName, method) && (0, lang_1.isString)(maybeSplitsData[splitName]); }))
|
|
19
19
|
return true;
|
|
20
20
|
}
|
|
21
21
|
log.error(method + ": preloadedData.splitsData must be a map of split names to their serialized definitions.");
|
|
22
22
|
return false;
|
|
23
23
|
}
|
|
24
24
|
function validateMySegmentsData(log, maybeMySegmentsData, method) {
|
|
25
|
-
if (lang_1.isObject(maybeMySegmentsData)) {
|
|
25
|
+
if ((0, lang_1.isObject)(maybeMySegmentsData)) {
|
|
26
26
|
var userKeys = Object.keys(maybeMySegmentsData);
|
|
27
27
|
if (userKeys.every(function (userKey) {
|
|
28
28
|
var segmentNames = maybeMySegmentsData[userKey];
|
|
29
29
|
// an empty list is valid
|
|
30
|
-
return Array.isArray(segmentNames) && segmentNames.every(function (segmentName) { return lang_1.isString(segmentName); });
|
|
30
|
+
return Array.isArray(segmentNames) && segmentNames.every(function (segmentName) { return (0, lang_1.isString)(segmentName); });
|
|
31
31
|
}))
|
|
32
32
|
return true;
|
|
33
33
|
}
|
|
@@ -35,16 +35,16 @@ function validateMySegmentsData(log, maybeMySegmentsData, method) {
|
|
|
35
35
|
return false;
|
|
36
36
|
}
|
|
37
37
|
function validateSegmentsData(log, maybeSegmentsData, method) {
|
|
38
|
-
if (lang_1.isObject(maybeSegmentsData)) {
|
|
38
|
+
if ((0, lang_1.isObject)(maybeSegmentsData)) {
|
|
39
39
|
var segmentNames = Object.keys(maybeSegmentsData);
|
|
40
|
-
if (segmentNames.every(function (segmentName) { return lang_1.isString(maybeSegmentsData[segmentName]); }))
|
|
40
|
+
if (segmentNames.every(function (segmentName) { return (0, lang_1.isString)(maybeSegmentsData[segmentName]); }))
|
|
41
41
|
return true;
|
|
42
42
|
}
|
|
43
43
|
log.error(method + ": preloadedData.segmentsData must be a map of segment names to their serialized definitions.");
|
|
44
44
|
return false;
|
|
45
45
|
}
|
|
46
46
|
function validatePreloadedData(log, maybePreloadedData, method) {
|
|
47
|
-
if (!lang_1.isObject(maybePreloadedData)) {
|
|
47
|
+
if (!(0, lang_1.isObject)(maybePreloadedData)) {
|
|
48
48
|
log.error(method + ": preloadedData must be an object.");
|
|
49
49
|
}
|
|
50
50
|
else if (validateTimestampData(log, maybePreloadedData.lastUpdated, method, 'lastUpdated') &&
|
|
@@ -10,7 +10,7 @@ function validateSplit(log, maybeSplit, method, item) {
|
|
|
10
10
|
if (maybeSplit == undefined) { // eslint-disable-line eqeqeq
|
|
11
11
|
log.error(constants_1.ERROR_NULL, [method, item]);
|
|
12
12
|
}
|
|
13
|
-
else if (!lang_1.isString(maybeSplit)) {
|
|
13
|
+
else if (!(0, lang_1.isString)(maybeSplit)) {
|
|
14
14
|
log.error(constants_1.ERROR_INVALID, [method, item]);
|
|
15
15
|
}
|
|
16
16
|
else {
|
|
@@ -11,13 +11,13 @@ function validateSplits(log, maybeSplits, method, listName, item) {
|
|
|
11
11
|
var validatedArray_1 = [];
|
|
12
12
|
// Remove invalid values
|
|
13
13
|
maybeSplits.forEach(function (maybeSplit) {
|
|
14
|
-
var splitName = split_1.validateSplit(log, maybeSplit, method, item);
|
|
14
|
+
var splitName = (0, split_1.validateSplit)(log, maybeSplit, method, item);
|
|
15
15
|
if (splitName)
|
|
16
16
|
validatedArray_1.push(splitName);
|
|
17
17
|
});
|
|
18
18
|
// Strip off duplicated values if we have valid split names then return
|
|
19
19
|
if (validatedArray_1.length)
|
|
20
|
-
return lang_1.uniq(validatedArray_1);
|
|
20
|
+
return (0, lang_1.uniq)(validatedArray_1);
|
|
21
21
|
}
|
|
22
22
|
log.error(constants_1.ERROR_EMPTY_ARRAY, [method, listName]);
|
|
23
23
|
return false;
|
|
@@ -9,7 +9,7 @@ function validateTrafficType(log, maybeTT, method) {
|
|
|
9
9
|
if (maybeTT == undefined) { // eslint-disable-line eqeqeq
|
|
10
10
|
log.error(constants_1.ERROR_NULL, [method, item]);
|
|
11
11
|
}
|
|
12
|
-
else if (!lang_1.isString(maybeTT)) {
|
|
12
|
+
else if (!(0, lang_1.isString)(maybeTT)) {
|
|
13
13
|
log.error(constants_1.ERROR_INVALID, [method, item]);
|
|
14
14
|
}
|
|
15
15
|
else {
|
|
@@ -15,7 +15,7 @@ function validateTrafficTypeExistance(log, readinessManager, splitsCache, mode,
|
|
|
15
15
|
if (!readinessManager.isReady() || mode === constants_1.LOCALHOST_MODE)
|
|
16
16
|
return true;
|
|
17
17
|
var res = splitsCache.trafficTypeExists(maybeTT); // never rejects or throws error
|
|
18
|
-
if (thenable_1.thenable(res)) {
|
|
18
|
+
if ((0, thenable_1.thenable)(res)) {
|
|
19
19
|
return res.then(function (isValid) {
|
|
20
20
|
if (!isValid)
|
|
21
21
|
logTTExistanceWarning(log, maybeTT, method);
|
package/cjs/utils/jwt/index.js
CHANGED
|
@@ -9,7 +9,7 @@ function decodeJWTtoken(token) {
|
|
|
9
9
|
var base64Url = token.split('.')[1];
|
|
10
10
|
var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
|
|
11
11
|
// no need to check availability of `encodeURIComponent`, since it is a function highly supported in browsers, node and other platforms.
|
|
12
|
-
var jsonPayload = decodeURIComponent(base64_1.decodeFromBase64(base64).split('').map(function (c) {
|
|
12
|
+
var jsonPayload = decodeURIComponent((0, base64_1.decodeFromBase64)(base64).split('').map(function (c) {
|
|
13
13
|
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
|
|
14
14
|
}).join(''));
|
|
15
15
|
return JSON.parse(jsonPayload);
|
package/cjs/utils/key/index.js
CHANGED
|
@@ -7,12 +7,12 @@ var lang_1 = require("../lang");
|
|
|
7
7
|
// }
|
|
8
8
|
// returns the matchingKey if the Key is defined as an object or the key itself if it is a string
|
|
9
9
|
function getMatching(key) {
|
|
10
|
-
return lang_1.isObject(key) ? key.matchingKey : key;
|
|
10
|
+
return (0, lang_1.isObject)(key) ? key.matchingKey : key;
|
|
11
11
|
}
|
|
12
12
|
exports.getMatching = getMatching;
|
|
13
13
|
// if the key is a string, there's no bucketingKey (undefined)
|
|
14
14
|
function getBucketing(key) {
|
|
15
|
-
return lang_1.isObject(key) ? key.bucketingKey : undefined;
|
|
15
|
+
return (0, lang_1.isObject)(key) ? key.bucketingKey : undefined;
|
|
16
16
|
}
|
|
17
17
|
exports.getBucketing = getBucketing;
|
|
18
18
|
/**
|
|
@@ -20,7 +20,7 @@ exports.getBucketing = getBucketing;
|
|
|
20
20
|
* specific split.
|
|
21
21
|
*/
|
|
22
22
|
function keyParser(key) {
|
|
23
|
-
if (lang_1.isObject(key)) {
|
|
23
|
+
if ((0, lang_1.isObject)(key)) {
|
|
24
24
|
return {
|
|
25
25
|
matchingKey: key.matchingKey,
|
|
26
26
|
bucketingKey: key.bucketingKey
|
package/cjs/utils/lang/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.uniqueId = exports.uniqAsStrings = exports.uniq = exports.toString = exports.toNumber = exports.startsWith = exports.
|
|
3
|
+
exports.uniqueId = exports.uniqAsStrings = exports.uniq = exports.toString = exports.toNumber = exports.startsWith = exports.merge = exports.isString = exports.isObject = exports.isNaNNumber = exports.isIntegerNumber = exports.isFiniteNumber = exports.isBoolean = exports.groupBy = exports.get = exports.forOwn = exports.findIndex = exports.find = exports.endsWith = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
/**
|
|
6
6
|
* Checks if the target string ends with the sub string.
|
|
@@ -194,23 +194,11 @@ function merge(target, source) {
|
|
|
194
194
|
});
|
|
195
195
|
if (rest && rest.length) {
|
|
196
196
|
var nextSource = rest.splice(0, 1)[0];
|
|
197
|
-
res = merge.apply(void 0, tslib_1.
|
|
197
|
+
res = merge.apply(void 0, (0, tslib_1.__spreadArray)([res, nextSource], rest, false));
|
|
198
198
|
}
|
|
199
199
|
return res;
|
|
200
200
|
}
|
|
201
201
|
exports.merge = merge;
|
|
202
|
-
/**
|
|
203
|
-
* Shallow clone an object
|
|
204
|
-
*/
|
|
205
|
-
function shallowClone(obj) {
|
|
206
|
-
var keys = Object.keys(obj);
|
|
207
|
-
var output = {};
|
|
208
|
-
for (var i = 0; i < keys.length; i++) {
|
|
209
|
-
output[keys[i]] = obj[keys[i]];
|
|
210
|
-
}
|
|
211
|
-
return output;
|
|
212
|
-
}
|
|
213
|
-
exports.shallowClone = shallowClone;
|
|
214
202
|
/**
|
|
215
203
|
* Checks if the target string starts with the sub string.
|
|
216
204
|
*/
|
|
@@ -4,7 +4,7 @@ exports.x86Fmix = exports.x86Rotl = exports.x86Multiply = exports.UTF16ToUTF8 =
|
|
|
4
4
|
var utfx_1 = require("./utfx");
|
|
5
5
|
function UTF16ToUTF8(key) {
|
|
6
6
|
var sd;
|
|
7
|
-
utfx_1.encodeUTF16toUTF8(utfx_1.stringSource(key), sd = utfx_1.stringDestination());
|
|
7
|
+
(0, utfx_1.encodeUTF16toUTF8)((0, utfx_1.stringSource)(key), sd = (0, utfx_1.stringDestination)());
|
|
8
8
|
return sd();
|
|
9
9
|
}
|
|
10
10
|
exports.UTF16ToUTF8 = UTF16ToUTF8;
|
|
@@ -28,12 +28,12 @@ function hash32(key, seed) {
|
|
|
28
28
|
var c2 = 0x1b873593;
|
|
29
29
|
for (var i = 0; i < bytes; i = i + 4) {
|
|
30
30
|
k1 = ((key.charCodeAt(i) & 0xff)) | ((key.charCodeAt(i + 1) & 0xff) << 8) | ((key.charCodeAt(i + 2) & 0xff) << 16) | ((key.charCodeAt(i + 3) & 0xff) << 24);
|
|
31
|
-
k1 = common_1.x86Multiply(k1, c1);
|
|
32
|
-
k1 = common_1.x86Rotl(k1, 15);
|
|
33
|
-
k1 = common_1.x86Multiply(k1, c2);
|
|
31
|
+
k1 = (0, common_1.x86Multiply)(k1, c1);
|
|
32
|
+
k1 = (0, common_1.x86Rotl)(k1, 15);
|
|
33
|
+
k1 = (0, common_1.x86Multiply)(k1, c2);
|
|
34
34
|
h1 ^= k1;
|
|
35
|
-
h1 = common_1.x86Rotl(h1, 13);
|
|
36
|
-
h1 = common_1.x86Multiply(h1, 5) + 0xe6546b64;
|
|
35
|
+
h1 = (0, common_1.x86Rotl)(h1, 13);
|
|
36
|
+
h1 = (0, common_1.x86Multiply)(h1, 5) + 0xe6546b64;
|
|
37
37
|
}
|
|
38
38
|
k1 = 0;
|
|
39
39
|
switch (remainder) {
|
|
@@ -43,17 +43,17 @@ function hash32(key, seed) {
|
|
|
43
43
|
k1 ^= (key.charCodeAt(i + 1) & 0xff) << 8;
|
|
44
44
|
case 1:
|
|
45
45
|
k1 ^= (key.charCodeAt(i) & 0xff);
|
|
46
|
-
k1 = common_1.x86Multiply(k1, c1);
|
|
47
|
-
k1 = common_1.x86Rotl(k1, 15);
|
|
48
|
-
k1 = common_1.x86Multiply(k1, c2);
|
|
46
|
+
k1 = (0, common_1.x86Multiply)(k1, c1);
|
|
47
|
+
k1 = (0, common_1.x86Rotl)(k1, 15);
|
|
48
|
+
k1 = (0, common_1.x86Multiply)(k1, c2);
|
|
49
49
|
h1 ^= k1;
|
|
50
50
|
}
|
|
51
51
|
h1 ^= key.length;
|
|
52
|
-
h1 = common_1.x86Fmix(h1);
|
|
52
|
+
h1 = (0, common_1.x86Fmix)(h1);
|
|
53
53
|
return h1 >>> 0;
|
|
54
54
|
}
|
|
55
55
|
function hash(str, seed) {
|
|
56
|
-
return hash32(common_1.UTF16ToUTF8(str), seed >>> 0);
|
|
56
|
+
return hash32((0, common_1.UTF16ToUTF8)(str), seed >>> 0);
|
|
57
57
|
}
|
|
58
58
|
exports.hash = hash;
|
|
59
59
|
function bucket(str, seed) {
|
|
@@ -214,6 +214,6 @@ function hash128x64(key, seed) {
|
|
|
214
214
|
* @param {string} str
|
|
215
215
|
*/
|
|
216
216
|
function hash128(str, seed) {
|
|
217
|
-
return hash128x64(common_1.UTF16ToUTF8(str), seed >>> 0);
|
|
217
|
+
return hash128x64((0, common_1.UTF16ToUTF8)(str), seed >>> 0);
|
|
218
218
|
}
|
|
219
219
|
exports.hash128 = hash128;
|