@kameleoon/javascript-sdk-core 3.0.0 → 3.1.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.
Files changed (71) hide show
  1. package/dist/clientConfiguration/clientConfiguration.d.ts +4 -1
  2. package/dist/clientConfiguration/clientConfiguration.js +1 -1
  3. package/dist/clientConfiguration/clientConfiguration.js.map +1 -1
  4. package/dist/clientConfiguration/constants.js +1 -1
  5. package/dist/clientConfiguration/constants.js.map +1 -1
  6. package/dist/clientConfiguration/index.d.ts +1 -1
  7. package/dist/clientConfiguration/index.js +1 -1
  8. package/dist/clientConfiguration/index.js.map +1 -1
  9. package/dist/clientConfiguration/types.d.ts +12 -4
  10. package/dist/clientConfiguration/types.js +1 -1
  11. package/dist/clientConfiguration/types.js.map +1 -1
  12. package/dist/constants.js +1 -1
  13. package/dist/constants.js.map +1 -1
  14. package/dist/cookieManager/cookieManager.d.ts +16 -0
  15. package/dist/cookieManager/cookieManager.js +2 -0
  16. package/dist/cookieManager/cookieManager.js.map +1 -0
  17. package/dist/cookieManager/index.d.ts +1 -0
  18. package/dist/cookieManager/index.js +2 -0
  19. package/dist/cookieManager/index.js.map +1 -0
  20. package/dist/index.d.ts +4 -3
  21. package/dist/index.js +1 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/kameleoonClient.d.ts +32 -1
  24. package/dist/kameleoonClient.js +1 -1
  25. package/dist/kameleoonClient.js.map +1 -1
  26. package/dist/kameleoonData/dataManager.d.ts +2 -1
  27. package/dist/kameleoonData/dataManager.js +1 -1
  28. package/dist/kameleoonData/dataManager.js.map +1 -1
  29. package/dist/kameleoonData/pageView.js +1 -1
  30. package/dist/kameleoonData/pageView.js.map +1 -1
  31. package/dist/kameleoonError/constants.d.ts +1 -0
  32. package/dist/kameleoonError/constants.js +1 -1
  33. package/dist/kameleoonError/constants.js.map +1 -1
  34. package/dist/kameleoonError/kameleoonError.d.ts +2 -1
  35. package/dist/kameleoonError/kameleoonError.js +1 -1
  36. package/dist/kameleoonError/kameleoonError.js.map +1 -1
  37. package/dist/kameleoonError/types.d.ts +1 -0
  38. package/dist/kameleoonError/types.js +1 -1
  39. package/dist/kameleoonError/types.js.map +1 -1
  40. package/dist/kameleoonUtils.d.ts +0 -6
  41. package/dist/kameleoonUtils.js +1 -1
  42. package/dist/kameleoonUtils.js.map +1 -1
  43. package/dist/requester/constants.d.ts +3 -2
  44. package/dist/requester/constants.js +1 -1
  45. package/dist/requester/constants.js.map +1 -1
  46. package/dist/requester/index.d.ts +2 -2
  47. package/dist/requester/index.js +1 -1
  48. package/dist/requester/index.js.map +1 -1
  49. package/dist/requester/requester.d.ts +5 -5
  50. package/dist/requester/requester.js +1 -1
  51. package/dist/requester/requester.js.map +1 -1
  52. package/dist/requester/types.d.ts +8 -6
  53. package/dist/requester/types.js +1 -1
  54. package/dist/requester/types.js.map +1 -1
  55. package/dist/storage/constants.d.ts +2 -1
  56. package/dist/storage/constants.js +1 -1
  57. package/dist/storage/constants.js.map +1 -1
  58. package/dist/storage/types.d.ts +10 -1
  59. package/dist/storage/types.js.map +1 -1
  60. package/dist/types.d.ts +46 -14
  61. package/dist/types.js.map +1 -1
  62. package/dist/utilities/types.d.ts +12 -2
  63. package/dist/utilities/types.js.map +1 -1
  64. package/dist/utilities/utilities.d.ts +10 -4
  65. package/dist/utilities/utilities.js +1 -1
  66. package/dist/utilities/utilities.js.map +1 -1
  67. package/dist/variationConfiguration/types.d.ts +1 -0
  68. package/dist/variationConfiguration/types.js.map +1 -1
  69. package/dist/variationConfiguration/variationConfiguration.js +1 -1
  70. package/dist/variationConfiguration/variationConfiguration.js.map +1 -1
  71. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Requester=void 0;var _tsRes=require("ts-res"),_kameleoonError=require("../kameleoonError"),_utilities=require("../utilities"),_constants=require("./constants");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 _regeneratorRuntime(){"use strict";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)}var Requester=function(){function a(b){var c=b.siteCode,d=b.environment,e=b.packageInfo,f=b.requestDispatcher;_classCallCheck(this,a),_defineProperty(this,"siteCode",void 0),_defineProperty(this,"environment",void 0),_defineProperty(this,"requestDispatcher",void 0),_defineProperty(this,"packageInfo",void 0),this.requestDispatcher=f,this.siteCode=c,this.environment=d,this.packageInfo=e}return _createClass(a,[{key:"getClientConfiguration",value:function(){function a(){return b.apply(this,arguments)}var b=_asyncToGenerator(_regeneratorRuntime().mark(function b(a){var c,d,e,f;return _regeneratorRuntime().wrap(function g(b){for(;1;)switch(b.prev=b.next){case 0:return c=this.environment?_constants.UrlParameter.Environment+this.environment:"",d=a?_constants.UrlParameter.Ts+a:"",e=_constants.URL.CLIENT_CONFIGURATION+_constants.UrlQuery.Mobile+this.siteCode+c+d,b.prev=3,b.next=6,this.requestDispatcher.getClientConfiguration(e);case 6:if(f=b.sent,!f){b.next=9;break}return b.abrupt("return",(0,_tsRes.Ok)(f));case 9:return b.abrupt("return",(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.MaximumRetriesReached)));case 12:return b.prev=12,b.t0=b["catch"](3),b.abrupt("return",(0,_tsRes.Err)(b.t0));case 15:case"end":return b.stop();}},b,this,[[3,12]])}));return a}()},{key:"getRemoteData",value:function(){function a(a){return b.apply(this,arguments)}var b=_asyncToGenerator(_regeneratorRuntime().mark(function b(a){var c,d;return _regeneratorRuntime().wrap(function e(b){for(;1;)switch(b.prev=b.next){case 0:return c=_constants.URL.DATA_MAP+this.siteCode+_constants.UrlParameter.Key+encodeURI(a),b.prev=1,b.next=4,this.requestDispatcher.getRemoteData(c);case 4:return d=b.sent,b.abrupt("return",(0,_tsRes.Ok)(d));case 8:return b.prev=8,b.t0=b["catch"](1),b.abrupt("return",(0,_tsRes.Err)(b.t0));case 11:case"end":return b.stop();}},b,this,[[1,8]])}));return a}()},{key:"getVisitorData",value:function(){function a(a,c){return b.apply(this,arguments)}var b=_asyncToGenerator(_regeneratorRuntime().mark(function c(a,b){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;return _regeneratorRuntime().wrap(function u(c){for(;1;)switch(c.prev=c.next){case 0:return d=b.customData,e=b.visitAmount,f=b.conversions,g=b.geolocation,h=b.experiments,i=b.pageViews,j=b.device,k=b.browser,l=b.operatingSystem,m=d?_constants.UrlParameter.CustomData+!0:"",n=f?_constants.UrlParameter.Conversion+!0:"",o=g?_constants.UrlParameter.Geolocation+!0:"",p=h?_constants.UrlParameter.Experiment+!0:"",q=i?_constants.UrlParameter.Page+!0:"",r=j||k||l?_constants.UrlParameter.StaticData+!0:"",s=_constants.URL.VISIT_DATA+this.siteCode+_constants.UrlParameter.VisitorCode+a+_constants.UrlParameter.MaxNumberPreviousVisits+e+m+n+o+p+q+r+_constants.UrlParameter.CurrentVisit+!0,c.prev=8,c.next=11,this.requestDispatcher.getRemoteData(s);case 11:return t=c.sent,c.abrupt("return",(0,_tsRes.Ok)(t));case 15:return c.prev=15,c.t0=c["catch"](8),c.abrupt("return",(0,_tsRes.Err)(c.t0));case 18:case"end":return c.stop();}},c,this,[[8,15]])}));return a}()},{key:"trackExperiment",value:function(){function a(a){return b.apply(this,arguments)}var b=_asyncToGenerator(_regeneratorRuntime().mark(function b(a){var c,d,e,f,g,h,i,j,k,l,m,n;return _regeneratorRuntime().wrap(function o(b){for(;1;)switch(b.prev=b.next){case 0:return c=a.variationId,d=a.visitorCode,e=a.experimentId,f=a.isUnallocated,g=a.body,h=a.userAgent,i=this.getTrackingUrl(d),j=g?"":_constants.UrlEventType.Activity+_constants.UrlParameter.Nonce+_utilities.Utilities.getNonce(),k=f?j:_constants.UrlEventType.Experiment+_constants.UrlParameter.Id+e+_constants.UrlParameter.VariationId+c+_constants.UrlParameter.Nonce+_utilities.Utilities.getNonce(),l=k?g+"\n"+k:g,m=h?_defineProperty({},_constants.Header.UserAgent,h):void 0,b.prev=6,b.next=9,this.requestDispatcher.track({url:i,headers:m,body:l});case 9:return n=b.sent,b.abrupt("return",(0,_tsRes.Ok)(n));case 13:return b.prev=13,b.t0=b["catch"](6),b.abrupt("return",(0,_tsRes.Err)(b.t0));case 16:case"end":return b.stop();}},b,this,[[6,13]])}));return a}()},{key:"trackData",value:function(){function a(a){return b.apply(this,arguments)}var b=_asyncToGenerator(_regeneratorRuntime().mark(function b(a){var c,d,e,f,g,h,i;return _regeneratorRuntime().wrap(function j(b){for(;1;)switch(b.prev=b.next){case 0:return c=a.visitorCode,d=a.body,e=a.userAgent,f=this.getTrackingUrl(c),g=e?_defineProperty({},_constants.Header.UserAgent,e):void 0,h=d||_constants.UrlEventType.Activity+_constants.UrlParameter.Nonce+_utilities.Utilities.getNonce(),b.prev=4,b.next=7,this.requestDispatcher.track({url:f,headers:g,body:h});case 7:return i=b.sent,b.abrupt("return",(0,_tsRes.Ok)(i));case 11:return b.prev=11,b.t0=b["catch"](4),b.abrupt("return",(0,_tsRes.Err)(b.t0));case 14:case"end":return b.stop();}},b,this,[[4,11]])}));return a}()},{key:"getTrackingUrl",value:function getTrackingUrl(a){var b=this.packageInfo,c=b.type,d=b.version;return _constants.URL.VISIT_EVENT+this.siteCode+_constants.UrlParameter.VisitorCode+a+_constants.UrlParameter.SdkName+c.toLowerCase()+_constants.UrlParameter.SdkVersion+d}}]),a}();exports.Requester=Requester;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Requester=void 0;var _tsRes=require("ts-res"),_kameleoonError=require("../kameleoonError"),_utilities=require("../utilities"),_constants=require("./constants");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 _regeneratorRuntime(){"use strict";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)}var Requester=function(){function a(b){var c=b.siteCode,d=b.environment,e=b.packageInfo,f=b.requestDispatcher;_classCallCheck(this,a),_defineProperty(this,"siteCode",void 0),_defineProperty(this,"environment",void 0),_defineProperty(this,"requestDispatcher",void 0),_defineProperty(this,"packageInfo",void 0),this.requestDispatcher=f,this.siteCode=c,this.environment=d,this.packageInfo=e}return _createClass(a,[{key:"getClientConfiguration",value:function(){function a(){return b.apply(this,arguments)}var b=_asyncToGenerator(_regeneratorRuntime().mark(function b(a){var c,d,e,f;return _regeneratorRuntime().wrap(function g(b){for(;1;)switch(b.prev=b.next){case 0:return c=this.environment?_constants.UrlFirstParameter.Environment+this.environment:"",d="",a&&(c?d=_constants.UrlParameter.Ts+a:d=_constants.UrlFirstParameter.Ts+a),e=(0,_constants.getClientConfigurationUrl)(this.siteCode)+c+d,b.prev=4,b.next=7,this.requestDispatcher.getClientConfiguration(e);case 7:if(f=b.sent,!f){b.next=10;break}return b.abrupt("return",(0,_tsRes.Ok)(f));case 10:return b.abrupt("return",(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.MaximumRetriesReached)));case 13:return b.prev=13,b.t0=b["catch"](4),b.abrupt("return",(0,_tsRes.Err)(b.t0));case 16:case"end":return b.stop();}},b,this,[[4,13]])}));return a}()},{key:"getRemoteData",value:function(){function a(a){return b.apply(this,arguments)}var b=_asyncToGenerator(_regeneratorRuntime().mark(function b(a){var c,d;return _regeneratorRuntime().wrap(function e(b){for(;1;)switch(b.prev=b.next){case 0:return c=_constants.URL.DATA_MAP+this.siteCode+_constants.UrlParameter.Key+encodeURI(a),b.prev=1,b.next=4,this.requestDispatcher.getRemoteData(c);case 4:return d=b.sent,b.abrupt("return",(0,_tsRes.Ok)(d));case 8:return b.prev=8,b.t0=b["catch"](1),b.abrupt("return",(0,_tsRes.Err)(b.t0));case 11:case"end":return b.stop();}},b,this,[[1,8]])}));return a}()},{key:"getVisitorData",value:function(){function a(a,c){return b.apply(this,arguments)}var b=_asyncToGenerator(_regeneratorRuntime().mark(function c(a,b){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;return _regeneratorRuntime().wrap(function w(c){for(;1;)switch(c.prev=c.next){case 0:return d=b.customData,e=b.previousVisitAmount,f=b.currentVisit,g=b.conversions,h=b.geolocation,i=b.experiments,j=b.pageViews,k=b.device,l=b.browser,m=b.operatingSystem,n=d?_constants.UrlParameter.CustomData+!0:"",o=g?_constants.UrlParameter.Conversion+!0:"",p=h?_constants.UrlParameter.Geolocation+!0:"",q=i?_constants.UrlParameter.Experiment+!0:"",r=j?_constants.UrlParameter.Page+!0:"",s=k||l||m?_constants.UrlParameter.StaticData+!0:"",t=f?_constants.UrlParameter.CurrentVisit+!0:"",u=_constants.URL.VISIT_DATA+this.siteCode+_constants.UrlParameter.VisitorCode+a+_constants.UrlParameter.MaxNumberPreviousVisits+e+n+o+p+q+r+s+t,c.prev=9,c.next=12,this.requestDispatcher.getRemoteData(u);case 12:return v=c.sent,c.abrupt("return",(0,_tsRes.Ok)(v));case 16:return c.prev=16,c.t0=c["catch"](9),c.abrupt("return",(0,_tsRes.Err)(c.t0));case 19:case"end":return c.stop();}},c,this,[[9,16]])}));return a}()},{key:"trackExperiment",value:function(){function a(a){return b.apply(this,arguments)}var b=_asyncToGenerator(_regeneratorRuntime().mark(function b(a){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;return _regeneratorRuntime().wrap(function q(b){for(;1;)switch(b.prev=b.next){case 0:return c=a.variationId,d=a.visitorCode,e=a.experimentId,f=a.isUnallocated,g=a.body,h=a.userAgent,i=a.isTargetedRule,j=a.isConsentProvided,k=this.getTrackingUrl(d),l=g?"":_constants.UrlEventType.Activity+_constants.UrlParameter.Nonce+_utilities.Utilities.getNonce(),m=f?l:j||!j&&i?_constants.UrlEventType.Experiment+_constants.UrlParameter.Id+e+_constants.UrlParameter.VariationId+c+_constants.UrlParameter.Nonce+_utilities.Utilities.getNonce():"",n=m?g+"\n"+m:g,o=h?_defineProperty({},_constants.Header.UserAgent,h):void 0,b.prev=6,b.next=9,this.requestDispatcher.track({url:k,headers:o,body:n});case 9:return p=b.sent,b.abrupt("return",(0,_tsRes.Ok)(p));case 13:return b.prev=13,b.t0=b["catch"](6),b.abrupt("return",(0,_tsRes.Err)(b.t0));case 16:case"end":return b.stop();}},b,this,[[6,13]])}));return a}()},{key:"trackData",value:function(){function a(a){return b.apply(this,arguments)}var b=_asyncToGenerator(_regeneratorRuntime().mark(function b(a){var c,d,e,f,g,h,i;return _regeneratorRuntime().wrap(function j(b){for(;1;)switch(b.prev=b.next){case 0:return c=a.visitorCode,d=a.body,e=a.userAgent,f=this.getTrackingUrl(c),g=e?_defineProperty({},_constants.Header.UserAgent,e):void 0,h=d||_constants.UrlEventType.Activity+_constants.UrlParameter.Nonce+_utilities.Utilities.getNonce(),b.prev=4,b.next=7,this.requestDispatcher.track({url:f,headers:g,body:h});case 7:return i=b.sent,b.abrupt("return",(0,_tsRes.Ok)(i));case 11:return b.prev=11,b.t0=b["catch"](4),b.abrupt("return",(0,_tsRes.Err)(b.t0));case 14:case"end":return b.stop();}},b,this,[[4,11]])}));return a}()},{key:"getTrackingUrl",value:function getTrackingUrl(a){var b=this.packageInfo,c=b.type,d=b.version;return _constants.URL.VISIT_EVENT+this.siteCode+_constants.UrlParameter.VisitorCode+a+_constants.UrlParameter.SdkName+c.toLowerCase()+_constants.UrlParameter.SdkVersion+d}}]),a}();exports.Requester=Requester;
