@kameleoon/javascript-sdk-core 2.4.6 → 2.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cacheManager/cacheManager.js +3 -65
- package/dist/cacheManager/cacheManager.js.map +1 -1
- package/dist/cacheManager/index.js +1 -19
- package/dist/cacheManager/index.js.map +1 -1
- package/dist/cacheManager/types.js +1 -5
- package/dist/campaignConfiguration/campaignConfiguration.d.ts +10 -7
- package/dist/campaignConfiguration/campaignConfiguration.js +9 -283
- package/dist/campaignConfiguration/campaignConfiguration.js.map +1 -1
- package/dist/campaignConfiguration/constants.d.ts +2 -10
- package/dist/campaignConfiguration/constants.js +2 -21
- package/dist/campaignConfiguration/constants.js.map +1 -1
- package/dist/campaignConfiguration/index.js +1 -86
- package/dist/campaignConfiguration/index.js.map +1 -1
- package/dist/campaignConfiguration/types.d.ts +8 -7
- package/dist/campaignConfiguration/types.js +1 -54
- package/dist/campaignConfiguration/types.js.map +1 -1
- package/dist/clientSettings/clientSettings.d.ts +1 -1
- package/dist/clientSettings/clientSettings.js +1 -35
- package/dist/clientSettings/clientSettings.js.map +1 -1
- package/dist/clientSettings/index.js +1 -19
- package/dist/clientSettings/index.js.map +1 -1
- package/dist/clientSettings/types.d.ts +1 -1
- package/dist/clientSettings/types.js +1 -5
- package/dist/clientSettings/types.js.map +1 -1
- package/dist/constants.d.ts +13 -4
- package/dist/constants.js +2 -36
- package/dist/constants.js.map +1 -1
- package/dist/eventSource/constants.js +1 -8
- package/dist/eventSource/constants.js.map +1 -1
- package/dist/eventSource/externalEventSource.js +1 -33
- package/dist/eventSource/externalEventSource.js.map +1 -1
- package/dist/eventSource/index.js +1 -50
- package/dist/eventSource/index.js.map +1 -1
- package/dist/eventSource/types.js +1 -5
- package/dist/hasher/hasher.js +6 -44
- package/dist/hasher/hasher.js.map +1 -1
- package/dist/hasher/index.js +1 -12
- package/dist/hasher/index.js.map +1 -1
- package/dist/hasher/types.d.ts +1 -1
- package/dist/hasher/types.js +1 -5
- package/dist/hasher/types.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -310
- package/dist/index.js.map +1 -1
- package/dist/kameleoonClient.d.ts +16 -4
- package/dist/kameleoonClient.js +10 -384
- package/dist/kameleoonClient.js.map +1 -1
- package/dist/kameleoonData/browser.d.ts +8 -3
- package/dist/kameleoonData/browser.js +9 -40
- package/dist/kameleoonData/browser.js.map +1 -1
- package/dist/kameleoonData/conversion.d.ts +2 -2
- package/dist/kameleoonData/conversion.js +5 -50
- package/dist/kameleoonData/conversion.js.map +1 -1
- package/dist/kameleoonData/customData.d.ts +2 -2
- package/dist/kameleoonData/customData.js +5 -55
- package/dist/kameleoonData/customData.js.map +1 -1
- package/dist/kameleoonData/device.d.ts +2 -2
- package/dist/kameleoonData/device.js +5 -40
- package/dist/kameleoonData/device.js.map +1 -1
- package/dist/kameleoonData/index.d.ts +1 -1
- package/dist/kameleoonData/index.js +1 -102
- package/dist/kameleoonData/index.js.map +1 -1
- package/dist/kameleoonData/pageView.d.ts +2 -2
- package/dist/kameleoonData/pageView.js +5 -56
- package/dist/kameleoonData/pageView.js.map +1 -1
- package/dist/kameleoonData/types.d.ts +44 -27
- package/dist/kameleoonData/types.js +6 -42
- package/dist/kameleoonData/types.js.map +1 -1
- package/dist/kameleoonData/userAgent.d.ts +2 -2
- package/dist/kameleoonData/userAgent.js +4 -37
- package/dist/kameleoonData/userAgent.js.map +1 -1
- package/dist/kameleoonError/constants.d.ts +4 -2
- package/dist/kameleoonError/constants.js +1 -31
- package/dist/kameleoonError/constants.js.map +1 -1
- package/dist/kameleoonError/helpers.js +1 -9
- package/dist/kameleoonError/helpers.js.map +1 -1
- package/dist/kameleoonError/index.js +1 -26
- package/dist/kameleoonError/index.js.map +1 -1
- package/dist/kameleoonError/kameleoonError.d.ts +3 -3
- package/dist/kameleoonError/kameleoonError.js +2 -75
- package/dist/kameleoonError/kameleoonError.js.map +1 -1
- package/dist/kameleoonError/types.d.ts +2 -0
- package/dist/kameleoonError/types.js +1 -31
- package/dist/kameleoonError/types.js.map +1 -1
- package/dist/kameleoonUtils.js +2 -44
- package/dist/kameleoonUtils.js.map +1 -1
- package/dist/requester/constants.js +1 -73
- package/dist/requester/constants.js.map +1 -1
- package/dist/requester/index.js +1 -80
- package/dist/requester/index.js.map +1 -1
- package/dist/requester/requester.d.ts +4 -5
- package/dist/requester/requester.js +1 -106
- package/dist/requester/requester.js.map +1 -1
- package/dist/requester/types.d.ts +8 -7
- package/dist/requester/types.js +1 -16
- package/dist/requester/types.js.map +1 -1
- package/dist/storage/constants.js +2 -15
- package/dist/storage/constants.js.map +1 -1
- package/dist/storage/externalStorage.d.ts +1 -1
- package/dist/storage/externalStorage.js +1 -40
- package/dist/storage/externalStorage.js.map +1 -1
- package/dist/storage/index.js +1 -56
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/types.d.ts +4 -4
- package/dist/storage/types.js +1 -5
- package/dist/storage/types.js.map +1 -1
- package/dist/targeting/conditions/browserCondition.d.ts +13 -0
- package/dist/targeting/conditions/browserCondition.js +2 -0
- package/dist/targeting/conditions/browserCondition.js.map +1 -0
- package/dist/targeting/conditions/conditionFactory.d.ts +1 -1
- package/dist/targeting/conditions/conditionFactory.js +1 -30
- package/dist/targeting/conditions/conditionFactory.js.map +1 -1
- package/dist/targeting/conditions/conversionCondition.d.ts +10 -0
- package/dist/targeting/conditions/conversionCondition.js +4 -0
- package/dist/targeting/conditions/conversionCondition.js.map +1 -0
- package/dist/targeting/conditions/customDataCondition.d.ts +5 -7
- package/dist/targeting/conditions/customDataCondition.js +7 -114
- package/dist/targeting/conditions/customDataCondition.js.map +1 -1
- package/dist/targeting/conditions/deviceCondition.d.ts +9 -0
- package/dist/targeting/conditions/deviceCondition.js +2 -0
- package/dist/targeting/conditions/deviceCondition.js.map +1 -0
- package/dist/targeting/conditions/exclusiveExperimentCondition.d.ts +3 -5
- package/dist/targeting/conditions/exclusiveExperimentCondition.js +1 -32
- package/dist/targeting/conditions/exclusiveExperimentCondition.js.map +1 -1
- package/dist/targeting/conditions/index.d.ts +7 -0
- package/dist/targeting/conditions/index.js +1 -46
- package/dist/targeting/conditions/index.js.map +1 -1
- package/dist/targeting/conditions/pageTitleCondition.d.ts +11 -0
- package/dist/targeting/conditions/pageTitleCondition.js +2 -0
- package/dist/targeting/conditions/pageTitleCondition.js.map +1 -0
- package/dist/targeting/conditions/pageUrlCondition.d.ts +11 -0
- package/dist/targeting/conditions/pageUrlCondition.js +2 -0
- package/dist/targeting/conditions/pageUrlCondition.js.map +1 -0
- package/dist/targeting/conditions/sdkLanguageCondition.d.ts +15 -0
- package/dist/targeting/conditions/sdkLanguageCondition.js +2 -0
- package/dist/targeting/conditions/sdkLanguageCondition.js.map +1 -0
- package/dist/targeting/conditions/targetExperimentCondition.d.ts +3 -4
- package/dist/targeting/conditions/targetExperimentCondition.js +1 -63
- package/dist/targeting/conditions/targetExperimentCondition.js.map +1 -1
- package/dist/targeting/conditions/types.d.ts +25 -6
- package/dist/targeting/conditions/types.js +1 -5
- package/dist/targeting/conditions/types.js.map +1 -1
- package/dist/targeting/conditions/visitorCodeCondition.d.ts +11 -0
- package/dist/targeting/conditions/visitorCodeCondition.js +2 -0
- package/dist/targeting/conditions/visitorCodeCondition.js.map +1 -0
- package/dist/targeting/index.d.ts +2 -2
- package/dist/targeting/index.js +1 -80
- package/dist/targeting/index.js.map +1 -1
- package/dist/targeting/targetingNode.d.ts +3 -1
- package/dist/targeting/targetingNode.js +1 -47
- package/dist/targeting/targetingNode.js.map +1 -1
- package/dist/targeting/targetingTree.d.ts +3 -1
- package/dist/targeting/targetingTree.js +34 -135
- package/dist/targeting/targetingTree.js.map +1 -1
- package/dist/targeting/types.d.ts +24 -9
- package/dist/targeting/types.js +1 -100
- package/dist/targeting/types.js.map +1 -1
- package/dist/types.d.ts +9 -4
- package/dist/types.js +12 -41
- package/dist/types.js.map +1 -1
- package/dist/utilities/constants.d.ts +1 -0
- package/dist/utilities/constants.js +1 -8
- package/dist/utilities/constants.js.map +1 -1
- package/dist/utilities/index.d.ts +1 -0
- package/dist/utilities/index.js +1 -12
- package/dist/utilities/index.js.map +1 -1
- package/dist/utilities/types.d.ts +14 -7
- package/dist/utilities/types.js +1 -5
- package/dist/utilities/types.js.map +1 -1
- package/dist/utilities/utilities.d.ts +12 -8
- package/dist/utilities/utilities.js +1 -216
- package/dist/utilities/utilities.js.map +1 -1
- package/dist/variationConfiguration/index.js +1 -25
- package/dist/variationConfiguration/index.js.map +1 -1
- package/dist/variationConfiguration/types.d.ts +5 -3
- package/dist/variationConfiguration/types.js +1 -5
- package/dist/variationConfiguration/types.js.map +1 -1
- package/dist/variationConfiguration/variation.d.ts +1 -1
- package/dist/variationConfiguration/variation.js +6 -44
- package/dist/variationConfiguration/variation.js.map +1 -1
- package/dist/variationConfiguration/variationConfiguration.d.ts +4 -4
- package/dist/variationConfiguration/variationConfiguration.js +65 -290
- package/dist/variationConfiguration/variationConfiguration.js.map +1 -1
- package/package.json +1 -1
- package/dist/kameleoonData/constants.d.ts +0 -1
- package/dist/kameleoonData/constants.js +0 -9
- package/dist/kameleoonData/constants.js.map +0 -1
- package/dist/kameleoonData/nonce.d.ts +0 -5
- package/dist/kameleoonData/nonce.js +0 -32
- package/dist/kameleoonData/nonce.js.map +0 -1
package/dist/kameleoonClient.js
CHANGED
|
@@ -1,389 +1,15 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.KameleoonClient = void 0;
|
|
7
|
-
var _tsRes = require("ts-res");
|
|
8
|
-
var _cacheManager = require("./cacheManager");
|
|
9
|
-
var _campaignConfiguration = require("./campaignConfiguration");
|
|
10
|
-
var _clientSettings = require("./clientSettings");
|
|
11
|
-
var _constants = require("./constants");
|
|
12
|
-
var _kameleoonData = require("./kameleoonData");
|
|
13
|
-
var _kameleoonError = require("./kameleoonError");
|
|
14
|
-
var _requester = require("./requester");
|
|
15
|
-
var _storage = require("./storage");
|
|
16
|
-
var _externalStorage = require("./storage/externalStorage");
|
|
17
|
-
var _utilities = require("./utilities");
|
|
18
|
-
var _variationConfiguration = require("./variationConfiguration");
|
|
19
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
20
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
21
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
22
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
23
|
-
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
24
|
-
/**
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.KameleoonClient=void 0;var _tsRes=require("ts-res"),_cacheManager=require("./cacheManager"),_campaignConfiguration=require("./campaignConfiguration"),_clientSettings=require("./clientSettings"),_constants=require("./constants"),_kameleoonData=require("./kameleoonData"),_kameleoonError=require("./kameleoonError"),_requester=require("./requester"),_storage=require("./storage"),_externalStorage=require("./storage/externalStorage"),_utilities=require("./utilities"),_variationConfiguration=require("./variationConfiguration");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 ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return 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 _regeneratorRuntime(){"use strict";/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */function a(a,b,c){return Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}),a[b]}function b(a,b,c,e){var f=b&&b.prototype instanceof d?b:d,g=Object.create(f.prototype),h=new m(e||[]);return s(g,"_invoke",{value:i(a,c,h)}),g}function c(a,b,c){try{return{type:"normal",arg:a.call(b,c)}}catch(a){return{type:"throw",arg:a}}}function d(){}function e(){}function f(){}function g(b){["next","throw","return"].forEach(function(c){a(b,c,function(a){return this._invoke(c,a)})})}function h(a,b){function d(e,f,g,h){var i=c(a[e],a,f);if("throw"!==i.type){var j=i.arg,k=j.value;return k&&"object"==_typeof(k)&&r.call(k,"__await")?b.resolve(k.__await).then(function(a){d("next",a,g,h)},function(a){d("throw",a,g,h)}):b.resolve(k).then(function(a){j.value=a,g(j)},function(a){return d("throw",a,g,h)})}h(i.arg)}var e;s(this,"_invoke",{value:function value(a,c){function f(){return new b(function(b,e){d(a,c,b,e)})}return e=e?e.then(f,f):f()}})}function i(a,b,d){var e="suspendedStart";return function(f,g){if("executing"==e)throw new Error("Generator is already running");if("completed"==e){if("throw"===f)throw g;return o()}for(d.method=f,d.arg=g;;){var h=d.delegate;if(h){var i=j(h,d);if(i){if(i===x)continue;return i}}if("next"===d.method)d.sent=d._sent=d.arg;else if("throw"===d.method){if("suspendedStart"==e)throw e="completed",d.arg;d.dispatchException(d.arg)}else"return"===d.method&&d.abrupt("return",d.arg);e="executing";var k=c(a,b,d);if("normal"===k.type){if(e=d.done?"completed":"suspendedYield",k.arg===x)continue;return{value:k.arg,done:d.done}}"throw"===k.type&&(e="completed",d.method="throw",d.arg=k.arg)}}}function j(a,b){var d=b.method,e=a.iterator[d];if(void 0===e)return b.delegate=null,"throw"===d&&a.iterator.return&&(b.method="return",b.arg=void 0,j(a,b),"throw"===b.method)||"return"!==d&&(b.method="throw",b.arg=new TypeError("The iterator does not provide a '"+d+"' method")),x;var f=c(e,a.iterator,b.arg);if("throw"===f.type)return b.method="throw",b.arg=f.arg,b.delegate=null,x;var g=f.arg;return g?g.done?(b[a.resultName]=g.value,b.next=a.nextLoc,"return"!==b.method&&(b.method="next",b.arg=void 0),b.delegate=null,x):g:(b.method="throw",b.arg=new TypeError("iterator result is not an object"),b.delegate=null,x)}function k(a){var b={tryLoc:a[0]};1 in a&&(b.catchLoc=a[1]),2 in a&&(b.finallyLoc=a[2],b.afterLoc=a[3]),this.tryEntries.push(b)}function l(a){var b=a.completion||{};b.type="normal",delete b.arg,a.completion=b}function m(a){this.tryEntries=[{tryLoc:"root"}],a.forEach(k,this),this.reset(!0)}function n(a){if(a){var b=a[u];if(b)return b.call(a);if("function"==typeof a.next)return a;if(!isNaN(a.length)){var c=-1,d=function b(){for(;++c<a.length;)if(r.call(a,c))return b.value=a[c],b.done=!1,b;return b.value=void 0,b.done=!0,b};return d.next=d}}return{next:o}}function o(){return{value:void 0,done:!0}}_regeneratorRuntime=function(){return p};var p={},q=Object.prototype,r=q.hasOwnProperty,s=Object.defineProperty||function(a,b,c){a[b]=c.value},t="function"==typeof Symbol?Symbol:{},u=t.iterator||"@@iterator",v=t.asyncIterator||"@@asyncIterator",w=t.toStringTag||"@@toStringTag";try{a({},"")}catch(b){a=function(a,b,c){return a[b]=c}}p.wrap=b;var x={},y={};a(y,u,function(){return this});var z=Object.getPrototypeOf,A=z&&z(z(n([])));A&&A!==q&&r.call(A,u)&&(y=A);var B=f.prototype=d.prototype=Object.create(y);return e.prototype=f,s(B,"constructor",{value:f,configurable:!0}),s(f,"constructor",{value:e,configurable:!0}),e.displayName=a(f,w,"GeneratorFunction"),p.isGeneratorFunction=function(a){var b="function"==typeof a&&a.constructor;return!!b&&(b===e||"GeneratorFunction"===(b.displayName||b.name))},p.mark=function(b){return Object.setPrototypeOf?Object.setPrototypeOf(b,f):(b.__proto__=f,a(b,w,"GeneratorFunction")),b.prototype=Object.create(B),b},p.awrap=function(a){return{__await:a}},g(h.prototype),a(h.prototype,v,function(){return this}),p.AsyncIterator=h,p.async=function(a,c,d,e,f){void 0===f&&(f=Promise);var g=new h(b(a,c,d,e),f);return p.isGeneratorFunction(c)?g:g.next().then(function(a){return a.done?a.value:g.next()})},g(B),a(B,w,"Generator"),a(B,u,function(){return this}),a(B,"toString",function(){return"[object Generator]"}),p.keys=function(a){var b=Object(a),c=[];for(var d in b)c.push(d);return c.reverse(),function a(){for(;c.length;){var d=c.pop();if(d in b)return a.value=d,a.done=!1,a}return a.done=!0,a}},p.values=n,m.prototype={constructor:m,reset:function reset(a){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(l),!a)for(var b in this)"t"===b.charAt(0)&&r.call(this,b)&&!isNaN(+b.slice(1))&&(this[b]=void 0)},stop:function stop(){this.done=!0;var a=this.tryEntries[0].completion;if("throw"===a.type)throw a.arg;return this.rval},dispatchException:function dispatchException(a){function b(b,d){return f.type="throw",f.arg=a,c.next=b,d&&(c.method="next",c.arg=void 0),!!d}if(this.done)throw a;for(var c=this,d=this.tryEntries.length-1;0<=d;--d){var e=this.tryEntries[d],f=e.completion;if("root"===e.tryLoc)return b("end");if(e.tryLoc<=this.prev){var g=r.call(e,"catchLoc"),h=r.call(e,"finallyLoc");if(g&&h){if(this.prev<e.catchLoc)return b(e.catchLoc,!0);if(this.prev<e.finallyLoc)return b(e.finallyLoc)}else if(!g){if(!h)throw new Error("try statement without catch or finally");if(this.prev<e.finallyLoc)return b(e.finallyLoc)}else if(this.prev<e.catchLoc)return b(e.catchLoc,!0)}}},abrupt:function abrupt(a,b){for(var c,d=this.tryEntries.length-1;0<=d;--d)if(c=this.tryEntries[d],c.tryLoc<=this.prev&&r.call(c,"finallyLoc")&&this.prev<c.finallyLoc){var e=c;break}e&&("break"===a||"continue"===a)&&e.tryLoc<=b&&b<=e.finallyLoc&&(e=null);var f=e?e.completion:{};return f.type=a,f.arg=b,e?(this.method="next",this.next=e.finallyLoc,x):this.complete(f)},complete:function complete(a,b){if("throw"===a.type)throw a.arg;return"break"===a.type||"continue"===a.type?this.next=a.arg:"return"===a.type?(this.rval=this.arg=a.arg,this.method="return",this.next="end"):"normal"===a.type&&b&&(this.next=b),x},finish:function finish(a){for(var b,c=this.tryEntries.length-1;0<=c;--c)if(b=this.tryEntries[c],b.finallyLoc===a)return this.complete(b.completion,b.afterLoc),l(b),x},catch:function _catch(a){for(var b,c=this.tryEntries.length-1;0<=c;--c)if(b=this.tryEntries[c],b.tryLoc===a){var d=b.completion;if("throw"===d.type){var e=d.arg;l(b)}return e}throw new Error("illegal catch attempt")},delegateYield:function delegateYield(a,b,c){return this.delegate={iterator:n(a),resultName:b,nextLoc:c},"next"===this.method&&(this.arg=void 0),x}},p}function asyncGeneratorStep(a,b,c,d,e,f,g){try{var h=a[f](g),i=h.value}catch(a){return void c(a)}h.done?b(i):Promise.resolve(i).then(d,e)}function _asyncToGenerator(a){return function(){var b=this,c=arguments;return new Promise(function(d,e){function f(a){asyncGeneratorStep(h,d,e,f,g,"next",a)}function g(a){asyncGeneratorStep(h,d,e,f,g,"throw",a)}var h=a.apply(b,c);f(void 0)})}}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)}/**
|
|
25
2
|
* @class
|
|
26
3
|
* KameleoonClient - a class for creating kameleoon client instance
|
|
27
4
|
* for communicating with Kameleoon JavaScript SDK Core, when new instance is created
|
|
28
|
-
*/
|
|
29
|
-
class KameleoonClient {
|
|
30
|
-
/**
|
|
5
|
+
*/var KameleoonClient=/*#__PURE__*/function(){/**
|
|
31
6
|
* @param {SDKCoreParameters} sdkCoreParameters - parameters for initializing sdk core
|
|
32
|
-
*/
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
_defineProperty(this, "variationDataStorage", void 0);
|
|
41
|
-
_defineProperty(this, "trackingCache", void 0);
|
|
42
|
-
_defineProperty(this, "requester", void 0);
|
|
43
|
-
_defineProperty(this, "externalEventSource", void 0);
|
|
44
|
-
const {
|
|
45
|
-
settings: clientSettings
|
|
46
|
-
} = new _clientSettings.ClientSettings(siteCode, configuration);
|
|
47
|
-
const {
|
|
48
|
-
externalStorage,
|
|
49
|
-
externalEventSource,
|
|
50
|
-
externalPackageInfo,
|
|
51
|
-
externalRequestDispatcher,
|
|
52
|
-
externalClientConfiguration
|
|
53
|
-
} = internalConfiguration;
|
|
54
|
-
const requester = new _requester.Requester({
|
|
55
|
-
siteCode,
|
|
56
|
-
environment: clientSettings.environment,
|
|
57
|
-
packageInfo: externalPackageInfo,
|
|
58
|
-
requestDispatcher: externalRequestDispatcher
|
|
59
|
-
});
|
|
60
|
-
const trackingCache = new _cacheManager.CacheManager(_constants.CACHE_CLEANUP_TIMEOUT);
|
|
61
|
-
const clientDataStorage = new _externalStorage.ExternalStorage(externalStorage.initialize(_storage.KameleoonStorageKey.ClientData));
|
|
62
|
-
const variationDataStorage = new _externalStorage.ExternalStorage(externalStorage.initialize(_storage.KameleoonStorageKey.VariationData));
|
|
63
|
-
const campaignConfiguration = new _campaignConfiguration.CampaignConfiguration({
|
|
64
|
-
settings: clientSettings,
|
|
65
|
-
storage: clientDataStorage,
|
|
66
|
-
requester,
|
|
67
|
-
externalClientConfiguration,
|
|
68
|
-
targetingCleanupInterval: configuration?.targetingDataCleanupInterval
|
|
69
|
-
});
|
|
70
|
-
this.requester = requester;
|
|
71
|
-
this.trackingCache = trackingCache;
|
|
72
|
-
this.campaignConfiguration = campaignConfiguration;
|
|
73
|
-
this.variationDataStorage = variationDataStorage;
|
|
74
|
-
this.externalEventSource = externalEventSource;
|
|
75
|
-
}
|
|
76
|
-
async initialize(useCache) {
|
|
77
|
-
const result = await this.campaignConfiguration.initialize(this.externalEventSource, useCache);
|
|
78
|
-
result.throw();
|
|
79
|
-
const variationConfiguration = new _variationConfiguration.VariationConfiguration(this.campaignConfiguration.experiments, this.variationDataStorage);
|
|
80
|
-
this.variationConfiguration = variationConfiguration;
|
|
81
|
-
return result.ok;
|
|
82
|
-
}
|
|
83
|
-
addData(visitorCode, ...data) {
|
|
84
|
-
_utilities.Utilities.validateVisitorCode(visitorCode).throw();
|
|
85
|
-
if (!this.campaignConfiguration) {
|
|
86
|
-
throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);
|
|
87
|
-
}
|
|
88
|
-
this.campaignConfiguration.addTargetingData(visitorCode, ...data).throw();
|
|
89
|
-
}
|
|
90
|
-
async getRemoteVisitorData(visitorCode, shouldAddData = true) {
|
|
91
|
-
const result = await this.requester.getVisitorData(visitorCode);
|
|
92
|
-
const data = result.throw();
|
|
93
|
-
const visitorData = _utilities.Utilities.parseVisitorData(data);
|
|
94
|
-
if (shouldAddData) {
|
|
95
|
-
for (const item of visitorData) {
|
|
96
|
-
this.addData(visitorCode, item);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
return visitorData;
|
|
100
|
-
}
|
|
101
|
-
triggerExperiment(visitorCode, experimentId) {
|
|
102
|
-
_utilities.Utilities.validateVisitorCode(visitorCode).throw();
|
|
103
|
-
if (!this.campaignConfiguration || !this.variationConfiguration) {
|
|
104
|
-
throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);
|
|
105
|
-
}
|
|
106
|
-
const experiment = this.campaignConfiguration.experiments.find(item => item.id === String(experimentId));
|
|
107
|
-
if (!experiment) {
|
|
108
|
-
throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.ExperimentConfigurationNotFound, experimentId, visitorCode);
|
|
109
|
-
}
|
|
110
|
-
const userAgent = _utilities.Utilities.getUserAgent(visitorCode, this.campaignConfiguration);
|
|
111
|
-
const dataUrl = _utilities.Utilities.getDataUrl(visitorCode, this.campaignConfiguration);
|
|
112
|
-
const targetingData = this.campaignConfiguration.storedTargetingData[visitorCode];
|
|
113
|
-
const trackingParameters = {
|
|
114
|
-
body: dataUrl,
|
|
115
|
-
visitorCode,
|
|
116
|
-
experimentId
|
|
117
|
-
};
|
|
118
|
-
let variationId = _constants.UNALLOCATED_VARIATION_ID;
|
|
119
|
-
const targetingResult = _utilities.Utilities.checkTargeting({
|
|
120
|
-
visitorCode,
|
|
121
|
-
experimentId,
|
|
122
|
-
targetingData,
|
|
123
|
-
segment: experiment.segment,
|
|
124
|
-
variationConfiguration: this.variationConfiguration
|
|
125
|
-
}).throw();
|
|
126
|
-
variationId = this.variationConfiguration.getAssociatedVariationId(visitorCode, experimentId).else(error => {
|
|
127
|
-
if (error.type === _kameleoonError.KameleoonException.NotAllocated) {
|
|
128
|
-
this.requester.trackExperiment(_objectSpread({
|
|
129
|
-
isUnallocated: true,
|
|
130
|
-
variationId,
|
|
131
|
-
userAgent
|
|
132
|
-
}, trackingParameters));
|
|
133
|
-
return _constants.UNALLOCATED_VARIATION_ID;
|
|
134
|
-
}
|
|
135
|
-
throw error;
|
|
136
|
-
});
|
|
137
|
-
this.requester.trackExperiment(_objectSpread({
|
|
138
|
-
variationId,
|
|
139
|
-
isUnallocated: false,
|
|
140
|
-
userAgent
|
|
141
|
-
}, trackingParameters));
|
|
142
|
-
if (!targetingResult) {
|
|
143
|
-
throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.NotTargeted, visitorCode);
|
|
144
|
-
}
|
|
145
|
-
_utilities.Utilities.updateCache({
|
|
146
|
-
cacheManager: this.trackingCache,
|
|
147
|
-
visitorCode,
|
|
148
|
-
experimentId,
|
|
149
|
-
variationId
|
|
150
|
-
});
|
|
151
|
-
return variationId;
|
|
152
|
-
}
|
|
153
|
-
trackConversion({
|
|
154
|
-
visitorCode,
|
|
155
|
-
goalId,
|
|
156
|
-
revenue
|
|
157
|
-
}) {
|
|
158
|
-
this.addData(visitorCode, new _kameleoonData.Conversion({
|
|
159
|
-
goalId,
|
|
160
|
-
revenue
|
|
161
|
-
}));
|
|
162
|
-
this.flushData(visitorCode);
|
|
163
|
-
}
|
|
164
|
-
flushData(visitorCode) {
|
|
165
|
-
if (!this.campaignConfiguration) {
|
|
166
|
-
throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);
|
|
167
|
-
}
|
|
168
|
-
const dataUrl = _utilities.Utilities.getDataUrl(visitorCode, this.campaignConfiguration);
|
|
169
|
-
const userAgent = _utilities.Utilities.getUserAgent(visitorCode, this.campaignConfiguration);
|
|
170
|
-
this.requester.trackData({
|
|
171
|
-
visitorCode,
|
|
172
|
-
body: dataUrl,
|
|
173
|
-
userAgent
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
getExperiments() {
|
|
177
|
-
if (!this.campaignConfiguration) {
|
|
178
|
-
throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);
|
|
179
|
-
}
|
|
180
|
-
return this.campaignConfiguration.experiments.map(({
|
|
181
|
-
id,
|
|
182
|
-
name
|
|
183
|
-
}) => ({
|
|
184
|
-
id: Number(id),
|
|
185
|
-
name
|
|
186
|
-
}));
|
|
187
|
-
}
|
|
188
|
-
getVisitorExperiments(visitorCode, isActive = true) {
|
|
189
|
-
if (!this.variationConfiguration || !this.campaignConfiguration) {
|
|
190
|
-
throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);
|
|
191
|
-
}
|
|
192
|
-
_utilities.Utilities.validateVisitorCode(visitorCode).throw();
|
|
193
|
-
const experiments = this.campaignConfiguration.experiments;
|
|
194
|
-
const result = [];
|
|
195
|
-
const targetingData = this.campaignConfiguration.storedTargetingData[visitorCode];
|
|
196
|
-
for (const experiment of experiments) {
|
|
197
|
-
const {
|
|
198
|
-
id,
|
|
199
|
-
name,
|
|
200
|
-
segment
|
|
201
|
-
} = experiment;
|
|
202
|
-
const targetingResult = _utilities.Utilities.checkTargeting({
|
|
203
|
-
targetingData,
|
|
204
|
-
visitorCode,
|
|
205
|
-
segment,
|
|
206
|
-
variationConfiguration: this.variationConfiguration,
|
|
207
|
-
experimentId: Number(id)
|
|
208
|
-
}).throw();
|
|
209
|
-
if (!targetingResult) {
|
|
210
|
-
continue;
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
// -- If `isActive=false` then return every experiment
|
|
214
|
-
if (!isActive) {
|
|
215
|
-
result.push({
|
|
216
|
-
id: Number(id),
|
|
217
|
-
name
|
|
218
|
-
});
|
|
219
|
-
continue;
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
// -- Else first check if there are saved variations for the experiment
|
|
223
|
-
// if there is at least one than it's active
|
|
224
|
-
const experimentVariations = this.variationConfiguration.getAssignedVariations(visitorCode);
|
|
225
|
-
if (experimentVariations.ok) {
|
|
226
|
-
const experimentVariation = experimentVariations.data[experiment.id];
|
|
227
|
-
if (experimentVariation) {
|
|
228
|
-
result.push({
|
|
229
|
-
id: Number(id),
|
|
230
|
-
name
|
|
231
|
-
});
|
|
232
|
-
continue;
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
// -- Second check if the experiment will have an allocated variation upon triggering
|
|
237
|
-
// if yes than it's active
|
|
238
|
-
const variationResult = this.variationConfiguration.getExperimentVariation(visitorCode, experiment);
|
|
239
|
-
if (variationResult.ok) {
|
|
240
|
-
result.push({
|
|
241
|
-
id: Number(id),
|
|
242
|
-
name
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
return result;
|
|
247
|
-
}
|
|
248
|
-
getExperimentVariationData(variationId) {
|
|
249
|
-
if (!this.campaignConfiguration) {
|
|
250
|
-
throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);
|
|
251
|
-
}
|
|
252
|
-
const experiments = this.campaignConfiguration.experiments;
|
|
253
|
-
for (const experiment of experiments) {
|
|
254
|
-
const variation = experiment.variations.find(item => item.id === String(variationId));
|
|
255
|
-
if (variation) {
|
|
256
|
-
try {
|
|
257
|
-
return JSON.parse(variation.customJson);
|
|
258
|
-
} catch (err) {
|
|
259
|
-
throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.JSONParse, err);
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.VariationNotFound);
|
|
264
|
-
}
|
|
265
|
-
getFeatureFlags() {
|
|
266
|
-
if (!this.campaignConfiguration) {
|
|
267
|
-
throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);
|
|
268
|
-
}
|
|
269
|
-
return this.campaignConfiguration.featureFlags.map(({
|
|
270
|
-
id,
|
|
271
|
-
featureKey
|
|
272
|
-
}) => ({
|
|
273
|
-
id,
|
|
274
|
-
key: featureKey
|
|
275
|
-
}));
|
|
276
|
-
}
|
|
277
|
-
getVisitorFeatureFlags(visitorCode) {
|
|
278
|
-
if (!this.variationConfiguration || !this.campaignConfiguration) {
|
|
279
|
-
throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);
|
|
280
|
-
}
|
|
281
|
-
const featureFlags = this.campaignConfiguration.featureFlags;
|
|
282
|
-
const resultFeatureFlags = [];
|
|
283
|
-
const targetingData = this.campaignConfiguration.storedTargetingData[visitorCode];
|
|
284
|
-
for (const featureFlag of featureFlags) {
|
|
285
|
-
const variationData = this.variationConfiguration.getFeatureFlagVariation({
|
|
286
|
-
visitorCode,
|
|
287
|
-
targetingData,
|
|
288
|
-
featureFlag
|
|
289
|
-
}).throw();
|
|
290
|
-
if (variationData.variationKey !== _constants.OFF_VARIATION_KEY) {
|
|
291
|
-
const {
|
|
292
|
-
featureFlagId,
|
|
293
|
-
featureKey
|
|
294
|
-
} = variationData;
|
|
295
|
-
resultFeatureFlags.push({
|
|
296
|
-
id: featureFlagId,
|
|
297
|
-
key: featureKey
|
|
298
|
-
});
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
return resultFeatureFlags;
|
|
302
|
-
}
|
|
303
|
-
getFeatureFlagVariationKey(visitorCode, featureKey) {
|
|
304
|
-
const {
|
|
305
|
-
variationKey
|
|
306
|
-
} = this._getFeatureFlagVariation(visitorCode, featureKey).throw();
|
|
307
|
-
return variationKey;
|
|
308
|
-
}
|
|
309
|
-
getFeatureFlagVariable({
|
|
310
|
-
visitorCode,
|
|
311
|
-
featureKey,
|
|
312
|
-
variableKey
|
|
313
|
-
}) {
|
|
314
|
-
const {
|
|
315
|
-
variationKey
|
|
316
|
-
} = this._getFeatureFlagVariation(visitorCode, featureKey).throw();
|
|
317
|
-
|
|
318
|
-
// --- Note ---
|
|
319
|
-
// `_getFeatureFlagVariation` already checks `campaignConfiguration` initialization
|
|
320
|
-
const featureFlags = this.campaignConfiguration.featureFlags;
|
|
321
|
-
const featureFlag = featureFlags.find(item => item.featureKey === featureKey);
|
|
322
|
-
if (!featureFlag) {
|
|
323
|
-
throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.FeatureFlagConfigurationNotFound, featureKey, visitorCode);
|
|
324
|
-
}
|
|
325
|
-
const variable = featureFlag.variations.find(item => item.key === variationKey)?.variables.find(item => item.key === variableKey);
|
|
326
|
-
if (!variable) {
|
|
327
|
-
throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.FeatureFlagVariableNotFound, variableKey, visitorCode);
|
|
328
|
-
}
|
|
329
|
-
const featureVariable = _utilities.Utilities.parseFeatureVariable(variable).throw();
|
|
330
|
-
return featureVariable;
|
|
331
|
-
}
|
|
332
|
-
isFeatureFlagActive(visitorCode, featureKey) {
|
|
333
|
-
const variationKey = this.getFeatureFlagVariationKey(visitorCode, featureKey);
|
|
334
|
-
return variationKey !== _constants.OFF_VARIATION_KEY;
|
|
335
|
-
}
|
|
336
|
-
async getRemoteData(key) {
|
|
337
|
-
const remoteData = await this.requester.getRemoteData(key);
|
|
338
|
-
return remoteData.throw();
|
|
339
|
-
}
|
|
340
|
-
onConfigurationUpdate(callback) {
|
|
341
|
-
if (!this.campaignConfiguration) {
|
|
342
|
-
throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);
|
|
343
|
-
}
|
|
344
|
-
this.campaignConfiguration.onConfigurationUpdate(callback);
|
|
345
|
-
}
|
|
346
|
-
getEngineTrackingCode(visitorCode) {
|
|
347
|
-
return _utilities.Utilities.getTrackingCode(this.trackingCache, visitorCode);
|
|
348
|
-
}
|
|
349
|
-
_getFeatureFlagVariation(visitorCode, featureKey) {
|
|
350
|
-
if (!this.variationConfiguration || !this.campaignConfiguration) {
|
|
351
|
-
return (0, _tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization));
|
|
352
|
-
}
|
|
353
|
-
const featureFlags = this.campaignConfiguration.featureFlags;
|
|
354
|
-
const featureFlag = featureFlags.find(item => item.featureKey === featureKey);
|
|
355
|
-
if (!featureFlag) {
|
|
356
|
-
return (0, _tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.FeatureFlagConfigurationNotFound, featureKey, visitorCode));
|
|
357
|
-
}
|
|
358
|
-
const targetingData = this.campaignConfiguration.storedTargetingData[visitorCode];
|
|
359
|
-
const variationData = this.variationConfiguration.getFeatureFlagVariation({
|
|
360
|
-
visitorCode,
|
|
361
|
-
featureFlag,
|
|
362
|
-
targetingData,
|
|
363
|
-
withAssignment: true
|
|
364
|
-
}).throw();
|
|
365
|
-
const {
|
|
366
|
-
experimentId,
|
|
367
|
-
variationId
|
|
368
|
-
} = variationData;
|
|
369
|
-
if (typeof variationId === 'number' && typeof experimentId === 'number') {
|
|
370
|
-
_utilities.Utilities.updateCache({
|
|
371
|
-
cacheManager: this.trackingCache,
|
|
372
|
-
visitorCode,
|
|
373
|
-
experimentId,
|
|
374
|
-
variationId
|
|
375
|
-
});
|
|
376
|
-
}
|
|
377
|
-
const userAgent = _utilities.Utilities.getUserAgent(visitorCode, this.campaignConfiguration);
|
|
378
|
-
_utilities.Utilities.trackRule({
|
|
379
|
-
visitorCode,
|
|
380
|
-
requester: this.requester,
|
|
381
|
-
featureFlagVariation: variationData,
|
|
382
|
-
campaignConfiguration: this.campaignConfiguration,
|
|
383
|
-
userAgent
|
|
384
|
-
});
|
|
385
|
-
return (0, _tsRes.Ok)(variationData);
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
exports.KameleoonClient = KameleoonClient;
|
|
7
|
+
*/function a(b){var c=b.siteCode,d=b.configuration,e=b.internalConfiguration;_classCallCheck(this,a),_defineProperty(this,"variationConfiguration",void 0),_defineProperty(this,"campaignConfiguration",void 0),_defineProperty(this,"variationDataStorage",void 0),_defineProperty(this,"trackingCache",void 0),_defineProperty(this,"requester",void 0),_defineProperty(this,"externalEventSource",void 0),_defineProperty(this,"externalPackageInfo",void 0);var f=new _clientSettings.ClientSettings(c,d),g=f.settings,h=e.externalStorage,i=e.externalEventSource,j=e.externalPackageInfo,k=e.externalRequestDispatcher,l=e.externalClientConfiguration,m=new _requester.Requester({siteCode:c,environment:g.environment,packageInfo:j,requestDispatcher:k}),n=new _cacheManager.CacheManager(_constants.CACHE_CLEANUP_TIMEOUT),o=new _externalStorage.ExternalStorage(h.initialize(_storage.KameleoonStorageKey.ClientData)),p=new _externalStorage.ExternalStorage(h.initialize(_storage.KameleoonStorageKey.VariationData)),q=new _campaignConfiguration.CampaignConfiguration({settings:g,storage:o,requester:m,externalClientConfiguration:l,targetingCleanupInterval:null===d||void 0===d?void 0:d.targetingDataCleanupInterval});this.requester=m,this.trackingCache=n,this.campaignConfiguration=q,this.variationDataStorage=p,this.externalEventSource=i,this.externalPackageInfo=j}return _createClass(a,[{key:"initialize",value:function(){function a(){return b.apply(this,arguments)}var b=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function b(a){var c,d;return _regeneratorRuntime().wrap(function e(b){for(;1;)switch(b.prev=b.next){case 0:return b.next=2,this.campaignConfiguration.initialize(this.externalEventSource,a);case 2:return c=b.sent,c.throw(),d=new _variationConfiguration.VariationConfiguration(this.campaignConfiguration.experiments,this.variationDataStorage),this.variationConfiguration=d,b.abrupt("return",c.ok);case 7:case"end":return b.stop();}},b,this)}));return a}()},{key:"addData",value:function addData(a){var b;if(_utilities.Utilities.validateVisitorCode(a).throw(),!this.campaignConfiguration)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);for(var c=arguments.length,d=Array(1<c?c-1:0),e=1;e<c;e++)d[e-1]=arguments[e];(b=this.campaignConfiguration).addTargetingData.apply(b,[a].concat(d)).throw()}},{key:"getRemoteVisitorData",value:function(){function a(a){return b.apply(this,arguments)}var b=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function b(a){var c,d,e,f,g,h,i,j=arguments;return _regeneratorRuntime().wrap(function k(b){for(;1;)switch(b.prev=b.next){case 0:return c=!(1<j.length&&void 0!==j[1])||j[1],b.next=3,this.requester.getVisitorData(a);case 3:if(d=b.sent,e=d.throw(),f=_utilities.Utilities.parseVisitorData(e),c){g=_createForOfIteratorHelper(f);try{for(g.s();!(h=g.n()).done;)i=h.value,this.addData(a,i)}catch(a){g.e(a)}finally{g.f()}}return b.abrupt("return",f);case 8:case"end":return b.stop();}},b,this)}));return a}()},{key:"triggerExperiment",value:function triggerExperiment(a,b){var c=this;if(_utilities.Utilities.validateVisitorCode(a).throw(),!this.campaignConfiguration||!this.variationConfiguration)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);var d=this.campaignConfiguration.experiments.find(function(a){return a.id===b+""});if(!d)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.ExperimentConfigurationNotFound,b,a);var e=_utilities.Utilities.getUserAgent(a,this.campaignConfiguration),f=_utilities.Utilities.getDataUrl(a,this.campaignConfiguration),g=this.campaignConfiguration.storedTargetingData[a],h={body:f,visitorCode:a,experimentId:b},i=_constants.UNALLOCATED_VARIATION_ID,j=_utilities.Utilities.checkTargeting({visitorCode:a,experimentId:b,targetingData:g,segment:d.segment,variationConfiguration:this.variationConfiguration,packageInfo:this.externalPackageInfo}).throw();if(i=this.variationConfiguration.getAssociatedVariationId(a,b).else(function(a){if(a.type===_kameleoonError.KameleoonException.NotAllocated)return c.requester.trackExperiment(_objectSpread({isUnallocated:!0,variationId:i,userAgent:e},h)),_constants.UNALLOCATED_VARIATION_ID;throw a}),this.requester.trackExperiment(_objectSpread({variationId:i,isUnallocated:!1,userAgent:e},h)),!j)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.NotTargeted,a);return _utilities.Utilities.updateCache({cacheManager:this.trackingCache,visitorCode:a,experimentId:b,variationId:i}),i}},{key:"trackConversion",value:function trackConversion(a){var b=a.visitorCode,c=a.goalId,d=a.revenue;this.addData(b,new _kameleoonData.Conversion({goalId:c,revenue:d})),this.flushData(b)}},{key:"flushData",value:function flushData(a){if(!this.campaignConfiguration)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);if("string"==typeof a&&_utilities.Utilities.validateVisitorCode(a).throw(),a)return void _utilities.Utilities.trackData({visitorCode:a,campaignConfiguration:this.campaignConfiguration,requester:this.requester});var b,c=_createForOfIteratorHelper(this.campaignConfiguration.unsentDataVisitors);try{for(c.s();!(b=c.n()).done;){var d=b.value;_utilities.Utilities.trackData({visitorCode:d,campaignConfiguration:this.campaignConfiguration,requester:this.requester})}}catch(a){c.e(a)}finally{c.f()}}},{key:"getExperiments",value:function getExperiments(){if(!this.campaignConfiguration)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);return this.campaignConfiguration.experiments.map(function(a){var b=a.id,c=a.name;return{id:+b,name:c}})}},{key:"getVisitorExperiments",value:function getVisitorExperiments(a){var b=!(1<arguments.length&&void 0!==arguments[1])||arguments[1];if(!this.variationConfiguration||!this.campaignConfiguration)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);_utilities.Utilities.validateVisitorCode(a).throw();var c,d=this.campaignConfiguration.experiments,e=[],f=this.campaignConfiguration.storedTargetingData[a],g=_createForOfIteratorHelper(d);try{for(g.s();!(c=g.n()).done;){var h=c.value,i=h.id,j=h.name,k=h.segment,l=_utilities.Utilities.checkTargeting({targetingData:f,visitorCode:a,segment:k,variationConfiguration:this.variationConfiguration,experimentId:+i,packageInfo:this.externalPackageInfo}).throw();if(l){// -- If `isActive=false` then return every experiment
|
|
8
|
+
if(!b){e.push({id:+i,name:j});continue}// -- Else first check if there are saved variations for the experiment
|
|
9
|
+
// if there is at least one than it's active
|
|
10
|
+
var m=this.variationConfiguration.getAssignedVariations(a);if(m.ok){var n=m.data[h.id];if(n){e.push({id:+i,name:j});continue}}// -- Second check if the experiment will have an allocated variation upon triggering
|
|
11
|
+
// if yes than it's active
|
|
12
|
+
var o=this.variationConfiguration.getExperimentVariation(a,h);o.ok&&e.push({id:+i,name:j})}}}catch(a){g.e(a)}finally{g.f()}return e}},{key:"getExperimentVariationData",value:function getExperimentVariationData(a){if(!this.campaignConfiguration)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);var b,c=this.campaignConfiguration.experiments,d=_createForOfIteratorHelper(c);try{for(d.s();!(b=d.n()).done;){var e=b.value,f=e.variations.find(function(b){return b.id===a+""});if(f)try{return JSON.parse(f.customJson)}catch(a){throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.JSONParse,a)}}}catch(a){d.e(a)}finally{d.f()}throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.VariationNotFound)}},{key:"getFeatureFlags",value:function getFeatureFlags(){if(!this.campaignConfiguration)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);return this.campaignConfiguration.featureFlags.map(function(a){var b=a.id,c=a.featureKey;return{id:b,key:c}})}},{key:"getVisitorFeatureFlags",value:function getVisitorFeatureFlags(a){if(!this.variationConfiguration||!this.campaignConfiguration)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);var b,c=this.campaignConfiguration.featureFlags,d=[],e=this.campaignConfiguration.storedTargetingData[a],f=_createForOfIteratorHelper(c);try{for(f.s();!(b=f.n()).done;){var g=b.value,h=this.variationConfiguration.getFeatureFlagVariation({visitorCode:a,targetingData:e,featureFlag:g,packageInfo:this.externalPackageInfo}).throw();if(h.variationKey!==_constants.OFF_VARIATION_KEY){var i=h.featureFlagId,j=h.featureKey;d.push({id:i,key:j})}}}catch(a){f.e(a)}finally{f.f()}return d}},{key:"getFeatureFlagVariationKey",value:function getFeatureFlagVariationKey(a,b){_utilities.Utilities.validateVisitorCode(a).throw();var c=this._getFeatureFlagVariation(a,b).throw(),d=c.variationKey;return d}},{key:"getFeatureFlagVariable",value:function getFeatureFlagVariable(a){var b,c=a.visitorCode,d=a.featureKey,e=a.variableKey;_utilities.Utilities.validateVisitorCode(c).throw();var f=this._getFeatureFlagVariation(c,d).throw(),g=f.variationKey,h=this.campaignConfiguration.featureFlags,i=h.find(function(a){return a.featureKey===d});// --- Note ---
|
|
13
|
+
// `_getFeatureFlagVariation` already checks `campaignConfiguration` initialization
|
|
14
|
+
if(!i)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.FeatureFlagConfigurationNotFound,d,c);var j=null===(b=i.variations.find(function(a){return a.key===g}))||void 0===b?void 0:b.variables.find(function(a){return a.key===e});if(!j)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.FeatureFlagVariableNotFound,e,c);var k=_utilities.Utilities.parseFeatureVariable(j).throw();return k}},{key:"isFeatureFlagActive",value:function isFeatureFlagActive(a,b){var c=this.getFeatureFlagVariationKey(a,b);return c!==_constants.OFF_VARIATION_KEY}},{key:"getRemoteData",value:function(){function a(a){return b.apply(this,arguments)}var b=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function b(a){var c;return _regeneratorRuntime().wrap(function d(b){for(;1;)switch(b.prev=b.next){case 0:return b.next=2,this.requester.getRemoteData(a);case 2:return c=b.sent,b.abrupt("return",c.throw());case 4:case"end":return b.stop();}},b,this)}));return a}()},{key:"onConfigurationUpdate",value:function onConfigurationUpdate(a){if(!this.campaignConfiguration)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);this.campaignConfiguration.onConfigurationUpdate(a)}},{key:"getEngineTrackingCode",value:function getEngineTrackingCode(a){return _utilities.Utilities.validateVisitorCode(a).throw(),_utilities.Utilities.getTrackingCode(this.trackingCache,a)}},{key:"_getFeatureFlagVariation",value:function _getFeatureFlagVariation(a,b){if(!this.variationConfiguration||!this.campaignConfiguration)return(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization));var c=this.campaignConfiguration.featureFlags,d=c.find(function(a){return a.featureKey===b});if(!d)return(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.FeatureFlagConfigurationNotFound,b,a));var e=this.campaignConfiguration.storedTargetingData[a],f=this.variationConfiguration.getFeatureFlagVariation({visitorCode:a,featureFlag:d,targetingData:e,withAssignment:!0,packageInfo:this.externalPackageInfo}).throw(),g=f.experimentId,h=f.variationId;"number"==typeof h&&"number"==typeof g&&_utilities.Utilities.updateCache({cacheManager:this.trackingCache,visitorCode:a,experimentId:g,variationId:h});var i=_utilities.Utilities.getUserAgent(a,this.campaignConfiguration);return _utilities.Utilities.trackRule({visitorCode:a,requester:this.requester,featureFlagVariation:f,campaignConfiguration:this.campaignConfiguration,userAgent:i}),(0,_tsRes.Ok)(f)}}]),a}();exports.KameleoonClient=KameleoonClient;
|
|
389
15
|
//# sourceMappingURL=kameleoonClient.js.map
|