@kameleoon/javascript-sdk 4.0.2 → 4.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,60 @@
1
1
  # Change Log
2
2
 
3
+ ## 4.1.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Fixed the issue where Real-Time Update server failures could lead to SDK configuration update issues. If the Real-Time Update server fails SDK will now temporarily switch to polling mode until the Real-Time Update server is available again.
8
+ - Added an optional `onError` handler for [`IExternalEventSource`][iextrnaleventsource] interface. If the `onError` handler is not provided the SDK would not be able to handle Real-Time Update server failures. Note: no action is required when using default Kameleoon event source solutions.
9
+ - Updated dependencies
10
+ - @kameleoon/javascript-sdk-core@5.1.1
11
+
12
+ [iextrnaleventsource]: https://developers.kameleoon.com/feature-management-and-experimentation/web-sdks/js-sdk/#eventsource
13
+
14
+ ## 4.1.0 (2024-11-14)
15
+
16
+ ### Features
17
+
18
+ - Enhanced top-level domain validation within the SDK. The implementation now includes automatic trimming of extraneous symbols.
19
+ - Enhanced [`logging`][logging]:
20
+ - Introduced [`log levels`][loglevels]:
21
+ - `None`
22
+ - `Error`
23
+ - `Warning`
24
+ - `Info`
25
+ - `Debug`
26
+ - Added support for [`custom logger`][customlogger] implementations.
27
+ - Introduced new evaluation methods for clarity and improved efficiency when working with the SDK:
28
+ - [`getVariation`][getVariation]
29
+ - [`getVariations`][getVariations]
30
+ - Introduced methods replace the deprecated ones:
31
+ - [`getFeatureFlags`][getFeatureFlags]
32
+ - [`getVisitorFeatureFlags`][getVisitorFeatureFlags]
33
+ - [`getActiveFeatureFlags`][getActiveFeatureFlags]
34
+ - [`getFeatureFlagVariationKey`][getFeatureFlagVariationKey]
35
+ - [`getFeatureFlagVariable`][getFeatureFlagVariable]
36
+ - [`getFeatureFlagVariables`][getFeatureFlagVariables]
37
+ - A new version of the [`isFeatureFlagActive`][isFeatureFlagActive] method now has a new overload, which contains an optional `track` parameter for managing the assigned variation tracking (default: `true`).
38
+
39
+ ### Patch Changes
40
+
41
+ - [`UniqueIdentifier`][uniqueidentifier] data is now correctly exported from the SDK
42
+ - Updated dependencies
43
+ - @kameleoon/javascript-sdk-core@5.1.0
44
+
45
+ [logging]: https://developers.kameleoon.com/feature-management-and-experimentation/web-sdks/js-sdk#logging
46
+ [loglevels]: https://developers.kameleoon.com/feature-management-and-experimentation/web-sdks/js-sdk#log-levels
47
+ [customlogger]: https://developers.kameleoon.com/feature-management-and-experimentation/web-sdks/js-sdk#custom-handling-of-logs
48
+ [getVariation]: https://developers.kameleoon.com/feature-management-and-experimentation/web-sdks/js-sdk#getvariation
49
+ [getVariations]: https://developers.kameleoon.com/feature-management-and-experimentation/web-sdks/js-sdk#getvariations
50
+ [getFeatureFlags]: https://developers.kameleoon.com/feature-management-and-experimentation/web-sdks/js-sdk#getfeatureflags
51
+ [getVisitorFeatureFlags]: https://developers.kameleoon.com/feature-management-and-experimentation/web-sdks/js-sdk#getvisitorfeatureflags
52
+ [getActiveFeatureFlags]: https://developers.kameleoon.com/feature-management-and-experimentation/web-sdks/js-sdk#getactivefeatureflags
53
+ [getFeatureFlagVariationKey]: https://developers.kameleoon.com/feature-management-and-experimentation/web-sdks/js-sdk#getfeatureflagvariationkey
54
+ [getFeatureFlagVariable]: https://developers.kameleoon.com/feature-management-and-experimentation/web-sdks/js-sdk#getfeatureflagvariable
55
+ [getFeatureFlagVariables]: https://developers.kameleoon.com/feature-management-and-experimentation/web-sdks/js-sdk#getfeatureflagvariables
56
+ [isFeatureFlagActive]: https://developers.kameleoon.com/feature-management-and-experimentation/web-sdks/js-sdk#isfeatureflagactive
57
+
3
58
  ## 4.0.2 (2024-11-08)
4
59
 
5
60
  ### Patch Changes
