@kameleoon/javascript-sdk 3.3.0 → 3.4.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,30 @@
1
1
  # Change Log
2
2
 
3
+ ## 3.4.1 (2024-07-12)
4
+
5
+ ### Patch Changes
6
+
7
+ - `ClientConfiguration` and `RemoteData` Kameleoon Exceptions are now more informative
8
+ - [`getEngineTrackingCode`](https://developers.kameleoon.com/feature-management-and-experimentation/web-sdks/js-sdk/#getenginetrackingcode) output code is now correctly overrides experiment variation assigned by JS Script
9
+ - Updated dependencies
10
+ - @kameleoon/javascript-sdk-core@4.4.1
11
+
12
+ ## 3.4.0 (2024-06-21)
13
+
14
+ ### Features
15
+
16
+ - Added new [`networkDomain`](https://developers.kameleoon.com/feature-management-and-experimentation/web-sdks/js-sdk/#1-initializing-the-kameleoon-client) parameter in `SDKConfigurationType` for configuring custom network domain for all outgoing requests.
17
+ - [`SDKConfigurationType`](https://developers.kameleoon.com/feature-management-and-experimentation/web-sdks/js-sdk/#1-initializing-the-kameleoon-client) parameter `domain` was deprecated and will be removed in the next major version. Instead new `cookieDomain` is available.
18
+ - Added new optional [External Dependency](https://developers.kameleoon.com/feature-management-and-experimentation/web-sdks/js-sdk#external-dependencies) - [Requester](https://developers.kameleoon.com/feature-management-and-experimentation/web-sdks/js-sdk#requester) for implementing custom network request handler
19
+ - Added new `KameleoonUtils` methods:
20
+ - [`getCookieValue`](https://developers.kameleoon.com/feature-management-and-experimentation/web-sdks/js-sdk#getcookievalue) for extracting cookie value from cookie string
21
+ - [`simulateSuccessRequest`](https://developers.kameleoon.com/feature-management-and-experimentation/web-sdks/js-sdk#simulatesuccessrequest) for mocking successful network requests when implementing custom `Requester`
22
+
23
+ ### Patch Changes
24
+
25
+ - Updated dependencies
26
+ - @kameleoon/javascript-sdk-core@4.4.0
27
+
3
28
  ## 3.3.0 (2024-05-24)
4
29
 
5
30
  ### Features
@@ -8,17 +8,17 @@ export declare class KameleoonClient extends KameleoonCore {
8
8
  private domain?;
9
9
  private internalVisitorCodeManager;
10
10
  private externalVisitorCodeManager;
11
- constructor({ siteCode, configuration, externals, _internals }: SDKParameters);
11
+ constructor({ siteCode, configuration, externals, _internals, }: SDKParameters);
12
12
  /**
13
13
  * @method initialize - an asynchronous method for KameleoonClient initialization by fetching Kameleoon SDK related data from server or by retrieving data from local source if data is up-to-date or update interval has not been reached
14
14
  * @param {boolean | undefined} useCache - optional parameter for activating SDK offline mode, if `true` is passed failed polls will not return error and will use cached data if such data is available, default value is `false`. Note: if offline mode is on, SDK will still try to retrieve the latest data.
15
15
  * @returns {Promise<boolean>} Promise resolved into boolean field indicating success or fail
16
16
  * @throws `KameleoonError` with one of the following `type` s:
17
17
  *
18
- * - `KameleoonException.StorageWrite` Couldn't update storage data
18
+ * - `KameleoonException.StorageWrite` - Couldn't update storage data
19
19
  * - `KameleoonException.StorageRead` - Couldn't read storage data
20
- * - `KameleoonException.ClientConfiguration` Couldn't retrieve client configuration from Kameleoon Api
21
- * - `KameleoonException.MaximumRetriesReached` Maximum retries reached, request failed
20
+ * - `KameleoonException.ClientConfiguration` - Couldn't retrieve client configuration from Kameleoon Api
21
+ * - `KameleoonException.MaximumRetriesReached` - Maximum retries reached, request failed
22
22
  */
23
23
  initialize(useCache?: boolean): Promise<boolean>;
24
24
  /**
@@ -28,7 +28,7 @@ export declare class KameleoonClient extends KameleoonCore {
28
28
  * @throws `KameleoonError` with one of the following `type` s:
29
29
  *
30
30
  * - `KameleoonException.VisitorCodeMaxLength` - The visitor code length was exceeded
31
- * - `KameleoonException.VisitorCodeEmpty` The visitor code is empty
31
+ * - `KameleoonException.VisitorCodeEmpty` - The visitor code is empty
32
32
  */
33
33
  getVisitorCode(defaultVisitorCode?: string): string;
34
34
  /**
@@ -41,7 +41,7 @@ export declare class KameleoonClient extends KameleoonCore {
41
41
  * @throws `KameleoonError` with one of the following `type` s:
42
42
  *
43
43
  * - `KameleoonException.VisitorCodeMaxLength` - The visitor code length was exceeded
44
- * - `KameleoonException.VisitorCodeEmpty` The visitor code is empty
44
+ * - `KameleoonException.VisitorCodeEmpty` - The visitor code is empty
45
45
  */
46
46
  setLegalConsent(visitorCode: string, consent: boolean): void;
47
47
  }
@@ -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.3.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.requester)||new _requester.Requester,h=(null===d||void 0===d?void 0:d.eventSource)||new _eventSource.KameleoonEventSource,i=new _javascriptSdkCore.VisitorCodeManager,j=(null===d||void 0===d?void 0:d.visitorCodeManager)||new _visitorCodeManager.KameleoonVisitorCodeManager;super({siteCode:b,configuration:c,internalConfiguration:{externalStorage:f,externalRequester:g,externalEventSource:h,externalVisitorCodeManager:i,externalPackageInfo:e||{type:_javascriptSdkCore.SdkLanguageType.JAVASCRIPT,version:"3.4.1"}}}),_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)||(null===c||void 0===c?void 0:c.domain),this.internalVisitorCodeManager=i,this.externalVisitorCodeManager=j}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
@@ -1 +1 @@
1
- {"version":3,"file":"kameleoonClient.js","names":["KameleoonClient","KameleoonCore","constructor","a","siteCode","configuration","externals","_internals","storage","DataStorage","eventSource","KameleoonEventSource","externalVisitorCodeManager","visitorCodeManager","KameleoonVisitorCodeManager","VisitorCodeManager","requestDispatcher","RequestDispatcher","requestTimeout","DEFAULT_REQUEST_TIMEOUT","internalConfiguration","externalStorage","externalEventSource","externalRequestDispatcher","externalPackageInfo","type","SdkLanguageType","JAVASCRIPT","version","_defineProperty","domain","internalVisitorCodeManager","initialize","useCache","getVisitorCode","defaultVisitorCode","getData","key","setData","parameters","_objectSpread","setLegalConsent","visitorCode","consent","setUserConsent","exports"],"sources":["../src/kameleoonClient.ts"],"sourcesContent":["import {\n SdkLanguageType,\n KameleoonCore,\n DEFAULT_REQUEST_TIMEOUT,\n VisitorCodeManager,\n IVisitorCodeManager,\n SetDataCallbackParametersType,\n} from '@kameleoon/javascript-sdk-core';\nimport { RequestDispatcher } from './requester';\nimport { DataStorage } from './storage';\nimport { KameleoonEventSource } from './eventSource';\nimport { KameleoonVisitorCodeManager } from './visitorCodeManager';\nimport { IExternalVisitorCodeManager, SDKParameters } from './types';\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({ siteCode, configuration, externals, _internals }: SDKParameters) {\n const storage = externals?.storage || new DataStorage();\n const eventSource = externals?.eventSource || new KameleoonEventSource();\n const externalVisitorCodeManager =\n externals?.visitorCodeManager || new KameleoonVisitorCodeManager();\n\n const visitorCodeManager = new VisitorCodeManager();\n const requestDispatcher = new RequestDispatcher(\n configuration?.requestTimeout || DEFAULT_REQUEST_TIMEOUT,\n );\n\n super({\n siteCode,\n configuration,\n internalConfiguration: {\n externalStorage: storage,\n externalEventSource: eventSource,\n externalVisitorCodeManager: visitorCodeManager,\n externalRequestDispatcher: requestDispatcher,\n externalPackageInfo: _internals || {\n type: SdkLanguageType.JAVASCRIPT,\n version: process.env.npm_package_version as string,\n },\n },\n });\n\n this.domain = configuration?.domain;\n this.internalVisitorCodeManager = visitorCodeManager;\n this.externalVisitorCodeManager = externalVisitorCodeManager;\n }\n\n /**\n * @method initialize - an asynchronous method for KameleoonClient initialization by fetching Kameleoon SDK related data from server or by retrieving data from local source if data is up-to-date or update interval has not been reached\n * @param {boolean | undefined} useCache - optional parameter for activating SDK offline mode, if `true` is passed failed polls will not return error and will use cached data if such data is available, default value is `false`. Note: if offline mode is on, SDK will still try to retrieve the latest data.\n * @returns {Promise<boolean>} Promise resolved into boolean field indicating success or fail\n * @throws `KameleoonError` with one of the following `type` s:\n *\n * - `KameleoonException.StorageWrite` Couldn't update storage data\n * - `KameleoonException.StorageRead` - Couldn't read storage data\n * - `KameleoonException.ClientConfiguration` Couldn't retrieve client configuration from Kameleoon Api\n * - `KameleoonException.MaximumRetriesReached` Maximum retries reached, request failed\n */\n public async initialize(useCache?: boolean): Promise<boolean> {\n return super.initialize(useCache);\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":"m6CAkBO,KAAM,CAAAA,eAAe,QAAS,CAAAC,gCAAc,CAKjDC,WAAWA,CAAAC,CAAA,CAAoE,IAAnE,CAAEC,QAAQ,CAARA,CAAQ,CAAEC,aAAa,CAAbA,CAAa,CAAEC,SAAS,CAATA,CAAS,CAAEC,UAAU,CAAVA,CAA0B,CAAC,CAAAJ,CAAA,MACrE,CAAAK,CAAO,CAAG,QAAAF,CAAS,WAATA,CAAS,QAATA,CAAS,CAAEE,OAAO,GAAI,GAAI,CAAAC,oBAAa,CACjDC,CAAW,CAAG,QAAAJ,CAAS,WAATA,CAAS,QAATA,CAAS,CAAEI,WAAW,GAAI,GAAI,CAAAC,iCAAsB,CAClEC,CAA0B,CAC9B,QAAAN,CAAS,WAATA,CAAS,QAATA,CAAS,CAAEO,kBAAkB,GAAI,GAAI,CAAAC,+CAA6B,CAE9DD,CAAkB,CAAG,GAAI,CAAAE,qCAAoB,CAC7CC,CAAiB,CAAG,GAAI,CAAAC,4BAAiB,CAC7C,QAAAZ,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAEa,cAAc,GAAIC,0CACnC,CAAC,CAED,KAAK,CAAC,CACJf,QAAQ,CAARA,CAAQ,CACRC,aAAa,CAAbA,CAAa,CACbe,qBAAqB,CAAE,CACrBC,eAAe,CAAEb,CAAO,CACxBc,mBAAmB,CAAEZ,CAAW,CAChCE,0BAA0B,CAAEC,CAAkB,CAC9CU,yBAAyB,CAAEP,CAAiB,CAC5CQ,mBAAmB,CAAEjB,CAAU,EAAI,CACjCkB,IAAI,CAAEC,kCAAe,CAACC,UAAU,CAChCC,OAAO,QACT,CACF,CACF,CAAC,CAAC,CAAAC,eAAA,uBAAAA,eAAA,2CAAAA,eAAA,2CAEF,IAAI,CAACC,MAAM,QAAGzB,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAEyB,MAAM,CACnC,IAAI,CAACC,0BAA0B,CAAGlB,CAAkB,CACpD,IAAI,CAACD,0BAA0B,CAAGA,CACpC,CAaA,KAAa,CAAAoB,UAAUA,CAACC,CAAkB,CAAoB,CAC5D,MAAO,MAAK,CAACD,UAAU,CAACC,CAAQ,CAClC,CAWOC,cAAcA,CAACC,CAA2B,CAAU,CAazD,MAZA,KAAI,CAACJ,0BAA0B,CAACK,OAAO,CAAIC,CAAW,EACpD,IAAI,CAACzB,0BAA0B,CAACwB,OAAO,CAACC,CAAG,CAAC,CAE9C,IAAI,CAACN,0BAA0B,CAACO,OAAO,CACrCC,CAAyC,EACtC,CACH,IAAI,CAAC3B,0BAA0B,CAAC0B,OAAO,CAAAE,aAAA,CAAAA,aAAA,IAClCD,CAAU,MACbT,MAAM,CAAE,IAAI,CAACA,MAAM,EACpB,CACH,CAAC,CAEM,IAAI,CAACC,0BAA0B,CAACG,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,CAAC3B,0BAA0B,CAAC0B,OAAO,CAAAE,aAAA,CAAAA,aAAA,IAClCD,CAAU,MACbT,MAAM,CAAE,IAAI,CAACA,MAAM,EACpB,CACH,CACF,CAAC,CACH,CACF,CAACe,OAAA,CAAA7C,eAAA,CAAAA,eAAA"}
1
+ {"version":3,"file":"kameleoonClient.js","names":["KameleoonClient","KameleoonCore","constructor","a","siteCode","configuration","externals","_internals","storage","DataStorage","requester","Requester","eventSource","KameleoonEventSource","visitorCodeManager","VisitorCodeManager","externalVisitorCodeManager","KameleoonVisitorCodeManager","internalConfiguration","externalStorage","externalRequester","externalEventSource","externalPackageInfo","type","SdkLanguageType","JAVASCRIPT","version","_defineProperty","domain","cookieDomain","internalVisitorCodeManager","initialize","useCache","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';\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 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 super({\n siteCode,\n configuration,\n internalConfiguration: {\n externalStorage: storage,\n externalRequester: requester,\n externalEventSource: eventSource,\n externalVisitorCodeManager: visitorCodeManager,\n externalPackageInfo: _internals || {\n type: SdkLanguageType.JAVASCRIPT,\n version: process.env.npm_package_version as string,\n },\n },\n });\n\n this.domain = configuration?.cookieDomain || configuration?.domain;\n this.internalVisitorCodeManager = visitorCodeManager;\n this.externalVisitorCodeManager = externalVisitorCodeManager;\n }\n\n /**\n * @method initialize - an asynchronous method for KameleoonClient initialization by fetching Kameleoon SDK related data from server or by retrieving data from local source if data is up-to-date or update interval has not been reached\n * @param {boolean | undefined} useCache - optional parameter for activating SDK offline mode, if `true` is passed failed polls will not return error and will use cached data if such data is available, default value is `false`. Note: if offline mode is on, SDK will still try to retrieve the latest data.\n * @returns {Promise<boolean>} Promise resolved into boolean field indicating success or fail\n * @throws `KameleoonError` with one of the following `type` s:\n *\n * - `KameleoonException.StorageWrite` - Couldn't update storage data\n * - `KameleoonException.StorageRead` - Couldn't read storage data\n * - `KameleoonException.ClientConfiguration` - Couldn't retrieve client configuration from Kameleoon Api\n * - `KameleoonException.MaximumRetriesReached` - Maximum retries reached, request failed\n */\n public async initialize(useCache?: boolean): Promise<boolean> {\n return super.initialize(useCache);\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":"m6CAiBO,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,CAAO,CAAG,QAAAF,CAAS,WAATA,CAAS,QAATA,CAAS,CAAEE,OAAO,GAAI,GAAI,CAAAC,oBAAa,CACjDC,CAAS,CAAG,QAAAJ,CAAS,WAATA,CAAS,QAATA,CAAS,CAAEI,SAAS,GAAI,GAAI,CAAAC,oBAAW,CACnDC,CAAW,CAAG,QAAAN,CAAS,WAATA,CAAS,QAATA,CAAS,CAAEM,WAAW,GAAI,GAAI,CAAAC,iCAAsB,CAClEC,CAAkB,CAAG,GAAI,CAAAC,qCAAoB,CAC7CC,CAA0B,CAC9B,QAAAV,CAAS,WAATA,CAAS,QAATA,CAAS,CAAEQ,kBAAkB,GAAI,GAAI,CAAAG,+CAA6B,CAEpE,KAAK,CAAC,CACJb,QAAQ,CAARA,CAAQ,CACRC,aAAa,CAAbA,CAAa,CACba,qBAAqB,CAAE,CACrBC,eAAe,CAAEX,CAAO,CACxBY,iBAAiB,CAAEV,CAAS,CAC5BW,mBAAmB,CAAET,CAAW,CAChCI,0BAA0B,CAAEF,CAAkB,CAC9CQ,mBAAmB,CAAEf,CAAU,EAAI,CACjCgB,IAAI,CAAEC,kCAAe,CAACC,UAAU,CAChCC,OAAO,QACT,CACF,CACF,CAAC,CAAC,CAAAC,eAAA,uBAAAA,eAAA,2CAAAA,eAAA,2CAEF,IAAI,CAACC,MAAM,CAAG,QAAAvB,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAEwB,YAAY,WAAIxB,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAEuB,MAAM,EAClE,IAAI,CAACE,0BAA0B,CAAGhB,CAAkB,CACpD,IAAI,CAACE,0BAA0B,CAAGA,CACpC,CAaA,KAAa,CAAAe,UAAUA,CAACC,CAAkB,CAAoB,CAC5D,MAAO,MAAK,CAACD,UAAU,CAACC,CAAQ,CAClC,CAWOC,cAAcA,CAACC,CAA2B,CAAU,CAazD,MAZA,KAAI,CAACJ,0BAA0B,CAACK,OAAO,CAAIC,CAAW,EACpD,IAAI,CAACpB,0BAA0B,CAACmB,OAAO,CAACC,CAAG,CAAC,CAE9C,IAAI,CAACN,0BAA0B,CAACO,OAAO,CACrCC,CAAyC,EACtC,CACH,IAAI,CAACtB,0BAA0B,CAACqB,OAAO,CAAAE,aAAA,CAAAA,aAAA,IAClCD,CAAU,MACbV,MAAM,CAAE,IAAI,CAACA,MAAM,EACpB,CACH,CAAC,CAEM,IAAI,CAACE,0BAA0B,CAACG,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,CAACtB,0BAA0B,CAACqB,OAAO,CAAAE,aAAA,CAAAA,aAAA,IAClCD,CAAU,MACbV,MAAM,CAAE,IAAI,CAACA,MAAM,EACpB,CACH,CACF,CAAC,CACH,CACF,CAACgB,OAAA,CAAA5C,eAAA,CAAAA,eAAA"}
@@ -1,9 +1,4 @@
1
- import { JSONType, TrackParametersType, IExternalRequestDispatcher, HeadersType } from '@kameleoon/javascript-sdk-core';
2
- export declare class RequestDispatcher implements IExternalRequestDispatcher {
3
- private timeout;
4
- constructor(timeout: number);
5
- track({ url, headers, body, }: TrackParametersType): Promise<boolean>;
6
- getClientConfiguration(url: string, headers: HeadersType): Promise<JSONType>;
7
- getRemoteData(url: string): Promise<JSONType>;
8
- private sendRequest;
1
+ import { RequestType, IExternalRequester, KameleoonResponseType, SendRequestParametersType } from '@kameleoon/javascript-sdk-core';
2
+ export declare class Requester implements IExternalRequester {
3
+ sendRequest({ url, parameters, }: SendRequestParametersType<RequestType>): Promise<KameleoonResponseType>;
9
4
  }
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,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;
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
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 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":["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"}
package/dist/storage.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  import { IExternalStorage } from '@kameleoon/javascript-sdk-core';
2
2
  export declare class DataStorage<T> implements IExternalStorage<T> {
3
+ private visitorCodeManager?;
3
4
  read(key: string): T | null;
4
5
  write(key: string, data: T): void;
6
+ private getEngineConsentData;
5
7
  }
package/dist/storage.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.DataStorage=void 0;class DataStorage{read(a){const b=localStorage.getItem(a);return b?JSON.parse(b):null}write(a,b){localStorage.setItem(a,JSON.stringify(b))}}exports.DataStorage=DataStorage;
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),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
2
  //# sourceMappingURL=storage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","names":["DataStorage","read","key","data","localStorage","getItem","JSON","parse","write","setItem","stringify","exports"],"sources":["../src/storage.ts"],"sourcesContent":["import { IExternalStorage } from '@kameleoon/javascript-sdk-core';\n\n// --- Note ---\n// Named `DataStorage` to avoid collision with `Storage` from `window` API\nexport class DataStorage<T> implements IExternalStorage<T> {\n public read(key: string): T | null {\n const data = localStorage.getItem(key);\n\n if (!data) {\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"],"mappings":"+FAIO,KAAM,CAAAA,WAA8C,CAClDC,IAAIA,CAACC,CAAW,CAAY,CACjC,KAAM,CAAAC,CAAI,CAAGC,YAAY,CAACC,OAAO,CAACH,CAAG,CAAC,CAAC,MAElC,CAAAC,CAAI,CAIFG,IAAI,CAACC,KAAK,CAACJ,CAAI,CAAC,CAHd,IAIX,CAEOK,KAAKA,CAACN,CAAW,CAAEC,CAAO,CAAQ,CACvCC,YAAY,CAACK,OAAO,CAACP,CAAG,CAAEI,IAAI,CAACI,SAAS,CAACP,CAAI,CAAC,CAChD,CACF,CAACQ,OAAA,CAAAX,WAAA,CAAAA,WAAA"}
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":"utBASO,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"}
package/dist/types.d.ts CHANGED
@@ -1,11 +1,13 @@
1
- import { ExternalPackageInfoType, IExternalEventSource, IExternalStorage, SDKConfigurationType } from '@kameleoon/javascript-sdk-core';
1
+ import { ExternalPackageInfoType, IExternalEventSource, IExternalRequester, IExternalStorage, SDKConfigurationType } 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
+ * @param {IExternalRequester | undefined} requester - external requester implementation
6
7
  * */
7
8
  export type ExternalsType = {
8
9
  storage?: IExternalStorage;
10
+ requester?: IExternalRequester;
9
11
  eventSource?: IExternalEventSource;
10
12
  visitorCodeManager?: IExternalVisitorCodeManager;
11
13
  };
@@ -31,6 +33,11 @@ export interface IExternalVisitorCodeManager {
31
33
  getData: (key: string) => string | null;
32
34
  setData: (params: SetDataParametersType) => void;
33
35
  }
36
+ export type EngineConsentDataType = {
37
+ value?: {
38
+ AB_TESTING?: boolean;
39
+ };
40
+ };
34
41
  export type GetResultCookieParametersType = {
35
42
  visitorCode: string;
36
43
  domain?: string;
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../src/types.ts"],"sourcesContent":["import {\n ExternalPackageInfoType,\n IExternalEventSource,\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 * */\nexport type ExternalsType = {\n storage?: IExternalStorage;\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 * */\nexport type SDKParameters = {\n siteCode: string;\n configuration?: Partial<SDKConfigurationType>;\n externals?: ExternalsType;\n _internals?: ExternalPackageInfoType;\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 GetResultCookieParametersType = {\n visitorCode: string;\n domain?: string;\n key: string;\n maxAge: number;\n path: string;\n};\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../src/types.ts"],"sourcesContent":["import {\n ExternalPackageInfoType,\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 * */\nexport type SDKParameters = {\n siteCode: string;\n configuration?: Partial<SDKConfigurationType>;\n externals?: ExternalsType;\n _internals?: ExternalPackageInfoType;\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":""}
@@ -2,7 +2,6 @@ import { IExternalVisitorCodeManager, SetDataParametersType } from './types';
2
2
  declare class VisitorCodeManager implements IExternalVisitorCodeManager {
3
3
  getData(key: string): string | null;
4
4
  setData({ visitorCode, domain, maxAge, key, path, }: SetDataParametersType): void;
5
- private getCookieVisitorCode;
6
5
  private getResultCookie;
7
6
  }
8
7
  export { VisitorCodeManager as KameleoonVisitorCodeManager };
@@ -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]=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;
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
2
  //# sourceMappingURL=visitorCodeManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"visitorCodeManager.js","names":["_constants","require","Object","defineProperty","exports","value","KameleoonVisitorCodeManager","VisitorCodeManager","getData","key","cookie","document","getCookieVisitorCode","setData","a","visitorCode","domain","maxAge","path","resultCookie","getResultCookie","cookieKey","cookiePair","split","CookieParameter","PairsDelimiter","find","pair","KeyValueDelimiter","_","cookieArray","MaxAge","Path","push","Domain","join"],"sources":["../src/visitorCodeManager.ts"],"sourcesContent":["import {\n GetResultCookieParametersType,\n IExternalVisitorCodeManager,\n SetDataParametersType,\n} from './types';\nimport { CookieParameter } from './constants';\n\nclass VisitorCodeManager implements IExternalVisitorCodeManager {\n public getData(key: string): string | null {\n const cookie = document.cookie;\n\n if (cookie) {\n return this.getCookieVisitorCode(cookie, key);\n }\n\n return '';\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 getCookieVisitorCode(\n cookie: string,\n cookieKey: string,\n ): string | null {\n const findCookieValue = (pair: string): boolean => {\n const [key, value] = pair.split(CookieParameter.KeyValueDelimiter);\n\n return key === cookieKey && value !== '';\n };\n\n const cookiePair = cookie\n .split(CookieParameter.PairsDelimiter)\n .find(findCookieValue);\n\n if (cookiePair) {\n const [_, value] = cookiePair.split(CookieParameter.KeyValueDelimiter);\n\n return value;\n }\n\n return null;\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":"aAKA,IAAAA,UAAA,CAAAC,OAAA,gBAA8CC,MAAA,CAAAC,cAAA,CAAAC,OAAA,eAAAC,KAAA,MAAAD,OAAA,CAAAE,2BAAA,QAE9C,KAAM,CAAAC,kBAA0D,CACvDC,OAAOA,CAACC,CAAW,CAAiB,CACzC,KAAM,CAAAC,CAAM,CAAGC,QAAQ,CAACD,MAAM,CAAC,MAE3B,CAAAA,CAAM,CACD,IAAI,CAACE,oBAAoB,CAACF,CAAM,CAAED,CAAG,CAAC,CAGxC,EACT,CAEOI,OAAOA,CAAAC,CAAA,CAMkB,IANjB,CACbC,WAAW,CAAXA,CAAW,CACXC,MAAM,CAANA,CAAM,CACNC,MAAM,CAANA,CAAM,CACNR,GAAG,CAAHA,CAAG,CACHS,IAAI,CAAJA,CACqB,CAAC,CAAAJ,CAAA,CACtB,KAAM,CAAAK,CAAY,CAAG,IAAI,CAACC,eAAe,CAAC,CACxCJ,MAAM,CAANA,CAAM,CACND,WAAW,CAAXA,CAAW,CACXN,GAAG,CAAHA,CAAG,CACHQ,MAAM,CAANA,CAAM,CACNC,IAAI,CAAJA,CACF,CAAC,CAAC,CAEFP,QAAQ,CAACD,MAAM,CAAGS,CACpB,CAEQP,oBAAoBA,CAC1BF,CAAc,CACdW,CAAiB,CACF,MAOT,CAAAC,CAAU,CAAGZ,CAAM,CACtBa,KAAK,CAACC,0BAAe,CAACC,cAAc,CAAC,CACrCC,IAAI,CARkBC,CAAY,EAAc,CACjD,KAAM,CAAClB,CAAG,CAAEJ,CAAK,CAAC,CAAGsB,CAAI,CAACJ,KAAK,CAACC,0BAAe,CAACI,iBAAiB,CAAC,CAElE,MAAO,CAAAnB,CAAG,GAAKY,CAAS,EAAc,EAAE,GAAZhB,CAC9B,CAIuB,CAAC,CAExB,GAAIiB,CAAU,CAAE,CACd,KAAM,CAACO,CAAC,CAAExB,CAAK,CAAC,CAAGiB,CAAU,CAACC,KAAK,CAACC,0BAAe,CAACI,iBAAiB,CAAC,CAEtE,MAAO,CAAAvB,CACT,CAEA,MAAO,KACT,CAEQe,eAAeA,CAAAN,CAAA,CAMmB,IANlB,CACtBE,MAAM,CAANA,CAAM,CACND,WAAW,CAAXA,CAAW,CACXE,MAAM,CAANA,CAAM,CACNR,GAAG,CAAHA,CAAG,CACHS,IAAI,CAAJA,CAC6B,CAAC,CAAAJ,CAAA,CAC9B,KAAM,CAAAgB,CAAW,CAAG,CAClBrB,CAAG,CAAGe,0BAAe,CAACI,iBAAiB,CAAGb,CAAW,CACrDS,0BAAe,CAACO,MAAM,CAAGP,0BAAe,CAACI,iBAAiB,CAAGX,CAAM,CACnEO,0BAAe,CAACQ,IAAI,CAAGR,0BAAe,CAACI,iBAAiB,CAAGV,CAAI,CAChE,CAQD,MANI,CAAAF,CAAM,EACRc,CAAW,CAACG,IAAI,CACdT,0BAAe,CAACU,MAAM,CAAGV,0BAAe,CAACI,iBAAiB,CAAGZ,CAC/D,CAAC,CAGIc,CAAW,CAACK,IAAI,CAACX,0BAAe,CAACC,cAAc,CACxD,CACF,CAACrB,OAAA,CAAAE,2BAAA,CAAAC,kBAAA"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kameleoon/javascript-sdk",
3
- "version": "3.3.0",
3
+ "version": "3.4.1",
4
4
  "description": "Kameleoon JavaScript SDK",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -9,7 +9,7 @@
9
9
  ],
10
10
  "scripts": {
11
11
  "clean": "rimraf dist && rimraf tsconfig.tsbuildinfo",
12
- "start": "npm run clean && tsc -w",
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
14
  "build:types": "tsc --emitDeclarationOnly",
15
15
  "build:js": "babel src --out-dir dist --extensions \".ts,.tsx\" --source-maps true",
@@ -35,7 +35,7 @@
35
35
  ],
36
36
  "license": "ISC",
37
37
  "dependencies": {
38
- "@kameleoon/javascript-sdk-core": "4.3.0"
38
+ "@kameleoon/javascript-sdk-core": "4.4.1"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@types/crypto-js": "^4.1.1",