@kameleoon/javascript-sdk-core 3.0.0 → 3.2.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 (82) 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 +13 -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/hasher/hasher.d.ts +1 -1
  21. package/dist/hasher/hasher.js +1 -1
  22. package/dist/hasher/hasher.js.map +1 -1
  23. package/dist/hasher/types.d.ts +1 -1
  24. package/dist/hasher/types.js.map +1 -1
  25. package/dist/index.d.ts +4 -3
  26. package/dist/index.js +1 -1
  27. package/dist/index.js.map +1 -1
  28. package/dist/kameleoonClient.d.ts +32 -1
  29. package/dist/kameleoonClient.js +1 -1
  30. package/dist/kameleoonClient.js.map +1 -1
  31. package/dist/kameleoonData/customData.d.ts +6 -0
  32. package/dist/kameleoonData/customData.js +1 -1
  33. package/dist/kameleoonData/customData.js.map +1 -1
  34. package/dist/kameleoonData/dataManager.d.ts +4 -1
  35. package/dist/kameleoonData/dataManager.js +1 -1
  36. package/dist/kameleoonData/dataManager.js.map +1 -1
  37. package/dist/kameleoonData/pageView.js +1 -1
  38. package/dist/kameleoonData/pageView.js.map +1 -1
  39. package/dist/kameleoonData/types.d.ts +1 -0
  40. package/dist/kameleoonData/types.js.map +1 -1
  41. package/dist/kameleoonError/constants.d.ts +1 -0
  42. package/dist/kameleoonError/constants.js +1 -1
  43. package/dist/kameleoonError/constants.js.map +1 -1
  44. package/dist/kameleoonError/kameleoonError.d.ts +2 -1
  45. package/dist/kameleoonError/kameleoonError.js +1 -1
  46. package/dist/kameleoonError/kameleoonError.js.map +1 -1
  47. package/dist/kameleoonError/types.d.ts +1 -0
  48. package/dist/kameleoonError/types.js +1 -1
  49. package/dist/kameleoonError/types.js.map +1 -1
  50. package/dist/kameleoonUtils.d.ts +0 -6
  51. package/dist/kameleoonUtils.js +1 -1
  52. package/dist/kameleoonUtils.js.map +1 -1
  53. package/dist/requester/constants.d.ts +3 -2
  54. package/dist/requester/constants.js +1 -1
  55. package/dist/requester/constants.js.map +1 -1
  56. package/dist/requester/index.d.ts +2 -2
  57. package/dist/requester/index.js +1 -1
  58. package/dist/requester/index.js.map +1 -1
  59. package/dist/requester/requester.d.ts +5 -5
  60. package/dist/requester/requester.js +1 -1
  61. package/dist/requester/requester.js.map +1 -1
  62. package/dist/requester/types.d.ts +8 -6
  63. package/dist/requester/types.js +1 -1
  64. package/dist/requester/types.js.map +1 -1
  65. package/dist/storage/constants.d.ts +2 -1
  66. package/dist/storage/constants.js +1 -1
  67. package/dist/storage/constants.js.map +1 -1
  68. package/dist/storage/types.d.ts +10 -1
  69. package/dist/storage/types.js.map +1 -1
  70. package/dist/types.d.ts +46 -14
  71. package/dist/types.js.map +1 -1
  72. package/dist/utilities/types.d.ts +12 -2
  73. package/dist/utilities/types.js.map +1 -1
  74. package/dist/utilities/utilities.d.ts +10 -4
  75. package/dist/utilities/utilities.js +1 -1
  76. package/dist/utilities/utilities.js.map +1 -1
  77. package/dist/variationConfiguration/types.d.ts +2 -0
  78. package/dist/variationConfiguration/types.js.map +1 -1
  79. package/dist/variationConfiguration/variationConfiguration.d.ts +1 -1
  80. package/dist/variationConfiguration/variationConfiguration.js +1 -1
  81. package/dist/variationConfiguration/variationConfiguration.js.map +1 -1
  82. package/package.json +1 -1
