@kameleoon/javascript-sdk 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,32 @@
1
1
  # Change Log
2
2
 
3
+ ## 3.1.0 (2024-04-19)
4
+
5
+ ### Features
6
+
7
+ - New [Likelihood to Convert](https://developers.kameleoon.com/feature-management-and-experimentation/using-visit-history-in-feature-flags-and-experiments/#predefined-targeting-conditions) targeting condition.
8
+ - [`getRemoteVisitorData`](https://developers.kameleoon.com/feature-management-and-experimentation/web-sdks/js-sdk#getremotevisitordata) method now accepts new boolean parameter `isUniqueIdentifier` to obtain all linked visitors data when working with [Cross-device experimentation](https://developers.kameleoon.com/feature-management-and-experimentation/web-sdks/js-sdk#cross-device-experimentation)
9
+ - Miscellaneous [Cross-device experimentation](https://developers.kameleoon.com/core-concepts/cross-device-experimentation) improvements
10
+
11
+ ### Patch Changes
12
+
13
+ - Improved visits data collection logic
14
+ - Fixed the issue with when `_` variable was transformed to duplicate identifier `a` causing `TypeError`
15
+ - Kameleoon network request headers are now properly used
16
+ - `Browser` condition could throw an error when the browser version wasn't specified on Kameleoon Platform
17
+ - `Geolocation` condition is now case insensitive
18
+ - SDK Core version is no more sent with tracking
19
+ - Updated dependencies
20
+ - @kameleoon/javascript-sdk-core@4.1.0
21
+
22
+ ## 3.0.1 (2024-02-21)
23
+
24
+ ### Patch Changes
25
+
26
+ - Added support for additional Data API servers across the world for even faster network requests
27
+ - Updated dependencies
28
+ - @kameleoon/javascript-sdk-core@4.0.1
29
+
3
30
  ## 3.0.0 (2024-02-16)
4
31
 
5
32
  ### Breaking Changes
@@ -1,2 +1,2 @@
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");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),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===d||void 0===d?void 0:d.storage)||new _storage.DataStorage,g=(null===d||void 0===d?void 0:d.eventSource)||new _eventSource.KameleoonEventSource,h=(null===d||void 0===d?void 0:d.visitorCodeManager)||new _visitorCodeManager.KameleoonVisitorCodeManager,i=new _javascriptSdkCore.VisitorCodeManager,j=new _requester.RequestDispatcher((null===c||void 0===c?void 0:c.requestTimeout)||_javascriptSdkCore.DEFAULT_REQUEST_TIMEOUT);super({siteCode:b,configuration:c,internalConfiguration:{externalStorage:f,externalEventSource:g,externalVisitorCodeManager:i,externalRequestDispatcher:j,externalPackageInfo:e||{type:_javascriptSdkCore.SdkLanguageType.JAVASCRIPT,version:"3.0.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.domain,this.internalVisitorCodeManager=i,this.externalVisitorCodeManager=h}async initialize(a){return super.initialize(a)}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;
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");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),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===d||void 0===d?void 0:d.storage)||new _storage.DataStorage,g=(null===d||void 0===d?void 0:d.eventSource)||new _eventSource.KameleoonEventSource,h=(null===d||void 0===d?void 0:d.visitorCodeManager)||new _visitorCodeManager.KameleoonVisitorCodeManager,i=new _javascriptSdkCore.VisitorCodeManager,j=new _requester.RequestDispatcher((null===c||void 0===c?void 0:c.requestTimeout)||_javascriptSdkCore.DEFAULT_REQUEST_TIMEOUT);super({siteCode:b,configuration:c,internalConfiguration:{externalStorage:f,externalEventSource:g,externalVisitorCodeManager:i,externalRequestDispatcher:j,externalPackageInfo:e||{type:_javascriptSdkCore.SdkLanguageType.JAVASCRIPT,version:"3.1.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.domain,this.internalVisitorCodeManager=i,this.externalVisitorCodeManager=h}async initialize(a){return super.initialize(a)}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
2
  //# sourceMappingURL=kameleoonClient.js.map
@@ -3,7 +3,7 @@ export declare class RequestDispatcher implements IExternalRequestDispatcher {
3
3
  private timeout;
4
4
  constructor(timeout: number);
5
5
  track({ url, headers, body, }: TrackParametersType): Promise<boolean>;
6
- getClientConfiguration(url: string, _headers: HeadersType): Promise<JSONType>;
6
+ getClientConfiguration(url: string, headers: HeadersType): Promise<JSONType>;
7
7
  getRemoteData(url: string): Promise<JSONType>;
8
8
  private sendRequest;
9
9
  }
package/dist/requester.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var _javascriptSdkCore=require("@kameleoon/javascript-sdk-core");Object.defineProperty(exports,"__esModule",{value:!0}),exports.RequestDispatcher=void 0;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),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 RequestDispatcher{constructor(a){_defineProperty(this,"timeout",void 0),this.timeout=a}async track(a){let{url:b,headers:c,body:d}=a;const e=await this.sendRequest(b,{method:_javascriptSdkCore.HttpMethod.Post,headers:c,body:d});if(e.ok)return!0;for(let e=0;e<_javascriptSdkCore.NUMBER_OF_RETRIES;e++){await new Promise(a=>setTimeout(a,_javascriptSdkCore.RETRIES_DELAY));const a=await this.sendRequest(b,{method:_javascriptSdkCore.HttpMethod.Post,headers:c,body:d});if(a.ok)return!0}return!1}async getClientConfiguration(a){const b=_javascriptSdkCore.NUMBER_OF_RETRIES+1;for(let c=0;c<b;c++)try{const b=await this.sendRequest(a,{method:_javascriptSdkCore.HttpMethod.Get});if(b.ok)return b.json()}catch(a){throw new _javascriptSdkCore.KameleoonError(_javascriptSdkCore.KameleoonException.ClientConfiguration)}return null}async getRemoteData(a){const b=await this.sendRequest(a,{method:_javascriptSdkCore.HttpMethod.Get});if(b.ok)return b.json();throw new _javascriptSdkCore.KameleoonError(_javascriptSdkCore.KameleoonException.RemoteData)}async sendRequest(a,b){const c=new AbortController,d=_objectSpread(_objectSpread({},b),{},{signal:c.signal}),e=setTimeout(()=>c.abort(),this.timeout),f=await fetch(a,d);return clearTimeout(e),f}}exports.RequestDispatcher=RequestDispatcher;
1
+ "use strict";var _javascriptSdkCore=require("@kameleoon/javascript-sdk-core");Object.defineProperty(exports,"__esModule",{value:!0}),exports.RequestDispatcher=void 0;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),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 RequestDispatcher{constructor(a){_defineProperty(this,"timeout",void 0),this.timeout=a}async track(a){let{url:b,headers:c,body:d}=a;const e=await this.sendRequest(b,{method:_javascriptSdkCore.HttpMethod.Post,headers:c,body:d});if(e.ok)return!0;for(let e=0;e<_javascriptSdkCore.NUMBER_OF_RETRIES;e++){await new Promise(a=>setTimeout(a,_javascriptSdkCore.RETRIES_DELAY));const a=await this.sendRequest(b,{method:_javascriptSdkCore.HttpMethod.Post,headers:c,body:d});if(a.ok)return!0}return!1}async getClientConfiguration(a,b){const c=_javascriptSdkCore.NUMBER_OF_RETRIES+1;for(let d=0;d<c;d++)try{const c=await this.sendRequest(a,{method:_javascriptSdkCore.HttpMethod.Get,headers:b});if(c.ok)return c.json()}catch(a){throw new _javascriptSdkCore.KameleoonError(_javascriptSdkCore.KameleoonException.ClientConfiguration)}return null}async getRemoteData(a){const b=await this.sendRequest(a,{method:_javascriptSdkCore.HttpMethod.Get});if(b.ok)return b.json();throw new _javascriptSdkCore.KameleoonError(_javascriptSdkCore.KameleoonException.RemoteData)}async sendRequest(a,b){const c=new AbortController,d=_objectSpread(_objectSpread({},b),{},{signal:c.signal}),e=setTimeout(()=>c.abort(),this.timeout),f=await fetch(a,d);return clearTimeout(e),f}}exports.RequestDispatcher=RequestDispatcher;
2
2
  //# sourceMappingURL=requester.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"requester.js","names":["_javascriptSdkCore","require","Object","defineProperty","exports","value","RequestDispatcher","ownKeys","a","b","c","keys","getOwnPropertySymbols","d","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","configurable","writable","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","constructor","timeout","track","url","headers","body","response","sendRequest","method","HttpMethod","Post","ok","i","NUMBER_OF_RETRIES","Promise","resolve","setTimeout","RETRIES_DELAY","retryResponse","getClientConfiguration","requests","Get","json","err","KameleoonError","KameleoonException","ClientConfiguration","getRemoteData","RemoteData","params","controller","AbortController","allParams","signal","timeoutId","abort","fetch","clearTimeout"],"sources":["../src/requester.ts"],"sourcesContent":["import {\n JSONType,\n HttpMethod,\n TrackParametersType,\n IExternalRequestDispatcher,\n KameleoonError,\n KameleoonException,\n HeadersType,\n RETRIES_DELAY,\n NUMBER_OF_RETRIES,\n} from '@kameleoon/javascript-sdk-core';\n\nexport class RequestDispatcher implements IExternalRequestDispatcher {\n private timeout: number;\n\n constructor(timeout: number) {\n this.timeout = timeout;\n }\n\n public async track({\n url,\n headers,\n body,\n }: TrackParametersType): Promise<boolean> {\n const response = await this.sendRequest(url, {\n method: HttpMethod.Post,\n headers,\n body,\n });\n\n if (response.ok) {\n return true;\n }\n\n for (let i = 0; i < NUMBER_OF_RETRIES; i++) {\n await new Promise((resolve) => setTimeout(resolve, RETRIES_DELAY));\n\n const retryResponse = await this.sendRequest(url, {\n method: HttpMethod.Post,\n headers,\n body,\n });\n\n if (retryResponse.ok) {\n return true;\n }\n }\n\n return false;\n }\n\n public async getClientConfiguration(\n url: string,\n // --- Note ---\n // https://project.kameleoon.net/issues/25005\n _headers: HeadersType,\n ): Promise<JSONType> {\n // --- Note ---\n // Initial request + NUMBER_OF_RETRIES\n const requests = NUMBER_OF_RETRIES + 1;\n\n for (let i = 0; i < requests; i++) {\n try {\n const response = await this.sendRequest(url, {\n method: HttpMethod.Get,\n // headers\n });\n\n if (response.ok) {\n return response.json();\n }\n } catch (err) {\n throw new KameleoonError(KameleoonException.ClientConfiguration);\n }\n }\n\n return null;\n }\n\n public async getRemoteData(url: string): Promise<JSONType> {\n const response = await this.sendRequest(url, {\n method: HttpMethod.Get,\n });\n\n if (response.ok) {\n return response.json();\n }\n\n throw new KameleoonError(KameleoonException.RemoteData);\n }\n\n private async sendRequest(\n url: string,\n params: RequestInit,\n ): Promise<Response> {\n const controller = new AbortController();\n\n const allParams = {\n ...params,\n signal: controller.signal,\n };\n\n const timeoutId = setTimeout(() => controller.abort(), this.timeout);\n\n const response = await fetch(url, allParams);\n\n clearTimeout(timeoutId);\n\n return response;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"requester.js","names":["_javascriptSdkCore","require","Object","defineProperty","exports","value","RequestDispatcher","ownKeys","a","b","c","keys","getOwnPropertySymbols","d","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","configurable","writable","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","constructor","timeout","track","url","headers","body","response","sendRequest","method","HttpMethod","Post","ok","i","NUMBER_OF_RETRIES","Promise","resolve","setTimeout","RETRIES_DELAY","retryResponse","getClientConfiguration","requests","Get","json","err","KameleoonError","KameleoonException","ClientConfiguration","getRemoteData","RemoteData","params","controller","AbortController","allParams","signal","timeoutId","abort","fetch","clearTimeout"],"sources":["../src/requester.ts"],"sourcesContent":["import {\n JSONType,\n HttpMethod,\n TrackParametersType,\n IExternalRequestDispatcher,\n KameleoonError,\n KameleoonException,\n HeadersType,\n RETRIES_DELAY,\n NUMBER_OF_RETRIES,\n} from '@kameleoon/javascript-sdk-core';\n\nexport class RequestDispatcher implements IExternalRequestDispatcher {\n private timeout: number;\n\n constructor(timeout: number) {\n this.timeout = timeout;\n }\n\n public async track({\n url,\n headers,\n body,\n }: TrackParametersType): Promise<boolean> {\n const response = await this.sendRequest(url, {\n method: HttpMethod.Post,\n headers,\n body,\n });\n\n if (response.ok) {\n return true;\n }\n\n for (let i = 0; i < NUMBER_OF_RETRIES; i++) {\n await new Promise((resolve) => setTimeout(resolve, RETRIES_DELAY));\n\n const retryResponse = await this.sendRequest(url, {\n method: HttpMethod.Post,\n headers,\n body,\n });\n\n if (retryResponse.ok) {\n return true;\n }\n }\n\n return false;\n }\n\n public async getClientConfiguration(\n url: string,\n headers: HeadersType,\n ): Promise<JSONType> {\n // --- Note ---\n // Initial request + NUMBER_OF_RETRIES\n const requests = NUMBER_OF_RETRIES + 1;\n\n for (let i = 0; i < requests; i++) {\n try {\n const response = await this.sendRequest(url, {\n method: HttpMethod.Get,\n headers,\n });\n\n if (response.ok) {\n return response.json();\n }\n } catch (err) {\n throw new KameleoonError(KameleoonException.ClientConfiguration);\n }\n }\n\n return null;\n }\n\n public async getRemoteData(url: string): Promise<JSONType> {\n const response = await this.sendRequest(url, {\n method: HttpMethod.Get,\n });\n\n if (response.ok) {\n return response.json();\n }\n\n throw new KameleoonError(KameleoonException.RemoteData);\n }\n\n private async sendRequest(\n url: string,\n params: RequestInit,\n ): Promise<Response> {\n const controller = new AbortController();\n\n const allParams = {\n ...params,\n signal: controller.signal,\n };\n\n const timeoutId = setTimeout(() => controller.abort(), this.timeout);\n\n const response = await fetch(url, allParams);\n\n clearTimeout(timeoutId);\n\n return response;\n }\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";var _constants=require("./constants");Object.defineProperty(exports,"__esModule",{value:!0}),exports.KameleoonVisitorCodeManager=void 0;class VisitorCodeManager{getData(a){const b=document.cookie;return b?this.getCookieVisitorCode(b,a):""}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}getCookieVisitorCode(a,b){const c=a.split(_constants.CookieParameter.PairsDelimiter).find(a=>{const[c,d]=a.split(_constants.CookieParameter.KeyValueDelimiter);return c===b&&""!==d});if(c){const[a,b]=c.split(_constants.CookieParameter.KeyValueDelimiter);return b}return null}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;
1
+ "use strict";var _constants=require("./constants");Object.defineProperty(exports,"__esModule",{value:!0}),exports.KameleoonVisitorCodeManager=void 0;class VisitorCodeManager{getData(a){const b=document.cookie;return b?this.getCookieVisitorCode(b,a):""}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}getCookieVisitorCode(a,b){const c=a.split(_constants.CookieParameter.PairsDelimiter).find(a=>{const[c,d]=a.split(_constants.CookieParameter.KeyValueDelimiter);return c===b&&""!==d});if(c){const[_,a]=c.split(_constants.CookieParameter.KeyValueDelimiter);return a}return null}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
2
  //# sourceMappingURL=visitorCodeManager.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kameleoon/javascript-sdk",
3
- "version": "3.0.0",
3
+ "version": "3.1.0",
4
4
  "description": "Kameleoon JavaScript SDK",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -35,7 +35,7 @@
35
35
  ],
36
36
  "license": "ISC",
37
37
  "dependencies": {
38
- "@kameleoon/javascript-sdk-core": "4.0.0"
38
+ "@kameleoon/javascript-sdk-core": "4.1.0"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@types/crypto-js": "^4.1.1",