@kameleoon/javascript-sdk-core 0.0.3 → 1.0.0
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/README.md +7 -3
- package/dist/campaignConfiguration/campaignConfiguration.d.ts +46 -0
- package/dist/campaignConfiguration/campaignConfiguration.js +217 -0
- package/dist/campaignConfiguration/campaignConfiguration.js.map +1 -0
- package/dist/campaignConfiguration/constants.d.ts +18 -0
- package/dist/campaignConfiguration/constants.js +23 -0
- package/dist/campaignConfiguration/constants.js.map +1 -0
- package/dist/campaignConfiguration/index.d.ts +2 -0
- package/dist/campaignConfiguration/index.js +8 -0
- package/dist/campaignConfiguration/index.js.map +1 -0
- package/dist/campaignConfiguration/types.d.ts +126 -0
- package/dist/campaignConfiguration/types.js +47 -0
- package/dist/campaignConfiguration/types.js.map +1 -0
- package/dist/clientSettings/clientSettings.d.ts +12 -0
- package/dist/clientSettings/clientSettings.js +29 -0
- package/dist/clientSettings/clientSettings.js.map +1 -0
- package/dist/clientSettings/index.d.ts +2 -0
- package/dist/clientSettings/index.js +6 -0
- package/dist/clientSettings/index.js.map +1 -0
- package/dist/clientSettings/types.d.ts +6 -0
- package/dist/{interfaces/interfaces.js → clientSettings/types.js} +1 -1
- package/dist/clientSettings/types.js.map +1 -0
- package/dist/constants.d.ts +10 -16
- package/dist/constants.js +13 -20
- package/dist/constants.js.map +1 -1
- package/dist/eventSource/constants.d.ts +1 -0
- package/dist/eventSource/constants.js +5 -0
- package/dist/eventSource/constants.js.map +1 -0
- package/dist/eventSource/externalEventSource.d.ts +12 -0
- package/dist/eventSource/externalEventSource.js +26 -0
- package/dist/eventSource/externalEventSource.js.map +1 -0
- package/dist/eventSource/index.d.ts +3 -0
- package/dist/eventSource/index.js +8 -0
- package/dist/eventSource/index.js.map +1 -0
- package/dist/eventSource/types.d.ts +47 -0
- package/dist/eventSource/types.js +3 -0
- package/dist/eventSource/types.js.map +1 -0
- package/dist/hasher/constants.d.ts +1 -0
- package/dist/hasher/constants.js +5 -0
- package/dist/hasher/constants.js.map +1 -0
- package/dist/hasher/hasher.d.ts +6 -0
- package/dist/hasher/hasher.js +34 -0
- package/dist/hasher/hasher.js.map +1 -0
- package/dist/hasher/index.d.ts +1 -0
- package/dist/hasher/index.js +6 -0
- package/dist/hasher/index.js.map +1 -0
- package/dist/hasher/types.d.ts +12 -0
- package/dist/hasher/types.js +3 -0
- package/dist/hasher/types.js.map +1 -0
- package/dist/index.d.ts +10 -3
- package/dist/index.js +25 -7
- package/dist/index.js.map +1 -1
- package/dist/kameleoonClient.d.ts +189 -100
- package/dist/kameleoonClient.js +238 -701
- package/dist/kameleoonClient.js.map +1 -1
- package/dist/kameleoonData/browser.d.ts +21 -0
- package/dist/kameleoonData/browser.js +41 -0
- package/dist/kameleoonData/browser.js.map +1 -0
- package/dist/kameleoonData/constants.d.ts +1 -0
- package/dist/kameleoonData/constants.js +5 -0
- package/dist/kameleoonData/constants.js.map +1 -0
- package/dist/kameleoonData/conversion.d.ts +23 -0
- package/dist/kameleoonData/conversion.js +49 -0
- package/dist/kameleoonData/conversion.js.map +1 -0
- package/dist/kameleoonData/customData.d.ts +33 -0
- package/dist/kameleoonData/customData.js +68 -0
- package/dist/kameleoonData/customData.js.map +1 -0
- package/dist/kameleoonData/device.d.ts +21 -0
- package/dist/kameleoonData/device.js +41 -0
- package/dist/kameleoonData/device.js.map +1 -0
- package/dist/kameleoonData/index.d.ts +7 -0
- package/dist/kameleoonData/index.js +20 -0
- package/dist/kameleoonData/index.js.map +1 -0
- package/dist/kameleoonData/nonce.d.ts +5 -0
- package/dist/kameleoonData/nonce.js +20 -0
- package/dist/kameleoonData/nonce.js.map +1 -0
- package/dist/kameleoonData/pageView.d.ts +24 -0
- package/dist/kameleoonData/pageView.js +54 -0
- package/dist/kameleoonData/pageView.js.map +1 -0
- package/dist/kameleoonData/types.d.ts +100 -0
- package/dist/kameleoonData/types.js +36 -0
- package/dist/kameleoonData/types.js.map +1 -0
- package/dist/kameleoonData/userAgent.d.ts +18 -0
- package/dist/kameleoonData/userAgent.js +33 -0
- package/dist/kameleoonData/userAgent.js.map +1 -0
- package/dist/kameleoonError/constants.d.ts +22 -0
- package/dist/kameleoonError/constants.js +25 -0
- package/dist/kameleoonError/constants.js.map +1 -0
- package/dist/kameleoonError/helpers.d.ts +1 -0
- package/dist/kameleoonError/helpers.js +8 -0
- package/dist/kameleoonError/helpers.js.map +1 -0
- package/dist/kameleoonError/index.d.ts +3 -0
- package/dist/kameleoonError/index.js +10 -0
- package/dist/kameleoonError/index.js.map +1 -0
- package/dist/kameleoonError/kameleoonError.d.ts +24 -0
- package/dist/kameleoonError/kameleoonError.js +64 -0
- package/dist/kameleoonError/kameleoonError.js.map +1 -0
- package/dist/kameleoonError/types.d.ts +20 -0
- package/dist/kameleoonError/types.js +25 -0
- package/dist/kameleoonError/types.js.map +1 -0
- package/dist/kameleoonUtils.d.ts +11 -10
- package/dist/kameleoonUtils.js +42 -128
- package/dist/kameleoonUtils.js.map +1 -1
- package/dist/requester/constants.d.ts +15 -0
- package/dist/requester/constants.js +53 -0
- package/dist/requester/constants.js.map +1 -0
- package/dist/requester/index.d.ts +3 -0
- package/dist/requester/index.js +10 -0
- package/dist/requester/index.js.map +1 -0
- package/dist/requester/requester.d.ts +23 -0
- package/dist/requester/requester.js +121 -0
- package/dist/requester/requester.js.map +1 -0
- package/dist/requester/types.d.ts +43 -0
- package/dist/requester/types.js +39 -0
- package/dist/requester/types.js.map +1 -0
- package/dist/storage/constants.d.ts +9 -0
- package/dist/storage/constants.js +14 -0
- package/dist/storage/constants.js.map +1 -0
- package/dist/storage/externalStorage.d.ts +11 -0
- package/dist/storage/externalStorage.js +34 -0
- package/dist/storage/externalStorage.js.map +1 -0
- package/dist/storage/index.d.ts +3 -0
- package/dist/storage/index.js +8 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/types.d.ts +52 -11
- package/dist/targeting/conditions/conditionFactory.d.ts +6 -0
- package/dist/targeting/conditions/conditionFactory.js +26 -0
- package/dist/targeting/conditions/conditionFactory.js.map +1 -0
- package/dist/targeting/conditions/customDataCondition.d.ts +16 -0
- package/dist/targeting/conditions/customDataCondition.js +99 -0
- package/dist/targeting/conditions/customDataCondition.js.map +1 -0
- package/dist/targeting/conditions/exclusiveExperimentCondition.d.ts +9 -0
- package/dist/targeting/conditions/exclusiveExperimentCondition.js +21 -0
- package/dist/targeting/conditions/exclusiveExperimentCondition.js.map +1 -0
- package/dist/targeting/conditions/index.d.ts +5 -0
- package/dist/targeting/conditions/index.js +12 -0
- package/dist/targeting/conditions/index.js.map +1 -0
- package/dist/targeting/conditions/targetExperimentCondition.d.ts +13 -0
- package/dist/targeting/conditions/targetExperimentCondition.js +42 -0
- package/dist/targeting/conditions/targetExperimentCondition.js.map +1 -0
- package/dist/targeting/conditions/types.d.ts +22 -11
- package/dist/targeting/index.d.ts +3 -0
- package/dist/targeting/index.js +15 -0
- package/dist/targeting/index.js.map +1 -0
- package/dist/targeting/targetingNode.d.ts +21 -0
- package/dist/targeting/targetingNode.js +40 -0
- package/dist/targeting/targetingNode.js.map +1 -0
- package/dist/targeting/targetingTree.d.ts +16 -8
- package/dist/targeting/targetingTree.js +112 -10
- package/dist/targeting/targetingTree.js.map +1 -1
- package/dist/targeting/types.d.ts +127 -0
- package/dist/targeting/types.js +93 -0
- package/dist/targeting/types.js.map +1 -0
- package/dist/types.d.ts +135 -5
- package/dist/types.js +28 -0
- package/dist/types.js.map +1 -1
- package/dist/utilities/constants.d.ts +1 -0
- package/dist/utilities/constants.js +5 -0
- package/dist/utilities/constants.js.map +1 -0
- package/dist/utilities/index.d.ts +1 -0
- package/dist/utilities/index.js +6 -0
- package/dist/utilities/index.js.map +1 -0
- package/dist/utilities/types.d.ts +18 -0
- package/dist/utilities/types.js +3 -0
- package/dist/utilities/types.js.map +1 -0
- package/dist/utilities/utilities.d.ts +13 -0
- package/dist/utilities/utilities.js +119 -0
- package/dist/utilities/utilities.js.map +1 -0
- package/dist/variationConfiguration/index.d.ts +2 -0
- package/dist/variationConfiguration/index.js +6 -0
- package/dist/variationConfiguration/index.js.map +1 -0
- package/dist/variationConfiguration/types.d.ts +25 -0
- package/dist/variationConfiguration/types.js +3 -0
- package/dist/variationConfiguration/types.js.map +1 -0
- package/dist/variationConfiguration/variation.d.ts +13 -0
- package/dist/variationConfiguration/variation.js +38 -0
- package/dist/variationConfiguration/variation.js.map +1 -0
- package/dist/variationConfiguration/variationConfiguration.d.ts +36 -0
- package/dist/variationConfiguration/variationConfiguration.js +248 -0
- package/dist/variationConfiguration/variationConfiguration.js.map +1 -0
- package/package.json +19 -9
- package/dist/configurations/configuration.d.ts +0 -15
- package/dist/configurations/configuration.js +0 -31
- package/dist/configurations/configuration.js.map +0 -1
- package/dist/configurations/experiment.d.ts +0 -13
- package/dist/configurations/experiment.js +0 -54
- package/dist/configurations/experiment.js.map +0 -1
- package/dist/configurations/featureFlag.d.ts +0 -23
- package/dist/configurations/featureFlag.js +0 -105
- package/dist/configurations/featureFlag.js.map +0 -1
- package/dist/configurations/variation.d.ts +0 -15
- package/dist/configurations/variation.js +0 -14
- package/dist/configurations/variation.js.map +0 -1
- package/dist/data.d.ts +0 -67
- package/dist/data.js +0 -127
- package/dist/data.js.map +0 -1
- package/dist/exceptions/credentialsNotFound.d.ts +0 -6
- package/dist/exceptions/credentialsNotFound.js +0 -29
- package/dist/exceptions/credentialsNotFound.js.map +0 -1
- package/dist/exceptions/experimentConfigurationNotFound.d.ts +0 -6
- package/dist/exceptions/experimentConfigurationNotFound.js +0 -29
- package/dist/exceptions/experimentConfigurationNotFound.js.map +0 -1
- package/dist/exceptions/featureConfigurationNotFound.d.ts +0 -6
- package/dist/exceptions/featureConfigurationNotFound.js +0 -29
- package/dist/exceptions/featureConfigurationNotFound.js.map +0 -1
- package/dist/exceptions/notActivated.d.ts +0 -6
- package/dist/exceptions/notActivated.js +0 -29
- package/dist/exceptions/notActivated.js.map +0 -1
- package/dist/exceptions/notTargeted.d.ts +0 -6
- package/dist/exceptions/notTargeted.js +0 -29
- package/dist/exceptions/notTargeted.js.map +0 -1
- package/dist/exceptions/siteCodeDisabled.d.ts +0 -5
- package/dist/exceptions/siteCodeDisabled.js +0 -30
- package/dist/exceptions/siteCodeDisabled.js.map +0 -1
- package/dist/exceptions/variationConfigurationNotFound.d.ts +0 -6
- package/dist/exceptions/variationConfigurationNotFound.js +0 -29
- package/dist/exceptions/variationConfigurationNotFound.js.map +0 -1
- package/dist/exceptions/visitorCodeNotValid.d.ts +0 -5
- package/dist/exceptions/visitorCodeNotValid.js +0 -30
- package/dist/exceptions/visitorCodeNotValid.js.map +0 -1
- package/dist/interfaces/interfaces.d.ts +0 -81
- package/dist/interfaces/interfaces.js.map +0 -1
- package/dist/nonce.d.ts +0 -1
- package/dist/nonce.js +0 -16
- package/dist/nonce.js.map +0 -1
- package/dist/realTimeConfigurationService.d.ts +0 -12
- package/dist/realTimeConfigurationService.js +0 -24
- package/dist/realTimeConfigurationService.js.map +0 -1
- package/dist/storage/variationStorage.d.ts +0 -11
- package/dist/storage/variationStorage.js +0 -159
- package/dist/storage/variationStorage.js.map +0 -1
- package/dist/storage/visitorVariation.d.ts +0 -9
- package/dist/storage/visitorVariation.js +0 -22
- package/dist/storage/visitorVariation.js.map +0 -1
- package/dist/targeting/conditions/customDatum.d.ts +0 -12
- package/dist/targeting/conditions/customDatum.js +0 -129
- package/dist/targeting/conditions/customDatum.js.map +0 -1
- package/dist/targeting/conditions/exclusiveExperiment.d.ts +0 -9
- package/dist/targeting/conditions/exclusiveExperiment.js +0 -45
- package/dist/targeting/conditions/exclusiveExperiment.js.map +0 -1
- package/dist/targeting/conditions/targetExperiment.d.ts +0 -14
- package/dist/targeting/conditions/targetExperiment.js +0 -57
- package/dist/targeting/conditions/targetExperiment.js.map +0 -1
- package/dist/targeting/targetingCondition.d.ts +0 -7
- package/dist/targeting/targetingCondition.js +0 -9
- package/dist/targeting/targetingCondition.js.map +0 -1
- package/dist/targeting/targetingConditionsFactory.d.ts +0 -7
- package/dist/targeting/targetingConditionsFactory.js +0 -30
- package/dist/targeting/targetingConditionsFactory.js.map +0 -1
- package/dist/targeting/targetingData.d.ts +0 -7
- package/dist/targeting/targetingData.js +0 -11
- package/dist/targeting/targetingData.js.map +0 -1
- package/dist/targeting/targetingEngine.d.ts +0 -6
- package/dist/targeting/targetingEngine.js +0 -130
- package/dist/targeting/targetingEngine.js.map +0 -1
- package/dist/targeting/targetingSegment.d.ts +0 -5
- package/dist/targeting/targetingSegment.js +0 -9
- package/dist/targeting/targetingSegment.js.map +0 -1
- package/dist/targeting/targetingTreeBuilder.d.ts +0 -8
- package/dist/targeting/targetingTreeBuilder.js +0 -127
- package/dist/targeting/targetingTreeBuilder.js.map +0 -1
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.VariationConfiguration = void 0;
|
|
15
|
+
const ts_res_1 = require("ts-res");
|
|
16
|
+
const hasher_1 = require("../hasher");
|
|
17
|
+
const variation_1 = require("./variation");
|
|
18
|
+
const kameleoonError_1 = require("../kameleoonError");
|
|
19
|
+
const utilities_1 = require("../utilities");
|
|
20
|
+
const types_1 = require("../campaignConfiguration/types");
|
|
21
|
+
const constants_1 = require("../constants");
|
|
22
|
+
class VariationConfiguration {
|
|
23
|
+
constructor(experiments, externalStorage) {
|
|
24
|
+
this.getAssociatedVariationId = (visitorCode, experimentId) => {
|
|
25
|
+
let associatedVariation;
|
|
26
|
+
this.storage.read().and((data) => {
|
|
27
|
+
var _a;
|
|
28
|
+
associatedVariation = (_a = data === null || data === void 0 ? void 0 : data[visitorCode]) === null || _a === void 0 ? void 0 : _a[experimentId];
|
|
29
|
+
});
|
|
30
|
+
const experiment = this.experiments.find((experiment) => experiment.id === String(experimentId));
|
|
31
|
+
if (!experiment) {
|
|
32
|
+
return (0, ts_res_1.Err)(new kameleoonError_1.KameleoonError(kameleoonError_1.KameleoonException.ExperimentConfigurationNotFound, experimentId, visitorCode));
|
|
33
|
+
}
|
|
34
|
+
const variation = new variation_1.Variation(associatedVariation);
|
|
35
|
+
if (variation.isValid(experiment === null || experiment === void 0 ? void 0 : experiment.respoolTime)) {
|
|
36
|
+
return (0, ts_res_1.Ok)(variation.id);
|
|
37
|
+
}
|
|
38
|
+
return this.assignVariation(visitorCode, experiment);
|
|
39
|
+
};
|
|
40
|
+
this.experiments = experiments;
|
|
41
|
+
this.storage = externalStorage;
|
|
42
|
+
}
|
|
43
|
+
getAssignedVariations(visitorCode) {
|
|
44
|
+
const result = this.storage.read();
|
|
45
|
+
if (!result.ok) {
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
const experiments = result.data[visitorCode];
|
|
49
|
+
if (!experiments) {
|
|
50
|
+
return (0, ts_res_1.Err)(new kameleoonError_1.KameleoonError(kameleoonError_1.KameleoonException.StorageRead, visitorCode));
|
|
51
|
+
}
|
|
52
|
+
return (0, ts_res_1.Ok)(experiments);
|
|
53
|
+
}
|
|
54
|
+
getFeatureFlagVariation({ visitorCode, featureFlag, targetingData, withAssignment = false, }) {
|
|
55
|
+
const validateResult = utilities_1.Utilities.validateVisitorCode(visitorCode);
|
|
56
|
+
if (!validateResult.ok) {
|
|
57
|
+
return (0, ts_res_1.Err)(validateResult.error);
|
|
58
|
+
}
|
|
59
|
+
const { rules, featureKey, id: featureFlagId, defaultVariationKey, } = featureFlag;
|
|
60
|
+
for (const rule of rules) {
|
|
61
|
+
const { segment, experimentId, exposition, variationByExposition } = rule;
|
|
62
|
+
// --- Check targeting ---
|
|
63
|
+
const targetingResult = utilities_1.Utilities.checkTargeting({
|
|
64
|
+
segment,
|
|
65
|
+
visitorCode,
|
|
66
|
+
experimentId,
|
|
67
|
+
targetingData,
|
|
68
|
+
variationConfiguration: this,
|
|
69
|
+
});
|
|
70
|
+
if (!targetingResult.ok) {
|
|
71
|
+
return targetingResult;
|
|
72
|
+
}
|
|
73
|
+
if (!targetingResult.data) {
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
// --- Check if there was already rule variation assigned ---
|
|
77
|
+
const variationResult = this.getAssignedRuleVariation(visitorCode, rule);
|
|
78
|
+
// --- Note ---
|
|
79
|
+
// We don't handle `variationResult` error here, because it can only
|
|
80
|
+
// return internal `DataInconsistency` exception meaning that we should just
|
|
81
|
+
// continue execution thus re-allocating variation
|
|
82
|
+
if (variationResult.ok && variationResult.data.variationId !== null) {
|
|
83
|
+
return (0, ts_res_1.Ok)(Object.assign(Object.assign({}, variationResult.data), { featureFlagId,
|
|
84
|
+
featureKey,
|
|
85
|
+
rule }));
|
|
86
|
+
}
|
|
87
|
+
// --- Calculate new variation (and assign if `withAssignment` is `true`) ---
|
|
88
|
+
const hashDouble = hasher_1.Hasher.obtainFeatureFlagHashDouble({
|
|
89
|
+
visitorCode,
|
|
90
|
+
campaignId: String(featureFlagId),
|
|
91
|
+
});
|
|
92
|
+
const reShuffledHashDouble = hasher_1.Hasher.obtainFeatureFlagHashDouble({
|
|
93
|
+
visitorCode,
|
|
94
|
+
campaignId: String(featureFlagId),
|
|
95
|
+
reShuffle: true,
|
|
96
|
+
});
|
|
97
|
+
// --- Note ---
|
|
98
|
+
// - Double check with different `hashDouble` is performed here in order
|
|
99
|
+
// to first theck rule's exposition for allocation and then inner `variationByExposition`
|
|
100
|
+
// - If `hashDouble` would be same then some of the variations couldn't have never been reached
|
|
101
|
+
if (hashDouble < exposition) {
|
|
102
|
+
let totalDeviation = 0;
|
|
103
|
+
for (const variation of variationByExposition) {
|
|
104
|
+
totalDeviation += variation.exposition;
|
|
105
|
+
if (reShuffledHashDouble <= totalDeviation) {
|
|
106
|
+
// --- Note ---
|
|
107
|
+
// For the `RuleType.EXPERIMENTATION` variation assignment must happen without
|
|
108
|
+
// calculating experiment deviation
|
|
109
|
+
if (rule.type === types_1.RuleType.EXPERIMENTATION && withAssignment) {
|
|
110
|
+
this.updateStorageData({
|
|
111
|
+
visitorCode,
|
|
112
|
+
experimentId: String(experimentId),
|
|
113
|
+
// --- Note ---
|
|
114
|
+
// For `RuleType.EXPERIMENTATION` `variationId` can not be null
|
|
115
|
+
variationId: variation.variationId,
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
const { exposition } = variation, restParameters = __rest(variation, ["exposition"]);
|
|
119
|
+
return (0, ts_res_1.Ok)(Object.assign(Object.assign({}, restParameters), { rule, featureFlagId, featureKey }));
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
if (rule.type === types_1.RuleType.EXPERIMENTATION) {
|
|
124
|
+
return (0, ts_res_1.Ok)({
|
|
125
|
+
variationKey: constants_1.OFF_VARIATION_KEY,
|
|
126
|
+
variationId: null,
|
|
127
|
+
featureFlagId,
|
|
128
|
+
featureKey,
|
|
129
|
+
rule,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
break;
|
|
133
|
+
}
|
|
134
|
+
return (0, ts_res_1.Ok)({
|
|
135
|
+
featureKey,
|
|
136
|
+
featureFlagId,
|
|
137
|
+
variationKey: defaultVariationKey,
|
|
138
|
+
variationId: null,
|
|
139
|
+
rule: null,
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
getExperimentVariation(visitorCode, experiment) {
|
|
143
|
+
const { id, respoolTime, deviations } = experiment;
|
|
144
|
+
const hashDouble = hasher_1.Hasher.obtainExperimentHashDouble({
|
|
145
|
+
visitorCode,
|
|
146
|
+
campaignId: id,
|
|
147
|
+
respoolTime,
|
|
148
|
+
});
|
|
149
|
+
let isUnallocated = true;
|
|
150
|
+
let totalDeviation = 0;
|
|
151
|
+
let resultVariationId = 0;
|
|
152
|
+
for (const deviation of deviations) {
|
|
153
|
+
totalDeviation += deviation.value;
|
|
154
|
+
if (totalDeviation >= hashDouble) {
|
|
155
|
+
// --- Note ---
|
|
156
|
+
// If sum of all variations is less than 1 (100%), then there is a chance
|
|
157
|
+
// user will end up outside of any variation
|
|
158
|
+
isUnallocated = false;
|
|
159
|
+
// --- Note ---
|
|
160
|
+
// 'origin' is the default `variationId`, it must return id of 0
|
|
161
|
+
if (deviation.variationId !== 'origin') {
|
|
162
|
+
resultVariationId = Number(deviation.variationId);
|
|
163
|
+
}
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
if (isUnallocated) {
|
|
168
|
+
return (0, ts_res_1.Err)(new kameleoonError_1.KameleoonError(kameleoonError_1.KameleoonException.NotAllocated, visitorCode));
|
|
169
|
+
}
|
|
170
|
+
return (0, ts_res_1.Ok)(resultVariationId);
|
|
171
|
+
}
|
|
172
|
+
assignVariation(visitorCode, experiment) {
|
|
173
|
+
const variationResult = this.getExperimentVariation(visitorCode, experiment);
|
|
174
|
+
if (!variationResult.ok) {
|
|
175
|
+
return variationResult;
|
|
176
|
+
}
|
|
177
|
+
const result = this.updateStorageData({
|
|
178
|
+
visitorCode,
|
|
179
|
+
experimentId: experiment.id,
|
|
180
|
+
variationId: variationResult.data,
|
|
181
|
+
});
|
|
182
|
+
if (!result.ok) {
|
|
183
|
+
return result;
|
|
184
|
+
}
|
|
185
|
+
return (0, ts_res_1.Ok)(variationResult.data);
|
|
186
|
+
}
|
|
187
|
+
updateStorageData({ visitorCode, experimentId, variationId, }) {
|
|
188
|
+
const result = this.storage.read();
|
|
189
|
+
if (!result.ok) {
|
|
190
|
+
// --- Note ---
|
|
191
|
+
// If there is a parsing error we return error
|
|
192
|
+
// But if there is `LocalStorageRead` error it means that
|
|
193
|
+
// data was read successfully and it's empty, which is not problem
|
|
194
|
+
// cause that might be initial `read`
|
|
195
|
+
if (result.error.type === kameleoonError_1.KameleoonException.StorageParse) {
|
|
196
|
+
return result;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
const updatedVariationData = result.ok
|
|
200
|
+
? result.data
|
|
201
|
+
: {};
|
|
202
|
+
const updatedVariation = {
|
|
203
|
+
variationId,
|
|
204
|
+
assignmentDate: new Date().toString(),
|
|
205
|
+
};
|
|
206
|
+
if (updatedVariationData[visitorCode]) {
|
|
207
|
+
updatedVariationData[visitorCode][experimentId] = updatedVariation;
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
updatedVariationData[visitorCode] = {
|
|
211
|
+
[experimentId]: updatedVariation,
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
return this.storage.write(updatedVariationData);
|
|
215
|
+
}
|
|
216
|
+
getAssignedRuleVariation(visitorCode, rule) {
|
|
217
|
+
const emptyVariation = {
|
|
218
|
+
variationId: null,
|
|
219
|
+
variationKey: '',
|
|
220
|
+
};
|
|
221
|
+
const { experimentId, variationByExposition } = rule;
|
|
222
|
+
const variationsResult = this.getAssignedVariations(visitorCode);
|
|
223
|
+
// --- Note ---
|
|
224
|
+
// If there is an error, we just want to skip seeking
|
|
225
|
+
// for variation in the storage, not throw an error
|
|
226
|
+
if (!variationsResult.ok) {
|
|
227
|
+
return (0, ts_res_1.Ok)(emptyVariation);
|
|
228
|
+
}
|
|
229
|
+
const variations = variationsResult.data;
|
|
230
|
+
if (experimentId &&
|
|
231
|
+
typeof variations[experimentId].variationId !== undefined) {
|
|
232
|
+
const id = variations[experimentId].variationId;
|
|
233
|
+
const featureFlagVariation = variationByExposition.find((item) => item.variationId == id);
|
|
234
|
+
if (!featureFlagVariation) {
|
|
235
|
+
// --- Note ---
|
|
236
|
+
// This error is not described for public methods as
|
|
237
|
+
// it serves internal purpose of checking whether
|
|
238
|
+
// the persistent variation has been updated and should be re-allocated
|
|
239
|
+
return (0, ts_res_1.Err)(new kameleoonError_1.KameleoonError(kameleoonError_1.KameleoonException.DataInconsistency));
|
|
240
|
+
}
|
|
241
|
+
const { exposition } = featureFlagVariation, restParameters = __rest(featureFlagVariation, ["exposition"]);
|
|
242
|
+
return (0, ts_res_1.Ok)(Object.assign({}, restParameters));
|
|
243
|
+
}
|
|
244
|
+
return (0, ts_res_1.Ok)(emptyVariation);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
exports.VariationConfiguration = VariationConfiguration;
|
|
248
|
+
//# sourceMappingURL=variationConfiguration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variationConfiguration.js","sourceRoot":"","sources":["../../src/variationConfiguration/variationConfiguration.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kameleoon/javascript-sdk-core",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "Kameleoon JS SDK Core",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
5
7
|
"files": [
|
|
6
8
|
"dist"
|
|
7
9
|
],
|
|
8
|
-
"main": "dist/index.js",
|
|
9
10
|
"scripts": {
|
|
10
11
|
"clean": "rimraf dist && rimraf tsconfig.tsbuildinfo",
|
|
11
12
|
"start": "npm run clean && tsc -w",
|
|
12
13
|
"build": "npm run clean && tsc",
|
|
13
14
|
"deploy": "npm publish --tag latest --access public",
|
|
14
15
|
"deploy-nexus": "npm publish --registry=https://nexus.kameleoon.net/repository/npm-kameleoon/",
|
|
16
|
+
"update-documentation": "/bin/bash ../../scripts/update_documentation.sh javascript-sdk-core",
|
|
15
17
|
"release": "/bin/bash ../../scripts/release.sh javascript-sdk-core",
|
|
16
|
-
"test": "
|
|
18
|
+
"test": "NODE_ENV=test && jest",
|
|
17
19
|
"test:watch": "jest --watch",
|
|
18
|
-
"test:coverage": "jest --coverage"
|
|
19
|
-
"update-documentation": "/bin/bash ../../scripts/update_documentation.sh javascript-sdk-core"
|
|
20
|
+
"test:coverage": "jest --coverage"
|
|
20
21
|
},
|
|
21
22
|
"homepage": "https://developers.kameleoon.com/react-js-sdk.html",
|
|
22
23
|
"publishConfig": {
|
|
@@ -25,16 +26,25 @@
|
|
|
25
26
|
},
|
|
26
27
|
"keywords": [
|
|
27
28
|
"kameleoon",
|
|
28
|
-
"
|
|
29
|
+
"core",
|
|
29
30
|
"sdk",
|
|
30
|
-
"
|
|
31
|
+
"javascript core"
|
|
31
32
|
],
|
|
32
33
|
"license": "ISC",
|
|
33
34
|
"commitlint": {
|
|
34
35
|
"extends": "@commitlint/config-conventional"
|
|
35
36
|
},
|
|
36
37
|
"dependencies": {
|
|
37
|
-
"
|
|
38
|
-
"node-fetch": "^2.6.
|
|
38
|
+
"crypto-js": "^4.1.1",
|
|
39
|
+
"node-fetch": "^2.6.1",
|
|
40
|
+
"ts-res": "^1.1.0"
|
|
41
|
+
},
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"@types/crypto-js": "^4.1.1",
|
|
44
|
+
"@types/jest": "^27.0.2",
|
|
45
|
+
"@types/node": "^14.17.5",
|
|
46
|
+
"@types/node-fetch": "^2.6.2",
|
|
47
|
+
"jest": "^27.3.1",
|
|
48
|
+
"ts-jest": "^27.0.7"
|
|
39
49
|
}
|
|
40
50
|
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { ConfigurationInterface, ConfigurationExperimentsInterface, ConfigurationFeatureFlagsInterface, AutomationExperimentInterface, AutomationFeatureFlagInterface, ConfigurationSettings } from '../interfaces/interfaces';
|
|
2
|
-
declare class Configuration implements ConfigurationInterface {
|
|
3
|
-
settings: ConfigurationSettings;
|
|
4
|
-
updateTime: number;
|
|
5
|
-
experiments: ConfigurationExperimentsInterface;
|
|
6
|
-
featureFlags: ConfigurationFeatureFlagsInterface;
|
|
7
|
-
configuration: any;
|
|
8
|
-
constructor(siteCode: string, actions: {
|
|
9
|
-
configuration: ConfigurationSettings;
|
|
10
|
-
experiments: AutomationExperimentInterface[];
|
|
11
|
-
featureFlags: AutomationFeatureFlagInterface[];
|
|
12
|
-
updateTime: number;
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
export default Configuration;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
var experiment_1 = __importDefault(require("./experiment"));
|
|
7
|
-
var featureFlag_1 = __importDefault(require("./featureFlag"));
|
|
8
|
-
var Configuration = /** @class */ (function () {
|
|
9
|
-
function Configuration(siteCode, actions) {
|
|
10
|
-
this.updateTime = actions.updateTime
|
|
11
|
-
? actions.updateTime
|
|
12
|
-
: new Date().getTime();
|
|
13
|
-
this.configuration = actions;
|
|
14
|
-
this.settings = actions.configuration;
|
|
15
|
-
this.experiments = actions.experiments
|
|
16
|
-
.filter(function (experiment) { return experiment.siteCode == siteCode; })
|
|
17
|
-
.reduce(function (obj, experiment) {
|
|
18
|
-
obj[experiment.id] = new experiment_1.default(experiment);
|
|
19
|
-
return obj;
|
|
20
|
-
}, {});
|
|
21
|
-
this.featureFlags = actions.featureFlags
|
|
22
|
-
.filter(function (ff) { return ff.siteCode == siteCode; })
|
|
23
|
-
.reduce(function (obj, ff) {
|
|
24
|
-
obj[ff.id] = new featureFlag_1.default(ff);
|
|
25
|
-
return obj;
|
|
26
|
-
}, {});
|
|
27
|
-
}
|
|
28
|
-
return Configuration;
|
|
29
|
-
}());
|
|
30
|
-
exports.default = Configuration;
|
|
31
|
-
//# sourceMappingURL=configuration.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../src/configurations/configuration.ts"],"names":[],"mappings":";;;;;AAAA,4DAAsC;AACtC,8DAAwC;AAUxC;IAOE,uBACE,QAAgB,EAChB,OAKC;QAED,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU;YAClC,CAAC,CAAC,OAAO,CAAC,UAAU;YACpB,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW;aACnC,MAAM,CAAC,UAAC,UAAU,IAAK,OAAA,UAAU,CAAC,QAAQ,IAAI,QAAQ,EAA/B,CAA+B,CAAC;aACvD,MAAM,CAAC,UAAC,GAAG,EAAE,UAAU;YACtB,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,IAAI,oBAAU,CAAC,UAAU,CAAC,CAAC;YAChD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAuC,CAAC,CAAC;QAE9C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY;aACrC,MAAM,CAAC,UAAC,EAAE,IAAK,OAAA,EAAE,CAAC,QAAQ,IAAI,QAAQ,EAAvB,CAAuB,CAAC;aACvC,MAAM,CAAC,UAAC,GAAG,EAAE,EAAE;YACd,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,qBAAW,CAAC,EAAE,CAAC,CAAC;YACjC,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAwC,CAAC,CAAC;IACjD,CAAC;IACH,oBAAC;AAAD,CAAC,AAnCD,IAmCC;AAED,kBAAe,aAAa,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import TargetingSegment from '../targeting/targetingSegment';
|
|
2
|
-
import Variation from './variation';
|
|
3
|
-
import { AutomationExperimentInterface, SiteEnabledInterface } from '../interfaces/interfaces';
|
|
4
|
-
declare class Experiment implements SiteEnabledInterface {
|
|
5
|
-
variationConfigurations: {
|
|
6
|
-
[id: string]: Variation;
|
|
7
|
-
};
|
|
8
|
-
forceTargeting?: boolean;
|
|
9
|
-
targetingSegment?: TargetingSegment;
|
|
10
|
-
siteEnabled: boolean;
|
|
11
|
-
constructor(experiment: AutomationExperimentInterface);
|
|
12
|
-
}
|
|
13
|
-
export default Experiment;
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
var targetingSegment_1 = __importDefault(require("../targeting/targetingSegment"));
|
|
7
|
-
var targetingTreeBuilder_1 = __importDefault(require("../targeting/targetingTreeBuilder"));
|
|
8
|
-
var variation_1 = __importDefault(require("./variation"));
|
|
9
|
-
var Experiment = /** @class */ (function () {
|
|
10
|
-
function Experiment(experiment) {
|
|
11
|
-
var _this = this;
|
|
12
|
-
this.variationConfigurations = {};
|
|
13
|
-
var deviations = experiment.deviations || null;
|
|
14
|
-
if (deviations) {
|
|
15
|
-
deviations.forEach(function (deviation) {
|
|
16
|
-
var variationId = deviation.variationId;
|
|
17
|
-
if (variationId == 'origin') {
|
|
18
|
-
variationId = '0';
|
|
19
|
-
}
|
|
20
|
-
var deviationValue = deviation.value;
|
|
21
|
-
var respTime = (experiment.respoolTime || []).find(function (resp) { return resp.variationId == variationId; });
|
|
22
|
-
var respoolTimeValue = respTime === null || respTime === void 0 ? void 0 : respTime.value;
|
|
23
|
-
var variation = (experiment.variations || []).find(function (variation) { return variation.id == variationId; });
|
|
24
|
-
var customJsonString = variation ? variation.customJson : null;
|
|
25
|
-
var customJson;
|
|
26
|
-
try {
|
|
27
|
-
customJson = JSON.parse(customJsonString || '{}');
|
|
28
|
-
}
|
|
29
|
-
catch (e) {
|
|
30
|
-
customJson = {};
|
|
31
|
-
}
|
|
32
|
-
_this.variationConfigurations[variationId] = new variation_1.default({
|
|
33
|
-
id: variationId,
|
|
34
|
-
deviation: deviationValue,
|
|
35
|
-
respoolTime: respoolTimeValue,
|
|
36
|
-
customJson: customJson,
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
var targetingSegment = void 0;
|
|
40
|
-
var segment = experiment.segment;
|
|
41
|
-
if (null != segment) {
|
|
42
|
-
targetingSegment = new targetingSegment_1.default();
|
|
43
|
-
var conditionsData = segment.conditionsData;
|
|
44
|
-
var targetingTree = targetingTreeBuilder_1.default.createTargetingTree(conditionsData);
|
|
45
|
-
targetingSegment.targetingTree = targetingTree;
|
|
46
|
-
}
|
|
47
|
-
this.targetingSegment = targetingSegment;
|
|
48
|
-
}
|
|
49
|
-
this.siteEnabled = experiment.siteEnabled;
|
|
50
|
-
}
|
|
51
|
-
return Experiment;
|
|
52
|
-
}());
|
|
53
|
-
exports.default = Experiment;
|
|
54
|
-
//# sourceMappingURL=experiment.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"experiment.js","sourceRoot":"","sources":["../../src/configurations/experiment.ts"],"names":[],"mappings":";;;;;AAAA,mFAA6D;AAC7D,2FAAqE;AACrE,0DAAoC;AAMpC;IAME,oBAAY,UAAyC;QAArD,iBA+CC;QA9CC,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC;QAElC,IAAM,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,IAAI,CAAC;QAEjD,IAAI,UAAU,EAAE;YACd,UAAU,CAAC,OAAO,CAAC,UAAC,SAAS;gBAC3B,IAAI,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;gBACxC,IAAI,WAAW,IAAI,QAAQ,EAAE;oBAC3B,WAAW,GAAG,GAAG,CAAC;iBACnB;gBACD,IAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC;gBACvC,IAAM,QAAQ,GAAG,CAAC,UAAU,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,CAClD,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,WAAW,IAAI,WAAW,EAA/B,CAA+B,CAC1C,CAAC;gBACF,IAAM,gBAAgB,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,CAAC;gBACzC,IAAM,SAAS,GAAG,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,CAClD,UAAC,SAAS,IAAK,OAAA,SAAS,CAAC,EAAE,IAAI,WAAW,EAA3B,CAA2B,CAC3C,CAAC;gBACF,IAAM,gBAAgB,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;gBACjE,IAAI,UAAU,CAAC;gBACf,IAAI;oBACF,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC;iBACnD;gBAAC,OAAO,CAAC,EAAE;oBACV,UAAU,GAAG,EAAE,CAAC;iBACjB;gBACD,KAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,GAAG,IAAI,mBAAS,CAAC;oBACxD,EAAE,EAAE,WAAW;oBACf,SAAS,EAAE,cAAc;oBACzB,WAAW,EAAE,gBAAgB;oBAC7B,UAAU,EAAE,UAAU;iBACvB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,IAAI,gBAAgB,SAAA,CAAC;YACrB,IAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;YACnC,IAAI,IAAI,IAAI,OAAO,EAAE;gBACnB,gBAAgB,GAAG,IAAI,0BAAgB,EAAE,CAAC;gBAC1C,IAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;gBAC9C,IAAM,aAAa,GACjB,8BAAoB,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;gBAC3D,gBAAgB,CAAC,aAAa,GAAG,aAAa,CAAC;aAChD;YACD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;SAC1C;QAED,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;IAC5C,CAAC;IACH,iBAAC;AAAD,CAAC,AAtDD,IAsDC;AAED,kBAAe,UAAU,CAAC"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import TargetingSegment from '../targeting/targetingSegment';
|
|
2
|
-
import Variation from './variation';
|
|
3
|
-
import { AutomationFeatureFlagInterface, SiteEnabledInterface } from '../interfaces/interfaces';
|
|
4
|
-
declare class FeatureFlag implements SiteEnabledInterface {
|
|
5
|
-
static readonly STATUS_ACTIVE = "ACTIVE";
|
|
6
|
-
static readonly FEATURE_STATUS_DEACTIVATED = "DEACTIVATED";
|
|
7
|
-
status: string;
|
|
8
|
-
featureStatus: string;
|
|
9
|
-
variationConfigurations: {
|
|
10
|
-
[id: string]: Variation;
|
|
11
|
-
};
|
|
12
|
-
forceTargeting?: boolean;
|
|
13
|
-
targetingSegment?: TargetingSegment;
|
|
14
|
-
identificationKey: string;
|
|
15
|
-
schedules: {
|
|
16
|
-
dateStart: number;
|
|
17
|
-
dateEnd: number;
|
|
18
|
-
}[];
|
|
19
|
-
siteEnabled: boolean;
|
|
20
|
-
constructor(featureFlag: AutomationFeatureFlagInterface);
|
|
21
|
-
isScheduleActive: () => boolean;
|
|
22
|
-
}
|
|
23
|
-
export default FeatureFlag;
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
var targetingSegment_1 = __importDefault(require("../targeting/targetingSegment"));
|
|
7
|
-
var targetingTreeBuilder_1 = __importDefault(require("../targeting/targetingTreeBuilder"));
|
|
8
|
-
var variation_1 = __importDefault(require("./variation"));
|
|
9
|
-
var FeatureFlag = /** @class */ (function () {
|
|
10
|
-
function FeatureFlag(featureFlag) {
|
|
11
|
-
var _this = this;
|
|
12
|
-
this.isScheduleActive = function () {
|
|
13
|
-
// if no schedules then need to fetch current status
|
|
14
|
-
var currentStatus = _this.status == FeatureFlag.STATUS_ACTIVE;
|
|
15
|
-
if (_this.featureStatus == FeatureFlag.FEATURE_STATUS_DEACTIVATED ||
|
|
16
|
-
_this.schedules.length == 0) {
|
|
17
|
-
return currentStatus;
|
|
18
|
-
}
|
|
19
|
-
var currentTime = new Date().getTime();
|
|
20
|
-
// need to find if currentTime is in any period -> active or not -> not activate
|
|
21
|
-
return (_this.schedules.filter(function (schedule) {
|
|
22
|
-
return schedule.dateStart < currentTime && currentTime < schedule.dateEnd;
|
|
23
|
-
}).length > 0);
|
|
24
|
-
};
|
|
25
|
-
this.variationConfigurations = {};
|
|
26
|
-
this.identificationKey = featureFlag.identificationKey;
|
|
27
|
-
this.status = featureFlag.status;
|
|
28
|
-
this.featureStatus = featureFlag.featureStatus;
|
|
29
|
-
this.schedules = [];
|
|
30
|
-
var deviations = featureFlag.deviations || null;
|
|
31
|
-
if (deviations) {
|
|
32
|
-
deviations.forEach(function (deviation) {
|
|
33
|
-
var variationId = deviation.variationId;
|
|
34
|
-
if (variationId == 'origin') {
|
|
35
|
-
variationId = '0';
|
|
36
|
-
}
|
|
37
|
-
var deviationValue = deviation.value;
|
|
38
|
-
var respTime = (featureFlag.respoolTime || []).find(function (resp) { return resp.variationId == variationId; });
|
|
39
|
-
var respoolTimeValue = respTime === null || respTime === void 0 ? void 0 : respTime.value;
|
|
40
|
-
var variation = (featureFlag.variations || []).find(function (variation) { return variation.id == variationId; });
|
|
41
|
-
var customJsonString = variation ? variation.customJson : null;
|
|
42
|
-
var customJson;
|
|
43
|
-
try {
|
|
44
|
-
customJson = JSON.parse(customJsonString || '{}');
|
|
45
|
-
}
|
|
46
|
-
catch (e) {
|
|
47
|
-
customJson = {};
|
|
48
|
-
}
|
|
49
|
-
_this.variationConfigurations[variationId] = new variation_1.default({
|
|
50
|
-
id: variationId,
|
|
51
|
-
deviation: deviationValue,
|
|
52
|
-
respoolTime: respoolTimeValue,
|
|
53
|
-
customJson: customJson,
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
if (featureFlag.schedules) {
|
|
58
|
-
featureFlag.schedules.forEach(function (schedule) {
|
|
59
|
-
_this.schedules.push({
|
|
60
|
-
dateStart: schedule.dateStart
|
|
61
|
-
? Date.parse(schedule.dateStart)
|
|
62
|
-
: -Infinity,
|
|
63
|
-
dateEnd: schedule.dateEnd ? Date.parse(schedule.dateEnd) : Infinity,
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
// Temporary fix for ff
|
|
68
|
-
featureFlag.variations.forEach(function (variation) {
|
|
69
|
-
if (!_this.variationConfigurations[variation.id]) {
|
|
70
|
-
var deviation = 1 - _this.variationConfigurations['0'].deviation;
|
|
71
|
-
var respTime = (featureFlag.respoolTime || []).find(function (resp) { return resp.variationId == variation.id; });
|
|
72
|
-
var respoolTimeValue = respTime === null || respTime === void 0 ? void 0 : respTime.value;
|
|
73
|
-
var customJsonString = variation.customJson;
|
|
74
|
-
var customJson = void 0;
|
|
75
|
-
try {
|
|
76
|
-
customJson = JSON.parse(customJsonString || '{}');
|
|
77
|
-
}
|
|
78
|
-
catch (e) {
|
|
79
|
-
customJson = {};
|
|
80
|
-
}
|
|
81
|
-
_this.variationConfigurations[variation.id] = new variation_1.default({
|
|
82
|
-
id: variation.id,
|
|
83
|
-
deviation: deviation,
|
|
84
|
-
respoolTime: respoolTimeValue,
|
|
85
|
-
customJson: customJson,
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
var targetingSegment;
|
|
90
|
-
var segment = featureFlag.segment;
|
|
91
|
-
if (null != segment) {
|
|
92
|
-
targetingSegment = new targetingSegment_1.default();
|
|
93
|
-
var conditionsData = segment.conditionsData;
|
|
94
|
-
var targetingTree = targetingTreeBuilder_1.default.createTargetingTree(conditionsData);
|
|
95
|
-
targetingSegment.targetingTree = targetingTree;
|
|
96
|
-
}
|
|
97
|
-
this.targetingSegment = targetingSegment;
|
|
98
|
-
this.siteEnabled = featureFlag.siteEnabled;
|
|
99
|
-
}
|
|
100
|
-
FeatureFlag.STATUS_ACTIVE = 'ACTIVE';
|
|
101
|
-
FeatureFlag.FEATURE_STATUS_DEACTIVATED = 'DEACTIVATED';
|
|
102
|
-
return FeatureFlag;
|
|
103
|
-
}());
|
|
104
|
-
exports.default = FeatureFlag;
|
|
105
|
-
//# sourceMappingURL=featureFlag.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"featureFlag.js","sourceRoot":"","sources":["../../src/configurations/featureFlag.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { CustomJsonType } from '../types';
|
|
2
|
-
export interface VariationInterface {
|
|
3
|
-
id: string;
|
|
4
|
-
deviation: number;
|
|
5
|
-
respoolTime?: number;
|
|
6
|
-
customJson?: any;
|
|
7
|
-
}
|
|
8
|
-
declare class Variation implements VariationInterface {
|
|
9
|
-
id: string;
|
|
10
|
-
respoolTime?: number;
|
|
11
|
-
deviation: number;
|
|
12
|
-
customJson?: CustomJsonType;
|
|
13
|
-
constructor({ id, deviation, respoolTime, customJson }: VariationInterface);
|
|
14
|
-
}
|
|
15
|
-
export default Variation;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
var Variation = /** @class */ (function () {
|
|
4
|
-
function Variation(_a) {
|
|
5
|
-
var id = _a.id, deviation = _a.deviation, respoolTime = _a.respoolTime, customJson = _a.customJson;
|
|
6
|
-
this.id = id;
|
|
7
|
-
this.deviation = deviation;
|
|
8
|
-
this.respoolTime = respoolTime;
|
|
9
|
-
this.customJson = customJson;
|
|
10
|
-
}
|
|
11
|
-
return Variation;
|
|
12
|
-
}());
|
|
13
|
-
exports.default = Variation;
|
|
14
|
-
//# sourceMappingURL=variation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"variation.js","sourceRoot":"","sources":["../../src/configurations/variation.ts"],"names":[],"mappings":";;AASA;IAME,mBAAY,EAA8D;YAA5D,EAAE,QAAA,EAAE,SAAS,eAAA,EAAE,WAAW,iBAAA,EAAE,UAAU,gBAAA;QAClD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IACH,gBAAC;AAAD,CAAC,AAZD,IAYC;AAED,kBAAe,SAAS,CAAC"}
|