@kameleoon/javascript-sdk-core 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/dist/configurations/configuration.d.ts +15 -0
- package/dist/configurations/configuration.js +31 -0
- package/dist/configurations/configuration.js.map +1 -0
- package/dist/configurations/experiment.d.ts +13 -0
- package/dist/configurations/experiment.js +54 -0
- package/dist/configurations/experiment.js.map +1 -0
- package/dist/configurations/featureFlag.d.ts +23 -0
- package/dist/configurations/featureFlag.js +105 -0
- package/dist/configurations/featureFlag.js.map +1 -0
- package/dist/configurations/variation.d.ts +15 -0
- package/dist/configurations/variation.js +14 -0
- package/dist/configurations/variation.js.map +1 -0
- package/dist/constants.d.ts +17 -0
- package/dist/constants.js +23 -0
- package/dist/constants.js.map +1 -0
- package/dist/data.d.ts +67 -0
- package/dist/data.js +127 -0
- package/dist/data.js.map +1 -0
- package/dist/exceptions/credentialsNotFound.d.ts +6 -0
- package/dist/exceptions/credentialsNotFound.js +29 -0
- package/dist/exceptions/credentialsNotFound.js.map +1 -0
- package/dist/exceptions/experimentConfigurationNotFound.d.ts +6 -0
- package/dist/exceptions/experimentConfigurationNotFound.js +29 -0
- package/dist/exceptions/experimentConfigurationNotFound.js.map +1 -0
- package/dist/exceptions/featureConfigurationNotFound.d.ts +6 -0
- package/dist/exceptions/featureConfigurationNotFound.js +29 -0
- package/dist/exceptions/featureConfigurationNotFound.js.map +1 -0
- package/dist/exceptions/notActivated.d.ts +6 -0
- package/dist/exceptions/notActivated.js +29 -0
- package/dist/exceptions/notActivated.js.map +1 -0
- package/dist/exceptions/notTargeted.d.ts +6 -0
- package/dist/exceptions/notTargeted.js +29 -0
- package/dist/exceptions/notTargeted.js.map +1 -0
- package/dist/exceptions/siteCodeDisabled.d.ts +5 -0
- package/dist/exceptions/siteCodeDisabled.js +30 -0
- package/dist/exceptions/siteCodeDisabled.js.map +1 -0
- package/dist/exceptions/variationConfigurationNotFound.d.ts +6 -0
- package/dist/exceptions/variationConfigurationNotFound.js +29 -0
- package/dist/exceptions/variationConfigurationNotFound.js.map +1 -0
- package/dist/exceptions/visitorCodeNotValid.d.ts +5 -0
- package/dist/exceptions/visitorCodeNotValid.js +30 -0
- package/dist/exceptions/visitorCodeNotValid.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/interfaces.d.ts +81 -0
- package/dist/interfaces/interfaces.js +3 -0
- package/dist/interfaces/interfaces.js.map +1 -0
- package/dist/kameleoonClient.d.ts +102 -0
- package/dist/kameleoonClient.js +732 -0
- package/dist/kameleoonClient.js.map +1 -0
- package/dist/kameleoonUtils.d.ts +11 -0
- package/dist/kameleoonUtils.js +107 -0
- package/dist/kameleoonUtils.js.map +1 -0
- package/dist/nonce.d.ts +1 -0
- package/dist/nonce.js +16 -0
- package/dist/nonce.js.map +1 -0
- package/dist/realTimeConfigurationService.d.ts +12 -0
- package/dist/realTimeConfigurationService.js +24 -0
- package/dist/realTimeConfigurationService.js.map +1 -0
- package/dist/storage/types.d.ts +13 -0
- package/dist/storage/types.js +3 -0
- package/dist/storage/types.js.map +1 -0
- package/dist/storage/variationStorage.d.ts +11 -0
- package/dist/storage/variationStorage.js +159 -0
- package/dist/storage/variationStorage.js.map +1 -0
- package/dist/storage/visitorVariation.d.ts +9 -0
- package/dist/storage/visitorVariation.js +22 -0
- package/dist/storage/visitorVariation.js.map +1 -0
- package/dist/targeting/conditions/customDatum.d.ts +12 -0
- package/dist/targeting/conditions/customDatum.js +129 -0
- package/dist/targeting/conditions/customDatum.js.map +1 -0
- package/dist/targeting/conditions/exclusiveExperiment.d.ts +9 -0
- package/dist/targeting/conditions/exclusiveExperiment.js +45 -0
- package/dist/targeting/conditions/exclusiveExperiment.js.map +1 -0
- package/dist/targeting/conditions/targetExperiment.d.ts +14 -0
- package/dist/targeting/conditions/targetExperiment.js +57 -0
- package/dist/targeting/conditions/targetExperiment.js.map +1 -0
- package/dist/targeting/conditions/types.d.ts +12 -0
- package/dist/targeting/conditions/types.js +3 -0
- package/dist/targeting/conditions/types.js.map +1 -0
- package/dist/targeting/targetingCondition.d.ts +7 -0
- package/dist/targeting/targetingCondition.js +9 -0
- package/dist/targeting/targetingCondition.js.map +1 -0
- package/dist/targeting/targetingConditionsFactory.d.ts +7 -0
- package/dist/targeting/targetingConditionsFactory.js +30 -0
- package/dist/targeting/targetingConditionsFactory.js.map +1 -0
- package/dist/targeting/targetingData.d.ts +7 -0
- package/dist/targeting/targetingData.js +11 -0
- package/dist/targeting/targetingData.js.map +1 -0
- package/dist/targeting/targetingEngine.d.ts +6 -0
- package/dist/targeting/targetingEngine.js +130 -0
- package/dist/targeting/targetingEngine.js.map +1 -0
- package/dist/targeting/targetingSegment.d.ts +5 -0
- package/dist/targeting/targetingSegment.js +9 -0
- package/dist/targeting/targetingSegment.js.map +1 -0
- package/dist/targeting/targetingTree.d.ts +9 -0
- package/dist/targeting/targetingTree.js +13 -0
- package/dist/targeting/targetingTree.js.map +1 -0
- package/dist/targeting/targetingTreeBuilder.d.ts +8 -0
- package/dist/targeting/targetingTreeBuilder.js +127 -0
- package/dist/targeting/targetingTreeBuilder.js.map +1 -0
- package/dist/types.d.ts +5 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +39 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import TargetingCondition from '../targetingCondition';
|
|
2
|
+
import { TargetingConditionType } from './types';
|
|
3
|
+
export declare class ExclusiveExperiment extends TargetingCondition {
|
|
4
|
+
static readonly CONDITION_TYPE = "exclusiveExperiment";
|
|
5
|
+
include: boolean;
|
|
6
|
+
conditionType: string;
|
|
7
|
+
constructor();
|
|
8
|
+
check: (data: TargetingConditionType) => boolean;
|
|
9
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.ExclusiveExperiment = void 0;
|
|
22
|
+
var constants_1 = require("../../constants");
|
|
23
|
+
var targetingCondition_1 = __importDefault(require("../targetingCondition"));
|
|
24
|
+
var ExclusiveExperiment = /** @class */ (function (_super) {
|
|
25
|
+
__extends(ExclusiveExperiment, _super);
|
|
26
|
+
function ExclusiveExperiment() {
|
|
27
|
+
var _this = _super.call(this) || this;
|
|
28
|
+
_this.check = function (data) {
|
|
29
|
+
//need to return true if variation storage is empty or it has only single current experiment in the storage
|
|
30
|
+
var _a = data, currentExperimentId = _a.currentExperimentId, variationStorage = _a.variationStorage;
|
|
31
|
+
var isVariationStorageEmpty = !variationStorage || Object.keys(variationStorage).length === 0;
|
|
32
|
+
var isCurrentExperimentSingle = !isVariationStorageEmpty &&
|
|
33
|
+
Object.keys(variationStorage).length === 1 &&
|
|
34
|
+
(variationStorage === null || variationStorage === void 0 ? void 0 : variationStorage[currentExperimentId]) != null;
|
|
35
|
+
return isVariationStorageEmpty || isCurrentExperimentSingle;
|
|
36
|
+
};
|
|
37
|
+
_this.include = true;
|
|
38
|
+
_this.conditionType = constants_1.ConditionTypes.EXCLUSIVE_EXPERIMENT;
|
|
39
|
+
return _this;
|
|
40
|
+
}
|
|
41
|
+
ExclusiveExperiment.CONDITION_TYPE = 'exclusiveExperiment';
|
|
42
|
+
return ExclusiveExperiment;
|
|
43
|
+
}(targetingCondition_1.default));
|
|
44
|
+
exports.ExclusiveExperiment = ExclusiveExperiment;
|
|
45
|
+
//# sourceMappingURL=exclusiveExperiment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exclusiveExperiment.js","sourceRoot":"","sources":["../../../src/targeting/conditions/exclusiveExperiment.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,6CAAiD;AACjD,6EAAuD;AAMvD;IAAyC,uCAAkB;IAMzD;QAAA,YACE,iBAAO,SAIR;QAED,WAAK,GAAG,UAAC,IAA4B;YACnC,2GAA2G;YACrG,IAAA,KACJ,IAAwC,EADlC,mBAAmB,yBAAA,EAAE,gBAAgB,sBACH,CAAC;YAC3C,IAAM,uBAAuB,GAC3B,CAAC,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;YAClE,IAAM,yBAAyB,GAC7B,CAAC,uBAAuB;gBACxB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,KAAK,CAAC;gBAC1C,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAG,mBAAmB,CAAC,KAAI,IAAI,CAAC;YAClD,OAAO,uBAAuB,IAAI,yBAAyB,CAAC;QAC9D,CAAC,CAAC;QAfA,KAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,KAAI,CAAC,aAAa,GAAG,0BAAc,CAAC,oBAAoB,CAAC;;IAC3D,CAAC;IAVe,kCAAc,GAAG,qBAAqB,CAAC;IAwBzD,0BAAC;CAAA,AAzBD,CAAyC,4BAAkB,GAyB1D;AAzBY,kDAAmB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import TargetingCondition from '../targetingCondition';
|
|
2
|
+
import { TargetingConditionType } from './types';
|
|
3
|
+
export interface TargetExperimentConditionData {
|
|
4
|
+
variationStorage: Record<number, number> | null;
|
|
5
|
+
}
|
|
6
|
+
export declare class TargetExperiment extends TargetingCondition {
|
|
7
|
+
include: boolean;
|
|
8
|
+
conditionType: string;
|
|
9
|
+
experiment: number;
|
|
10
|
+
variation: number | undefined;
|
|
11
|
+
variationMatchType: string;
|
|
12
|
+
constructor(isInclude: boolean, experiment: number, variation: number | undefined, variationMatchType: string);
|
|
13
|
+
check: (data: TargetingConditionType) => boolean;
|
|
14
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.TargetExperiment = void 0;
|
|
22
|
+
var constants_1 = require("../../constants");
|
|
23
|
+
var targetingCondition_1 = __importDefault(require("../targetingCondition"));
|
|
24
|
+
var TargetExperiment = /** @class */ (function (_super) {
|
|
25
|
+
__extends(TargetExperiment, _super);
|
|
26
|
+
function TargetExperiment(isInclude, experiment, variation, variationMatchType) {
|
|
27
|
+
var _this = _super.call(this) || this;
|
|
28
|
+
_this.check = function (data) {
|
|
29
|
+
var targeting = false;
|
|
30
|
+
var variationStorage = data
|
|
31
|
+
.variationStorage;
|
|
32
|
+
var currentExperimentIdExist = variationStorage != null && variationStorage[_this.experiment] != null;
|
|
33
|
+
switch (_this.variationMatchType) {
|
|
34
|
+
case 'EXACT':
|
|
35
|
+
targeting =
|
|
36
|
+
currentExperimentIdExist &&
|
|
37
|
+
variationStorage[_this.experiment] === _this.variation;
|
|
38
|
+
break;
|
|
39
|
+
case 'ANY':
|
|
40
|
+
targeting = currentExperimentIdExist;
|
|
41
|
+
break;
|
|
42
|
+
default:
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
return targeting;
|
|
46
|
+
};
|
|
47
|
+
_this.include = isInclude;
|
|
48
|
+
_this.conditionType = constants_1.ConditionTypes.TARGET_EXPERIMENT;
|
|
49
|
+
_this.experiment = experiment;
|
|
50
|
+
_this.variation = variation;
|
|
51
|
+
_this.variationMatchType = variationMatchType;
|
|
52
|
+
return _this;
|
|
53
|
+
}
|
|
54
|
+
return TargetExperiment;
|
|
55
|
+
}(targetingCondition_1.default));
|
|
56
|
+
exports.TargetExperiment = TargetExperiment;
|
|
57
|
+
//# sourceMappingURL=targetExperiment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"targetExperiment.js","sourceRoot":"","sources":["../../../src/targeting/conditions/targetExperiment.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,6CAAiD;AACjD,6EAAuD;AAOvD;IAAsC,oCAAkB;IAOtD,0BACE,SAAkB,EAClB,UAAkB,EAClB,SAA6B,EAC7B,kBAA0B;QAJ5B,YAME,iBAAO,SAOR;QAED,WAAK,GAAG,UAAC,IAA4B;YACnC,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,IAAM,gBAAgB,GAAI,IAAsC;iBAC7D,gBAAgB,CAAC;YACpB,IAAM,wBAAwB,GAC5B,gBAAgB,IAAI,IAAI,IAAI,gBAAgB,CAAC,KAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;YACxE,QAAQ,KAAI,CAAC,kBAAkB,EAAE;gBAC/B,KAAK,OAAO;oBACV,SAAS;wBACP,wBAAwB;4BACxB,gBAAgB,CAAC,KAAI,CAAC,UAAU,CAAC,KAAK,KAAI,CAAC,SAAS,CAAC;oBACvD,MAAM;gBACR,KAAK,KAAK;oBACR,SAAS,GAAG,wBAAwB,CAAC;oBACrC,MAAM;gBACR;oBACE,MAAM;aACT;YACD,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC;QA1BA,KAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,KAAI,CAAC,aAAa,GAAG,0BAAc,CAAC,iBAAiB,CAAC;QACtD,KAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,KAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,KAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;;IAC/C,CAAC;IAsBH,uBAAC;AAAD,CAAC,AA1CD,CAAsC,4BAAkB,GA0CvD;AA1CY,4CAAgB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import TargetingData from '../targetingData';
|
|
2
|
+
export interface CustomDatumConditionData {
|
|
3
|
+
targetingData: TargetingData[];
|
|
4
|
+
}
|
|
5
|
+
export interface ExclusiveExperimentConditionData {
|
|
6
|
+
currentExperimentId: number;
|
|
7
|
+
variationStorage: Record<number, number> | null;
|
|
8
|
+
}
|
|
9
|
+
export interface TargetExperimentConditionData {
|
|
10
|
+
variationStorage: Record<number, number> | null;
|
|
11
|
+
}
|
|
12
|
+
export declare type TargetingConditionType = CustomDatumConditionData | ExclusiveExperimentConditionData | TargetExperimentConditionData | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/targeting/conditions/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { TargetingConditionType } from './conditions/types';
|
|
2
|
+
declare abstract class TargetingCondition {
|
|
3
|
+
abstract conditionType: string;
|
|
4
|
+
abstract include: boolean;
|
|
5
|
+
abstract check: (data: TargetingConditionType) => boolean;
|
|
6
|
+
}
|
|
7
|
+
export default TargetingCondition;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var TargetingCondition = /** @class */ (function () {
|
|
4
|
+
function TargetingCondition() {
|
|
5
|
+
}
|
|
6
|
+
return TargetingCondition;
|
|
7
|
+
}());
|
|
8
|
+
exports.default = TargetingCondition;
|
|
9
|
+
//# sourceMappingURL=targetingCondition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"targetingCondition.js","sourceRoot":"","sources":["../../src/targeting/targetingCondition.ts"],"names":[],"mappings":";;AAEA;IAAA;IAIA,CAAC;IAAD,yBAAC;AAAD,CAAC,AAJD,IAIC;AAED,kBAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import CustomDatum from './conditions/customDatum';
|
|
2
|
+
import { ExclusiveExperiment } from './conditions/exclusiveExperiment';
|
|
3
|
+
import { TargetExperiment } from './conditions/targetExperiment';
|
|
4
|
+
export declare class TargetingConditionsFactory {
|
|
5
|
+
getCondition(targetingConditionType: string, conditionData: any): CustomDatum | ExclusiveExperiment | TargetExperiment | null;
|
|
6
|
+
}
|
|
7
|
+
export default TargetingConditionsFactory;
|
|
@@ -0,0 +1,30 @@
|
|
|
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
|
+
exports.TargetingConditionsFactory = void 0;
|
|
7
|
+
var constants_1 = require("../constants");
|
|
8
|
+
var customDatum_1 = __importDefault(require("./conditions/customDatum"));
|
|
9
|
+
var exclusiveExperiment_1 = require("./conditions/exclusiveExperiment");
|
|
10
|
+
var targetExperiment_1 = require("./conditions/targetExperiment");
|
|
11
|
+
var TargetingConditionsFactory = /** @class */ (function () {
|
|
12
|
+
function TargetingConditionsFactory() {
|
|
13
|
+
}
|
|
14
|
+
TargetingConditionsFactory.prototype.getCondition = function (targetingConditionType, conditionData) {
|
|
15
|
+
switch (targetingConditionType) {
|
|
16
|
+
case constants_1.ConditionTypes.CUSTOM_DATUM:
|
|
17
|
+
return new customDatum_1.default(parseInt(conditionData.customDataIndex), conditionData.value, conditionData.isInclude, conditionData.valueMatchType);
|
|
18
|
+
case constants_1.ConditionTypes.EXCLUSIVE_EXPERIMENT:
|
|
19
|
+
return new exclusiveExperiment_1.ExclusiveExperiment();
|
|
20
|
+
case constants_1.ConditionTypes.TARGET_EXPERIMENT:
|
|
21
|
+
return new targetExperiment_1.TargetExperiment(conditionData.isInclude, conditionData.experiment, conditionData.variation, conditionData.variationMatchType);
|
|
22
|
+
default:
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
return TargetingConditionsFactory;
|
|
27
|
+
}());
|
|
28
|
+
exports.TargetingConditionsFactory = TargetingConditionsFactory;
|
|
29
|
+
exports.default = TargetingConditionsFactory;
|
|
30
|
+
//# sourceMappingURL=targetingConditionsFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"targetingConditionsFactory.js","sourceRoot":"","sources":["../../src/targeting/targetingConditionsFactory.ts"],"names":[],"mappings":";;;;;;AAAA,0CAA8C;AAC9C,yEAAmD;AACnD,wEAAuE;AACvE,kEAAiE;AAEjE;IAAA;IAuBA,CAAC;IAtBC,iDAAY,GAAZ,UAAa,sBAA8B,EAAE,aAAkB;QAC7D,QAAQ,sBAAsB,EAAE;YAC9B,KAAK,0BAAc,CAAC,YAAY;gBAC9B,OAAO,IAAI,qBAAW,CACpB,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC,EACvC,aAAa,CAAC,KAAK,EACnB,aAAa,CAAC,SAAS,EACvB,aAAa,CAAC,cAAc,CAC7B,CAAC;YACJ,KAAK,0BAAc,CAAC,oBAAoB;gBACtC,OAAO,IAAI,yCAAmB,EAAE,CAAC;YACnC,KAAK,0BAAc,CAAC,iBAAiB;gBACnC,OAAO,IAAI,mCAAgB,CACzB,aAAa,CAAC,SAAS,EACvB,aAAa,CAAC,UAAU,EACxB,aAAa,CAAC,SAAS,EACvB,aAAa,CAAC,kBAAkB,CACjC,CAAC;YACJ;gBACE,OAAO,IAAI,CAAC;SACf;IACH,CAAC;IACH,iCAAC;AAAD,CAAC,AAvBD,IAuBC;AAvBY,gEAA0B;AAyBvC,kBAAe,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var TargetingData = /** @class */ (function () {
|
|
4
|
+
function TargetingData(lastActivityTime, data) {
|
|
5
|
+
this.lastActivityTime = lastActivityTime;
|
|
6
|
+
this.data = data;
|
|
7
|
+
}
|
|
8
|
+
return TargetingData;
|
|
9
|
+
}());
|
|
10
|
+
exports.default = TargetingData;
|
|
11
|
+
//# sourceMappingURL=targetingData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"targetingData.js","sourceRoot":"","sources":["../../src/targeting/targetingData.ts"],"names":[],"mappings":";;AAEA;IAKE,uBAAY,gBAAwB,EAAE,IAAmB;QACvD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IACH,oBAAC;AAAD,CAAC,AATD,IASC;AAED,kBAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { TargetingConditionType } from './conditions/types';
|
|
2
|
+
import TargetingTree from './targetingTree';
|
|
3
|
+
export declare class TargetingEngine {
|
|
4
|
+
static checkTargetingTree: (targetingTree: TargetingTree | null | undefined, targetingData: (type: string) => TargetingConditionType) => boolean | null;
|
|
5
|
+
private static checkTargetingCondition;
|
|
6
|
+
}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TargetingEngine = void 0;
|
|
4
|
+
var TargetingEngine = /** @class */ (function () {
|
|
5
|
+
function TargetingEngine() {
|
|
6
|
+
}
|
|
7
|
+
var _a;
|
|
8
|
+
_a = TargetingEngine;
|
|
9
|
+
TargetingEngine.checkTargetingTree = function (targetingTree, targetingData) {
|
|
10
|
+
var result = null;
|
|
11
|
+
// checking if the tree has no targeting condition
|
|
12
|
+
if (null == targetingTree) {
|
|
13
|
+
result = true;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
// checking if the tree is a leaf
|
|
17
|
+
var targetingCondition = targetingTree.targetingCondition;
|
|
18
|
+
if (null != targetingCondition) {
|
|
19
|
+
result = _a.checkTargetingCondition(targetingCondition, targetingData);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
// computing left child result
|
|
23
|
+
var leftChildResult = _a.checkTargetingTree(targetingTree.leftChild, targetingData);
|
|
24
|
+
var mustComputeRightChildResult = false;
|
|
25
|
+
if (true == leftChildResult) {
|
|
26
|
+
if (!targetingTree.orOperator) {
|
|
27
|
+
mustComputeRightChildResult = true; // true AND anything, needs to know the anything
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
else if (false == leftChildResult) {
|
|
31
|
+
if (targetingTree.orOperator) {
|
|
32
|
+
mustComputeRightChildResult = true; // false OR anything, needs to know the anything
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
else if (null == leftChildResult) {
|
|
36
|
+
mustComputeRightChildResult = true; // (undefined OR anything) or (undefined AND anything), needs to know the anything
|
|
37
|
+
}
|
|
38
|
+
// computing right child result if we must do it
|
|
39
|
+
var rightChildResult = null;
|
|
40
|
+
if (mustComputeRightChildResult) {
|
|
41
|
+
rightChildResult = _a.checkTargetingTree(targetingTree.rightChild, targetingData);
|
|
42
|
+
}
|
|
43
|
+
// computing result
|
|
44
|
+
if (true == leftChildResult) {
|
|
45
|
+
if (targetingTree.orOperator) {
|
|
46
|
+
result = true; // true OR anything
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
if (true == rightChildResult) {
|
|
50
|
+
result = true; // true AND true
|
|
51
|
+
}
|
|
52
|
+
else if (false == rightChildResult) {
|
|
53
|
+
result = false; // true AND false
|
|
54
|
+
}
|
|
55
|
+
else if (null == rightChildResult) {
|
|
56
|
+
result = null; // true AND undefined
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else if (false == leftChildResult) {
|
|
61
|
+
if (targetingTree.orOperator) {
|
|
62
|
+
if (true == rightChildResult) {
|
|
63
|
+
result = true; // false OR true
|
|
64
|
+
}
|
|
65
|
+
else if (false == rightChildResult) {
|
|
66
|
+
result = false; // false OR false
|
|
67
|
+
}
|
|
68
|
+
else if (null == rightChildResult) {
|
|
69
|
+
result = null; // false OR undefined
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
result = false; // false AND anything
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
else if (null == leftChildResult) {
|
|
77
|
+
if (targetingTree.orOperator) {
|
|
78
|
+
if (true == rightChildResult) {
|
|
79
|
+
result = true; // undefined OR true
|
|
80
|
+
}
|
|
81
|
+
else if (false == rightChildResult) {
|
|
82
|
+
result = null; // undefined OR false
|
|
83
|
+
}
|
|
84
|
+
else if (null == rightChildResult) {
|
|
85
|
+
result = null; // undefined OR undefined
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
if (true == rightChildResult) {
|
|
90
|
+
result = null; // undefined AND true
|
|
91
|
+
}
|
|
92
|
+
else if (false == rightChildResult) {
|
|
93
|
+
result = false; // undefined AND false
|
|
94
|
+
}
|
|
95
|
+
else if (null == rightChildResult) {
|
|
96
|
+
result = null; // undefined AND undefined
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// returning result
|
|
103
|
+
return result;
|
|
104
|
+
};
|
|
105
|
+
// check targeting condition
|
|
106
|
+
TargetingEngine.checkTargetingCondition = function (targetingCondition, targetingData) {
|
|
107
|
+
var result = null;
|
|
108
|
+
// obtaining targeting
|
|
109
|
+
if (targetingCondition != null) {
|
|
110
|
+
result = targetingCondition.check(targetingData(targetingCondition.conditionType));
|
|
111
|
+
// correcting targeting result in the case an exclusion rule is asked for
|
|
112
|
+
if (true != targetingCondition.include) {
|
|
113
|
+
if (null == result) {
|
|
114
|
+
result = true;
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
result = !result;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
result = true;
|
|
123
|
+
}
|
|
124
|
+
// returning result
|
|
125
|
+
return result;
|
|
126
|
+
};
|
|
127
|
+
return TargetingEngine;
|
|
128
|
+
}());
|
|
129
|
+
exports.TargetingEngine = TargetingEngine;
|
|
130
|
+
//# sourceMappingURL=targetingEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"targetingEngine.js","sourceRoot":"","sources":["../../src/targeting/targetingEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var TargetingSegment = /** @class */ (function () {
|
|
4
|
+
function TargetingSegment() {
|
|
5
|
+
}
|
|
6
|
+
return TargetingSegment;
|
|
7
|
+
}());
|
|
8
|
+
exports.default = TargetingSegment;
|
|
9
|
+
//# sourceMappingURL=targetingSegment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"targetingSegment.js","sourceRoot":"","sources":["../../src/targeting/targetingSegment.ts"],"names":[],"mappings":";;AAEA;IAAA;IAGA,CAAC;IAAD,uBAAC;AAAD,CAAC,AAHD,IAGC;AAED,kBAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import TargetingCondition from './targetingCondition';
|
|
2
|
+
declare class TargetingTree {
|
|
3
|
+
orOperator?: boolean;
|
|
4
|
+
leftChild?: TargetingTree;
|
|
5
|
+
rightChild?: TargetingTree;
|
|
6
|
+
targetingCondition?: TargetingCondition;
|
|
7
|
+
constructor(orOperator?: boolean, leftChild?: TargetingTree, rightChild?: TargetingTree, targetingCondition?: TargetingCondition);
|
|
8
|
+
}
|
|
9
|
+
export default TargetingTree;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var TargetingTree = /** @class */ (function () {
|
|
4
|
+
function TargetingTree(orOperator, leftChild, rightChild, targetingCondition) {
|
|
5
|
+
this.orOperator = orOperator;
|
|
6
|
+
this.leftChild = leftChild;
|
|
7
|
+
this.rightChild = rightChild;
|
|
8
|
+
this.targetingCondition = targetingCondition;
|
|
9
|
+
}
|
|
10
|
+
return TargetingTree;
|
|
11
|
+
}());
|
|
12
|
+
exports.default = TargetingTree;
|
|
13
|
+
//# sourceMappingURL=targetingTree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"targetingTree.js","sourceRoot":"","sources":["../../src/targeting/targetingTree.ts"],"names":[],"mappings":";;AAEA;IAaE,uBACE,UAAoB,EACpB,SAAyB,EACzB,UAA0B,EAC1B,kBAAuC;QAEvC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IAC/C,CAAC;IACH,oBAAC;AAAD,CAAC,AAxBD,IAwBC;AAED,kBAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ConditionsInterface, IteratorInterface } from '../interfaces/interfaces';
|
|
2
|
+
declare class TargetingTreeBuilder {
|
|
3
|
+
static createTargetingTree: (conditions: ConditionsInterface) => any;
|
|
4
|
+
static createTargetingTreeFirstLevel: (firstLevelOrOperatorsIterator?: IteratorInterface, firstLevelIterator?: IteratorInterface) => any;
|
|
5
|
+
static createTargetingTreeSecondLevel: (secondLevelOrOperatorsIterator?: IteratorInterface, secondLevelConditionsIterator?: IteratorInterface) => any;
|
|
6
|
+
static createIterator(array: any[]): IteratorInterface;
|
|
7
|
+
}
|
|
8
|
+
export default TargetingTreeBuilder;
|
|
@@ -0,0 +1,127 @@
|
|
|
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 targetingConditionsFactory_1 = __importDefault(require("./targetingConditionsFactory"));
|
|
7
|
+
var targetingTree_1 = __importDefault(require("./targetingTree"));
|
|
8
|
+
var TargetingTreeBuilder = /** @class */ (function () {
|
|
9
|
+
function TargetingTreeBuilder() {
|
|
10
|
+
}
|
|
11
|
+
TargetingTreeBuilder.createIterator = function (array) {
|
|
12
|
+
var nextIndex = 0;
|
|
13
|
+
return {
|
|
14
|
+
hasNext: function () {
|
|
15
|
+
return nextIndex < array.length;
|
|
16
|
+
},
|
|
17
|
+
next: function () {
|
|
18
|
+
return array[nextIndex++];
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
TargetingTreeBuilder.createTargetingTree = function (conditions) {
|
|
23
|
+
if (conditions == null) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
var conditionsFirstLevel = [];
|
|
27
|
+
var jArrayConditionsFirstLevel = conditions.firstLevel;
|
|
28
|
+
if (jArrayConditionsFirstLevel != null) {
|
|
29
|
+
for (var i = 0; i < jArrayConditionsFirstLevel.length; i++) {
|
|
30
|
+
conditionsFirstLevel.push(jArrayConditionsFirstLevel[i]);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
var firstLevelIterator = TargetingTreeBuilder.createIterator(conditionsFirstLevel);
|
|
34
|
+
var firstLevelOrOperatorsIterator;
|
|
35
|
+
var firstLevelOrOperators = [];
|
|
36
|
+
var jArrayFirstLevelOrOperators = conditions.firstLevelOrOperators;
|
|
37
|
+
if (jArrayFirstLevelOrOperators != null) {
|
|
38
|
+
for (var j = 0; j < jArrayFirstLevelOrOperators.length; j++) {
|
|
39
|
+
firstLevelOrOperators.push(jArrayFirstLevelOrOperators[j]);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (firstLevelIterator.hasNext()) {
|
|
43
|
+
firstLevelOrOperatorsIterator = TargetingTreeBuilder.createIterator(firstLevelOrOperators);
|
|
44
|
+
}
|
|
45
|
+
return TargetingTreeBuilder.createTargetingTreeFirstLevel(firstLevelOrOperatorsIterator, firstLevelIterator);
|
|
46
|
+
};
|
|
47
|
+
TargetingTreeBuilder.createTargetingTreeFirstLevel = function (firstLevelOrOperatorsIterator, firstLevelIterator) {
|
|
48
|
+
if (firstLevelIterator && firstLevelIterator.hasNext()) {
|
|
49
|
+
var leftFirstLevelMap = firstLevelIterator.next();
|
|
50
|
+
var conditions = [];
|
|
51
|
+
var jArrayConditions = leftFirstLevelMap.conditions;
|
|
52
|
+
if (jArrayConditions != null) {
|
|
53
|
+
for (var i = 0; i < jArrayConditions.length; i++) {
|
|
54
|
+
conditions.push(jArrayConditions[i]);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
var orOperators = [];
|
|
58
|
+
var jArrayOrOperators = leftFirstLevelMap.orOperators;
|
|
59
|
+
if (jArrayOrOperators != null) {
|
|
60
|
+
for (var j = 0; j < jArrayOrOperators.length; j++) {
|
|
61
|
+
orOperators.push(jArrayOrOperators[j]);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
var leftChild = TargetingTreeBuilder.createTargetingTreeSecondLevel(TargetingTreeBuilder.createIterator(orOperators), TargetingTreeBuilder.createIterator(conditions));
|
|
65
|
+
if (firstLevelOrOperatorsIterator && firstLevelIterator.hasNext()) {
|
|
66
|
+
var orOperator = firstLevelOrOperatorsIterator.next();
|
|
67
|
+
if (orOperator) {
|
|
68
|
+
return new targetingTree_1.default(orOperator, leftChild, TargetingTreeBuilder.createTargetingTreeFirstLevel(firstLevelOrOperatorsIterator, firstLevelIterator));
|
|
69
|
+
}
|
|
70
|
+
var rightFirstLevelMap = firstLevelIterator.next();
|
|
71
|
+
var rightConditions = [];
|
|
72
|
+
var jArrayRightConditions = rightFirstLevelMap.conditions;
|
|
73
|
+
if (jArrayRightConditions != null) {
|
|
74
|
+
for (var k = 0; k < jArrayRightConditions.length; k++) {
|
|
75
|
+
rightConditions.push(jArrayRightConditions[k]);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
var rightOrOperators = [];
|
|
79
|
+
var jArrayRightOrOperators = rightFirstLevelMap.orOperators;
|
|
80
|
+
if (jArrayRightOrOperators != null) {
|
|
81
|
+
for (var p = 0; p < jArrayRightOrOperators.length; p++) {
|
|
82
|
+
rightOrOperators.push(jArrayRightOrOperators[p]);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
var rightChild = TargetingTreeBuilder.createTargetingTreeSecondLevel(TargetingTreeBuilder.createIterator(rightOrOperators), TargetingTreeBuilder.createIterator(rightConditions));
|
|
86
|
+
var leftAndRightChildren = new targetingTree_1.default(orOperator, leftChild, rightChild);
|
|
87
|
+
if (firstLevelIterator.hasNext()) {
|
|
88
|
+
return new targetingTree_1.default(firstLevelOrOperatorsIterator.next(), leftAndRightChildren, TargetingTreeBuilder.createTargetingTreeFirstLevel(firstLevelOrOperatorsIterator, firstLevelIterator));
|
|
89
|
+
}
|
|
90
|
+
return leftAndRightChildren;
|
|
91
|
+
}
|
|
92
|
+
return leftChild;
|
|
93
|
+
}
|
|
94
|
+
return null;
|
|
95
|
+
};
|
|
96
|
+
TargetingTreeBuilder.createTargetingTreeSecondLevel = function (secondLevelOrOperatorsIterator, secondLevelConditionsIterator) {
|
|
97
|
+
if (secondLevelConditionsIterator &&
|
|
98
|
+
secondLevelConditionsIterator.hasNext()) {
|
|
99
|
+
var condition = secondLevelConditionsIterator.next();
|
|
100
|
+
var targetingConditionsFactory = new targetingConditionsFactory_1.default();
|
|
101
|
+
var targetingCondition = targetingConditionsFactory.getCondition(condition.targetingType, condition);
|
|
102
|
+
var leftChild = new targetingTree_1.default();
|
|
103
|
+
leftChild.targetingCondition = targetingCondition;
|
|
104
|
+
if (secondLevelOrOperatorsIterator &&
|
|
105
|
+
secondLevelOrOperatorsIterator.hasNext()) {
|
|
106
|
+
var orOperator = secondLevelOrOperatorsIterator.next();
|
|
107
|
+
if (orOperator) {
|
|
108
|
+
return new targetingTree_1.default(orOperator, leftChild, TargetingTreeBuilder.createTargetingTreeSecondLevel(secondLevelOrOperatorsIterator, secondLevelConditionsIterator));
|
|
109
|
+
}
|
|
110
|
+
var rightCondition = secondLevelConditionsIterator.next();
|
|
111
|
+
var rightTargetingCondition = targetingConditionsFactory.getCondition(rightCondition.targetingType, rightCondition);
|
|
112
|
+
var rightChild = new targetingTree_1.default();
|
|
113
|
+
rightChild.targetingCondition = rightTargetingCondition;
|
|
114
|
+
var leftAndRightChildren = new targetingTree_1.default(orOperator, leftChild, rightChild);
|
|
115
|
+
if (secondLevelConditionsIterator.hasNext()) {
|
|
116
|
+
return new targetingTree_1.default(secondLevelOrOperatorsIterator.next(), leftAndRightChildren, TargetingTreeBuilder.createTargetingTreeSecondLevel(secondLevelOrOperatorsIterator, secondLevelConditionsIterator));
|
|
117
|
+
}
|
|
118
|
+
return leftAndRightChildren;
|
|
119
|
+
}
|
|
120
|
+
return leftChild;
|
|
121
|
+
}
|
|
122
|
+
return null;
|
|
123
|
+
};
|
|
124
|
+
return TargetingTreeBuilder;
|
|
125
|
+
}());
|
|
126
|
+
exports.default = TargetingTreeBuilder;
|
|
127
|
+
//# sourceMappingURL=targetingTreeBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"targetingTreeBuilder.js","sourceRoot":"","sources":["../../src/targeting/targetingTreeBuilder.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|