package/dist/constants.js CHANGED
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CookieParameter=void 0;let CookieParameter=exports.CookieParameter=function(a){return a.PairsDelimiter="; ",a.KeyValueDelimiter="=",a.MaxAge="Max-Age",a.Path="Path",a.Domain="Domain",a}({});
2
- //# sourceMappingURL=constants.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CookieParameter=void 0;let CookieParameter=exports.CookieParameter=function(a){return a.PairsDelimiter="; ",a.KeyValueDelimiter="=",a.MaxAge="Max-Age",a.Path="Path",a.Domain="Domain",a}({});
@@ -3,4 +3,5 @@ export declare class KameleoonEventSource implements IExternalEventSource {
3
3
  private eventSource?;
4
4
  open({ eventType, onEvent, url, }: EventSourceOpenParametersType): void;
5
5
  close(): void;
6
+ onError(callback: (error: Event) => void): void;
6
7
  }
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.KameleoonEventSource=void 0;function _defineProperty(a,b,c){return(b=_toPropertyKey(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||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){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)}class KameleoonEventSource{constructor(){_defineProperty(this,"eventSource",void 0)}open(a){let{eventType:b,onEvent:c,url:d}=a;const e=new EventSource(d);this.eventSource=e,this.eventSource.addEventListener(b,c)}close(){this.eventSource&&this.eventSource.close()}}exports.KameleoonEventSource=KameleoonEventSource;
2
- //# sourceMappingURL=eventSource.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.KameleoonEventSource=void 0;function _defineProperty(a,b,c){return(b=_toPropertyKey(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||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){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)}class KameleoonEventSource{constructor(){_defineProperty(this,"eventSource",void 0)}open(a){let{eventType:b,onEvent:c,url:d}=a;const e=new EventSource(d);this.eventSource=e,this.eventSource.addEventListener(b,c)}close(){this.eventSource&&this.eventSource.close()}onError(a){this.eventSource&&(this.eventSource.onerror=a)}}exports.KameleoonEventSource=KameleoonEventSource;
package/dist/index.js CHANGED
@@ -1,2 +1 @@
1
- "use strict";var _exportNames={KameleoonClient:!0};var _javascriptSdkCore=require("@kameleoon/javascript-sdk-core");var _kameleoonClient=require("./kameleoonClient");Object.defineProperty(exports,"__esModule",{value:!0});Object.defineProperty(exports,"KameleoonClient",{enumerable:!0,get:function(){return _kameleoonClient.KameleoonClient}});Object.keys(_javascriptSdkCore).forEach(function(a){"default"===a||"__esModule"===a||Object.prototype.hasOwnProperty.call(_exportNames,a)||a in exports&&exports[a]===_javascriptSdkCore[a]||Object.defineProperty(exports,a,{enumerable:!0,get:function(){return _javascriptSdkCore[a]}})});
2
- //# sourceMappingURL=index.js.map
1
+ "use strict";var _exportNames={KameleoonClient:!0};var _javascriptSdkCore=require("@kameleoon/javascript-sdk-core");var _kameleoonClient=require("./kameleoonClient");Object.defineProperty(exports,"__esModule",{value:!0});Object.defineProperty(exports,"KameleoonClient",{enumerable:!0,get:function(){return _kameleoonClient.KameleoonClient}});Object.keys(_javascriptSdkCore).forEach(function(a){"default"===a||"__esModule"===a||Object.prototype.hasOwnProperty.call(_exportNames,a)||a in exports&&exports[a]===_javascriptSdkCore[a]||Object.defineProperty(exports,a,{enumerable:!0,get:function(){return _javascriptSdkCore[a]}})});
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.KameleoonClient=void 0;var _javascriptSdkCore=require("@kameleoon/javascript-sdk-core"),_requester=require("./requester"),_storage=require("./storage"),_eventSource=require("./eventSource"),_visitorCodeManager=require("./visitorCodeManager"),_prng=require("./prng");function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function _defineProperty(a,b,c){return(b=_toPropertyKey(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||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){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)}class KameleoonClient extends _javascriptSdkCore.KameleoonCore{constructor(a){let{siteCode:b,configuration:c,externals:d,_internals:e}=a;const f=(null===e||void 0===e?void 0:e.prng)||new _prng.KameleoonPRNG,g=(null===d||void 0===d?void 0:d.storage)||new _storage.DataStorage,h=(null===d||void 0===d?void 0:d.requester)||new _requester.Requester,i=(null===d||void 0===d?void 0:d.eventSource)||new _eventSource.KameleoonEventSource,j=new _javascriptSdkCore.VisitorCodeManager,k=(null===d||void 0===d?void 0:d.visitorCodeManager)||new _visitorCodeManager.KameleoonVisitorCodeManager,l=(null===e||void 0===e?void 0:e.packageInfo)||{type:_javascriptSdkCore.SdkLanguageType.JAVASCRIPT,version:"4.0.2"};super({siteCode:b,configuration:c,internalConfiguration:{externals:{externalPRNG:f,externalStorage:g,externalRequester:h,externalEventSource:i,externalVisitorCodeManager:j,externalPackageInfo:l},settings:{useAbortController:!0}}}),_defineProperty(this,"domain",void 0),_defineProperty(this,"internalVisitorCodeManager",void 0),_defineProperty(this,"externalVisitorCodeManager",void 0),this.domain=null===c||void 0===c?void 0:c.cookieDomain,this.internalVisitorCodeManager=j,this.externalVisitorCodeManager=k}getVisitorCode(a){return this.internalVisitorCodeManager.getData=a=>this.externalVisitorCodeManager.getData(a),this.internalVisitorCodeManager.setData=a=>{this.externalVisitorCodeManager.setData(_objectSpread(_objectSpread({},a),{},{domain:this.domain}))},this.internalVisitorCodeManager.getVisitorCode(a)}setLegalConsent(a,b){super.setUserConsent({visitorCode:a,consent:b,setData:a=>{this.externalVisitorCodeManager.setData(_objectSpread(_objectSpread({},a),{},{domain:this.domain}))}})}}exports.KameleoonClient=KameleoonClient;
2
- //# sourceMappingURL=kameleoonClient.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.KameleoonClient=void 0;var _javascriptSdkCore=require("@kameleoon/javascript-sdk-core"),_requester=require("./requester"),_storage=require("./storage"),_eventSource=require("./eventSource"),_visitorCodeManager=require("./visitorCodeManager"),_prng=require("./prng");function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function _defineProperty(a,b,c){return(b=_toPropertyKey(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||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){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)}class KameleoonClient extends _javascriptSdkCore.KameleoonCore{constructor(a){let{siteCode:b,configuration:c,externals:d,_internals:e}=a;const f=(null===e||void 0===e?void 0:e.prng)||new _prng.KameleoonPRNG,g=(null===d||void 0===d?void 0:d.storage)||new _storage.DataStorage,h=(null===d||void 0===d?void 0:d.requester)||new _requester.Requester,i=(null===d||void 0===d?void 0:d.eventSource)||new _eventSource.KameleoonEventSource,j=new _javascriptSdkCore.VisitorCodeManager,k=(null===d||void 0===d?void 0:d.visitorCodeManager)||new _visitorCodeManager.KameleoonVisitorCodeManager,l=(null===e||void 0===e?void 0:e.packageInfo)||{type:_javascriptSdkCore.SdkLanguageType.JAVASCRIPT,version:"4.1.1"},m={externalPRNG:f,externalStorage:g,externalRequester:h,externalEventSource:i,externalVisitorCodeManager:j,externalPackageInfo:l,externalLogger:null===d||void 0===d?void 0:d.logger};super({siteCode:b,configuration:c,internalConfiguration:{externals:m,settings:{useAbortController:!0}}}),_defineProperty(this,"domain",void 0),_defineProperty(this,"internalVisitorCodeManager",void 0),_defineProperty(this,"externalVisitorCodeManager",void 0);const n=_javascriptSdkCore.Validator.validateDomain(null===c||void 0===c?void 0:c.cookieDomain);this.domain=n.ok?n.data:void 0,this.internalVisitorCodeManager=j,this.externalVisitorCodeManager=k}getVisitorCode(a){_javascriptSdkCore.KameleoonLogger.info`CALL KamaleoonClient.getVisitorCode(defaultVisitorCode: ${a})`,this.internalVisitorCodeManager.getData=a=>this.externalVisitorCodeManager.getData(a),this.internalVisitorCodeManager.setData=a=>{this.externalVisitorCodeManager.setData(_objectSpread(_objectSpread({},a),{},{domain:this.domain}))};const b=this.internalVisitorCodeManager.getVisitorCode(a);return _javascriptSdkCore.KameleoonLogger.info`RETURN KamaleoonClient.getVisitorCode(defaultVisitorCode: ${a}) -> (visitorCode: ${b})`,b}setLegalConsent(a,b){super.setUserConsent({visitorCode:a,consent:b,setData:a=>{this.externalVisitorCodeManager.setData(_objectSpread(_objectSpread({},a),{},{domain:this.domain}))}})}}exports.KameleoonClient=KameleoonClient;
package/dist/prng.js CHANGED
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.KameleoonPRNG=void 0;class KameleoonPRNG{getRandomNumber(){var a;if("undefined"!=typeof window&&null!==(a=window)&&void 0!==a&&a.crypto){const a=new Uint32Array(1);return window.crypto.getRandomValues(a),a[0]/4294967296}return Math.random()}}exports.KameleoonPRNG=KameleoonPRNG;
2
- //# sourceMappingURL=prng.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.KameleoonPRNG=void 0;class KameleoonPRNG{getRandomNumber(){var a;if("undefined"!=typeof window&&null!==(a=window)&&void 0!==a&&a.crypto){const a=new Uint32Array(1);return window.crypto.getRandomValues(a),a[0]/4294967296}return Math.random()}}exports.KameleoonPRNG=KameleoonPRNG;
package/dist/requester.js CHANGED
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Requester=void 0;class Requester{async sendRequest(a){let{url:b,parameters:c}=a;return await fetch(b,c)}}exports.Requester=Requester;
2
- //# sourceMappingURL=requester.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Requester=void 0;class Requester{async sendRequest(a){let{url:b,parameters:c}=a;return await fetch(b,c)}}exports.Requester=Requester;
package/dist/storage.js CHANGED
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.DataStorage=void 0;var _javascriptSdkCore=require("@kameleoon/javascript-sdk-core"),_visitorCodeManager=require("./visitorCodeManager");function _defineProperty(a,b,c){return(b=_toPropertyKey(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||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){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)}class DataStorage{constructor(){_defineProperty(this,"visitorCodeManager",void 0)}read(a){const b=localStorage.getItem(a);if(!b){if(a===_javascriptSdkCore.KameleoonStorageKey.ConsentData){const a=this.getEngineConsentData();if(a)return a}return null}return JSON.parse(b)}write(a,b){localStorage.setItem(a,JSON.stringify(b))}getEngineConsentData(){this.visitorCodeManager||(this.visitorCodeManager=new _visitorCodeManager.KameleoonVisitorCodeManager);const a=this.visitorCodeManager.getData(_javascriptSdkCore.KameleoonStorageKey.VisitorCode);if(!a)return null;try{var b;const c=localStorage.getItem("kameleoonLegalConsent");if(!c)return null;const d=JSON.parse(c);return"boolean"==typeof(null===d||void 0===d||null===(b=d.value)||void 0===b?void 0:b.AB_TESTING)?{[a]:d.value.AB_TESTING}:null}catch(_){return null}}}exports.DataStorage=DataStorage;
2
- //# sourceMappingURL=storage.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.DataStorage=void 0;var _javascriptSdkCore=require("@kameleoon/javascript-sdk-core"),_visitorCodeManager=require("./visitorCodeManager");function _defineProperty(a,b,c){return(b=_toPropertyKey(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||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){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)}class DataStorage{constructor(){_defineProperty(this,"visitorCodeManager",void 0)}read(a){const b=localStorage.getItem(a);if(!b){if(a===_javascriptSdkCore.KameleoonStorageKey.ConsentData){const a=this.getEngineConsentData();if(a)return a}return null}return JSON.parse(b)}write(a,b){localStorage.setItem(a,JSON.stringify(b))}getEngineConsentData(){this.visitorCodeManager||(this.visitorCodeManager=new _visitorCodeManager.KameleoonVisitorCodeManager);const a=this.visitorCodeManager.getData(_javascriptSdkCore.KameleoonStorageKey.VisitorCode);if(!a)return null;try{var b;const c=localStorage.getItem("kameleoonLegalConsent");if(!c)return null;const d=JSON.parse(c);return"boolean"==typeof(null===d||void 0===d||null===(b=d.value)||void 0===b?void 0:b.AB_TESTING)?{[a]:d.value.AB_TESTING}:null}catch(_){return null}}}exports.DataStorage=DataStorage;
package/dist/types.d.ts CHANGED
@@ -1,15 +1,17 @@
1
- import { InternalsType, IExternalEventSource, IExternalRequester, IExternalStorage, SDKConfigurationType } from '@kameleoon/javascript-sdk-core';
1
+ import { InternalsType, IExternalEventSource, IExternalRequester, IExternalStorage, SDKConfigurationType, IExternalLogger } from '@kameleoon/javascript-sdk-core';
2
2
  /**
3
3
  * @param {IExternalStorage | undefined} storage - external storage implementation
4
4
  * @param {IExternalEventSource | undefined} eventSource - external event source implementation
5
5
  * @param {IExternalVisitorCodeManager | undefined} visitorCodeManager - external visitor code manager implementation
6
6
  * @param {IExternalRequester | undefined} requester - external requester implementation
7
+ * @param {IExternalLogger | undefined} logger - external logger implementation
7
8
  * */
8
9
  export type ExternalsType = {
9
10
  storage?: IExternalStorage;
10
11
  requester?: IExternalRequester;
11
12
  eventSource?: IExternalEventSource;
12
13
  visitorCodeManager?: IExternalVisitorCodeManager;
14
+ logger?: IExternalLogger;
13
15
  };
14
16
  /**
15
17
  * @param {string} siteCode - client's siteCode defined on Kameleoon platform
package/dist/types.js CHANGED
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});
2
- //# sourceMappingURL=types.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.KameleoonVisitorCodeManager=void 0;var _constants=require("./constants"),_javascriptSdkCore=require("@kameleoon/javascript-sdk-core");class VisitorCodeManager{getData(a){const b=document.cookie;return b?_javascriptSdkCore.KameleoonUtils.getCookieValue(b,a):null}setData(a){let{visitorCode:b,domain:c,maxAge:d,key:e,path:f}=a;const g=this.getResultCookie({domain:c,visitorCode:b,key:e,maxAge:d,path:f});document.cookie=g}getResultCookie(a){let{domain:b,visitorCode:c,maxAge:d,key:e,path:f}=a;const g=[e+_constants.CookieParameter.KeyValueDelimiter+c,_constants.CookieParameter.MaxAge+_constants.CookieParameter.KeyValueDelimiter+d,_constants.CookieParameter.Path+_constants.CookieParameter.KeyValueDelimiter+f];return b&&g.push(_constants.CookieParameter.Domain+_constants.CookieParameter.KeyValueDelimiter+b),g.join(_constants.CookieParameter.PairsDelimiter)}}exports.KameleoonVisitorCodeManager=VisitorCodeManager;
2
- //# sourceMappingURL=visitorCodeManager.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.KameleoonVisitorCodeManager=void 0;var _constants=require("./constants"),_javascriptSdkCore=require("@kameleoon/javascript-sdk-core");class VisitorCodeManager{getData(a){_javascriptSdkCore.KameleoonLogger.debug`CALL: VisitorCodeManager.getData(key: ${a})`;const b=document.cookie;let c=null;return b&&(c=_javascriptSdkCore.KameleoonUtils.getCookieValue(b,a)),_javascriptSdkCore.KameleoonLogger.debug`RETURN: VisitorCodeManager.getData(key: ${a}) -> (visitorCode: ${c})`,c}setData(a){let{visitorCode:b,domain:c,maxAge:d,key:e,path:f}=a;const g=this.getResultCookie({domain:c,visitorCode:b,key:e,maxAge:d,path:f});document.cookie=g,_javascriptSdkCore.KameleoonLogger.debug`Cookie ${g} was added for visitor ${b}`}getResultCookie(a){let{domain:b,visitorCode:c,maxAge:d,key:e,path:f}=a;const g=[e+_constants.CookieParameter.KeyValueDelimiter+c,_constants.CookieParameter.MaxAge+_constants.CookieParameter.KeyValueDelimiter+d,_constants.CookieParameter.Path+_constants.CookieParameter.KeyValueDelimiter+f];return b&&g.push(_constants.CookieParameter.Domain+_constants.CookieParameter.KeyValueDelimiter+b),g.join(_constants.CookieParameter.PairsDelimiter)}}exports.KameleoonVisitorCodeManager=VisitorCodeManager;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kameleoon/javascript-sdk",
3
- "version": "4.0.2",
3
+ "version": "4.1.1",
4
4
  "description": "Kameleoon JavaScript SDK",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -11,8 +11,10 @@
11
11
  "clean": "rimraf dist && rimraf tsconfig.tsbuildinfo",
12
12
  "dev": "npm run clean && tsc -w -p tsconfig.watch.json",
13
13
  "build": "npm run clean && npm run build:types && npm run build:js",
14
+ "build:test": "npm run clean && npm run build:js-source-maps",
14
15
  "build:types": "tsc --emitDeclarationOnly",
15
- "build:js": "babel src --out-dir dist --extensions \".ts,.tsx\" --source-maps true",
16
+ "build:js": "babel src --out-dir dist --extensions \".ts,.tsx\"",
17
+ "build:js-source-maps": "babel src --out-dir dist --extensions \".ts,.tsx\" --source-maps true",
16
18
  "deploy": "/bin/bash ../../scripts/deploy.sh javascript-sdk",
17
19
  "deploy-nexus": "/bin/bash ../../scripts/deploy_nexus.sh javascript-sdk",
18
20
  "update-documentation": "/bin/bash ../../scripts/update_documentation.sh javascript-sdk",
@@ -35,7 +37,7 @@
35
37
  ],
36
38
  "license": "ISC",
37
39
  "dependencies": {
38
- "@kameleoon/javascript-sdk-core": "5.0.2"
40
+ "@kameleoon/javascript-sdk-core": "5.1.1"
39
41
  },
40
42
  "devDependencies": {
41
43
  "@types/crypto-js": "^4.1.1",
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","names":["CookieParameter","exports","PairsDelimiter","KeyValueDelimiter","MaxAge","Path","Domain"],"sources":["../src/constants.ts"],"sourcesContent":["export enum CookieParameter {\n PairsDelimiter = '; ',\n KeyValueDelimiter = '=',\n MaxAge = 'Max-Age',\n Path = 'Path',\n Domain = 'Domain',\n}\n"],"mappings":"sGAAY,CAAAA,eAAe,CAAAC,OAAA,CAAAD,eAAA,UAAfA,CAAe,QAAf,CAAAA,CAAe,CAAAE,cAAA,MAAfF,CAAe,CAAAG,iBAAA,KAAfH,CAAe,CAAAI,MAAA,WAAfJ,CAAe,CAAAK,IAAA,QAAfL,CAAe,CAAAM,MAAA,UAAfN,CAAe","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"eventSource.js","names":["KameleoonEventSource","constructor","_defineProperty","open","a","eventType","onEvent","url","eventSource","EventSource","addEventListener","close","exports"],"sources":["../src/eventSource.ts"],"sourcesContent":["import {\n IExternalEventSource,\n EventSourceOpenParametersType,\n} from '@kameleoon/javascript-sdk-core';\n\n// --- Note ---\n// Named `KameleoonEventSource` to avoid collision with native `EventSource`\nexport class KameleoonEventSource implements IExternalEventSource {\n private eventSource?: EventSource;\n\n public open({\n eventType,\n onEvent,\n url,\n }: EventSourceOpenParametersType): void {\n const eventSource = new EventSource(url);\n\n this.eventSource = eventSource;\n this.eventSource.addEventListener(eventType, onEvent);\n }\n\n public close(): void {\n if (this.eventSource) {\n this.eventSource.close();\n }\n }\n}\n"],"mappings":"ymBAOO,KAAM,CAAAA,oBAAqD,CAAAC,YAAA,EAAAC,eAAA,4BAGzDC,IAAIA,CAAAC,CAAA,CAI6B,IAJ5B,CACVC,SAAS,CAATA,CAAS,CACTC,OAAO,CAAPA,CAAO,CACPC,GAAG,CAAHA,CAC6B,CAAC,CAAAH,CAAA,CAC9B,KAAM,CAAAI,CAAW,CAAG,GAAI,CAAAC,WAAW,CAACF,CAAG,CAAC,CAExC,IAAI,CAACC,WAAW,CAAGA,CAAW,CAC9B,IAAI,CAACA,WAAW,CAACE,gBAAgB,CAACL,CAAS,CAAEC,CAAO,CACtD,CAEOK,KAAKA,CAAA,CAAS,CACf,IAAI,CAACH,WAAW,EAClB,IAAI,CAACA,WAAW,CAACG,KAAK,CAAC,CAE3B,CACF,CAACC,OAAA,CAAAZ,oBAAA,CAAAA,oBAAA","ignoreList":[]}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["_javascriptSdkCore","require","_kameleoonClient","Object","defineProperty","exports","value","enumerable","get","KameleoonClient","keys","forEach","a","prototype","hasOwnProperty","call","_exportNames"],"sources":["../src/index.ts"],"sourcesContent":["export * from '@kameleoon/javascript-sdk-core';\nexport { KameleoonClient } from './kameleoonClient';\nexport type {\n ExternalsType,\n SDKParameters,\n SetDataParametersType,\n IExternalVisitorCodeManager,\n} from './types';\n"],"mappings":"mDAAA,IAAAA,kBAAA,CAAAC,OAAA,mCACA,IAAAC,gBAAA,CAAAD,OAAA,sBAAoDE,MAAA,CAAAC,cAAA,CAAAC,OAAA,eAAAC,KAAA,MAAAH,MAAA,CAAAC,cAAA,CAAAC,OAAA,oBAAAE,UAAA,IAAAC,GAAA,SAAAA,CAAA,SAAAN,gBAAA,CAAAO,eAAA,IAAAN,MAAA,CAAAO,IAAA,CAAAV,kBAAA,EAAAW,OAAA,UAAAC,CAAA,cAAAA,CAAA,iBAAAA,CAAA,EAAAT,MAAA,CAAAU,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,CAAAJ,CAAA,GAAAA,CAAA,IAAAP,OAAA,EAAAA,OAAA,CAAAO,CAAA,IAAAZ,kBAAA,CAAAY,CAAA,GAAAT,MAAA,CAAAC,cAAA,CAAAC,OAAA,CAAAO,CAAA,EAAAL,UAAA,IAAAC,GAAA,SAAAA,CAAA,SAAAR,kBAAA,CAAAY,CAAA","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"kameleoonClient.js","names":["KameleoonClient","KameleoonCore","constructor","a","siteCode","configuration","externals","_internals","prng","KameleoonPRNG","storage","DataStorage","requester","Requester","eventSource","KameleoonEventSource","visitorCodeManager","VisitorCodeManager","externalVisitorCodeManager","KameleoonVisitorCodeManager","packageInfo","type","SdkLanguageType","JAVASCRIPT","version","internalConfiguration","externalPRNG","externalStorage","externalRequester","externalEventSource","externalPackageInfo","settings","useAbortController","_defineProperty","domain","cookieDomain","internalVisitorCodeManager","getVisitorCode","defaultVisitorCode","getData","key","setData","parameters","_objectSpread","setLegalConsent","visitorCode","consent","setUserConsent","exports"],"sources":["../src/kameleoonClient.ts"],"sourcesContent":["import {\n SdkLanguageType,\n KameleoonCore,\n VisitorCodeManager,\n IVisitorCodeManager,\n SetDataCallbackParametersType,\n} from '@kameleoon/javascript-sdk-core';\nimport { Requester } from './requester';\nimport { DataStorage } from './storage';\nimport { KameleoonEventSource } from './eventSource';\nimport { KameleoonVisitorCodeManager } from './visitorCodeManager';\nimport { IExternalVisitorCodeManager, SDKParameters } from './types';\nimport { KameleoonPRNG } from './prng';\n\n/**\n * @class\n * KameleoonClient - a class for creating kameleoon client instance\n * */\nexport class KameleoonClient extends KameleoonCore {\n private domain?: string;\n private internalVisitorCodeManager: IVisitorCodeManager;\n private externalVisitorCodeManager: IExternalVisitorCodeManager;\n\n constructor({\n siteCode,\n configuration,\n externals,\n _internals,\n }: SDKParameters) {\n const prng = _internals?.prng || new KameleoonPRNG();\n const storage = externals?.storage || new DataStorage();\n const requester = externals?.requester || new Requester();\n const eventSource = externals?.eventSource || new KameleoonEventSource();\n const visitorCodeManager = new VisitorCodeManager();\n const externalVisitorCodeManager =\n externals?.visitorCodeManager || new KameleoonVisitorCodeManager();\n\n const packageInfo = _internals?.packageInfo || {\n type: SdkLanguageType.JAVASCRIPT,\n version: process.env.npm_package_version as string,\n };\n\n const dependencies = {\n externalPRNG: prng,\n externalStorage: storage,\n externalRequester: requester,\n externalEventSource: eventSource,\n externalVisitorCodeManager: visitorCodeManager,\n externalPackageInfo: packageInfo,\n };\n\n const settings = {\n useAbortController: true,\n };\n\n super({\n siteCode,\n configuration,\n internalConfiguration: {\n externals: dependencies,\n settings,\n },\n });\n\n this.domain = configuration?.cookieDomain;\n this.internalVisitorCodeManager = visitorCodeManager;\n this.externalVisitorCodeManager = externalVisitorCodeManager;\n }\n\n /**\n * @method getVisitorCode - obtains visitor code from the browser cookie, if the visitor code doesn't yet exist generates a random visitor code (or uses a provided default) and sets a new visitor code to cookie\n * @param {string | undefined} defaultVisitorCode - visitor code to be used in case there is no visitor code in cookies *Note*: if not passed visitor code will be randomly generated\n * @returns {string} result visitor code\n * @throws `KameleoonError` with one of the following `type` s:\n *\n * - `KameleoonException.VisitorCodeMaxLength` - The visitor code length was exceeded\n * - `KameleoonException.VisitorCodeEmpty` - The visitor code is empty\n */\n public getVisitorCode(defaultVisitorCode?: string): string {\n this.internalVisitorCodeManager.getData = (key: string) =>\n this.externalVisitorCodeManager.getData(key);\n\n this.internalVisitorCodeManager.setData = (\n parameters: SetDataCallbackParametersType,\n ) => {\n this.externalVisitorCodeManager.setData({\n ...parameters,\n domain: this.domain,\n });\n };\n\n return this.internalVisitorCodeManager.getVisitorCode(defaultVisitorCode);\n }\n\n /**\n * @method setLegalConsent - sets or updates the legal consent status for a visitor identified by their unique visitor code, affecting values in the response cookies based on the consent status\n * @param {string} visitorCode - unique visitor identification string, can't exceed 255 characters length\n * @param {boolean} consent - a value representing the legal consent status. - 'true' indicates the\n * visitor has given legal consent. - 'false' indicates the visitor has withdrawn or not\n * provided legal consent.\n * @returns {void}\n * @throws `KameleoonError` with one of the following `type` s:\n *\n * - `KameleoonException.VisitorCodeMaxLength` - The visitor code length was exceeded\n * - `KameleoonException.VisitorCodeEmpty` - The visitor code is empty\n */\n public setLegalConsent(visitorCode: string, consent: boolean): void {\n super.setUserConsent({\n visitorCode,\n consent,\n setData: (parameters: SetDataCallbackParametersType): void => {\n this.externalVisitorCodeManager.setData({\n ...parameters,\n domain: this.domain,\n });\n },\n });\n }\n}\n"],"mappings":"y7CAkBO,KAAM,CAAAA,eAAe,QAAS,CAAAC,gCAAc,CAKjDC,WAAWA,CAAAC,CAAA,CAKO,IALN,CACVC,QAAQ,CAARA,CAAQ,CACRC,aAAa,CAAbA,CAAa,CACbC,SAAS,CAATA,CAAS,CACTC,UAAU,CAAVA,CACa,CAAC,CAAAJ,CAAA,MACR,CAAAK,CAAI,CAAG,QAAAD,CAAU,WAAVA,CAAU,QAAVA,CAAU,CAAEC,IAAI,GAAI,GAAI,CAAAC,mBAAe,CAC9CC,CAAO,CAAG,QAAAJ,CAAS,WAATA,CAAS,QAATA,CAAS,CAAEI,OAAO,GAAI,GAAI,CAAAC,oBAAa,CACjDC,CAAS,CAAG,QAAAN,CAAS,WAATA,CAAS,QAATA,CAAS,CAAEM,SAAS,GAAI,GAAI,CAAAC,oBAAW,CACnDC,CAAW,CAAG,QAAAR,CAAS,WAATA,CAAS,QAATA,CAAS,CAAEQ,WAAW,GAAI,GAAI,CAAAC,iCAAsB,CAClEC,CAAkB,CAAG,GAAI,CAAAC,qCAAoB,CAC7CC,CAA0B,CAC9B,QAAAZ,CAAS,WAATA,CAAS,QAATA,CAAS,CAAEU,kBAAkB,GAAI,GAAI,CAAAG,+CAA6B,CAE9DC,CAAW,CAAG,QAAAb,CAAU,WAAVA,CAAU,QAAVA,CAAU,CAAEa,WAAW,GAAI,CAC7CC,IAAI,CAAEC,kCAAe,CAACC,UAAU,CAChCC,OAAO,QACT,CAAC,CAeD,KAAK,CAAC,CACJpB,QAAQ,CAARA,CAAQ,CACRC,aAAa,CAAbA,CAAa,CACboB,qBAAqB,CAAE,CACrBnB,SAAS,CAjBQ,CACnBoB,YAAY,CAAElB,CAAI,CAClBmB,eAAe,CAAEjB,CAAO,CACxBkB,iBAAiB,CAAEhB,CAAS,CAC5BiB,mBAAmB,CAAEf,CAAW,CAChCI,0BAA0B,CAAEF,CAAkB,CAC9Cc,mBAAmB,CAAEV,CACvB,CAU2B,CACvBW,QAAQ,CATK,CACfC,kBAAkB,GACpB,CAQE,CACF,CAAC,CAAC,CAAAC,eAAA,uBAAAA,eAAA,2CAAAA,eAAA,2CAEF,IAAI,CAACC,MAAM,QAAG7B,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAE8B,YAAY,CACzC,IAAI,CAACC,0BAA0B,CAAGpB,CAAkB,CACpD,IAAI,CAACE,0BAA0B,CAAGA,CACpC,CAWOmB,cAAcA,CAACC,CAA2B,CAAU,CAazD,MAZA,KAAI,CAACF,0BAA0B,CAACG,OAAO,CAAIC,CAAW,EACpD,IAAI,CAACtB,0BAA0B,CAACqB,OAAO,CAACC,CAAG,CAAC,CAE9C,IAAI,CAACJ,0BAA0B,CAACK,OAAO,CACrCC,CAAyC,EACtC,CACH,IAAI,CAACxB,0BAA0B,CAACuB,OAAO,CAAAE,aAAA,CAAAA,aAAA,IAClCD,CAAU,MACbR,MAAM,CAAE,IAAI,CAACA,MAAM,EACpB,CACH,CAAC,CAEM,IAAI,CAACE,0BAA0B,CAACC,cAAc,CAACC,CAAkB,CAC1E,CAcOM,eAAeA,CAACC,CAAmB,CAAEC,CAAgB,CAAQ,CAClE,KAAK,CAACC,cAAc,CAAC,CACnBF,WAAW,CAAXA,CAAW,CACXC,OAAO,CAAPA,CAAO,CACPL,OAAO,CAAGC,CAAyC,EAAW,CAC5D,IAAI,CAACxB,0BAA0B,CAACuB,OAAO,CAAAE,aAAA,CAAAA,aAAA,IAClCD,CAAU,MACbR,MAAM,CAAE,IAAI,CAACA,MAAM,EACpB,CACH,CACF,CAAC,CACH,CACF,CAACc,OAAA,CAAAhD,eAAA,CAAAA,eAAA","ignoreList":[]}
package/dist/prng.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"prng.js","names":["KameleoonPRNG","getRandomNumber","a","window","crypto","arr","Uint32Array","getRandomValues","Math","random","exports"],"sources":["../src/prng.ts"],"sourcesContent":["import { IExternalPRNG } from '@kameleoon/javascript-sdk-core';\n\nexport class KameleoonPRNG implements IExternalPRNG {\n public getRandomNumber(): number {\n if (typeof window !== 'undefined' && window?.crypto) {\n const arr = new Uint32Array(1);\n const uint32Max = 0xffffffff + 1;\n\n window.crypto.getRandomValues(arr);\n\n return arr[0] / uint32Max;\n }\n\n return Math.random();\n }\n}\n"],"mappings":"iGAEO,KAAM,CAAAA,aAAuC,CAC3CC,eAAeA,CAAA,CAAW,KAAAC,CAAA,CAC/B,GAAsB,WAAW,EAA7B,MAAO,CAAAC,MAAsB,UAAAD,CAAA,CAAIC,MAAM,YAAAD,CAAA,EAANA,CAAA,CAAQE,MAAM,CAAE,MAC7C,CAAAC,CAAG,CAAG,GAAI,CAAAC,WAAW,CAAC,CAAC,CAAC,CAK9B,MAFA,CAAAH,MAAM,CAACC,MAAM,CAACG,eAAe,CAACF,CAAG,CAAC,CAE3BA,CAAG,CAAC,CAAC,CAAC,WACf,CAEA,MAAO,CAAAG,IAAI,CAACC,MAAM,CAAC,CACrB,CACF,CAACC,OAAA,CAAAV,aAAA,CAAAA,aAAA","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"requester.js","names":["Requester","sendRequest","a","url","parameters","fetch","exports"],"sources":["../src/requester.ts"],"sourcesContent":["import {\n RequestType,\n IExternalRequester,\n KameleoonResponseType,\n SendRequestParametersType,\n} from '@kameleoon/javascript-sdk-core';\n\nexport class Requester implements IExternalRequester {\n public async sendRequest({\n url,\n parameters,\n }: SendRequestParametersType<RequestType>): Promise<KameleoonResponseType> {\n return await fetch(url, parameters);\n }\n}\n"],"mappings":"6FAOO,KAAM,CAAAA,SAAwC,CACnD,KAAa,CAAAC,WAAWA,CAAAC,CAAA,CAGmD,IAHlD,CACvBC,GAAG,CAAHA,CAAG,CACHC,UAAU,CAAVA,CACsC,CAAC,CAAAF,CAAA,CACvC,MAAO,MAAM,CAAAG,KAAK,CAACF,CAAG,CAAEC,CAAU,CACpC,CACF,CAACE,OAAA,CAAAN,SAAA,CAAAA,SAAA","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.js","names":["DataStorage","constructor","_defineProperty","read","key","data","localStorage","getItem","KameleoonStorageKey","ConsentData","engineConsent","getEngineConsentData","JSON","parse","write","setItem","stringify","visitorCodeManager","KameleoonVisitorCodeManager","visitorCode","getData","VisitorCode","b","engineConsentData","value","AB_TESTING","_","exports"],"sources":["../src/storage.ts"],"sourcesContent":["import {\n IExternalStorage,\n KameleoonStorageKey,\n} from '@kameleoon/javascript-sdk-core';\nimport { KameleoonVisitorCodeManager } from './visitorCodeManager';\nimport { EngineConsentDataType } from './types';\n\n// --- Note ---\n// Named `DataStorage` to avoid collision with `Storage` from `window` API\nexport class DataStorage<T> implements IExternalStorage<T> {\n private visitorCodeManager?: KameleoonVisitorCodeManager;\n\n public read(key: string): T | null {\n const data = localStorage.getItem(key);\n\n if (!data) {\n if (key === KameleoonStorageKey.ConsentData) {\n const engineConsent = this.getEngineConsentData();\n\n if (engineConsent) {\n return engineConsent;\n }\n }\n\n return null;\n }\n\n return JSON.parse(data);\n }\n\n public write(key: string, data: T): void {\n localStorage.setItem(key, JSON.stringify(data));\n }\n\n private getEngineConsentData(): T | null {\n if (!this.visitorCodeManager) {\n this.visitorCodeManager = new KameleoonVisitorCodeManager();\n }\n\n const visitorCode = this.visitorCodeManager.getData(\n KameleoonStorageKey.VisitorCode,\n );\n\n if (!visitorCode) {\n return null;\n }\n\n try {\n const engineConsentData = localStorage.getItem('kameleoonLegalConsent');\n\n if (!engineConsentData) {\n return null;\n }\n\n const engineConsent: EngineConsentDataType =\n JSON.parse(engineConsentData);\n\n if (typeof engineConsent?.value?.AB_TESTING === 'boolean') {\n return { [visitorCode]: engineConsent.value.AB_TESTING } as T;\n }\n\n return null;\n } catch (_) {\n return null;\n }\n }\n}\n"],"mappings":"qtBASO,KAAM,CAAAA,WAA8C,CAAAC,YAAA,EAAAC,eAAA,mCAGlDC,IAAIA,CAACC,CAAW,CAAY,CACjC,KAAM,CAAAC,CAAI,CAAGC,YAAY,CAACC,OAAO,CAACH,CAAG,CAAC,CAEtC,GAAI,CAACC,CAAI,CAAE,CACT,GAAID,CAAG,GAAKI,sCAAmB,CAACC,WAAW,CAAE,CAC3C,KAAM,CAAAC,CAAa,CAAG,IAAI,CAACC,oBAAoB,CAAC,CAAC,CAEjD,GAAID,CAAa,CACf,MAAO,CAAAA,CAEX,CAEA,MAAO,KACT,CAEA,MAAO,CAAAE,IAAI,CAACC,KAAK,CAACR,CAAI,CACxB,CAEOS,KAAKA,CAACV,CAAW,CAAEC,CAAO,CAAQ,CACvCC,YAAY,CAACS,OAAO,CAACX,CAAG,CAAEQ,IAAI,CAACI,SAAS,CAACX,CAAI,CAAC,CAChD,CAEQM,oBAAoBA,CAAA,CAAa,CAClC,IAAI,CAACM,kBAAkB,GAC1B,IAAI,CAACA,kBAAkB,CAAG,GAAI,CAAAC,+CAA6B,EAG7D,KAAM,CAAAC,CAAW,CAAG,IAAI,CAACF,kBAAkB,CAACG,OAAO,CACjDZ,sCAAmB,CAACa,WACtB,CAAC,CAED,GAAI,CAACF,CAAW,CACd,MAAO,KAAI,CAGb,GAAI,KAAAG,CAAA,CACF,KAAM,CAAAC,CAAiB,CAAGjB,YAAY,CAACC,OAAO,CAAC,uBAAuB,CAAC,CAEvE,GAAI,CAACgB,CAAiB,CACpB,MAAO,KAAI,CAGb,KAAM,CAAAb,CAAoC,CACxCE,IAAI,CAACC,KAAK,CAACU,CAAiB,CAAC,CAAC,MAEgB,SAAS,EAArD,cAAOb,CAAa,WAAbA,CAAa,UAAAY,CAAA,CAAbZ,CAAa,CAAEc,KAAK,YAAAF,CAAA,QAApBA,CAAA,CAAsBG,UAAU,CAAc,CAChD,CAAE,CAACN,CAAW,EAAGT,CAAa,CAACc,KAAK,CAACC,UAAW,CAAC,CAGnD,IACT,CAAE,MAAOC,CAAC,CAAE,CACV,MAAO,KACT,CACF,CACF,CAACC,OAAA,CAAA3B,WAAA,CAAAA,WAAA","ignoreList":[]}
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../src/types.ts"],"sourcesContent":["import {\n InternalsType,\n IExternalEventSource,\n IExternalRequester,\n IExternalStorage,\n SDKConfigurationType,\n} from '@kameleoon/javascript-sdk-core';\n\n/**\n * @param {IExternalStorage | undefined} storage - external storage implementation\n * @param {IExternalEventSource | undefined} eventSource - external event source implementation\n * @param {IExternalVisitorCodeManager | undefined} visitorCodeManager - external visitor code manager implementation\n * @param {IExternalRequester | undefined} requester - external requester implementation\n * */\nexport type ExternalsType = {\n storage?: IExternalStorage;\n requester?: IExternalRequester;\n eventSource?: IExternalEventSource;\n visitorCodeManager?: IExternalVisitorCodeManager;\n};\n\n/**\n * @param {string} siteCode - client's siteCode defined on Kameleoon platform\n * @param {Partial<SDKConfigurationType> | undefined} configuration - client's configuration\n * @param {ExternalsType | undefined} externals - external dependencies\n * @param {InternalsType | undefined} _internals - internal dependencies used by consumer packages (React/React Native SDK)\n * */\nexport type SDKParameters = {\n siteCode: string;\n configuration?: Partial<SDKConfigurationType>;\n externals?: ExternalsType;\n _internals?: InternalsType;\n};\n\nexport type SetDataParametersType = {\n visitorCode: string;\n key: string;\n domain?: string;\n maxAge: number;\n path: string;\n};\n\nexport interface IExternalVisitorCodeManager {\n getData: (key: string) => string | null;\n setData: (params: SetDataParametersType) => void;\n}\n\nexport type EngineConsentDataType = {\n value?: { AB_TESTING?: boolean };\n};\n\nexport type GetResultCookieParametersType = {\n visitorCode: string;\n domain?: string;\n key: string;\n maxAge: number;\n path: string;\n};\n"],"mappings":"","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"visitorCodeManager.js","names":["VisitorCodeManager","getData","key","cookie","document","KameleoonUtils","getCookieValue","setData","a","visitorCode","domain","maxAge","path","resultCookie","getResultCookie","cookieArray","CookieParameter","KeyValueDelimiter","MaxAge","Path","push","Domain","join","PairsDelimiter","exports","KameleoonVisitorCodeManager"],"sources":["../src/visitorCodeManager.ts"],"sourcesContent":["import {\n GetResultCookieParametersType,\n IExternalVisitorCodeManager,\n SetDataParametersType,\n} from './types';\nimport { CookieParameter } from './constants';\nimport { KameleoonUtils } from '@kameleoon/javascript-sdk-core';\n\nclass VisitorCodeManager implements IExternalVisitorCodeManager {\n public getData(key: string): string | null {\n const cookie = document.cookie;\n\n if (cookie) {\n return KameleoonUtils.getCookieValue(cookie, key);\n }\n\n return null;\n }\n\n public setData({\n visitorCode,\n domain,\n maxAge,\n key,\n path,\n }: SetDataParametersType): void {\n const resultCookie = this.getResultCookie({\n domain,\n visitorCode,\n key,\n maxAge,\n path,\n });\n\n document.cookie = resultCookie;\n }\n\n private getResultCookie({\n domain,\n visitorCode,\n maxAge,\n key,\n path,\n }: GetResultCookieParametersType): string {\n const cookieArray = [\n key + CookieParameter.KeyValueDelimiter + visitorCode,\n CookieParameter.MaxAge + CookieParameter.KeyValueDelimiter + maxAge,\n CookieParameter.Path + CookieParameter.KeyValueDelimiter + path,\n ];\n\n if (domain) {\n cookieArray.push(\n CookieParameter.Domain + CookieParameter.KeyValueDelimiter + domain,\n );\n }\n\n return cookieArray.join(CookieParameter.PairsDelimiter);\n }\n}\n\nexport { VisitorCodeManager as KameleoonVisitorCodeManager };\n"],"mappings":"kNAQA,KAAM,CAAAA,kBAA0D,CACvDC,OAAOA,CAACC,CAAW,CAAiB,CACzC,KAAM,CAAAC,CAAM,CAAGC,QAAQ,CAACD,MAAM,CAAC,MAE3B,CAAAA,CAAM,CACDE,iCAAc,CAACC,cAAc,CAACH,CAAM,CAAED,CAAG,CAAC,CAG5C,IACT,CAEOK,OAAOA,CAAAC,CAAA,CAMkB,IANjB,CACbC,WAAW,CAAXA,CAAW,CACXC,MAAM,CAANA,CAAM,CACNC,MAAM,CAANA,CAAM,CACNT,GAAG,CAAHA,CAAG,CACHU,IAAI,CAAJA,CACqB,CAAC,CAAAJ,CAAA,CACtB,KAAM,CAAAK,CAAY,CAAG,IAAI,CAACC,eAAe,CAAC,CACxCJ,MAAM,CAANA,CAAM,CACND,WAAW,CAAXA,CAAW,CACXP,GAAG,CAAHA,CAAG,CACHS,MAAM,CAANA,CAAM,CACNC,IAAI,CAAJA,CACF,CAAC,CAAC,CAEFR,QAAQ,CAACD,MAAM,CAAGU,CACpB,CAEQC,eAAeA,CAAAN,CAAA,CAMmB,IANlB,CACtBE,MAAM,CAANA,CAAM,CACND,WAAW,CAAXA,CAAW,CACXE,MAAM,CAANA,CAAM,CACNT,GAAG,CAAHA,CAAG,CACHU,IAAI,CAAJA,CAC6B,CAAC,CAAAJ,CAAA,CAC9B,KAAM,CAAAO,CAAW,CAAG,CAClBb,CAAG,CAAGc,0BAAe,CAACC,iBAAiB,CAAGR,CAAW,CACrDO,0BAAe,CAACE,MAAM,CAAGF,0BAAe,CAACC,iBAAiB,CAAGN,CAAM,CACnEK,0BAAe,CAACG,IAAI,CAAGH,0BAAe,CAACC,iBAAiB,CAAGL,CAAI,CAChE,CAQD,MANI,CAAAF,CAAM,EACRK,CAAW,CAACK,IAAI,CACdJ,0BAAe,CAACK,MAAM,CAAGL,0BAAe,CAACC,iBAAiB,CAAGP,CAC/D,CAAC,CAGIK,CAAW,CAACO,IAAI,CAACN,0BAAe,CAACO,cAAc,CACxD,CACF,CAACC,OAAA,CAAAC,2BAAA,CAAAzB,kBAAA","ignoreList":[]}