@kameleoon/javascript-sdk-core 2.10.0 → 3.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/dist/cacheManager/cacheManager.d.ts +38 -0
- package/dist/cacheManager/cacheManager.js +2 -0
- package/dist/cacheManager/cacheManager.js.map +1 -0
- package/dist/cacheManager/index.d.ts +2 -0
- package/dist/cacheManager/index.js +2 -0
- package/dist/cacheManager/index.js.map +1 -0
- package/dist/cacheManager/types.d.ts +14 -0
- package/dist/cacheManager/types.js +2 -0
- package/dist/cacheManager/types.js.map +1 -0
- package/dist/clientConfiguration/clientConfiguration.d.ts +52 -0
- package/dist/clientConfiguration/clientConfiguration.js +2 -0
- package/dist/clientConfiguration/clientConfiguration.js.map +1 -0
- package/dist/clientConfiguration/constants.d.ts +2 -0
- package/dist/clientConfiguration/constants.js +2 -0
- package/dist/clientConfiguration/constants.js.map +1 -0
- package/dist/clientConfiguration/index.d.ts +2 -0
- package/dist/clientConfiguration/index.js +2 -0
- package/dist/clientConfiguration/index.js.map +1 -0
- package/dist/clientConfiguration/types.d.ts +114 -0
- package/dist/clientConfiguration/types.js +2 -0
- package/dist/clientConfiguration/types.js.map +1 -0
- package/dist/clientSettings/clientSettings.d.ts +12 -0
- package/dist/clientSettings/clientSettings.js +2 -0
- package/dist/clientSettings/clientSettings.js.map +1 -0
- package/dist/clientSettings/index.d.ts +2 -0
- package/dist/clientSettings/index.js +2 -0
- package/dist/clientSettings/index.js.map +1 -0
- package/dist/clientSettings/types.d.ts +6 -0
- package/dist/clientSettings/types.js +2 -0
- package/dist/clientSettings/types.js.map +1 -0
- package/dist/constants.d.ts +34 -0
- package/dist/constants.js +2 -0
- package/dist/constants.js.map +1 -0
- package/dist/eventSource/constants.d.ts +1 -0
- package/dist/eventSource/constants.js +2 -0
- package/dist/eventSource/constants.js.map +1 -0
- package/dist/eventSource/externalEventSource.d.ts +12 -0
- package/dist/eventSource/externalEventSource.js +2 -0
- package/dist/eventSource/externalEventSource.js.map +1 -0
- package/dist/eventSource/index.d.ts +3 -0
- package/dist/eventSource/index.js +2 -0
- package/dist/eventSource/index.js.map +1 -0
- package/dist/eventSource/types.d.ts +47 -0
- package/dist/eventSource/types.js +2 -0
- package/dist/eventSource/types.js.map +1 -0
- package/dist/hasher/hasher.d.ts +5 -0
- package/dist/hasher/hasher.js +2 -0
- package/dist/hasher/hasher.js.map +1 -0
- package/dist/hasher/index.d.ts +1 -0
- package/dist/hasher/index.js +2 -0
- package/dist/hasher/index.js.map +1 -0
- package/dist/hasher/types.d.ts +5 -0
- package/dist/hasher/types.js +2 -0
- package/dist/hasher/types.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/kameleoonClient.d.ts +231 -0
- package/dist/kameleoonClient.js +2 -0
- package/dist/kameleoonClient.js.map +1 -0
- package/dist/kameleoonData/applicationVersion.d.ts +26 -0
- package/dist/kameleoonData/applicationVersion.js +2 -0
- package/dist/kameleoonData/applicationVersion.js.map +1 -0
- package/dist/kameleoonData/browser.d.ts +41 -0
- package/dist/kameleoonData/browser.js +2 -0
- package/dist/kameleoonData/browser.js.map +1 -0
- package/dist/kameleoonData/constants.d.ts +4 -0
- package/dist/kameleoonData/constants.js +2 -0
- package/dist/kameleoonData/constants.js.map +1 -0
- package/dist/kameleoonData/conversion.d.ts +36 -0
- package/dist/kameleoonData/conversion.js +2 -0
- package/dist/kameleoonData/conversion.js.map +1 -0
- package/dist/kameleoonData/cookie.d.ts +33 -0
- package/dist/kameleoonData/cookie.js +2 -0
- package/dist/kameleoonData/cookie.js.map +1 -0
- package/dist/kameleoonData/customData.d.ts +46 -0
- package/dist/kameleoonData/customData.js +2 -0
- package/dist/kameleoonData/customData.js.map +1 -0
- package/dist/kameleoonData/dataManager.d.ts +38 -0
- package/dist/kameleoonData/dataManager.js +2 -0
- package/dist/kameleoonData/dataManager.js.map +1 -0
- package/dist/kameleoonData/dataProcessor.d.ts +26 -0
- package/dist/kameleoonData/dataProcessor.js +2 -0
- package/dist/kameleoonData/dataProcessor.js.map +1 -0
- package/dist/kameleoonData/device.d.ts +34 -0
- package/dist/kameleoonData/device.js +2 -0
- package/dist/kameleoonData/device.js.map +1 -0
- package/dist/kameleoonData/geolocation.d.ts +52 -0
- package/dist/kameleoonData/geolocation.js +2 -0
- package/dist/kameleoonData/geolocation.js.map +1 -0
- package/dist/kameleoonData/helpers.d.ts +1 -0
- package/dist/kameleoonData/helpers.js +2 -0
- package/dist/kameleoonData/helpers.js.map +1 -0
- package/dist/kameleoonData/index.d.ts +14 -0
- package/dist/kameleoonData/index.js +2 -0
- package/dist/kameleoonData/index.js.map +1 -0
- package/dist/kameleoonData/operatingSystem.d.ts +34 -0
- package/dist/kameleoonData/operatingSystem.js +2 -0
- package/dist/kameleoonData/operatingSystem.js.map +1 -0
- package/dist/kameleoonData/pageView.d.ts +42 -0
- package/dist/kameleoonData/pageView.js +2 -0
- package/dist/kameleoonData/pageView.js.map +1 -0
- package/dist/kameleoonData/types.d.ts +226 -0
- package/dist/kameleoonData/types.js +2 -0
- package/dist/kameleoonData/types.js.map +1 -0
- package/dist/kameleoonData/userAgent.d.ts +23 -0
- package/dist/kameleoonData/userAgent.js +2 -0
- package/dist/kameleoonData/userAgent.js.map +1 -0
- package/dist/kameleoonData/visitsData.d.ts +34 -0
- package/dist/kameleoonData/visitsData.js +2 -0
- package/dist/kameleoonData/visitsData.js.map +1 -0
- package/dist/kameleoonError/constants.d.ts +28 -0
- package/dist/kameleoonError/constants.js +2 -0
- package/dist/kameleoonError/constants.js.map +1 -0
- package/dist/kameleoonError/helpers.d.ts +1 -0
- package/dist/kameleoonError/helpers.js +2 -0
- package/dist/kameleoonError/helpers.js.map +1 -0
- package/dist/kameleoonError/index.d.ts +3 -0
- package/dist/kameleoonError/index.js +2 -0
- package/dist/kameleoonError/index.js.map +1 -0
- package/dist/kameleoonError/kameleoonError.d.ts +26 -0
- package/dist/kameleoonError/kameleoonError.js +2 -0
- package/dist/kameleoonError/kameleoonError.js.map +1 -0
- package/dist/kameleoonError/types.d.ts +30 -0
- package/dist/kameleoonError/types.js +2 -0
- package/dist/kameleoonError/types.js.map +1 -0
- package/dist/kameleoonUtils.d.ts +13 -0
- package/dist/kameleoonUtils.js +2 -0
- package/dist/kameleoonUtils.js.map +1 -0
- package/dist/requester/constants.d.ts +18 -0
- package/dist/requester/constants.js +2 -0
- package/dist/requester/constants.js.map +1 -0
- package/dist/requester/index.d.ts +3 -0
- package/dist/requester/index.js +2 -0
- package/dist/requester/index.js.map +1 -0
- package/dist/requester/requester.d.ts +24 -0
- package/dist/requester/requester.js +2 -0
- package/dist/requester/requester.js.map +1 -0
- package/dist/requester/types.d.ts +165 -0
- package/dist/requester/types.js +2 -0
- package/dist/requester/types.js.map +1 -0
- package/dist/storage/constants.d.ts +11 -0
- package/dist/storage/constants.js +2 -0
- package/dist/storage/constants.js.map +1 -0
- package/dist/storage/index.d.ts +2 -0
- package/dist/storage/index.js +2 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/types.d.ts +65 -0
- package/dist/storage/types.js +2 -0
- package/dist/storage/types.js.map +1 -0
- package/dist/targeting/conditions/applicationVersion.d.ts +10 -0
- package/dist/targeting/conditions/applicationVersion.js +2 -0
- package/dist/targeting/conditions/applicationVersion.js.map +1 -0
- package/dist/targeting/conditions/browser.d.ts +13 -0
- package/dist/targeting/conditions/browser.js +2 -0
- package/dist/targeting/conditions/browser.js.map +1 -0
- package/dist/targeting/conditions/conditionFactory.d.ts +6 -0
- package/dist/targeting/conditions/conditionFactory.js +2 -0
- package/dist/targeting/conditions/conditionFactory.js.map +1 -0
- package/dist/targeting/conditions/conversion.d.ts +9 -0
- package/dist/targeting/conditions/conversion.js +2 -0
- package/dist/targeting/conditions/conversion.js.map +1 -0
- package/dist/targeting/conditions/cookie.d.ts +15 -0
- package/dist/targeting/conditions/cookie.js +2 -0
- package/dist/targeting/conditions/cookie.js.map +1 -0
- package/dist/targeting/conditions/customData.d.ts +14 -0
- package/dist/targeting/conditions/customData.js +2 -0
- package/dist/targeting/conditions/customData.js.map +1 -0
- package/dist/targeting/conditions/device.d.ts +9 -0
- package/dist/targeting/conditions/device.js +2 -0
- package/dist/targeting/conditions/device.js.map +1 -0
- package/dist/targeting/conditions/exclusiveCampaign.d.ts +7 -0
- package/dist/targeting/conditions/exclusiveCampaign.js +2 -0
- package/dist/targeting/conditions/exclusiveCampaign.js.map +1 -0
- package/dist/targeting/conditions/firstVisit.d.ts +12 -0
- package/dist/targeting/conditions/firstVisit.js +2 -0
- package/dist/targeting/conditions/firstVisit.js.map +1 -0
- package/dist/targeting/conditions/geolocation.d.ts +11 -0
- package/dist/targeting/conditions/geolocation.js +2 -0
- package/dist/targeting/conditions/geolocation.js.map +1 -0
- package/dist/targeting/conditions/index.d.ts +24 -0
- package/dist/targeting/conditions/index.js +2 -0
- package/dist/targeting/conditions/index.js.map +1 -0
- package/dist/targeting/conditions/lastVisit.d.ts +12 -0
- package/dist/targeting/conditions/lastVisit.js +2 -0
- package/dist/targeting/conditions/lastVisit.js.map +1 -0
- package/dist/targeting/conditions/newVisitor.d.ts +9 -0
- package/dist/targeting/conditions/newVisitor.js +2 -0
- package/dist/targeting/conditions/newVisitor.js.map +1 -0
- package/dist/targeting/conditions/operatingSystem.d.ts +9 -0
- package/dist/targeting/conditions/operatingSystem.js +2 -0
- package/dist/targeting/conditions/operatingSystem.js.map +1 -0
- package/dist/targeting/conditions/pageTitle.d.ts +11 -0
- package/dist/targeting/conditions/pageTitle.js +2 -0
- package/dist/targeting/conditions/pageTitle.js.map +1 -0
- package/dist/targeting/conditions/pageUrl.d.ts +11 -0
- package/dist/targeting/conditions/pageUrl.js +2 -0
- package/dist/targeting/conditions/pageUrl.js.map +1 -0
- package/dist/targeting/conditions/previousPage.d.ts +12 -0
- package/dist/targeting/conditions/previousPage.js +2 -0
- package/dist/targeting/conditions/previousPage.js.map +1 -0
- package/dist/targeting/conditions/sameDayVisits.d.ts +11 -0
- package/dist/targeting/conditions/sameDayVisits.js +2 -0
- package/dist/targeting/conditions/sameDayVisits.js.map +1 -0
- package/dist/targeting/conditions/sdkLanguage.d.ts +12 -0
- package/dist/targeting/conditions/sdkLanguage.js +2 -0
- package/dist/targeting/conditions/sdkLanguage.js.map +1 -0
- package/dist/targeting/conditions/segment.d.ts +9 -0
- package/dist/targeting/conditions/segment.js +2 -0
- package/dist/targeting/conditions/segment.js.map +1 -0
- package/dist/targeting/conditions/targetFeatureFlag.d.ts +11 -0
- package/dist/targeting/conditions/targetFeatureFlag.js +2 -0
- package/dist/targeting/conditions/targetFeatureFlag.js.map +1 -0
- package/dist/targeting/conditions/types.d.ts +49 -0
- package/dist/targeting/conditions/types.js +2 -0
- package/dist/targeting/conditions/types.js.map +1 -0
- package/dist/targeting/conditions/visitedPages.d.ts +11 -0
- package/dist/targeting/conditions/visitedPages.js +2 -0
- package/dist/targeting/conditions/visitedPages.js.map +1 -0
- package/dist/targeting/conditions/visitorCode.d.ts +11 -0
- package/dist/targeting/conditions/visitorCode.js +2 -0
- package/dist/targeting/conditions/visitorCode.js.map +1 -0
- package/dist/targeting/conditions/visits.d.ts +11 -0
- package/dist/targeting/conditions/visits.js +2 -0
- package/dist/targeting/conditions/visits.js.map +1 -0
- package/dist/targeting/index.d.ts +3 -0
- package/dist/targeting/index.js +2 -0
- package/dist/targeting/index.js.map +1 -0
- package/dist/targeting/node.d.ts +23 -0
- package/dist/targeting/node.js +2 -0
- package/dist/targeting/node.js.map +1 -0
- package/dist/targeting/tree.d.ts +22 -0
- package/dist/targeting/tree.js +2 -0
- package/dist/targeting/tree.js.map +1 -0
- package/dist/targeting/types.d.ts +164 -0
- package/dist/targeting/types.js +2 -0
- package/dist/targeting/types.js.map +1 -0
- package/dist/types.d.ts +200 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utilities/constants.d.ts +2 -0
- package/dist/utilities/constants.js +2 -0
- package/dist/utilities/constants.js.map +1 -0
- package/dist/utilities/index.d.ts +3 -0
- package/dist/utilities/index.js +2 -0
- package/dist/utilities/index.js.map +1 -0
- package/dist/utilities/types.d.ts +119 -0
- package/dist/utilities/types.js +2 -0
- package/dist/utilities/types.js.map +1 -0
- package/dist/utilities/utilities.d.ts +40 -0
- package/dist/utilities/utilities.js +2 -0
- package/dist/utilities/utilities.js.map +1 -0
- package/dist/variationConfiguration/index.d.ts +2 -0
- package/dist/variationConfiguration/index.js +2 -0
- package/dist/variationConfiguration/index.js.map +1 -0
- package/dist/variationConfiguration/types.d.ts +21 -0
- package/dist/variationConfiguration/types.js +2 -0
- package/dist/variationConfiguration/types.js.map +1 -0
- package/dist/variationConfiguration/variationConfiguration.d.ts +27 -0
- package/dist/variationConfiguration/variationConfiguration.js +2 -0
- package/dist/variationConfiguration/variationConfiguration.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Tree=void 0;var _tsRes=require("ts-res"),_kameleoonError=require("../kameleoonError"),_node=require("./node"),_types=require("./types");function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}function _createForOfIteratorHelper(a,b){var c="undefined"!=typeof Symbol&&a[Symbol.iterator]||a["@@iterator"];if(!c){if(Array.isArray(a)||(c=_unsupportedIterableToArray(a))||b&&a&&"number"==typeof a.length){c&&(a=c);var d=0,e=function(){};return{s:e,n:function n(){return d>=a.length?{done:!0}:{done:!1,value:a[d++]}},e:function e(a){throw a},f:e}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var f,g=!0,h=!1;return{s:function s(){c=c.call(a)},n:function n(){var a=c.next();return g=a.done,a},e:function e(a){h=!0,f=a},f:function f(){try{g||null==c.return||c.return()}finally{if(h)throw f}}}}function _unsupportedIterableToArray(a,b){if(a){if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(a):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?_arrayLikeToArray(a,b):void 0}}function _arrayLikeToArray(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c<b;c++)d[c]=a[c];return d}function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,_toPropertyKey(c.key),c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),Object.defineProperty(a,"prototype",{writable:!1}),a}function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"===_typeof(b)?b:b+""}function _toPrimitive(a,b){if("object"!==_typeof(a)||null===a)return a;var c=a[Symbol.toPrimitive];if(c!==void 0){var d=c.call(a,b||"default");if("object"!==_typeof(d))return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}var Tree=function(){function a(b){var c=this;_classCallCheck(this,a),_defineProperty(this,"tree",void 0),_defineProperty(this,"error",null),_defineProperty(this,"targetingTypes",new Set);var d=this.flattenSegment(b),e=d.nestedConditions,f=d.topLevelOperators,g=e.map(function(a){var b=a.conditions,d=a.operators,e=b.map(function(a){return c.targetingTypes.add(a.targetingType),new _node.Node(a)});return c.buildTree(e,d)});this.tree=this.buildTree(g,f)}return _createClass(a,[{key:"evaluate",value:function evaluate(a){var b=this.evaluateNode(this.tree,a);return this.error?(0,_tsRes.Err)(this.error):(0,_tsRes.Ok)(b)}},{key:"hasTargetingType",value:function hasTargetingType(a){return this.targetingTypes.has(a)}},{key:"evaluateNode",value:function evaluateNode(a,b){if(this.isLeafNode(a)){if(a.error)return a.error.type===_kameleoonError.KameleoonException.TargetingCondition;var c=a.value.evaluate(b);return c.ok?a.inverse?!c.data:c.data:(this.error=c.error,!1)}if(this.isNonLeafNode(a))switch(a.value){case _types.Operator.And:return this.evaluateNode(a.left,b)&&this.evaluateNode(a.right,b);case _types.Operator.Or:return this.evaluateNode(a.left,b)||this.evaluateNode(a.right,b);default:}return!1}},{key:"isLeafNode",value:function isLeafNode(a){return!!!(a.left&&a.right)}},{key:"isNonLeafNode",value:function isNonLeafNode(a){return!!(a.left&&a.right&&(a.value===_types.Operator.Or||a.value===_types.Operator.And))}},{key:"buildTree",value:function buildTree(a,b){if(1===a.length)return a[0];var c,d=_createForOfIteratorHelper(b);try{for(d.s();!(c=d.n()).done;){var e=c.value,f=a.shift(),g=a.shift(),h=new _node.Node(e,f,g);a.unshift(h)}}catch(a){d.e(a)}finally{d.f()}return a[0]}},{key:"flattenSegment",value:function flattenSegment(a){var b=this,c=a.conditionsData,d=c.firstLevel,e=c.firstLevelOrOperators,f=[];return d.forEach(function(a){var c=a.conditions,d=a.orOperators,e={operators:b.convertOperators(d),conditions:c};f.push(e)}),{topLevelOperators:this.convertOperators(e),nestedConditions:f}}},{key:"convertOperators",value:function convertOperators(a){return a.map(function(a){return a?_types.Operator.Or:_types.Operator.And})}}]),a}();exports.Tree=Tree;
|
|
2
|
+
//# sourceMappingURL=tree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree.js","names":["Tree","a","segment","c","_classCallCheck","_defineProperty","Set","d","flattenSegment","nestedConditions","topLevelOperators","nestedNodes","map","conditions","operators","nodes","condition","targetingTypes","add","targetingType","Node","buildTree","tree","_createClass","key","value","evaluate","data","result","evaluateNode","error","Err","Ok","hasTargetingType","has","node","isLeafNode","type","KameleoonException","TargetingCondition","ok","inverse","isNonLeafNode","Operator","And","left","right","Or","length","_createForOfIteratorHelper","s","n","done","operator","shift","newNode","unshift","e","f","b","conditionsData","firstLevel","firstLevelOrOperators","forEach","conditionList","orOperators","group","convertOperators","push","exports"],"sources":["../../src/targeting/tree.ts"],"sourcesContent":["import { Result, Ok, Err } from 'ts-res';\nimport { KameleoonError, KameleoonException } from 'src/kameleoonError';\nimport { INode, Node } from './node';\nimport {\n EvaluationDataType,\n GroupedSegmentsType,\n LeafNodeType,\n NestedConditionGroupType,\n NonLeafNodeType,\n Operator,\n SegmentType,\n TargetingType,\n} from './types';\n\ninterface ITree {\n evaluate: (data: EvaluationDataType) => Result<boolean, KameleoonError>;\n hasTargetingType: (targetingType: TargetingType) => boolean;\n}\n\nexport class Tree implements ITree {\n private tree: Node;\n private error: KameleoonError | null = null;\n private targetingTypes: Set<TargetingType> = new Set();\n\n constructor(segment: SegmentType) {\n const { nestedConditions, topLevelOperators } =\n this.flattenSegment(segment);\n\n // --- Note ---\n // - Targeting tree is built bottom-up, it's the only way to both get the consistent logic\n // (grouping nested conditions) and have human readable tree representation.\n // - Here is an example of how tree is built (we use strict complete binary tree)\n // Let's say we have such a condition `value < 10 || value > 20 && value < 30`\n // Following is pseudo code for building tree:\n //\n // `const operators = [Operator.Or, Operator.And]`\n // `const conditions = [\n // {type: Condition.Less, value: 10},\n // {type: Condition.Greater, value: 20},\n // {type: Condition.Less, value: 30},\n // ]`\n //\n // After the first iteration we have node like this:\n // AND\n // / \\\n // <30 >20\n //\n // After the second iteration tree looks as follows:\n // OR\n // / \\\n // AND <10\n // / \\\n // <30 >20\n //\n // As you can see Leaf Nodes contain conditions and Non-Leaf Nodes contain logical operators\n const nestedNodes = nestedConditions.map(({ conditions, operators }) => {\n const nodes = conditions.map((condition) => {\n // --- Note ---\n // We keep condition types to optimize\n // some external operations depending on what conditions are present\n // in a tree\n this.targetingTypes.add(condition.targetingType);\n\n return new Node(condition);\n });\n\n return this.buildTree(nodes, operators);\n });\n\n this.tree = this.buildTree(nestedNodes, topLevelOperators);\n }\n\n public evaluate(data: EvaluationDataType): Result<boolean, KameleoonError> {\n const result = this.evaluateNode(this.tree, data);\n\n if (this.error) {\n return Err(this.error);\n }\n\n return Ok(result);\n }\n\n public hasTargetingType(targetingType: TargetingType): boolean {\n return this.targetingTypes.has(targetingType);\n }\n\n private evaluateNode(node: Node, data: EvaluationDataType): boolean {\n if (this.isLeafNode(node)) {\n if (node.error) {\n // --- Note ---\n // Non-existing condition should not break targeting tree\n // instead it should be treated as `true` condition\n if (node.error.type === KameleoonException.TargetingCondition) {\n return true;\n }\n\n return false;\n }\n\n const result = node.value.evaluate(data);\n\n if (!result.ok) {\n this.error = result.error;\n\n return false;\n }\n\n return node.inverse ? !result.data : result.data;\n }\n\n if (this.isNonLeafNode(node)) {\n switch (node.value) {\n case Operator.And: {\n return (\n this.evaluateNode(node.left, data) &&\n this.evaluateNode(node.right, data)\n );\n }\n case Operator.Or: {\n return (\n this.evaluateNode(node.left, data) ||\n this.evaluateNode(node.right, data)\n );\n }\n default:\n break;\n }\n }\n\n return false;\n }\n\n private isLeafNode(node: INode): node is LeafNodeType {\n return !Boolean(node.left && node.right);\n }\n\n private isNonLeafNode(node: INode): node is NonLeafNodeType {\n return Boolean(\n node.left &&\n node.right &&\n (node.value === Operator.Or || node.value === Operator.And),\n );\n }\n\n // --- Note ---\n // This method mutates `nodes` array\n // It's done for the sake of performance\n private buildTree(nodes: Node[], operators: Operator[]): Node {\n if (nodes.length === 1) {\n return nodes[0];\n }\n\n for (const operator of operators) {\n const left = nodes.shift();\n const right = nodes.shift();\n\n const newNode = new Node(operator, left, right);\n nodes.unshift(newNode);\n }\n\n return nodes[0];\n }\n\n private flattenSegment(segment: SegmentType): GroupedSegmentsType {\n const { firstLevel: conditions, firstLevelOrOperators: operators } =\n segment.conditionsData;\n\n const nestedConditions: NestedConditionGroupType[] = [];\n\n conditions.forEach((condition) => {\n const { conditions: conditionList, orOperators } = condition;\n\n const group = {\n operators: this.convertOperators(orOperators),\n conditions: conditionList,\n };\n\n nestedConditions.push(group);\n });\n\n return {\n topLevelOperators: this.convertOperators(operators),\n nestedConditions,\n };\n }\n\n private convertOperators(operators: boolean[]): Operator[] {\n return operators.map((operator) => (operator ? Operator.Or : Operator.And));\n }\n}\n"],"mappings":"+kFAmBa,CAAAA,IAAI,YAKf,SAAAC,EAAYC,CAAoB,CAAE,KAAAC,CAAA,MAAAC,eAAA,MAAAH,CAAA,EAAAI,eAAA,qBAAAA,eAAA,cAHK,IAAI,EAAAA,eAAA,uBACE,GAAI,CAAAC,GAAK,MAAAC,CAAA,CAIlD,IAAI,CAACC,cAAc,CAACN,CAAO,CAAC,CADtBO,CAAgB,CAAAF,CAAA,CAAhBE,gBAAgB,CAAEC,CAAiB,CAAAH,CAAA,CAAjBG,iBAAiB,CA8BrCC,CAAW,CAAGF,CAAgB,CAACG,GAAG,CAAC,SAAAX,CAAA,CAA+B,IAA5B,CAAAY,CAAU,CAAAZ,CAAA,CAAVY,UAAU,CAAEC,CAAS,CAAAb,CAAA,CAATa,SAAS,CACzDC,CAAK,CAAGF,CAAU,CAACD,GAAG,CAAC,SAACI,CAAS,CAAK,CAO1C,MAFA,CAAAb,CAAI,CAACc,cAAc,CAACC,GAAG,CAACF,CAAS,CAACG,aAAa,CAAC,CAEzC,GAAI,CAAAC,UAAI,CAACJ,CAAS,CAC3B,CAAC,CAAC,CAEF,MAAO,CAAAb,CAAI,CAACkB,SAAS,CAACN,CAAK,CAAED,CAAS,CACxC,CAAC,CAAC,CAEF,IAAI,CAACQ,IAAI,CAAG,IAAI,CAACD,SAAS,CAACV,CAAW,CAAED,CAAiB,CAC3D,CAAC,OAAAa,YAAA,CAAAtB,CAAA,GAAAuB,GAAA,YAAAC,KAAA,CAED,SAAAC,SAAgBC,CAAwB,CAAmC,CACzE,GAAM,CAAAC,CAAM,CAAG,IAAI,CAACC,YAAY,CAAC,IAAI,CAACP,IAAI,CAAEK,CAAI,CAAC,CAAC,MAE9C,KAAI,CAACG,KAAK,CACL,GAAAC,UAAG,EAAC,IAAI,CAACD,KAAK,CAAC,CAGjB,GAAAE,SAAE,EAACJ,CAAM,CAClB,CAAC,GAAAJ,GAAA,oBAAAC,KAAA,CAED,SAAAQ,iBAAwBd,CAA4B,CAAW,CAC7D,MAAO,KAAI,CAACF,cAAc,CAACiB,GAAG,CAACf,CAAa,CAC9C,CAAC,GAAAK,GAAA,gBAAAC,KAAA,CAED,SAAAI,aAAqBM,CAAU,CAAER,CAAwB,CAAW,CAClE,GAAI,IAAI,CAACS,UAAU,CAACD,CAAI,CAAC,CAAE,CACzB,GAAIA,CAAI,CAACL,KAAK,OAIR,CAAAK,CAAI,CAACL,KAAK,CAACO,IAAI,GAAKC,kCAAkB,CAACC,kBAAkB,CAO/D,GAAM,CAAAX,CAAM,CAAGO,CAAI,CAACV,KAAK,CAACC,QAAQ,CAACC,CAAI,CAAC,CAAC,MAEpC,CAAAC,CAAM,CAACY,EAAE,CAMPL,CAAI,CAACM,OAAO,CAAG,CAACb,CAAM,CAACD,IAAI,CAAGC,CAAM,CAACD,IAAI,EAL9C,IAAI,CAACG,KAAK,CAAGF,CAAM,CAACE,KAAK,IAM7B,CAEA,GAAI,IAAI,CAACY,aAAa,CAACP,CAAI,CAAC,CAC1B,OAAQA,CAAI,CAACV,KAAK,EAChB,IAAK,CAAAkB,eAAQ,CAACC,GAAG,CACf,MACE,KAAI,CAACf,YAAY,CAACM,CAAI,CAACU,IAAI,CAAElB,CAAI,CAAC,EAClC,IAAI,CAACE,YAAY,CAACM,CAAI,CAACW,KAAK,CAAEnB,CAAI,CAAC,CAGvC,IAAK,CAAAgB,eAAQ,CAACI,EAAE,CACd,MACE,KAAI,CAAClB,YAAY,CAACM,CAAI,CAACU,IAAI,CAAElB,CAAI,CAAC,EAClC,IAAI,CAACE,YAAY,CAACM,CAAI,CAACW,KAAK,CAAEnB,CAAI,CAAC,CAGvC,QACQ,CAIZ,QACF,CAAC,GAAAH,GAAA,cAAAC,KAAA,CAED,SAAAW,WAAmBD,CAAW,CAAwB,CACpD,MAAO,IAASA,CAAI,CAACU,IAAI,EAAIV,CAAI,CAACW,KAAK,CACzC,CAAC,GAAAtB,GAAA,iBAAAC,KAAA,CAED,SAAAiB,cAAsBP,CAAW,CAA2B,CAC1D,SACEA,CAAI,CAACU,IAAI,EACPV,CAAI,CAACW,KAAK,GACTX,CAAI,CAACV,KAAK,GAAKkB,eAAQ,CAACI,EAAE,EAAIZ,CAAI,CAACV,KAAK,GAAKkB,eAAQ,CAACC,GAAG,CAAC,CAEjE,CAAC,GAAApB,GAAA,aAAAC,KAAA,CAKD,SAAAJ,UAAkBN,CAAa,CAAED,CAAqB,CAAQ,CAC5D,GAAqB,CAAC,GAAlBC,CAAK,CAACiC,MAAY,CACpB,MAAO,CAAAjC,CAAK,CAAC,CAAC,CAAC,CAChB,IAAAZ,CAAA,CAAAI,CAAA,CAAA0C,0BAAA,CAEsBnC,CAAS,MAAhC,IAAAP,CAAA,CAAA2C,CAAA,KAAA/C,CAAA,CAAAI,CAAA,CAAA4C,CAAA,IAAAC,IAAA,EAAkC,IAAvB,CAAAC,CAAQ,CAAAlD,CAAA,CAAAsB,KAAA,CACXoB,CAAI,CAAG9B,CAAK,CAACuC,KAAK,EAAE,CACpBR,CAAK,CAAG/B,CAAK,CAACuC,KAAK,EAAE,CAErBC,CAAO,CAAG,GAAI,CAAAnC,UAAI,CAACiC,CAAQ,CAAER,CAAI,CAAEC,CAAK,CAAC,CAC/C/B,CAAK,CAACyC,OAAO,CAACD,CAAO,CACvB,CAAC,OAAAtD,CAAA,EAAAM,CAAA,CAAAkD,CAAA,CAAAxD,CAAA,UAAAM,CAAA,CAAAmD,CAAA,GAED,MAAO,CAAA3C,CAAK,CAAC,CAAC,CAChB,CAAC,GAAAS,GAAA,kBAAAC,KAAA,CAED,SAAAjB,eAAuBN,CAAoB,CAAuB,KAAAyD,CAAA,MAAAxD,CAAA,CAE9DD,CAAO,CAAC0D,cAAc,CADJ/C,CAAU,CAAAV,CAAA,CAAtB0D,UAAU,CAAqC/C,CAAS,CAAAX,CAAA,CAAhC2D,qBAAqB,CAG/CrD,CAA4C,CAAG,EAAE,CAavD,MAXA,CAAAI,CAAU,CAACkD,OAAO,CAAC,SAAC/C,CAAS,CAAK,IACZ,CAAAgD,CAAa,CAAkBhD,CAAS,CAApDH,UAAU,CAAiBoD,CAAW,CAAKjD,CAAS,CAAzBiD,WAAW,CAExCC,CAAK,CAAG,CACZpD,SAAS,CAAE6C,CAAI,CAACQ,gBAAgB,CAACF,CAAW,CAAC,CAC7CpD,UAAU,CAAEmD,CACd,CAAC,CAEDvD,CAAgB,CAAC2D,IAAI,CAACF,CAAK,CAC7B,CAAC,CAAC,CAEK,CACLxD,iBAAiB,CAAE,IAAI,CAACyD,gBAAgB,CAACrD,CAAS,CAAC,CACnDL,gBAAgB,CAAhBA,CACF,CACF,CAAC,GAAAe,GAAA,oBAAAC,KAAA,CAED,SAAA0C,iBAAyBrD,CAAoB,CAAc,CACzD,MAAO,CAAAA,CAAS,CAACF,GAAG,CAAC,SAACyC,CAAQ,QAAM,CAAAA,CAAQ,CAAGV,eAAQ,CAACI,EAAE,CAAGJ,eAAQ,CAACC,GAAG,CAAC,CAC5E,CAAC,IAAA3C,CAAA,IAAAoE,OAAA,CAAArE,IAAA,CAAAA,IAAA"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { MappedRuleType } from '../clientConfiguration/types';
|
|
2
|
+
import { KameleoonVisitorDataType } from '../kameleoonData/types';
|
|
3
|
+
import { FeatureFlagVariationsType } from '../storage/types';
|
|
4
|
+
import { ExternalPackageInfoType } from '../types';
|
|
5
|
+
import { ConditionDataType, ConditionType } from './conditions';
|
|
6
|
+
import { Node } from './node';
|
|
7
|
+
import { Tree } from './tree';
|
|
8
|
+
export declare enum Operator {
|
|
9
|
+
And = "AND",
|
|
10
|
+
Or = "OR"
|
|
11
|
+
}
|
|
12
|
+
export type NonLeafNodeType = {
|
|
13
|
+
left: Node;
|
|
14
|
+
right: Node;
|
|
15
|
+
value: Operator;
|
|
16
|
+
};
|
|
17
|
+
export type LeafNodeType = {
|
|
18
|
+
left: undefined;
|
|
19
|
+
right: undefined;
|
|
20
|
+
value: ConditionType;
|
|
21
|
+
};
|
|
22
|
+
export type NodeValueType = ConditionType | Operator;
|
|
23
|
+
export type ConditionLevelType = {
|
|
24
|
+
orOperators: boolean[];
|
|
25
|
+
conditions: ConditionDataType[];
|
|
26
|
+
};
|
|
27
|
+
export type SegmentType = {
|
|
28
|
+
id: string;
|
|
29
|
+
name: string;
|
|
30
|
+
conditionsData: {
|
|
31
|
+
firstLevelOrOperators: boolean[];
|
|
32
|
+
firstLevel: ConditionLevelType[];
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
export type NestedConditionGroupType = {
|
|
36
|
+
operators: Operator[];
|
|
37
|
+
conditions: ConditionDataType[];
|
|
38
|
+
};
|
|
39
|
+
export type GroupedSegmentsType = {
|
|
40
|
+
topLevelOperators: Operator[];
|
|
41
|
+
nestedConditions: NestedConditionGroupType[];
|
|
42
|
+
};
|
|
43
|
+
export type TargetingDataType = {
|
|
44
|
+
[visitorCode: string]: KameleoonVisitorDataType;
|
|
45
|
+
};
|
|
46
|
+
export type EvaluationDataType = {
|
|
47
|
+
targetingData?: KameleoonVisitorDataType;
|
|
48
|
+
variationData: FeatureFlagVariationsType;
|
|
49
|
+
ruleMap?: Map<number, MappedRuleType>;
|
|
50
|
+
sdkInfo: ExternalPackageInfoType;
|
|
51
|
+
experimentId: number | null;
|
|
52
|
+
visitorCode: string;
|
|
53
|
+
segments?: Map<string, SegmentType>;
|
|
54
|
+
trees?: Map<string, Tree>;
|
|
55
|
+
};
|
|
56
|
+
export declare enum ValueMatchType {
|
|
57
|
+
TRUE = "TRUE",
|
|
58
|
+
FALSE = "FALSE",
|
|
59
|
+
EXACT = "EXACT",
|
|
60
|
+
CONTAINS = "CONTAINS",
|
|
61
|
+
REGULAR_EXPRESSION = "REGULAR_EXPRESSION",
|
|
62
|
+
EQUAL = "EQUAL",
|
|
63
|
+
LOWER = "LOWER",
|
|
64
|
+
GREATER = "GREATER",
|
|
65
|
+
UNDEFINED = "UNDEFINED",
|
|
66
|
+
AMONG_VALUES = "AMONG_VALUES"
|
|
67
|
+
}
|
|
68
|
+
export declare enum VisitorType {
|
|
69
|
+
NEW = "NEW",
|
|
70
|
+
RETURNING = "RETURNING"
|
|
71
|
+
}
|
|
72
|
+
export declare enum MatchTypeVariation {
|
|
73
|
+
ANY = "ANY",
|
|
74
|
+
EXACT = "EXACT"
|
|
75
|
+
}
|
|
76
|
+
export declare enum MatchTypeTest {
|
|
77
|
+
ALL = "ALL",
|
|
78
|
+
TEST = "TEST",
|
|
79
|
+
PERSO = "PERSO"
|
|
80
|
+
}
|
|
81
|
+
export declare enum MatchType {
|
|
82
|
+
EXACT = "EXACT",
|
|
83
|
+
CONTAINS = "CONTAINS",
|
|
84
|
+
REGULAR_EXPRESSION = "REGULAR_EXPRESSION",
|
|
85
|
+
GREATER = "GREATER",
|
|
86
|
+
EQUAL = "EQUAL",
|
|
87
|
+
LOWER = "LOWER"
|
|
88
|
+
}
|
|
89
|
+
export declare enum VersionMatchType {
|
|
90
|
+
GREATER = "GREATER",
|
|
91
|
+
EQUAL = "EQUAL",
|
|
92
|
+
LOWER = "LOWER"
|
|
93
|
+
}
|
|
94
|
+
export declare enum NameMatchType {
|
|
95
|
+
EXACT = "EXACT",
|
|
96
|
+
CONTAINS = "CONTAINS",
|
|
97
|
+
REGULAR_EXPRESSION = "REGULAR_EXPRESSION",
|
|
98
|
+
OPTIONAL = "OPTIONAL"
|
|
99
|
+
}
|
|
100
|
+
export declare enum TargetingType {
|
|
101
|
+
PAGE_URL = "PAGE_URL",
|
|
102
|
+
PAGE_TITLE = "PAGE_TITLE",
|
|
103
|
+
LANDING_PAGE = "LANDING_PAGE",
|
|
104
|
+
ORIGIN = "ORIGIN",
|
|
105
|
+
ORIGIN_TYPE = "ORIGIN_TYPE",
|
|
106
|
+
REFERRERS = "REFERRERS",
|
|
107
|
+
NEW_VISITORS = "NEW_VISITORS",
|
|
108
|
+
INTERESTS = "INTERESTS",
|
|
109
|
+
BROWSER_LANGUAGE = "BROWSER_LANGUAGE",
|
|
110
|
+
GEOLOCATION = "GEOLOCATION",
|
|
111
|
+
DEVICE_TYPE = "DEVICE_TYPE",
|
|
112
|
+
SCREEN_DIMENSION = "SCREEN_DIMENSION",
|
|
113
|
+
VISITOR_IP = "VISITOR_IP",
|
|
114
|
+
AD_BLOCKER = "AD_BLOCKER",
|
|
115
|
+
PREVIOUS_PAGE = "PREVIOUS_PAGE",
|
|
116
|
+
KEY_PAGES = "KEY_PAGES",
|
|
117
|
+
PAGE_VIEWS = "PAGE_VIEWS",
|
|
118
|
+
FIRST_VISIT = "FIRST_VISIT",
|
|
119
|
+
LAST_VISIT = "LAST_VISIT",
|
|
120
|
+
ACTIVE_SESSION = "ACTIVE_SESSION",
|
|
121
|
+
TIME_SINCE_PAGE_LOAD = "TIME_SINCE_PAGE_LOAD",
|
|
122
|
+
SAME_DAY_VISITS = "SAME_DAY_VISITS",
|
|
123
|
+
VISITS = "VISITS",
|
|
124
|
+
VISITS_BY_PAGE = "VISITS_BY_PAGE",
|
|
125
|
+
VISITOR_CODE = "VISITOR_CODE",
|
|
126
|
+
SDK_LANGUAGE = "SDK_LANGUAGE",
|
|
127
|
+
INTERNAL_SEARCH_KEYWORDS = "INTERNAL_SEARCH_KEYWORDS",
|
|
128
|
+
TABS_ON_SITE = "TABS_ON_SITE",
|
|
129
|
+
CONVERSION_PROBABILITY = "CONVERSION_PROBABILITY",
|
|
130
|
+
HEAT_SLICE = "HEAT_SLICE",
|
|
131
|
+
SKY_STATUS = "SKY_STATUS",
|
|
132
|
+
TEMPERATURE = "TEMPERATURE",
|
|
133
|
+
DAY_NIGHT = "DAY_NIGHT",
|
|
134
|
+
FORECAST_SKY_STATUS = "FORECAST_SKY_STATUS",
|
|
135
|
+
FORECAST_TEMPERATURE = "FORECAST_TEMPERATURE",
|
|
136
|
+
DAY_OF_WEEK = "DAY_OF_WEEK",
|
|
137
|
+
TIME_RANGE = "TIME_RANGE",
|
|
138
|
+
HOUR_MINUTE_RANGE = "HOUR_MINUTE_RANGE",
|
|
139
|
+
JS_CODE = "JS_CODE",
|
|
140
|
+
COOKIE = "COOKIE",
|
|
141
|
+
EVENT = "EVENT",
|
|
142
|
+
BROWSER = "BROWSER",
|
|
143
|
+
OPERATING_SYSTEM = "OPERATING_SYSTEM",
|
|
144
|
+
DOM_ELEMENT = "DOM_ELEMENT",
|
|
145
|
+
MOUSE_OUT = "MOUSE_OUT",
|
|
146
|
+
TARGET_EXPERIMENT = "TARGET_EXPERIMENT",
|
|
147
|
+
TARGET_FEATURE_FLAG = "TARGET_FEATURE_FLAG",
|
|
148
|
+
TARGET_PERSONALIZATION = "TARGET_PERSONALIZATION",
|
|
149
|
+
EXCLUSIVE_EXPERIMENT = "EXCLUSIVE_EXPERIMENT",
|
|
150
|
+
EXCLUSIVE_FEATURE_FLAG = "EXCLUSIVE_FEATURE_FLAG",
|
|
151
|
+
CONVERSIONS = "CONVERSIONS",
|
|
152
|
+
CUSTOM_DATUM = "CUSTOM_DATUM",
|
|
153
|
+
YSANCE_SEGMENT = "YSANCE_SEGMENT",
|
|
154
|
+
SEGMENT = "SEGMENT",
|
|
155
|
+
YSANCE_ATTRIBUT = "YSANCE_ATTRIBUT",
|
|
156
|
+
TEALIUM_BADGE = "TEALIUM_BADGE",
|
|
157
|
+
TEALIUM_AUDIENCE = "TEALIUM_AUDIENCE",
|
|
158
|
+
PRICE_OF_DISPLAYED_PAGE = "PRICE_OF_DISPLAYED_PAGE",
|
|
159
|
+
NUMBER_OF_VISITED_PAGES = "NUMBER_OF_VISITED_PAGES",
|
|
160
|
+
VISITED_PAGES = "VISITED_PAGES",
|
|
161
|
+
CUSTOM = "CUSTOM",
|
|
162
|
+
EXPLICIT_TRIGGER = "EXPLICIT_TRIGGER",
|
|
163
|
+
APPLICATION_VERSION = "APPLICATION_VERSION"
|
|
164
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.VisitorType=exports.VersionMatchType=exports.ValueMatchType=exports.TargetingType=exports.Operator=exports.NameMatchType=exports.MatchTypeVariation=exports.MatchTypeTest=exports.MatchType=void 0;var Operator=function(a){return a.And="AND",a.Or="OR",a}({});exports.Operator=Operator;var ValueMatchType=function(a){return a.TRUE="TRUE",a.FALSE="FALSE",a.EXACT="EXACT",a.CONTAINS="CONTAINS",a.REGULAR_EXPRESSION="REGULAR_EXPRESSION",a.EQUAL="EQUAL",a.LOWER="LOWER",a.GREATER="GREATER",a.UNDEFINED="UNDEFINED",a.AMONG_VALUES="AMONG_VALUES",a}({});exports.ValueMatchType=ValueMatchType;var VisitorType=function(a){return a.NEW="NEW",a.RETURNING="RETURNING",a}({});exports.VisitorType=VisitorType;var MatchTypeVariation=function(a){return a.ANY="ANY",a.EXACT="EXACT",a}({});exports.MatchTypeVariation=MatchTypeVariation;var MatchTypeTest=function(a){return a.ALL="ALL",a.TEST="TEST",a.PERSO="PERSO",a}({});exports.MatchTypeTest=MatchTypeTest;var MatchType=function(a){return a.EXACT="EXACT",a.CONTAINS="CONTAINS",a.REGULAR_EXPRESSION="REGULAR_EXPRESSION",a.GREATER="GREATER",a.EQUAL="EQUAL",a.LOWER="LOWER",a}({});exports.MatchType=MatchType;var VersionMatchType=function(a){return a.GREATER="GREATER",a.EQUAL="EQUAL",a.LOWER="LOWER",a}({});exports.VersionMatchType=VersionMatchType;var NameMatchType=function(a){return a.EXACT="EXACT",a.CONTAINS="CONTAINS",a.REGULAR_EXPRESSION="REGULAR_EXPRESSION",a.OPTIONAL="OPTIONAL",a}({});exports.NameMatchType=NameMatchType;var TargetingType=function(a){return a.PAGE_URL="PAGE_URL",a.PAGE_TITLE="PAGE_TITLE",a.LANDING_PAGE="LANDING_PAGE",a.ORIGIN="ORIGIN",a.ORIGIN_TYPE="ORIGIN_TYPE",a.REFERRERS="REFERRERS",a.NEW_VISITORS="NEW_VISITORS",a.INTERESTS="INTERESTS",a.BROWSER_LANGUAGE="BROWSER_LANGUAGE",a.GEOLOCATION="GEOLOCATION",a.DEVICE_TYPE="DEVICE_TYPE",a.SCREEN_DIMENSION="SCREEN_DIMENSION",a.VISITOR_IP="VISITOR_IP",a.AD_BLOCKER="AD_BLOCKER",a.PREVIOUS_PAGE="PREVIOUS_PAGE",a.KEY_PAGES="KEY_PAGES",a.PAGE_VIEWS="PAGE_VIEWS",a.FIRST_VISIT="FIRST_VISIT",a.LAST_VISIT="LAST_VISIT",a.ACTIVE_SESSION="ACTIVE_SESSION",a.TIME_SINCE_PAGE_LOAD="TIME_SINCE_PAGE_LOAD",a.SAME_DAY_VISITS="SAME_DAY_VISITS",a.VISITS="VISITS",a.VISITS_BY_PAGE="VISITS_BY_PAGE",a.VISITOR_CODE="VISITOR_CODE",a.SDK_LANGUAGE="SDK_LANGUAGE",a.INTERNAL_SEARCH_KEYWORDS="INTERNAL_SEARCH_KEYWORDS",a.TABS_ON_SITE="TABS_ON_SITE",a.CONVERSION_PROBABILITY="CONVERSION_PROBABILITY",a.HEAT_SLICE="HEAT_SLICE",a.SKY_STATUS="SKY_STATUS",a.TEMPERATURE="TEMPERATURE",a.DAY_NIGHT="DAY_NIGHT",a.FORECAST_SKY_STATUS="FORECAST_SKY_STATUS",a.FORECAST_TEMPERATURE="FORECAST_TEMPERATURE",a.DAY_OF_WEEK="DAY_OF_WEEK",a.TIME_RANGE="TIME_RANGE",a.HOUR_MINUTE_RANGE="HOUR_MINUTE_RANGE",a.JS_CODE="JS_CODE",a.COOKIE="COOKIE",a.EVENT="EVENT",a.BROWSER="BROWSER",a.OPERATING_SYSTEM="OPERATING_SYSTEM",a.DOM_ELEMENT="DOM_ELEMENT",a.MOUSE_OUT="MOUSE_OUT",a.TARGET_EXPERIMENT="TARGET_EXPERIMENT",a.TARGET_FEATURE_FLAG="TARGET_FEATURE_FLAG",a.TARGET_PERSONALIZATION="TARGET_PERSONALIZATION",a.EXCLUSIVE_EXPERIMENT="EXCLUSIVE_EXPERIMENT",a.EXCLUSIVE_FEATURE_FLAG="EXCLUSIVE_FEATURE_FLAG",a.CONVERSIONS="CONVERSIONS",a.CUSTOM_DATUM="CUSTOM_DATUM",a.YSANCE_SEGMENT="YSANCE_SEGMENT",a.SEGMENT="SEGMENT",a.YSANCE_ATTRIBUT="YSANCE_ATTRIBUT",a.TEALIUM_BADGE="TEALIUM_BADGE",a.TEALIUM_AUDIENCE="TEALIUM_AUDIENCE",a.PRICE_OF_DISPLAYED_PAGE="PRICE_OF_DISPLAYED_PAGE",a.NUMBER_OF_VISITED_PAGES="NUMBER_OF_VISITED_PAGES",a.VISITED_PAGES="VISITED_PAGES",a.CUSTOM="CUSTOM",a.EXPLICIT_TRIGGER="EXPLICIT_TRIGGER",a.APPLICATION_VERSION="APPLICATION_VERSION",a}({});exports.TargetingType=TargetingType;
|
|
2
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","names":["Operator","And","Or","exports","ValueMatchType","TRUE","FALSE","EXACT","CONTAINS","REGULAR_EXPRESSION","EQUAL","LOWER","GREATER","UNDEFINED","AMONG_VALUES","VisitorType","NEW","RETURNING","MatchTypeVariation","ANY","MatchTypeTest","ALL","TEST","PERSO","MatchType","VersionMatchType","NameMatchType","OPTIONAL","TargetingType","PAGE_URL","PAGE_TITLE","LANDING_PAGE","ORIGIN","ORIGIN_TYPE","REFERRERS","NEW_VISITORS","INTERESTS","BROWSER_LANGUAGE","GEOLOCATION","DEVICE_TYPE","SCREEN_DIMENSION","VISITOR_IP","AD_BLOCKER","PREVIOUS_PAGE","KEY_PAGES","PAGE_VIEWS","FIRST_VISIT","LAST_VISIT","ACTIVE_SESSION","TIME_SINCE_PAGE_LOAD","SAME_DAY_VISITS","VISITS","VISITS_BY_PAGE","VISITOR_CODE","SDK_LANGUAGE","INTERNAL_SEARCH_KEYWORDS","TABS_ON_SITE","CONVERSION_PROBABILITY","HEAT_SLICE","SKY_STATUS","TEMPERATURE","DAY_NIGHT","FORECAST_SKY_STATUS","FORECAST_TEMPERATURE","DAY_OF_WEEK","TIME_RANGE","HOUR_MINUTE_RANGE","JS_CODE","COOKIE","EVENT","BROWSER","OPERATING_SYSTEM","DOM_ELEMENT","MOUSE_OUT","TARGET_EXPERIMENT","TARGET_FEATURE_FLAG","TARGET_PERSONALIZATION","EXCLUSIVE_EXPERIMENT","EXCLUSIVE_FEATURE_FLAG","CONVERSIONS","CUSTOM_DATUM","YSANCE_SEGMENT","SEGMENT","YSANCE_ATTRIBUT","TEALIUM_BADGE","TEALIUM_AUDIENCE","PRICE_OF_DISPLAYED_PAGE","NUMBER_OF_VISITED_PAGES","VISITED_PAGES","CUSTOM","EXPLICIT_TRIGGER","APPLICATION_VERSION"],"sources":["../../src/targeting/types.ts"],"sourcesContent":["import { MappedRuleType } from 'src/clientConfiguration/types';\nimport { KameleoonVisitorDataType } from 'src/kameleoonData/types';\nimport { FeatureFlagVariationsType } from 'src/storage/types';\nimport { ExternalPackageInfoType } from 'src/types';\nimport { ConditionDataType, ConditionType } from './conditions';\nimport { Node } from './node';\nimport { Tree } from './tree';\n\nexport enum Operator {\n And = 'AND',\n Or = 'OR',\n}\n\nexport type NonLeafNodeType = {\n left: Node;\n right: Node;\n value: Operator;\n};\n\nexport type LeafNodeType = {\n left: undefined;\n right: undefined;\n value: ConditionType;\n};\n\nexport type NodeValueType = ConditionType | Operator;\n\nexport type ConditionLevelType = {\n orOperators: boolean[];\n conditions: ConditionDataType[];\n};\n\nexport type SegmentType = {\n id: string;\n name: string;\n conditionsData: {\n firstLevelOrOperators: boolean[];\n firstLevel: ConditionLevelType[];\n };\n};\n\nexport type NestedConditionGroupType = {\n operators: Operator[];\n conditions: ConditionDataType[];\n};\n\nexport type GroupedSegmentsType = {\n topLevelOperators: Operator[];\n nestedConditions: NestedConditionGroupType[];\n};\n\nexport type TargetingDataType = {\n [visitorCode: string]: KameleoonVisitorDataType;\n};\n\nexport type EvaluationDataType = {\n targetingData?: KameleoonVisitorDataType;\n variationData: FeatureFlagVariationsType;\n ruleMap?: Map<number, MappedRuleType>;\n sdkInfo: ExternalPackageInfoType;\n experimentId: number | null;\n visitorCode: string;\n segments?: Map<string, SegmentType>;\n trees?: Map<string, Tree>;\n};\n\nexport enum ValueMatchType {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n EXACT = 'EXACT',\n CONTAINS = 'CONTAINS',\n REGULAR_EXPRESSION = 'REGULAR_EXPRESSION',\n EQUAL = 'EQUAL',\n LOWER = 'LOWER',\n GREATER = 'GREATER',\n UNDEFINED = 'UNDEFINED',\n AMONG_VALUES = 'AMONG_VALUES',\n}\n\nexport enum VisitorType {\n NEW = 'NEW',\n RETURNING = 'RETURNING',\n}\n\nexport enum MatchTypeVariation {\n ANY = 'ANY',\n EXACT = 'EXACT',\n}\n\nexport enum MatchTypeTest {\n ALL = 'ALL',\n TEST = 'TEST',\n PERSO = 'PERSO',\n}\n\n// --- Note ---\n// Starting the merge of `matchType` with the release of new conditions\n// Now it contains a couple of sub types, in future API version all match types\n// will be accumulated in this enum\nexport enum MatchType {\n // -- Sub Type One\n EXACT = 'EXACT',\n CONTAINS = 'CONTAINS',\n REGULAR_EXPRESSION = 'REGULAR_EXPRESSION',\n // -- Sub Type Two\n GREATER = 'GREATER',\n EQUAL = 'EQUAL',\n LOWER = 'LOWER',\n}\n\nexport enum VersionMatchType {\n GREATER = 'GREATER',\n EQUAL = 'EQUAL',\n LOWER = 'LOWER',\n}\n\nexport enum NameMatchType {\n EXACT = 'EXACT',\n CONTAINS = 'CONTAINS',\n REGULAR_EXPRESSION = 'REGULAR_EXPRESSION',\n OPTIONAL = 'OPTIONAL',\n}\n\nexport enum TargetingType {\n PAGE_URL = 'PAGE_URL',\n PAGE_TITLE = 'PAGE_TITLE',\n LANDING_PAGE = 'LANDING_PAGE',\n ORIGIN = 'ORIGIN',\n ORIGIN_TYPE = 'ORIGIN_TYPE',\n REFERRERS = 'REFERRERS',\n NEW_VISITORS = 'NEW_VISITORS',\n INTERESTS = 'INTERESTS',\n BROWSER_LANGUAGE = 'BROWSER_LANGUAGE',\n GEOLOCATION = 'GEOLOCATION',\n DEVICE_TYPE = 'DEVICE_TYPE',\n SCREEN_DIMENSION = 'SCREEN_DIMENSION',\n VISITOR_IP = 'VISITOR_IP',\n AD_BLOCKER = 'AD_BLOCKER',\n PREVIOUS_PAGE = 'PREVIOUS_PAGE',\n KEY_PAGES = 'KEY_PAGES',\n PAGE_VIEWS = 'PAGE_VIEWS',\n FIRST_VISIT = 'FIRST_VISIT',\n LAST_VISIT = 'LAST_VISIT',\n ACTIVE_SESSION = 'ACTIVE_SESSION',\n TIME_SINCE_PAGE_LOAD = 'TIME_SINCE_PAGE_LOAD',\n SAME_DAY_VISITS = 'SAME_DAY_VISITS',\n VISITS = 'VISITS',\n VISITS_BY_PAGE = 'VISITS_BY_PAGE',\n VISITOR_CODE = 'VISITOR_CODE',\n SDK_LANGUAGE = 'SDK_LANGUAGE',\n INTERNAL_SEARCH_KEYWORDS = 'INTERNAL_SEARCH_KEYWORDS',\n TABS_ON_SITE = 'TABS_ON_SITE',\n CONVERSION_PROBABILITY = 'CONVERSION_PROBABILITY',\n HEAT_SLICE = 'HEAT_SLICE',\n SKY_STATUS = 'SKY_STATUS',\n TEMPERATURE = 'TEMPERATURE',\n DAY_NIGHT = 'DAY_NIGHT',\n FORECAST_SKY_STATUS = 'FORECAST_SKY_STATUS',\n FORECAST_TEMPERATURE = 'FORECAST_TEMPERATURE',\n DAY_OF_WEEK = 'DAY_OF_WEEK',\n TIME_RANGE = 'TIME_RANGE',\n HOUR_MINUTE_RANGE = 'HOUR_MINUTE_RANGE',\n JS_CODE = 'JS_CODE',\n COOKIE = 'COOKIE',\n EVENT = 'EVENT',\n BROWSER = 'BROWSER',\n OPERATING_SYSTEM = 'OPERATING_SYSTEM',\n DOM_ELEMENT = 'DOM_ELEMENT',\n MOUSE_OUT = 'MOUSE_OUT',\n TARGET_EXPERIMENT = 'TARGET_EXPERIMENT',\n TARGET_FEATURE_FLAG = 'TARGET_FEATURE_FLAG',\n TARGET_PERSONALIZATION = 'TARGET_PERSONALIZATION',\n EXCLUSIVE_EXPERIMENT = 'EXCLUSIVE_EXPERIMENT',\n EXCLUSIVE_FEATURE_FLAG = 'EXCLUSIVE_FEATURE_FLAG',\n CONVERSIONS = 'CONVERSIONS',\n CUSTOM_DATUM = 'CUSTOM_DATUM',\n YSANCE_SEGMENT = 'YSANCE_SEGMENT',\n SEGMENT = 'SEGMENT',\n YSANCE_ATTRIBUT = 'YSANCE_ATTRIBUT',\n TEALIUM_BADGE = 'TEALIUM_BADGE',\n TEALIUM_AUDIENCE = 'TEALIUM_AUDIENCE',\n PRICE_OF_DISPLAYED_PAGE = 'PRICE_OF_DISPLAYED_PAGE',\n NUMBER_OF_VISITED_PAGES = 'NUMBER_OF_VISITED_PAGES',\n VISITED_PAGES = 'VISITED_PAGES',\n CUSTOM = 'CUSTOM',\n EXPLICIT_TRIGGER = 'EXPLICIT_TRIGGER',\n APPLICATION_VERSION = 'APPLICATION_VERSION',\n}\n"],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { IncomingMessage, ServerResponse } from 'http';
|
|
3
|
+
import { JSONType } from './clientConfiguration/types';
|
|
4
|
+
import { SdkLanguageType } from './constants';
|
|
5
|
+
import { IExternalEventSourceConstructor } from './eventSource';
|
|
6
|
+
import { IExternalStorageConstructor } from './storage';
|
|
7
|
+
import { IExternalRequestDispatcher, GetClientConfigurationResultType } from './requester';
|
|
8
|
+
import { VisitorDataFiltersType } from './utilities';
|
|
9
|
+
/**
|
|
10
|
+
* @param {number} updateInterval - update interval in _minutes_ for sdk configuration, minimum value is 1 minute
|
|
11
|
+
* @defaultvalue 60
|
|
12
|
+
*
|
|
13
|
+
* @param {Environment} environment - feature flag environment
|
|
14
|
+
* @defaultvalue Environment.Production
|
|
15
|
+
*
|
|
16
|
+
* @param {number | undefined} targetingDataCleanupInterval - interval in _minutes_ for cleaning up targeting data, minimum value is 1 minute
|
|
17
|
+
* Note: if not specified, default value will be used
|
|
18
|
+
* @defaultvalue
|
|
19
|
+
* - JavaScript SDK: `undefined` (no cleanup)
|
|
20
|
+
* - React/React Native SDK: `undefined` (no cleanup)
|
|
21
|
+
* - NodeJS SDK: `30`
|
|
22
|
+
* */
|
|
23
|
+
export type SDKConfigurationType = {
|
|
24
|
+
updateInterval?: number;
|
|
25
|
+
environment?: Environment;
|
|
26
|
+
targetingDataCleanupInterval?: number;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* @param {string} siteCode - client's siteCode defined on Kameleoon platform
|
|
30
|
+
* @param {Partial<SDKConfigurationType>} configuration - client's configuration
|
|
31
|
+
* @param {InternalSDKConfigurationType} internalConfiguration - internal configuration for sdk core to be initialized with certain parameters to certain type of JavaScript SDK
|
|
32
|
+
* */
|
|
33
|
+
export type SDKCoreParameters = {
|
|
34
|
+
siteCode: string;
|
|
35
|
+
configuration?: Partial<SDKConfigurationType>;
|
|
36
|
+
internalConfiguration: InternalSDKConfigurationType;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* @param {SdkLanguageType} type - type of the SDK
|
|
40
|
+
* @param {string} version - version of the package
|
|
41
|
+
* */
|
|
42
|
+
export type ExternalPackageInfoType = {
|
|
43
|
+
type: SdkLanguageType;
|
|
44
|
+
version: string;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* @param {IExternalStorage | undefined} externalStorage - external file system storage implemented outside client initialization
|
|
48
|
+
* @param {IExternalEventSourceConstructor | undefined} externalEventSource - constructor for building external event source implementation
|
|
49
|
+
* @param {ExternalPackageInfoType} externalPackageInfo - external package info, used to get package version and name
|
|
50
|
+
* @param {GetClientConfigurationResultType} externalClientConfiguration - external fetched client configuration
|
|
51
|
+
* @param {IExternalRequestDispatcher} externalRequestDispatcher - external request dispatcher, used to track data or get data
|
|
52
|
+
* @param {number} targetingDataCleanupInterval - interval in *minutes* for cleaning up targeting data, minimum value is 1 minute
|
|
53
|
+
* */
|
|
54
|
+
export type InternalSDKConfigurationType = {
|
|
55
|
+
externalStorage: IExternalStorageConstructor;
|
|
56
|
+
externalEventSource: IExternalEventSourceConstructor;
|
|
57
|
+
externalPackageInfo: ExternalPackageInfoType;
|
|
58
|
+
externalRequestDispatcher: IExternalRequestDispatcher;
|
|
59
|
+
externalClientConfiguration?: GetClientConfigurationResultType;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* @readonly
|
|
63
|
+
* @enum {string} an Enum containing all possible variants of environment, passed as an argument to KameleoonClient `configuration`s `environment` field
|
|
64
|
+
* */
|
|
65
|
+
export declare enum Environment {
|
|
66
|
+
Production = "production",
|
|
67
|
+
Staging = "staging",
|
|
68
|
+
Development = "development"
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* @readonly
|
|
72
|
+
* @enum {string} an Enum containing all possible variants of feature variable types
|
|
73
|
+
* */
|
|
74
|
+
export declare enum VariableType {
|
|
75
|
+
BOOLEAN = "BOOLEAN",
|
|
76
|
+
NUMBER = "NUMBER",
|
|
77
|
+
STRING = "STRING",
|
|
78
|
+
JSON = "JSON"
|
|
79
|
+
}
|
|
80
|
+
export type BooleanVariableType = {
|
|
81
|
+
type: VariableType.BOOLEAN;
|
|
82
|
+
value: boolean;
|
|
83
|
+
};
|
|
84
|
+
export type NumberVariableType = {
|
|
85
|
+
type: VariableType.NUMBER;
|
|
86
|
+
value: number;
|
|
87
|
+
};
|
|
88
|
+
export type StringVariableType = {
|
|
89
|
+
type: VariableType.STRING;
|
|
90
|
+
value: string;
|
|
91
|
+
};
|
|
92
|
+
export type JSONVariableType = {
|
|
93
|
+
type: VariableType.JSON;
|
|
94
|
+
value: JSONType;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* @type FeatureVariableResultType - tuple of possible feature variable result types, each possible variation is an object containing `type` and `value` fields, `type` can be checked against `FeatureVariableType` enum, if the `type` is `FeatureVariableType.BOOLEAN` then the `value` type will be `boolean` and so on.
|
|
98
|
+
* */
|
|
99
|
+
export type FeatureVariableResultType = BooleanVariableType | NumberVariableType | StringVariableType | JSONVariableType;
|
|
100
|
+
/**
|
|
101
|
+
* @readonly
|
|
102
|
+
* @enum {number} a helper Enum for getting milliseconds for a second/minute/hour/day/week/month.
|
|
103
|
+
* Month is considered in average of 30 days
|
|
104
|
+
* */
|
|
105
|
+
export declare enum Milliseconds {
|
|
106
|
+
Second = 1000,
|
|
107
|
+
Minute = 60000,
|
|
108
|
+
Hour = 3600000,
|
|
109
|
+
Day = 86400000,
|
|
110
|
+
Week = 604800000,
|
|
111
|
+
Month = 2592000000
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters
|
|
115
|
+
* @param {number} goalId - an id of a goal to track
|
|
116
|
+
* @param {number | undefined} revenue - an optional parameter for revenue, default value is `0`
|
|
117
|
+
* */
|
|
118
|
+
export type TrackConversionParamsType = {
|
|
119
|
+
visitorCode: string;
|
|
120
|
+
goalId: number;
|
|
121
|
+
revenue?: number;
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters
|
|
125
|
+
* @param {boolean | undefined} shouldAddData - optional parameter for adding retrieved data to the storage like `addData` method does, default value is `true`
|
|
126
|
+
* @param {VisitorDataFiltersType | undefined} filters - optional parameter for specifying the filters for which data should be retrieved from what visit, by default only latest `customData` is retrieved
|
|
127
|
+
* */
|
|
128
|
+
export type RemoteVisitorDataParamsType = {
|
|
129
|
+
visitorCode: string;
|
|
130
|
+
shouldAddData?: boolean;
|
|
131
|
+
filters?: VisitorDataFiltersType;
|
|
132
|
+
};
|
|
133
|
+
export type FeatureFlagType = {
|
|
134
|
+
id: number;
|
|
135
|
+
key: string;
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters
|
|
139
|
+
* @param {string} featureKey - key of the feature flag to look for, can be found on Kameleoon Platform
|
|
140
|
+
* @param {string} variableKey - key of the variable to be found for a feature flag with provided `featureKey`, can be found on Kameleoon Platform
|
|
141
|
+
* */
|
|
142
|
+
export type GetFeatureFlagVariableParamsType = {
|
|
143
|
+
visitorCode: string;
|
|
144
|
+
featureKey: string;
|
|
145
|
+
variableKey: string;
|
|
146
|
+
};
|
|
147
|
+
/**
|
|
148
|
+
* @param {string} visitorCode - unique visitor identification string, can't exceed 255 characters length
|
|
149
|
+
* @param {number} customDataIndex - index of the custom data in the warehouse audience
|
|
150
|
+
* @param {string | undefined} warehouseKey - unique key to identify the warehouse data (usually internal user ID)
|
|
151
|
+
* If not specified, the `visitorCode` will be used as a `warehouseKey`
|
|
152
|
+
* */
|
|
153
|
+
export type GetVisitorWarehouseAudienceParamsType = {
|
|
154
|
+
visitorCode: string;
|
|
155
|
+
customDataIndex: number;
|
|
156
|
+
warehouseKey?: string;
|
|
157
|
+
};
|
|
158
|
+
export type WarehouseAudienceType = {
|
|
159
|
+
warehouseAudiences: Record<string, unknown>;
|
|
160
|
+
};
|
|
161
|
+
/**
|
|
162
|
+
* @param {string} domain - domain which cookie belongs to
|
|
163
|
+
* @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters
|
|
164
|
+
* */
|
|
165
|
+
export type GetResultCookieParametersType = {
|
|
166
|
+
domain: string;
|
|
167
|
+
visitorCode: string;
|
|
168
|
+
};
|
|
169
|
+
/**
|
|
170
|
+
* @param {Request} request - request object to get the cookie from
|
|
171
|
+
* @param {Response} response - response object to write the updated cookie to
|
|
172
|
+
* @param {string} domain - domain which cookie belongs to
|
|
173
|
+
* @param {string | undefined} defaultVisitorCode - visitor code to be used in case there is no visitor code in cookies *Note*: if not passed visitor code will be randomly generated
|
|
174
|
+
* */
|
|
175
|
+
export type ServerGetVisitorCodeParametersType = {
|
|
176
|
+
request: IncomingMessage;
|
|
177
|
+
response: ServerResponse;
|
|
178
|
+
domain: string;
|
|
179
|
+
defaultVisitorCode?: string;
|
|
180
|
+
};
|
|
181
|
+
/**
|
|
182
|
+
* @param {string} domain - domain which cookie belongs to
|
|
183
|
+
* @param {string | undefined} defaultVisitorCode - visitor code to be used in case there is no visitor code in cookies *Note*: if not passed visitor code will be randomly generated
|
|
184
|
+
* */
|
|
185
|
+
export type ClientGetVisitorCodeParametersType = {
|
|
186
|
+
domain: string;
|
|
187
|
+
defaultVisitorCode?: string;
|
|
188
|
+
};
|
|
189
|
+
/**
|
|
190
|
+
* @param {string | undefined} defaultVisitorCode - visitor code to be used in case there is no visitor code in cookies *Note*: if not passed visitor code will be randomly generated
|
|
191
|
+
* */
|
|
192
|
+
export type MobileGetVisitorCodeParametersType = {
|
|
193
|
+
defaultVisitorCode?: string;
|
|
194
|
+
};
|
|
195
|
+
export type TrackingCacheItemType = {
|
|
196
|
+
[experimentId: number]: {
|
|
197
|
+
variationId: number;
|
|
198
|
+
expirationTime: number;
|
|
199
|
+
};
|
|
200
|
+
};
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.VariableType=exports.Milliseconds=exports.Environment=void 0;var Environment=function(a){return a.Production="production",a.Staging="staging",a.Development="development",a}({});exports.Environment=Environment;var VariableType=function(a){return a.BOOLEAN="BOOLEAN",a.NUMBER="NUMBER",a.STRING="STRING",a.JSON="JSON",a}({});exports.VariableType=VariableType;var Milliseconds=function(a){return a[a.Second=1000]="Second",a[a.Minute=60*a.Second]="Minute",a[a.Hour=60*a.Minute]="Hour",a[a.Day=24*a.Hour]="Day",a[a.Week=7*a.Day]="Week",a[a.Month=30*a.Day]="Month",a}({});exports.Milliseconds=Milliseconds;
|
|
2
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","names":["Environment","Production","Staging","Development","exports","VariableType","BOOLEAN","NUMBER","STRING","JSON","Milliseconds","Second","Minute","Hour","Day","Week","Month"],"sources":["../src/types.ts"],"sourcesContent":["import { IncomingMessage, ServerResponse } from 'http';\nimport { JSONType } from './clientConfiguration/types';\nimport { SdkLanguageType } from './constants';\nimport { IExternalEventSourceConstructor } from './eventSource';\nimport { IExternalStorageConstructor } from './storage';\nimport {\n IExternalRequestDispatcher,\n GetClientConfigurationResultType,\n} from './requester';\nimport { VisitorDataFiltersType } from './utilities';\n\n/**\n * @param {number} updateInterval - update interval in _minutes_ for sdk configuration, minimum value is 1 minute\n * @defaultvalue 60\n *\n * @param {Environment} environment - feature flag environment\n * @defaultvalue Environment.Production\n *\n * @param {number | undefined} targetingDataCleanupInterval - interval in _minutes_ for cleaning up targeting data, minimum value is 1 minute\n * Note: if not specified, default value will be used\n * @defaultvalue\n * - JavaScript SDK: `undefined` (no cleanup)\n * - React/React Native SDK: `undefined` (no cleanup)\n * - NodeJS SDK: `30`\n * */\nexport type SDKConfigurationType = {\n updateInterval?: number;\n environment?: Environment;\n targetingDataCleanupInterval?: number;\n};\n\n/**\n * @param {string} siteCode - client's siteCode defined on Kameleoon platform\n * @param {Partial<SDKConfigurationType>} configuration - client's configuration\n * @param {InternalSDKConfigurationType} internalConfiguration - internal configuration for sdk core to be initialized with certain parameters to certain type of JavaScript SDK\n * */\nexport type SDKCoreParameters = {\n siteCode: string;\n configuration?: Partial<SDKConfigurationType>;\n internalConfiguration: InternalSDKConfigurationType;\n};\n\n/**\n * @param {SdkLanguageType} type - type of the SDK\n * @param {string} version - version of the package\n * */\nexport type ExternalPackageInfoType = {\n type: SdkLanguageType;\n version: string;\n};\n\n/**\n * @param {IExternalStorage | undefined} externalStorage - external file system storage implemented outside client initialization\n * @param {IExternalEventSourceConstructor | undefined} externalEventSource - constructor for building external event source implementation\n * @param {ExternalPackageInfoType} externalPackageInfo - external package info, used to get package version and name\n * @param {GetClientConfigurationResultType} externalClientConfiguration - external fetched client configuration\n * @param {IExternalRequestDispatcher} externalRequestDispatcher - external request dispatcher, used to track data or get data\n * @param {number} targetingDataCleanupInterval - interval in *minutes* for cleaning up targeting data, minimum value is 1 minute\n * */\nexport type InternalSDKConfigurationType = {\n externalStorage: IExternalStorageConstructor;\n externalEventSource: IExternalEventSourceConstructor;\n externalPackageInfo: ExternalPackageInfoType;\n externalRequestDispatcher: IExternalRequestDispatcher;\n externalClientConfiguration?: GetClientConfigurationResultType;\n};\n\n/**\n * @readonly\n * @enum {string} an Enum containing all possible variants of environment, passed as an argument to KameleoonClient `configuration`s `environment` field\n * */\nexport enum Environment {\n Production = 'production',\n Staging = 'staging',\n Development = 'development',\n}\n\n/**\n * @readonly\n * @enum {string} an Enum containing all possible variants of feature variable types\n * */\nexport enum VariableType {\n BOOLEAN = 'BOOLEAN',\n NUMBER = 'NUMBER',\n STRING = 'STRING',\n JSON = 'JSON',\n}\n\nexport type BooleanVariableType = {\n type: VariableType.BOOLEAN;\n value: boolean;\n};\nexport type NumberVariableType = { type: VariableType.NUMBER; value: number };\nexport type StringVariableType = { type: VariableType.STRING; value: string };\nexport type JSONVariableType = { type: VariableType.JSON; value: JSONType };\n\n/**\n * @type FeatureVariableResultType - tuple of possible feature variable result types, each possible variation is an object containing `type` and `value` fields, `type` can be checked against `FeatureVariableType` enum, if the `type` is `FeatureVariableType.BOOLEAN` then the `value` type will be `boolean` and so on.\n * */\nexport type FeatureVariableResultType =\n | BooleanVariableType\n | NumberVariableType\n | StringVariableType\n | JSONVariableType;\n\n/**\n * @readonly\n * @enum {number} a helper Enum for getting milliseconds for a second/minute/hour/day/week/month.\n * Month is considered in average of 30 days\n * */\nexport enum Milliseconds {\n Second = 1000,\n Minute = 60 * Milliseconds.Second,\n Hour = 60 * Milliseconds.Minute,\n Day = 24 * Milliseconds.Hour,\n Week = 7 * Milliseconds.Day,\n Month = 30 * Milliseconds.Day,\n}\n\n/**\n * @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters\n * @param {number} goalId - an id of a goal to track\n * @param {number | undefined} revenue - an optional parameter for revenue, default value is `0`\n * */\nexport type TrackConversionParamsType = {\n visitorCode: string;\n goalId: number;\n revenue?: number;\n};\n\n/**\n * @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters\n * @param {boolean | undefined} shouldAddData - optional parameter for adding retrieved data to the storage like `addData` method does, default value is `true`\n * @param {VisitorDataFiltersType | undefined} filters - optional parameter for specifying the filters for which data should be retrieved from what visit, by default only latest `customData` is retrieved\n * */\nexport type RemoteVisitorDataParamsType = {\n visitorCode: string;\n shouldAddData?: boolean;\n filters?: VisitorDataFiltersType;\n};\n\nexport type FeatureFlagType = {\n id: number;\n key: string;\n};\n\n/**\n * @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters\n * @param {string} featureKey - key of the feature flag to look for, can be found on Kameleoon Platform\n * @param {string} variableKey - key of the variable to be found for a feature flag with provided `featureKey`, can be found on Kameleoon Platform\n * */\nexport type GetFeatureFlagVariableParamsType = {\n visitorCode: string;\n featureKey: string;\n variableKey: string;\n};\n\n/**\n * @param {string} visitorCode - unique visitor identification string, can't exceed 255 characters length\n * @param {number} customDataIndex - index of the custom data in the warehouse audience\n * @param {string | undefined} warehouseKey - unique key to identify the warehouse data (usually internal user ID)\n * If not specified, the `visitorCode` will be used as a `warehouseKey`\n * */\nexport type GetVisitorWarehouseAudienceParamsType = {\n visitorCode: string;\n customDataIndex: number;\n warehouseKey?: string;\n};\n\nexport type WarehouseAudienceType = {\n // --- Note ---\n // Using `unknown` type here because we don't care about the type of the value\n warehouseAudiences: Record<string, unknown>;\n};\n\n/**\n * @param {string} domain - domain which cookie belongs to\n * @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters\n * */\nexport type GetResultCookieParametersType = {\n domain: string;\n visitorCode: string;\n};\n\n/**\n * @param {Request} request - request object to get the cookie from\n * @param {Response} response - response object to write the updated cookie to\n * @param {string} domain - domain which cookie belongs to\n * @param {string | undefined} defaultVisitorCode - visitor code to be used in case there is no visitor code in cookies *Note*: if not passed visitor code will be randomly generated\n * */\nexport type ServerGetVisitorCodeParametersType = {\n request: IncomingMessage;\n response: ServerResponse;\n domain: string;\n defaultVisitorCode?: string;\n};\n\n/**\n * @param {string} domain - domain which cookie belongs to\n * @param {string | undefined} defaultVisitorCode - visitor code to be used in case there is no visitor code in cookies *Note*: if not passed visitor code will be randomly generated\n * */\nexport type ClientGetVisitorCodeParametersType = {\n domain: string;\n defaultVisitorCode?: string;\n};\n\n/**\n * @param {string | undefined} defaultVisitorCode - visitor code to be used in case there is no visitor code in cookies *Note*: if not passed visitor code will be randomly generated\n * */\nexport type MobileGetVisitorCodeParametersType = {\n defaultVisitorCode?: string;\n};\n\nexport type TrackingCacheItemType = {\n [experimentId: number]: { variationId: number; expirationTime: number };\n};\n"],"mappings":"4IAuEY,CAAAA,WAAW,UAAXA,CAAW,QAAX,CAAAA,CAAW,CAAAC,UAAA,cAAXD,CAAW,CAAAE,OAAA,WAAXF,CAAW,CAAAG,WAAA,eAAXH,CAAW,MAAAI,OAAA,CAAAJ,WAAA,CAAAA,WAAA,IAUX,CAAAK,YAAY,UAAZA,CAAY,QAAZ,CAAAA,CAAY,CAAAC,OAAA,WAAZD,CAAY,CAAAE,MAAA,UAAZF,CAAY,CAAAG,MAAA,UAAZH,CAAY,CAAAI,IAAA,QAAZJ,CAAY,MAAAD,OAAA,CAAAC,YAAA,CAAAA,YAAA,IA6BZ,CAAAK,YAAY,UAAZA,CAAY,QAAZ,CAAAA,CAAY,CAAZA,CAAY,CAAAC,MAAA,gBAAZD,CAAY,CAAZA,CAAY,CAAAE,MAAA,CAEb,EAAE,CAAGF,CAAY,CAACC,MAAM,WAFvBD,CAAY,CAAZA,CAAY,CAAAG,IAAA,CAGf,EAAE,CAAGH,CAAY,CAACE,MAAM,SAHrBF,CAAY,CAAZA,CAAY,CAAAI,GAAA,CAIhB,EAAE,CAAGJ,CAAY,CAACG,IAAI,QAJlBH,CAAY,CAAZA,CAAY,CAAAK,IAAA,CAKf,CAAC,CAAGL,CAAY,CAACI,GAAG,SALjBJ,CAAY,CAAZA,CAAY,CAAAM,KAAA,CAMd,EAAE,CAAGN,CAAY,CAACI,GAAG,UANnBJ,CAAY,MAAAN,OAAA,CAAAM,YAAA,CAAAA,YAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.VISITOR_CODE_MAX_LENGTH=exports.HEX_CHARACTERS=void 0;var VISITOR_CODE_MAX_LENGTH=255;exports.VISITOR_CODE_MAX_LENGTH=255;var HEX_CHARACTERS="0123456789ABCDEF";exports.HEX_CHARACTERS="0123456789ABCDEF";
|
|
2
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","names":["VISITOR_CODE_MAX_LENGTH","exports","HEX_CHARACTERS"],"sources":["../../src/utilities/constants.ts"],"sourcesContent":["export const VISITOR_CODE_MAX_LENGTH = 255;\nexport const HEX_CHARACTERS = '0123456789ABCDEF';\n"],"mappings":"kIAAO,GAAM,CAAAA,uBAAuB,CAAG,GAAG,CAACC,OAAA,CAAAD,uBAAA,KACpC,GAAM,CAAAE,cAAc,CAAG,kBAAkB,CAACD,OAAA,CAAAC,cAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"HEX_CHARACTERS",{enumerable:!0,get:function get(){return _constants.HEX_CHARACTERS}}),Object.defineProperty(exports,"TimeUnit",{enumerable:!0,get:function get(){return _types.TimeUnit}}),Object.defineProperty(exports,"Utilities",{enumerable:!0,get:function get(){return _utilities.Utilities}}),Object.defineProperty(exports,"VisitorDataFiltersType",{enumerable:!0,get:function get(){return _types.VisitorDataFiltersType}});var _utilities=require("./utilities"),_constants=require("./constants"),_types=require("./types");
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/utilities/index.ts"],"sourcesContent":["export { Utilities } from './utilities';\nexport { HEX_CHARACTERS } from './constants';\nexport { VisitorDataFiltersType, TimeUnit } from './types';\n"],"mappings":""}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { CacheManager } from '../cacheManager';
|
|
2
|
+
import { ClientConfiguration } from '../clientConfiguration';
|
|
3
|
+
import { DataManager } from '../kameleoonData';
|
|
4
|
+
import { KameleoonVisitorDataType } from '../kameleoonData/types';
|
|
5
|
+
import { Requester } from '../requester';
|
|
6
|
+
import { GetVisitorDataResultType, TrackDataParamsType, TrackExperimentParamsType } from '../requester/types';
|
|
7
|
+
import { IExternalStorage, OfflineTracking } from '../storage/types';
|
|
8
|
+
import { SegmentType } from '../targeting';
|
|
9
|
+
import { ExternalPackageInfoType, TrackingCacheItemType } from '../types';
|
|
10
|
+
import { VariationConfiguration, FeatureFlagVariationType } from '../variationConfiguration';
|
|
11
|
+
export type CheckTargetingParametersType = {
|
|
12
|
+
segment: SegmentType | null;
|
|
13
|
+
experimentId: number | null;
|
|
14
|
+
visitorCode: string;
|
|
15
|
+
packageInfo: ExternalPackageInfoType;
|
|
16
|
+
targetingData: KameleoonVisitorDataType;
|
|
17
|
+
clientConfiguration: ClientConfiguration;
|
|
18
|
+
variationConfiguration?: VariationConfiguration;
|
|
19
|
+
dataManager: DataManager;
|
|
20
|
+
};
|
|
21
|
+
export declare enum TimeUnit {
|
|
22
|
+
Minute = "MINUTE",
|
|
23
|
+
Hour = "HOUR",
|
|
24
|
+
Day = "DAY",
|
|
25
|
+
Week = "WEEK",
|
|
26
|
+
Month = "MONTH"
|
|
27
|
+
}
|
|
28
|
+
export declare enum Order {
|
|
29
|
+
Ascending = "asc",
|
|
30
|
+
Descending = "desc"
|
|
31
|
+
}
|
|
32
|
+
export type InsertInOrderedListParametersType = {
|
|
33
|
+
list: number[];
|
|
34
|
+
element: number;
|
|
35
|
+
order: Order;
|
|
36
|
+
};
|
|
37
|
+
export type ParseVisitorDataParametersType = {
|
|
38
|
+
data: GetVisitorDataResultType;
|
|
39
|
+
filters: VisitorDataFiltersType;
|
|
40
|
+
visitorCode: string;
|
|
41
|
+
variationConfiguration: VariationConfiguration;
|
|
42
|
+
};
|
|
43
|
+
export type TrackRuleParametersType = {
|
|
44
|
+
featureFlagVariation: FeatureFlagVariationType;
|
|
45
|
+
dataManager: DataManager;
|
|
46
|
+
visitorCode: string;
|
|
47
|
+
requester: Requester;
|
|
48
|
+
userAgent?: string;
|
|
49
|
+
isOfflineModeOn?: boolean;
|
|
50
|
+
offlineTrackingStorage: IExternalStorage<OfflineTracking>;
|
|
51
|
+
};
|
|
52
|
+
export type ManageCacheParametersType = {
|
|
53
|
+
cacheManager: CacheManager<TrackingCacheItemType>;
|
|
54
|
+
visitorCode: string;
|
|
55
|
+
experimentId: number;
|
|
56
|
+
variationId: number;
|
|
57
|
+
};
|
|
58
|
+
export type TrackDataParametersType = {
|
|
59
|
+
visitorCode: string;
|
|
60
|
+
dataManager: DataManager;
|
|
61
|
+
requester: Requester;
|
|
62
|
+
isOfflineModeOn?: boolean;
|
|
63
|
+
offlineTrackingStorage: IExternalStorage<OfflineTracking>;
|
|
64
|
+
};
|
|
65
|
+
export type TrackExperimentParametersType = {
|
|
66
|
+
clientConfiguration: ClientConfiguration;
|
|
67
|
+
visitorCode: string;
|
|
68
|
+
requester: Requester;
|
|
69
|
+
variationId: number;
|
|
70
|
+
experimentId: number;
|
|
71
|
+
isUnallocated: boolean;
|
|
72
|
+
isOfflineModeOn?: boolean;
|
|
73
|
+
offlineTrackingStorage: IExternalStorage<OfflineTracking>;
|
|
74
|
+
};
|
|
75
|
+
export type AddToOfflineTrackingParametersType = {
|
|
76
|
+
item: TrackExperimentParamsType | TrackDataParamsType;
|
|
77
|
+
isExperiment: boolean;
|
|
78
|
+
storage: IExternalStorage<OfflineTracking>;
|
|
79
|
+
onSuccess?: () => void;
|
|
80
|
+
};
|
|
81
|
+
export type SendOfflineTrackingParametersType = {
|
|
82
|
+
storage: IExternalStorage<OfflineTracking>;
|
|
83
|
+
requester: Requester;
|
|
84
|
+
};
|
|
85
|
+
export type DeleteFromOfflineTrackingParametersType = {
|
|
86
|
+
timestamps: number[];
|
|
87
|
+
storage: IExternalStorage<OfflineTracking>;
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* @param {number} visitAmount - Number of visits to retrieve data from. Number between `1` and `25`
|
|
91
|
+
* *Default*: `1`.
|
|
92
|
+
* @param {boolean} customData - If true, custom data will be retrieved.
|
|
93
|
+
* *Default*: `true`.
|
|
94
|
+
* @param {boolean} pageViews - If true, page data will be retrieved.
|
|
95
|
+
* *Default*: `false`.
|
|
96
|
+
* @param {boolean} geolocation - If true, geolocation data will be retrieved.
|
|
97
|
+
* *Default*: `false`.
|
|
98
|
+
* @param {boolean} device - If true, device data will be retrieved.
|
|
99
|
+
* *Default*: `false`.
|
|
100
|
+
* @param {boolean} browser - If true, browser data will be retrieved.
|
|
101
|
+
* *Default*: `false`.
|
|
102
|
+
* @param {boolean} operatingSystem - If true, operating system data will be retrieved.
|
|
103
|
+
* *Default*: `false`.
|
|
104
|
+
* @param {boolean} conversions - If true, conversion data will be retrieved.
|
|
105
|
+
* *Default*: `false`.
|
|
106
|
+
* @param {boolean} experiments - If true, experiment data will be retrieved.
|
|
107
|
+
* *Default*: `false`.
|
|
108
|
+
* */
|
|
109
|
+
export type VisitorDataFiltersType = {
|
|
110
|
+
visitAmount?: number;
|
|
111
|
+
pageViews?: boolean;
|
|
112
|
+
geolocation?: boolean;
|
|
113
|
+
device?: boolean;
|
|
114
|
+
browser?: boolean;
|
|
115
|
+
operatingSystem?: boolean;
|
|
116
|
+
customData?: boolean;
|
|
117
|
+
conversions?: boolean;
|
|
118
|
+
experiments?: boolean;
|
|
119
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.TimeUnit=exports.Order=void 0;var TimeUnit=function(a){return a.Minute="MINUTE",a.Hour="HOUR",a.Day="DAY",a.Week="WEEK",a.Month="MONTH",a}({});exports.TimeUnit=TimeUnit;var Order=function(a){return a.Ascending="asc",a.Descending="desc",a}({});exports.Order=Order;
|
|
2
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","names":["TimeUnit","Minute","Hour","Day","Week","Month","exports","Order","Ascending","Descending"],"sources":["../../src/utilities/types.ts"],"sourcesContent":["import { CacheManager } from 'src/cacheManager';\nimport { ClientConfiguration } from 'src/clientConfiguration';\nimport { DataManager } from 'src/kameleoonData';\nimport { KameleoonVisitorDataType } from 'src/kameleoonData/types';\nimport { Requester } from 'src/requester';\nimport {\n GetVisitorDataResultType,\n TrackDataParamsType,\n TrackExperimentParamsType,\n} from 'src/requester/types';\nimport { IExternalStorage, OfflineTracking } from 'src/storage/types';\nimport { SegmentType } from 'src/targeting';\nimport { ExternalPackageInfoType, TrackingCacheItemType } from 'src/types';\nimport {\n VariationConfiguration,\n FeatureFlagVariationType,\n} from 'src/variationConfiguration';\n\nexport type CheckTargetingParametersType = {\n segment: SegmentType | null;\n experimentId: number | null;\n visitorCode: string;\n packageInfo: ExternalPackageInfoType;\n targetingData: KameleoonVisitorDataType;\n clientConfiguration: ClientConfiguration;\n variationConfiguration?: VariationConfiguration;\n dataManager: DataManager;\n};\n\nexport enum TimeUnit {\n Minute = 'MINUTE',\n Hour = 'HOUR',\n Day = 'DAY',\n Week = 'WEEK',\n Month = 'MONTH',\n}\n\nexport enum Order {\n Ascending = 'asc',\n Descending = 'desc',\n}\n\nexport type InsertInOrderedListParametersType = {\n list: number[];\n element: number;\n order: Order;\n};\n\nexport type ParseVisitorDataParametersType = {\n data: GetVisitorDataResultType;\n filters: VisitorDataFiltersType;\n visitorCode: string;\n variationConfiguration: VariationConfiguration;\n};\n\nexport type TrackRuleParametersType = {\n featureFlagVariation: FeatureFlagVariationType;\n dataManager: DataManager;\n visitorCode: string;\n requester: Requester;\n userAgent?: string;\n isOfflineModeOn?: boolean;\n offlineTrackingStorage: IExternalStorage<OfflineTracking>;\n};\n\nexport type ManageCacheParametersType = {\n cacheManager: CacheManager<TrackingCacheItemType>;\n visitorCode: string;\n experimentId: number;\n variationId: number;\n};\n\nexport type TrackDataParametersType = {\n visitorCode: string;\n dataManager: DataManager;\n requester: Requester;\n isOfflineModeOn?: boolean;\n offlineTrackingStorage: IExternalStorage<OfflineTracking>;\n};\n\nexport type TrackExperimentParametersType = {\n clientConfiguration: ClientConfiguration;\n visitorCode: string;\n requester: Requester;\n variationId: number;\n experimentId: number;\n isUnallocated: boolean;\n isOfflineModeOn?: boolean;\n offlineTrackingStorage: IExternalStorage<OfflineTracking>;\n};\n\nexport type AddToOfflineTrackingParametersType = {\n item: TrackExperimentParamsType | TrackDataParamsType;\n isExperiment: boolean;\n storage: IExternalStorage<OfflineTracking>;\n onSuccess?: () => void;\n};\n\nexport type SendOfflineTrackingParametersType = {\n storage: IExternalStorage<OfflineTracking>;\n requester: Requester;\n};\n\nexport type DeleteFromOfflineTrackingParametersType = {\n timestamps: number[];\n storage: IExternalStorage<OfflineTracking>;\n};\n\n/**\n * @param {number} visitAmount - Number of visits to retrieve data from. Number between `1` and `25`\n * *Default*: `1`.\n * @param {boolean} customData - If true, custom data will be retrieved.\n * *Default*: `true`.\n * @param {boolean} pageViews - If true, page data will be retrieved.\n * *Default*: `false`.\n * @param {boolean} geolocation - If true, geolocation data will be retrieved.\n * *Default*: `false`.\n * @param {boolean} device - If true, device data will be retrieved.\n * *Default*: `false`.\n * @param {boolean} browser - If true, browser data will be retrieved.\n * *Default*: `false`.\n * @param {boolean} operatingSystem - If true, operating system data will be retrieved.\n * *Default*: `false`.\n * @param {boolean} conversions - If true, conversion data will be retrieved.\n * *Default*: `false`.\n * @param {boolean} experiments - If true, experiment data will be retrieved.\n * *Default*: `false`.\n * */\nexport type VisitorDataFiltersType = {\n visitAmount?: number;\n pageViews?: boolean;\n geolocation?: boolean;\n device?: boolean;\n browser?: boolean;\n operatingSystem?: boolean;\n customData?: boolean;\n conversions?: boolean;\n experiments?: boolean;\n};\n"],"mappings":"6GA6BY,CAAAA,QAAQ,UAARA,CAAQ,QAAR,CAAAA,CAAQ,CAAAC,MAAA,UAARD,CAAQ,CAAAE,IAAA,QAARF,CAAQ,CAAAG,GAAA,OAARH,CAAQ,CAAAI,IAAA,QAARJ,CAAQ,CAAAK,KAAA,SAARL,CAAQ,MAAAM,OAAA,CAAAN,QAAA,CAAAA,QAAA,IAQR,CAAAO,KAAK,UAALA,CAAK,QAAL,CAAAA,CAAK,CAAAC,SAAA,OAALD,CAAK,CAAAE,UAAA,QAALF,CAAK,MAAAD,OAAA,CAAAC,KAAA,CAAAA,KAAA"}
|