@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.
Files changed (107) hide show
  1. package/README.md +8 -0
  2. package/dist/configurations/configuration.d.ts +15 -0
  3. package/dist/configurations/configuration.js +31 -0
  4. package/dist/configurations/configuration.js.map +1 -0
  5. package/dist/configurations/experiment.d.ts +13 -0
  6. package/dist/configurations/experiment.js +54 -0
  7. package/dist/configurations/experiment.js.map +1 -0
  8. package/dist/configurations/featureFlag.d.ts +23 -0
  9. package/dist/configurations/featureFlag.js +105 -0
  10. package/dist/configurations/featureFlag.js.map +1 -0
  11. package/dist/configurations/variation.d.ts +15 -0
  12. package/dist/configurations/variation.js +14 -0
  13. package/dist/configurations/variation.js.map +1 -0
  14. package/dist/constants.d.ts +17 -0
  15. package/dist/constants.js +23 -0
  16. package/dist/constants.js.map +1 -0
  17. package/dist/data.d.ts +67 -0
  18. package/dist/data.js +127 -0
  19. package/dist/data.js.map +1 -0
  20. package/dist/exceptions/credentialsNotFound.d.ts +6 -0
  21. package/dist/exceptions/credentialsNotFound.js +29 -0
  22. package/dist/exceptions/credentialsNotFound.js.map +1 -0
  23. package/dist/exceptions/experimentConfigurationNotFound.d.ts +6 -0
  24. package/dist/exceptions/experimentConfigurationNotFound.js +29 -0
  25. package/dist/exceptions/experimentConfigurationNotFound.js.map +1 -0
  26. package/dist/exceptions/featureConfigurationNotFound.d.ts +6 -0
  27. package/dist/exceptions/featureConfigurationNotFound.js +29 -0
  28. package/dist/exceptions/featureConfigurationNotFound.js.map +1 -0
  29. package/dist/exceptions/notActivated.d.ts +6 -0
  30. package/dist/exceptions/notActivated.js +29 -0
  31. package/dist/exceptions/notActivated.js.map +1 -0
  32. package/dist/exceptions/notTargeted.d.ts +6 -0
  33. package/dist/exceptions/notTargeted.js +29 -0
  34. package/dist/exceptions/notTargeted.js.map +1 -0
  35. package/dist/exceptions/siteCodeDisabled.d.ts +5 -0
  36. package/dist/exceptions/siteCodeDisabled.js +30 -0
  37. package/dist/exceptions/siteCodeDisabled.js.map +1 -0
  38. package/dist/exceptions/variationConfigurationNotFound.d.ts +6 -0
  39. package/dist/exceptions/variationConfigurationNotFound.js +29 -0
  40. package/dist/exceptions/variationConfigurationNotFound.js.map +1 -0
  41. package/dist/exceptions/visitorCodeNotValid.d.ts +5 -0
  42. package/dist/exceptions/visitorCodeNotValid.js +30 -0
  43. package/dist/exceptions/visitorCodeNotValid.js.map +1 -0
  44. package/dist/index.d.ts +3 -0
  45. package/dist/index.js +11 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/interfaces/interfaces.d.ts +81 -0
  48. package/dist/interfaces/interfaces.js +3 -0
  49. package/dist/interfaces/interfaces.js.map +1 -0
  50. package/dist/kameleoonClient.d.ts +102 -0
  51. package/dist/kameleoonClient.js +732 -0
  52. package/dist/kameleoonClient.js.map +1 -0
  53. package/dist/kameleoonUtils.d.ts +11 -0
  54. package/dist/kameleoonUtils.js +107 -0
  55. package/dist/kameleoonUtils.js.map +1 -0
  56. package/dist/nonce.d.ts +1 -0
  57. package/dist/nonce.js +16 -0
  58. package/dist/nonce.js.map +1 -0
  59. package/dist/realTimeConfigurationService.d.ts +12 -0
  60. package/dist/realTimeConfigurationService.js +24 -0
  61. package/dist/realTimeConfigurationService.js.map +1 -0
  62. package/dist/storage/types.d.ts +13 -0
  63. package/dist/storage/types.js +3 -0
  64. package/dist/storage/types.js.map +1 -0
  65. package/dist/storage/variationStorage.d.ts +11 -0
  66. package/dist/storage/variationStorage.js +159 -0
  67. package/dist/storage/variationStorage.js.map +1 -0
  68. package/dist/storage/visitorVariation.d.ts +9 -0
  69. package/dist/storage/visitorVariation.js +22 -0
  70. package/dist/storage/visitorVariation.js.map +1 -0
  71. package/dist/targeting/conditions/customDatum.d.ts +12 -0
  72. package/dist/targeting/conditions/customDatum.js +129 -0
  73. package/dist/targeting/conditions/customDatum.js.map +1 -0
  74. package/dist/targeting/conditions/exclusiveExperiment.d.ts +9 -0
  75. package/dist/targeting/conditions/exclusiveExperiment.js +45 -0
  76. package/dist/targeting/conditions/exclusiveExperiment.js.map +1 -0
  77. package/dist/targeting/conditions/targetExperiment.d.ts +14 -0
  78. package/dist/targeting/conditions/targetExperiment.js +57 -0
  79. package/dist/targeting/conditions/targetExperiment.js.map +1 -0
  80. package/dist/targeting/conditions/types.d.ts +12 -0
  81. package/dist/targeting/conditions/types.js +3 -0
  82. package/dist/targeting/conditions/types.js.map +1 -0
  83. package/dist/targeting/targetingCondition.d.ts +7 -0
  84. package/dist/targeting/targetingCondition.js +9 -0
  85. package/dist/targeting/targetingCondition.js.map +1 -0
  86. package/dist/targeting/targetingConditionsFactory.d.ts +7 -0
  87. package/dist/targeting/targetingConditionsFactory.js +30 -0
  88. package/dist/targeting/targetingConditionsFactory.js.map +1 -0
  89. package/dist/targeting/targetingData.d.ts +7 -0
  90. package/dist/targeting/targetingData.js +11 -0
  91. package/dist/targeting/targetingData.js.map +1 -0
  92. package/dist/targeting/targetingEngine.d.ts +6 -0
  93. package/dist/targeting/targetingEngine.js +130 -0
  94. package/dist/targeting/targetingEngine.js.map +1 -0
  95. package/dist/targeting/targetingSegment.d.ts +5 -0
  96. package/dist/targeting/targetingSegment.js +9 -0
  97. package/dist/targeting/targetingSegment.js.map +1 -0
  98. package/dist/targeting/targetingTree.d.ts +9 -0
  99. package/dist/targeting/targetingTree.js +13 -0
  100. package/dist/targeting/targetingTree.js.map +1 -0
  101. package/dist/targeting/targetingTreeBuilder.d.ts +8 -0
  102. package/dist/targeting/targetingTreeBuilder.js +127 -0
  103. package/dist/targeting/targetingTreeBuilder.js.map +1 -0
  104. package/dist/types.d.ts +5 -0
  105. package/dist/types.js +3 -0
  106. package/dist/types.js.map +1 -0
  107. 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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -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,7 @@