2
2
  //# sourceMappingURL=requester.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"requester.js","names":["Requester","a","b","siteCode","environment","packageInfo","requestDispatcher","_classCallCheck","_defineProperty","_createClass","key","value","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","timeStamp","c","d","e","f","wrap","g","prev","next","environmentParam","UrlParameter","Environment","timeStampParam","Ts","requestUrl","URL","CLIENT_CONFIGURATION","UrlQuery","Mobile","getClientConfiguration","response","sent","abrupt","Ok","Err","KameleoonError","KameleoonException","MaximumRetriesReached","t0","stop","DATA_MAP","Key","encodeURI","getRemoteData","visitorCode","filters","h","i","j","k","l","m","n","o","p","q","r","s","t","u","customData","visitAmount","conversions","geolocation","experiments","pageViews","device","browser","operatingSystem","customDataParameter","CustomData","conversionsParameter","Conversion","geolocationParameter","Geolocation","experimentsParameter","Experiment","pageViewsParameter","Page","staticDataParameter","StaticData","VISIT_DATA","VisitorCode","MaxNumberPreviousVisits","CurrentVisit","variationId","experimentId","isUnallocated","body","userAgent","url","getTrackingUrl","unallocatedAddition","UrlEventType","Activity","Nonce","Utilities","getNonce","bodyAddition","Id","VariationId","extendedBody","headers","Header","UserAgent","track","requestBody","type","version","VISIT_EVENT","SdkName","toLowerCase","SdkVersion","exports"],"sources":["../../src/requester/requester.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport { Environment, ExternalPackageInfoType } from 'src/types';\nimport { KameleoonError, KameleoonException } from 'src/kameleoonError';\nimport { JSONType } from 'src/clientConfiguration';\nimport { Utilities, VisitorDataFiltersType } from 'src/utilities';\nimport { URL, UrlParameter, Header, UrlQuery, UrlEventType } from './constants';\nimport {\n GetClientConfigurationResultType,\n RequesterParamsType,\n TrackDataParamsType,\n IExternalRequestDispatcher,\n GetVisitorDataResultType,\n TrackExperimentParamsType,\n} from './types';\n\nexport interface IRequester {\n getClientConfiguration: () => Promise<\n Result<GetClientConfigurationResultType, KameleoonError>\n >;\n getRemoteData: (key: string) => Promise<Result<JSONType, KameleoonError>>;\n trackData: ({\n visitorCode,\n body,\n }: TrackDataParamsType) => Promise<Result<boolean, KameleoonError>>;\n trackExperiment: ({\n variationId,\n visitorCode,\n experimentId,\n isUnallocated,\n body,\n }: TrackExperimentParamsType) => Promise<Result<boolean, KameleoonError>>;\n}\n\nexport class Requester implements IRequester {\n private siteCode: string;\n private environment?: Environment;\n private requestDispatcher: IExternalRequestDispatcher;\n private packageInfo: ExternalPackageInfoType;\n\n constructor({\n siteCode,\n environment,\n packageInfo,\n requestDispatcher,\n }: RequesterParamsType) {\n this.requestDispatcher = requestDispatcher;\n this.siteCode = siteCode;\n this.environment = environment;\n this.packageInfo = packageInfo;\n }\n\n public async getClientConfiguration(\n timeStamp?: number,\n ): Promise<Result<GetClientConfigurationResultType, KameleoonError>> {\n const environmentParam = this.environment\n ? UrlParameter.Environment + this.environment\n : '';\n const timeStampParam = timeStamp ? UrlParameter.Ts + timeStamp : '';\n\n const requestUrl =\n URL.CLIENT_CONFIGURATION +\n UrlQuery.Mobile +\n this.siteCode +\n environmentParam +\n timeStampParam;\n\n try {\n const response = await this.requestDispatcher.getClientConfiguration(\n requestUrl,\n );\n\n if (response) {\n return Ok(response as GetClientConfigurationResultType);\n }\n\n return Err(new KameleoonError(KameleoonException.MaximumRetriesReached));\n } catch (error) {\n return Err(error as KameleoonError);\n }\n }\n\n public async getRemoteData(\n key: string,\n ): Promise<Result<JSONType, KameleoonError>> {\n const requestUrl: string =\n URL.DATA_MAP + this.siteCode + UrlParameter.Key + encodeURI(key);\n\n try {\n const response = await this.requestDispatcher.getRemoteData(requestUrl);\n return Ok(response);\n } catch (error) {\n return Err(error as KameleoonError);\n }\n }\n\n public async getVisitorData(\n visitorCode: string,\n filters: VisitorDataFiltersType,\n ): Promise<Result<GetVisitorDataResultType, KameleoonError>> {\n const {\n customData,\n visitAmount,\n conversions,\n geolocation,\n experiments,\n pageViews,\n device,\n browser,\n operatingSystem,\n } = filters;\n\n const customDataParameter = customData\n ? UrlParameter.CustomData + true\n : '';\n const conversionsParameter = conversions\n ? UrlParameter.Conversion + true\n : '';\n const geolocationParameter = geolocation\n ? UrlParameter.Geolocation + true\n : '';\n const experimentsParameter = experiments\n ? UrlParameter.Experiment + true\n : '';\n const pageViewsParameter = pageViews ? UrlParameter.Page + true : '';\n const staticDataParameter = Boolean(device || browser || operatingSystem)\n ? UrlParameter.StaticData + true\n : '';\n\n const requestUrl: string =\n URL.VISIT_DATA +\n this.siteCode +\n UrlParameter.VisitorCode +\n visitorCode +\n UrlParameter.MaxNumberPreviousVisits +\n visitAmount +\n customDataParameter +\n conversionsParameter +\n geolocationParameter +\n experimentsParameter +\n pageViewsParameter +\n staticDataParameter +\n UrlParameter.CurrentVisit +\n true;\n\n try {\n const response = await this.requestDispatcher.getRemoteData(requestUrl);\n return Ok(response as GetVisitorDataResultType);\n } catch (error) {\n return Err(error as KameleoonError);\n }\n }\n\n public async trackExperiment({\n variationId,\n visitorCode,\n experimentId,\n isUnallocated,\n body,\n userAgent,\n }: TrackExperimentParamsType): Promise<Result<boolean, KameleoonError>> {\n const url = this.getTrackingUrl(visitorCode);\n\n const unallocatedAddition = !body\n ? UrlEventType.Activity + UrlParameter.Nonce + Utilities.getNonce()\n : '';\n const bodyAddition = isUnallocated\n ? unallocatedAddition\n : UrlEventType.Experiment +\n UrlParameter.Id +\n experimentId +\n UrlParameter.VariationId +\n variationId +\n UrlParameter.Nonce +\n Utilities.getNonce();\n const extendedBody = bodyAddition ? body + '\\n' + bodyAddition : body;\n\n const headers = userAgent\n ? {\n [Header.UserAgent]: userAgent,\n }\n : undefined;\n\n try {\n const response = await this.requestDispatcher.track({\n url,\n headers,\n body: extendedBody,\n });\n\n return Ok(response);\n } catch (error) {\n return Err(error as KameleoonError);\n }\n }\n\n public async trackData({\n visitorCode,\n body,\n userAgent,\n }: TrackDataParamsType): Promise<Result<boolean, KameleoonError>> {\n const url = this.getTrackingUrl(visitorCode);\n\n const headers = userAgent\n ? {\n [Header.UserAgent]: userAgent,\n }\n : undefined;\n\n const requestBody =\n body || UrlEventType.Activity + UrlParameter.Nonce + Utilities.getNonce();\n\n try {\n const response = await this.requestDispatcher.track({\n url,\n headers,\n body: requestBody,\n });\n\n return Ok(response);\n } catch (error) {\n return Err(error as KameleoonError);\n }\n }\n\n private getTrackingUrl(visitorCode: string): string {\n const { type, version } = this.packageInfo;\n\n return (\n URL.VISIT_EVENT +\n this.siteCode +\n UrlParameter.VisitorCode +\n visitorCode +\n UrlParameter.SdkName +\n type.toLowerCase() +\n UrlParameter.SdkVersion +\n version\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"requester.js","names":["Requester","a","b","siteCode","environment","packageInfo","requestDispatcher","_classCallCheck","_defineProperty","_createClass","key","value","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","timeStamp","c","d","e","f","wrap","g","prev","next","environmentParam","UrlFirstParameter","Environment","timeStampParam","UrlParameter","Ts","requestUrl","getClientConfigurationUrl","getClientConfiguration","response","sent","abrupt","Ok","Err","KameleoonError","KameleoonException","MaximumRetriesReached","t0","stop","URL","DATA_MAP","Key","encodeURI","getRemoteData","visitorCode","filters","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","customData","previousVisitAmount","currentVisit","conversions","geolocation","experiments","pageViews","device","browser","operatingSystem","customDataParameter","CustomData","conversionsParameter","Conversion","geolocationParameter","Geolocation","experimentsParameter","Experiment","pageViewsParameter","Page","staticDataParameter","StaticData","currentVisitParameter","CurrentVisit","VISIT_DATA","VisitorCode","MaxNumberPreviousVisits","variationId","experimentId","isUnallocated","body","userAgent","isTargetedRule","isConsentProvided","url","getTrackingUrl","unallocatedAddition","UrlEventType","Activity","Nonce","Utilities","getNonce","bodyAddition","Id","VariationId","extendedBody","headers","Header","UserAgent","track","requestBody","type","version","VISIT_EVENT","SdkName","toLowerCase","SdkVersion","exports"],"sources":["../../src/requester/requester.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport { Environment, ExternalPackageInfoType } from 'src/types';\nimport { KameleoonError, KameleoonException } from 'src/kameleoonError';\nimport { ConfigurationDataType, JSONType } from 'src/clientConfiguration';\nimport { Utilities, VisitorDataFiltersType } from 'src/utilities';\nimport {\n URL,\n UrlParameter,\n Header,\n UrlEventType,\n getClientConfigurationUrl,\n UrlFirstParameter,\n} from './constants';\nimport {\n RequesterParamsType,\n TrackDataParamsType,\n IExternalRequestDispatcher,\n GetVisitorDataResultType,\n TrackExperimentParamsType,\n} from './types';\n\nexport interface IRequester {\n getClientConfiguration: () => Promise<\n Result<ConfigurationDataType, KameleoonError>\n >;\n getRemoteData: (key: string) => Promise<Result<JSONType, KameleoonError>>;\n trackData: ({\n visitorCode,\n body,\n }: TrackDataParamsType) => Promise<Result<boolean, KameleoonError>>;\n trackExperiment: ({\n variationId,\n visitorCode,\n experimentId,\n isUnallocated,\n body,\n }: TrackExperimentParamsType) => Promise<Result<boolean, KameleoonError>>;\n}\n\nexport class Requester implements IRequester {\n private siteCode: string;\n private environment?: Environment;\n private requestDispatcher: IExternalRequestDispatcher;\n private packageInfo: ExternalPackageInfoType;\n\n constructor({\n siteCode,\n environment,\n packageInfo,\n requestDispatcher,\n }: RequesterParamsType) {\n this.requestDispatcher = requestDispatcher;\n this.siteCode = siteCode;\n this.environment = environment;\n this.packageInfo = packageInfo;\n }\n\n public async getClientConfiguration(\n timeStamp?: number,\n ): Promise<Result<ConfigurationDataType, KameleoonError>> {\n const environmentParam = this.environment\n ? UrlFirstParameter.Environment + this.environment\n : '';\n let timeStampParam = '';\n\n if (timeStamp) {\n if (environmentParam) {\n timeStampParam = UrlParameter.Ts + timeStamp;\n } else {\n timeStampParam = UrlFirstParameter.Ts + timeStamp;\n }\n }\n\n const requestUrl =\n getClientConfigurationUrl(this.siteCode) +\n environmentParam +\n timeStampParam;\n\n try {\n const response = await this.requestDispatcher.getClientConfiguration(\n requestUrl,\n );\n\n if (response) {\n return Ok(response as ConfigurationDataType);\n }\n\n return Err(new KameleoonError(KameleoonException.MaximumRetriesReached));\n } catch (error) {\n return Err(error as KameleoonError);\n }\n }\n\n public async getRemoteData(\n key: string,\n ): Promise<Result<JSONType, KameleoonError>> {\n const requestUrl: string =\n URL.DATA_MAP + this.siteCode + UrlParameter.Key + encodeURI(key);\n\n try {\n const response = await this.requestDispatcher.getRemoteData(requestUrl);\n return Ok(response);\n } catch (error) {\n return Err(error as KameleoonError);\n }\n }\n\n public async getVisitorData(\n visitorCode: string,\n filters: VisitorDataFiltersType,\n ): Promise<Result<GetVisitorDataResultType, KameleoonError>> {\n const {\n customData,\n previousVisitAmount,\n currentVisit,\n conversions,\n geolocation,\n experiments,\n pageViews,\n device,\n browser,\n operatingSystem,\n } = filters;\n\n const customDataParameter = customData\n ? UrlParameter.CustomData + true\n : '';\n const conversionsParameter = conversions\n ? UrlParameter.Conversion + true\n : '';\n const geolocationParameter = geolocation\n ? UrlParameter.Geolocation + true\n : '';\n const experimentsParameter = experiments\n ? UrlParameter.Experiment + true\n : '';\n const pageViewsParameter = pageViews ? UrlParameter.Page + true : '';\n const staticDataParameter = Boolean(device || browser || operatingSystem)\n ? UrlParameter.StaticData + true\n : '';\n const currentVisitParameter = currentVisit\n ? UrlParameter.CurrentVisit + true\n : '';\n\n const requestUrl: string =\n URL.VISIT_DATA +\n this.siteCode +\n UrlParameter.VisitorCode +\n visitorCode +\n UrlParameter.MaxNumberPreviousVisits +\n previousVisitAmount +\n customDataParameter +\n conversionsParameter +\n geolocationParameter +\n experimentsParameter +\n pageViewsParameter +\n staticDataParameter +\n currentVisitParameter;\n\n try {\n const response = await this.requestDispatcher.getRemoteData(requestUrl);\n return Ok(response as GetVisitorDataResultType);\n } catch (error) {\n return Err(error as KameleoonError);\n }\n }\n\n public async trackExperiment({\n variationId,\n visitorCode,\n experimentId,\n isUnallocated,\n body,\n userAgent,\n isTargetedRule,\n isConsentProvided,\n }: TrackExperimentParamsType): Promise<Result<boolean, KameleoonError>> {\n const url = this.getTrackingUrl(visitorCode);\n\n const unallocatedAddition = !body\n ? UrlEventType.Activity + UrlParameter.Nonce + Utilities.getNonce()\n : '';\n const bodyAddition = isUnallocated\n ? unallocatedAddition\n : isConsentProvided || (!isConsentProvided && isTargetedRule)\n ? UrlEventType.Experiment +\n UrlParameter.Id +\n experimentId +\n UrlParameter.VariationId +\n variationId +\n UrlParameter.Nonce +\n Utilities.getNonce()\n : '';\n\n const extendedBody = bodyAddition ? body + '\\n' + bodyAddition : body;\n\n const headers = userAgent\n ? {\n [Header.UserAgent]: userAgent,\n }\n : undefined;\n\n try {\n const response = await this.requestDispatcher.track({\n url,\n headers,\n body: extendedBody,\n });\n\n return Ok(response);\n } catch (error) {\n return Err(error as KameleoonError);\n }\n }\n\n public async trackData({\n visitorCode,\n body,\n userAgent,\n }: TrackDataParamsType): Promise<Result<boolean, KameleoonError>> {\n const url = this.getTrackingUrl(visitorCode);\n\n const headers = userAgent\n ? {\n [Header.UserAgent]: userAgent,\n }\n : undefined;\n\n const requestBody =\n body || UrlEventType.Activity + UrlParameter.Nonce + Utilities.getNonce();\n\n try {\n const response = await this.requestDispatcher.track({\n url,\n headers,\n body: requestBody,\n });\n\n return Ok(response);\n } catch (error) {\n return Err(error as KameleoonError);\n }\n }\n\n private getTrackingUrl(visitorCode: string): string {\n const { type, version } = this.packageInfo;\n\n return (\n URL.VISIT_EVENT +\n this.siteCode +\n UrlParameter.VisitorCode +\n visitorCode +\n UrlParameter.SdkName +\n type.toLowerCase() +\n UrlParameter.SdkVersion +\n version\n );\n }\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { JSONType, FeatureFlagType, ConfigurationDataType } from '../clientConfiguration';