@@ -25,7 +25,8 @@ export declare class ClientConfiguration implements IClientConfiguration {
25
25
  private externalClientConfiguration?;
26
26
  private mappedRules;
27
27
  private dataManager;
28
- constructor({ settings, storage, requester, dataManager, externalClientConfiguration, offlineTrackingStorage, externalEventSource, }: ClientConfigurationParametersType);
28
+ private cookieManager;
29
+ constructor({ settings, storage, requester, dataManager, externalClientConfiguration, offlineTrackingStorage, externalEventSource, externalCookieManager, }: ClientConfigurationParametersType);
29
30
  initialize(useCache?: boolean): Promise<Result<void, KameleoonError>>;
30
31
  private cleanupHandlers;
31
32
  private handleExternalUpdates;
@@ -36,6 +37,8 @@ export declare class ClientConfiguration implements IClientConfiguration {
36
37
  get configuration(): ConfigurationType;
37
38
  get segments(): Map<string, SegmentType>;
38
39
  get ruleMap(): Map<number, MappedRuleType>;
40
+ get isConsentRequired(): boolean;
41
+ get hasAnyTargetedDeliveryRule(): boolean;
39
42
  private checkShouldUpdate;
40
43
  private readStorageData;
41
44
  /**
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ClientConfiguration=void 0;var _tsRes=require("ts-res"),_eventSource=require("../eventSource"),_constants=require("./constants"),_types=require("./types"),_utilities=require("../utilities");function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}function _createForOfIteratorHelper(a,b){var c="undefined"!=typeof Symbol&&a[Symbol.iterator]||a["@@iterator"];if(!c){if(Array.isArray(a)||(c=_unsupportedIterableToArray(a))||b&&a&&"number"==typeof a.length){c&&(a=c);var d=0,e=function(){};return{s:e,n:function n(){return d>=a.length?{done:!0}:{done:!1,value:a[d++]}},e:function e(a){throw a},f:e}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var f,g=!0,h=!1;return{s:function s(){c=c.call(a)},n:function n(){var a=c.next();return g=a.done,a},e:function e(a){h=!0,f=a},f:function f(){try{g||null==c.return||c.return()}finally{if(h)throw f}}}}function _unsupportedIterableToArray(a,b){if(a){if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(a):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?_arrayLikeToArray(a,b):void 0}}function _arrayLikeToArray(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c<b;c++)d[c]=a[c];return d}function _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 ClientConfiguration=function(){function a(b){var c=b.settings,d=b.storage,e=b.requester,f=b.dataManager,g=b.externalClientConfiguration,h=b.offlineTrackingStorage,i=b.externalEventSource;_classCallCheck(this,a),_defineProperty(this,"configurationUpdateCallback",void 0),_defineProperty(this,"updateConfigurationIntervalId",null),_defineProperty(this,"updateType",_types.UpdateType.Idle),_defineProperty(this,"configurationData",_constants.DEFAULT_CONFIGURATION_DATA),_defineProperty(this,"settings",void 0),_defineProperty(this,"lastUpdate",void 0),_defineProperty(this,"storage",void 0),_defineProperty(this,"offlineTrackingStorage",void 0),_defineProperty(this,"requester",void 0),_defineProperty(this,"eventSource",void 0),_defineProperty(this,"externalEventSource",void 0),_defineProperty(this,"externalClientConfiguration",void 0),_defineProperty(this,"mappedRules",new Map),_defineProperty(this,"dataManager",void 0),this.requester=e,this.settings=c,this.lastUpdate=new Date,this.storage=d,this.dataManager=f,this.readStorageData(),this.externalClientConfiguration=g,this.offlineTrackingStorage=h,this.externalEventSource=i}return _createClass(a,[{key:"initialize",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:if(c=!!this.externalClientConfiguration,d=this.checkShouldUpdate(c),!d){b.next=11;break}return b.next=5,this.updateClientConfiguration({useCache:a});case 5:if(e=b.sent,e.ok){b.next=8;break}return b.abrupt("return",e);case 8:if(f=e.data,!f){b.next=11;break}return b.abrupt("return",(0,_tsRes.Ok)());case 11:if(!c){b.next=14;break}return this.handleExternalUpdates(),b.abrupt("return",(0,_tsRes.Ok)());case 14:if(this.updateType!==_types.UpdateType.RealTime||this.eventSource){b.next=18;break}return this.updateType=_types.UpdateType.Idle,this.handleRealTimeUpdates(a),b.abrupt("return",(0,_tsRes.Ok)());case 18:return this.updateType===_types.UpdateType.Polling&&this.handlePollingUpdates(a),b.abrupt("return",(0,_tsRes.Ok)());case 20:case"end":return b.stop();}},b,this)}));return a}()},{key:"cleanupHandlers",value:function cleanupHandlers(){this.eventSource&&this.eventSource.close(),this.updateConfigurationIntervalId&&clearInterval(this.updateConfigurationIntervalId)}},{key:"handleExternalUpdates",value:function handleExternalUpdates(){this.cleanupHandlers();var a=this.externalClientConfiguration,b=a.configuration,c=a.customData,d=a.featureFlagConfigurations;this.configurationData={customData:c,configuration:b,featureFlags:d}}},{key:"handleRealTimeUpdates",value:function handleRealTimeUpdates(a){var b=this;this.cleanupHandlers(),this.eventSource=new _eventSource.ExternalEventSource(this.settings.siteCode,this.externalEventSource);var c=function updateEventCallback(c){b.updateClientConfiguration({useCache:a,timeStamp:c}).then(function(a){a.ok&&b.configurationUpdateCallback&&b.configurationUpdateCallback()})};this.eventSource.open(c)}},{key:"handlePollingUpdates",value:function handlePollingUpdates(a){var b=this;this.cleanupHandlers();try{this.updateConfigurationIntervalId=setInterval(function(){return b.updateClientConfiguration.bind(b)({useCache:a})},this.settings.updateInterval)}catch(a){throw this.updateConfigurationIntervalId&&clearInterval(this.updateConfigurationIntervalId),a}}},{key:"onConfigurationUpdate",value:function onConfigurationUpdate(a){this.configurationUpdateCallback=a}},{key:"featureFlags",get:function get(){return this.configurationData.featureFlags}},{key:"configuration",get:function get(){return this.configurationData.configuration}},{key:"segments",get:function get(){var a=new Map;return this.featureFlags.forEach(function(b){b.rules.forEach(function(b){b.segment&&!a.has(b.segment.id)&&a.set(b.segment.id,b.segment)})}),a}},{key:"ruleMap",get:function get(){if(this.mappedRules.size)return this.mappedRules;var a,b=new Map,c=_createForOfIteratorHelper(this.featureFlags);try{for(c.s();!(a=c.n()).done;){var d,e=a.value,f=_createForOfIteratorHelper(e.rules);try{var g=function _loop(){var a=d.value,c=a.id,f=a.experimentId,g=a.variationByExposition,h=new Map;g.forEach(function(a){var b=a.variationKey,c=a.variationId;"number"==typeof c&&h.set(b,c)}),b.set(c,{featureId:e.id,experimentId:f,variations:h})};for(f.s();!(d=f.n()).done;)g()}catch(a){f.e(a)}finally{f.f()}}}catch(a){c.e(a)}finally{c.f()}return this.mappedRules=b,b}},{key:"checkShouldUpdate",value:function checkShouldUpdate(){var a=!!(0<arguments.length&&void 0!==arguments[0])&&arguments[0],b=this.configurationData,c=b.featureFlags,d=b.configuration,e=this.settings.updateInterval;if(a)return this.updateType=_types.UpdateType.Idle,!1;if(this.updateType=d.realTimeUpdate?_types.UpdateType.RealTime:_types.UpdateType.Polling,!c.length)return!0;var f=this.lastUpdate.getTime(),g=Date.now()-e;return f<g}},{key:"readStorageData",value:function readStorageData(){var a=this.storage.read();if(a.ok){var b=a.data,c=b.data,d=b.lastUpdate;this.configurationData=c,this.lastUpdate=new Date(Date.parse(d))}}},{key:"updateClientConfiguration",value:function(){function a(){return b.apply(this,arguments)}var b=_asyncToGenerator(_regeneratorRuntime().mark(function a(){var b,c,d,e,f,g,h,i,j,k,l,m,n,o=arguments;return _regeneratorRuntime().wrap(function p(a){for(;1;)switch(a.prev=a.next){case 0:return b=0<o.length&&void 0!==o[0]?o[0]:{},c=b.useCache,d=void 0!==c&&c,e=b.timeStamp,a.next=3,this.requester.getClientConfiguration(e);case 3:if(f=a.sent,f.ok){a.next=9;break}if(g=this.configurationData.featureFlags,!(d&&g.length)){a.next=8;break}return a.abrupt("return",(0,_tsRes.Ok)(!0));case 8:return a.abrupt("return",f);case 9:if(_utilities.Utilities.sendOfflineTracking({storage:this.offlineTrackingStorage,requester:this.requester}),h=f.data,i=h.configuration,j=h.featureFlagConfigurations,k=h.customData,this.configurationData={configuration:i,featureFlags:j,customData:k},null!==k&&void 0!==k&&k.length&&(this.dataManager.customDataIndexes=k),this.dataManager.clearTrees(),this.mappedRules.clear(),l=this.updateStorageData(),l.ok){a.next=18;break}return a.abrupt("return",l);case 18:if(m=i.realTimeUpdate?_types.UpdateType.RealTime:_types.UpdateType.Polling,n=m!==this.updateType,!n){a.next=24;break}return this.updateType=m,a.next=24,this.initialize(d);case 24:return a.abrupt("return",(0,_tsRes.Ok)(n));case 25:case"end":return a.stop();}},a,this)}));return a}()},{key:"updateStorageData",value:function updateStorageData(){this.lastUpdate=new Date;var a={data:this.configurationData,lastUpdate:this.lastUpdate.toString()};return this.storage.write(a)}}]),a}();exports.ClientConfiguration=ClientConfiguration;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ClientConfiguration=void 0;var _tsRes=require("ts-res"),_eventSource=require("../eventSource"),_constants=require("./constants"),_types=require("./types"),_utilities=require("../utilities");function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}function _createForOfIteratorHelper(a,b){var c="undefined"!=typeof Symbol&&a[Symbol.iterator]||a["@@iterator"];if(!c){if(Array.isArray(a)||(c=_unsupportedIterableToArray(a))||b&&a&&"number"==typeof a.length){c&&(a=c);var d=0,e=function(){};return{s:e,n:function n(){return d>=a.length?{done:!0}:{done:!1,value:a[d++]}},e:function e(a){throw a},f:e}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var f,g=!0,h=!1;return{s:function s(){c=c.call(a)},n:function n(){var a=c.next();return g=a.done,a},e:function e(a){h=!0,f=a},f:function f(){try{g||null==c.return||c.return()}finally{if(h)throw f}}}}function _unsupportedIterableToArray(a,b){if(a){if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(a):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?_arrayLikeToArray(a,b):void 0}}function _arrayLikeToArray(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c<b;c++)d[c]=a[c];return d}function _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 ClientConfiguration=function(){function a(b){var c=b.settings,d=b.storage,e=b.requester,f=b.dataManager,g=b.externalClientConfiguration,h=b.offlineTrackingStorage,i=b.externalEventSource,j=b.externalCookieManager;_classCallCheck(this,a),_defineProperty(this,"configurationUpdateCallback",void 0),_defineProperty(this,"updateConfigurationIntervalId",null),_defineProperty(this,"updateType",_types.UpdateType.Idle),_defineProperty(this,"configurationData",_constants.DEFAULT_CONFIGURATION_DATA),_defineProperty(this,"settings",void 0),_defineProperty(this,"lastUpdate",void 0),_defineProperty(this,"storage",void 0),_defineProperty(this,"offlineTrackingStorage",void 0),_defineProperty(this,"requester",void 0),_defineProperty(this,"eventSource",void 0),_defineProperty(this,"externalEventSource",void 0),_defineProperty(this,"externalClientConfiguration",void 0),_defineProperty(this,"mappedRules",new Map),_defineProperty(this,"dataManager",void 0),_defineProperty(this,"cookieManager",void 0),this.requester=e,this.settings=c,this.lastUpdate=new Date,this.storage=d,this.dataManager=f,this.readStorageData(),this.externalClientConfiguration=g,this.offlineTrackingStorage=h,this.externalEventSource=i,this.cookieManager=j}return _createClass(a,[{key:"initialize",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:if(c=!!this.externalClientConfiguration,d=this.checkShouldUpdate(c),!d){b.next=11;break}return b.next=5,this.updateClientConfiguration({useCache:a});case 5:if(e=b.sent,e.ok){b.next=8;break}return b.abrupt("return",e);case 8:if(f=e.data,!f){b.next=11;break}return b.abrupt("return",(0,_tsRes.Ok)());case 11:if(!c){b.next=14;break}return this.handleExternalUpdates(),b.abrupt("return",(0,_tsRes.Ok)());case 14:if(this.updateType!==_types.UpdateType.RealTime||this.eventSource){b.next=18;break}return this.updateType=_types.UpdateType.Idle,this.handleRealTimeUpdates(a),b.abrupt("return",(0,_tsRes.Ok)());case 18:return this.updateType===_types.UpdateType.Polling&&this.handlePollingUpdates(a),b.abrupt("return",(0,_tsRes.Ok)());case 20:case"end":return b.stop();}},b,this)}));return a}()},{key:"cleanupHandlers",value:function cleanupHandlers(){this.eventSource&&this.eventSource.close(),this.updateConfigurationIntervalId&&clearInterval(this.updateConfigurationIntervalId)}},{key:"handleExternalUpdates",value:function handleExternalUpdates(){this.cleanupHandlers(),this.configurationData=this.externalClientConfiguration}},{key:"handleRealTimeUpdates",value:function handleRealTimeUpdates(a){var b=this;this.cleanupHandlers(),this.eventSource=new _eventSource.ExternalEventSource(this.settings.siteCode,this.externalEventSource);var c=function updateEventCallback(c){b.updateClientConfiguration({useCache:a,timestamp:c}).then(function(a){a.ok&&b.configurationUpdateCallback&&b.configurationUpdateCallback()})};this.eventSource.open(c)}},{key:"handlePollingUpdates",value:function handlePollingUpdates(a){var b=this;this.cleanupHandlers();try{this.updateConfigurationIntervalId=setInterval(function(){return b.updateClientConfiguration.bind(b)({useCache:a})},this.settings.updateInterval)}catch(a){throw this.updateConfigurationIntervalId&&clearInterval(this.updateConfigurationIntervalId),a}}},{key:"onConfigurationUpdate",value:function onConfigurationUpdate(a){this.configurationUpdateCallback=a}},{key:"featureFlags",get:function get(){return this.configurationData.featureFlags}},{key:"configuration",get:function get(){return this.configurationData.configuration}},{key:"segments",get:function get(){var a=new Map;return this.featureFlags.forEach(function(b){b.rules.forEach(function(b){b.segment&&!a.has(b.segment.id)&&a.set(b.segment.id,b.segment)})}),a}},{key:"ruleMap",get:function get(){if(this.mappedRules.size)return this.mappedRules;var a,b=new Map,c=_createForOfIteratorHelper(this.featureFlags);try{for(c.s();!(a=c.n()).done;){var d,e=a.value,f=_createForOfIteratorHelper(e.rules);try{var g=function _loop(){var a=d.value,c=a.id,f=a.experimentId,g=a.variationByExposition,h=new Map;g.forEach(function(a){var b=a.variationKey,c=a.variationId;"number"==typeof c&&h.set(b,c)}),b.set(c,{featureId:e.id,experimentId:f,variations:h})};for(f.s();!(d=f.n()).done;)g()}catch(a){f.e(a)}finally{f.f()}}}catch(a){c.e(a)}finally{c.f()}return this.mappedRules=b,b}},{key:"isConsentRequired",get:function get(){return this.configuration.consentType===_types.ConsentType.Required}},{key:"hasAnyTargetedDeliveryRule",get:function get(){return this.featureFlags.some(function(a){return a.environmentEnabled&&a.rules.some(function(a){return a.type===_types.RuleType.TARGETED_DELIVERY})})}},{key:"checkShouldUpdate",value:function checkShouldUpdate(){var a=!!(0<arguments.length&&void 0!==arguments[0])&&arguments[0],b=this.configurationData,c=b.featureFlags,d=b.configuration,e=this.settings.updateInterval;if(a)return this.updateType=_types.UpdateType.Idle,!1;if(this.updateType=d.realTimeUpdate?_types.UpdateType.RealTime:_types.UpdateType.Polling,!c.length)return!0;var f=this.lastUpdate.getTime(),g=Date.now()-e;return f<g}},{key:"readStorageData",value:function readStorageData(){var a=this.storage.read();if(a.ok){var b=a.data,c=b.data,d=b.lastUpdate;this.configurationData=c,this.lastUpdate=new Date(Date.parse(d))}}},{key:"updateClientConfiguration",value:function(){function a(){return b.apply(this,arguments)}var b=_asyncToGenerator(_regeneratorRuntime().mark(function a(){var b,c,d,e,f,g,h,i,j,k,l,m,n,o=arguments;return _regeneratorRuntime().wrap(function p(a){for(;1;)switch(a.prev=a.next){case 0:return b=0<o.length&&void 0!==o[0]?o[0]:{},c=b.useCache,d=void 0!==c&&c,e=b.timestamp,a.next=3,this.requester.getClientConfiguration(e);case 3:if(f=a.sent,f.ok){a.next=9;break}if(g=this.configurationData.featureFlags,!(d&&g.length)){a.next=8;break}return a.abrupt("return",(0,_tsRes.Ok)(!0));case 8:return a.abrupt("return",f);case 9:if(_utilities.Utilities.sendOfflineTracking({storage:this.offlineTrackingStorage,requester:this.requester}),h=f.data,i=h.configuration,j=h.customData,this.configurationData=f.data,null!==j&&void 0!==j&&j.length&&(this.dataManager.customDataIndexes=j),this.dataManager.clearTrees(),this.mappedRules.clear(),k=this.updateStorageData(),k.ok){a.next=18;break}return a.abrupt("return",k);case 18:if(l=i.realTimeUpdate?_types.UpdateType.RealTime:_types.UpdateType.Polling,m=l!==this.updateType,!m){a.next=24;break}return this.updateType=l,a.next=24,this.initialize(d);case 24:return n=this.isConsentRequired&&!this.hasAnyTargetedDeliveryRule,this.cookieManager.setConsentRequired(n),a.abrupt("return",(0,_tsRes.Ok)(m));case 27:case"end":return a.stop();}},a,this)}));return a}()},{key:"updateStorageData",value:function updateStorageData(){this.lastUpdate=new Date;var a={data:this.configurationData,lastUpdate:this.lastUpdate.toString()};return this.storage.write(a)}}]),a}();exports.ClientConfiguration=ClientConfiguration;
2
2
  //# sourceMappingURL=clientConfiguration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"clientConfiguration.js","names":["ClientConfiguration","a","b","settings","storage","requester","dataManager","externalClientConfiguration","offlineTrackingStorage","externalEventSource","_classCallCheck","_defineProperty","UpdateType","Idle","DEFAULT_CONFIGURATION_DATA","Map","lastUpdate","Date","readStorageData","_createClass","key","value","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","useCache","c","d","e","f","wrap","g","prev","next","isExternalConfiguration","shouldUpdate","checkShouldUpdate","updateClientConfiguration","updateResult","sent","ok","abrupt","isUpdateTypeToggled","data","Ok","handleExternalUpdates","updateType","RealTime","eventSource","handleRealTimeUpdates","Polling","handlePollingUpdates","stop","cleanupHandlers","close","updateConfigurationIntervalId","clearInterval","configuration","customData","featureFlagConfigurations","configurationData","featureFlags","ExternalEventSource","siteCode","updateEventCallback","timeStamp","then","configurationUpdateCallback","open","setInterval","bind","updateInterval","err","onConfigurationUpdate","callback","get","segments","forEach","flag","rules","rule","segment","has","id","set","mappedRules","size","_createForOfIteratorHelper","s","n","done","featureFlag","_loop","experimentId","variationByExposition","variationMap","variationKey","variationId","featureId","variations","skipChecks","length","realTimeUpdate","lastUpdateTime","getTime","updateWindowEdge","now","result","read","parse","h","i","j","k","l","m","o","p","getClientConfiguration","clientConfigurationResult","Utilities","sendOfflineTracking","customDataIndexes","clearTrees","clear","updateStorageData","toggleUpdateType","initialize","toString","write","exports"],"sources":["../../src/clientConfiguration/clientConfiguration.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonError } from 'src/kameleoonError/kameleoonError';\nimport { ClientSettingsType } from 'src/clientSettings/types';\nimport { DataManager } from 'src/kameleoonData';\nimport { Requester, GetClientConfigurationResultType } from 'src/requester';\nimport { SegmentType } from 'src/targeting';\nimport { IExternalStorage, ClientDataType } from 'src/storage';\nimport {\n ExternalEventSource,\n IEventSource,\n IExternalEventSourceConstructor,\n} from 'src/eventSource';\nimport { DEFAULT_CONFIGURATION_DATA } from './constants';\nimport {\n ClientConfigurationParametersType,\n ConfigurationDataType,\n ConfigurationType,\n FeatureFlagType,\n MappedRuleType,\n UpdateClientConfigurationParameters,\n UpdateType,\n} from './types';\nimport { Utilities } from 'src/utilities';\nimport { OfflineTracking } from 'src/storage/types';\n\ninterface IClientConfiguration {\n initialize: (useCache?: boolean) => Promise<Result<void, KameleoonError>>;\n onConfigurationUpdate: (callback: () => void) => void;\n readonly featureFlags: FeatureFlagType[];\n readonly configuration: ConfigurationType;\n readonly segments: Map<string, SegmentType>;\n readonly ruleMap: Map<number, MappedRuleType>;\n}\n\nexport class ClientConfiguration implements IClientConfiguration {\n private configurationUpdateCallback?: () => void;\n private updateConfigurationIntervalId: NodeJS.Timer | null = null;\n private updateType: UpdateType = UpdateType.Idle;\n private configurationData: ConfigurationDataType = DEFAULT_CONFIGURATION_DATA;\n private settings: ClientSettingsType;\n private lastUpdate: Date;\n private storage: IExternalStorage<ClientDataType>;\n private offlineTrackingStorage: IExternalStorage<OfflineTracking>;\n private requester: Requester;\n private eventSource?: IEventSource;\n private externalEventSource: IExternalEventSourceConstructor;\n private externalClientConfiguration?: GetClientConfigurationResultType;\n private mappedRules: Map<number, MappedRuleType> = new Map();\n private dataManager: DataManager;\n\n constructor({\n settings,\n storage,\n requester,\n dataManager,\n externalClientConfiguration,\n offlineTrackingStorage,\n externalEventSource,\n }: ClientConfigurationParametersType) {\n this.requester = requester;\n this.settings = settings;\n this.lastUpdate = new Date();\n this.storage = storage;\n this.dataManager = dataManager;\n this.readStorageData();\n this.externalClientConfiguration = externalClientConfiguration;\n this.offlineTrackingStorage = offlineTrackingStorage;\n this.externalEventSource = externalEventSource;\n }\n\n public async initialize(\n useCache?: boolean,\n ): Promise<Result<void, KameleoonError>> {\n const isExternalConfiguration = Boolean(this.externalClientConfiguration);\n const shouldUpdate = this.checkShouldUpdate(isExternalConfiguration);\n\n if (shouldUpdate) {\n const updateResult = await this.updateClientConfiguration({ useCache });\n\n if (!updateResult.ok) {\n return updateResult;\n }\n\n // --- Note ---\n // If update type is being toggled `initialize` will be called again\n // so we don't need to continue execution here\n const isUpdateTypeToggled = updateResult.data;\n\n if (isUpdateTypeToggled) {\n return Ok();\n }\n }\n\n if (isExternalConfiguration) {\n this.handleExternalUpdates();\n\n return Ok();\n }\n\n if (this.updateType === UpdateType.RealTime && !this.eventSource) {\n this.updateType = UpdateType.Idle;\n this.handleRealTimeUpdates(useCache);\n\n return Ok();\n }\n\n if (this.updateType === UpdateType.Polling) {\n this.handlePollingUpdates(useCache);\n }\n\n return Ok();\n }\n\n private cleanupHandlers(): void {\n if (this.eventSource) {\n this.eventSource.close();\n }\n\n if (this.updateConfigurationIntervalId) {\n clearInterval(this.updateConfigurationIntervalId);\n }\n }\n\n private handleExternalUpdates(): void {\n this.cleanupHandlers();\n\n const { configuration, customData, featureFlagConfigurations } =\n this.externalClientConfiguration!;\n\n this.configurationData = {\n customData,\n configuration,\n featureFlags: featureFlagConfigurations,\n };\n }\n\n private handleRealTimeUpdates(useCache?: boolean): void {\n this.cleanupHandlers();\n\n this.eventSource = new ExternalEventSource(\n this.settings.siteCode,\n this.externalEventSource,\n );\n\n const updateEventCallback = (timeStamp: number) => {\n this.updateClientConfiguration({ useCache, timeStamp }).then(\n (updateResult) => {\n if (updateResult.ok && this.configurationUpdateCallback) {\n this.configurationUpdateCallback();\n }\n },\n );\n };\n\n this.eventSource.open(updateEventCallback);\n }\n\n private handlePollingUpdates(useCache?: boolean): void {\n // --- Note ---\n // If `initialize` is called again the interval will be cleared\n // so theoretically we will constantly defer config update\n // but `this.lastUpdate` with `checkShouldUpdate` will prevent that\n this.cleanupHandlers();\n\n // --- Note ---\n // Same as targeting data interval we don't want to make failed configuration\n // retrieval recoverable\n try {\n this.updateConfigurationIntervalId = setInterval(\n () => this.updateClientConfiguration.bind(this)({ useCache }),\n this.settings.updateInterval,\n );\n } catch (err) {\n if (this.updateConfigurationIntervalId) {\n clearInterval(this.updateConfigurationIntervalId);\n }\n\n throw err;\n }\n }\n\n public onConfigurationUpdate(callback: () => void): void {\n this.configurationUpdateCallback = callback;\n }\n\n get featureFlags(): FeatureFlagType[] {\n return this.configurationData.featureFlags;\n }\n\n get configuration(): ConfigurationType {\n return this.configurationData.configuration;\n }\n\n get segments(): Map<string, SegmentType> {\n const segments = new Map();\n\n this.featureFlags.forEach((flag) => {\n flag.rules.forEach((rule) => {\n if (rule.segment && !segments.has(rule.segment.id)) {\n segments.set(rule.segment.id, rule.segment);\n }\n });\n });\n\n return segments;\n }\n\n get ruleMap(): Map<number, MappedRuleType> {\n if (this.mappedRules.size) {\n return this.mappedRules;\n }\n\n const mappedRules = new Map<number, MappedRuleType>();\n\n for (const featureFlag of this.featureFlags) {\n for (const rule of featureFlag.rules) {\n const { id, experimentId, variationByExposition } = rule;\n const variationMap = new Map<string, number>();\n\n variationByExposition.forEach(({ variationKey, variationId }) => {\n if (typeof variationId === 'number') {\n variationMap.set(variationKey, variationId);\n }\n });\n\n mappedRules.set(id, {\n featureId: featureFlag.id,\n experimentId,\n variations: variationMap,\n });\n }\n }\n\n this.mappedRules = mappedRules;\n\n return mappedRules;\n }\n\n private checkShouldUpdate(skipChecks = false): boolean {\n const { featureFlags, configuration } = this.configurationData;\n const { updateInterval } = this.settings;\n\n // --- Note ---\n // Following `updateType` logic is done for client side\n // edge cases where we have previous campaigns on storage already, but we still want\n // to initialize SSE/Polling after page reload\n if (skipChecks) {\n this.updateType = UpdateType.Idle;\n\n return false;\n }\n\n this.updateType = configuration.realTimeUpdate\n ? UpdateType.RealTime\n : UpdateType.Polling;\n\n if (!featureFlags.length) {\n return true;\n }\n\n const lastUpdateTime = this.lastUpdate.getTime();\n const updateWindowEdge = Date.now() - updateInterval;\n\n return lastUpdateTime < updateWindowEdge;\n }\n\n private readStorageData(): void {\n const result = this.storage.read();\n\n if (result.ok) {\n const { data, lastUpdate } = result.data;\n\n this.configurationData = data;\n this.lastUpdate = new Date(Date.parse(lastUpdate));\n }\n }\n\n /**\n * Updates client configuration\n *\n * @param useCache - if true, will not update configuration if it is already present (for _offline_ mode)\n * @param timeStamp - timestamp for real-time configuration update\n *\n * @returns `true` if current update type should be toggled (SSE/Polling)\n */\n private async updateClientConfiguration({\n useCache = false,\n timeStamp,\n }: UpdateClientConfigurationParameters = {}): Promise<\n Result<boolean, KameleoonError>\n > {\n const clientConfigurationResult =\n await this.requester.getClientConfiguration(timeStamp);\n\n if (!clientConfigurationResult.ok) {\n const { featureFlags } = this.configurationData;\n\n if (useCache && featureFlags.length) {\n return Ok(true);\n }\n\n return clientConfigurationResult;\n }\n\n Utilities.sendOfflineTracking({\n storage: this.offlineTrackingStorage,\n requester: this.requester,\n });\n\n // --- Note ---\n // `featureFlags` field is omitted (v1)\n // instead `featureFlagConfigurations` is used (v2)\n const { configuration, featureFlagConfigurations, customData } =\n clientConfigurationResult.data;\n\n this.configurationData = {\n configuration,\n featureFlags: featureFlagConfigurations,\n customData,\n };\n\n if (customData?.length) {\n this.dataManager.customDataIndexes = customData;\n }\n\n this.dataManager.clearTrees();\n this.mappedRules.clear();\n\n const result = this.updateStorageData();\n\n if (!result.ok) {\n return result;\n }\n\n const updateType = configuration.realTimeUpdate\n ? UpdateType.RealTime\n : UpdateType.Polling;\n\n const toggleUpdateType = updateType !== this.updateType;\n\n if (toggleUpdateType) {\n this.updateType = updateType;\n await this.initialize(useCache);\n }\n\n return Ok(toggleUpdateType);\n }\n\n private updateStorageData(): Result<void, KameleoonError> {\n this.lastUpdate = new Date();\n\n const data: ClientDataType = {\n data: this.configurationData,\n lastUpdate: this.lastUpdate.toString(),\n };\n\n return this.storage.write(data);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"clientConfiguration.js","names":["ClientConfiguration","a","b","settings","storage","requester","dataManager","externalClientConfiguration","offlineTrackingStorage","externalEventSource","externalCookieManager","_classCallCheck","_defineProperty","UpdateType","Idle","DEFAULT_CONFIGURATION_DATA","Map","lastUpdate","Date","readStorageData","cookieManager","_createClass","key","value","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","useCache","c","d","e","f","wrap","g","prev","next","isExternalConfiguration","shouldUpdate","checkShouldUpdate","updateClientConfiguration","updateResult","sent","ok","abrupt","isUpdateTypeToggled","data","Ok","handleExternalUpdates","updateType","RealTime","eventSource","handleRealTimeUpdates","Polling","handlePollingUpdates","stop","cleanupHandlers","close","updateConfigurationIntervalId","clearInterval","configurationData","ExternalEventSource","siteCode","updateEventCallback","timestamp","then","configurationUpdateCallback","open","setInterval","bind","updateInterval","err","onConfigurationUpdate","callback","get","featureFlags","configuration","segments","forEach","flag","rules","rule","segment","has","id","set","mappedRules","size","_createForOfIteratorHelper","s","n","done","featureFlag","_loop","experimentId","variationByExposition","variationMap","variationKey","variationId","featureId","variations","consentType","ConsentType","Required","some","environmentEnabled","type","RuleType","TARGETED_DELIVERY","skipChecks","length","realTimeUpdate","lastUpdateTime","getTime","updateWindowEdge","now","result","read","parse","h","i","j","k","l","m","o","p","getClientConfiguration","clientConfigurationResult","Utilities","sendOfflineTracking","customData","customDataIndexes","clearTrees","clear","updateStorageData","toggleUpdateType","initialize","consentRequired","isConsentRequired","hasAnyTargetedDeliveryRule","setConsentRequired","toString","write","exports"],"sources":["../../src/clientConfiguration/clientConfiguration.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonError } from 'src/kameleoonError/kameleoonError';\nimport { ClientSettingsType } from 'src/clientSettings/types';\nimport { DataManager } from 'src/kameleoonData';\nimport { Requester } from 'src/requester';\nimport { SegmentType } from 'src/targeting';\nimport { IExternalStorage, ClientDataType } from 'src/storage';\nimport {\n ExternalEventSource,\n IEventSource,\n IExternalEventSourceConstructor,\n} from 'src/eventSource';\nimport { DEFAULT_CONFIGURATION_DATA } from './constants';\nimport {\n ClientConfigurationParametersType,\n ConfigurationDataType,\n ConfigurationType,\n ConsentType,\n FeatureFlagType,\n MappedRuleType,\n RuleType,\n UpdateClientConfigurationParameters,\n UpdateType,\n} from './types';\nimport { Utilities } from 'src/utilities';\nimport { OfflineTracking } from 'src/storage/types';\nimport { CookieManager } from 'src/cookieManager';\n\ninterface IClientConfiguration {\n initialize: (useCache?: boolean) => Promise<Result<void, KameleoonError>>;\n onConfigurationUpdate: (callback: () => void) => void;\n readonly featureFlags: FeatureFlagType[];\n readonly configuration: ConfigurationType;\n readonly segments: Map<string, SegmentType>;\n readonly ruleMap: Map<number, MappedRuleType>;\n}\n\nexport class ClientConfiguration implements IClientConfiguration {\n private configurationUpdateCallback?: () => void;\n private updateConfigurationIntervalId: NodeJS.Timer | null = null;\n private updateType: UpdateType = UpdateType.Idle;\n private configurationData: ConfigurationDataType = DEFAULT_CONFIGURATION_DATA;\n private settings: ClientSettingsType;\n private lastUpdate: Date;\n private storage: IExternalStorage<ClientDataType>;\n private offlineTrackingStorage: IExternalStorage<OfflineTracking>;\n private requester: Requester;\n private eventSource?: IEventSource;\n private externalEventSource: IExternalEventSourceConstructor;\n private externalClientConfiguration?: ConfigurationDataType;\n private mappedRules: Map<number, MappedRuleType> = new Map();\n private dataManager: DataManager;\n private cookieManager: CookieManager;\n\n constructor({\n settings,\n storage,\n requester,\n dataManager,\n externalClientConfiguration,\n offlineTrackingStorage,\n externalEventSource,\n externalCookieManager,\n }: ClientConfigurationParametersType) {\n this.requester = requester;\n this.settings = settings;\n this.lastUpdate = new Date();\n this.storage = storage;\n this.dataManager = dataManager;\n this.readStorageData();\n this.externalClientConfiguration = externalClientConfiguration;\n this.offlineTrackingStorage = offlineTrackingStorage;\n this.externalEventSource = externalEventSource;\n this.cookieManager = externalCookieManager;\n }\n\n public async initialize(\n useCache?: boolean,\n ): Promise<Result<void, KameleoonError>> {\n const isExternalConfiguration = Boolean(this.externalClientConfiguration);\n const shouldUpdate = this.checkShouldUpdate(isExternalConfiguration);\n\n if (shouldUpdate) {\n const updateResult = await this.updateClientConfiguration({ useCache });\n\n if (!updateResult.ok) {\n return updateResult;\n }\n\n // --- Note ---\n // If update type is being toggled `initialize` will be called again\n // so we don't need to continue execution here\n const isUpdateTypeToggled = updateResult.data;\n\n if (isUpdateTypeToggled) {\n return Ok();\n }\n }\n\n if (isExternalConfiguration) {\n this.handleExternalUpdates();\n\n return Ok();\n }\n\n if (this.updateType === UpdateType.RealTime && !this.eventSource) {\n this.updateType = UpdateType.Idle;\n this.handleRealTimeUpdates(useCache);\n\n return Ok();\n }\n\n if (this.updateType === UpdateType.Polling) {\n this.handlePollingUpdates(useCache);\n }\n\n return Ok();\n }\n\n private cleanupHandlers(): void {\n if (this.eventSource) {\n this.eventSource.close();\n }\n\n if (this.updateConfigurationIntervalId) {\n clearInterval(this.updateConfigurationIntervalId);\n }\n }\n\n private handleExternalUpdates(): void {\n this.cleanupHandlers();\n\n this.configurationData = this.externalClientConfiguration!;\n }\n\n private handleRealTimeUpdates(useCache?: boolean): void {\n this.cleanupHandlers();\n\n this.eventSource = new ExternalEventSource(\n this.settings.siteCode,\n this.externalEventSource,\n );\n\n const updateEventCallback = (timestamp: number) => {\n this.updateClientConfiguration({ useCache, timestamp }).then(\n (updateResult) => {\n if (updateResult.ok && this.configurationUpdateCallback) {\n this.configurationUpdateCallback();\n }\n },\n );\n };\n\n this.eventSource.open(updateEventCallback);\n }\n\n private handlePollingUpdates(useCache?: boolean): void {\n // --- Note ---\n // If `initialize` is called again the interval will be cleared\n // so theoretically we will constantly defer config update\n // but `this.lastUpdate` with `checkShouldUpdate` will prevent that\n this.cleanupHandlers();\n\n // --- Note ---\n // Same as targeting data interval we don't want to make failed configuration\n // retrieval recoverable\n try {\n this.updateConfigurationIntervalId = setInterval(\n () => this.updateClientConfiguration.bind(this)({ useCache }),\n this.settings.updateInterval,\n );\n } catch (err) {\n if (this.updateConfigurationIntervalId) {\n clearInterval(this.updateConfigurationIntervalId);\n }\n\n throw err;\n }\n }\n\n public onConfigurationUpdate(callback: () => void): void {\n this.configurationUpdateCallback = callback;\n }\n\n get featureFlags(): FeatureFlagType[] {\n return this.configurationData.featureFlags;\n }\n\n get configuration(): ConfigurationType {\n return this.configurationData.configuration;\n }\n\n get segments(): Map<string, SegmentType> {\n const segments = new Map();\n\n this.featureFlags.forEach((flag) => {\n flag.rules.forEach((rule) => {\n if (rule.segment && !segments.has(rule.segment.id)) {\n segments.set(rule.segment.id, rule.segment);\n }\n });\n });\n\n return segments;\n }\n\n get ruleMap(): Map<number, MappedRuleType> {\n if (this.mappedRules.size) {\n return this.mappedRules;\n }\n\n const mappedRules = new Map<number, MappedRuleType>();\n\n for (const featureFlag of this.featureFlags) {\n for (const rule of featureFlag.rules) {\n const { id, experimentId, variationByExposition } = rule;\n const variationMap = new Map<string, number>();\n\n variationByExposition.forEach(({ variationKey, variationId }) => {\n if (typeof variationId === 'number') {\n variationMap.set(variationKey, variationId);\n }\n });\n\n mappedRules.set(id, {\n featureId: featureFlag.id,\n experimentId,\n variations: variationMap,\n });\n }\n }\n\n this.mappedRules = mappedRules;\n\n return mappedRules;\n }\n\n get isConsentRequired(): boolean {\n return this.configuration.consentType === ConsentType.Required;\n }\n\n get hasAnyTargetedDeliveryRule(): boolean {\n return this.featureFlags.some(\n (featureFlag) =>\n featureFlag.environmentEnabled &&\n featureFlag.rules.some(\n (rule) => rule.type === RuleType.TARGETED_DELIVERY,\n ),\n );\n }\n\n private checkShouldUpdate(skipChecks = false): boolean {\n const { featureFlags, configuration } = this.configurationData;\n const { updateInterval } = this.settings;\n\n // --- Note ---\n // Following `updateType` logic is done for client side\n // edge cases where we have previous campaigns on storage already, but we still want\n // to initialize SSE/Polling after page reload\n if (skipChecks) {\n this.updateType = UpdateType.Idle;\n\n return false;\n }\n\n this.updateType = configuration.realTimeUpdate\n ? UpdateType.RealTime\n : UpdateType.Polling;\n\n if (!featureFlags.length) {\n return true;\n }\n\n const lastUpdateTime = this.lastUpdate.getTime();\n const updateWindowEdge = Date.now() - updateInterval;\n\n return lastUpdateTime < updateWindowEdge;\n }\n\n private readStorageData(): void {\n const result = this.storage.read();\n\n if (result.ok) {\n const { data, lastUpdate } = result.data;\n\n this.configurationData = data;\n this.lastUpdate = new Date(Date.parse(lastUpdate));\n }\n }\n\n /**\n * Updates client configuration\n *\n * @param useCache - if true, will not update configuration if it is already present (for _offline_ mode)\n * @param timeStamp - timestamp for real-time configuration update\n *\n * @returns `true` if current update type should be toggled (SSE/Polling)\n */\n private async updateClientConfiguration({\n useCache = false,\n timestamp,\n }: UpdateClientConfigurationParameters = {}): Promise<\n Result<boolean, KameleoonError>\n > {\n const clientConfigurationResult =\n await this.requester.getClientConfiguration(timestamp);\n\n if (!clientConfigurationResult.ok) {\n const { featureFlags } = this.configurationData;\n\n if (useCache && featureFlags.length) {\n return Ok(true);\n }\n\n return clientConfigurationResult;\n }\n\n Utilities.sendOfflineTracking({\n storage: this.offlineTrackingStorage,\n requester: this.requester,\n });\n\n const { configuration, customData } = clientConfigurationResult.data;\n\n this.configurationData = clientConfigurationResult.data;\n\n if (customData?.length) {\n this.dataManager.customDataIndexes = customData;\n }\n\n this.dataManager.clearTrees();\n this.mappedRules.clear();\n\n const result = this.updateStorageData();\n\n if (!result.ok) {\n return result;\n }\n\n const updateType = configuration.realTimeUpdate\n ? UpdateType.RealTime\n : UpdateType.Polling;\n\n const toggleUpdateType = updateType !== this.updateType;\n\n if (toggleUpdateType) {\n this.updateType = updateType;\n await this.initialize(useCache);\n }\n\n // --- Note ---\n // Regarding GDPR policy we should set visitorCode if legal consent isn't required\n // or we have at least one Targeted Delivery rule in configuration\n const consentRequired =\n this.isConsentRequired && !this.hasAnyTargetedDeliveryRule;\n this.cookieManager.setConsentRequired(consentRequired);\n\n return Ok(toggleUpdateType);\n }\n\n private updateStorageData(): Result<void, KameleoonError> {\n this.lastUpdate = new Date();\n\n const data: ClientDataType = {\n data: this.configurationData,\n lastUpdate: this.lastUpdate.toString(),\n };\n\n return this.storage.write(data);\n }\n}\n"],"mappings":"4gTAqCa,CAAAA,mBAAmB,YAiB9B,SAAAC,EAAAC,CAAA,CASsC,IARpC,CAAAC,CAAQ,CAAAD,CAAA,CAARC,QAAQ,CACRC,CAAO,CAAAF,CAAA,CAAPE,OAAO,CACPC,CAAS,CAAAH,CAAA,CAATG,SAAS,CACTC,CAAW,CAAAJ,CAAA,CAAXI,WAAW,CACXC,CAA2B,CAAAL,CAAA,CAA3BK,2BAA2B,CAC3BC,CAAsB,CAAAN,CAAA,CAAtBM,sBAAsB,CACtBC,CAAmB,CAAAP,CAAA,CAAnBO,mBAAmB,CACnBC,CAAqB,CAAAR,CAAA,CAArBQ,qBAAqB,CAAAC,eAAA,MAAAV,CAAA,EAAAW,eAAA,4CAAAA,eAAA,sCAvBsC,IAAI,EAAAA,eAAA,mBAChCC,iBAAU,CAACC,IAAI,EAAAF,eAAA,0BACGG,qCAA0B,EAAAH,eAAA,yBAAAA,eAAA,2BAAAA,eAAA,wBAAAA,eAAA,uCAAAA,eAAA,0BAAAA,eAAA,4BAAAA,eAAA,oCAAAA,eAAA,4CAAAA,eAAA,oBAS1B,GAAI,CAAAI,GAAK,EAAAJ,eAAA,4BAAAA,eAAA,8BAc1D,IAAI,CAACP,SAAS,CAAGA,CAAS,CAC1B,IAAI,CAACF,QAAQ,CAAGA,CAAQ,CACxB,IAAI,CAACc,UAAU,CAAG,GAAI,CAAAC,IAAM,CAC5B,IAAI,CAACd,OAAO,CAAGA,CAAO,CACtB,IAAI,CAACE,WAAW,CAAGA,CAAW,CAC9B,IAAI,CAACa,eAAe,EAAE,CACtB,IAAI,CAACZ,2BAA2B,CAAGA,CAA2B,CAC9D,IAAI,CAACC,sBAAsB,CAAGA,CAAsB,CACpD,IAAI,CAACC,mBAAmB,CAAGA,CAAmB,CAC9C,IAAI,CAACW,aAAa,CAAGV,CACvB,CAAC,OAAAW,YAAA,CAAApB,CAAA,GAAAqB,GAAA,cAAAC,KAAA,qBAAAtB,EAAA,SAAAC,CAAA,CAAAsB,KAAA,MAAAC,SAAA,MAAAvB,CAAA,CAAAwB,iBAAA,CAAAC,mBAAA,GAAAC,IAAA,CAED,SAAA1B,EACE2B,CAAkB,MAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,QAAAN,mBAAA,GAAAO,IAAA,UAAAC,EAAAjC,CAAA,iBAAAA,CAAA,CAAAkC,IAAA,CAAAlC,CAAA,CAAAmC,IAAA,YAEZC,CAAuB,GAAW,IAAI,CAAC/B,2BAA2B,CAClEgC,CAAY,CAAG,IAAI,CAACC,iBAAiB,CAACF,CAAuB,CAAC,EAEhEC,CAAY,EAAArC,CAAA,CAAAmC,IAAA,iBAAAnC,CAAA,CAAAmC,IAAA,GACa,IAAI,CAACI,yBAAyB,CAAC,CAAEZ,QAAQ,CAARA,CAAS,CAAC,CAAC,WAAjEa,CAAY,CAAAxC,CAAA,CAAAyC,IAAA,CAEbD,CAAY,CAACE,EAAE,EAAA1C,CAAA,CAAAmC,IAAA,gBAAAnC,CAAA,CAAA2C,MAAA,UACXH,CAAY,YAMfI,CAAmB,CAAGJ,CAAY,CAACK,IAAI,EAEzCD,CAAmB,EAAA5C,CAAA,CAAAmC,IAAA,iBAAAnC,CAAA,CAAA2C,MAAA,UACd,GAAAG,SAAE,GAAE,cAIXV,CAAuB,EAAApC,CAAA,CAAAmC,IAAA,gBACzB,KAAI,CAACY,qBAAqB,EAAE,CAAA/C,CAAA,CAAA2C,MAAA,UAErB,GAAAG,SAAE,GAAE,aAGT,IAAI,CAACE,UAAU,GAAKrC,iBAAU,CAACsC,QAAQ,EAAK,IAAI,CAACC,WAAW,EAAAlD,CAAA,CAAAmC,IAAA,gBAC9D,KAAI,CAACa,UAAU,CAAGrC,iBAAU,CAACC,IAAI,CACjC,IAAI,CAACuC,qBAAqB,CAACxB,CAAQ,CAAC,CAAA3B,CAAA,CAAA2C,MAAA,UAE7B,GAAAG,SAAE,GAAE,gBAGT,KAAI,CAACE,UAAU,GAAKrC,iBAAU,CAACyC,OAAO,EACxC,IAAI,CAACC,oBAAoB,CAAC1B,CAAQ,CAAC,CAAA3B,CAAA,CAAA2C,MAAA,UAG9B,GAAAG,SAAE,GAAE,2BAAA9C,CAAA,CAAAsD,IAAA,MAAAtD,CAAA,OACZ,UAAAD,CAAA,MAAAqB,GAAA,mBAAAC,KAAA,CAED,SAAAkC,gBAAA,CAAgC,CAC1B,IAAI,CAACL,WAAW,EAClB,IAAI,CAACA,WAAW,CAACM,KAAK,EAAE,CAGtB,IAAI,CAACC,6BAA6B,EACpCC,aAAa,CAAC,IAAI,CAACD,6BAA6B,CAEpD,CAAC,GAAArC,GAAA,yBAAAC,KAAA,CAED,SAAA0B,sBAAA,CAAsC,CACpC,IAAI,CAACQ,eAAe,EAAE,CAEtB,IAAI,CAACI,iBAAiB,CAAG,IAAI,CAACtD,2BAChC,CAAC,GAAAe,GAAA,yBAAAC,KAAA,CAED,SAAA8B,sBAA8BxB,CAAkB,CAAQ,KAAA3B,CAAA,MACtD,IAAI,CAACuD,eAAe,EAAE,CAEtB,IAAI,CAACL,WAAW,CAAG,GAAI,CAAAU,gCAAmB,CACxC,IAAI,CAAC3D,QAAQ,CAAC4D,QAAQ,CACtB,IAAI,CAACtD,mBAAmB,CACzB,CAED,GAAM,CAAAuD,CAAmB,CAAG,QAAtB,CAAAA,mBAAmBA,CAAIC,CAAiB,CAAK,CACjD/D,CAAI,CAACuC,yBAAyB,CAAC,CAAEZ,QAAQ,CAARA,CAAQ,CAAEoC,SAAS,CAATA,CAAU,CAAC,CAAC,CAACC,IAAI,CAC1D,SAACxB,CAAY,CAAK,CACZA,CAAY,CAACE,EAAE,EAAI1C,CAAI,CAACiE,2BAA2B,EACrDjE,CAAI,CAACiE,2BAA2B,EAEpC,CAAC,CAEL,CAAC,CAED,IAAI,CAACf,WAAW,CAACgB,IAAI,CAACJ,CAAmB,CAC3C,CAAC,GAAA1C,GAAA,wBAAAC,KAAA,CAED,SAAAgC,qBAA6B1B,CAAkB,CAAQ,KAAA3B,CAAA,MAKrD,IAAI,CAACuD,eAAe,EAAE,CAKtB,GAAI,CACF,IAAI,CAACE,6BAA6B,CAAGU,WAAW,CAC9C,iBAAM,CAAAnE,CAAI,CAACuC,yBAAyB,CAAC6B,IAAI,CAACpE,CAAI,CAAC,CAAC,CAAE2B,QAAQ,CAARA,CAAS,CAAC,CAAC,EAC7D,IAAI,CAAC1B,QAAQ,CAACoE,cAAc,CAEhC,CAAE,MAAOC,CAAG,CAAE,CAKZ,KAJI,KAAI,CAACb,6BAA6B,EACpCC,aAAa,CAAC,IAAI,CAACD,6BAA6B,CAAC,CAG7Ca,CACR,CACF,CAAC,GAAAlD,GAAA,yBAAAC,KAAA,CAED,SAAAkD,sBAA6BC,CAAoB,CAAQ,CACvD,IAAI,CAACP,2BAA2B,CAAGO,CACrC,CAAC,GAAApD,GAAA,gBAAAqD,GAAA,CAED,SAAAA,IAAA,CAAsC,CACpC,MAAO,KAAI,CAACd,iBAAiB,CAACe,YAChC,CAAC,GAAAtD,GAAA,iBAAAqD,GAAA,CAED,SAAAA,IAAA,CAAuC,CACrC,MAAO,KAAI,CAACd,iBAAiB,CAACgB,aAChC,CAAC,GAAAvD,GAAA,YAAAqD,GAAA,CAED,SAAAA,IAAA,CAAyC,CACvC,GAAM,CAAAG,CAAQ,CAAG,GAAI,CAAA9D,GAAK,CAU1B,MARA,KAAI,CAAC4D,YAAY,CAACG,OAAO,CAAC,SAACC,CAAI,CAAK,CAClCA,CAAI,CAACC,KAAK,CAACF,OAAO,CAAC,SAACG,CAAI,CAAK,CACvBA,CAAI,CAACC,OAAO,EAAI,CAACL,CAAQ,CAACM,GAAG,CAACF,CAAI,CAACC,OAAO,CAACE,EAAE,CAAC,EAChDP,CAAQ,CAACQ,GAAG,CAACJ,CAAI,CAACC,OAAO,CAACE,EAAE,CAAEH,CAAI,CAACC,OAAO,CAE9C,CAAC,CACH,CAAC,CAAC,CAEKL,CACT,CAAC,GAAAxD,GAAA,WAAAqD,GAAA,CAED,SAAAA,IAAA,CAA2C,CACzC,GAAI,IAAI,CAACY,WAAW,CAACC,IAAI,CACvB,MAAO,KAAI,CAACD,WAAW,CACxB,IAAAtF,CAAA,CAEKsF,CAAW,CAAG,GAAI,CAAAvE,GAA6B,CAAAc,CAAA,CAAA2D,0BAAA,CAE3B,IAAI,CAACb,YAAY,MAA3C,IAAA9C,CAAA,CAAA4D,CAAA,KAAAzF,CAAA,CAAA6B,CAAA,CAAA6D,CAAA,IAAAC,IAAA,EAA6C,KAAA7D,CAAA,CAAlC8D,CAAW,CAAA5F,CAAA,CAAAsB,KAAA,CAAAU,CAAA,CAAAwD,0BAAA,CACDI,CAAW,CAACZ,KAAK,UAAA9C,CAAA,UAAA2D,MAAA,CAAE,IAA3B,CAAAZ,CAAI,CAAAnD,CAAA,CAAAR,KAAA,CACL8D,CAAE,CAA0CH,CAAI,CAAhDG,EAAE,CAAEU,CAAY,CAA4Bb,CAAI,CAA5Ca,YAAY,CAAEC,CAAqB,CAAKd,CAAI,CAA9Bc,qBAAqB,CACzCC,CAAY,CAAG,GAAI,CAAAjF,GAAqB,CAE9CgF,CAAqB,CAACjB,OAAO,CAAC,SAAA9E,CAAA,CAAmC,IAAhC,CAAAiG,CAAY,CAAAjG,CAAA,CAAZiG,YAAY,CAAEC,CAAW,CAAAlG,CAAA,CAAXkG,WAAW,CAC7B,QAAQ,EAA/B,MAAO,CAAAA,CAAwB,EACjCF,CAAY,CAACX,GAAG,CAACY,CAAY,CAAEC,CAAW,CAE9C,CAAC,CAAC,CAEFZ,CAAW,CAACD,GAAG,CAACD,CAAE,CAAE,CAClBe,SAAS,CAAEP,CAAW,CAACR,EAAE,CACzBU,YAAY,CAAZA,CAAY,CACZM,UAAU,CAAEJ,CACd,CAAC,CACH,CAAC,CAfD,IAAAhE,CAAA,CAAAyD,CAAA,KAAA3D,CAAA,CAAAE,CAAA,CAAA0D,CAAA,IAAAC,IAAA,EAAAzD,CAAA,EAeC,OAAAlC,CAAA,EAAAgC,CAAA,CAAAD,CAAA,CAAA/B,CAAA,UAAAgC,CAAA,CAAAA,CAAA,GACH,CAAC,OAAAhC,CAAA,EAAA6B,CAAA,CAAAE,CAAA,CAAA/B,CAAA,UAAA6B,CAAA,CAAAG,CAAA,GAID,MAFA,KAAI,CAACsD,WAAW,CAAGA,CAAW,CAEvBA,CACT,CAAC,GAAAjE,GAAA,qBAAAqD,GAAA,CAED,SAAAA,IAAA,CAAiC,CAC/B,MAAO,KAAI,CAACE,aAAa,CAACyB,WAAW,GAAKC,kBAAW,CAACC,QACxD,CAAC,GAAAlF,GAAA,8BAAAqD,GAAA,CAED,SAAAA,IAAA,CAA0C,CACxC,MAAO,KAAI,CAACC,YAAY,CAAC6B,IAAI,CAC3B,SAACZ,CAAW,QACV,CAAAA,CAAW,CAACa,kBAAkB,EAC9Bb,CAAW,CAACZ,KAAK,CAACwB,IAAI,CACpB,SAACvB,CAAI,QAAK,CAAAA,CAAI,CAACyB,IAAI,GAAKC,eAAQ,CAACC,iBAAiB,EACnD,EAEP,CAAC,GAAAvF,GAAA,qBAAAC,KAAA,CAED,SAAAiB,kBAAA,CAAuD,IAA7B,CAAAsE,CAAU,MAAArF,SAAA,CAAAsF,MAAA,WAAAtF,SAAA,MAAAA,SAAA,IAAAvB,CAAA,CACM,IAAI,CAAC2D,iBAAiB,CAAtDe,CAAY,CAAA1E,CAAA,CAAZ0E,YAAY,CAAEC,CAAa,CAAA3E,CAAA,CAAb2E,aAAa,CAC3BN,CAAc,CAAK,IAAI,CAACpE,QAAQ,CAAhCoE,cAAc,CAMtB,GAAIuC,CAAU,CAGZ,MAFA,KAAI,CAAC5D,UAAU,CAAGrC,iBAAU,CAACC,IAAI,IASnC,GAJA,IAAI,CAACoC,UAAU,CAAG2B,CAAa,CAACmC,cAAc,CAC1CnG,iBAAU,CAACsC,QAAQ,CACnBtC,iBAAU,CAACyC,OAAO,CAElB,CAACsB,CAAY,CAACmC,MAAM,CACtB,SACD,GAEK,CAAAE,CAAc,CAAG,IAAI,CAAChG,UAAU,CAACiG,OAAO,EAAE,CAC1CC,CAAgB,CAAGjG,IAAI,CAACkG,GAAG,EAAE,CAAG7C,CAAc,CAEpD,MAAO,CAAA0C,CAAc,CAAGE,CAC1B,CAAC,GAAA7F,GAAA,mBAAAC,KAAA,CAED,SAAAJ,gBAAA,CAAgC,CAC9B,GAAM,CAAAkG,CAAM,CAAG,IAAI,CAACjH,OAAO,CAACkH,IAAI,EAAE,CAElC,GAAID,CAAM,CAACzE,EAAE,CAAE,CACb,IAAA1C,CAAA,CAA6BmH,CAAM,CAACtE,IAAI,CAAhCA,CAAI,CAAA7C,CAAA,CAAJ6C,IAAI,CAAE9B,CAAU,CAAAf,CAAA,CAAVe,UAAU,CAExB,IAAI,CAAC4C,iBAAiB,CAAGd,CAAI,CAC7B,IAAI,CAAC9B,UAAU,CAAG,GAAI,CAAAC,IAAI,CAACA,IAAI,CAACqG,KAAK,CAACtG,CAAU,CAAC,CACnD,CACF,CAAC,GAAAK,GAAA,6BAAAC,KAAA,qBAAAtB,EAAA,SAAAC,CAAA,CAAAsB,KAAA,MAAAC,SAAA,MAAAvB,CAAA,CAAAwB,iBAAA,CAAAC,mBAAA,GAAAC,IAAA,CAUD,SAAA3B,EAAA,MAAAC,CAAA,CAAA4B,CAAA,CAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,CAAAE,CAAA,CAAAqF,CAAA,CAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,CAAAlC,CAAA,CAAAmC,CAAA,CAAArG,SAAA,QAAAE,mBAAA,GAAAO,IAAA,UAAA6F,EAAA9H,CAAA,iBAAAA,CAAA,CAAAmC,IAAA,CAAAnC,CAAA,CAAAoC,IAAA,gBAAAnC,CAAA,GAAA4H,CAAA,CAAAf,MAAA,WAAAe,CAAA,IAAAA,CAAA,IAGyC,CAAC,CAAC,CAAAhG,CAAA,CAAA5B,CAAA,CAFzC2B,QAAQ,CAARA,CAAQ,UAAAC,CAAA,EAAAA,CAAA,CACRmC,CAAS,CAAA/D,CAAA,CAAT+D,SAAS,CAAAhE,CAAA,CAAAoC,IAAA,GAKD,IAAI,CAAChC,SAAS,CAAC2H,sBAAsB,CAAC/D,CAAS,CAAC,WADlDgE,CAAyB,CAAAhI,CAAA,CAAA0C,IAAA,CAG1BsF,CAAyB,CAACrF,EAAE,EAAA3C,CAAA,CAAAoC,IAAA,YACvBuC,CAAY,CAAK,IAAI,CAACf,iBAAiB,CAAvCe,YAAY,GAEhB/C,CAAQ,EAAI+C,CAAY,CAACmC,MAAM,GAAA9G,CAAA,CAAAoC,IAAA,gBAAApC,CAAA,CAAA4C,MAAA,UAC1B,GAAAG,SAAE,KAAM,gBAAA/C,CAAA,CAAA4C,MAAA,UAGVoF,CAAyB,YAGlCC,oBAAS,CAACC,mBAAmB,CAAC,CAC5B/H,OAAO,CAAE,IAAI,CAACI,sBAAsB,CACpCH,SAAS,CAAE,IAAI,CAACA,SAClB,CAAC,CAAC,CAAAmH,CAAA,CAEoCS,CAAyB,CAAClF,IAAI,CAA5D8B,CAAa,CAAA2C,CAAA,CAAb3C,aAAa,CAAEuD,CAAU,CAAAZ,CAAA,CAAVY,UAAU,CAEjC,IAAI,CAACvE,iBAAiB,CAAGoE,CAAyB,CAAClF,IAAI,QAEnDqF,CAAU,WAAVA,CAAU,EAAVA,CAAU,CAAErB,MAAM,GACpB,IAAI,CAACzG,WAAW,CAAC+H,iBAAiB,CAAGD,CAAU,EAGjD,IAAI,CAAC9H,WAAW,CAACgI,UAAU,EAAE,CAC7B,IAAI,CAAC/C,WAAW,CAACgD,KAAK,EAAE,CAElBlB,CAAM,CAAG,IAAI,CAACmB,iBAAiB,EAAE,CAElCnB,CAAM,CAACzE,EAAE,EAAA3C,CAAA,CAAAoC,IAAA,iBAAApC,CAAA,CAAA4C,MAAA,UACLwE,CAAM,aAGTnE,CAAU,CAAG2B,CAAa,CAACmC,cAAc,CAC3CnG,iBAAU,CAACsC,QAAQ,CACnBtC,iBAAU,CAACyC,OAAO,CAEhBmF,CAAgB,CAAGvF,CAAU,GAAK,IAAI,CAACA,UAAU,EAEnDuF,CAAgB,EAAAxI,CAAA,CAAAoC,IAAA,gBAClB,KAAI,CAACa,UAAU,CAAGA,CAAU,CAAAjD,CAAA,CAAAoC,IAAA,IACtB,IAAI,CAACqG,UAAU,CAAC7G,CAAQ,CAAC,eAM3B,CAAA8G,CAAe,CACnB,IAAI,CAACC,iBAAiB,EAAI,CAAC,IAAI,CAACC,0BAA0B,CAC5D,IAAI,CAACzH,aAAa,CAAC0H,kBAAkB,CAACH,CAAe,CAAC,CAAA1I,CAAA,CAAA4C,MAAA,UAE/C,GAAAG,SAAE,EAACyF,CAAgB,CAAC,2BAAAxI,CAAA,CAAAuD,IAAA,MAAAvD,CAAA,OAC5B,UAAAA,CAAA,MAAAqB,GAAA,qBAAAC,KAAA,CAED,SAAAiH,kBAAA,CAA0D,CACxD,IAAI,CAACvH,UAAU,CAAG,GAAI,CAAAC,IAAM,CAE5B,GAAM,CAAA6B,CAAoB,CAAG,CAC3BA,IAAI,CAAE,IAAI,CAACc,iBAAiB,CAC5B5C,UAAU,CAAE,IAAI,CAACA,UAAU,CAAC8H,QAAQ,EACtC,CAAC,CAED,MAAO,KAAI,CAAC3I,OAAO,CAAC4I,KAAK,CAACjG,CAAI,CAChC,CAAC,IAAA9C,CAAA,IAAAgJ,OAAA,CAAAjJ,mBAAA,CAAAA,mBAAA"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.DEFAULT_CONFIGURATION_DATA=void 0;var DEFAULT_CONFIGURATION_DATA={featureFlags:[],customData:[],configuration:{realTimeUpdate:!1}};exports.DEFAULT_CONFIGURATION_DATA=DEFAULT_CONFIGURATION_DATA;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.DEFAULT_CONFIGURATION_DATA=void 0;var _types=require("./types"),DEFAULT_CONFIGURATION_DATA={featureFlags:[],customData:[],configuration:{realTimeUpdate:!1,projectEnabled:!0,consentType:_types.ConsentType.NotRequired}};exports.DEFAULT_CONFIGURATION_DATA=DEFAULT_CONFIGURATION_DATA;
2
2
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":["DEFAULT_CONFIGURATION_DATA","featureFlags","customData","configuration","realTimeUpdate","exports"],"sources":["../../src/clientConfiguration/constants.ts"],"sourcesContent":["import { ConfigurationDataType } from 'src/clientConfiguration';\n\nexport const DEFAULT_CONFIGURATION_DATA: ConfigurationDataType = {\n featureFlags: [],\n customData: [],\n configuration: {\n realTimeUpdate: false,\n },\n};\n"],"mappings":"8GAEO,GAAM,CAAAA,0BAAiD,CAAG,CAC/DC,YAAY,CAAE,EAAE,CAChBC,UAAU,CAAE,EAAE,CACdC,aAAa,CAAE,CACbC,cAAc,GAChB,CACF,CAAC,CAACC,OAAA,CAAAL,0BAAA,CAAAA,0BAAA"}
1
+ {"version":3,"file":"constants.js","names":["DEFAULT_CONFIGURATION_DATA","featureFlags","customData","configuration","realTimeUpdate","projectEnabled","consentType","ConsentType","NotRequired","exports"],"sources":["../../src/clientConfiguration/constants.ts"],"sourcesContent":["import { ConfigurationDataType } from 'src/clientConfiguration';\nimport { ConsentType } from './types';\n\nexport const DEFAULT_CONFIGURATION_DATA: ConfigurationDataType = {\n featureFlags: [],\n customData: [],\n configuration: {\n realTimeUpdate: false,\n projectEnabled: true,\n consentType: ConsentType.NotRequired,\n },\n};\n"],"mappings":"4IAGaA,0BAAiD,CAAG,CAC/DC,YAAY,CAAE,EAAE,CAChBC,UAAU,CAAE,EAAE,CACdC,aAAa,CAAE,CACbC,cAAc,GAAO,CACrBC,cAAc,GAAM,CACpBC,WAAW,CAAEC,kBAAW,CAACC,WAC3B,CACF,CAAC,CAAAC,OAAA,CAAAT,0BAAA,CAAAA,0BAAA"}
@@ -1,2 +1,2 @@
1
- export { ConfigurationDataType, CustomDataConfigurationType, CustomDataScope, VariationByExpositionType, FeatureVariableType, FeatureFlagType, RuleItemType, JSONValue, RuleType, JSONType, } from './types';
1
+ export { ConfigurationDataType, CustomDataConfigurationType, CustomDataScope, VariationByExpositionType, FeatureVariableType, FeatureFlagType, ConsentType, RuleItemType, JSONValue, RuleType, JSONType, } from './types';
2
2
  export { ClientConfiguration } from './clientConfiguration';
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ClientConfiguration",{enumerable:!0,get:function get(){return _clientConfiguration.ClientConfiguration}}),Object.defineProperty(exports,"ConfigurationDataType",{enumerable:!0,get:function get(){return _types.ConfigurationDataType}}),Object.defineProperty(exports,"CustomDataConfigurationType",{enumerable:!0,get:function get(){return _types.CustomDataConfigurationType}}),Object.defineProperty(exports,"CustomDataScope",{enumerable:!0,get:function get(){return _types.CustomDataScope}}),Object.defineProperty(exports,"FeatureFlagType",{enumerable:!0,get:function get(){return _types.FeatureFlagType}}),Object.defineProperty(exports,"FeatureVariableType",{enumerable:!0,get:function get(){return _types.FeatureVariableType}}),Object.defineProperty(exports,"JSONType",{enumerable:!0,get:function get(){return _types.JSONType}}),Object.defineProperty(exports,"JSONValue",{enumerable:!0,get:function get(){return _types.JSONValue}}),Object.defineProperty(exports,"RuleItemType",{enumerable:!0,get:function get(){return _types.RuleItemType}}),Object.defineProperty(exports,"RuleType",{enumerable:!0,get:function get(){return _types.RuleType}}),Object.defineProperty(exports,"VariationByExpositionType",{enumerable:!0,get:function get(){return _types.VariationByExpositionType}});var _types=require("./types"),_clientConfiguration=require("./clientConfiguration");
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ClientConfiguration",{enumerable:!0,get:function get(){return _clientConfiguration.ClientConfiguration}}),Object.defineProperty(exports,"ConfigurationDataType",{enumerable:!0,get:function get(){return _types.ConfigurationDataType}}),Object.defineProperty(exports,"ConsentType",{enumerable:!0,get:function get(){return _types.ConsentType}}),Object.defineProperty(exports,"CustomDataConfigurationType",{enumerable:!0,get:function get(){return _types.CustomDataConfigurationType}}),Object.defineProperty(exports,"CustomDataScope",{enumerable:!0,get:function get(){return _types.CustomDataScope}}),Object.defineProperty(exports,"FeatureFlagType",{enumerable:!0,get:function get(){return _types.FeatureFlagType}}),Object.defineProperty(exports,"FeatureVariableType",{enumerable:!0,get:function get(){return _types.FeatureVariableType}}),Object.defineProperty(exports,"JSONType",{enumerable:!0,get:function get(){return _types.JSONType}}),Object.defineProperty(exports,"JSONValue",{enumerable:!0,get:function get(){return _types.JSONValue}}),Object.defineProperty(exports,"RuleItemType",{enumerable:!0,get:function get(){return _types.RuleItemType}}),Object.defineProperty(exports,"RuleType",{enumerable:!0,get:function get(){return _types.RuleType}}),Object.defineProperty(exports,"VariationByExpositionType",{enumerable:!0,get:function get(){return _types.VariationByExpositionType}});var _types=require("./types"),_clientConfiguration=require("./clientConfiguration");
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/clientConfiguration/index.ts"],"sourcesContent":["export {\n ConfigurationDataType,\n CustomDataConfigurationType,\n CustomDataScope,\n VariationByExpositionType,\n FeatureVariableType,\n FeatureFlagType,\n RuleItemType,\n JSONValue,\n RuleType,\n JSONType,\n} from './types';\nexport { ClientConfiguration } from './clientConfiguration';\n"],"mappings":""}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/clientConfiguration/index.ts"],"sourcesContent":["export {\n ConfigurationDataType,\n CustomDataConfigurationType,\n CustomDataScope,\n VariationByExpositionType,\n FeatureVariableType,\n FeatureFlagType,\n ConsentType,\n RuleItemType,\n JSONValue,\n RuleType,\n JSONType,\n} from './types';\nexport { ClientConfiguration } from './clientConfiguration';\n"],"mappings":""}
@@ -1,13 +1,14 @@
1
1
  import { ClientSettingsType } from '../clientSettings';
2
2
  import { IExternalEventSourceConstructor } from '../eventSource';
3
3
  import { DataManager } from '../kameleoonData';
4
- import { Requester, GetClientConfigurationResultType } from '../requester';
4
+ import { Requester } from '../requester';
5
+ import { CookieManager } from '../cookieManager';
5
6
  import { ClientDataType, IExternalStorage } from '../storage';
6
7
  import { OfflineTracking } from '../storage/types';
7
8
  import { SegmentType } from '../targeting';
8
9
  import { VariableType } from '../types';
9
10
  export type UpdateClientConfigurationParameters = {
10
- timeStamp?: number;
11
+ timestamp?: number;
11
12
  useCache?: boolean;
12
13
  };
13
14
  export type ScheduleType = {
@@ -24,7 +25,6 @@ export type JSONValue = string | number | boolean | {
24
25
  } | JSONValue[];
25
26
  export type JSONType = Record<string | number | symbol, JSONValue> | null;
26
27
  export declare enum RuleType {
27
- PROGRESSIVE_DELIVERY = "PROGRESSIVE_DELIVERY",
28
28
  TARGETED_DELIVERY = "TARGETED_DELIVERY",
29
29
  EXPERIMENTATION = "EXPERIMENTATION"
30
30
  }
@@ -50,6 +50,10 @@ export declare enum CustomDataScope {
50
50
  Visitor = "VISITOR",
51
51
  Page = "Page"
52
52
  }
53
+ export declare enum ConsentType {
54
+ Required = "REQUIRED",
55
+ NotRequired = "NOT_REQUIRED"
56
+ }
53
57
  export type DeviationType = {
54
58
  variationId: string;
55
59
  value: number;
@@ -57,6 +61,7 @@ export type DeviationType = {
57
61
  export type FeatureFlagType = {
58
62
  id: number;
59
63
  featureKey: string;
64
+ environmentEnabled: boolean;
60
65
  variations: FeatureVariationType[];
61
66
  defaultVariationKey: string;
62
67
  rules: RuleItemType[];
@@ -98,10 +103,13 @@ export type ConfigurationDataType = {
98
103
  export type CustomDataConfigurationType = {
99
104
  index: number;
100
105
  localOnly: boolean;
106
+ isMappingIdentifier: boolean;
101
107
  scope: CustomDataScope;
102
108
  };
103
109
  export type ConfigurationType = {
104
110
  realTimeUpdate: boolean;
111
+ projectEnabled: boolean;
112
+ consentType: ConsentType;
105
113
  };
106
114
  export type ClientConfigurationParametersType = {
107
115
  settings: ClientSettingsType;
@@ -109,6 +117,7 @@ export type ClientConfigurationParametersType = {
109
117
  dataManager: DataManager;
110
118
  requester: Requester;
111
119
  offlineTrackingStorage: IExternalStorage<OfflineTracking>;
112
- externalClientConfiguration?: GetClientConfigurationResultType;
120
+ externalClientConfiguration?: ConfigurationDataType;
113
121
  externalEventSource: IExternalEventSourceConstructor;
122
+ externalCookieManager: CookieManager;
114
123
  };
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.UpdateType=exports.RuleType=exports.FeatureStatus=exports.FeatureFlagSdkLanguageType=exports.CustomDataScope=void 0;var UpdateType=function(a){return a[a.Polling=0]="Polling",a[a.RealTime=1]="RealTime",a[a.Idle=2]="Idle",a}({});exports.UpdateType=UpdateType;var RuleType=function(a){return a.PROGRESSIVE_DELIVERY="PROGRESSIVE_DELIVERY",a.TARGETED_DELIVERY="TARGETED_DELIVERY",a.EXPERIMENTATION="EXPERIMENTATION",a}({});exports.RuleType=RuleType;var FeatureFlagSdkLanguageType=function(a){return a.ANDROID="ANDROID",a.SWIFT="SWIFT",a.JAVA="JAVA",a.CSHARP="CSHARP",a.NODEJS="NODEJS",a.PHP="PHP",a.RUBY="RUBY",a.GO="GO",a.FLUTTER="FLUTTER",a.REACTJS="REACTJS",a}({});exports.FeatureFlagSdkLanguageType=FeatureFlagSdkLanguageType;var FeatureStatus=function(a){return a.ACTIVATED="ACTIVATED",a.DEACTIVATED="DEACTIVATED",a.SCHEDULED="SCHEDULED",a}({});exports.FeatureStatus=FeatureStatus;var CustomDataScope=function(a){return a.Visit="VISIT",a.Visitor="VISITOR",a.Page="Page",a}({});exports.CustomDataScope=CustomDataScope;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.UpdateType=exports.RuleType=exports.FeatureStatus=exports.FeatureFlagSdkLanguageType=exports.CustomDataScope=exports.ConsentType=void 0;var UpdateType=function(a){return a[a.Polling=0]="Polling",a[a.RealTime=1]="RealTime",a[a.Idle=2]="Idle",a}({});exports.UpdateType=UpdateType;var RuleType=function(a){return a.TARGETED_DELIVERY="TARGETED_DELIVERY",a.EXPERIMENTATION="EXPERIMENTATION",a}({});exports.RuleType=RuleType;var FeatureFlagSdkLanguageType=function(a){return a.ANDROID="ANDROID",a.SWIFT="SWIFT",a.JAVA="JAVA",a.CSHARP="CSHARP",a.NODEJS="NODEJS",a.PHP="PHP",a.RUBY="RUBY",a.GO="GO",a.FLUTTER="FLUTTER",a.REACTJS="REACTJS",a}({});exports.FeatureFlagSdkLanguageType=FeatureFlagSdkLanguageType;var FeatureStatus=function(a){return a.ACTIVATED="ACTIVATED",a.DEACTIVATED="DEACTIVATED",a.SCHEDULED="SCHEDULED",a}({});exports.FeatureStatus=FeatureStatus;var CustomDataScope=function(a){return a.Visit="VISIT",a.Visitor="VISITOR",a.Page="Page",a}({});exports.CustomDataScope=CustomDataScope;var ConsentType=function(a){return a.Required="REQUIRED",a.NotRequired="NOT_REQUIRED",a}({});exports.ConsentType=ConsentType;
2
2
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["UpdateType","Polling","RealTime","Idle","exports","RuleType","PROGRESSIVE_DELIVERY","TARGETED_DELIVERY","EXPERIMENTATION","FeatureFlagSdkLanguageType","ANDROID","SWIFT","JAVA","CSHARP","NODEJS","PHP","RUBY","GO","FLUTTER","REACTJS","FeatureStatus","ACTIVATED","DEACTIVATED","SCHEDULED","CustomDataScope","Visit","Visitor","Page"],"sources":["../../src/clientConfiguration/types.ts"],"sourcesContent":["import { ClientSettingsType } from 'src/clientSettings';\nimport { IExternalEventSourceConstructor } from 'src/eventSource';\nimport { DataManager } from 'src/kameleoonData';\nimport { Requester, GetClientConfigurationResultType } from 'src/requester';\nimport { ClientDataType, IExternalStorage } from 'src/storage';\nimport { OfflineTracking } from 'src/storage/types';\nimport { SegmentType } from 'src/targeting';\nimport { VariableType } from 'src/types';\n\nexport type UpdateClientConfigurationParameters = {\n timeStamp?: number;\n useCache?: boolean;\n};\n\nexport type ScheduleType = {\n dateStart: string;\n dateEnd: string;\n};\n\nexport enum UpdateType {\n Polling,\n RealTime,\n Idle,\n}\n\nexport type JSONValue =\n | string\n | number\n | boolean\n | { [x: string]: JSONValue }\n | JSONValue[];\n\nexport type JSONType = Record<string | number | symbol, JSONValue> | null;\n\nexport enum RuleType {\n PROGRESSIVE_DELIVERY = 'PROGRESSIVE_DELIVERY',\n TARGETED_DELIVERY = 'TARGETED_DELIVERY',\n EXPERIMENTATION = 'EXPERIMENTATION',\n}\n\nexport enum FeatureFlagSdkLanguageType {\n ANDROID = 'ANDROID',\n SWIFT = 'SWIFT',\n JAVA = 'JAVA',\n CSHARP = 'CSHARP',\n NODEJS = 'NODEJS',\n PHP = 'PHP',\n RUBY = 'RUBY',\n GO = 'GO',\n FLUTTER = 'FLUTTER',\n REACTJS = 'REACTJS',\n}\n\nexport enum FeatureStatus {\n ACTIVATED = 'ACTIVATED',\n DEACTIVATED = 'DEACTIVATED',\n SCHEDULED = 'SCHEDULED',\n}\n\nexport enum CustomDataScope {\n Visit = 'VISIT',\n Visitor = 'VISITOR',\n Page = 'Page',\n}\n\nexport type DeviationType = {\n variationId: string;\n value: number;\n};\n\nexport type FeatureFlagType = {\n id: number;\n featureKey: string;\n variations: FeatureVariationType[];\n defaultVariationKey: string;\n rules: RuleItemType[];\n};\n\nexport type FeatureVariationType = {\n key: string;\n variables: FeatureVariableType[];\n};\n\nexport type FeatureVariableType = {\n key: string;\n type: VariableType;\n value: string | number | boolean;\n};\n\nexport type RuleItemType = {\n type: RuleType;\n id: number;\n respoolTime: number | null;\n order: number;\n exposition: number;\n experimentId: number;\n variationByExposition: VariationByExpositionType[];\n segment: SegmentType | null;\n};\n\nexport type MappedRuleType = {\n experimentId: number;\n featureId: number;\n // --- Note ---\n // Map<variationKey, variationId>\n variations: Map<string, number>;\n};\n\nexport type VariationByExpositionType = {\n variationKey: string;\n variationId: number;\n exposition: number;\n};\n\nexport type ConfigurationDataType = {\n featureFlags: FeatureFlagType[];\n configuration: ConfigurationType;\n customData: CustomDataConfigurationType[];\n};\n\nexport type CustomDataConfigurationType = {\n index: number;\n localOnly: boolean;\n scope: CustomDataScope;\n};\n\nexport type ConfigurationType = {\n realTimeUpdate: boolean;\n};\n\nexport type ClientConfigurationParametersType = {\n settings: ClientSettingsType;\n storage: IExternalStorage<ClientDataType>;\n dataManager: DataManager;\n requester: Requester;\n offlineTrackingStorage: IExternalStorage<OfflineTracking>;\n externalClientConfiguration?: GetClientConfigurationResultType;\n externalEventSource: IExternalEventSourceConstructor;\n};\n"],"mappings":"mMAmBY,CAAAA,UAAU,UAAVA,CAAU,QAAV,CAAAA,CAAU,CAAVA,CAAU,CAAAC,OAAA,cAAVD,CAAU,CAAVA,CAAU,CAAAE,QAAA,eAAVF,CAAU,CAAVA,CAAU,CAAAG,IAAA,WAAVH,CAAU,MAAAI,OAAA,CAAAJ,UAAA,CAAAA,UAAA,IAeV,CAAAK,QAAQ,UAARA,CAAQ,QAAR,CAAAA,CAAQ,CAAAC,oBAAA,wBAARD,CAAQ,CAAAE,iBAAA,qBAARF,CAAQ,CAAAG,eAAA,mBAARH,CAAQ,MAAAD,OAAA,CAAAC,QAAA,CAAAA,QAAA,IAMR,CAAAI,0BAA0B,UAA1BA,CAA0B,QAA1B,CAAAA,CAA0B,CAAAC,OAAA,WAA1BD,CAA0B,CAAAE,KAAA,SAA1BF,CAA0B,CAAAG,IAAA,QAA1BH,CAA0B,CAAAI,MAAA,UAA1BJ,CAA0B,CAAAK,MAAA,UAA1BL,CAA0B,CAAAM,GAAA,OAA1BN,CAA0B,CAAAO,IAAA,QAA1BP,CAA0B,CAAAQ,EAAA,MAA1BR,CAA0B,CAAAS,OAAA,WAA1BT,CAA0B,CAAAU,OAAA,WAA1BV,CAA0B,MAAAL,OAAA,CAAAK,0BAAA,CAAAA,0BAAA,IAa1B,CAAAW,aAAa,UAAbA,CAAa,QAAb,CAAAA,CAAa,CAAAC,SAAA,aAAbD,CAAa,CAAAE,WAAA,eAAbF,CAAa,CAAAG,SAAA,aAAbH,CAAa,MAAAhB,OAAA,CAAAgB,aAAA,CAAAA,aAAA,IAMb,CAAAI,eAAe,UAAfA,CAAe,QAAf,CAAAA,CAAe,CAAAC,KAAA,SAAfD,CAAe,CAAAE,OAAA,WAAfF,CAAe,CAAAG,IAAA,QAAfH,CAAe,MAAApB,OAAA,CAAAoB,eAAA,CAAAA,eAAA"}
1
+ {"version":3,"file":"types.js","names":["UpdateType","Polling","RealTime","Idle","exports","RuleType","TARGETED_DELIVERY","EXPERIMENTATION","FeatureFlagSdkLanguageType","ANDROID","SWIFT","JAVA","CSHARP","NODEJS","PHP","RUBY","GO","FLUTTER","REACTJS","FeatureStatus","ACTIVATED","DEACTIVATED","SCHEDULED","CustomDataScope","Visit","Visitor","Page","ConsentType","Required","NotRequired"],"sources":["../../src/clientConfiguration/types.ts"],"sourcesContent":["import { ClientSettingsType } from 'src/clientSettings';\nimport { IExternalEventSourceConstructor } from 'src/eventSource';\nimport { DataManager } from 'src/kameleoonData';\nimport { Requester } from 'src/requester';\nimport { CookieManager } from 'src/cookieManager';\nimport { ClientDataType, IExternalStorage } from 'src/storage';\nimport { OfflineTracking } from 'src/storage/types';\nimport { SegmentType } from 'src/targeting';\nimport { VariableType } from 'src/types';\n\nexport type UpdateClientConfigurationParameters = {\n timestamp?: number;\n useCache?: boolean;\n};\n\nexport type ScheduleType = {\n dateStart: string;\n dateEnd: string;\n};\n\nexport enum UpdateType {\n Polling,\n RealTime,\n Idle,\n}\n\nexport type JSONValue =\n | string\n | number\n | boolean\n | { [x: string]: JSONValue }\n | JSONValue[];\n\nexport type JSONType = Record<string | number | symbol, JSONValue> | null;\n\nexport enum RuleType {\n TARGETED_DELIVERY = 'TARGETED_DELIVERY',\n EXPERIMENTATION = 'EXPERIMENTATION',\n}\n\nexport enum FeatureFlagSdkLanguageType {\n ANDROID = 'ANDROID',\n SWIFT = 'SWIFT',\n JAVA = 'JAVA',\n CSHARP = 'CSHARP',\n NODEJS = 'NODEJS',\n PHP = 'PHP',\n RUBY = 'RUBY',\n GO = 'GO',\n FLUTTER = 'FLUTTER',\n REACTJS = 'REACTJS',\n}\n\nexport enum FeatureStatus {\n ACTIVATED = 'ACTIVATED',\n DEACTIVATED = 'DEACTIVATED',\n SCHEDULED = 'SCHEDULED',\n}\n\nexport enum CustomDataScope {\n Visit = 'VISIT',\n Visitor = 'VISITOR',\n Page = 'Page',\n}\n\nexport enum ConsentType {\n Required = 'REQUIRED',\n NotRequired = 'NOT_REQUIRED',\n}\n\nexport type DeviationType = {\n variationId: string;\n value: number;\n};\n\nexport type FeatureFlagType = {\n id: number;\n featureKey: string;\n environmentEnabled: boolean;\n variations: FeatureVariationType[];\n defaultVariationKey: string;\n rules: RuleItemType[];\n};\n\nexport type FeatureVariationType = {\n key: string;\n variables: FeatureVariableType[];\n};\n\nexport type FeatureVariableType = {\n key: string;\n type: VariableType;\n value: string | number | boolean;\n};\n\nexport type RuleItemType = {\n type: RuleType;\n id: number;\n respoolTime: number | null;\n order: number;\n exposition: number;\n experimentId: number;\n variationByExposition: VariationByExpositionType[];\n segment: SegmentType | null;\n};\n\nexport type MappedRuleType = {\n experimentId: number;\n featureId: number;\n // --- Note ---\n // Map<variationKey, variationId>\n variations: Map<string, number>;\n};\n\nexport type VariationByExpositionType = {\n variationKey: string;\n variationId: number;\n exposition: number;\n};\n\nexport type ConfigurationDataType = {\n featureFlags: FeatureFlagType[];\n configuration: ConfigurationType;\n customData: CustomDataConfigurationType[];\n};\n\nexport type CustomDataConfigurationType = {\n index: number;\n localOnly: boolean;\n isMappingIdentifier: boolean;\n scope: CustomDataScope;\n};\n\nexport type ConfigurationType = {\n realTimeUpdate: boolean;\n projectEnabled: boolean;\n consentType: ConsentType;\n};\n\nexport type ClientConfigurationParametersType = {\n settings: ClientSettingsType;\n storage: IExternalStorage<ClientDataType>;\n dataManager: DataManager;\n requester: Requester;\n offlineTrackingStorage: IExternalStorage<OfflineTracking>;\n externalClientConfiguration?: ConfigurationDataType;\n externalEventSource: IExternalEventSourceConstructor;\n externalCookieManager: CookieManager;\n};\n"],"mappings":"uNAoBY,CAAAA,UAAU,UAAVA,CAAU,QAAV,CAAAA,CAAU,CAAVA,CAAU,CAAAC,OAAA,cAAVD,CAAU,CAAVA,CAAU,CAAAE,QAAA,eAAVF,CAAU,CAAVA,CAAU,CAAAG,IAAA,WAAVH,CAAU,MAAAI,OAAA,CAAAJ,UAAA,CAAAA,UAAA,IAeV,CAAAK,QAAQ,UAARA,CAAQ,QAAR,CAAAA,CAAQ,CAAAC,iBAAA,qBAARD,CAAQ,CAAAE,eAAA,mBAARF,CAAQ,MAAAD,OAAA,CAAAC,QAAA,CAAAA,QAAA,IAKR,CAAAG,0BAA0B,UAA1BA,CAA0B,QAA1B,CAAAA,CAA0B,CAAAC,OAAA,WAA1BD,CAA0B,CAAAE,KAAA,SAA1BF,CAA0B,CAAAG,IAAA,QAA1BH,CAA0B,CAAAI,MAAA,UAA1BJ,CAA0B,CAAAK,MAAA,UAA1BL,CAA0B,CAAAM,GAAA,OAA1BN,CAA0B,CAAAO,IAAA,QAA1BP,CAA0B,CAAAQ,EAAA,MAA1BR,CAA0B,CAAAS,OAAA,WAA1BT,CAA0B,CAAAU,OAAA,WAA1BV,CAA0B,MAAAJ,OAAA,CAAAI,0BAAA,CAAAA,0BAAA,IAa1B,CAAAW,aAAa,UAAbA,CAAa,QAAb,CAAAA,CAAa,CAAAC,SAAA,aAAbD,CAAa,CAAAE,WAAA,eAAbF,CAAa,CAAAG,SAAA,aAAbH,CAAa,MAAAf,OAAA,CAAAe,aAAA,CAAAA,aAAA,IAMb,CAAAI,eAAe,UAAfA,CAAe,QAAf,CAAAA,CAAe,CAAAC,KAAA,SAAfD,CAAe,CAAAE,OAAA,WAAfF,CAAe,CAAAG,IAAA,QAAfH,CAAe,MAAAnB,OAAA,CAAAmB,eAAA,CAAAA,eAAA,IAMf,CAAAI,WAAW,UAAXA,CAAW,QAAX,CAAAA,CAAW,CAAAC,QAAA,YAAXD,CAAW,CAAAE,WAAA,gBAAXF,CAAW,MAAAvB,OAAA,CAAAuB,WAAA,CAAAA,WAAA"}
package/dist/constants.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.WAREHOUSE_AUDIENCE_KEY=exports.VISITOR_CODE_LENGTH=exports.SdkLanguageType=exports.OFF_VARIATION_KEY=exports.KAMELEOON_COOKIE_KEY=exports.DEFAULT_VISITOR_DATA_FILTERS=exports.CookieParameter=exports.CACHE_ITEM_LIFETIME=exports.CACHE_CLEANUP_TIMEOUT=void 0;var OFF_VARIATION_KEY="off";exports.OFF_VARIATION_KEY="off";var KAMELEOON_COOKIE_KEY="kameleoonVisitorCode";exports.KAMELEOON_COOKIE_KEY="kameleoonVisitorCode";var WAREHOUSE_AUDIENCE_KEY="warehouseAudiences";exports.WAREHOUSE_AUDIENCE_KEY="warehouseAudiences";var VISITOR_CODE_LENGTH=16;exports.VISITOR_CODE_LENGTH=16;var CACHE_CLEANUP_TIMEOUT=10;exports.CACHE_CLEANUP_TIMEOUT=10;var CACHE_ITEM_LIFETIME=5;exports.CACHE_ITEM_LIFETIME=5;var CookieParameter=function(a){return a.PairsDelimiter="; ",a.KeyValueDelimiter="=",a.MaxAge="Max-Age",a.Path="Path",a.Domain="Domain",a}({});exports.CookieParameter=CookieParameter;var SdkLanguageType=function(a){return a.ANDROID="ANDROID",a.IOS="IOS",a.JAVA="JAVA",a.CSHARP="CSHARP",a.NODEJS="NODEJS",a.PHP="PHP",a.RUBY="RUBY",a.GO="GO",a.FLUTTER="FLUTTER",a.REACT="REACT",a.PYTHON="PYTHON",a.JAVASCRIPT="JAVASCRIPT",a.RUST="RUST",a}({});exports.SdkLanguageType=SdkLanguageType;var DEFAULT_VISITOR_DATA_FILTERS={visitAmount:1,customData:!0,pageViews:!1,geolocation:!1,device:!1,browser:!1,operatingSystem:!1,conversions:!1,experiments:!1};exports.DEFAULT_VISITOR_DATA_FILTERS=DEFAULT_VISITOR_DATA_FILTERS;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.WAREHOUSE_AUDIENCE_KEY=exports.VISITOR_CODE_LENGTH=exports.SdkLanguageType=exports.OFF_VARIATION_KEY=exports.KAMELEOON_COOKIE_KEY=exports.DEFAULT_VISITOR_DATA_FILTERS=exports.CookieParameter=exports.CACHE_ITEM_LIFETIME=exports.CACHE_CLEANUP_TIMEOUT=void 0;var OFF_VARIATION_KEY="off";exports.OFF_VARIATION_KEY="off";var KAMELEOON_COOKIE_KEY="kameleoonVisitorCode";exports.KAMELEOON_COOKIE_KEY="kameleoonVisitorCode";var WAREHOUSE_AUDIENCE_KEY="warehouseAudiences";exports.WAREHOUSE_AUDIENCE_KEY="warehouseAudiences";var VISITOR_CODE_LENGTH=16;exports.VISITOR_CODE_LENGTH=16;var CACHE_CLEANUP_TIMEOUT=10;exports.CACHE_CLEANUP_TIMEOUT=10;var CACHE_ITEM_LIFETIME=5;exports.CACHE_ITEM_LIFETIME=5;var CookieParameter=function(a){return a.PairsDelimiter="; ",a.KeyValueDelimiter="=",a.MaxAge="Max-Age",a.Path="Path",a.Domain="Domain",a}({});exports.CookieParameter=CookieParameter;var SdkLanguageType=function(a){return a.ANDROID="ANDROID",a.IOS="IOS",a.JAVA="JAVA",a.CSHARP="CSHARP",a.NODEJS="NODEJS",a.PHP="PHP",a.RUBY="RUBY",a.GO="GO",a.FLUTTER="FLUTTER",a.REACT="REACT",a.PYTHON="PYTHON",a.JAVASCRIPT="JAVASCRIPT",a.RUST="RUST",a}({});exports.SdkLanguageType=SdkLanguageType;var DEFAULT_VISITOR_DATA_FILTERS={previousVisitAmount:1,currentVisit:!0,customData:!0,pageViews:!1,geolocation:!1,device:!1,browser:!1,operatingSystem:!1,conversions:!1,experiments:!1};exports.DEFAULT_VISITOR_DATA_FILTERS=DEFAULT_VISITOR_DATA_FILTERS;
2
2
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":["OFF_VARIATION_KEY","exports","KAMELEOON_COOKIE_KEY","WAREHOUSE_AUDIENCE_KEY","VISITOR_CODE_LENGTH","CACHE_CLEANUP_TIMEOUT","CACHE_ITEM_LIFETIME","CookieParameter","PairsDelimiter","KeyValueDelimiter","MaxAge","Path","Domain","SdkLanguageType","ANDROID","IOS","JAVA","CSHARP","NODEJS","PHP","RUBY","GO","FLUTTER","REACT","PYTHON","JAVASCRIPT","RUST","DEFAULT_VISITOR_DATA_FILTERS","visitAmount","customData","pageViews","geolocation","device","browser","operatingSystem","conversions","experiments"],"sources":["../src/constants.ts"],"sourcesContent":["import { VisitorDataFiltersType } from './utilities/types';\n\nexport const OFF_VARIATION_KEY = 'off';\nexport const KAMELEOON_COOKIE_KEY = 'kameleoonVisitorCode';\nexport const WAREHOUSE_AUDIENCE_KEY = 'warehouseAudiences';\nexport const VISITOR_CODE_LENGTH = 16;\nexport const CACHE_CLEANUP_TIMEOUT = 10;\nexport const CACHE_ITEM_LIFETIME = 5;\n\nexport enum CookieParameter {\n PairsDelimiter = '; ',\n KeyValueDelimiter = '=',\n MaxAge = 'Max-Age',\n Path = 'Path',\n Domain = 'Domain',\n}\n\n/**\n * @readonly\n * @enum {string} an Enum of all the possible Kameleoon SDK types\n * */\nexport enum SdkLanguageType {\n ANDROID = 'ANDROID',\n IOS = 'IOS',\n JAVA = 'JAVA',\n CSHARP = 'CSHARP',\n NODEJS = 'NODEJS',\n PHP = 'PHP',\n RUBY = 'RUBY',\n GO = 'GO',\n FLUTTER = 'FLUTTER',\n REACT = 'REACT',\n PYTHON = 'PYTHON',\n JAVASCRIPT = 'JAVASCRIPT',\n RUST = 'RUST',\n}\n\nexport const DEFAULT_VISITOR_DATA_FILTERS: VisitorDataFiltersType = {\n visitAmount: 1,\n customData: true,\n pageViews: false,\n geolocation: false,\n device: false,\n browser: false,\n operatingSystem: false,\n conversions: false,\n experiments: false,\n};\n"],"mappings":"4UAEO,GAAM,CAAAA,iBAAiB,CAAG,KAAK,CAACC,OAAA,CAAAD,iBAAA,OAChC,GAAM,CAAAE,oBAAoB,CAAG,sBAAsB,CAACD,OAAA,CAAAC,oBAAA,wBACpD,GAAM,CAAAC,sBAAsB,CAAG,oBAAoB,CAACF,OAAA,CAAAE,sBAAA,sBACpD,GAAM,CAAAC,mBAAmB,CAAG,EAAE,CAACH,OAAA,CAAAG,mBAAA,IAC/B,GAAM,CAAAC,qBAAqB,CAAG,EAAE,CAACJ,OAAA,CAAAI,qBAAA,IACjC,GAAM,CAAAC,mBAAmB,CAAG,CAAC,CAACL,OAAA,CAAAK,mBAAA,MAEzB,CAAAC,eAAe,UAAfA,CAAe,QAAf,CAAAA,CAAe,CAAAC,cAAA,MAAfD,CAAe,CAAAE,iBAAA,KAAfF,CAAe,CAAAG,MAAA,WAAfH,CAAe,CAAAI,IAAA,QAAfJ,CAAe,CAAAK,MAAA,UAAfL,CAAe,MAAAN,OAAA,CAAAM,eAAA,CAAAA,eAAA,IAYf,CAAAM,eAAe,UAAfA,CAAe,QAAf,CAAAA,CAAe,CAAAC,OAAA,WAAfD,CAAe,CAAAE,GAAA,OAAfF,CAAe,CAAAG,IAAA,QAAfH,CAAe,CAAAI,MAAA,UAAfJ,CAAe,CAAAK,MAAA,UAAfL,CAAe,CAAAM,GAAA,OAAfN,CAAe,CAAAO,IAAA,QAAfP,CAAe,CAAAQ,EAAA,MAAfR,CAAe,CAAAS,OAAA,WAAfT,CAAe,CAAAU,KAAA,SAAfV,CAAe,CAAAW,MAAA,UAAfX,CAAe,CAAAY,UAAA,cAAfZ,CAAe,CAAAa,IAAA,QAAfb,CAAe,MAAAZ,OAAA,CAAAY,eAAA,CAAAA,eAAA,CAgBpB,GAAM,CAAAc,4BAAoD,CAAG,CAClEC,WAAW,CAAE,CAAC,CACdC,UAAU,GAAM,CAChBC,SAAS,GAAO,CAChBC,WAAW,GAAO,CAClBC,MAAM,GAAO,CACbC,OAAO,GAAO,CACdC,eAAe,GAAO,CACtBC,WAAW,GAAO,CAClBC,WAAW,GACb,CAAC,CAACnC,OAAA,CAAA0B,4BAAA,CAAAA,4BAAA"}
1
+ {"version":3,"file":"constants.js","names":["OFF_VARIATION_KEY","exports","KAMELEOON_COOKIE_KEY","WAREHOUSE_AUDIENCE_KEY","VISITOR_CODE_LENGTH","CACHE_CLEANUP_TIMEOUT","CACHE_ITEM_LIFETIME","CookieParameter","PairsDelimiter","KeyValueDelimiter","MaxAge","Path","Domain","SdkLanguageType","ANDROID","IOS","JAVA","CSHARP","NODEJS","PHP","RUBY","GO","FLUTTER","REACT","PYTHON","JAVASCRIPT","RUST","DEFAULT_VISITOR_DATA_FILTERS","previousVisitAmount","currentVisit","customData","pageViews","geolocation","device","browser","operatingSystem","conversions","experiments"],"sources":["../src/constants.ts"],"sourcesContent":["import { VisitorDataFiltersType } from './utilities/types';\n\nexport const OFF_VARIATION_KEY = 'off';\nexport const KAMELEOON_COOKIE_KEY = 'kameleoonVisitorCode';\nexport const WAREHOUSE_AUDIENCE_KEY = 'warehouseAudiences';\nexport const VISITOR_CODE_LENGTH = 16;\nexport const CACHE_CLEANUP_TIMEOUT = 10;\nexport const CACHE_ITEM_LIFETIME = 5;\n\nexport enum CookieParameter {\n PairsDelimiter = '; ',\n KeyValueDelimiter = '=',\n MaxAge = 'Max-Age',\n Path = 'Path',\n Domain = 'Domain',\n}\n\n/**\n * @readonly\n * @enum {string} an Enum of all the possible Kameleoon SDK types\n * */\nexport enum SdkLanguageType {\n ANDROID = 'ANDROID',\n IOS = 'IOS',\n JAVA = 'JAVA',\n CSHARP = 'CSHARP',\n NODEJS = 'NODEJS',\n PHP = 'PHP',\n RUBY = 'RUBY',\n GO = 'GO',\n FLUTTER = 'FLUTTER',\n REACT = 'REACT',\n PYTHON = 'PYTHON',\n JAVASCRIPT = 'JAVASCRIPT',\n RUST = 'RUST',\n}\n\nexport const DEFAULT_VISITOR_DATA_FILTERS: VisitorDataFiltersType = {\n previousVisitAmount: 1,\n currentVisit: true,\n customData: true,\n pageViews: false,\n geolocation: false,\n device: false,\n browser: false,\n operatingSystem: false,\n conversions: false,\n experiments: false,\n};\n"],"mappings":"4UAEO,GAAM,CAAAA,iBAAiB,CAAG,KAAK,CAACC,OAAA,CAAAD,iBAAA,OAChC,GAAM,CAAAE,oBAAoB,CAAG,sBAAsB,CAACD,OAAA,CAAAC,oBAAA,wBACpD,GAAM,CAAAC,sBAAsB,CAAG,oBAAoB,CAACF,OAAA,CAAAE,sBAAA,sBACpD,GAAM,CAAAC,mBAAmB,CAAG,EAAE,CAACH,OAAA,CAAAG,mBAAA,IAC/B,GAAM,CAAAC,qBAAqB,CAAG,EAAE,CAACJ,OAAA,CAAAI,qBAAA,IACjC,GAAM,CAAAC,mBAAmB,CAAG,CAAC,CAACL,OAAA,CAAAK,mBAAA,MAEzB,CAAAC,eAAe,UAAfA,CAAe,QAAf,CAAAA,CAAe,CAAAC,cAAA,MAAfD,CAAe,CAAAE,iBAAA,KAAfF,CAAe,CAAAG,MAAA,WAAfH,CAAe,CAAAI,IAAA,QAAfJ,CAAe,CAAAK,MAAA,UAAfL,CAAe,MAAAN,OAAA,CAAAM,eAAA,CAAAA,eAAA,IAYf,CAAAM,eAAe,UAAfA,CAAe,QAAf,CAAAA,CAAe,CAAAC,OAAA,WAAfD,CAAe,CAAAE,GAAA,OAAfF,CAAe,CAAAG,IAAA,QAAfH,CAAe,CAAAI,MAAA,UAAfJ,CAAe,CAAAK,MAAA,UAAfL,CAAe,CAAAM,GAAA,OAAfN,CAAe,CAAAO,IAAA,QAAfP,CAAe,CAAAQ,EAAA,MAAfR,CAAe,CAAAS,OAAA,WAAfT,CAAe,CAAAU,KAAA,SAAfV,CAAe,CAAAW,MAAA,UAAfX,CAAe,CAAAY,UAAA,cAAfZ,CAAe,CAAAa,IAAA,QAAfb,CAAe,MAAAZ,OAAA,CAAAY,eAAA,CAAAA,eAAA,CAgBpB,GAAM,CAAAc,4BAAoD,CAAG,CAClEC,mBAAmB,CAAE,CAAC,CACtBC,YAAY,GAAM,CAClBC,UAAU,GAAM,CAChBC,SAAS,GAAO,CAChBC,WAAW,GAAO,CAClBC,MAAM,GAAO,CACbC,OAAO,GAAO,CACdC,eAAe,GAAO,CACtBC,WAAW,GAAO,CAClBC,WAAW,GACb,CAAC,CAACpC,OAAA,CAAA0B,4BAAA,CAAAA,4BAAA"}
@@ -0,0 +1,16 @@
1
+ import { Result } from 'ts-res';
2
+ import { GetResultCookieParametersType, ClientGetVisitorCodeParametersType, ServerGetVisitorCodeParametersType, ServerSetCookieParametersType, ClientSetCookieParametersType } from '../types';
3
+ /**
4
+ * @abstract
5
+ * CookieManager - an abstract class for extending cookie manager with pre-defined method signatures
6
+ * */
7
+ export declare abstract class CookieManager {
8
+ private isConsentRequired;
9
+ abstract getCookie(params: ServerGetVisitorCodeParametersType | ClientGetVisitorCodeParametersType): string;
10
+ abstract setCookie(params: ServerSetCookieParametersType | ClientSetCookieParametersType): void;
11
+ getVisitorCode(params: ServerGetVisitorCodeParametersType | ClientGetVisitorCodeParametersType): string;
12
+ setConsentRequired(consentRequired: boolean): void;
13
+ getConsentRequired(): boolean;
14
+ protected getCookieVisitorCode(cookie: string): Result<string, void>;
15
+ protected getResultCookie({ domain, visitorCode, }: GetResultCookieParametersType): string;
16
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CookieManager=void 0;var _tsRes=require("ts-res"),_constants=require("../constants"),_utilities=require("../utilities");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 _slicedToArray(a,b){return _arrayWithHoles(a)||_iterableToArrayLimit(a,b)||_unsupportedIterableToArray(a,b)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(a,b){if(a){if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(a):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?_arrayLikeToArray(a,b):void 0}}function _arrayLikeToArray(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c<b;c++)d[c]=a[c];return d}function _iterableToArrayLimit(a,b){var c=null==a?null:"undefined"!=typeof Symbol&&a[Symbol.iterator]||a["@@iterator"];if(null!=c){var d,e,f,g,h=[],i=!0,j=!1;try{if(f=(c=c.call(a)).next,0===b){if(Object(c)!==c)return;i=!1}else for(;!(i=(d=f.call(c)).done)&&(h.push(d.value),h.length!==b);i=!0);}catch(a){j=!0,e=a}finally{try{if(!i&&null!=c.return&&(g=c.return(),Object(g)!==g))return}finally{if(j)throw e}}return h}}function _arrayWithHoles(a){if(Array.isArray(a))return a}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 CookieManager=function(){function a(){_classCallCheck(this,a),_defineProperty(this,"isConsentRequired",!1)}return _createClass(a,[{key:"getVisitorCode",value:function getVisitorCode(a){var b=this.getCookie(a);if(b)return b;var c=a.defaultVisitorCode,d=c;return d?_utilities.Utilities.validateVisitorCode(d).throw():d=_utilities.Utilities.generateRandomString(_constants.VISITOR_CODE_LENGTH),this.isConsentRequired||(_utilities.Utilities.isServerEnvironment(a)?this.setCookie({visitorCode:d,response:a.response}):this.setCookie({visitorCode:d})),d}},{key:"setConsentRequired",value:function setConsentRequired(a){this.isConsentRequired=a}},{key:"getConsentRequired",value:function getConsentRequired(){return this.isConsentRequired}},{key:"getCookieVisitorCode",value:function getCookieVisitorCode(a){var b=a.split(_constants.CookieParameter.PairsDelimiter).find(function findCookieValue(a){var b=a.split(_constants.CookieParameter.KeyValueDelimiter),c=_slicedToArray(b,2),d=c[0],e=c[1];return d===_constants.KAMELEOON_COOKIE_KEY&&""!==e});if(b){var c=b.split(_constants.CookieParameter.KeyValueDelimiter),d=_slicedToArray(c,2),e=d[0],f=d[1];return(0,_tsRes.Ok)(f)}return(0,_tsRes.Err)()}},{key:"getResultCookie",value:function getResultCookie(a){var b=a.domain,c=a.visitorCode,d=c?31536000:0,e=[_constants.KAMELEOON_COOKIE_KEY+_constants.CookieParameter.KeyValueDelimiter+c,_constants.CookieParameter.MaxAge+_constants.CookieParameter.KeyValueDelimiter+d,_constants.CookieParameter.Path+_constants.CookieParameter.KeyValueDelimiter+"/"];return b&&e.push(_constants.CookieParameter.Domain+_constants.CookieParameter.KeyValueDelimiter+b),e.join(_constants.CookieParameter.PairsDelimiter)}}]),a}();exports.CookieManager=CookieManager;
2
+ //# sourceMappingURL=cookieManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookieManager.js","names":["CookieManager","a","_classCallCheck","_defineProperty","_createClass","key","value","getVisitorCode","params","visitorCodeCookie","getCookie","defaultVisitorCode","visitorCode","Utilities","validateVisitorCode","throw","generateRandomString","VISITOR_CODE_LENGTH","isConsentRequired","isServerEnvironment","setCookie","response","setConsentRequired","consentRequired","getConsentRequired","getCookieVisitorCode","cookie","cookiePair","split","Cookie","PairsDelimiter","find","findCookieValue","pair","b","KeyValueDelimiter","c","_slicedToArray","KAMELEOON_COOKIE_KEY","d","_","Ok","Err","getResultCookie","domain","maxAge","cookieArray","MaxAge","Path","push","Domain","join","exports"],"sources":["../../src/cookieManager/cookieManager.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport {\n CookieParameter as Cookie,\n KAMELEOON_COOKIE_KEY,\n VISITOR_CODE_LENGTH,\n} from 'src/constants';\nimport { Utilities } from 'src/utilities';\nimport {\n GetResultCookieParametersType,\n ClientGetVisitorCodeParametersType,\n ServerGetVisitorCodeParametersType,\n ServerSetCookieParametersType,\n ClientSetCookieParametersType,\n} from 'src/types';\n\n/**\n * @abstract\n * CookieManager - an abstract class for extending cookie manager with pre-defined method signatures\n * */\nexport abstract class CookieManager {\n private isConsentRequired: boolean = false;\n\n abstract getCookie(\n params:\n | ServerGetVisitorCodeParametersType\n | ClientGetVisitorCodeParametersType,\n ): string;\n\n abstract setCookie(\n params: ServerSetCookieParametersType | ClientSetCookieParametersType,\n ): void;\n\n public getVisitorCode(\n params:\n | ServerGetVisitorCodeParametersType\n | ClientGetVisitorCodeParametersType,\n ): string {\n const visitorCodeCookie = this.getCookie(params);\n\n if (visitorCodeCookie) {\n return visitorCodeCookie;\n }\n\n const { defaultVisitorCode } = params;\n\n let visitorCode = defaultVisitorCode;\n\n if (visitorCode) {\n Utilities.validateVisitorCode(visitorCode).throw();\n } else {\n visitorCode = Utilities.generateRandomString(VISITOR_CODE_LENGTH);\n }\n\n if (!this.isConsentRequired) {\n if (Utilities.isServerEnvironment(params)) {\n this.setCookie({\n visitorCode,\n response: params.response,\n });\n } else {\n this.setCookie({ visitorCode });\n }\n }\n\n return visitorCode;\n }\n\n public setConsentRequired(consentRequired: boolean): void {\n this.isConsentRequired = consentRequired;\n }\n\n public getConsentRequired(): boolean {\n return this.isConsentRequired;\n }\n\n protected getCookieVisitorCode(cookie: string): Result<string, void> {\n const findCookieValue = (pair: string): boolean => {\n const [key, value] = pair.split(Cookie.KeyValueDelimiter);\n\n return key === KAMELEOON_COOKIE_KEY && value !== '';\n };\n\n const cookiePair = cookie\n .split(Cookie.PairsDelimiter)\n .find(findCookieValue);\n\n if (cookiePair) {\n const [_, value] = cookiePair.split(Cookie.KeyValueDelimiter);\n\n return Ok(value);\n }\n\n return Err();\n }\n\n protected getResultCookie({\n domain,\n visitorCode,\n }: GetResultCookieParametersType): string {\n const yearSeconds = 60 * 60 * 24 * 365;\n const maxAge = visitorCode ? yearSeconds : 0;\n\n const cookieArray = [\n KAMELEOON_COOKIE_KEY + Cookie.KeyValueDelimiter + visitorCode,\n Cookie.MaxAge + Cookie.KeyValueDelimiter + maxAge,\n Cookie.Path + Cookie.KeyValueDelimiter + '/',\n ];\n\n if (domain) {\n cookieArray.push(Cookie.Domain + Cookie.KeyValueDelimiter + domain);\n }\n\n return cookieArray.join(Cookie.PairsDelimiter);\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export { CookieManager } from './cookieManager';
@@ -0,0 +1,2 @@
1
+ "use strict";var _cookieManager=require("./cookieManager");Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"CookieManager",{enumerable:!0,get:function get(){return _cookieManager.CookieManager}});
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_cookieManager","require","Object","defineProperty","exports","value","enumerable","get","CookieManager"],"sources":["../../src/cookieManager/index.ts"],"sourcesContent":["export { CookieManager } from './cookieManager';\n"],"mappings":"aAAA,IAAAA,cAAA,CAAAC,OAAA,oBAAgDC,MAAA,CAAAC,cAAA,CAAAC,OAAA,eAAAC,KAAA,MAAAH,MAAA,CAAAC,cAAA,CAAAC,OAAA,kBAAAE,UAAA,IAAAC,GAAA,UAAAA,IAAA,SAAAP,cAAA,CAAAQ,aAAA"}
@@ -1,5 +1,5 @@
1
1
  import { GetHashDoubleParamsType } from './types';
2
2
  export declare class Hasher {
3
- static getHashDouble({ visitorCode, id, respoolTime, }: GetHashDoubleParamsType): number;
3
+ static getHashDouble({ visitorIdentifier, id, respoolTime, }: GetHashDoubleParamsType): number;
4
4
  static calculateHash(seed: string): number;
5
5
  }
@@ -1,2 +1,2 @@
1
- "use strict";var _sha=_interopRequireDefault(require("crypto-js/sha256"));Object.defineProperty(exports,"__esModule",{value:!0}),exports.Hasher=void 0;function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}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 _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 _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 Hasher=function(){function a(){_classCallCheck(this,a)}return _createClass(a,null,[{key:"getHashDouble",value:function getHashDouble(a){var b=a.visitorCode,c=a.id,d=a.respoolTime,e="";return d&&(e+=d+""),this.calculateHash(b+c+e)}},{key:"calculateHash",value:function calculateHash(a){var b=(0,_sha.default)(a).toString();return parseInt(b,16)/Math.pow(2,256)}}]),a}();exports.Hasher=Hasher;
1
+ "use strict";var _sha=_interopRequireDefault(require("crypto-js/sha256"));Object.defineProperty(exports,"__esModule",{value:!0}),exports.Hasher=void 0;function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}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 _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 _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 Hasher=function(){function a(){_classCallCheck(this,a)}return _createClass(a,null,[{key:"getHashDouble",value:function getHashDouble(a){var b=a.visitorIdentifier,c=a.id,d=a.respoolTime,e="";return d&&(e+=d+""),this.calculateHash(b+c+e)}},{key:"calculateHash",value:function calculateHash(a){var b=(0,_sha.default)(a).toString();return parseInt(b,16)/Math.pow(2,256)}}]),a}();exports.Hasher=Hasher;
2
2
  //# sourceMappingURL=hasher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hasher.js","names":["_sha","_interopRequireDefault","require","Object","defineProperty","exports","value","Hasher","a","__esModule","default","_typeof","Symbol","iterator","constructor","prototype","_classCallCheck","b","TypeError","_defineProperties","c","d","length","enumerable","configurable","writable","_toPropertyKey","key","_createClass","_toPrimitive","toPrimitive","call","String","Number","getHashDouble","visitorCode","id","respoolTime","suffix","calculateHash","seed","hashDigest","sha256","toString","parseInt","Math","pow"],"sources":["../../src/hasher/hasher.ts"],"sourcesContent":["import sha256 from 'crypto-js/sha256';\nimport { GetHashDoubleParamsType } from './types';\n\nexport class Hasher {\n static getHashDouble({\n visitorCode,\n id,\n respoolTime,\n }: GetHashDoubleParamsType): number {\n let suffix = '';\n\n if (respoolTime) {\n suffix += String(respoolTime);\n }\n\n return this.calculateHash(visitorCode + id + suffix);\n }\n\n // --- Note ---\n // `hashDouble` is a seeded pseudo-random number between 0 and 1\n // used for deciding what variation to assign\n // `calculateHash` algorithm is consistent between every SDK\n // and will always provide same pseudo-random value for the same input parameters\n static calculateHash(seed: string): number {\n const hashDigest = sha256(seed).toString();\n\n return parseInt(hashDigest, 16) / Math.pow(2, 256);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"hasher.js","names":["_sha","_interopRequireDefault","require","Object","defineProperty","exports","value","Hasher","a","__esModule","default","_typeof","Symbol","iterator","constructor","prototype","_classCallCheck","b","TypeError","_defineProperties","c","d","length","enumerable","configurable","writable","_toPropertyKey","key","_createClass","_toPrimitive","toPrimitive","call","String","Number","getHashDouble","visitorIdentifier","id","respoolTime","suffix","calculateHash","seed","hashDigest","sha256","toString","parseInt","Math","pow"],"sources":["../../src/hasher/hasher.ts"],"sourcesContent":["import sha256 from 'crypto-js/sha256';\nimport { GetHashDoubleParamsType } from './types';\n\nexport class Hasher {\n static getHashDouble({\n visitorIdentifier,\n id,\n respoolTime,\n }: GetHashDoubleParamsType): number {\n let suffix = '';\n\n if (respoolTime) {\n suffix += String(respoolTime);\n }\n\n return this.calculateHash(visitorIdentifier + id + suffix);\n }\n\n // --- Note ---\n // `hashDouble` is a seeded pseudo-random number between 0 and 1\n // used for deciding what variation to assign\n // `calculateHash` algorithm is consistent between every SDK\n // and will always provide same pseudo-random value for the same input parameters\n static calculateHash(seed: string): number {\n const hashDigest = sha256(seed).toString();\n\n return parseInt(hashDigest, 16) / Math.pow(2, 256);\n }\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  export type GetHashDoubleParamsType = {
2
2
  respoolTime: number | null;
3
- visitorCode: string;
3
+ visitorIdentifier: string;
4
4
  id: string;
5
5
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../src/hasher/types.ts"],"sourcesContent":["export type GetHashDoubleParamsType = {\n respoolTime: number | null;\n visitorCode: string;\n id: string;\n};\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../src/hasher/types.ts"],"sourcesContent":["export type GetHashDoubleParamsType = {\n respoolTime: number | null;\n visitorIdentifier: string;\n id: string;\n};\n"],"mappings":""}
package/dist/index.d.ts CHANGED
@@ -4,10 +4,11 @@ export { KameleoonUtils as KameleoonCoreUtils } from './kameleoonUtils';
4
4
  export { KameleoonException, KameleoonError } from './kameleoonError';
5
5
  export { VisitorDataFiltersType } from './utilities';
6
6
  export { FeatureFlagVariationsType, KameleoonStorageKey, StorageDataType, IExternalStorage, IExternalStorageConstructor, } from './storage';
7
+ export { CookieManager } from './cookieManager';
7
8
  export { CookieParameter, VISITOR_CODE_LENGTH, SdkLanguageType, } from './constants';
8
- export { JSONType } from './clientConfiguration';
9
- export { Environment, VariableType, FeatureFlagType, SDKCoreParameters, SDKConfigurationType, ExternalPackageInfoType, TrackConversionParamsType, FeatureVariableResultType, RemoteVisitorDataParamsType, InternalSDKConfigurationType, GetFeatureFlagVariableParamsType, GetVisitorWarehouseAudienceParamsType, ServerGetVisitorCodeParametersType, ClientGetVisitorCodeParametersType, MobileGetVisitorCodeParametersType, Milliseconds, } from './types';
9
+ export { JSONType, ConfigurationDataType } from './clientConfiguration';
10
+ export { Environment, VariableType, FeatureFlagType, SDKCoreParameters, SDKConfigurationType, ExternalPackageInfoType, TrackConversionParamsType, FeatureVariableResultType, RemoteVisitorDataParamsType, InternalSDKConfigurationType, GetFeatureFlagVariableParamsType, GetVisitorWarehouseAudienceParamsType, ServerGetVisitorCodeParametersType, ClientGetVisitorCodeParametersType, ServerSetLegalConsentParametersType, ClientSetLegalConsentParametersType, ServerSetCookieParametersType, ClientSetCookieParametersType, Milliseconds, } from './types';
10
11
  export { DEFAULT_CLEANUP_INTERVAL } from './kameleoonData';
11
12
  export { ApplicationVersion, CustomData, Conversion, Device, Cookie, Browser, UserAgent, DeviceType, CookieType, GeolocationData, GeolocationInfoType, OperatingSystemType, OperatingSystem, BrowserType, PageView, KameleoonData, KameleoonDataType, PageViewParametersType, ConversionParametersType, ApplicationVersionDataType, } from './kameleoonData';
12
13
  export { RealTimeEventType, IExternalEventSource, EventSourceOpenParametersType, IExternalEventSourceConstructor, } from './eventSource';
13
- export { Header, HttpMethod, TrackParametersType, IExternalRequestDispatcher, GetClientConfigurationResultType, } from './requester';
14
+ export { Header, HttpMethod, TrackParametersType, IExternalRequestDispatcher, } from './requester';
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ApplicationVersion",{enumerable:!0,get:function get(){return _kameleoonData.ApplicationVersion}}),Object.defineProperty(exports,"ApplicationVersionDataType",{enumerable:!0,get:function get(){return _kameleoonData.ApplicationVersionDataType}}),Object.defineProperty(exports,"Browser",{enumerable:!0,get:function get(){return _kameleoonData.Browser}}),Object.defineProperty(exports,"BrowserType",{enumerable:!0,get:function get(){return _kameleoonData.BrowserType}}),Object.defineProperty(exports,"ClientGetVisitorCodeParametersType",{enumerable:!0,get:function get(){return _types.ClientGetVisitorCodeParametersType}}),Object.defineProperty(exports,"Conversion",{enumerable:!0,get:function get(){return _kameleoonData.Conversion}}),Object.defineProperty(exports,"ConversionParametersType",{enumerable:!0,get:function get(){return _kameleoonData.ConversionParametersType}}),Object.defineProperty(exports,"Cookie",{enumerable:!0,get:function get(){return _kameleoonData.Cookie}}),Object.defineProperty(exports,"CookieParameter",{enumerable:!0,get:function get(){return _constants.CookieParameter}}),Object.defineProperty(exports,"CookieType",{enumerable:!0,get:function get(){return _kameleoonData.CookieType}}),Object.defineProperty(exports,"CustomData",{enumerable:!0,get:function get(){return _kameleoonData.CustomData}}),Object.defineProperty(exports,"DEFAULT_CLEANUP_INTERVAL",{enumerable:!0,get:function get(){return _kameleoonData.DEFAULT_CLEANUP_INTERVAL}}),Object.defineProperty(exports,"Device",{enumerable:!0,get:function get(){return _kameleoonData.Device}}),Object.defineProperty(exports,"DeviceType",{enumerable:!0,get:function get(){return _kameleoonData.DeviceType}}),Object.defineProperty(exports,"Environment",{enumerable:!0,get:function get(){return _types.Environment}}),Object.defineProperty(exports,"Err",{enumerable:!0,get:function get(){return _tsRes.Err}}),Object.defineProperty(exports,"EventSourceOpenParametersType",{enumerable:!0,get:function get(){return _eventSource.EventSourceOpenParametersType}}),Object.defineProperty(exports,"ExternalPackageInfoType",{enumerable:!0,get:function get(){return _types.ExternalPackageInfoType}}),Object.defineProperty(exports,"FeatureFlagType",{enumerable:!0,get:function get(){return _types.FeatureFlagType}}),Object.defineProperty(exports,"FeatureFlagVariationsType",{enumerable:!0,get:function get(){return _storage.FeatureFlagVariationsType}}),Object.defineProperty(exports,"FeatureVariableResultType",{enumerable:!0,get:function get(){return _types.FeatureVariableResultType}}),Object.defineProperty(exports,"GeolocationData",{enumerable:!0,get:function get(){return _kameleoonData.GeolocationData}}),Object.defineProperty(exports,"GeolocationInfoType",{enumerable:!0,get:function get(){return _kameleoonData.GeolocationInfoType}}),Object.defineProperty(exports,"GetClientConfigurationResultType",{enumerable:!0,get:function get(){return _requester.GetClientConfigurationResultType}}),Object.defineProperty(exports,"GetFeatureFlagVariableParamsType",{enumerable:!0,get:function get(){return _types.GetFeatureFlagVariableParamsType}}),Object.defineProperty(exports,"GetVisitorWarehouseAudienceParamsType",{enumerable:!0,get:function get(){return _types.GetVisitorWarehouseAudienceParamsType}}),Object.defineProperty(exports,"Header",{enumerable:!0,get:function get(){return _requester.Header}}),Object.defineProperty(exports,"HttpMethod",{enumerable:!0,get:function get(){return _requester.HttpMethod}}),Object.defineProperty(exports,"IExternalEventSource",{enumerable:!0,get:function get(){return _eventSource.IExternalEventSource}}),Object.defineProperty(exports,"IExternalEventSourceConstructor",{enumerable:!0,get:function get(){return _eventSource.IExternalEventSourceConstructor}}),Object.defineProperty(exports,"IExternalRequestDispatcher",{enumerable:!0,get:function get(){return _requester.IExternalRequestDispatcher}}),Object.defineProperty(exports,"IExternalStorage",{enumerable:!0,get:function get(){return _storage.IExternalStorage}}),Object.defineProperty(exports,"IExternalStorageConstructor",{enumerable:!0,get:function get(){return _storage.IExternalStorageConstructor}}),Object.defineProperty(exports,"IKameleoonCore",{enumerable:!0,get:function get(){return _kameleoonClient.IKameleoonClient}}),Object.defineProperty(exports,"InternalSDKConfigurationType",{enumerable:!0,get:function get(){return _types.InternalSDKConfigurationType}}),Object.defineProperty(exports,"JSONType",{enumerable:!0,get:function get(){return _clientConfiguration.JSONType}}),Object.defineProperty(exports,"KameleoonCore",{enumerable:!0,get:function get(){return _kameleoonClient.KameleoonClient}}),Object.defineProperty(exports,"KameleoonCoreUtils",{enumerable:!0,get:function get(){return _kameleoonUtils.KameleoonUtils}}),Object.defineProperty(exports,"KameleoonData",{enumerable:!0,get:function get(){return _kameleoonData.KameleoonData}}),Object.defineProperty(exports,"KameleoonDataType",{enumerable:!0,get:function get(){return _kameleoonData.KameleoonDataType}}),Object.defineProperty(exports,"KameleoonError",{enumerable:!0,get:function get(){return _kameleoonError.KameleoonError}}),Object.defineProperty(exports,"KameleoonException",{enumerable:!0,get:function get(){return _kameleoonError.KameleoonException}}),Object.defineProperty(exports,"KameleoonStorageKey",{enumerable:!0,get:function get(){return _storage.KameleoonStorageKey}}),Object.defineProperty(exports,"Milliseconds",{enumerable:!0,get:function get(){return _types.Milliseconds}}),Object.defineProperty(exports,"MobileGetVisitorCodeParametersType",{enumerable:!0,get:function get(){return _types.MobileGetVisitorCodeParametersType}}),Object.defineProperty(exports,"Ok",{enumerable:!0,get:function get(){return _tsRes.Ok}}),Object.defineProperty(exports,"OperatingSystem",{enumerable:!0,get:function get(){return _kameleoonData.OperatingSystem}}),Object.defineProperty(exports,"OperatingSystemType",{enumerable:!0,get:function get(){return _kameleoonData.OperatingSystemType}}),Object.defineProperty(exports,"PageView",{enumerable:!0,get:function get(){return _kameleoonData.PageView}}),Object.defineProperty(exports,"PageViewParametersType",{enumerable:!0,get:function get(){return _kameleoonData.PageViewParametersType}}),Object.defineProperty(exports,"RealTimeEventType",{enumerable:!0,get:function get(){return _eventSource.RealTimeEventType}}),Object.defineProperty(exports,"RemoteVisitorDataParamsType",{enumerable:!0,get:function get(){return _types.RemoteVisitorDataParamsType}}),Object.defineProperty(exports,"Result",{enumerable:!0,get:function get(){return _tsRes.Result}}),Object.defineProperty(exports,"SDKConfigurationType",{enumerable:!0,get:function get(){return _types.SDKConfigurationType}}),Object.defineProperty(exports,"SDKCoreParameters",{enumerable:!0,get:function get(){return _types.SDKCoreParameters}}),Object.defineProperty(exports,"SdkLanguageType",{enumerable:!0,get:function get(){return _constants.SdkLanguageType}}),Object.defineProperty(exports,"ServerGetVisitorCodeParametersType",{enumerable:!0,get:function get(){return _types.ServerGetVisitorCodeParametersType}}),Object.defineProperty(exports,"StorageDataType",{enumerable:!0,get:function get(){return _storage.StorageDataType}}),Object.defineProperty(exports,"TrackConversionParamsType",{enumerable:!0,get:function get(){return _types.TrackConversionParamsType}}),Object.defineProperty(exports,"TrackParametersType",{enumerable:!0,get:function get(){return _requester.TrackParametersType}}),Object.defineProperty(exports,"UserAgent",{enumerable:!0,get:function get(){return _kameleoonData.UserAgent}}),Object.defineProperty(exports,"VISITOR_CODE_LENGTH",{enumerable:!0,get:function get(){return _constants.VISITOR_CODE_LENGTH}}),Object.defineProperty(exports,"VariableType",{enumerable:!0,get:function get(){return _types.VariableType}}),Object.defineProperty(exports,"VisitorDataFiltersType",{enumerable:!0,get:function get(){return _utilities.VisitorDataFiltersType}});var _tsRes=require("ts-res"),_kameleoonClient=require("./kameleoonClient"),_kameleoonUtils=require("./kameleoonUtils"),_kameleoonError=require("./kameleoonError"),_utilities=require("./utilities"),_storage=require("./storage"),_constants=require("./constants"),_clientConfiguration=require("./clientConfiguration"),_types=require("./types"),_kameleoonData=require("./kameleoonData"),_eventSource=require("./eventSource"),_requester=require("./requester");
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ApplicationVersion",{enumerable:!0,get:function get(){return _kameleoonData.ApplicationVersion}}),Object.defineProperty(exports,"ApplicationVersionDataType",{enumerable:!0,get:function get(){return _kameleoonData.ApplicationVersionDataType}}),Object.defineProperty(exports,"Browser",{enumerable:!0,get:function get(){return _kameleoonData.Browser}}),Object.defineProperty(exports,"BrowserType",{enumerable:!0,get:function get(){return _kameleoonData.BrowserType}}),Object.defineProperty(exports,"ClientGetVisitorCodeParametersType",{enumerable:!0,get:function get(){return _types.ClientGetVisitorCodeParametersType}}),Object.defineProperty(exports,"ClientSetCookieParametersType",{enumerable:!0,get:function get(){return _types.ClientSetCookieParametersType}}),Object.defineProperty(exports,"ClientSetLegalConsentParametersType",{enumerable:!0,get:function get(){return _types.ClientSetLegalConsentParametersType}}),Object.defineProperty(exports,"ConfigurationDataType",{enumerable:!0,get:function get(){return _clientConfiguration.ConfigurationDataType}}),Object.defineProperty(exports,"Conversion",{enumerable:!0,get:function get(){return _kameleoonData.Conversion}}),Object.defineProperty(exports,"ConversionParametersType",{enumerable:!0,get:function get(){return _kameleoonData.ConversionParametersType}}),Object.defineProperty(exports,"Cookie",{enumerable:!0,get:function get(){return _kameleoonData.Cookie}}),Object.defineProperty(exports,"CookieManager",{enumerable:!0,get:function get(){return _cookieManager.CookieManager}}),Object.defineProperty(exports,"CookieParameter",{enumerable:!0,get:function get(){return _constants.CookieParameter}}),Object.defineProperty(exports,"CookieType",{enumerable:!0,get:function get(){return _kameleoonData.CookieType}}),Object.defineProperty(exports,"CustomData",{enumerable:!0,get:function get(){return _kameleoonData.CustomData}}),Object.defineProperty(exports,"DEFAULT_CLEANUP_INTERVAL",{enumerable:!0,get:function get(){return _kameleoonData.DEFAULT_CLEANUP_INTERVAL}}),Object.defineProperty(exports,"Device",{enumerable:!0,get:function get(){return _kameleoonData.Device}}),Object.defineProperty(exports,"DeviceType",{enumerable:!0,get:function get(){return _kameleoonData.DeviceType}}),Object.defineProperty(exports,"Environment",{enumerable:!0,get:function get(){return _types.Environment}}),Object.defineProperty(exports,"Err",{enumerable:!0,get:function get(){return _tsRes.Err}}),Object.defineProperty(exports,"EventSourceOpenParametersType",{enumerable:!0,get:function get(){return _eventSource.EventSourceOpenParametersType}}),Object.defineProperty(exports,"ExternalPackageInfoType",{enumerable:!0,get:function get(){return _types.ExternalPackageInfoType}}),Object.defineProperty(exports,"FeatureFlagType",{enumerable:!0,get:function get(){return _types.FeatureFlagType}}),Object.defineProperty(exports,"FeatureFlagVariationsType",{enumerable:!0,get:function get(){return _storage.FeatureFlagVariationsType}}),Object.defineProperty(exports,"FeatureVariableResultType",{enumerable:!0,get:function get(){return _types.FeatureVariableResultType}}),Object.defineProperty(exports,"GeolocationData",{enumerable:!0,get:function get(){return _kameleoonData.GeolocationData}}),Object.defineProperty(exports,"GeolocationInfoType",{enumerable:!0,get:function get(){return _kameleoonData.GeolocationInfoType}}),Object.defineProperty(exports,"GetFeatureFlagVariableParamsType",{enumerable:!0,get:function get(){return _types.GetFeatureFlagVariableParamsType}}),Object.defineProperty(exports,"GetVisitorWarehouseAudienceParamsType",{enumerable:!0,get:function get(){return _types.GetVisitorWarehouseAudienceParamsType}}),Object.defineProperty(exports,"Header",{enumerable:!0,get:function get(){return _requester.Header}}),Object.defineProperty(exports,"HttpMethod",{enumerable:!0,get:function get(){return _requester.HttpMethod}}),Object.defineProperty(exports,"IExternalEventSource",{enumerable:!0,get:function get(){return _eventSource.IExternalEventSource}}),Object.defineProperty(exports,"IExternalEventSourceConstructor",{enumerable:!0,get:function get(){return _eventSource.IExternalEventSourceConstructor}}),Object.defineProperty(exports,"IExternalRequestDispatcher",{enumerable:!0,get:function get(){return _requester.IExternalRequestDispatcher}}),Object.defineProperty(exports,"IExternalStorage",{enumerable:!0,get:function get(){return _storage.IExternalStorage}}),Object.defineProperty(exports,"IExternalStorageConstructor",{enumerable:!0,get:function get(){return _storage.IExternalStorageConstructor}}),Object.defineProperty(exports,"IKameleoonCore",{enumerable:!0,get:function get(){return _kameleoonClient.IKameleoonClient}}),Object.defineProperty(exports,"InternalSDKConfigurationType",{enumerable:!0,get:function get(){return _types.InternalSDKConfigurationType}}),Object.defineProperty(exports,"JSONType",{enumerable:!0,get:function get(){return _clientConfiguration.JSONType}}),Object.defineProperty(exports,"KameleoonCore",{enumerable:!0,get:function get(){return _kameleoonClient.KameleoonClient}}),Object.defineProperty(exports,"KameleoonCoreUtils",{enumerable:!0,get:function get(){return _kameleoonUtils.KameleoonUtils}}),Object.defineProperty(exports,"KameleoonData",{enumerable:!0,get:function get(){return _kameleoonData.KameleoonData}}),Object.defineProperty(exports,"KameleoonDataType",{enumerable:!0,get:function get(){return _kameleoonData.KameleoonDataType}}),Object.defineProperty(exports,"KameleoonError",{enumerable:!0,get:function get(){return _kameleoonError.KameleoonError}}),Object.defineProperty(exports,"KameleoonException",{enumerable:!0,get:function get(){return _kameleoonError.KameleoonException}}),Object.defineProperty(exports,"KameleoonStorageKey",{enumerable:!0,get:function get(){return _storage.KameleoonStorageKey}}),Object.defineProperty(exports,"Milliseconds",{enumerable:!0,get:function get(){return _types.Milliseconds}}),Object.defineProperty(exports,"Ok",{enumerable:!0,get:function get(){return _tsRes.Ok}}),Object.defineProperty(exports,"OperatingSystem",{enumerable:!0,get:function get(){return _kameleoonData.OperatingSystem}}),Object.defineProperty(exports,"OperatingSystemType",{enumerable:!0,get:function get(){return _kameleoonData.OperatingSystemType}}),Object.defineProperty(exports,"PageView",{enumerable:!0,get:function get(){return _kameleoonData.PageView}}),Object.defineProperty(exports,"PageViewParametersType",{enumerable:!0,get:function get(){return _kameleoonData.PageViewParametersType}}),Object.defineProperty(exports,"RealTimeEventType",{enumerable:!0,get:function get(){return _eventSource.RealTimeEventType}}),Object.defineProperty(exports,"RemoteVisitorDataParamsType",{enumerable:!0,get:function get(){return _types.RemoteVisitorDataParamsType}}),Object.defineProperty(exports,"Result",{enumerable:!0,get:function get(){return _tsRes.Result}}),Object.defineProperty(exports,"SDKConfigurationType",{enumerable:!0,get:function get(){return _types.SDKConfigurationType}}),Object.defineProperty(exports,"SDKCoreParameters",{enumerable:!0,get:function get(){return _types.SDKCoreParameters}}),Object.defineProperty(exports,"SdkLanguageType",{enumerable:!0,get:function get(){return _constants.SdkLanguageType}}),Object.defineProperty(exports,"ServerGetVisitorCodeParametersType",{enumerable:!0,get:function get(){return _types.ServerGetVisitorCodeParametersType}}),Object.defineProperty(exports,"ServerSetCookieParametersType",{enumerable:!0,get:function get(){return _types.ServerSetCookieParametersType}}),Object.defineProperty(exports,"ServerSetLegalConsentParametersType",{enumerable:!0,get:function get(){return _types.ServerSetLegalConsentParametersType}}),Object.defineProperty(exports,"StorageDataType",{enumerable:!0,get:function get(){return _storage.StorageDataType}}),Object.defineProperty(exports,"TrackConversionParamsType",{enumerable:!0,get:function get(){return _types.TrackConversionParamsType}}),Object.defineProperty(exports,"TrackParametersType",{enumerable:!0,get:function get(){return _requester.TrackParametersType}}),Object.defineProperty(exports,"UserAgent",{enumerable:!0,get:function get(){return _kameleoonData.UserAgent}}),Object.defineProperty(exports,"VISITOR_CODE_LENGTH",{enumerable:!0,get:function get(){return _constants.VISITOR_CODE_LENGTH}}),Object.defineProperty(exports,"VariableType",{enumerable:!0,get:function get(){return _types.VariableType}}),Object.defineProperty(exports,"VisitorDataFiltersType",{enumerable:!0,get:function get(){return _utilities.VisitorDataFiltersType}});var _tsRes=require("ts-res"),_kameleoonClient=require("./kameleoonClient"),_kameleoonUtils=require("./kameleoonUtils"),_kameleoonError=require("./kameleoonError"),_utilities=require("./utilities"),_storage=require("./storage"),_cookieManager=require("./cookieManager"),_constants=require("./constants"),_clientConfiguration=require("./clientConfiguration"),_types=require("./types"),_kameleoonData=require("./kameleoonData"),_eventSource=require("./eventSource"),_requester=require("./requester");
2
2
  //# sourceMappingURL=index.js.map