1
+ import { DataInterface } from '../interfaces/interfaces';
2
+ declare class TargetingData {
3
+ lastActivityTime: number;
4
+ data: DataInterface;
5
+ constructor(lastActivityTime: number, data: DataInterface);
6
+ }
7
+ export default TargetingData;
@@ -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":";;;AAIA;IAAA;IA8HA,CAAC;;;IA7HQ,kCAAkB,GAAG,UAC1B,aAA+C,EAC/C,aAAuD;QAEvD,IAAI,MAAM,GAAG,IAAI,CAAC;QAElB,kDAAkD;QAClD,IAAI,IAAI,IAAI,aAAa,EAAE;YACzB,MAAM,GAAG,IAAI,CAAC;SACf;aAAM;YACL,iCAAiC;YACjC,IAAM,kBAAkB,GAAG,aAAa,CAAC,kBAAkB,CAAC;YAC5D,IAAI,IAAI,IAAI,kBAAkB,EAAE;gBAC9B,MAAM,GAAG,EAAI,CAAC,uBAAuB,CACnC,kBAAkB,EAClB,aAAa,CACd,CAAC;aACH;iBAAM;gBACL,8BAA8B;gBAC9B,IAAM,eAAe,GAAG,EAAI,CAAC,kBAAkB,CAC7C,aAAa,CAAC,SAAS,EACvB,aAAa,CACd,CAAC;gBAEF,IAAI,2BAA2B,GAAG,KAAK,CAAC;gBAExC,IAAI,IAAI,IAAI,eAAe,EAAE;oBAC3B,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;wBAC7B,2BAA2B,GAAG,IAAI,CAAC,CAAC,gDAAgD;qBACrF;iBACF;qBAAM,IAAI,KAAK,IAAI,eAAe,EAAE;oBACnC,IAAI,aAAa,CAAC,UAAU,EAAE;wBAC5B,2BAA2B,GAAG,IAAI,CAAC,CAAC,gDAAgD;qBACrF;iBACF;qBAAM,IAAI,IAAI,IAAI,eAAe,EAAE;oBAClC,2BAA2B,GAAG,IAAI,CAAC,CAAC,kFAAkF;iBACvH;gBAED,gDAAgD;gBAChD,IAAI,gBAAgB,GAAG,IAAI,CAAC;gBAC5B,IAAI,2BAA2B,EAAE;oBAC/B,gBAAgB,GAAG,EAAI,CAAC,kBAAkB,CACxC,aAAa,CAAC,UAAU,EACxB,aAAa,CACd,CAAC;iBACH;gBAED,mBAAmB;gBACnB,IAAI,IAAI,IAAI,eAAe,EAAE;oBAC3B,IAAI,aAAa,CAAC,UAAU,EAAE;wBAC5B,MAAM,GAAG,IAAI,CAAC,CAAC,mBAAmB;qBACnC;yBAAM;wBACL,IAAI,IAAI,IAAI,gBAAgB,EAAE;4BAC5B,MAAM,GAAG,IAAI,CAAC,CAAC,gBAAgB;yBAChC;6BAAM,IAAI,KAAK,IAAI,gBAAgB,EAAE;4BACpC,MAAM,GAAG,KAAK,CAAC,CAAC,iBAAiB;yBAClC;6BAAM,IAAI,IAAI,IAAI,gBAAgB,EAAE;4BACnC,MAAM,GAAG,IAAI,CAAC,CAAC,qBAAqB;yBACrC;qBACF;iBACF;qBAAM,IAAI,KAAK,IAAI,eAAe,EAAE;oBACnC,IAAI,aAAa,CAAC,UAAU,EAAE;wBAC5B,IAAI,IAAI,IAAI,gBAAgB,EAAE;4BAC5B,MAAM,GAAG,IAAI,CAAC,CAAC,gBAAgB;yBAChC;6BAAM,IAAI,KAAK,IAAI,gBAAgB,EAAE;4BACpC,MAAM,GAAG,KAAK,CAAC,CAAC,iBAAiB;yBAClC;6BAAM,IAAI,IAAI,IAAI,gBAAgB,EAAE;4BACnC,MAAM,GAAG,IAAI,CAAC,CAAC,qBAAqB;yBACrC;qBACF;yBAAM;wBACL,MAAM,GAAG,KAAK,CAAC,CAAC,qBAAqB;qBACtC;iBACF;qBAAM,IAAI,IAAI,IAAI,eAAe,EAAE;oBAClC,IAAI,aAAa,CAAC,UAAU,EAAE;wBAC5B,IAAI,IAAI,IAAI,gBAAgB,EAAE;4BAC5B,MAAM,GAAG,IAAI,CAAC,CAAC,oBAAoB;yBACpC;6BAAM,IAAI,KAAK,IAAI,gBAAgB,EAAE;4BACpC,MAAM,GAAG,IAAI,CAAC,CAAC,qBAAqB;yBACrC;6BAAM,IAAI,IAAI,IAAI,gBAAgB,EAAE;4BACnC,MAAM,GAAG,IAAI,CAAC,CAAC,yBAAyB;yBACzC;qBACF;yBAAM;wBACL,IAAI,IAAI,IAAI,gBAAgB,EAAE;4BAC5B,MAAM,GAAG,IAAI,CAAC,CAAC,qBAAqB;yBACrC;6BAAM,IAAI,KAAK,IAAI,gBAAgB,EAAE;4BACpC,MAAM,GAAG,KAAK,CAAC,CAAC,sBAAsB;yBACvC;6BAAM,IAAI,IAAI,IAAI,gBAAgB,EAAE;4BACnC,MAAM,GAAG,IAAI,CAAC,CAAC,0BAA0B;yBAC1C;qBACF;iBACF;aACF;SACF;QACD,mBAAmB;QACnB,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,4BAA4B;IACb,uCAAuB,GAAG,UACvC,kBAAsC,EACtC,aAAoC;QAEpC,IAAI,MAAM,GAAG,IAAI,CAAC;QAElB,sBAAsB;QACtB,IAAI,kBAAkB,IAAI,IAAI,EAAE;YAC9B,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAC/B,aAAa,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAChD,CAAC;YAEF,yEAAyE;YACzE,IAAI,IAAI,IAAI,kBAAkB,CAAC,OAAO,EAAE;gBACtC,IAAI,IAAI,IAAI,MAAM,EAAE;oBAClB,MAAM,GAAG,IAAI,CAAC;iBACf;qBAAM;oBACL,MAAM,GAAG,CAAC,MAAM,CAAC;iBAClB;aACF;SACF;aAAM;YACL,MAAM,GAAG,IAAI,CAAC;SACf;QAED,mBAAmB;QACnB,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IACJ,sBAAC;CAAA,AA9HD,IA8HC;AA9HY,0CAAe"}
@@ -0,0 +1,5 @@
1
+ import TargetingTree from './targetingTree';
2
+ declare class TargetingSegment {
3
+ targetingTree?: TargetingTree;
4
+ }
5
+ export default TargetingSegment;
@@ -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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"}
@@ -0,0 +1,5 @@
1
+ declare type JSONValue = string | number | boolean | {
2
+ [x: string]: JSONValue;
3
+ } | JSONValue[];
4
+ export declare type CustomJsonType = Record<string | number | symbol, JSONValue> | null;
5
+ export {};
package/dist/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}