1
+ import { JSONType } from '../clientConfiguration';
2
2
  import { Environment, ExternalPackageInfoType } from '../types';
3
3
  import { BrowserIndexMap, BrowserType, OperatingSystemType } from '../kameleoonData';
4
4
  import { Header } from './constants';
@@ -15,7 +15,9 @@ export type TrackExperimentParamsType = {
15
15
  visitorCode: string;
16
16
  experimentId: number;
17
17
  isUnallocated: boolean;
18
+ isConsentProvided: boolean;
18
19
  userAgent?: string;
20
+ isTargetedRule?: boolean;
19
21
  };
20
22
  export type TrackDataParamsType = {
21
23
  visitorCode: string;
@@ -110,17 +112,14 @@ export type GetVisitorDataResultType = {
110
112
  previousVisits?: VisitType[];
111
113
  currentVisit?: VisitType;
112
114
  };
113
- export type GetClientConfigurationResultType = Omit<ConfigurationDataType, 'featureFlags'> & {
114
- featureFlagConfigurations: FeatureFlagType[];
115
- };
116
115
  export declare enum HttpMethod {
117
116
  Get = "GET",
118
117
  Post = "POST"
119
118
  }
120
119
  declare const EVENT_TYPE_KEYS: readonly ["customData", "staticData", "page", "conversion", "geolocation", "activity", "experiment"];
121
- declare const PARAMETER_KEYS: readonly ["valuesCountMap", "id", "nonce", "country", "city", "region", "latitude", "geolocation", "longitude", "postalCode", "sdkName", "sdkVersion", "browserIndex", "browserVersion", "siteCode", "environment", "visitorCode", "currentVisit", "maxNumberPreviousVisits", "customData", "negative", "revenue", "title", "os", "conversion", "staticData", "osIndex", "browser", "referrersIndices", "overwrite", "index", "href", "experiment", "page", "variationId", "deviceType", "goalId", "ts", "key"];
120
+ declare const PARAMETER_KEYS: readonly ["valuesCountMap", "id", "nonce", "country", "environment", "city", "region", "latitude", "geolocation", "longitude", "postalCode", "sdkName", "sdkVersion", "browserIndex", "browserVersion", "siteCode", "visitorCode", "currentVisit", "maxNumberPreviousVisits", "customData", "negative", "revenue", "title", "os", "conversion", "staticData", "osIndex", "browser", "referrersIndices", "overwrite", "index", "href", "experiment", "page", "variationId", "deviceType", "goalId", "ts", "key"];
122
121
  declare const TRACKING_KEYS: readonly ["visit", "map"];
123
- declare const QUERY_KEYS: readonly ["sse", "visitor", "mobile", "map", "events"];
122
+ declare const QUERY_KEYS: readonly ["sse", "visitor", "map", "events"];
124
123
  export type TrackingType = Record<Capitalize<(typeof TRACKING_KEYS)[number]>, string>;
125
124
  export type QueryType = Record<Capitalize<(typeof QUERY_KEYS)[number]>, string>;
126
125
  export type ParameterType = Record<Capitalize<(typeof PARAMETER_KEYS)[number]>, string>;
@@ -137,6 +136,9 @@ export type StrictEventTypeRecord<T> = {
137
136
  export type StrictParameterRecord<T> = {
138
137
  [K in keyof T]: `&${Uncapitalize<K & string>}=`;
139
138
  };
139
+ export type StrictFirstParameterRecord<T> = {
140
+ [K in keyof T]: `?${Uncapitalize<K & string>}=`;
141
+ };
140
142
  export type TrackParametersType = {
141
143
  url: string;
142
144
  headers?: Partial<Record<Header, string>>;
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.HttpMethod=void 0;var HttpMethod=function(a){return a.Get="GET",a.Post="POST",a}({});exports.HttpMethod=HttpMethod;var EVENT_TYPE_KEYS=["customData","staticData","page","conversion","geolocation","activity","experiment"],PARAMETER_KEYS=["valuesCountMap","id","nonce","country","city","region","latitude","geolocation","longitude","postalCode","sdkName","sdkVersion","browserIndex","browserVersion","siteCode","environment","visitorCode","currentVisit","maxNumberPreviousVisits","customData","negative","revenue","title","os","conversion","staticData","osIndex","browser","referrersIndices","overwrite","index","href","experiment","page","variationId","deviceType","goalId","ts","key"],TRACKING_KEYS=["visit","map"],QUERY_KEYS=["sse","visitor","mobile","map","events"];
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.HttpMethod=void 0;var HttpMethod=function(a){return a.Get="GET",a.Post="POST",a}({});exports.HttpMethod=HttpMethod;var EVENT_TYPE_KEYS=["customData","staticData","page","conversion","geolocation","activity","experiment"],PARAMETER_KEYS=["valuesCountMap","id","nonce","country","environment","city","region","latitude","geolocation","longitude","postalCode","sdkName","sdkVersion","browserIndex","browserVersion","siteCode","visitorCode","currentVisit","maxNumberPreviousVisits","customData","negative","revenue","title","os","conversion","staticData","osIndex","browser","referrersIndices","overwrite","index","href","experiment","page","variationId","deviceType","goalId","ts","key"],TRACKING_KEYS=["visit","map"],QUERY_KEYS=["sse","visitor","map","events"];
2
2
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["HttpMethod","Get","Post","exports","EVENT_TYPE_KEYS","PARAMETER_KEYS","TRACKING_KEYS","QUERY_KEYS"],"sources":["../../src/requester/types.ts"],"sourcesContent":["import {\n JSONType,\n FeatureFlagType,\n ConfigurationDataType,\n} from 'src/clientConfiguration';\nimport { Environment, ExternalPackageInfoType } from 'src/types';\nimport {\n BrowserIndexMap,\n BrowserType,\n OperatingSystemType,\n} from 'src/kameleoonData';\nimport { Header } from './constants';\nimport { DeviceType, OperatingSystemIndexMap } from 'src/kameleoonData/types';\n\nexport type RequesterParamsType = {\n siteCode: string;\n environment?: Environment;\n packageInfo: ExternalPackageInfoType;\n requestDispatcher: IExternalRequestDispatcher;\n};\n\nexport type TrackExperimentParamsType = {\n body: string;\n variationId: number;\n visitorCode: string;\n experimentId: number;\n isUnallocated: boolean;\n userAgent?: string;\n};\n\nexport type TrackDataParamsType = {\n visitorCode: string;\n body: string;\n userAgent?: string;\n};\n\ntype EventDataType = {\n sdk?: {\n name: string;\n version: string;\n };\n itp: boolean;\n time: number;\n};\n\ntype CustomDataEventType = {\n data: {\n index: number;\n valuesCountMap: {\n [value: string]: number;\n };\n overwrite: boolean;\n mappingIdentifier: boolean;\n };\n} & EventDataType;\n\ntype ExperimentEventType = {\n data: {\n id: number;\n variationId: number;\n };\n} & EventDataType;\n\ntype ConversionEventType = {\n data: {\n goalId: number;\n revenue: number;\n negative: boolean;\n };\n} & EventDataType;\n\ntype BrowserIndexType = (typeof BrowserIndexMap)[BrowserType];\ntype OperatingSystemIndexType =\n (typeof OperatingSystemIndexMap)[OperatingSystemType];\n\nexport type PageEventType = {\n data: {\n href: string;\n canonicalHref: string | null;\n title: string;\n keyPagesIndices: number[] | [null];\n referrerHref: string | null;\n referrersIndices: number[] | [null];\n };\n} & EventDataType;\n\nexport type GeolocationEventType = {\n data: {\n country: string;\n region: string | null;\n city: string | null;\n postalCode: string | null;\n latitude: number | null;\n longitude: number | null;\n };\n} & EventDataType;\n\nexport type StaticDataEventType = {\n data: {\n visitNumber: number;\n timeSincePreviousVisit: number;\n firstReferrerHref: string | null;\n browser: BrowserType | null;\n browserIndex: BrowserIndexType | null;\n browserVersion: number | null;\n os: OperatingSystemType | null;\n osIndex: OperatingSystemIndexType | null;\n windowWidth: number | null;\n windowHeight: number | null;\n screenWidth: number | null;\n screenHeight: number | null;\n timeZoneId: string | null;\n localeLanguageTag: string | null;\n deviceType: DeviceType | null;\n mappingIdentifier: string | null;\n };\n} & EventDataType;\n\nexport type VisitType = {\n siteCode: string;\n visitorCode: string;\n timeStarted: number;\n customDataEvents?: CustomDataEventType[];\n experimentEvents?: ExperimentEventType[];\n conversionEvents?: ConversionEventType[];\n geolocationEvents?: GeolocationEventType[];\n staticDataEvent?: StaticDataEventType;\n pageEvents?: PageEventType[];\n};\n\nexport type GetVisitorDataResultType = {\n previousVisits?: VisitType[];\n currentVisit?: VisitType;\n};\n\nexport type GetClientConfigurationResultType = Omit<\n ConfigurationDataType,\n 'featureFlags'\n> & { featureFlagConfigurations: FeatureFlagType[] };\n\nexport enum HttpMethod {\n Get = 'GET',\n Post = 'POST',\n}\n\nconst EVENT_TYPE_KEYS = [\n 'customData',\n 'staticData',\n 'page',\n 'conversion',\n 'geolocation',\n 'activity',\n 'experiment',\n] as const;\nconst PARAMETER_KEYS = [\n 'valuesCountMap',\n 'id',\n 'nonce',\n 'country',\n 'city',\n 'region',\n 'latitude',\n 'geolocation',\n 'longitude',\n 'postalCode',\n 'sdkName',\n 'sdkVersion',\n 'browserIndex',\n 'browserVersion',\n 'siteCode',\n 'environment',\n 'visitorCode',\n 'currentVisit',\n 'maxNumberPreviousVisits',\n 'customData',\n 'negative',\n 'revenue',\n 'title',\n 'os',\n 'conversion',\n 'staticData',\n 'osIndex',\n 'browser',\n 'referrersIndices',\n 'overwrite',\n 'index',\n 'href',\n 'experiment',\n 'page',\n 'variationId',\n 'deviceType',\n 'goalId',\n 'ts',\n 'key',\n] as const;\nconst TRACKING_KEYS = ['visit', 'map'] as const;\nconst QUERY_KEYS = ['sse', 'visitor', 'mobile', 'map', 'events'] as const;\n\nexport type TrackingType = Record<\n Capitalize<(typeof TRACKING_KEYS)[number]>,\n string\n>;\nexport type QueryType = Record<Capitalize<(typeof QUERY_KEYS)[number]>, string>;\nexport type ParameterType = Record<\n Capitalize<(typeof PARAMETER_KEYS)[number]>,\n string\n>;\nexport type EventType = Record<\n Capitalize<(typeof EVENT_TYPE_KEYS)[number]>,\n string\n>;\n\nexport type StrictTrackingRecord<T> = {\n [K in keyof T]: `${Uncapitalize<K & string>}/`;\n};\nexport type StrictQueryRecord<T> = {\n [K in keyof T]: `${Uncapitalize<K & string>}?siteCode=`;\n};\nexport type StrictEventTypeRecord<T> = {\n [K in keyof T]: `eventType=${Uncapitalize<K & string>}`;\n};\nexport type StrictParameterRecord<T> = {\n [K in keyof T]: `&${Uncapitalize<K & string>}=`;\n};\n\nexport type TrackParametersType = {\n url: string;\n headers?: Partial<Record<Header, string>>;\n body: string;\n};\n\n/**\n * @interface an interface of External Request Dispatcher which will be used to perform requests.\n * */\nexport interface IExternalRequestDispatcher {\n /**\n * @method track - send a track request\n * @param {TrackParametersType} parameters - track parameters\n * */\n track: (params: TrackParametersType) => Promise<boolean>;\n /**\n * @method getClientConfiguration - get client configuration\n * @param {string} url - url address\n * */\n getClientConfiguration: (url: string) => Promise<JSONType>;\n /**\n * @method getRemoteData - get data from remote server of Kameleoon\n * @param {string} url - url address\n * */\n getRemoteData: (url: string) => Promise<JSONType>;\n}\n"],"mappings":"iGA4IY,CAAAA,UAAU,UAAVA,CAAU,QAAV,CAAAA,CAAU,CAAAC,GAAA,OAAVD,CAAU,CAAAE,IAAA,QAAVF,CAAU,MAAAG,OAAA,CAAAH,UAAA,CAAAA,UAAA,IAKhB,CAAAI,eAAe,CAAG,CACtB,YAAY,CACZ,YAAY,CACZ,MAAM,CACN,YAAY,CACZ,aAAa,CACb,UAAU,CACV,YAAY,CACJ,CACJC,cAAc,CAAG,CACrB,gBAAgB,CAChB,IAAI,CACJ,OAAO,CACP,SAAS,CACT,MAAM,CACN,QAAQ,CACR,UAAU,CACV,aAAa,CACb,WAAW,CACX,YAAY,CACZ,SAAS,CACT,YAAY,CACZ,cAAc,CACd,gBAAgB,CAChB,UAAU,CACV,aAAa,CACb,aAAa,CACb,cAAc,CACd,yBAAyB,CACzB,YAAY,CACZ,UAAU,CACV,SAAS,CACT,OAAO,CACP,IAAI,CACJ,YAAY,CACZ,YAAY,CACZ,SAAS,CACT,SAAS,CACT,kBAAkB,CAClB,WAAW,CACX,OAAO,CACP,MAAM,CACN,YAAY,CACZ,MAAM,CACN,aAAa,CACb,YAAY,CACZ,QAAQ,CACR,IAAI,CACJ,KAAK,CACG,CACJC,aAAa,CAAG,CAAC,OAAO,CAAE,KAAK,CAAU,CACzCC,UAAU,CAAG,CAAC,KAAK,CAAE,SAAS,CAAE,QAAQ,CAAE,KAAK,CAAE,QAAQ,CAAU"}
1
+ {"version":3,"file":"types.js","names":["HttpMethod","Get","Post","exports","EVENT_TYPE_KEYS","PARAMETER_KEYS","TRACKING_KEYS","QUERY_KEYS"],"sources":["../../src/requester/types.ts"],"sourcesContent":["import { JSONType } from 'src/clientConfiguration';\nimport { Environment, ExternalPackageInfoType } from 'src/types';\nimport {\n BrowserIndexMap,\n BrowserType,\n OperatingSystemType,\n} from 'src/kameleoonData';\nimport { Header } from './constants';\nimport { DeviceType, OperatingSystemIndexMap } from 'src/kameleoonData/types';\n\nexport type RequesterParamsType = {\n siteCode: string;\n environment?: Environment;\n packageInfo: ExternalPackageInfoType;\n requestDispatcher: IExternalRequestDispatcher;\n};\n\nexport type TrackExperimentParamsType = {\n body: string;\n variationId: number;\n visitorCode: string;\n experimentId: number;\n isUnallocated: boolean;\n isConsentProvided: boolean;\n userAgent?: string;\n isTargetedRule?: boolean;\n};\n\nexport type TrackDataParamsType = {\n visitorCode: string;\n body: string;\n userAgent?: string;\n};\n\ntype EventDataType = {\n sdk?: {\n name: string;\n version: string;\n };\n itp: boolean;\n time: number;\n};\n\ntype CustomDataEventType = {\n data: {\n index: number;\n valuesCountMap: {\n [value: string]: number;\n };\n overwrite: boolean;\n mappingIdentifier: boolean;\n };\n} & EventDataType;\n\ntype ExperimentEventType = {\n data: {\n id: number;\n variationId: number;\n };\n} & EventDataType;\n\ntype ConversionEventType = {\n data: {\n goalId: number;\n revenue: number;\n negative: boolean;\n };\n} & EventDataType;\n\ntype BrowserIndexType = (typeof BrowserIndexMap)[BrowserType];\ntype OperatingSystemIndexType =\n (typeof OperatingSystemIndexMap)[OperatingSystemType];\n\nexport type PageEventType = {\n data: {\n href: string;\n canonicalHref: string | null;\n title: string;\n keyPagesIndices: number[] | [null];\n referrerHref: string | null;\n referrersIndices: number[] | [null];\n };\n} & EventDataType;\n\nexport type GeolocationEventType = {\n data: {\n country: string;\n region: string | null;\n city: string | null;\n postalCode: string | null;\n latitude: number | null;\n longitude: number | null;\n };\n} & EventDataType;\n\nexport type StaticDataEventType = {\n data: {\n visitNumber: number;\n timeSincePreviousVisit: number;\n firstReferrerHref: string | null;\n browser: BrowserType | null;\n browserIndex: BrowserIndexType | null;\n browserVersion: number | null;\n os: OperatingSystemType | null;\n osIndex: OperatingSystemIndexType | null;\n windowWidth: number | null;\n windowHeight: number | null;\n screenWidth: number | null;\n screenHeight: number | null;\n timeZoneId: string | null;\n localeLanguageTag: string | null;\n deviceType: DeviceType | null;\n mappingIdentifier: string | null;\n };\n} & EventDataType;\n\nexport type VisitType = {\n siteCode: string;\n visitorCode: string;\n timeStarted: number;\n customDataEvents?: CustomDataEventType[];\n experimentEvents?: ExperimentEventType[];\n conversionEvents?: ConversionEventType[];\n geolocationEvents?: GeolocationEventType[];\n staticDataEvent?: StaticDataEventType;\n pageEvents?: PageEventType[];\n};\n\nexport type GetVisitorDataResultType = {\n previousVisits?: VisitType[];\n currentVisit?: VisitType;\n};\n\nexport enum HttpMethod {\n Get = 'GET',\n Post = 'POST',\n}\n\nconst EVENT_TYPE_KEYS = [\n 'customData',\n 'staticData',\n 'page',\n 'conversion',\n 'geolocation',\n 'activity',\n 'experiment',\n] as const;\nconst PARAMETER_KEYS = [\n 'valuesCountMap',\n 'id',\n 'nonce',\n 'country',\n 'environment',\n 'city',\n 'region',\n 'latitude',\n 'geolocation',\n 'longitude',\n 'postalCode',\n 'sdkName',\n 'sdkVersion',\n 'browserIndex',\n 'browserVersion',\n 'siteCode',\n 'visitorCode',\n 'currentVisit',\n 'maxNumberPreviousVisits',\n 'customData',\n 'negative',\n 'revenue',\n 'title',\n 'os',\n 'conversion',\n 'staticData',\n 'osIndex',\n 'browser',\n 'referrersIndices',\n 'overwrite',\n 'index',\n 'href',\n 'experiment',\n 'page',\n 'variationId',\n 'deviceType',\n 'goalId',\n 'ts',\n 'key',\n] as const;\nconst TRACKING_KEYS = ['visit', 'map'] as const;\nconst QUERY_KEYS = ['sse', 'visitor', 'map', 'events'] as const;\n\nexport type TrackingType = Record<\n Capitalize<(typeof TRACKING_KEYS)[number]>,\n string\n>;\nexport type QueryType = Record<Capitalize<(typeof QUERY_KEYS)[number]>, string>;\nexport type ParameterType = Record<\n Capitalize<(typeof PARAMETER_KEYS)[number]>,\n string\n>;\nexport type EventType = Record<\n Capitalize<(typeof EVENT_TYPE_KEYS)[number]>,\n string\n>;\n\nexport type StrictTrackingRecord<T> = {\n [K in keyof T]: `${Uncapitalize<K & string>}/`;\n};\nexport type StrictQueryRecord<T> = {\n [K in keyof T]: `${Uncapitalize<K & string>}?siteCode=`;\n};\nexport type StrictEventTypeRecord<T> = {\n [K in keyof T]: `eventType=${Uncapitalize<K & string>}`;\n};\nexport type StrictParameterRecord<T> = {\n [K in keyof T]: `&${Uncapitalize<K & string>}=`;\n};\nexport type StrictFirstParameterRecord<T> = {\n [K in keyof T]: `?${Uncapitalize<K & string>}=`;\n};\n\nexport type TrackParametersType = {\n url: string;\n headers?: Partial<Record<Header, string>>;\n body: string;\n};\n\n/**\n * @interface an interface of External Request Dispatcher which will be used to perform requests.\n * */\nexport interface IExternalRequestDispatcher {\n /**\n * @method track - send a track request\n * @param {TrackParametersType} parameters - track parameters\n * */\n track: (params: TrackParametersType) => Promise<boolean>;\n /**\n * @method getClientConfiguration - get client configuration\n * @param {string} url - url address\n * */\n getClientConfiguration: (url: string) => Promise<JSONType>;\n /**\n * @method getRemoteData - get data from remote server of Kameleoon\n * @param {string} url - url address\n * */\n getRemoteData: (url: string) => Promise<JSONType>;\n}\n"],"mappings":"iGAqIY,CAAAA,UAAU,UAAVA,CAAU,QAAV,CAAAA,CAAU,CAAAC,GAAA,OAAVD,CAAU,CAAAE,IAAA,QAAVF,CAAU,MAAAG,OAAA,CAAAH,UAAA,CAAAA,UAAA,IAKhB,CAAAI,eAAe,CAAG,CACtB,YAAY,CACZ,YAAY,CACZ,MAAM,CACN,YAAY,CACZ,aAAa,CACb,UAAU,CACV,YAAY,CACJ,CACJC,cAAc,CAAG,CACrB,gBAAgB,CAChB,IAAI,CACJ,OAAO,CACP,SAAS,CACT,aAAa,CACb,MAAM,CACN,QAAQ,CACR,UAAU,CACV,aAAa,CACb,WAAW,CACX,YAAY,CACZ,SAAS,CACT,YAAY,CACZ,cAAc,CACd,gBAAgB,CAChB,UAAU,CACV,aAAa,CACb,cAAc,CACd,yBAAyB,CACzB,YAAY,CACZ,UAAU,CACV,SAAS,CACT,OAAO,CACP,IAAI,CACJ,YAAY,CACZ,YAAY,CACZ,SAAS,CACT,SAAS,CACT,kBAAkB,CAClB,WAAW,CACX,OAAO,CACP,MAAM,CACN,YAAY,CACZ,MAAM,CACN,aAAa,CACb,YAAY,CACZ,QAAQ,CACR,IAAI,CACJ,KAAK,CACG,CACJC,aAAa,CAAG,CAAC,OAAO,CAAE,KAAK,CAAU,CACzCC,UAAU,CAAG,CAAC,KAAK,CAAE,SAAS,CAAE,KAAK,CAAE,QAAQ,CAAU"}
@@ -7,5 +7,6 @@ export declare enum KameleoonStorageKey {
7
7
  TargetingData = "kameleoonTargetingData",
8
8
  VariationData = "kameleoonVariationData",
9
9
  VisitorCode = "kameleoonVisitorCode",
10
- OfflineTracking = "kameleoonOfflineTracking"
10
+ OfflineTracking = "kameleoonOfflineTracking",
11
+ ConsentData = "kameleoonConsentData"
11
12
  }
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.KameleoonStorageKey=void 0;var KameleoonStorageKey=function(a){return a.ClientData="kameleoonClientData",a.TargetingData="kameleoonTargetingData",a.VariationData="kameleoonVariationData",a.VisitorCode="kameleoonVisitorCode",a.OfflineTracking="kameleoonOfflineTracking",a}({});exports.KameleoonStorageKey=KameleoonStorageKey;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.KameleoonStorageKey=void 0;var KameleoonStorageKey=function(a){return a.ClientData="kameleoonClientData",a.TargetingData="kameleoonTargetingData",a.VariationData="kameleoonVariationData",a.VisitorCode="kameleoonVisitorCode",a.OfflineTracking="kameleoonOfflineTracking",a.ConsentData="kameleoonConsentData",a}({});exports.KameleoonStorageKey=KameleoonStorageKey;
2
2
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":["KameleoonStorageKey","ClientData","TargetingData","VariationData","VisitorCode","OfflineTracking","exports"],"sources":["../../src/storage/constants.ts"],"sourcesContent":["/**\n * @readonly\n * @enum {string} an Enum containing keys for Kameleoon SDK related data stored on storage\n * */\nexport enum KameleoonStorageKey {\n ClientData = 'kameleoonClientData',\n TargetingData = 'kameleoonTargetingData',\n VariationData = 'kameleoonVariationData',\n VisitorCode = 'kameleoonVisitorCode',\n OfflineTracking = 'kameleoonOfflineTracking',\n}\n"],"mappings":"0GAIY,CAAAA,mBAAmB,UAAnBA,CAAmB,QAAnB,CAAAA,CAAmB,CAAAC,UAAA,uBAAnBD,CAAmB,CAAAE,aAAA,0BAAnBF,CAAmB,CAAAG,aAAA,0BAAnBH,CAAmB,CAAAI,WAAA,wBAAnBJ,CAAmB,CAAAK,eAAA,4BAAnBL,CAAmB,MAAAM,OAAA,CAAAN,mBAAA,CAAAA,mBAAA"}
1
+ {"version":3,"file":"constants.js","names":["KameleoonStorageKey","ClientData","TargetingData","VariationData","VisitorCode","OfflineTracking","ConsentData","exports"],"sources":["../../src/storage/constants.ts"],"sourcesContent":["/**\n * @readonly\n * @enum {string} an Enum containing keys for Kameleoon SDK related data stored on storage\n * */\nexport enum KameleoonStorageKey {\n ClientData = 'kameleoonClientData',\n TargetingData = 'kameleoonTargetingData',\n VariationData = 'kameleoonVariationData',\n VisitorCode = 'kameleoonVisitorCode',\n OfflineTracking = 'kameleoonOfflineTracking',\n ConsentData = 'kameleoonConsentData',\n}\n"],"mappings":"0GAIY,CAAAA,mBAAmB,UAAnBA,CAAmB,QAAnB,CAAAA,CAAmB,CAAAC,UAAA,uBAAnBD,CAAmB,CAAAE,aAAA,0BAAnBF,CAAmB,CAAAG,aAAA,0BAAnBH,CAAmB,CAAAI,WAAA,wBAAnBJ,CAAmB,CAAAK,eAAA,4BAAnBL,CAAmB,CAAAM,WAAA,wBAAnBN,CAAmB,MAAAO,OAAA,CAAAP,mBAAA,CAAAA,mBAAA"}
@@ -20,12 +20,15 @@ export type OfflineTracking = {
20
20
  isExperiment: boolean;
21
21
  }>;
22
22
  };
23
+ export type ConsentDataType = {
24
+ [visitorCode: string]: boolean;
25
+ };
23
26
  /**
24
27
  * @type StorageDataType - an enumeration type which represents a data stored on SDK storage
25
28
  *
26
29
  * `string` represents visitor code storage with only one string value
27
30
  * */
28
- export type StorageDataType = ClientDataType | VariationDataType | OfflineTracking | string;
31
+ export type StorageDataType = ClientDataType | VariationDataType | OfflineTracking | ConsentDataType | string;
29
32
  /**
30
33
  * @interface an interface of External Constructor for Storage which must be implemented by the wrapper constructor to initialize new `IExternalStorage` in order to be able to pass necessary initialization parameters
31
34
  * */
@@ -61,5 +64,11 @@ export interface IExternalStorage<T> {
61
64
  * @returns {Result<void, KameleoonError>} result with an `ok` boolean field indicated success or error. If result is ok contains an empty `data`, if not contains `error` field with a type of `KameleoonError`
62
65
  * */
63
66
  write: (data: T) => Result<void, KameleoonError>;
67
+ /**
68
+ * @method update - adds new data to existing data in storage
69
+ * @param {Partial<T>} data - representation of any generic partial data type
70
+ * @returns {Result<void, KameleoonError>} result with an `ok` boolean field indicated success or error. If result is ok contains an empty `data`, if not contains `error` field with a type of `KameleoonError`
71
+ * */
72
+ update: (data: Partial<T>) => Result<void, KameleoonError>;
64
73
  }
65
74
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../src/storage/types.ts"],"sourcesContent":["import { Result } from 'ts-res';\nimport { ConfigurationDataType } from 'src/clientConfiguration';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { KameleoonStorageKey } from './constants';\nimport {\n TrackDataParamsType,\n TrackExperimentParamsType,\n} from 'src/requester/types';\n\nexport type ClientDataType = {\n data: ConfigurationDataType;\n lastUpdate: string;\n};\n\nexport type FeatureFlagVariationsType = {\n [experimentId: string]: number;\n};\n\nexport type VariationDataType = {\n [visitorCode: string]: FeatureFlagVariationsType;\n};\n\ntype OfflineTrackingParameters =\n | TrackDataParamsType\n | TrackExperimentParamsType;\n\nexport type OfflineTracking = {\n requestParameters?: Array<\n OfflineTrackingParameters & { timestamp: number; isExperiment: boolean }\n >;\n};\n\n/**\n * @type StorageDataType - an enumeration type which represents a data stored on SDK storage\n *\n * `string` represents visitor code storage with only one string value\n * */\nexport type StorageDataType =\n | ClientDataType\n | VariationDataType\n | OfflineTracking\n | string;\n\n/**\n * @interface an interface of External Constructor for Storage which must be implemented by the wrapper constructor to initialize new `IExternalStorage` in order to be able to pass necessary initialization parameters\n * */\nexport interface IExternalStorageConstructor {\n /**\n * @method initialize - creates and instance of `IExternalStorage<StorageDataType>` and returns it\n *\n * Generic needs to be specified with a type for TypeScript to be able to infer concrete type based on enum variant\n * @param {KameleoonStorageKey} key - an enum variant containing keys for Kameleoon SDK related data stored on storage\n * @returns {IExternalStorage<StorageDataType>} an initialized instance of `IExternalStorage<StorageDataType>`\n * */\n initialize: <T extends StorageDataType>(\n key: KameleoonStorageKey,\n ) => IExternalStorage<T>;\n}\n\n/**\n * @interface an interface of External Storage which must be implemented to be used as external storage for initialized JS SDK Core.\n *\n * Generic `StorageDataType` needs to be specified with a type for TypeScript to be able to infer concrete type based on enum variant\n * However it's not constrained strictly by `StorageDataType` to let implementer use storage as a generic for other types\n * */\nexport interface IExternalStorage<T> {\n /**\n * @property key - an Enum `KameleoonStorageKey` variant containing a key for Kameleoon SDK related data stored on storage\n * */\n readonly key: KameleoonStorageKey;\n /**\n * @method read - reads data from the storage\n * @returns {Result<T, KameleoonError>} result with an `ok` boolean field indicated success or error. If result is ok contains `data` field with a type `T`, if not contains `error` field with a type of `KameleoonError`\n * */\n read: () => Result<T, KameleoonError>;\n /**\n * @method write - writes data to storage\n * @param {T} data - representation of any generic data type\n * @returns {Result<void, KameleoonError>} result with an `ok` boolean field indicated success or error. If result is ok contains an empty `data`, if not contains `error` field with a type of `KameleoonError`\n * */\n write: (data: T) => Result<void, KameleoonError>;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../src/storage/types.ts"],"sourcesContent":["import { Result } from 'ts-res';\nimport { ConfigurationDataType } from 'src/clientConfiguration';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { KameleoonStorageKey } from './constants';\nimport {\n TrackDataParamsType,\n TrackExperimentParamsType,\n} from 'src/requester/types';\n\nexport type ClientDataType = {\n data: ConfigurationDataType;\n lastUpdate: string;\n};\n\nexport type FeatureFlagVariationsType = {\n [experimentId: string]: number;\n};\n\nexport type VariationDataType = {\n [visitorCode: string]: FeatureFlagVariationsType;\n};\n\ntype OfflineTrackingParameters =\n | TrackDataParamsType\n | TrackExperimentParamsType;\n\nexport type OfflineTracking = {\n requestParameters?: Array<\n OfflineTrackingParameters & { timestamp: number; isExperiment: boolean }\n >;\n};\n\nexport type ConsentDataType = {\n [visitorCode: string]: boolean;\n};\n\n/**\n * @type StorageDataType - an enumeration type which represents a data stored on SDK storage\n *\n * `string` represents visitor code storage with only one string value\n * */\nexport type StorageDataType =\n | ClientDataType\n | VariationDataType\n | OfflineTracking\n | ConsentDataType\n | string;\n\n/**\n * @interface an interface of External Constructor for Storage which must be implemented by the wrapper constructor to initialize new `IExternalStorage` in order to be able to pass necessary initialization parameters\n * */\nexport interface IExternalStorageConstructor {\n /**\n * @method initialize - creates and instance of `IExternalStorage<StorageDataType>` and returns it\n *\n * Generic needs to be specified with a type for TypeScript to be able to infer concrete type based on enum variant\n * @param {KameleoonStorageKey} key - an enum variant containing keys for Kameleoon SDK related data stored on storage\n * @returns {IExternalStorage<StorageDataType>} an initialized instance of `IExternalStorage<StorageDataType>`\n * */\n initialize: <T extends StorageDataType>(\n key: KameleoonStorageKey,\n ) => IExternalStorage<T>;\n}\n\n/**\n * @interface an interface of External Storage which must be implemented to be used as external storage for initialized JS SDK Core.\n *\n * Generic `StorageDataType` needs to be specified with a type for TypeScript to be able to infer concrete type based on enum variant\n * However it's not constrained strictly by `StorageDataType` to let implementer use storage as a generic for other types\n * */\nexport interface IExternalStorage<T> {\n /**\n * @property key - an Enum `KameleoonStorageKey` variant containing a key for Kameleoon SDK related data stored on storage\n * */\n readonly key: KameleoonStorageKey;\n /**\n * @method read - reads data from the storage\n * @returns {Result<T, KameleoonError>} result with an `ok` boolean field indicated success or error. If result is ok contains `data` field with a type `T`, if not contains `error` field with a type of `KameleoonError`\n * */\n read: () => Result<T, KameleoonError>;\n /**\n * @method write - writes data to storage\n * @param {T} data - representation of any generic data type\n * @returns {Result<void, KameleoonError>} result with an `ok` boolean field indicated success or error. If result is ok contains an empty `data`, if not contains `error` field with a type of `KameleoonError`\n * */\n write: (data: T) => Result<void, KameleoonError>;\n /**\n * @method update - adds new data to existing data in storage\n * @param {Partial<T>} data - representation of any generic partial data type\n * @returns {Result<void, KameleoonError>} result with an `ok` boolean field indicated success or error. If result is ok contains an empty `data`, if not contains `error` field with a type of `KameleoonError`\n * */\n update: (data: Partial<T>) => Result<void, KameleoonError>;\n}\n"],"mappings":""}
package/dist/types.d.ts CHANGED
@@ -1,11 +1,12 @@
1
1
  /// <reference types="node" />
2
2
  import { IncomingMessage, ServerResponse } from 'http';
3
- import { JSONType } from './clientConfiguration/types';
3
+ import { ConfigurationDataType, JSONType } from './clientConfiguration/types';
4
4
  import { SdkLanguageType } from './constants';
5
5
  import { IExternalEventSourceConstructor } from './eventSource';
6
6
  import { IExternalStorageConstructor } from './storage';
7
- import { IExternalRequestDispatcher, GetClientConfigurationResultType } from './requester';
7
+ import { IExternalRequestDispatcher } from './requester';
8
8
  import { VisitorDataFiltersType } from './utilities';
9
+ import { CookieManager } from './cookieManager';
9
10
  /**
10
11
  * @param {number} updateInterval - update interval in _minutes_ for sdk configuration, minimum value is 1 minute
11
12
  * @defaultvalue 60
@@ -19,11 +20,14 @@ import { VisitorDataFiltersType } from './utilities';
19
20
  * - JavaScript SDK: `undefined` (no cleanup)
20
21
  * - React/React Native SDK: `undefined` (no cleanup)
21
22
  * - NodeJS SDK: `30`
23
+ *
24
+ * @param {string | undefined} domain - domain which cookie belongs to
22
25
  * */
23
26
  export type SDKConfigurationType = {
24
27
  updateInterval?: number;
25
28
  environment?: Environment;
26
29
  targetingDataCleanupInterval?: number;
30
+ domain?: string;
27
31
  };
28
32
  /**
29
33
  * @param {string} siteCode - client's siteCode defined on Kameleoon platform
@@ -47,16 +51,18 @@ export type ExternalPackageInfoType = {
47
51
  * @param {IExternalStorage | undefined} externalStorage - external file system storage implemented outside client initialization
48
52
  * @param {IExternalEventSourceConstructor | undefined} externalEventSource - constructor for building external event source implementation
49
53
  * @param {ExternalPackageInfoType} externalPackageInfo - external package info, used to get package version and name
50
- * @param {GetClientConfigurationResultType} externalClientConfiguration - external fetched client configuration
54
+ * @param {ConfigurationDataType} externalClientConfiguration - external fetched client configuration
51
55
  * @param {IExternalRequestDispatcher} externalRequestDispatcher - external request dispatcher, used to track data or get data
56
+ * @param {CookieManager} externalCookieManager - external cookie manager, used to get or generate visitor code
52
57
  * @param {number} targetingDataCleanupInterval - interval in *minutes* for cleaning up targeting data, minimum value is 1 minute
53
58
  * */
54
59
  export type InternalSDKConfigurationType = {
55
60
  externalStorage: IExternalStorageConstructor;
56
61
  externalEventSource: IExternalEventSourceConstructor;
62
+ externalCookieManager: CookieManager;
57
63
  externalPackageInfo: ExternalPackageInfoType;
58
64
  externalRequestDispatcher: IExternalRequestDispatcher;
59
- externalClientConfiguration?: GetClientConfigurationResultType;
65
+ externalClientConfiguration?: ConfigurationDataType;
60
66
  };
61
67
  /**
62
68
  * @readonly
@@ -123,7 +129,7 @@ export type TrackConversionParamsType = {
123
129
  /**
124
130
  * @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters
125
131
  * @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
132
+ * @param {VisitorDataFiltersType | undefined} filters - optional parameter for specifying the filters for which data should be retrieved from what visit, by default only current and latest previous visits' `customData` is retrieved
127
133
  * */
128
134
  export type RemoteVisitorDataParamsType = {
129
135
  visitorCode: string;
@@ -163,34 +169,38 @@ export type WarehouseAudienceType = {
163
169
  * @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters
164
170
  * */
165
171
  export type GetResultCookieParametersType = {
166
- domain: string;
167
- visitorCode: string;
172
+ domain?: string;
173
+ visitorCode?: string;
168
174
  };
169
175
  /**
170
176
  * @param {Request} request - request object to get the cookie from
171
177
  * @param {Response} response - response object to write the updated cookie to
172
- * @param {string} domain - domain which cookie belongs to
173
178
  * @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
179
  * */
175
180
  export type ServerGetVisitorCodeParametersType = {
176
181
  request: IncomingMessage;
177
182
  response: ServerResponse;
178
- domain: string;
179
183
  defaultVisitorCode?: string;
180
184
  };
181
185
  /**
182
- * @param {string} domain - domain which cookie belongs to
183
186
  * @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
187
  * */
185
188
  export type ClientGetVisitorCodeParametersType = {
186
- domain: string;
187
189
  defaultVisitorCode?: string;
188
190
  };
189
191
  /**
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
192
+ * @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters
193
+ * @param {ServerResponse} response - response object to write the updated cookie to
191
194
  * */
192
- export type MobileGetVisitorCodeParametersType = {
193
- defaultVisitorCode?: string;
195
+ export type ServerSetCookieParametersType = {
196
+ visitorCode: string;
197
+ response: ServerResponse;
198
+ };
199
+ /**
200
+ * @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters
201
+ * */
202
+ export type ClientSetCookieParametersType = {
203
+ visitorCode: string;
194
204
  };
195
205
  export type TrackingCacheItemType = {
196
206
  [experimentId: number]: {
@@ -198,3 +208,25 @@ export type TrackingCacheItemType = {
198
208
  expirationTime: number;
199
209
  };
200
210
  };
211
+ /**
212
+ * @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters
213
+ * @param {ServerResponse} response - response object to write the updated cookie to
214
+ * @param {boolean} consent - a value representing the legal consent status. - 'true' indicates the
215
+ * visitor has given legal consent. - 'false' indicates the visitor has withdrawn or not
216
+ * provided legal consent.
217
+ * */
218
+ export type ServerSetLegalConsentParametersType = {
219
+ visitorCode: string;
220
+ consent: boolean;
221
+ response: ServerResponse;
222
+ };
223
+ /**
224
+ * @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters
225
+ * @param {boolean} consent - a value representing the legal consent status. - 'true' indicates the
226
+ * visitor has given legal consent. - 'false' indicates the visitor has withdrawn or not
227
+ * provided legal consent.
228
+ * */
229
+ export type ClientSetLegalConsentParametersType = {
230
+ visitorCode: string;
231
+ consent: boolean;
232
+ };
package/dist/types.js.map CHANGED
@@ -1 +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"}
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 { ConfigurationDataType, JSONType } from './clientConfiguration/types';\nimport { SdkLanguageType } from './constants';\nimport { IExternalEventSourceConstructor } from './eventSource';\nimport { IExternalStorageConstructor } from './storage';\nimport { IExternalRequestDispatcher } from './requester';\nimport { VisitorDataFiltersType } from './utilities';\nimport { CookieManager } from './cookieManager';\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 *\n * @param {string | undefined} domain - domain which cookie belongs to\n * */\nexport type SDKConfigurationType = {\n updateInterval?: number;\n environment?: Environment;\n targetingDataCleanupInterval?: number;\n domain?: string;\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 {ConfigurationDataType} externalClientConfiguration - external fetched client configuration\n * @param {IExternalRequestDispatcher} externalRequestDispatcher - external request dispatcher, used to track data or get data\n * @param {CookieManager} externalCookieManager - external cookie manager, used to get or generate visitor code\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 externalCookieManager: CookieManager;\n externalPackageInfo: ExternalPackageInfoType;\n externalRequestDispatcher: IExternalRequestDispatcher;\n externalClientConfiguration?: ConfigurationDataType;\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 current and latest previous visits' `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 | 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 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 ClientGetVisitorCodeParametersType = {\n defaultVisitorCode?: string;\n};\n\n/**\n * @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters\n * @param {ServerResponse} response - response object to write the updated cookie to\n * */\nexport type ServerSetCookieParametersType = {\n visitorCode: string;\n response: ServerResponse;\n};\n\n/**\n * @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters\n * */\nexport type ClientSetCookieParametersType = {\n visitorCode: string;\n};\n\nexport type TrackingCacheItemType = {\n [experimentId: number]: { variationId: number; expirationTime: number };\n};\n\n/**\n * @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters\n * @param {ServerResponse} response - response object to write the updated cookie to\n * @param {boolean} consent - a value representing the legal consent status. - 'true' indicates the\n * visitor has given legal consent. - 'false' indicates the visitor has withdrawn or not\n * provided legal consent.\n * */\nexport type ServerSetLegalConsentParametersType = {\n visitorCode: string;\n consent: boolean;\n response: ServerResponse;\n};\n\n/**\n * @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters\n * @param {boolean} consent - a value representing the legal consent status. - 'true' indicates the\n * visitor has given legal consent. - 'false' indicates the visitor has withdrawn or not\n * provided legal consent.\n * */\nexport type ClientSetLegalConsentParametersType = {\n visitorCode: string;\n consent: boolean;\n};\n"],"mappings":"4IA0EY,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"}
@@ -45,6 +45,7 @@ export type TrackRuleParametersType = {
45
45
  dataManager: DataManager;
46
46
  visitorCode: string;
47
47
  requester: Requester;
48
+ isConsentProvided: boolean;
48
49
  userAgent?: string;
49
50
  isOfflineModeOn?: boolean;
50
51
  offlineTrackingStorage: IExternalStorage<OfflineTracking>;
@@ -59,6 +60,7 @@ export type TrackDataParametersType = {
59
60
  visitorCode: string;
60
61
  dataManager: DataManager;
61
62
  requester: Requester;
63
+ isConsentProvided: boolean;
62
64
  isOfflineModeOn?: boolean;
63
65
  offlineTrackingStorage: IExternalStorage<OfflineTracking>;
64
66
  };
@@ -86,9 +88,16 @@ export type DeleteFromOfflineTrackingParametersType = {
86
88
  timestamps: number[];
87
89
  storage: IExternalStorage<OfflineTracking>;
88
90
  };
91
+ export type GetDataUrlParametersType = {
92
+ visitorCode: string;
93
+ dataManager: DataManager;
94
+ isConsentProvided: boolean;
95
+ };
89
96
  /**
90
- * @param {number} visitAmount - Number of visits to retrieve data from. Number between `1` and `25`
97
+ * @param {number} previousVisitAmount - Number of previous visits to retrieve data from. Number between `1` and `25`
91
98
  * *Default*: `1`.
99
+ * @param {number} currentVisit - If true, current visit data will be retrieved.
100
+ * *Default*: `true`.
92
101
  * @param {boolean} customData - If true, custom data will be retrieved.
93
102
  * *Default*: `true`.
94
103
  * @param {boolean} pageViews - If true, page data will be retrieved.
@@ -107,7 +116,8 @@ export type DeleteFromOfflineTrackingParametersType = {
107
116
  * *Default*: `false`.
108
117
  * */
109
118
  export type VisitorDataFiltersType = {
110
- visitAmount?: number;
119
+ previousVisitAmount?: number;
120
+ currentVisit?: boolean;
111
121
  pageViews?: boolean;
112
122
  geolocation?: boolean;
113
123
  device?: boolean;
@@ -1 +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"}
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 isConsentProvided: boolean;\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 isConsentProvided: boolean;\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\nexport type GetDataUrlParametersType = {\n visitorCode: string;\n dataManager: DataManager;\n isConsentProvided: boolean;\n};\n\n/**\n * @param {number} previousVisitAmount - Number of previous visits to retrieve data from. Number between `1` and `25`\n * *Default*: `1`.\n * @param {number} currentVisit - If true, current visit data will be retrieved.\n * *Default*: `true`.\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 previousVisitAmount?: number;\n currentVisit?: boolean;\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"}