@kameleoon/javascript-sdk-core 5.9.0 → 5.9.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 +6 -0
- package/dist/tracking/bodyProvider.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.BodyProvider=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../kameleoonData"),_requester=require("../requester"),_utilities=require("../utilities"),_constants=require("./constants"),_logging=require("../logging");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 BodyProvider{constructor(a){_defineProperty(this,"prng",void 0),_defineProperty(this,"currentSize",0),_defineProperty(this,"resultBody",[]),_defineProperty(this,"hasUserAgent",!1),_defineProperty(this,"trackingVisitors",{}),this.prng=a}getTrackingBody(){const a={body:this.resultBody.join("\n"),hasUserAgent:this.hasUserAgent};return this.cleanup(),a}addData(a){let{visitorCode:b,variationData:c,visitorData:d,userAgent:e,isConsentProvided:f,isMappingIdentifier:g}=a;const h=[],i=this.getVariationDataLines(c),j=this.getVisitorDataLines(d);return h.push(...j
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.BodyProvider=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../kameleoonData"),_requester=require("../requester"),_utilities=require("../utilities"),_constants=require("./constants"),_logging=require("../logging");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 BodyProvider{constructor(a){_defineProperty(this,"prng",void 0),_defineProperty(this,"currentSize",0),_defineProperty(this,"resultBody",[]),_defineProperty(this,"hasUserAgent",!1),_defineProperty(this,"trackingVisitors",{}),this.prng=a}getTrackingBody(){const a={body:this.resultBody.join("\n"),hasUserAgent:this.hasUserAgent};return this.cleanup(),a}addData(a){let{visitorCode:b,variationData:c,visitorData:d,userAgent:e,isConsentProvided:f,isMappingIdentifier:g}=a;const h=[],i=this.getVariationDataLines(c),j=this.getVisitorDataLines(d);return h.push(...i,...j),this.addVisitorTrackingLines({visitorCode:b,lines:h,userAgent:e,isConsentProvided:f,isMappingIdentifier:g})}getVisitorDataLines(a){const b=[];for(const c of a){let a;if(c.data.type===_kameleoonData.KameleoonData.Conversion||c.data.type===_kameleoonData.KameleoonData.PageView){const b=c.data.nonce;b?a=b:(a=_utilities.Utilities.getNonce(this.prng),c.data.nonce=a)}a||(a=_utilities.Utilities.getNonce(this.prng)),b.push(c.url+_requester.UrlParameter.Nonce+a)}return b}getVariationDataLines(a){const b=[];return a.forEach(a=>{b.push(_requester.UrlEventType.Experiment+_requester.UrlParameter.Id+a.experimentId+_requester.UrlParameter.VariationId+a.variationId+_requester.UrlParameter.Nonce+_utilities.Utilities.getNonce(this.prng))}),b}prepareVisitorBody(a){const b=this.trackingVisitors[a];if(!b)return(0,_tsRes.Err)();const{lines:c,userAgent:d,isMappingIdentifier:e,isConsentProvided:f}=b,g=this.getIdentifier(a,e);if(c.length)c.forEach((a,b)=>{c[b]=a+g}),_logging.KameleoonLogger.debug`Sending tracking request for unsent data ${c} of visitor ${a} with given (or not required) consent ${f}`;else if(f){const b=this.getActivityLine();c.push(b+g),_logging.KameleoonLogger.debug`Sending tracking request for activity of visitor ${a} with given consent`}else _logging.KameleoonLogger.debug`No data to send for visitor ${a} with no consent`;d&&c.length&&(c[0]+=_requester.UrlParameter.UserAgent+d,this.hasUserAgent=!0);const h=this.checkSize(c);return h.ok&&this.resultBody.push(...c),h}cleanup(){this.currentSize=0,this.resultBody=[],this.hasUserAgent=!1,this.trackingVisitors={}}checkSize(a){let b=0;return(b+=a.reduce((a,b)=>a+b.length*_constants.SYMBOL_SIZE,0),b+this.currentSize>_constants.MAX_BODY_SIZE)?(0,_tsRes.Err)():(this.currentSize+=b,(0,_tsRes.Ok)())}addVisitorTrackingLines(a){let{visitorCode:b,lines:c,userAgent:d,isConsentProvided:e,isMappingIdentifier:f}=a;return this.trackingVisitors[b]?(d&&(this.trackingVisitors[b].userAgent=d),this.trackingVisitors[b].lines.push(...c)):this.trackingVisitors[b]={isMappingIdentifier:f,isConsentProvided:e,userAgent:d,lines:c},this.prepareVisitorBody(b)}getActivityLine(){return _requester.UrlEventType.Activity+_requester.UrlParameter.Nonce+_utilities.Utilities.getNonce(this.prng)}getIdentifier(a,b){const c=b?_requester.UrlParameter.MappingValue:_requester.UrlParameter.VisitorCode;return c+a}}exports.BodyProvider=BodyProvider;
|