@splitsoftware/splitio-commons 1.2.0 → 1.2.1-rc.3
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 +3 -1
- 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 +5 -5
- 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 +11 -10
- package/cjs/sdkClient/clientAttributesDecoration.js +4 -4
- package/cjs/sdkClient/clientCS.js +4 -3
- 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 +8 -8
- package/cjs/sdkManager/index.js +11 -11
- package/cjs/services/splitApi.js +3 -2
- package/cjs/services/splitHttpClient.js +3 -3
- 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 +3 -3
- package/cjs/storages/inMemory/AttributesCacheInMemory.js +1 -1
- package/cjs/storages/inMemory/ImpressionCountsCacheInMemory.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 +4 -4
- 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 +4 -5
- 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 +46 -35
- package/cjs/sync/submitters/eventsSyncTask.js +1 -1
- package/cjs/sync/submitters/impressionCountsSyncTask.js +1 -1
- package/cjs/sync/submitters/impressionsSyncTask.js +3 -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 +12 -12
- 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/legacy.js +44 -0
- 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/promise/timeout.js +1 -1
- package/cjs/utils/settingsValidation/index.js +5 -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/browser.js +10 -0
- package/cjs/utils/settingsValidation/runtime/node.js +22 -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/messages/error.js +1 -1
- package/esm/logger/messages/info.js +4 -4
- package/esm/sdkClient/client.js +2 -1
- package/esm/sdkClient/clientCS.js +2 -1
- package/esm/services/splitApi.js +2 -1
- package/esm/services/splitHttpClient.js +1 -1
- package/esm/storages/inRedis/RedisAdapter.js +7 -1
- 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/AuthClient/index.js +1 -2
- package/esm/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.js +1 -1
- package/esm/sync/streaming/pushManager.js +34 -23
- package/esm/sync/submitters/submitterManager.js +2 -1
- package/esm/sync/syncManagerOnline.js +12 -12
- 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/murmur3/legacy.js +39 -0
- package/esm/utils/promise/timeout.js +1 -1
- package/esm/utils/settingsValidation/index.js +1 -6
- package/esm/utils/settingsValidation/runtime/browser.js +6 -0
- package/esm/utils/settingsValidation/runtime/node.js +17 -0
- package/package.json +8 -7
- 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/.DS_Store +0 -0
- package/src/logger/messages/error.ts +1 -1
- package/src/logger/messages/info.ts +4 -4
- package/src/logger/types.ts +4 -0
- package/src/sdkClient/client.ts +2 -1
- package/src/sdkClient/clientCS.ts +3 -1
- package/src/services/splitHttpClient.ts +1 -1
- package/src/storages/types.ts +1 -1
- 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/AuthClient/index.ts +1 -2
- package/src/sync/streaming/UpdateWorkers/SegmentsUpdateWorker.ts +1 -1
- package/src/sync/streaming/pushManager.ts +39 -37
- package/src/sync/streaming/types.ts +5 -25
- package/src/sync/submitters/submitterManager.ts +4 -8
- package/src/sync/syncManagerOnline.ts +16 -22
- package/src/types.ts +5 -1
- package/src/utils/inputValidation/eventProperties.ts +4 -2
- package/src/utils/lang/index.ts +0 -14
- package/src/utils/murmur3/legacy.ts +48 -0
- package/src/utils/promise/timeout.ts +1 -1
- package/src/utils/settingsValidation/index.ts +1 -6
- package/src/utils/settingsValidation/runtime/browser.ts +8 -0
- package/src/utils/settingsValidation/runtime/node.ts +22 -0
- package/src/utils/settingsValidation/types.ts +6 -6
- package/types/integrations/ga/GaToSplitPlugin.d.ts +3 -0
- package/types/integrations/ga/GoogleAnalyticsToSplit.d.ts +2 -2
- package/types/integrations/ga/SplitToGaPlugin.d.ts +4 -0
- package/types/integrations/ga/SplitToGoogleAnalytics.d.ts +2 -3
- package/types/integrations/types.d.ts +4 -0
- package/types/logger/browser/{DebugLogger.d.ts → debugLogger.d.ts} +0 -0
- package/types/logger/browser/{ErrorLogger.d.ts → errorLogger.d.ts} +0 -0
- package/types/logger/browser/{InfoLogger.d.ts → infoLogger.d.ts} +0 -0
- package/types/logger/browser/{WarnLogger.d.ts → warnLogger.d.ts} +0 -0
- package/types/logger/codes.d.ts +2 -0
- package/types/logger/codesConstants.d.ts +117 -0
- package/types/logger/codesConstantsBrowser.d.ts +2 -0
- package/types/logger/codesConstantsNode.d.ts +14 -0
- package/types/logger/codesDebug.d.ts +1 -0
- package/types/logger/codesDebugBrowser.d.ts +1 -0
- package/types/logger/codesDebugNode.d.ts +1 -0
- package/types/logger/codesError.d.ts +1 -0
- package/types/logger/codesErrorNode.d.ts +1 -0
- package/types/logger/codesInfo.d.ts +1 -0
- package/types/logger/codesWarn.d.ts +1 -0
- package/types/logger/codesWarnNode.d.ts +1 -0
- package/types/logger/debugLogger.d.ts +2 -0
- package/types/logger/errorLogger.d.ts +2 -0
- package/types/logger/infoLogger.d.ts +2 -0
- package/types/logger/messages/debugBrowser.d.ts +1 -0
- package/types/logger/messages/debugNode.d.ts +1 -0
- package/types/logger/messages/errorNode.d.ts +1 -0
- package/types/logger/messages/warnNode.d.ts +1 -0
- package/types/logger/noopLogger.d.ts +2 -0
- package/types/logger/types.d.ts +4 -0
- package/types/logger/warnLogger.d.ts +2 -0
- package/types/sdkClient/clientAttributesDecoration.d.ts +1 -1
- package/types/sdkManager/sdkManagerMethod.d.ts +6 -0
- package/types/storages/getRegisteredSegments.d.ts +10 -0
- package/types/storages/inMemory/TelemetryCacheInMemory.d.ts +51 -0
- package/types/storages/inMemory/index.d.ts +10 -0
- package/types/storages/inRedis/TelemetryCacheInRedis.d.ts +0 -0
- package/types/storages/parseSegments.d.ts +6 -0
- package/types/storages/pluggable/TelemetryCachePluggable.d.ts +2 -0
- package/types/storages/types.d.ts +1 -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/syncTasks/splitsSyncTask.copy.d.ts +35 -0
- package/types/sync/polling/syncTasks/splitsSyncTask.morelikeoriginal.d.ts +35 -0
- package/types/sync/polling/types.d.ts +0 -11
- package/types/sync/polling/updaters/mySegmentsUpdater.d.ts +1 -1
- package/types/sync/streaming/AuthClient/indexV1.d.ts +12 -0
- package/types/sync/streaming/AuthClient/indexV2.d.ts +8 -0
- 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 -0
- package/types/sync/streaming/pushManagerNoUsers.d.ts +13 -0
- package/types/sync/streaming/pushManagerSS.d.ts +1 -0
- package/types/sync/streaming/types.d.ts +3 -23
- package/types/sync/submitters/submitterManager.d.ts +2 -4
- package/types/sync/submitters/telemetrySyncTask.d.ts +17 -0
- package/types/sync/syncManagerFromFile.d.ts +2 -0
- package/types/sync/syncManagerFromObject.d.ts +2 -0
- package/types/sync/syncManagerOffline.d.ts +9 -0
- package/types/sync/syncManagerOnline.d.ts +3 -3
- package/types/trackers/telemetryRecorder.d.ts +0 -0
- package/types/types.d.ts +1 -0
- package/types/utils/EventEmitter.d.ts +4 -0
- package/types/utils/lang/errors.d.ts +10 -0
- package/types/utils/lang/index.d.ts +0 -4
- package/types/utils/murmur3/commons.d.ts +12 -0
- package/types/utils/murmur3/legacy.d.ts +2 -0
- package/types/utils/settingsValidation/buildMetadata.d.ts +3 -0
- package/types/utils/settingsValidation/localhost/index.d.ts +9 -0
- package/types/utils/settingsValidation/logger.d.ts +11 -0
- package/types/utils/settingsValidation/runtime/browser.d.ts +2 -0
- package/types/utils/settingsValidation/runtime/node.d.ts +2 -0
- package/types/utils/settingsValidation/types.d.ts +6 -6
package/cjs/logger/index.js
CHANGED
|
@@ -19,7 +19,7 @@ var LogLevelIndexes = {
|
|
|
19
19
|
NONE: 5
|
|
20
20
|
};
|
|
21
21
|
function isLogLevelString(str) {
|
|
22
|
-
return !!lang_1.find(exports.LogLevels, function (lvl) { return str === lvl; });
|
|
22
|
+
return !!(0, lang_1.find)(exports.LogLevels, function (lvl) { return str === lvl; });
|
|
23
23
|
}
|
|
24
24
|
exports.isLogLevelString = isLogLevelString;
|
|
25
25
|
// exported for testing purposes only
|
|
@@ -39,7 +39,7 @@ var defaultOptions = {
|
|
|
39
39
|
};
|
|
40
40
|
var Logger = /** @class */ (function () {
|
|
41
41
|
function Logger(options, codes) {
|
|
42
|
-
this.options = objectAssign_1.objectAssign({}, defaultOptions, options);
|
|
42
|
+
this.options = (0, objectAssign_1.objectAssign)({}, defaultOptions, options);
|
|
43
43
|
this.codes = codes || new maps_1._Map();
|
|
44
44
|
this.logLevel = LogLevelIndexes[this.options.logLevel];
|
|
45
45
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.codesDebug = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
|
-
var c = tslib_1.__importStar(require("../constants"));
|
|
5
|
+
var c = (0, tslib_1.__importStar)(require("../constants"));
|
|
6
6
|
var info_1 = require("./info");
|
|
7
7
|
exports.codesDebug = info_1.codesInfo.concat([
|
|
8
8
|
// evaluator
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.codesError = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
|
-
var c = tslib_1.__importStar(require("../constants"));
|
|
5
|
+
var c = (0, tslib_1.__importStar)(require("../constants"));
|
|
6
6
|
exports.codesError = [
|
|
7
7
|
// evaluator
|
|
8
8
|
[c.ERROR_ENGINE_COMBINER_IFELSEIF, c.LOG_PREFIX_ENGINE_COMBINER + 'Invalid Split, no valid rules found'],
|
|
@@ -16,7 +16,7 @@ exports.codesError = [
|
|
|
16
16
|
[c.ERROR_SYNC_OFFLINE_LOADING, c.LOG_PREFIX_SYNC_OFFLINE + 'There was an issue loading the mock Splits data, no changes will be applied to the current cache. %s'],
|
|
17
17
|
[c.ERROR_STREAMING_SSE, c.LOG_PREFIX_SYNC_STREAMING + 'Failed to connect or error on streaming connection, with error message: %s'],
|
|
18
18
|
[c.ERROR_STREAMING_AUTH, c.LOG_PREFIX_SYNC_STREAMING + 'Failed to authenticate for streaming. Error: %s.'],
|
|
19
|
-
[c.ERROR_HTTP, '
|
|
19
|
+
[c.ERROR_HTTP, 'Response status is not OK. Status: %s. URL: %s. Message: %s'],
|
|
20
20
|
// client status
|
|
21
21
|
[c.ERROR_CLIENT_LISTENER, 'A listener was added for %s on the SDK, which has already fired and won\'t be emitted again. The callback won\'t be executed.'],
|
|
22
22
|
[c.ERROR_CLIENT_DESTROYED, '%s: Client has already been destroyed - no calls possible.'],
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.codesInfo = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
|
-
var c = tslib_1.__importStar(require("../constants"));
|
|
5
|
+
var c = (0, tslib_1.__importStar)(require("../constants"));
|
|
6
6
|
var warn_1 = require("./warn");
|
|
7
7
|
var READY_MSG = 'Split SDK is ready';
|
|
8
8
|
exports.codesInfo = warn_1.codesWarn.concat([
|
|
@@ -24,11 +24,11 @@ exports.codesInfo = warn_1.codesWarn.concat([
|
|
|
24
24
|
[c.SUBMITTERS_PUSH_FULL_EVENTS_QUEUE, c.LOG_PREFIX_SYNC_SUBMITTERS + 'Flushing full events queue and reseting timer.'],
|
|
25
25
|
[c.SUBMITTERS_PUSH, c.LOG_PREFIX_SYNC_SUBMITTERS + 'Pushing %s %s.'],
|
|
26
26
|
[c.STREAMING_REFRESH_TOKEN, c.LOG_PREFIX_SYNC_STREAMING + 'Refreshing streaming token in %s seconds, and connecting streaming in %s seconds.'],
|
|
27
|
-
[c.STREAMING_RECONNECT, c.LOG_PREFIX_SYNC_STREAMING + 'Attempting to reconnect in %s seconds.'],
|
|
28
|
-
[c.STREAMING_CONNECTING, c.LOG_PREFIX_SYNC_STREAMING + 'Connecting
|
|
27
|
+
[c.STREAMING_RECONNECT, c.LOG_PREFIX_SYNC_STREAMING + 'Attempting to reconnect streaming in %s seconds.'],
|
|
28
|
+
[c.STREAMING_CONNECTING, c.LOG_PREFIX_SYNC_STREAMING + 'Connecting streaming.'],
|
|
29
29
|
[c.STREAMING_DISABLED, c.LOG_PREFIX_SYNC_STREAMING + 'Streaming is disabled for given Api key. Switching to polling mode.'],
|
|
30
|
-
[c.STREAMING_DISCONNECTING, c.LOG_PREFIX_SYNC_STREAMING + 'Disconnecting
|
|
30
|
+
[c.STREAMING_DISCONNECTING, c.LOG_PREFIX_SYNC_STREAMING + 'Disconnecting streaming.'],
|
|
31
31
|
[c.SYNC_START_POLLING, c.LOG_PREFIX_SYNC_MANAGER + 'Streaming not available. Starting polling.'],
|
|
32
32
|
[c.SYNC_CONTINUE_POLLING, c.LOG_PREFIX_SYNC_MANAGER + 'Streaming couldn\'t connect. Continue polling.'],
|
|
33
|
-
[c.SYNC_STOP_POLLING, c.LOG_PREFIX_SYNC_MANAGER + 'Streaming
|
|
33
|
+
[c.SYNC_STOP_POLLING, c.LOG_PREFIX_SYNC_MANAGER + 'Streaming connected. Syncing and stopping polling.'],
|
|
34
34
|
]);
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.codesWarn = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
|
-
var c = tslib_1.__importStar(require("../constants"));
|
|
5
|
+
var c = (0, tslib_1.__importStar)(require("../constants"));
|
|
6
6
|
var error_1 = require("./error");
|
|
7
7
|
exports.codesWarn = error_1.codesError.concat([
|
|
8
8
|
// evaluator
|
package/cjs/logger/sdkLogger.js
CHANGED
|
@@ -4,7 +4,7 @@ exports.readinessManagerFactory = void 0;
|
|
|
4
4
|
var objectAssign_1 = require("../utils/lang/objectAssign");
|
|
5
5
|
var constants_1 = require("./constants");
|
|
6
6
|
function splitsEventEmitterFactory(EventEmitter) {
|
|
7
|
-
var splitsEventEmitter = objectAssign_1.objectAssign(new EventEmitter(), {
|
|
7
|
+
var splitsEventEmitter = (0, objectAssign_1.objectAssign)(new EventEmitter(), {
|
|
8
8
|
splitsArrived: false,
|
|
9
9
|
splitsCacheLoaded: false,
|
|
10
10
|
});
|
|
@@ -17,7 +17,7 @@ function splitsEventEmitterFactory(EventEmitter) {
|
|
|
17
17
|
return splitsEventEmitter;
|
|
18
18
|
}
|
|
19
19
|
function segmentsEventEmitterFactory(EventEmitter) {
|
|
20
|
-
var segmentsEventEmitter = objectAssign_1.objectAssign(new EventEmitter(), {
|
|
20
|
+
var segmentsEventEmitter = (0, objectAssign_1.objectAssign)(new EventEmitter(), {
|
|
21
21
|
segmentsArrived: false
|
|
22
22
|
});
|
|
23
23
|
segmentsEventEmitter.once(constants_1.SDK_SEGMENTS_ARRIVED, function () { segmentsEventEmitter.segmentsArrived = true; });
|
|
@@ -20,7 +20,7 @@ var REMOVE_LISTENER_EVENT = 'removeListener';
|
|
|
20
20
|
function sdkReadinessManagerFactory(log, EventEmitter, readyTimeout, internalReadyCbCount, readinessManager) {
|
|
21
21
|
if (readyTimeout === void 0) { readyTimeout = 0; }
|
|
22
22
|
if (internalReadyCbCount === void 0) { internalReadyCbCount = 0; }
|
|
23
|
-
if (readinessManager === void 0) { readinessManager = readinessManager_1.readinessManagerFactory(EventEmitter, readyTimeout); }
|
|
23
|
+
if (readinessManager === void 0) { readinessManager = (0, readinessManager_1.readinessManagerFactory)(EventEmitter, readyTimeout); }
|
|
24
24
|
/** Ready callback warning */
|
|
25
25
|
var readyCbCount = 0;
|
|
26
26
|
readinessManager.gate.on(REMOVE_LISTENER_EVENT, function (event) {
|
|
@@ -47,7 +47,7 @@ function sdkReadinessManagerFactory(log, EventEmitter, readyTimeout, internalRea
|
|
|
47
47
|
log.error(err);
|
|
48
48
|
}
|
|
49
49
|
function generateReadyPromise() {
|
|
50
|
-
var promise = wrapper_1.promiseWrapper(new Promise(function (resolve, reject) {
|
|
50
|
+
var promise = (0, wrapper_1.promiseWrapper)(new Promise(function (resolve, reject) {
|
|
51
51
|
readinessManager.gate.once(constants_1.SDK_READY, function () {
|
|
52
52
|
log.info(constants_2.CLIENT_READY);
|
|
53
53
|
if (readyCbCount === internalReadyCbCount && !promise.hasOnFulfilled())
|
|
@@ -65,7 +65,7 @@ function sdkReadinessManagerFactory(log, EventEmitter, readyTimeout, internalRea
|
|
|
65
65
|
if (internalReadyCbCount === void 0) { internalReadyCbCount = 0; }
|
|
66
66
|
return sdkReadinessManagerFactory(log, EventEmitter, readyTimeout, internalReadyCbCount, readinessManager.shared(readyTimeout));
|
|
67
67
|
},
|
|
68
|
-
sdkStatus: objectAssign_1.objectAssign(
|
|
68
|
+
sdkStatus: (0, objectAssign_1.objectAssign)(
|
|
69
69
|
// Expose Event Emitter functionality
|
|
70
70
|
Object.create(readinessManager.gate), {
|
|
71
71
|
// Expose the event constants without changing the interface
|
|
@@ -97,7 +97,7 @@ function sdkReadinessManagerFactory(log, EventEmitter, readyTimeout, internalRea
|
|
|
97
97
|
ready: function () {
|
|
98
98
|
if (readinessManager.hasTimedout()) {
|
|
99
99
|
if (!readinessManager.isReady()) {
|
|
100
|
-
return wrapper_1.promiseWrapper(Promise.reject('Split SDK has emitted SDK_READY_TIMED_OUT event.'), defaultOnRejected);
|
|
100
|
+
return (0, wrapper_1.promiseWrapper)(Promise.reject('Split SDK has emitted SDK_READY_TIMED_OUT event.'), defaultOnRejected);
|
|
101
101
|
}
|
|
102
102
|
else {
|
|
103
103
|
return Promise.resolve();
|
package/cjs/sdkClient/client.js
CHANGED
|
@@ -23,8 +23,8 @@ function clientFactory(params) {
|
|
|
23
23
|
impressionsTracker.track(queue, attributes);
|
|
24
24
|
return treatment;
|
|
25
25
|
};
|
|
26
|
-
var evaluation = evaluator_1.evaluateFeature(log, key, splitName, attributes, storage);
|
|
27
|
-
return thenable_1.thenable(evaluation) ? evaluation.then(function (res) { return wrapUp(res); }) : wrapUp(evaluation);
|
|
26
|
+
var evaluation = (0, evaluator_1.evaluateFeature)(log, key, splitName, attributes, storage);
|
|
27
|
+
return (0, thenable_1.thenable)(evaluation) ? evaluation.then(function (res) { return wrapUp(res); }) : wrapUp(evaluation);
|
|
28
28
|
}
|
|
29
29
|
function getTreatmentWithConfig(key, splitName, attributes) {
|
|
30
30
|
return getTreatment(key, splitName, attributes, true);
|
|
@@ -40,8 +40,8 @@ function clientFactory(params) {
|
|
|
40
40
|
impressionsTracker.track(queue, attributes);
|
|
41
41
|
return treatments;
|
|
42
42
|
};
|
|
43
|
-
var evaluations = evaluator_1.evaluateFeatures(log, key, splitNames, attributes, storage);
|
|
44
|
-
return thenable_1.thenable(evaluations) ? evaluations.then(function (res) { return wrapUp(res); }) : wrapUp(evaluations);
|
|
43
|
+
var evaluations = (0, evaluator_1.evaluateFeatures)(log, key, splitNames, attributes, storage);
|
|
44
|
+
return (0, thenable_1.thenable)(evaluations) ? evaluations.then(function (res) { return wrapUp(res); }) : wrapUp(evaluations);
|
|
45
45
|
}
|
|
46
46
|
function getTreatmentsWithConfig(key, splitNames, attributes) {
|
|
47
47
|
return getTreatments(key, splitNames, attributes, true);
|
|
@@ -49,15 +49,15 @@ function clientFactory(params) {
|
|
|
49
49
|
// Internal function
|
|
50
50
|
function processEvaluation(evaluation, splitName, key, attributes, withConfig, invokingMethodName, queue) {
|
|
51
51
|
var isSdkReady = readinessManager.isReady() || readinessManager.isReadyFromCache();
|
|
52
|
-
var matchingKey = key_1.getMatching(key);
|
|
53
|
-
var bucketingKey = key_1.getBucketing(key);
|
|
52
|
+
var matchingKey = (0, key_1.getMatching)(key);
|
|
53
|
+
var bucketingKey = (0, key_1.getBucketing)(key);
|
|
54
54
|
// If the SDK was not ready, treatment may be incorrect due to having Splits but not segments data.
|
|
55
55
|
if (!isSdkReady) {
|
|
56
56
|
evaluation = { treatment: constants_1.CONTROL, label: labels_1.SDK_NOT_READY };
|
|
57
57
|
}
|
|
58
58
|
var treatment = evaluation.treatment, label = evaluation.label, changeNumber = evaluation.changeNumber, _a = evaluation.config, config = _a === void 0 ? null : _a;
|
|
59
59
|
log.info(constants_2.IMPRESSION, [splitName, matchingKey, treatment, label]);
|
|
60
|
-
if (splitExistance_1.validateSplitExistance(log, readinessManager, splitName, label, invokingMethodName)) {
|
|
60
|
+
if ((0, splitExistance_1.validateSplitExistance)(log, readinessManager, splitName, label, invokingMethodName)) {
|
|
61
61
|
log.info(constants_2.IMPRESSION_QUEUEING);
|
|
62
62
|
queue.push({
|
|
63
63
|
feature: splitName,
|
|
@@ -79,7 +79,7 @@ function clientFactory(params) {
|
|
|
79
79
|
}
|
|
80
80
|
function track(key, trafficTypeName, eventTypeId, value, properties, size) {
|
|
81
81
|
if (size === void 0) { size = 1024; }
|
|
82
|
-
var matchingKey = key_1.getMatching(key);
|
|
82
|
+
var matchingKey = (0, key_1.getMatching)(key);
|
|
83
83
|
var timestamp = Date.now();
|
|
84
84
|
var eventData = {
|
|
85
85
|
eventTypeId: eventTypeId,
|
|
@@ -90,7 +90,7 @@ function clientFactory(params) {
|
|
|
90
90
|
properties: properties
|
|
91
91
|
};
|
|
92
92
|
// This may be async but we only warn, we don't actually care if it is valid or not in terms of queueing the event.
|
|
93
|
-
trafficTypeExistance_1.validateTrafficTypeExistance(log, readinessManager, storage.splits, mode, trafficTypeName, 'track');
|
|
93
|
+
(0, trafficTypeExistance_1.validateTrafficTypeExistance)(log, readinessManager, storage.splits, mode, trafficTypeName, 'track');
|
|
94
94
|
return eventTracker.track(eventData, size);
|
|
95
95
|
}
|
|
96
96
|
return {
|
|
@@ -98,7 +98,8 @@ function clientFactory(params) {
|
|
|
98
98
|
getTreatmentWithConfig: getTreatmentWithConfig,
|
|
99
99
|
getTreatments: getTreatments,
|
|
100
100
|
getTreatmentsWithConfig: getTreatmentsWithConfig,
|
|
101
|
-
track: track
|
|
101
|
+
track: track,
|
|
102
|
+
isBrowserClient: false
|
|
102
103
|
};
|
|
103
104
|
}
|
|
104
105
|
exports.clientFactory = clientFactory;
|
|
@@ -33,11 +33,11 @@ function clientAttributesDecoration(log, client) {
|
|
|
33
33
|
function combineAttributes(maybeAttributes) {
|
|
34
34
|
var storedAttributes = attributeStorage.getAll();
|
|
35
35
|
if (Object.keys(storedAttributes).length > 0) {
|
|
36
|
-
return objectAssign_1.objectAssign({}, storedAttributes, maybeAttributes);
|
|
36
|
+
return (0, objectAssign_1.objectAssign)({}, storedAttributes, maybeAttributes);
|
|
37
37
|
}
|
|
38
38
|
return maybeAttributes;
|
|
39
39
|
}
|
|
40
|
-
return objectAssign_1.objectAssign(client, {
|
|
40
|
+
return (0, objectAssign_1.objectAssign)(client, {
|
|
41
41
|
getTreatment: getTreatment,
|
|
42
42
|
getTreatmentWithConfig: getTreatmentWithConfig,
|
|
43
43
|
getTreatments: getTreatments,
|
|
@@ -53,7 +53,7 @@ function clientAttributesDecoration(log, client) {
|
|
|
53
53
|
setAttribute: function (attributeName, attributeValue) {
|
|
54
54
|
var attribute = {};
|
|
55
55
|
attribute[attributeName] = attributeValue;
|
|
56
|
-
if (!attributes_1.validateAttributesDeep(log, attribute, 'setAttribute'))
|
|
56
|
+
if (!(0, attributes_1.validateAttributesDeep)(log, attribute, 'setAttribute'))
|
|
57
57
|
return false;
|
|
58
58
|
log.debug("stored " + attributeValue + " for attribute " + attributeName);
|
|
59
59
|
return attributeStorage.setAttribute(attributeName, attributeValue);
|
|
@@ -75,7 +75,7 @@ function clientAttributesDecoration(log, client) {
|
|
|
75
75
|
* @returns true if attributes were stored an false otherways
|
|
76
76
|
*/
|
|
77
77
|
setAttributes: function (attributes) {
|
|
78
|
-
if (!attributes_1.validateAttributesDeep(log, attributes, 'setAttributes'))
|
|
78
|
+
if (!(0, attributes_1.validateAttributesDeep)(log, attributes, 'setAttributes'))
|
|
79
79
|
return false;
|
|
80
80
|
return attributeStorage.setAttributes(attributes);
|
|
81
81
|
},
|
|
@@ -11,15 +11,16 @@ var clientAttributesDecoration_1 = require("./clientAttributesDecoration");
|
|
|
11
11
|
* @param trafficType validated traffic type
|
|
12
12
|
*/
|
|
13
13
|
function clientCSDecorator(log, client, key, trafficType) {
|
|
14
|
-
var clientCS = clientAttributesDecoration_1.clientAttributesDecoration(log, client);
|
|
15
|
-
return objectAssign_1.objectAssign(clientCS, {
|
|
14
|
+
var clientCS = (0, clientAttributesDecoration_1.clientAttributesDecoration)(log, client);
|
|
15
|
+
return (0, objectAssign_1.objectAssign)(clientCS, {
|
|
16
16
|
// In the client-side API, we bind a key to the client `getTreatment*` methods
|
|
17
17
|
getTreatment: clientCS.getTreatment.bind(clientCS, key),
|
|
18
18
|
getTreatmentWithConfig: clientCS.getTreatmentWithConfig.bind(clientCS, key),
|
|
19
19
|
getTreatments: clientCS.getTreatments.bind(clientCS, key),
|
|
20
20
|
getTreatmentsWithConfig: clientCS.getTreatmentsWithConfig.bind(clientCS, key),
|
|
21
21
|
// Key is bound to the `track` method. Same thing happens with trafficType but only if provided
|
|
22
|
-
track: trafficType ? clientCS.track.bind(clientCS, key, trafficType) : clientCS.track.bind(clientCS, key)
|
|
22
|
+
track: trafficType ? clientCS.track.bind(clientCS, key, trafficType) : clientCS.track.bind(clientCS, key),
|
|
23
|
+
isBrowserClient: true
|
|
23
24
|
});
|
|
24
25
|
}
|
|
25
26
|
exports.clientCSDecorator = clientCSDecorator;
|
|
@@ -15,12 +15,12 @@ function clientInputValidationDecorator(log, client, readinessManager, isStorage
|
|
|
15
15
|
* Avoid repeating this validations code
|
|
16
16
|
*/
|
|
17
17
|
function validateEvaluationParams(maybeKey, maybeSplitOrSplits, maybeAttributes, methodName) {
|
|
18
|
-
var multi = lang_1.startsWith(methodName, 'getTreatments');
|
|
19
|
-
var key = inputValidation_1.validateKey(log, maybeKey, methodName);
|
|
20
|
-
var splitOrSplits = multi ? inputValidation_1.validateSplits(log, maybeSplitOrSplits, methodName) : inputValidation_1.validateSplit(log, maybeSplitOrSplits, methodName);
|
|
21
|
-
var attributes = inputValidation_1.validateAttributes(log, maybeAttributes, methodName);
|
|
22
|
-
var isOperational = inputValidation_1.validateIfNotDestroyed(log, readinessManager, methodName);
|
|
23
|
-
inputValidation_1.validateIfOperational(log, readinessManager, methodName);
|
|
18
|
+
var multi = (0, lang_1.startsWith)(methodName, 'getTreatments');
|
|
19
|
+
var key = (0, inputValidation_1.validateKey)(log, maybeKey, methodName);
|
|
20
|
+
var splitOrSplits = multi ? (0, inputValidation_1.validateSplits)(log, maybeSplitOrSplits, methodName) : (0, inputValidation_1.validateSplit)(log, maybeSplitOrSplits, methodName);
|
|
21
|
+
var attributes = (0, inputValidation_1.validateAttributes)(log, maybeAttributes, methodName);
|
|
22
|
+
var isOperational = (0, inputValidation_1.validateIfNotDestroyed)(log, readinessManager, methodName);
|
|
23
|
+
(0, inputValidation_1.validateIfOperational)(log, readinessManager, methodName);
|
|
24
24
|
var valid = isOperational && key && splitOrSplits && attributes !== false;
|
|
25
25
|
return {
|
|
26
26
|
valid: valid,
|
|
@@ -49,7 +49,7 @@ function clientInputValidationDecorator(log, client, readinessManager, isStorage
|
|
|
49
49
|
return client.getTreatmentWithConfig(params.key, params.splitOrSplits, params.attributes);
|
|
50
50
|
}
|
|
51
51
|
else {
|
|
52
|
-
return wrapResult(objectAssign_1.objectAssign({}, constants_1.CONTROL_WITH_CONFIG));
|
|
52
|
+
return wrapResult((0, objectAssign_1.objectAssign)({}, constants_1.CONTROL_WITH_CONFIG));
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
function getTreatments(maybeKey, maybeSplits, maybeAttributes) {
|
|
@@ -72,17 +72,17 @@ function clientInputValidationDecorator(log, client, readinessManager, isStorage
|
|
|
72
72
|
else {
|
|
73
73
|
var res_2 = {};
|
|
74
74
|
if (params.splitOrSplits)
|
|
75
|
-
params.splitOrSplits.forEach(function (split) { return res_2[split] = objectAssign_1.objectAssign({}, constants_1.CONTROL_WITH_CONFIG); });
|
|
75
|
+
params.splitOrSplits.forEach(function (split) { return res_2[split] = (0, objectAssign_1.objectAssign)({}, constants_1.CONTROL_WITH_CONFIG); });
|
|
76
76
|
return wrapResult(res_2);
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
function track(maybeKey, maybeTT, maybeEvent, maybeEventValue, maybeProperties) {
|
|
80
|
-
var key = inputValidation_1.validateKey(log, maybeKey, 'track');
|
|
81
|
-
var tt = inputValidation_1.validateTrafficType(log, maybeTT, 'track');
|
|
82
|
-
var event = inputValidation_1.validateEvent(log, maybeEvent, 'track');
|
|
83
|
-
var eventValue = inputValidation_1.validateEventValue(log, maybeEventValue, 'track');
|
|
84
|
-
var _a = inputValidation_1.validateEventProperties(log, maybeProperties, 'track'), properties = _a.properties, size = _a.size;
|
|
85
|
-
var isOperational = inputValidation_1.validateIfNotDestroyed(log, readinessManager, 'track');
|
|
80
|
+
var key = (0, inputValidation_1.validateKey)(log, maybeKey, 'track');
|
|
81
|
+
var tt = (0, inputValidation_1.validateTrafficType)(log, maybeTT, 'track');
|
|
82
|
+
var event = (0, inputValidation_1.validateEvent)(log, maybeEvent, 'track');
|
|
83
|
+
var eventValue = (0, inputValidation_1.validateEventValue)(log, maybeEventValue, 'track');
|
|
84
|
+
var _a = (0, inputValidation_1.validateEventProperties)(log, maybeProperties, 'track'), properties = _a.properties, size = _a.size;
|
|
85
|
+
var isOperational = (0, inputValidation_1.validateIfNotDestroyed)(log, readinessManager, 'track');
|
|
86
86
|
if (isOperational && key && tt && event && eventValue !== false && properties !== false) { // @ts-expect-error
|
|
87
87
|
return client.track(key, tt, event, eventValue, properties, size);
|
|
88
88
|
}
|
|
@@ -11,11 +11,11 @@ var clientInputValidation_1 = require("./clientInputValidation");
|
|
|
11
11
|
*/
|
|
12
12
|
function sdkClientFactory(params) {
|
|
13
13
|
var sdkReadinessManager = params.sdkReadinessManager, syncManager = params.syncManager, storage = params.storage, signalListener = params.signalListener, settings = params.settings, sharedClient = params.sharedClient;
|
|
14
|
-
return objectAssign_1.objectAssign(
|
|
14
|
+
return (0, objectAssign_1.objectAssign)(
|
|
15
15
|
// Proto-linkage of the readiness Event Emitter
|
|
16
16
|
Object.create(sdkReadinessManager.sdkStatus),
|
|
17
17
|
// Client API (getTreatment* & track methods)
|
|
18
|
-
clientInputValidation_1.clientInputValidationDecorator(settings.log, client_1.clientFactory(params), sdkReadinessManager.readinessManager,
|
|
18
|
+
(0, clientInputValidation_1.clientInputValidationDecorator)(settings.log, (0, client_1.clientFactory)(params), sdkReadinessManager.readinessManager,
|
|
19
19
|
// storage is async if and only if mode is consumer or partial consumer
|
|
20
20
|
[constants_1.CONSUMER_MODE, constants_1.CONSUMER_PARTIAL_MODE].indexOf(settings.mode) === -1 ? true : false),
|
|
21
21
|
// Sdk destroy
|
|
@@ -30,7 +30,7 @@ function sdkClientFactory(params) {
|
|
|
30
30
|
signalListener && signalListener.stop();
|
|
31
31
|
// Release the API Key if it is the main client
|
|
32
32
|
if (!sharedClient)
|
|
33
|
-
apiKey_1.releaseApiKey(settings.core.authorizationKey);
|
|
33
|
+
(0, apiKey_1.releaseApiKey)(settings.core.authorizationKey);
|
|
34
34
|
// Cleanup storage
|
|
35
35
|
return storage.destroy();
|
|
36
36
|
});
|
|
@@ -8,7 +8,7 @@ var constants_1 = require("../logger/constants");
|
|
|
8
8
|
*/
|
|
9
9
|
function sdkClientMethodFactory(params) {
|
|
10
10
|
var log = params.settings.log;
|
|
11
|
-
var clientInstance = sdkClient_1.sdkClientFactory(params);
|
|
11
|
+
var clientInstance = (0, sdkClient_1.sdkClientFactory)(params);
|
|
12
12
|
return function client() {
|
|
13
13
|
if (arguments.length > 0) {
|
|
14
14
|
throw new Error('Shared Client not supported by the storage mechanism. Create isolated instances instead.');
|
|
@@ -22,10 +22,10 @@ function sdkClientMethodCSFactory(params) {
|
|
|
22
22
|
// Keeping similar behaviour as in the isomorphic JS SDK: if settings key is invalid,
|
|
23
23
|
// `false` value is used as binded key of the default client, but trafficType is ignored
|
|
24
24
|
// @TODO handle as a non-recoverable error
|
|
25
|
-
var validKey = key_1.validateKey(log, key, method);
|
|
26
|
-
var mainClientInstance = clientCS_1.clientCSDecorator(log, sdkClient_1.sdkClientFactory(params), // @ts-ignore
|
|
25
|
+
var validKey = (0, key_1.validateKey)(log, key, method);
|
|
26
|
+
var mainClientInstance = (0, clientCS_1.clientCSDecorator)(log, (0, sdkClient_1.sdkClientFactory)(params), // @ts-ignore
|
|
27
27
|
validKey);
|
|
28
|
-
var parsedDefaultKey = key_2.keyParser(key);
|
|
28
|
+
var parsedDefaultKey = (0, key_2.keyParser)(key);
|
|
29
29
|
var defaultInstanceId = buildInstanceId(parsedDefaultKey);
|
|
30
30
|
// Cache instances created per factory.
|
|
31
31
|
var clientInstances = {};
|
|
@@ -36,13 +36,13 @@ function sdkClientMethodCSFactory(params) {
|
|
|
36
36
|
return mainClientInstance;
|
|
37
37
|
}
|
|
38
38
|
// Validate the key value. The trafficType (2nd argument) is ignored
|
|
39
|
-
var validKey = key_1.validateKey(log, key, method);
|
|
39
|
+
var validKey = (0, key_1.validateKey)(log, key, method);
|
|
40
40
|
if (validKey === false) {
|
|
41
41
|
throw new Error('Shared Client needs a valid key.');
|
|
42
42
|
}
|
|
43
43
|
var instanceId = buildInstanceId(validKey);
|
|
44
44
|
if (!clientInstances[instanceId]) {
|
|
45
|
-
var matchingKey = key_2.getMatching(validKey);
|
|
45
|
+
var matchingKey = (0, key_2.getMatching)(validKey);
|
|
46
46
|
var sharedSdkReadiness_1 = sdkReadinessManager.shared(readyTimeout);
|
|
47
47
|
var sharedStorage = storage.shared && storage.shared(matchingKey, function (err) {
|
|
48
48
|
if (err)
|
|
@@ -58,7 +58,7 @@ function sdkClientMethodCSFactory(params) {
|
|
|
58
58
|
var sharedSyncManager = syncManager && sharedStorage && syncManager.shared(matchingKey, sharedSdkReadiness_1.readinessManager, sharedStorage);
|
|
59
59
|
// As shared clients reuse all the storage information, we don't need to check here if we
|
|
60
60
|
// will use offline or online mode. We should stick with the original decision.
|
|
61
|
-
clientInstances[instanceId] = clientCS_1.clientCSDecorator(log, sdkClient_1.sdkClientFactory(objectAssign_1.objectAssign({}, params, {
|
|
61
|
+
clientInstances[instanceId] = (0, clientCS_1.clientCSDecorator)(log, (0, sdkClient_1.sdkClientFactory)((0, objectAssign_1.objectAssign)({}, params, {
|
|
62
62
|
sdkReadinessManager: sharedSdkReadiness_1,
|
|
63
63
|
storage: sharedStorage || storage,
|
|
64
64
|
syncManager: sharedSyncManager,
|
|
@@ -24,14 +24,14 @@ function sdkClientMethodCSFactory(params) {
|
|
|
24
24
|
// Keeping the behaviour as in the isomorphic JS SDK: if settings key or TT are invalid,
|
|
25
25
|
// `false` value is used as binded key/TT of the default client, which leads to several issues.
|
|
26
26
|
// @TODO update when supporting non-recoverable errors
|
|
27
|
-
var validKey = key_1.validateKey(log, key, method);
|
|
27
|
+
var validKey = (0, key_1.validateKey)(log, key, method);
|
|
28
28
|
var validTrafficType;
|
|
29
29
|
if (trafficType !== undefined) {
|
|
30
|
-
validTrafficType = trafficType_1.validateTrafficType(log, trafficType, method);
|
|
30
|
+
validTrafficType = (0, trafficType_1.validateTrafficType)(log, trafficType, method);
|
|
31
31
|
}
|
|
32
|
-
var mainClientInstance = clientCS_1.clientCSDecorator(log, sdkClient_1.sdkClientFactory(params), // @ts-ignore
|
|
32
|
+
var mainClientInstance = (0, clientCS_1.clientCSDecorator)(log, (0, sdkClient_1.sdkClientFactory)(params), // @ts-ignore
|
|
33
33
|
validKey, validTrafficType);
|
|
34
|
-
var parsedDefaultKey = key_2.keyParser(key);
|
|
34
|
+
var parsedDefaultKey = (0, key_2.keyParser)(key);
|
|
35
35
|
var defaultInstanceId = buildInstanceId(parsedDefaultKey, trafficType);
|
|
36
36
|
// Cache instances created per factory.
|
|
37
37
|
var clientInstances = {};
|
|
@@ -42,20 +42,20 @@ function sdkClientMethodCSFactory(params) {
|
|
|
42
42
|
return mainClientInstance;
|
|
43
43
|
}
|
|
44
44
|
// Validate the key value
|
|
45
|
-
var validKey = key_1.validateKey(log, key, "Shared " + method);
|
|
45
|
+
var validKey = (0, key_1.validateKey)(log, key, "Shared " + method);
|
|
46
46
|
if (validKey === false) {
|
|
47
47
|
throw new Error('Shared Client needs a valid key.');
|
|
48
48
|
}
|
|
49
49
|
var validTrafficType;
|
|
50
50
|
if (trafficType !== undefined) {
|
|
51
|
-
validTrafficType = trafficType_1.validateTrafficType(log, trafficType, "Shared " + method);
|
|
51
|
+
validTrafficType = (0, trafficType_1.validateTrafficType)(log, trafficType, "Shared " + method);
|
|
52
52
|
if (validTrafficType === false) {
|
|
53
53
|
throw new Error('Shared Client needs a valid traffic type or no traffic type at all.');
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
var instanceId = buildInstanceId(validKey, validTrafficType);
|
|
57
57
|
if (!clientInstances[instanceId]) {
|
|
58
|
-
var matchingKey = key_2.getMatching(validKey);
|
|
58
|
+
var matchingKey = (0, key_2.getMatching)(validKey);
|
|
59
59
|
var sharedSdkReadiness_1 = sdkReadinessManager.shared(readyTimeout);
|
|
60
60
|
var sharedStorage = storage.shared && storage.shared(matchingKey, function (err) {
|
|
61
61
|
if (err)
|
|
@@ -71,7 +71,7 @@ function sdkClientMethodCSFactory(params) {
|
|
|
71
71
|
var sharedSyncManager = syncManager && sharedStorage && syncManager.shared(matchingKey, sharedSdkReadiness_1.readinessManager, sharedStorage);
|
|
72
72
|
// As shared clients reuse all the storage information, we don't need to check here if we
|
|
73
73
|
// will use offline or online mode. We should stick with the original decision.
|
|
74
|
-
clientInstances[instanceId] = clientCS_1.clientCSDecorator(log, sdkClient_1.sdkClientFactory(objectAssign_1.objectAssign({}, params, {
|
|
74
|
+
clientInstances[instanceId] = (0, clientCS_1.clientCSDecorator)(log, (0, sdkClient_1.sdkClientFactory)((0, objectAssign_1.objectAssign)({}, params, {
|
|
75
75
|
sdkReadinessManager: sharedSdkReadiness_1,
|
|
76
76
|
storage: sharedStorage || storage,
|
|
77
77
|
syncManager: sharedSyncManager,
|
package/cjs/sdkFactory/index.js
CHANGED
|
@@ -19,16 +19,16 @@ function sdkFactory(params) {
|
|
|
19
19
|
var log = settings.log;
|
|
20
20
|
// @TODO handle non-recoverable errors: not start sync, mark the SDK as destroyed, etc.
|
|
21
21
|
// We will just log and allow for the SDK to end up throwing an SDK_TIMEOUT event for devs to handle.
|
|
22
|
-
apiKey_1.validateAndTrackApiKey(log, settings.core.authorizationKey);
|
|
22
|
+
(0, apiKey_1.validateAndTrackApiKey)(log, settings.core.authorizationKey);
|
|
23
23
|
// @TODO handle non-recoverable error, such as, `fetch` api not available, invalid API Key, etc.
|
|
24
|
-
var sdkReadinessManager = sdkReadinessManager_1.sdkReadinessManagerFactory(log, platform.EventEmitter, settings.startup.readyTimeout);
|
|
24
|
+
var sdkReadinessManager = (0, sdkReadinessManager_1.sdkReadinessManagerFactory)(log, platform.EventEmitter, settings.startup.readyTimeout);
|
|
25
25
|
var readinessManager = sdkReadinessManager.readinessManager;
|
|
26
26
|
// @TODO consider passing the settings object, so that each storage access only what it needs
|
|
27
27
|
var storageFactoryParams = {
|
|
28
28
|
eventsQueueSize: settings.scheduler.eventsQueueSize,
|
|
29
|
-
optimize: utils_1.shouldBeOptimized(settings),
|
|
29
|
+
optimize: (0, utils_1.shouldBeOptimized)(settings),
|
|
30
30
|
// ATM, only used by InLocalStorage
|
|
31
|
-
matchingKey: key_1.getMatching(settings.core.key),
|
|
31
|
+
matchingKey: (0, key_1.getMatching)(settings.core.key),
|
|
32
32
|
splitFiltersValidation: settings.sync.__splitFiltersValidation,
|
|
33
33
|
// ATM, only used by PluggableStorage
|
|
34
34
|
mode: settings.mode,
|
|
@@ -40,7 +40,7 @@ function sdkFactory(params) {
|
|
|
40
40
|
readinessManager.splits.emit(constants_2.SDK_SPLITS_ARRIVED);
|
|
41
41
|
readinessManager.segments.emit(constants_2.SDK_SEGMENTS_ARRIVED);
|
|
42
42
|
},
|
|
43
|
-
metadata: metadataBuilder_1.metadataBuilder(settings),
|
|
43
|
+
metadata: (0, metadataBuilder_1.metadataBuilder)(settings),
|
|
44
44
|
log: log
|
|
45
45
|
};
|
|
46
46
|
var storage = storageFactory(storageFactoryParams);
|
|
@@ -57,8 +57,8 @@ function sdkFactory(params) {
|
|
|
57
57
|
var integrationsManager = integrationsManagerFactory && integrationsManagerFactory({ settings: settings, storage: storage });
|
|
58
58
|
// trackers
|
|
59
59
|
var observer = impressionsObserverFactory && impressionsObserverFactory();
|
|
60
|
-
var impressionsTracker = impressionsTracker_1.impressionsTrackerFactory(log, storage.impressions, settings, impressionListener, integrationsManager, observer, storage.impressionCounts);
|
|
61
|
-
var eventTracker = eventTracker_1.eventTrackerFactory(log, storage.events, integrationsManager);
|
|
60
|
+
var impressionsTracker = (0, impressionsTracker_1.impressionsTrackerFactory)(log, storage.impressions, settings, impressionListener, integrationsManager, observer, storage.impressionCounts);
|
|
61
|
+
var eventTracker = (0, eventTracker_1.eventTrackerFactory)(log, storage.events, integrationsManager);
|
|
62
62
|
// signal listener
|
|
63
63
|
var signalListener = SignalListener && new SignalListener(syncManager, settings, storage, splitApi);
|
|
64
64
|
// Sdk client and manager
|
|
@@ -77,7 +77,7 @@ function sdkFactory(params) {
|
|
|
77
77
|
return managerInstance;
|
|
78
78
|
},
|
|
79
79
|
// Logger wrapper API
|
|
80
|
-
Logger: sdkLogger_1.createLoggerAPI(settings.log),
|
|
80
|
+
Logger: (0, sdkLogger_1.createLoggerAPI)(settings.log),
|
|
81
81
|
settings: settings,
|
|
82
82
|
};
|
|
83
83
|
}
|
package/cjs/sdkManager/index.js
CHANGED
|
@@ -8,7 +8,7 @@ var inputValidation_1 = require("../utils/inputValidation");
|
|
|
8
8
|
function collectTreatments(splitObject) {
|
|
9
9
|
var conditions = splitObject.conditions;
|
|
10
10
|
// Rollout conditions are supposed to have the entire partitions list, so we find the first one.
|
|
11
|
-
var allTreatmentsCondition = lang_1.find(conditions, function (cond) { return cond.conditionType === 'ROLLOUT'; });
|
|
11
|
+
var allTreatmentsCondition = (0, lang_1.find)(conditions, function (cond) { return cond.conditionType === 'ROLLOUT'; });
|
|
12
12
|
// Localstorage mode could fall into a no rollout conditions state. Take the first condition in that case.
|
|
13
13
|
if (!allTreatmentsCondition)
|
|
14
14
|
allTreatmentsCondition = conditions[0];
|
|
@@ -47,36 +47,36 @@ function objectsToViews(jsons) {
|
|
|
47
47
|
function sdkManagerFactory(log, splits, _a) {
|
|
48
48
|
var readinessManager = _a.readinessManager, sdkStatus = _a.sdkStatus;
|
|
49
49
|
var SPLIT_FN_LABEL = 'split';
|
|
50
|
-
return objectAssign_1.objectAssign(
|
|
50
|
+
return (0, objectAssign_1.objectAssign)(
|
|
51
51
|
// Proto-linkage of the readiness Event Emitter
|
|
52
52
|
Object.create(sdkStatus), {
|
|
53
53
|
/**
|
|
54
54
|
* Get the Split object corresponding to the given split name if valid
|
|
55
55
|
*/
|
|
56
56
|
split: function (maybeSplitName) {
|
|
57
|
-
var splitName = inputValidation_1.validateSplit(log, maybeSplitName, SPLIT_FN_LABEL);
|
|
58
|
-
if (!inputValidation_1.validateIfNotDestroyed(log, readinessManager, SPLIT_FN_LABEL) || !inputValidation_1.validateIfOperational(log, readinessManager, SPLIT_FN_LABEL) || !splitName) {
|
|
57
|
+
var splitName = (0, inputValidation_1.validateSplit)(log, maybeSplitName, SPLIT_FN_LABEL);
|
|
58
|
+
if (!(0, inputValidation_1.validateIfNotDestroyed)(log, readinessManager, SPLIT_FN_LABEL) || !(0, inputValidation_1.validateIfOperational)(log, readinessManager, SPLIT_FN_LABEL) || !splitName) {
|
|
59
59
|
return null;
|
|
60
60
|
}
|
|
61
61
|
var split = splits.getSplit(splitName);
|
|
62
|
-
if (thenable_1.thenable(split)) {
|
|
62
|
+
if ((0, thenable_1.thenable)(split)) {
|
|
63
63
|
return split.catch(function () { return null; }).then(function (result) {
|
|
64
|
-
inputValidation_1.validateSplitExistance(log, readinessManager, splitName, result, SPLIT_FN_LABEL);
|
|
64
|
+
(0, inputValidation_1.validateSplitExistance)(log, readinessManager, splitName, result, SPLIT_FN_LABEL);
|
|
65
65
|
return objectToView(result);
|
|
66
66
|
});
|
|
67
67
|
}
|
|
68
|
-
inputValidation_1.validateSplitExistance(log, readinessManager, splitName, split, SPLIT_FN_LABEL);
|
|
68
|
+
(0, inputValidation_1.validateSplitExistance)(log, readinessManager, splitName, split, SPLIT_FN_LABEL);
|
|
69
69
|
return objectToView(split);
|
|
70
70
|
},
|
|
71
71
|
/**
|
|
72
72
|
* Get the Split objects present on the factory storage
|
|
73
73
|
*/
|
|
74
74
|
splits: function () {
|
|
75
|
-
if (!inputValidation_1.validateIfNotDestroyed(log, readinessManager, 'splits') || !inputValidation_1.validateIfOperational(log, readinessManager, 'splits')) {
|
|
75
|
+
if (!(0, inputValidation_1.validateIfNotDestroyed)(log, readinessManager, 'splits') || !(0, inputValidation_1.validateIfOperational)(log, readinessManager, 'splits')) {
|
|
76
76
|
return [];
|
|
77
77
|
}
|
|
78
78
|
var currentSplits = splits.getAll();
|
|
79
|
-
return thenable_1.thenable(currentSplits) ?
|
|
79
|
+
return (0, thenable_1.thenable)(currentSplits) ?
|
|
80
80
|
currentSplits.catch(function () { return []; }).then(objectsToViews) : // handle possible rejections when using pluggable storage
|
|
81
81
|
objectsToViews(currentSplits);
|
|
82
82
|
},
|
|
@@ -84,11 +84,11 @@ function sdkManagerFactory(log, splits, _a) {
|
|
|
84
84
|
* Get the Split names present on the factory storage
|
|
85
85
|
*/
|
|
86
86
|
names: function () {
|
|
87
|
-
if (!inputValidation_1.validateIfNotDestroyed(log, readinessManager, 'names') || !inputValidation_1.validateIfOperational(log, readinessManager, 'names')) {
|
|
87
|
+
if (!(0, inputValidation_1.validateIfNotDestroyed)(log, readinessManager, 'names') || !(0, inputValidation_1.validateIfOperational)(log, readinessManager, 'names')) {
|
|
88
88
|
return [];
|
|
89
89
|
}
|
|
90
90
|
var splitNames = splits.getSplitNames();
|
|
91
|
-
return thenable_1.thenable(splitNames) ?
|
|
91
|
+
return (0, thenable_1.thenable)(splitNames) ?
|
|
92
92
|
splitNames.catch(function () { return []; }) : // handle possible rejections when using pluggable storage
|
|
93
93
|
splitNames;
|
|
94
94
|
}
|
package/cjs/services/splitApi.js
CHANGED
|
@@ -17,7 +17,7 @@ function splitApiFactory(settings, platform) {
|
|
|
17
17
|
var urls = settings.urls;
|
|
18
18
|
var filterQueryString = settings.sync.__splitFiltersValidation && settings.sync.__splitFiltersValidation.queryString;
|
|
19
19
|
var SplitSDKImpressionsMode = settings.sync.impressionsMode;
|
|
20
|
-
var splitHttpClient = splitHttpClient_1.splitHttpClientFactory(settings, platform.getFetch, platform.getOptions);
|
|
20
|
+
var splitHttpClient = (0, splitHttpClient_1.splitHttpClientFactory)(settings, platform.getFetch, platform.getOptions);
|
|
21
21
|
return {
|
|
22
22
|
getSdkAPIHealthCheck: function () {
|
|
23
23
|
var url = urls.sdk + "/version";
|
|
@@ -75,7 +75,8 @@ function splitApiFactory(settings, platform) {
|
|
|
75
75
|
return splitHttpClient(url, {
|
|
76
76
|
// Adding extra headers to send impressions in OPTIMIZED or DEBUG modes.
|
|
77
77
|
method: 'POST',
|
|
78
|
-
body: body,
|
|
78
|
+
body: body,
|
|
79
|
+
headers: (0, objectAssign_1.objectAssign)({ SplitSDKImpressionsMode: SplitSDKImpressionsMode }, headers)
|
|
79
80
|
});
|
|
80
81
|
},
|
|
81
82
|
/**
|
|
@@ -31,8 +31,8 @@ function splitHttpClientFactory(settings, getFetch, getOptions) {
|
|
|
31
31
|
return function httpClient(url, reqOpts, logErrorsAsInfo) {
|
|
32
32
|
if (reqOpts === void 0) { reqOpts = {}; }
|
|
33
33
|
if (logErrorsAsInfo === void 0) { logErrorsAsInfo = false; }
|
|
34
|
-
var request = objectAssign_1.objectAssign({
|
|
35
|
-
headers: reqOpts.headers ? objectAssign_1.objectAssign({}, headers, reqOpts.headers) : headers,
|
|
34
|
+
var request = (0, objectAssign_1.objectAssign)({
|
|
35
|
+
headers: reqOpts.headers ? (0, objectAssign_1.objectAssign)({}, headers, reqOpts.headers) : headers,
|
|
36
36
|
method: reqOpts.method || 'GET',
|
|
37
37
|
body: reqOpts.body
|
|
38
38
|
}, options);
|
|
@@ -46,7 +46,7 @@ function splitHttpClientFactory(settings, getFetch, getOptions) {
|
|
|
46
46
|
return response;
|
|
47
47
|
})
|
|
48
48
|
.catch(function (error) {
|
|
49
|
-
var resp = error.response;
|
|
49
|
+
var resp = error && error.response;
|
|
50
50
|
var msg = '';
|
|
51
51
|
if (resp) { // An HTTP error
|
|
52
52
|
switch (resp.status) {
|