@kameleoon/javascript-sdk-core 4.0.1 → 4.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.
Files changed (108) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/constants.js +1 -1
  3. package/dist/constants.js.map +1 -1
  4. package/dist/kameleoonClient.d.ts +2 -1
  5. package/dist/kameleoonClient.js +1 -1
  6. package/dist/kameleoonClient.js.map +1 -1
  7. package/dist/kameleoonClientInterface.d.ts +2 -2
  8. package/dist/kameleoonClientInterface.js.map +1 -1
  9. package/dist/kameleoonData/applicationVersion.d.ts +0 -9
  10. package/dist/kameleoonData/applicationVersion.js.map +1 -1
  11. package/dist/kameleoonData/browser.d.ts +3 -12
  12. package/dist/kameleoonData/browser.js +1 -1
  13. package/dist/kameleoonData/browser.js.map +1 -1
  14. package/dist/kameleoonData/conversion.d.ts +11 -13
  15. package/dist/kameleoonData/conversion.js +1 -1
  16. package/dist/kameleoonData/conversion.js.map +1 -1
  17. package/dist/kameleoonData/cookie.d.ts +0 -9
  18. package/dist/kameleoonData/cookie.js.map +1 -1
  19. package/dist/kameleoonData/customData.d.ts +3 -13
  20. package/dist/kameleoonData/customData.js +1 -1
  21. package/dist/kameleoonData/customData.js.map +1 -1
  22. package/dist/kameleoonData/dataManager.d.ts +11 -5
  23. package/dist/kameleoonData/dataManager.js +1 -1
  24. package/dist/kameleoonData/dataManager.js.map +1 -1
  25. package/dist/kameleoonData/dataProcessor.d.ts +13 -6
  26. package/dist/kameleoonData/dataProcessor.js +1 -1
  27. package/dist/kameleoonData/dataProcessor.js.map +1 -1
  28. package/dist/kameleoonData/device.d.ts +3 -12
  29. package/dist/kameleoonData/device.js +1 -1
  30. package/dist/kameleoonData/device.js.map +1 -1
  31. package/dist/kameleoonData/geolocation.d.ts +3 -12
  32. package/dist/kameleoonData/geolocation.js +1 -1
  33. package/dist/kameleoonData/geolocation.js.map +1 -1
  34. package/dist/kameleoonData/index.d.ts +1 -0
  35. package/dist/kameleoonData/index.js +1 -1
  36. package/dist/kameleoonData/index.js.map +1 -1
  37. package/dist/kameleoonData/kameleoonConversionScore.d.ts +15 -0
  38. package/dist/kameleoonData/kameleoonConversionScore.js +2 -0
  39. package/dist/kameleoonData/kameleoonConversionScore.js.map +1 -0
  40. package/dist/kameleoonData/operatingSystem.d.ts +3 -12
  41. package/dist/kameleoonData/operatingSystem.js +1 -1
  42. package/dist/kameleoonData/operatingSystem.js.map +1 -1
  43. package/dist/kameleoonData/pageView.d.ts +4 -13
  44. package/dist/kameleoonData/pageView.js +1 -1
  45. package/dist/kameleoonData/pageView.js.map +1 -1
  46. package/dist/kameleoonData/types.d.ts +54 -11
  47. package/dist/kameleoonData/types.js +1 -1
  48. package/dist/kameleoonData/types.js.map +1 -1
  49. package/dist/kameleoonData/userAgent.d.ts +0 -9
  50. package/dist/kameleoonData/userAgent.js.map +1 -1
  51. package/dist/kameleoonData/visitProcessor.d.ts +34 -0
  52. package/dist/kameleoonData/visitProcessor.js +2 -0
  53. package/dist/kameleoonData/visitProcessor.js.map +1 -0
  54. package/dist/kameleoonData/visitsData.d.ts +7 -21
  55. package/dist/kameleoonData/visitsData.js +1 -1
  56. package/dist/kameleoonData/visitsData.js.map +1 -1
  57. package/dist/requester/constants.js +1 -1
  58. package/dist/requester/constants.js.map +1 -1
  59. package/dist/requester/requester.d.ts +2 -3
  60. package/dist/requester/requester.js +1 -1
  61. package/dist/requester/requester.js.map +1 -1
  62. package/dist/requester/types.d.ts +14 -2
  63. package/dist/requester/types.js +1 -1
  64. package/dist/requester/types.js.map +1 -1
  65. package/dist/requester/urlProvider.d.ts +2 -3
  66. package/dist/requester/urlProvider.js +1 -1
  67. package/dist/requester/urlProvider.js.map +1 -1
  68. package/dist/storage/storage.js +1 -1
  69. package/dist/targeting/conditions/browser.js +1 -1
  70. package/dist/targeting/conditions/browser.js.map +1 -1
  71. package/dist/targeting/conditions/conditionFactory.js +1 -1
  72. package/dist/targeting/conditions/conditionFactory.js.map +1 -1
  73. package/dist/targeting/conditions/conversionLikelihood.d.ts +12 -0
  74. package/dist/targeting/conditions/conversionLikelihood.js +2 -0
  75. package/dist/targeting/conditions/conversionLikelihood.js.map +1 -0
  76. package/dist/targeting/conditions/firstVisit.js +1 -1
  77. package/dist/targeting/conditions/firstVisit.js.map +1 -1
  78. package/dist/targeting/conditions/geolocation.js +1 -1
  79. package/dist/targeting/conditions/geolocation.js.map +1 -1
  80. package/dist/targeting/conditions/index.d.ts +1 -0
  81. package/dist/targeting/conditions/index.js +1 -1
  82. package/dist/targeting/conditions/index.js.map +1 -1
  83. package/dist/targeting/conditions/lastVisit.js +1 -1
  84. package/dist/targeting/conditions/lastVisit.js.map +1 -1
  85. package/dist/targeting/conditions/newVisitor.js +1 -1
  86. package/dist/targeting/conditions/newVisitor.js.map +1 -1
  87. package/dist/targeting/conditions/sameDayVisits.js +1 -1
  88. package/dist/targeting/conditions/sameDayVisits.js.map +1 -1
  89. package/dist/targeting/conditions/targetFeatureFlag.js +1 -1
  90. package/dist/targeting/conditions/types.d.ts +3 -0
  91. package/dist/targeting/conditions/types.js.map +1 -1
  92. package/dist/targeting/conditions/visits.js +1 -1
  93. package/dist/targeting/conditions/visits.js.map +1 -1
  94. package/dist/targeting/index.d.ts +2 -2
  95. package/dist/targeting/index.js +1 -1
  96. package/dist/targeting/index.js.map +1 -1
  97. package/dist/targeting/types.d.ts +4 -0
  98. package/dist/targeting/types.js.map +1 -1
  99. package/dist/types.d.ts +2 -0
  100. package/dist/types.js.map +1 -1
  101. package/dist/utilities/types.d.ts +6 -1
  102. package/dist/utilities/types.js.map +1 -1
  103. package/dist/utilities/utilities.d.ts +1 -1
  104. package/dist/utilities/utilities.js +1 -1
  105. package/dist/utilities/utilities.js.map +1 -1
  106. package/dist/variationConfiguration/types.d.ts +1 -1
  107. package/dist/variationConfiguration/types.js.map +1 -1
  108. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"userAgent.js","names":["_types","require","Object","defineProperty","exports","value","UserAgent","_defineProperty","a","b","c","_toPropertyKey","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","d","call","TypeError","String","Number","constructor","sent","url","data","type","KameleoonData","isSent"],"sources":["../../src/kameleoonData/userAgent.ts"],"sourcesContent":["import { UserAgentDataType, IKameleoonData, KameleoonData } from './types';\n\n/**\n * @class\n * UserAgent - a class for creating an instance for user agent\n * */\nexport class UserAgent implements IKameleoonData {\n private value: string;\n private sent: boolean;\n\n constructor(value: string) {\n this.value = value;\n this.sent = false;\n }\n\n /**\n * @property url - url for the current data type used for events tracking\n * */\n get url(): string {\n return '';\n }\n\n /**\n * @property data - data of the current class instance\n * */\n get data(): UserAgentDataType {\n return {\n value: this.value,\n type: KameleoonData.UserAgent,\n sent: this.sent,\n };\n }\n\n /**\n * @property isSent - signifying if the data was sent already tracked\n * */\n get isSent(): boolean {\n return this.sent;\n }\n\n set isSent(value: boolean) {\n this.sent = value;\n }\n}\n"],"mappings":"aAAA,IAAAA,MAAA,CAAAC,OAAA,YAA2EC,MAAA,CAAAC,cAAA,CAAAC,OAAA,eAAAC,KAAA,MAAAD,OAAA,CAAAE,SAAA,iBAAAC,gBAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,SAAAD,CAAA,CAAAE,cAAA,CAAAF,CAAA,EAAAA,CAAA,IAAAD,CAAA,CAAAN,MAAA,CAAAC,cAAA,CAAAK,CAAA,CAAAC,CAAA,EAAAJ,KAAA,CAAAK,CAAA,CAAAE,UAAA,IAAAC,YAAA,IAAAC,QAAA,MAAAN,CAAA,CAAAC,CAAA,EAAAC,CAAA,CAAAF,CAAA,UAAAG,eAAAH,CAAA,MAAAC,CAAA,CAAAM,YAAA,CAAAP,CAAA,kCAAAC,CAAA,CAAAA,CAAA,CAAAA,CAAA,aAAAM,aAAAP,CAAA,CAAAC,CAAA,sBAAAD,CAAA,GAAAA,CAAA,QAAAA,CAAA,KAAAE,CAAA,CAAAF,CAAA,CAAAQ,MAAA,CAAAC,WAAA,cAAAP,CAAA,MAAAQ,CAAA,CAAAR,CAAA,CAAAS,IAAA,CAAAX,CAAA,CAAAC,CAAA,iCAAAS,CAAA,QAAAA,CAAA,WAAAE,SAAA,mEAAAX,CAAA,CAAAY,MAAA,CAAAC,MAAA,EAAAd,CAAA,EAMpE,KAAM,CAAAF,SAAoC,CAI/CiB,WAAWA,CAAClB,CAAa,CAAE,CAAAE,eAAA,sBAAAA,eAAA,qBACzB,IAAI,CAACF,KAAK,CAAGA,CAAK,CAClB,IAAI,CAACmB,IAAI,GACX,CAKA,GAAI,CAAAC,GAAGA,CAAA,CAAW,CAChB,MAAO,EACT,CAKA,GAAI,CAAAC,IAAIA,CAAA,CAAsB,CAC5B,MAAO,CACLrB,KAAK,CAAE,IAAI,CAACA,KAAK,CACjBsB,IAAI,CAAEC,oBAAa,CAACtB,SAAS,CAC7BkB,IAAI,CAAE,IAAI,CAACA,IACb,CACF,CAKA,GAAI,CAAAK,MAAMA,CAAA,CAAY,CACpB,MAAO,KAAI,CAACL,IACd,CAEA,GAAI,CAAAK,MAAMA,CAACxB,CAAc,CAAE,CACzB,IAAI,CAACmB,IAAI,CAAGnB,CACd,CACF,CAACD,OAAA,CAAAE,SAAA,CAAAA,SAAA"}
1
+ {"version":3,"file":"userAgent.js","names":["_types","require","Object","defineProperty","exports","value","UserAgent","_defineProperty","a","b","c","_toPropertyKey","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","d","call","TypeError","String","Number","constructor","sent","url","data","type","KameleoonData","isSent"],"sources":["../../src/kameleoonData/userAgent.ts"],"sourcesContent":["import { UserAgentDataType, IKameleoonData, KameleoonData } from './types';\n\n/**\n * @class\n * UserAgent - a class for creating an instance for user agent\n * */\nexport class UserAgent implements IKameleoonData {\n private value: string;\n private sent: boolean;\n\n constructor(value: string) {\n this.value = value;\n this.sent = false;\n }\n\n get url(): string {\n return '';\n }\n\n get data(): UserAgentDataType {\n return {\n value: this.value,\n type: KameleoonData.UserAgent,\n sent: this.sent,\n };\n }\n\n get isSent(): boolean {\n return this.sent;\n }\n\n set isSent(value: boolean) {\n this.sent = value;\n }\n}\n"],"mappings":"aAAA,IAAAA,MAAA,CAAAC,OAAA,YAA2EC,MAAA,CAAAC,cAAA,CAAAC,OAAA,eAAAC,KAAA,MAAAD,OAAA,CAAAE,SAAA,iBAAAC,gBAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,SAAAD,CAAA,CAAAE,cAAA,CAAAF,CAAA,EAAAA,CAAA,IAAAD,CAAA,CAAAN,MAAA,CAAAC,cAAA,CAAAK,CAAA,CAAAC,CAAA,EAAAJ,KAAA,CAAAK,CAAA,CAAAE,UAAA,IAAAC,YAAA,IAAAC,QAAA,MAAAN,CAAA,CAAAC,CAAA,EAAAC,CAAA,CAAAF,CAAA,UAAAG,eAAAH,CAAA,MAAAC,CAAA,CAAAM,YAAA,CAAAP,CAAA,kCAAAC,CAAA,CAAAA,CAAA,CAAAA,CAAA,aAAAM,aAAAP,CAAA,CAAAC,CAAA,sBAAAD,CAAA,GAAAA,CAAA,QAAAA,CAAA,KAAAE,CAAA,CAAAF,CAAA,CAAAQ,MAAA,CAAAC,WAAA,cAAAP,CAAA,MAAAQ,CAAA,CAAAR,CAAA,CAAAS,IAAA,CAAAX,CAAA,CAAAC,CAAA,iCAAAS,CAAA,QAAAA,CAAA,WAAAE,SAAA,mEAAAX,CAAA,CAAAY,MAAA,CAAAC,MAAA,EAAAd,CAAA,EAMpE,KAAM,CAAAF,SAAoC,CAI/CiB,WAAWA,CAAClB,CAAa,CAAE,CAAAE,eAAA,sBAAAA,eAAA,qBACzB,IAAI,CAACF,KAAK,CAAGA,CAAK,CAClB,IAAI,CAACmB,IAAI,GACX,CAEA,GAAI,CAAAC,GAAGA,CAAA,CAAW,CAChB,MAAO,EACT,CAEA,GAAI,CAAAC,IAAIA,CAAA,CAAsB,CAC5B,MAAO,CACLrB,KAAK,CAAE,IAAI,CAACA,KAAK,CACjBsB,IAAI,CAAEC,oBAAa,CAACtB,SAAS,CAC7BkB,IAAI,CAAE,IAAI,CAACA,IACb,CACF,CAEA,GAAI,CAAAK,MAAMA,CAAA,CAAY,CACpB,MAAO,KAAI,CAACL,IACd,CAEA,GAAI,CAAAK,MAAMA,CAACxB,CAAc,CAAE,CACzB,IAAI,CAACmB,IAAI,CAAGnB,CACd,CACF,CAACD,OAAA,CAAAE,SAAA,CAAAA,SAAA"}
@@ -0,0 +1,34 @@
1
+ import { VisitType } from '../requester';
2
+ import { VisitorDataFiltersType } from '../utilities/types';
3
+ import { VisitProcessorDataType, KCSType } from './types';
4
+ import { DataManager } from './dataManager';
5
+ interface IVisitProcessor {
6
+ processVisit(visit: VisitType): void;
7
+ processKcs(kcsData?: KCSType): void;
8
+ processMultipleDataTypes(): void;
9
+ }
10
+ export declare class VisitProcessor implements IVisitProcessor {
11
+ private visitsData;
12
+ private visitorData;
13
+ private storageVisitorData;
14
+ private experimentData;
15
+ private filters;
16
+ private dataManager;
17
+ private singleDataTypes;
18
+ private multipleDataTypes;
19
+ constructor(filters: VisitorDataFiltersType, dataManager: DataManager);
20
+ get data(): VisitProcessorDataType;
21
+ processVisit(visit: VisitType): void;
22
+ processMultipleDataTypes(): void;
23
+ processKcs(kcsData?: KCSType): void;
24
+ private processBrowser;
25
+ private processDevice;
26
+ private processOperatingSystem;
27
+ private processGeolocationData;
28
+ private processCustomData;
29
+ private processConversion;
30
+ private processPageView;
31
+ private processExperiments;
32
+ private processVisitsData;
33
+ }
34
+ export {};
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.VisitProcessor=void 0;var _pageView=require("./pageView"),_types=require("./types"),_customData=require("./customData"),_conversion=require("./conversion"),_browser=require("./browser"),_device=require("./device"),_operatingSystem=require("./operatingSystem"),_geolocation=require("./geolocation"),_visitsData=require("./visitsData"),_kameleoonConversionScore=require("./kameleoonConversionScore");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 VisitProcessor{constructor(a,b){_defineProperty(this,"visitsData",new _visitsData.VisitsData([])),_defineProperty(this,"visitorData",[]),_defineProperty(this,"storageVisitorData",[]),_defineProperty(this,"experimentData",{}),_defineProperty(this,"filters",{}),_defineProperty(this,"dataManager",void 0),_defineProperty(this,"singleDataTypes",{[_types.KameleoonData.Device]:null,[_types.KameleoonData.Browser]:null,[_types.KameleoonData.GeolocationData]:null,[_types.KameleoonData.OperatingSystem]:null,[_types.KameleoonData.KameleoonConversionScore]:null}),_defineProperty(this,"multipleDataTypes",{[_types.KameleoonData.CustomData]:new Map,[_types.KameleoonData.PageView]:new Map,[_types.KameleoonData.Conversion]:new Map}),this.filters=a,this.dataManager=b}get data(){return{visitorData:this.visitorData,storageVisitorData:this.storageVisitorData,visitsData:this.visitsData,experimentData:this.experimentData}}processVisit(a){this.processBrowser(a),this.processDevice(a),this.processOperatingSystem(a),this.processGeolocationData(a),this.processCustomData(a),this.processConversion(a),this.processPageView(a),this.processExperiments(a),this.processVisitsData(a)}processMultipleDataTypes(){for(const[a,b]of Object.entries(this.multipleDataTypes))if(b.size)switch(a){case _types.KameleoonData.PageView:{this.visitorData.push(...b.values()),this.storageVisitorData.push(...b.values());break}case _types.KameleoonData.Conversion:{this.storageVisitorData.push(...b.values());break}case _types.KameleoonData.CustomData:{b.forEach(a=>{this.visitorData.push(a),this.dataManager.storedCustomDataIndexes.has(a.data.index)||this.storageVisitorData.push(a)});break}}}processKcs(a){if(this.filters.kcs&&a){const b=new _kameleoonConversionScore.KameleoonConversionScore(a);this.storageVisitorData.push(b)}}processBrowser(a){if(this.filters.browser&&!this.singleDataTypes[_types.KameleoonData.Browser]){const b=_browser.Browser._fromVisit(a);b&&(!this.dataManager.storedDataTypes.has(_types.KameleoonData.Browser)&&this.storageVisitorData.push(b),this.visitorData.push(b),this.singleDataTypes[_types.KameleoonData.Browser]=b)}}processDevice(a){if(this.filters.device&&!this.singleDataTypes[_types.KameleoonData.Device]){const b=_device.Device._fromVisit(a);b&&(!this.dataManager.storedDataTypes.has(_types.KameleoonData.Device)&&this.storageVisitorData.push(b),this.visitorData.push(b),this.singleDataTypes[_types.KameleoonData.Device]=b)}}processOperatingSystem(a){if(this.filters.operatingSystem&&!this.singleDataTypes[_types.KameleoonData.OperatingSystem]){const b=_operatingSystem.OperatingSystem._fromVisit(a);b&&(!this.dataManager.storedDataTypes.has(_types.KameleoonData.OperatingSystem)&&this.storageVisitorData.push(b),this.visitorData.push(b),this.singleDataTypes[_types.KameleoonData.OperatingSystem]=b)}}processGeolocationData(a){if(this.filters.geolocation&&!this.singleDataTypes[_types.KameleoonData.GeolocationData]){const b=_geolocation.GeolocationData._fromVisit(a);b&&(!this.dataManager.storedDataTypes.has(_types.KameleoonData.GeolocationData)&&this.storageVisitorData.push(b),this.visitorData.push(b),this.singleDataTypes[_types.KameleoonData.GeolocationData]=b)}}processCustomData(a){this.filters.customData&&_customData.CustomData._updateFromVisit(a,this.multipleDataTypes[_types.KameleoonData.CustomData])}processConversion(a){if(this.filters.conversions){_conversion.Conversion._updateFromVisit(a,this.multipleDataTypes[_types.KameleoonData.Conversion]);const b=_conversion.Conversion._listFromVisit(a);b.length&&this.visitorData.push(...b)}}processPageView(a){this.filters.pageViews&&_pageView.PageView._updateFromVisit(a,this.multipleDataTypes[_types.KameleoonData.PageView])}processExperiments(a){if(this.filters.experiments&&a.experimentEvents)for(const b of a.experimentEvents){const{id:a,variationId:c}=b.data;this.experimentData[a]={variationId:c,isTargetedRule:!1,isSent:!1}}}processVisitsData(a){this.visitsData.timestamp=a.timeStarted}}exports.VisitProcessor=VisitProcessor;
2
+ //# sourceMappingURL=visitProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visitProcessor.js","names":["VisitProcessor","constructor","filters","dataManager","_defineProperty","VisitsData","KameleoonData","Device","Browser","GeolocationData","OperatingSystem","KameleoonConversionScore","CustomData","Map","PageView","Conversion","data","visitorData","storageVisitorData","visitsData","experimentData","processVisit","visit","processBrowser","processDevice","processOperatingSystem","processGeolocationData","processCustomData","processConversion","processPageView","processExperiments","processVisitsData","processMultipleDataTypes","dataType","Object","entries","multipleDataTypes","size","push","values","forEach","customData","storedCustomDataIndexes","has","index","processKcs","kcsData","kcs","browser","singleDataTypes","_fromVisit","storedDataTypes","device","operatingSystem","geolocation","_updateFromVisit","conversions","_listFromVisit","length","pageViews","experiments","experimentEvents","experimentEvent","id","variationId","isTargetedRule","isSent","timestamp","timeStarted","exports"],"sources":["../../src/kameleoonData/visitProcessor.ts"],"sourcesContent":["import { VisitType } from 'src/requester';\nimport { PageView } from './pageView';\nimport { VisitorDataFiltersType } from 'src/utilities/types';\nimport {\n KameleoonData,\n KameleoonDataType,\n SingleDataType,\n MultipleDataType,\n VisitProcessorDataType,\n KCSType,\n} from './types';\nimport { CustomData } from './customData';\nimport { Conversion } from './conversion';\nimport { Browser } from './browser';\nimport { Device } from './device';\nimport { OperatingSystem } from './operatingSystem';\nimport { GeolocationData } from './geolocation';\nimport { FeatureFlagVariationsType } from 'src/storage';\nimport { VisitsData } from './visitsData';\nimport { DataManager } from './dataManager';\nimport { KameleoonConversionScore } from './kameleoonConversionScore';\n\ninterface IVisitProcessor {\n processVisit(visit: VisitType): void;\n processKcs(kcsData?: KCSType): void;\n processMultipleDataTypes(): void;\n}\n\nexport class VisitProcessor implements IVisitProcessor {\n private visitsData = new VisitsData([]);\n private visitorData: KameleoonDataType[] = [];\n private storageVisitorData: KameleoonDataType[] = [];\n private experimentData: FeatureFlagVariationsType = {};\n private filters: VisitorDataFiltersType = {};\n private dataManager: DataManager;\n private singleDataTypes: SingleDataType = {\n [KameleoonData.Device]: null,\n [KameleoonData.Browser]: null,\n [KameleoonData.GeolocationData]: null,\n [KameleoonData.OperatingSystem]: null,\n [KameleoonData.KameleoonConversionScore]: null,\n };\n private multipleDataTypes: MultipleDataType = {\n [KameleoonData.CustomData]: new Map<number, CustomData>(),\n [KameleoonData.PageView]: new Map<string, PageView>(),\n [KameleoonData.Conversion]: new Map<number, Conversion>(),\n };\n\n constructor(filters: VisitorDataFiltersType, dataManager: DataManager) {\n this.filters = filters;\n this.dataManager = dataManager;\n }\n\n get data(): VisitProcessorDataType {\n return {\n visitorData: this.visitorData,\n storageVisitorData: this.storageVisitorData,\n visitsData: this.visitsData,\n experimentData: this.experimentData,\n };\n }\n\n public processVisit(visit: VisitType): void {\n this.processBrowser(visit);\n this.processDevice(visit);\n this.processOperatingSystem(visit);\n this.processGeolocationData(visit);\n this.processCustomData(visit);\n this.processConversion(visit);\n this.processPageView(visit);\n this.processExperiments(visit);\n this.processVisitsData(visit);\n }\n\n public processMultipleDataTypes(): void {\n for (const [dataType, data] of Object.entries(this.multipleDataTypes)) {\n if (!data.size) {\n continue;\n }\n\n switch (dataType) {\n case KameleoonData.PageView: {\n this.visitorData.push(...data.values());\n this.storageVisitorData.push(...data.values());\n\n break;\n }\n case KameleoonData.Conversion: {\n this.storageVisitorData.push(...data.values());\n\n break;\n }\n case KameleoonData.CustomData: {\n const dataItem = data as Map<number, CustomData>;\n\n dataItem.forEach((customData) => {\n this.visitorData.push(customData);\n\n if (\n !this.dataManager.storedCustomDataIndexes.has(\n customData.data.index,\n )\n ) {\n this.storageVisitorData.push(customData);\n }\n });\n\n break;\n }\n }\n }\n }\n\n public processKcs(kcsData?: KCSType): void {\n if (this.filters.kcs && kcsData) {\n const kcs = new KameleoonConversionScore(kcsData);\n\n this.storageVisitorData.push(kcs);\n }\n }\n\n private processBrowser(visit: VisitType): void {\n if (this.filters.browser && !this.singleDataTypes[KameleoonData.Browser]) {\n const browser = Browser._fromVisit(visit);\n\n if (browser) {\n if (!this.dataManager.storedDataTypes.has(KameleoonData.Browser)) {\n this.storageVisitorData.push(browser);\n }\n this.visitorData.push(browser);\n this.singleDataTypes[KameleoonData.Browser] = browser;\n }\n }\n }\n\n private processDevice(visit: VisitType): void {\n if (this.filters.device && !this.singleDataTypes[KameleoonData.Device]) {\n const device = Device._fromVisit(visit);\n\n if (device) {\n if (!this.dataManager.storedDataTypes.has(KameleoonData.Device)) {\n this.storageVisitorData.push(device);\n }\n\n this.visitorData.push(device);\n this.singleDataTypes[KameleoonData.Device] = device;\n }\n }\n }\n\n private processOperatingSystem(visit: VisitType): void {\n if (\n this.filters.operatingSystem &&\n !this.singleDataTypes[KameleoonData.OperatingSystem]\n ) {\n const operatingSystem = OperatingSystem._fromVisit(visit);\n\n if (operatingSystem) {\n if (\n !this.dataManager.storedDataTypes.has(KameleoonData.OperatingSystem)\n ) {\n this.storageVisitorData.push(operatingSystem);\n }\n\n this.visitorData.push(operatingSystem);\n this.singleDataTypes[KameleoonData.OperatingSystem] = operatingSystem;\n }\n }\n }\n\n private processGeolocationData(visit: VisitType): void {\n if (\n this.filters.geolocation &&\n !this.singleDataTypes[KameleoonData.GeolocationData]\n ) {\n const geolocation = GeolocationData._fromVisit(visit);\n\n if (geolocation) {\n if (\n !this.dataManager.storedDataTypes.has(KameleoonData.GeolocationData)\n ) {\n this.storageVisitorData.push(geolocation);\n }\n\n this.visitorData.push(geolocation);\n this.singleDataTypes[KameleoonData.GeolocationData] = geolocation;\n }\n }\n }\n\n private processCustomData(visit: VisitType): void {\n if (this.filters.customData) {\n CustomData._updateFromVisit(\n visit,\n this.multipleDataTypes[KameleoonData.CustomData],\n );\n }\n }\n\n private processConversion(visit: VisitType): void {\n if (this.filters.conversions) {\n // --- Note ---\n // We collect Conversion data with only unique goalId\n Conversion._updateFromVisit(\n visit,\n this.multipleDataTypes[KameleoonData.Conversion],\n );\n\n // --- Note ---\n // We collect all Conversion data with goalId, revenue and negative for all visits\n const conversions = Conversion._listFromVisit(visit);\n\n if (conversions.length) {\n this.visitorData.push(...conversions);\n }\n }\n }\n\n private processPageView(visit: VisitType): void {\n if (this.filters.pageViews) {\n PageView._updateFromVisit(\n visit,\n this.multipleDataTypes[KameleoonData.PageView],\n );\n }\n }\n\n private processExperiments(visit: VisitType): void {\n if (this.filters.experiments && visit.experimentEvents) {\n for (const experimentEvent of visit.experimentEvents) {\n const { id, variationId } = experimentEvent.data;\n\n this.experimentData[id] = {\n variationId,\n isTargetedRule: false,\n isSent: false,\n };\n }\n }\n }\n\n private processVisitsData(visit: VisitType): void {\n this.visitsData.timestamp = visit.timeStarted;\n }\n}\n"],"mappings":"69BA4BO,KAAM,CAAAA,cAA0C,CAoBrDC,WAAWA,CAACC,CAA+B,CAAEC,CAAwB,CAAE,CAAAC,eAAA,mBAnBlD,GAAI,CAAAC,sBAAU,CAAC,EAAE,CAAC,EAAAD,eAAA,oBACI,EAAE,EAAAA,eAAA,2BACK,EAAE,EAAAA,eAAA,uBACA,CAAC,CAAC,EAAAA,eAAA,gBACZ,CAAC,CAAC,EAAAA,eAAA,4BAAAA,eAAA,wBAEF,CACxC,CAACE,oBAAa,CAACC,MAAM,EAAG,IAAI,CAC5B,CAACD,oBAAa,CAACE,OAAO,EAAG,IAAI,CAC7B,CAACF,oBAAa,CAACG,eAAe,EAAG,IAAI,CACrC,CAACH,oBAAa,CAACI,eAAe,EAAG,IAAI,CACrC,CAACJ,oBAAa,CAACK,wBAAwB,EAAG,IAC5C,CAAC,EAAAP,eAAA,0BAC6C,CAC5C,CAACE,oBAAa,CAACM,UAAU,EAAG,GAAI,CAAAC,GAAyB,CACzD,CAACP,oBAAa,CAACQ,QAAQ,EAAG,GAAI,CAAAD,GAAuB,CACrD,CAACP,oBAAa,CAACS,UAAU,EAAG,GAAI,CAAAF,GAClC,CAAC,EAGC,IAAI,CAACX,OAAO,CAAGA,CAAO,CACtB,IAAI,CAACC,WAAW,CAAGA,CACrB,CAEA,GAAI,CAAAa,IAAIA,CAAA,CAA2B,CACjC,MAAO,CACLC,WAAW,CAAE,IAAI,CAACA,WAAW,CAC7BC,kBAAkB,CAAE,IAAI,CAACA,kBAAkB,CAC3CC,UAAU,CAAE,IAAI,CAACA,UAAU,CAC3BC,cAAc,CAAE,IAAI,CAACA,cACvB,CACF,CAEOC,YAAYA,CAACC,CAAgB,CAAQ,CAC1C,IAAI,CAACC,cAAc,CAACD,CAAK,CAAC,CAC1B,IAAI,CAACE,aAAa,CAACF,CAAK,CAAC,CACzB,IAAI,CAACG,sBAAsB,CAACH,CAAK,CAAC,CAClC,IAAI,CAACI,sBAAsB,CAACJ,CAAK,CAAC,CAClC,IAAI,CAACK,iBAAiB,CAACL,CAAK,CAAC,CAC7B,IAAI,CAACM,iBAAiB,CAACN,CAAK,CAAC,CAC7B,IAAI,CAACO,eAAe,CAACP,CAAK,CAAC,CAC3B,IAAI,CAACQ,kBAAkB,CAACR,CAAK,CAAC,CAC9B,IAAI,CAACS,iBAAiB,CAACT,CAAK,CAC9B,CAEOU,wBAAwBA,CAAA,CAAS,CACtC,IAAK,KAAM,CAACC,CAAQ,CAAEjB,CAAI,CAAC,EAAI,CAAAkB,MAAM,CAACC,OAAO,CAAC,IAAI,CAACC,iBAAiB,CAAC,CACnE,GAAKpB,CAAI,CAACqB,IAAI,CAId,OAAQJ,CAAQ,EACd,IAAK,CAAA3B,oBAAa,CAACQ,QAAQ,CAAE,CAC3B,IAAI,CAACG,WAAW,CAACqB,IAAI,CAAC,GAAGtB,CAAI,CAACuB,MAAM,CAAC,CAAC,CAAC,CACvC,IAAI,CAACrB,kBAAkB,CAACoB,IAAI,CAAC,GAAGtB,CAAI,CAACuB,MAAM,CAAC,CAAC,CAAC,CAE9C,KACF,CACA,IAAK,CAAAjC,oBAAa,CAACS,UAAU,CAAE,CAC7B,IAAI,CAACG,kBAAkB,CAACoB,IAAI,CAAC,GAAGtB,CAAI,CAACuB,MAAM,CAAC,CAAC,CAAC,CAE9C,KACF,CACA,IAAK,CAAAjC,oBAAa,CAACM,UAAU,CAAE,CACZI,CAAI,CAEZwB,OAAO,CAAEC,CAAU,EAAK,CAC/B,IAAI,CAACxB,WAAW,CAACqB,IAAI,CAACG,CAAU,CAAC,CAG9B,IAAI,CAACtC,WAAW,CAACuC,uBAAuB,CAACC,GAAG,CAC3CF,CAAU,CAACzB,IAAI,CAAC4B,KAClB,CAAC,EAED,IAAI,CAAC1B,kBAAkB,CAACoB,IAAI,CAACG,CAAU,CAE3C,CAAC,CAAC,CAEF,KACF,CACF,CAEJ,CAEOI,UAAUA,CAACC,CAAiB,CAAQ,CACzC,GAAI,IAAI,CAAC5C,OAAO,CAAC6C,GAAG,EAAID,CAAO,CAAE,CAC/B,KAAM,CAAAC,CAAG,CAAG,GAAI,CAAApC,kDAAwB,CAACmC,CAAO,CAAC,CAEjD,IAAI,CAAC5B,kBAAkB,CAACoB,IAAI,CAACS,CAAG,CAClC,CACF,CAEQxB,cAAcA,CAACD,CAAgB,CAAQ,CAC7C,GAAI,IAAI,CAACpB,OAAO,CAAC8C,OAAO,EAAI,CAAC,IAAI,CAACC,eAAe,CAAC3C,oBAAa,CAACE,OAAO,CAAC,CAAE,CACxE,KAAM,CAAAwC,CAAO,CAAGxC,gBAAO,CAAC0C,UAAU,CAAC5B,CAAK,CAAC,CAErC0B,CAAO,GACL,CAAC,IAAI,CAAC7C,WAAW,CAACgD,eAAe,CAACR,GAAG,CAACrC,oBAAa,CAACE,OAAO,CAAC,EAC9D,IAAI,CAACU,kBAAkB,CAACoB,IAAI,CAACU,CAAO,CAAC,CAEvC,IAAI,CAAC/B,WAAW,CAACqB,IAAI,CAACU,CAAO,CAAC,CAC9B,IAAI,CAACC,eAAe,CAAC3C,oBAAa,CAACE,OAAO,CAAC,CAAGwC,CAAO,CAEzD,CACF,CAEQxB,aAAaA,CAACF,CAAgB,CAAQ,CAC5C,GAAI,IAAI,CAACpB,OAAO,CAACkD,MAAM,EAAI,CAAC,IAAI,CAACH,eAAe,CAAC3C,oBAAa,CAACC,MAAM,CAAC,CAAE,CACtE,KAAM,CAAA6C,CAAM,CAAG7C,cAAM,CAAC2C,UAAU,CAAC5B,CAAK,CAAC,CAEnC8B,CAAM,GACJ,CAAC,IAAI,CAACjD,WAAW,CAACgD,eAAe,CAACR,GAAG,CAACrC,oBAAa,CAACC,MAAM,CAAC,EAC7D,IAAI,CAACW,kBAAkB,CAACoB,IAAI,CAACc,CAAM,CAAC,CAGtC,IAAI,CAACnC,WAAW,CAACqB,IAAI,CAACc,CAAM,CAAC,CAC7B,IAAI,CAACH,eAAe,CAAC3C,oBAAa,CAACC,MAAM,CAAC,CAAG6C,CAAM,CAEvD,CACF,CAEQ3B,sBAAsBA,CAACH,CAAgB,CAAQ,CACrD,GACE,IAAI,CAACpB,OAAO,CAACmD,eAAe,EAC5B,CAAC,IAAI,CAACJ,eAAe,CAAC3C,oBAAa,CAACI,eAAe,CAAC,CACpD,CACA,KAAM,CAAA2C,CAAe,CAAG3C,gCAAe,CAACwC,UAAU,CAAC5B,CAAK,CAAC,CAErD+B,CAAe,GAEf,CAAC,IAAI,CAAClD,WAAW,CAACgD,eAAe,CAACR,GAAG,CAACrC,oBAAa,CAACI,eAAe,CAAC,EAEpE,IAAI,CAACQ,kBAAkB,CAACoB,IAAI,CAACe,CAAe,CAAC,CAG/C,IAAI,CAACpC,WAAW,CAACqB,IAAI,CAACe,CAAe,CAAC,CACtC,IAAI,CAACJ,eAAe,CAAC3C,oBAAa,CAACI,eAAe,CAAC,CAAG2C,CAAe,CAEzE,CACF,CAEQ3B,sBAAsBA,CAACJ,CAAgB,CAAQ,CACrD,GACE,IAAI,CAACpB,OAAO,CAACoD,WAAW,EACxB,CAAC,IAAI,CAACL,eAAe,CAAC3C,oBAAa,CAACG,eAAe,CAAC,CACpD,CACA,KAAM,CAAA6C,CAAW,CAAG7C,4BAAe,CAACyC,UAAU,CAAC5B,CAAK,CAAC,CAEjDgC,CAAW,GAEX,CAAC,IAAI,CAACnD,WAAW,CAACgD,eAAe,CAACR,GAAG,CAACrC,oBAAa,CAACG,eAAe,CAAC,EAEpE,IAAI,CAACS,kBAAkB,CAACoB,IAAI,CAACgB,CAAW,CAAC,CAG3C,IAAI,CAACrC,WAAW,CAACqB,IAAI,CAACgB,CAAW,CAAC,CAClC,IAAI,CAACL,eAAe,CAAC3C,oBAAa,CAACG,eAAe,CAAC,CAAG6C,CAAW,CAErE,CACF,CAEQ3B,iBAAiBA,CAACL,CAAgB,CAAQ,CAC5C,IAAI,CAACpB,OAAO,CAACuC,UAAU,EACzB7B,sBAAU,CAAC2C,gBAAgB,CACzBjC,CAAK,CACL,IAAI,CAACc,iBAAiB,CAAC9B,oBAAa,CAACM,UAAU,CACjD,CAEJ,CAEQgB,iBAAiBA,CAACN,CAAgB,CAAQ,CAChD,GAAI,IAAI,CAACpB,OAAO,CAACsD,WAAW,CAAE,CAG5BzC,sBAAU,CAACwC,gBAAgB,CACzBjC,CAAK,CACL,IAAI,CAACc,iBAAiB,CAAC9B,oBAAa,CAACS,UAAU,CACjD,CAAC,CAID,KAAM,CAAAyC,CAAW,CAAGzC,sBAAU,CAAC0C,cAAc,CAACnC,CAAK,CAAC,CAEhDkC,CAAW,CAACE,MAAM,EACpB,IAAI,CAACzC,WAAW,CAACqB,IAAI,CAAC,GAAGkB,CAAW,CAExC,CACF,CAEQ3B,eAAeA,CAACP,CAAgB,CAAQ,CAC1C,IAAI,CAACpB,OAAO,CAACyD,SAAS,EACxB7C,kBAAQ,CAACyC,gBAAgB,CACvBjC,CAAK,CACL,IAAI,CAACc,iBAAiB,CAAC9B,oBAAa,CAACQ,QAAQ,CAC/C,CAEJ,CAEQgB,kBAAkBA,CAACR,CAAgB,CAAQ,CACjD,GAAI,IAAI,CAACpB,OAAO,CAAC0D,WAAW,EAAItC,CAAK,CAACuC,gBAAgB,CACpD,IAAK,KAAM,CAAAC,CAAe,GAAI,CAAAxC,CAAK,CAACuC,gBAAgB,CAAE,CACpD,KAAM,CAAEE,EAAE,CAAFA,CAAE,CAAEC,WAAW,CAAXA,CAAY,CAAC,CAAGF,CAAe,CAAC9C,IAAI,CAEhD,IAAI,CAACI,cAAc,CAAC2C,CAAE,CAAC,CAAG,CACxBC,WAAW,CAAXA,CAAW,CACXC,cAAc,GAAO,CACrBC,MAAM,GACR,CACF,CAEJ,CAEQnC,iBAAiBA,CAACT,CAAgB,CAAQ,CAChD,IAAI,CAACH,UAAU,CAACgD,SAAS,CAAG7C,CAAK,CAAC8C,WACpC,CACF,CAACC,OAAA,CAAArE,cAAA,CAAAA,cAAA"}
@@ -1,34 +1,20 @@
1
- import { VisitType } from '../requester';
2
1
  import { IKameleoonData, VisitsDataType } from './types';
3
2
  /**
4
3
  * @class
5
4
  * Visits - a class for creating an instance of a stored visits data
6
5
  * */
7
6
  export declare class VisitsData implements IKameleoonData {
8
- private previousVisits;
9
- private currentVisit;
7
+ private visits;
10
8
  /**
11
- * @param {number} currentVisit - a current visit
12
- * @param {number[]} previousVisits - a list of previous visits
13
- * */
14
- constructor(currentVisit: number | null, previousVisits: number[]);
15
- /**
16
- * @property url - url for the current data type used for events tracking
9
+ * @param {number[]} visits - a list of visits
17
10
  * */
11
+ constructor(visits: number[]);
18
12
  get url(): string;
19
- /**
20
- * @property data - data of the current class instance
21
- * */
22
13
  get data(): VisitsDataType;
23
- /**
24
- * @property isSent - signifying if the data was sent already tracked
25
- * */
26
14
  get isSent(): boolean;
27
15
  /**
28
- * @private
29
- * @method _fromRemoteVisits - an internal method for creating an instance of Visits class from a list of visits
30
- * @param {VisitType[]} visits - a list of visits
31
- * @returns {VisitsData | undefined} an instance of Visits class or undefined if there were not any visits
32
- * */
33
- static _fromRemoteVisits(visits: VisitType[], hasCurrent: boolean): VisitsData | undefined;
16
+ * Adds a single timestamp while ensuring the list remains sorted and unique
17
+ * @param {number} timestamp - The timestamp to add
18
+ */
19
+ set timestamp(timestamp: number);
34
20
  }
@@ -1,2 +1,2 @@
1
- "use strict";var _types=require("./types");Object.defineProperty(exports,"__esModule",{value:!0}),exports.VisitsData=void 0;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 VisitsData{constructor(a,b){_defineProperty(this,"previousVisits",void 0),_defineProperty(this,"currentVisit",void 0),this.previousVisits=b,this.currentVisit=a}get url(){return""}get data(){return{currentVisit:this.currentVisit,previousVisits:this.previousVisits,type:_types.KameleoonData.VisitsData,sent:!0}}get isSent(){return!0}static _fromRemoteVisits(a,b){const c=[],d=b?1:0,e=b?a[0].timeStarted:null;for(let e=a.length-1;e>=d;e--){const b=a[e];c.push(b.timeStarted)}if(c.length||e)return new VisitsData(e,c)}}exports.VisitsData=VisitsData;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.VisitsData=void 0;var _utilities=require("../utilities"),_types=require("../utilities/types"),_types2=require("./types");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 VisitsData{constructor(a){_defineProperty(this,"visits",void 0),this.visits=a}get url(){return""}get data(){return{visits:this.visits,type:_types2.KameleoonData.VisitsData,sent:!0}}get isSent(){return!0}set timestamp(a){_utilities.Utilities.insertInOrderedListMutably({list:this.visits,element:a,order:_types.Order.Ascending}),this.visits=[...new Set(this.visits)]}}exports.VisitsData=VisitsData;
2
2
  //# sourceMappingURL=visitsData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"visitsData.js","names":["_types","require","Object","defineProperty","exports","value","VisitsData","_defineProperty","a","b","c","_toPropertyKey","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","d","call","TypeError","String","Number","constructor","currentVisit","previousVisits","url","data","type","KameleoonData","sent","isSent","_fromRemoteVisits","visits","hasCurrent","visitsList","limit","timeStarted","i","length","visit","push"],"sources":["../../src/kameleoonData/visitsData.ts"],"sourcesContent":["import { VisitType } from 'src/requester';\nimport { IKameleoonData, KameleoonData, VisitsDataType } from './types';\n\n/**\n * @class\n * Visits - a class for creating an instance of a stored visits data\n * */\nexport class VisitsData implements IKameleoonData {\n // --- Note ---\n // Ascending order\n private previousVisits: number[];\n private currentVisit: number | null;\n\n /**\n * @param {number} currentVisit - a current visit\n * @param {number[]} previousVisits - a list of previous visits\n * */\n constructor(currentVisit: number | null, previousVisits: number[]) {\n this.previousVisits = previousVisits;\n this.currentVisit = currentVisit;\n }\n\n /**\n * @property url - url for the current data type used for events tracking\n * */\n get url(): string {\n return '';\n }\n\n /**\n * @property data - data of the current class instance\n * */\n get data(): VisitsDataType {\n return {\n currentVisit: this.currentVisit,\n previousVisits: this.previousVisits,\n type: KameleoonData.VisitsData,\n sent: true,\n };\n }\n\n /**\n * @property isSent - signifying if the data was sent already tracked\n * */\n get isSent(): boolean {\n return true;\n }\n\n /**\n * @private\n * @method _fromRemoteVisits - an internal method for creating an instance of Visits class from a list of visits\n * @param {VisitType[]} visits - a list of visits\n * @returns {VisitsData | undefined} an instance of Visits class or undefined if there were not any visits\n * */\n public static _fromRemoteVisits(\n visits: VisitType[],\n hasCurrent: boolean,\n ): VisitsData | undefined {\n const visitsList: number[] = [];\n const limit = hasCurrent ? 1 : 0;\n const currentVisit = hasCurrent ? visits[0].timeStarted : null;\n\n // --- Note ---\n // Going backwards to get the latest visit data\n for (let i = visits.length - 1; i >= limit; i--) {\n const visit = visits[i];\n\n visitsList.push(visit.timeStarted);\n }\n\n if (visitsList.length || currentVisit) {\n return new VisitsData(currentVisit, visitsList);\n }\n }\n}\n"],"mappings":"aACA,IAAAA,MAAA,CAAAC,OAAA,YAAwEC,MAAA,CAAAC,cAAA,CAAAC,OAAA,eAAAC,KAAA,MAAAD,OAAA,CAAAE,UAAA,iBAAAC,gBAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,SAAAD,CAAA,CAAAE,cAAA,CAAAF,CAAA,EAAAA,CAAA,IAAAD,CAAA,CAAAN,MAAA,CAAAC,cAAA,CAAAK,CAAA,CAAAC,CAAA,EAAAJ,KAAA,CAAAK,CAAA,CAAAE,UAAA,IAAAC,YAAA,IAAAC,QAAA,MAAAN,CAAA,CAAAC,CAAA,EAAAC,CAAA,CAAAF,CAAA,UAAAG,eAAAH,CAAA,MAAAC,CAAA,CAAAM,YAAA,CAAAP,CAAA,kCAAAC,CAAA,CAAAA,CAAA,CAAAA,CAAA,aAAAM,aAAAP,CAAA,CAAAC,CAAA,sBAAAD,CAAA,GAAAA,CAAA,QAAAA,CAAA,KAAAE,CAAA,CAAAF,CAAA,CAAAQ,MAAA,CAAAC,WAAA,cAAAP,CAAA,MAAAQ,CAAA,CAAAR,CAAA,CAAAS,IAAA,CAAAX,CAAA,CAAAC,CAAA,iCAAAS,CAAA,QAAAA,CAAA,WAAAE,SAAA,mEAAAX,CAAA,CAAAY,MAAA,CAAAC,MAAA,EAAAd,CAAA,EAMjE,KAAM,CAAAF,UAAqC,CAUhDiB,WAAWA,CAACC,CAA2B,CAAEC,CAAwB,CAAE,CAAAlB,eAAA,+BAAAA,eAAA,6BACjE,IAAI,CAACkB,cAAc,CAAGA,CAAc,CACpC,IAAI,CAACD,YAAY,CAAGA,CACtB,CAKA,GAAI,CAAAE,GAAGA,CAAA,CAAW,CAChB,MAAO,EACT,CAKA,GAAI,CAAAC,IAAIA,CAAA,CAAmB,CACzB,MAAO,CACLH,YAAY,CAAE,IAAI,CAACA,YAAY,CAC/BC,cAAc,CAAE,IAAI,CAACA,cAAc,CACnCG,IAAI,CAAEC,oBAAa,CAACvB,UAAU,CAC9BwB,IAAI,GACN,CACF,CAKA,GAAI,CAAAC,MAAMA,CAAA,CAAY,CACpB,QACF,CAQA,MAAc,CAAAC,iBAAiBA,CAC7BC,CAAmB,CACnBC,CAAmB,CACK,MAClB,CAAAC,CAAoB,CAAG,EAAE,CACzBC,CAAK,CAAGF,CAAU,CAAG,CAAC,CAAG,CAAC,CAC1BV,CAAY,CAAGU,CAAU,CAAGD,CAAM,CAAC,CAAC,CAAC,CAACI,WAAW,CAAG,IAAI,CAI9D,IAAK,GAAI,CAAAC,CAAC,CAAGL,CAAM,CAACM,MAAM,CAAG,CAAC,CAAED,CAAC,EAAIF,CAAK,CAAEE,CAAC,EAAE,CAAE,CAC/C,KAAM,CAAAE,CAAK,CAAGP,CAAM,CAACK,CAAC,CAAC,CAEvBH,CAAU,CAACM,IAAI,CAACD,CAAK,CAACH,WAAW,CACnC,CAEA,GAAIF,CAAU,CAACI,MAAM,EAAIf,CAAY,CACnC,MAAO,IAAI,CAAAlB,UAAU,CAACkB,CAAY,CAAEW,CAAU,CAElD,CACF,CAAC/B,OAAA,CAAAE,UAAA,CAAAA,UAAA"}
1
+ {"version":3,"file":"visitsData.js","names":["VisitsData","constructor","visits","_defineProperty","url","data","type","KameleoonData","sent","isSent","timestamp","Utilities","insertInOrderedListMutably","list","element","order","Order","Ascending","Set","exports"],"sources":["../../src/kameleoonData/visitsData.ts"],"sourcesContent":["import { Utilities } from 'src/utilities';\nimport { Order } from 'src/utilities/types';\nimport { IKameleoonData, KameleoonData, VisitsDataType } from './types';\n\n/**\n * @class\n * Visits - a class for creating an instance of a stored visits data\n * */\nexport class VisitsData implements IKameleoonData {\n // --- Note ---\n // Ascending order\n private visits: number[];\n\n /**\n * @param {number[]} visits - a list of visits\n * */\n constructor(visits: number[]) {\n this.visits = visits;\n }\n\n get url(): string {\n return '';\n }\n\n get data(): VisitsDataType {\n return {\n visits: this.visits,\n type: KameleoonData.VisitsData,\n sent: true,\n };\n }\n\n get isSent(): boolean {\n return true;\n }\n\n /**\n * Adds a single timestamp while ensuring the list remains sorted and unique\n * @param {number} timestamp - The timestamp to add\n */\n set timestamp(timestamp: number) {\n Utilities.insertInOrderedListMutably({\n list: this.visits,\n element: timestamp,\n order: Order.Ascending,\n });\n\n this.visits = [...new Set(this.visits)];\n }\n}\n"],"mappings":"wsBAQO,KAAM,CAAAA,UAAqC,CAQhDC,WAAWA,CAACC,CAAgB,CAAE,CAAAC,eAAA,uBAC5B,IAAI,CAACD,MAAM,CAAGA,CAChB,CAEA,GAAI,CAAAE,GAAGA,CAAA,CAAW,CAChB,MAAO,EACT,CAEA,GAAI,CAAAC,IAAIA,CAAA,CAAmB,CACzB,MAAO,CACLH,MAAM,CAAE,IAAI,CAACA,MAAM,CACnBI,IAAI,CAAEC,qBAAa,CAACP,UAAU,CAC9BQ,IAAI,GACN,CACF,CAEA,GAAI,CAAAC,MAAMA,CAAA,CAAY,CACpB,QACF,CAMA,GAAI,CAAAC,SAASA,CAACA,CAAiB,CAAE,CAC/BC,oBAAS,CAACC,0BAA0B,CAAC,CACnCC,IAAI,CAAE,IAAI,CAACX,MAAM,CACjBY,OAAO,CAAEJ,CAAS,CAClBK,KAAK,CAAEC,YAAK,CAACC,SACf,CAAC,CAAC,CAEF,IAAI,CAACf,MAAM,CAAG,CAAC,GAAG,GAAI,CAAAgB,GAAG,CAAC,IAAI,CAAChB,MAAM,CAAC,CACxC,CACF,CAACiB,OAAA,CAAAnB,UAAA,CAAAA,UAAA"}
@@ -1,2 +1,2 @@
1
- "use strict";var _types=require("../types");Object.defineProperty(exports,"__esModule",{value:!0}),exports.UrlTracking=exports.UrlQuery=exports.UrlParameter=exports.UrlFirstParameter=exports.UrlEventType=exports.URL=exports.RETRIES_DELAY=exports.NUMBER_OF_RETRIES=exports.Header=exports.DEFAULT_REQUEST_TIMEOUT=exports.DATA_API_DOMAIN=void 0;const DEFAULT_REQUEST_TIMEOUT=exports.DEFAULT_REQUEST_TIMEOUT=10*_types.Milliseconds.Second,RETRIES_DELAY=exports.RETRIES_DELAY=5*_types.Milliseconds.Second,NUMBER_OF_RETRIES=exports.NUMBER_OF_RETRIES=3;let Header=exports.Header=function(a){return a.UserAgent="User-Agent",a.ContentType="Content-Type",a.SdkVersion="X-Kameleoon-SDK-Version",a.SdkType="X-Kameleoon-SDK-Type",a.Authorization="Authorization",a.AcceptEncoding="Accept-Encoding",a}({});const UrlEventType=exports.UrlEventType={CustomData:"eventType=customData",StaticData:"eventType=staticData",Page:"eventType=page",Conversion:"eventType=conversion",Activity:"eventType=activity",Experiment:"eventType=experiment",Geolocation:"eventType=geolocation"},UrlParameter=exports.UrlParameter={Title:"&title=",ReferrersIndices:"&referrersIndices=",Negative:"&negative=",Revenue:"&revenue=",Overwrite:"&overwrite=",Index:"&index=",BrowserIndex:"&browserIndex=",BrowserVersion:"&browserVersion=",Href:"&href=",DeviceType:"&deviceType=",SiteCode:"&siteCode=",GoalId:"&goalId=",VisitorCode:"&visitorCode=",VariationId:"&variationId=",Ts:"&ts=",Key:"&key=",SdkName:"&sdkName=",SdkVersion:"&sdkVersion=",ValuesCountMap:"&valuesCountMap=",Nonce:"&nonce=",Id:"&id=",CustomData:"&customData=",CurrentVisit:"&currentVisit=",MaxNumberPreviousVisits:"&maxNumberPreviousVisits=",Os:"&os=",OsIndex:"&osIndex=",Country:"&country=",City:"&city=",Region:"&region=",Latitude:"&latitude=",Longitude:"&longitude=",PostalCode:"&postalCode=",Conversion:"&conversion=",StaticData:"&staticData=",Geolocation:"&geolocation=",Page:"&page=",Experiment:"&experiment=",Browser:"&browser=",Environment:"&environment=",MappingIdentifier:"&mappingIdentifier=",MappingValue:"&mappingValue="},UrlFirstParameter=exports.UrlFirstParameter={CustomData:"?customData=",StaticData:"?staticData=",Page:"?page=",Conversion:"?conversion=",Geolocation:"?geolocation=",Experiment:"?experiment=",ValuesCountMap:"?valuesCountMap=",Id:"?id=",Nonce:"?nonce=",Country:"?country=",Environment:"?environment=",City:"?city=",Region:"?region=",Latitude:"?latitude=",Longitude:"?longitude=",PostalCode:"?postalCode=",SdkName:"?sdkName=",SdkVersion:"?sdkVersion=",BrowserIndex:"?browserIndex=",BrowserVersion:"?browserVersion=",SiteCode:"?siteCode=",VisitorCode:"?visitorCode=",CurrentVisit:"?currentVisit=",MaxNumberPreviousVisits:"?maxNumberPreviousVisits=",Negative:"?negative=",Revenue:"?revenue=",Title:"?title=",Os:"?os=",OsIndex:"?osIndex=",Browser:"?browser=",ReferrersIndices:"?referrersIndices=",Overwrite:"?overwrite=",Index:"?index=",Href:"?href=",VariationId:"?variationId=",DeviceType:"?deviceType=",GoalId:"?goalId=",Ts:"?ts=",Key:"?key=",MappingIdentifier:"?mappingIdentifier=",MappingValue:"?mappingValue="},UrlQuery=exports.UrlQuery={Sse:"sse?siteCode=",Map:"map?siteCode=",Events:"events?siteCode=",Visitor:"visitor?siteCode="},UrlTracking=exports.UrlTracking={Visit:"visit/",Map:"map/"},DATA_API_DOMAIN=exports.DATA_API_DOMAIN="data.kameleoon",URL=exports.URL={SERVER_SENT_EVENTS:"https://events.kameleoon.com:8110/",CLIENT_CONFIGURATION:"https://sdk-config.kameleoon.eu/"};
1
+ "use strict";var _types=require("../types");Object.defineProperty(exports,"__esModule",{value:!0}),exports.UrlTracking=exports.UrlQuery=exports.UrlParameter=exports.UrlFirstParameter=exports.UrlEventType=exports.URL=exports.RETRIES_DELAY=exports.NUMBER_OF_RETRIES=exports.Header=exports.DEFAULT_REQUEST_TIMEOUT=exports.DATA_API_DOMAIN=void 0;const DEFAULT_REQUEST_TIMEOUT=exports.DEFAULT_REQUEST_TIMEOUT=10*_types.Milliseconds.Second,RETRIES_DELAY=exports.RETRIES_DELAY=5*_types.Milliseconds.Second,NUMBER_OF_RETRIES=exports.NUMBER_OF_RETRIES=3;let Header=exports.Header=function(a){return a.UserAgent="User-Agent",a.ContentType="Content-Type",a.SdkVersion="X-Kameleoon-SDK-Version",a.SdkType="X-Kameleoon-SDK-Type",a.Authorization="Authorization",a.AcceptEncoding="Accept-Encoding",a}({});const UrlEventType=exports.UrlEventType={CustomData:"eventType=customData",StaticData:"eventType=staticData",Page:"eventType=page",Conversion:"eventType=conversion",Activity:"eventType=activity",Experiment:"eventType=experiment",Geolocation:"eventType=geolocation"},UrlParameter=exports.UrlParameter={Title:"&title=",ReferrersIndices:"&referrersIndices=",Negative:"&negative=",Revenue:"&revenue=",Overwrite:"&overwrite=",Index:"&index=",BrowserIndex:"&browserIndex=",BrowserVersion:"&browserVersion=",Href:"&href=",DeviceType:"&deviceType=",SiteCode:"&siteCode=",GoalId:"&goalId=",VisitorCode:"&visitorCode=",VariationId:"&variationId=",Ts:"&ts=",Key:"&key=",SdkName:"&sdkName=",SdkVersion:"&sdkVersion=",ValuesCountMap:"&valuesCountMap=",Nonce:"&nonce=",Id:"&id=",CustomData:"&customData=",CurrentVisit:"&currentVisit=",MaxNumberPreviousVisits:"&maxNumberPreviousVisits=",Os:"&os=",OsIndex:"&osIndex=",Country:"&country=",City:"&city=",Region:"&region=",Latitude:"&latitude=",Longitude:"&longitude=",PostalCode:"&postalCode=",Conversion:"&conversion=",StaticData:"&staticData=",Geolocation:"&geolocation=",Page:"&page=",Experiment:"&experiment=",Browser:"&browser=",Environment:"&environment=",MappingIdentifier:"&mappingIdentifier=",MappingValue:"&mappingValue=",Kcs:"&kcs="},UrlFirstParameter=exports.UrlFirstParameter={CustomData:"?customData=",StaticData:"?staticData=",Page:"?page=",Conversion:"?conversion=",Geolocation:"?geolocation=",Experiment:"?experiment=",ValuesCountMap:"?valuesCountMap=",Id:"?id=",Nonce:"?nonce=",Country:"?country=",Environment:"?environment=",City:"?city=",Region:"?region=",Latitude:"?latitude=",Longitude:"?longitude=",PostalCode:"?postalCode=",SdkName:"?sdkName=",SdkVersion:"?sdkVersion=",BrowserIndex:"?browserIndex=",BrowserVersion:"?browserVersion=",SiteCode:"?siteCode=",VisitorCode:"?visitorCode=",CurrentVisit:"?currentVisit=",MaxNumberPreviousVisits:"?maxNumberPreviousVisits=",Negative:"?negative=",Revenue:"?revenue=",Title:"?title=",Os:"?os=",OsIndex:"?osIndex=",Browser:"?browser=",ReferrersIndices:"?referrersIndices=",Overwrite:"?overwrite=",Index:"?index=",Href:"?href=",VariationId:"?variationId=",DeviceType:"?deviceType=",GoalId:"?goalId=",Ts:"?ts=",Key:"?key=",MappingIdentifier:"?mappingIdentifier=",MappingValue:"?mappingValue=",Kcs:"?kcs="},UrlQuery=exports.UrlQuery={Sse:"sse?siteCode=",Map:"map?siteCode=",Events:"events?siteCode=",Visitor:"visitor?siteCode="},UrlTracking=exports.UrlTracking={Visit:"visit/",Map:"map/"},DATA_API_DOMAIN=exports.DATA_API_DOMAIN="data.kameleoon",URL=exports.URL={SERVER_SENT_EVENTS:"https://events.kameleoon.com:8110/",CLIENT_CONFIGURATION:"https://sdk-config.kameleoon.eu/"};
2
2
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":["_types","require","Object","defineProperty","exports","value","UrlTracking","UrlQuery","UrlParameter","UrlFirstParameter","UrlEventType","URL","RETRIES_DELAY","NUMBER_OF_RETRIES","Header","DEFAULT_REQUEST_TIMEOUT","DATA_API_DOMAIN","Milliseconds","Second","UserAgent","ContentType","SdkVersion","SdkType","Authorization","AcceptEncoding","CustomData","StaticData","Page","Conversion","Activity","Experiment","Geolocation","Title","ReferrersIndices","Negative","Revenue","Overwrite","Index","BrowserIndex","BrowserVersion","Href","DeviceType","SiteCode","GoalId","VisitorCode","VariationId","Ts","Key","SdkName","ValuesCountMap","Nonce","Id","CurrentVisit","MaxNumberPreviousVisits","Os","OsIndex","Country","City","Region","Latitude","Longitude","PostalCode","Browser","Environment","MappingIdentifier","MappingValue","Sse","Map","Events","Visitor","Visit","SERVER_SENT_EVENTS","CLIENT_CONFIGURATION"],"sources":["../../src/requester/constants.ts"],"sourcesContent":["import { Milliseconds } from 'src/types';\nimport {\n EventType,\n ParameterType,\n QueryType,\n StrictEventTypeRecord,\n StrictFirstParameterRecord,\n StrictParameterRecord,\n StrictQueryRecord,\n StrictTrackingRecord,\n TrackingType,\n} from './types';\n\nexport const DEFAULT_REQUEST_TIMEOUT = 10 * Milliseconds.Second;\nexport const RETRIES_DELAY = 5 * Milliseconds.Second;\nexport const NUMBER_OF_RETRIES = 3;\n\nexport enum Header {\n UserAgent = 'User-Agent',\n ContentType = 'Content-Type',\n SdkVersion = 'X-Kameleoon-SDK-Version',\n SdkType = 'X-Kameleoon-SDK-Type',\n Authorization = 'Authorization',\n AcceptEncoding = 'Accept-Encoding',\n}\n\nexport const UrlEventType: StrictEventTypeRecord<EventType> = {\n CustomData: 'eventType=customData',\n StaticData: 'eventType=staticData',\n Page: 'eventType=page',\n Conversion: 'eventType=conversion',\n Activity: 'eventType=activity',\n Experiment: 'eventType=experiment',\n Geolocation: 'eventType=geolocation',\n};\nexport const UrlParameter: StrictParameterRecord<ParameterType> = {\n Title: '&title=',\n ReferrersIndices: '&referrersIndices=',\n Negative: '&negative=',\n Revenue: '&revenue=',\n Overwrite: '&overwrite=',\n Index: '&index=',\n BrowserIndex: '&browserIndex=',\n BrowserVersion: '&browserVersion=',\n Href: '&href=',\n DeviceType: '&deviceType=',\n SiteCode: '&siteCode=',\n GoalId: '&goalId=',\n VisitorCode: '&visitorCode=',\n VariationId: '&variationId=',\n Ts: '&ts=',\n Key: '&key=',\n SdkName: '&sdkName=',\n SdkVersion: '&sdkVersion=',\n ValuesCountMap: '&valuesCountMap=',\n Nonce: '&nonce=',\n Id: '&id=',\n CustomData: '&customData=',\n CurrentVisit: '&currentVisit=',\n MaxNumberPreviousVisits: '&maxNumberPreviousVisits=',\n Os: '&os=',\n OsIndex: '&osIndex=',\n Country: '&country=',\n City: '&city=',\n Region: '&region=',\n Latitude: '&latitude=',\n Longitude: '&longitude=',\n PostalCode: '&postalCode=',\n Conversion: '&conversion=',\n StaticData: '&staticData=',\n Geolocation: '&geolocation=',\n Page: '&page=',\n Experiment: '&experiment=',\n Browser: '&browser=',\n Environment: '&environment=',\n MappingIdentifier: '&mappingIdentifier=',\n MappingValue: '&mappingValue=',\n};\nexport const UrlFirstParameter: StrictFirstParameterRecord<ParameterType> = {\n CustomData: '?customData=',\n StaticData: '?staticData=',\n Page: '?page=',\n Conversion: '?conversion=',\n Geolocation: '?geolocation=',\n Experiment: '?experiment=',\n ValuesCountMap: '?valuesCountMap=',\n Id: '?id=',\n Nonce: '?nonce=',\n Country: '?country=',\n Environment: '?environment=',\n City: '?city=',\n Region: '?region=',\n Latitude: '?latitude=',\n Longitude: '?longitude=',\n PostalCode: '?postalCode=',\n SdkName: '?sdkName=',\n SdkVersion: '?sdkVersion=',\n BrowserIndex: '?browserIndex=',\n BrowserVersion: '?browserVersion=',\n SiteCode: '?siteCode=',\n VisitorCode: '?visitorCode=',\n CurrentVisit: '?currentVisit=',\n MaxNumberPreviousVisits: '?maxNumberPreviousVisits=',\n Negative: '?negative=',\n Revenue: '?revenue=',\n Title: '?title=',\n Os: '?os=',\n OsIndex: '?osIndex=',\n Browser: '?browser=',\n ReferrersIndices: '?referrersIndices=',\n Overwrite: '?overwrite=',\n Index: '?index=',\n Href: '?href=',\n VariationId: '?variationId=',\n DeviceType: '?deviceType=',\n GoalId: '?goalId=',\n Ts: '?ts=',\n Key: '?key=',\n MappingIdentifier: '?mappingIdentifier=',\n MappingValue: '?mappingValue=',\n};\nexport const UrlQuery: StrictQueryRecord<QueryType> = {\n Sse: 'sse?siteCode=',\n Map: 'map?siteCode=',\n Events: 'events?siteCode=',\n Visitor: 'visitor?siteCode=',\n};\nexport const UrlTracking: StrictTrackingRecord<TrackingType> = {\n Visit: 'visit/',\n Map: 'map/',\n};\nexport const DATA_API_DOMAIN = 'data.kameleoon';\n\nexport const URL = {\n SERVER_SENT_EVENTS: 'https://events.kameleoon.com:8110/',\n CLIENT_CONFIGURATION: 'https://sdk-config.kameleoon.eu/',\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","names":["_types","require","Object","defineProperty","exports","value","UrlTracking","UrlQuery","UrlParameter","UrlFirstParameter","UrlEventType","URL","RETRIES_DELAY","NUMBER_OF_RETRIES","Header","DEFAULT_REQUEST_TIMEOUT","DATA_API_DOMAIN","Milliseconds","Second","UserAgent","ContentType","SdkVersion","SdkType","Authorization","AcceptEncoding","CustomData","StaticData","Page","Conversion","Activity","Experiment","Geolocation","Title","ReferrersIndices","Negative","Revenue","Overwrite","Index","BrowserIndex","BrowserVersion","Href","DeviceType","SiteCode","GoalId","VisitorCode","VariationId","Ts","Key","SdkName","ValuesCountMap","Nonce","Id","CurrentVisit","MaxNumberPreviousVisits","Os","OsIndex","Country","City","Region","Latitude","Longitude","PostalCode","Browser","Environment","MappingIdentifier","MappingValue","Kcs","Sse","Map","Events","Visitor","Visit","SERVER_SENT_EVENTS","CLIENT_CONFIGURATION"],"sources":["../../src/requester/constants.ts"],"sourcesContent":["import { Milliseconds } from 'src/types';\nimport {\n EventType,\n ParameterType,\n QueryType,\n StrictEventTypeRecord,\n StrictFirstParameterRecord,\n StrictParameterRecord,\n StrictQueryRecord,\n StrictTrackingRecord,\n TrackingType,\n} from './types';\n\nexport const DEFAULT_REQUEST_TIMEOUT = 10 * Milliseconds.Second;\nexport const RETRIES_DELAY = 5 * Milliseconds.Second;\nexport const NUMBER_OF_RETRIES = 3;\n\nexport enum Header {\n UserAgent = 'User-Agent',\n ContentType = 'Content-Type',\n SdkVersion = 'X-Kameleoon-SDK-Version',\n SdkType = 'X-Kameleoon-SDK-Type',\n Authorization = 'Authorization',\n AcceptEncoding = 'Accept-Encoding',\n}\n\nexport const UrlEventType: StrictEventTypeRecord<EventType> = {\n CustomData: 'eventType=customData',\n StaticData: 'eventType=staticData',\n Page: 'eventType=page',\n Conversion: 'eventType=conversion',\n Activity: 'eventType=activity',\n Experiment: 'eventType=experiment',\n Geolocation: 'eventType=geolocation',\n};\nexport const UrlParameter: StrictParameterRecord<ParameterType> = {\n Title: '&title=',\n ReferrersIndices: '&referrersIndices=',\n Negative: '&negative=',\n Revenue: '&revenue=',\n Overwrite: '&overwrite=',\n Index: '&index=',\n BrowserIndex: '&browserIndex=',\n BrowserVersion: '&browserVersion=',\n Href: '&href=',\n DeviceType: '&deviceType=',\n SiteCode: '&siteCode=',\n GoalId: '&goalId=',\n VisitorCode: '&visitorCode=',\n VariationId: '&variationId=',\n Ts: '&ts=',\n Key: '&key=',\n SdkName: '&sdkName=',\n SdkVersion: '&sdkVersion=',\n ValuesCountMap: '&valuesCountMap=',\n Nonce: '&nonce=',\n Id: '&id=',\n CustomData: '&customData=',\n CurrentVisit: '&currentVisit=',\n MaxNumberPreviousVisits: '&maxNumberPreviousVisits=',\n Os: '&os=',\n OsIndex: '&osIndex=',\n Country: '&country=',\n City: '&city=',\n Region: '&region=',\n Latitude: '&latitude=',\n Longitude: '&longitude=',\n PostalCode: '&postalCode=',\n Conversion: '&conversion=',\n StaticData: '&staticData=',\n Geolocation: '&geolocation=',\n Page: '&page=',\n Experiment: '&experiment=',\n Browser: '&browser=',\n Environment: '&environment=',\n MappingIdentifier: '&mappingIdentifier=',\n MappingValue: '&mappingValue=',\n Kcs: '&kcs=',\n};\nexport const UrlFirstParameter: StrictFirstParameterRecord<ParameterType> = {\n CustomData: '?customData=',\n StaticData: '?staticData=',\n Page: '?page=',\n Conversion: '?conversion=',\n Geolocation: '?geolocation=',\n Experiment: '?experiment=',\n ValuesCountMap: '?valuesCountMap=',\n Id: '?id=',\n Nonce: '?nonce=',\n Country: '?country=',\n Environment: '?environment=',\n City: '?city=',\n Region: '?region=',\n Latitude: '?latitude=',\n Longitude: '?longitude=',\n PostalCode: '?postalCode=',\n SdkName: '?sdkName=',\n SdkVersion: '?sdkVersion=',\n BrowserIndex: '?browserIndex=',\n BrowserVersion: '?browserVersion=',\n SiteCode: '?siteCode=',\n VisitorCode: '?visitorCode=',\n CurrentVisit: '?currentVisit=',\n MaxNumberPreviousVisits: '?maxNumberPreviousVisits=',\n Negative: '?negative=',\n Revenue: '?revenue=',\n Title: '?title=',\n Os: '?os=',\n OsIndex: '?osIndex=',\n Browser: '?browser=',\n ReferrersIndices: '?referrersIndices=',\n Overwrite: '?overwrite=',\n Index: '?index=',\n Href: '?href=',\n VariationId: '?variationId=',\n DeviceType: '?deviceType=',\n GoalId: '?goalId=',\n Ts: '?ts=',\n Key: '?key=',\n MappingIdentifier: '?mappingIdentifier=',\n MappingValue: '?mappingValue=',\n Kcs: '?kcs=',\n};\nexport const UrlQuery: StrictQueryRecord<QueryType> = {\n Sse: 'sse?siteCode=',\n Map: 'map?siteCode=',\n Events: 'events?siteCode=',\n Visitor: 'visitor?siteCode=',\n};\nexport const UrlTracking: StrictTrackingRecord<TrackingType> = {\n Visit: 'visit/',\n Map: 'map/',\n};\nexport const DATA_API_DOMAIN = 'data.kameleoon';\n\nexport const URL = {\n SERVER_SENT_EVENTS: 'https://events.kameleoon.com:8110/',\n CLIENT_CONFIGURATION: 'https://sdk-config.kameleoon.eu/',\n};\n"],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  import { Result } from 'ts-res';
2
2
  import { KameleoonError } from '../kameleoonError';
3
3
  import { ConfigurationDataType, JSONType } from '../clientConfiguration';
4
- import { VisitorDataFiltersType } from '../utilities';
5
- import { RequesterParamsType, TrackDataParamsType, GetVisitorDataResultType, TrackExperimentParamsType } from './types';
4
+ import { RequesterParamsType, TrackDataParamsType, GetVisitorDataResultType, TrackExperimentParamsType, GetVisitorDataParamsType } from './types';
6
5
  export interface IRequester {
7
6
  getClientConfiguration: () => Promise<Result<ConfigurationDataType, KameleoonError>>;
8
7
  getRemoteData: (key: string) => Promise<Result<JSONType, KameleoonError>>;
@@ -15,7 +14,7 @@ export declare class Requester implements IRequester {
15
14
  constructor({ siteCode, environment, packageInfo, requestDispatcher, }: RequesterParamsType);
16
15
  getClientConfiguration(timeStamp?: number): Promise<Result<ConfigurationDataType, KameleoonError>>;
17
16
  getRemoteData(key: string): Promise<Result<JSONType, KameleoonError>>;
18
- getVisitorData(visitorCode: string, filters: VisitorDataFiltersType): Promise<Result<GetVisitorDataResultType, KameleoonError>>;
17
+ getVisitorData({ visitorCode, filters, isMappingIdentifier, }: GetVisitorDataParamsType): Promise<Result<GetVisitorDataResultType, KameleoonError>>;
19
18
  trackExperiment({ visitorCode, dataUrl, variationDataUrl, userAgent, isUnallocated, }: TrackExperimentParamsType): Promise<Result<boolean, void>>;
20
19
  trackData({ visitorCode, body, userAgent, isMappingIdentifier, }: TrackDataParamsType): Promise<Result<boolean, void>>;
21
20
  }
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Requester=void 0;var _tsRes=require("ts-res"),_kameleoonError=require("../kameleoonError"),_utilities=require("../utilities"),_constants=require("./constants"),_urlProvider=require("./urlProvider");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 Requester{constructor(a){let{siteCode:b,environment:c,packageInfo:d,requestDispatcher:e}=a;_defineProperty(this,"requestDispatcher",void 0),_defineProperty(this,"packageInfo",void 0),this.requestDispatcher=e,this.packageInfo=d,_urlProvider.UrlProvider.initialize({siteCode:b,packageInfo:d,environment:c})}async getClientConfiguration(a){const b=_urlProvider.UrlProvider.getClientConfigurationUrl(a),c={[_constants.Header.SdkType]:this.packageInfo.type.toLowerCase(),[_constants.Header.SdkVersion]:this.packageInfo.version};try{const a=await this.requestDispatcher.getClientConfiguration(b,c);return a?(0,_tsRes.Ok)(a):(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.MaximumRetriesReached))}catch(a){return(0,_tsRes.Err)(a)}}async getRemoteData(a){const b=_urlProvider.UrlProvider.getRemoteDataUrl(a);try{const a=await this.requestDispatcher.getRemoteData(b);return(0,_tsRes.Ok)(a)}catch(a){return(0,_tsRes.Err)(a)}}async getVisitorData(a,b){const c=_urlProvider.UrlProvider.getVisitorDataUrl(a,b);try{const a=await this.requestDispatcher.getRemoteData(c);return(0,_tsRes.Ok)(a)}catch(a){return(0,_tsRes.Err)(a)}}async trackExperiment(a){let{visitorCode:b,dataUrl:c,variationDataUrl:d,userAgent:e,isUnallocated:f}=a;const g=_urlProvider.UrlProvider.getTrackingUrl(b),h=c?"":_constants.UrlEventType.Activity+_constants.UrlParameter.Nonce+_utilities.Utilities.getNonce(),i=f?h:d,j=i?c+"\n"+i:c,k=e?{[_constants.Header.UserAgent]:e}:void 0;try{const a=await this.requestDispatcher.track({url:g,headers:k,body:j});return(0,_tsRes.Ok)(a)}catch(a){return(0,_tsRes.Err)()}}async trackData(a){let{visitorCode:b,body:c,userAgent:d,isMappingIdentifier:e}=a;const f=_urlProvider.UrlProvider.getTrackingUrl(b,e),g=c||_constants.UrlEventType.Activity+_constants.UrlParameter.Nonce+_utilities.Utilities.getNonce(),h=d?{[_constants.Header.UserAgent]:d}:void 0;try{const a=await this.requestDispatcher.track({url:f,headers:h,body:g});return(0,_tsRes.Ok)(a)}catch(a){return(0,_tsRes.Err)()}}}exports.Requester=Requester;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Requester=void 0;var _tsRes=require("ts-res"),_kameleoonError=require("../kameleoonError"),_utilities=require("../utilities"),_constants=require("./constants"),_urlProvider=require("./urlProvider");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 Requester{constructor(a){let{siteCode:b,environment:c,packageInfo:d,requestDispatcher:e}=a;_defineProperty(this,"requestDispatcher",void 0),_defineProperty(this,"packageInfo",void 0),this.requestDispatcher=e,this.packageInfo=d,_urlProvider.UrlProvider.initialize({siteCode:b,packageInfo:d,environment:c})}async getClientConfiguration(a){const b=_urlProvider.UrlProvider.getClientConfigurationUrl(a),c={[_constants.Header.SdkType]:this.packageInfo.type.toLowerCase(),[_constants.Header.SdkVersion]:this.packageInfo.version};try{const a=await this.requestDispatcher.getClientConfiguration(b,c);return a?(0,_tsRes.Ok)(a):(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.MaximumRetriesReached))}catch(a){return(0,_tsRes.Err)(a)}}async getRemoteData(a){const b=_urlProvider.UrlProvider.getRemoteDataUrl(a);try{const a=await this.requestDispatcher.getRemoteData(b);return(0,_tsRes.Ok)(a)}catch(a){return(0,_tsRes.Err)(a)}}async getVisitorData(a){let{visitorCode:b,filters:c,isMappingIdentifier:d}=a;const e=_urlProvider.UrlProvider.getVisitorDataUrl({visitorCode:b,filters:c,isMappingIdentifier:d});try{const a=await this.requestDispatcher.getRemoteData(e);return(0,_tsRes.Ok)(a)}catch(a){return(0,_tsRes.Err)(a)}}async trackExperiment(a){let{visitorCode:b,dataUrl:c,variationDataUrl:d,userAgent:e,isUnallocated:f}=a;const g=_urlProvider.UrlProvider.getTrackingUrl(b),h=c?"":_constants.UrlEventType.Activity+_constants.UrlParameter.Nonce+_utilities.Utilities.getNonce(),i=f?h:d,j=i?c+"\n"+i:c,k=e?{[_constants.Header.UserAgent]:e}:void 0;try{const a=await this.requestDispatcher.track({url:g,headers:k,body:j});return(0,_tsRes.Ok)(a)}catch(_){return(0,_tsRes.Err)()}}async trackData(a){let{visitorCode:b,body:c,userAgent:d,isMappingIdentifier:e}=a;const f=_urlProvider.UrlProvider.getTrackingUrl(b,e),g=c||_constants.UrlEventType.Activity+_constants.UrlParameter.Nonce+_utilities.Utilities.getNonce(),h=d?{[_constants.Header.UserAgent]:d}:void 0;try{const a=await this.requestDispatcher.track({url:f,headers:h,body:g});return(0,_tsRes.Ok)(a)}catch(_){return(0,_tsRes.Err)()}}}exports.Requester=Requester;
2
2
  //# sourceMappingURL=requester.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"requester.js","names":["Requester","constructor","a","siteCode","environment","packageInfo","requestDispatcher","_defineProperty","UrlProvider","initialize","getClientConfiguration","timeStamp","requestUrl","getClientConfigurationUrl","headers","Header","SdkType","type","toLowerCase","SdkVersion","version","response","Ok","Err","KameleoonError","KameleoonException","MaximumRetriesReached","error","getRemoteData","key","getRemoteDataUrl","getVisitorData","visitorCode","filters","getVisitorDataUrl","trackExperiment","dataUrl","variationDataUrl","userAgent","isUnallocated","url","getTrackingUrl","unallocatedAddition","UrlEventType","Activity","UrlParameter","Nonce","Utilities","getNonce","bodyAddition","extendedBody","UserAgent","track","body","_","trackData","isMappingIdentifier","requestBody","exports"],"sources":["../../src/requester/requester.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport { ExternalPackageInfoType } from 'src/types';\nimport { KameleoonError, KameleoonException } from 'src/kameleoonError';\nimport { ConfigurationDataType, JSONType } from 'src/clientConfiguration';\nimport { Utilities, VisitorDataFiltersType } from 'src/utilities';\nimport { UrlParameter, Header, UrlEventType } from './constants';\nimport {\n RequesterParamsType,\n TrackDataParamsType,\n IExternalRequestDispatcher,\n GetVisitorDataResultType,\n TrackExperimentParamsType,\n HeadersType,\n} from './types';\nimport { UrlProvider } from './urlProvider';\n\nexport interface IRequester {\n getClientConfiguration: () => Promise<\n Result<ConfigurationDataType, KameleoonError>\n >;\n getRemoteData: (key: string) => Promise<Result<JSONType, KameleoonError>>;\n trackData: ({\n visitorCode,\n body,\n userAgent,\n }: TrackDataParamsType) => Promise<Result<boolean, void>>;\n trackExperiment: ({\n visitorCode,\n dataUrl,\n variationDataUrl,\n isUnallocated,\n isTargetedRule,\n userAgent,\n }: TrackExperimentParamsType) => Promise<Result<boolean, void>>;\n}\n\nexport class Requester implements IRequester {\n private requestDispatcher: IExternalRequestDispatcher;\n private packageInfo: ExternalPackageInfoType;\n\n constructor({\n siteCode,\n environment,\n packageInfo,\n requestDispatcher,\n }: RequesterParamsType) {\n this.requestDispatcher = requestDispatcher;\n this.packageInfo = packageInfo;\n\n UrlProvider.initialize({ siteCode, packageInfo, environment });\n }\n\n public async getClientConfiguration(\n timeStamp?: number,\n ): Promise<Result<ConfigurationDataType, KameleoonError>> {\n const requestUrl = UrlProvider.getClientConfigurationUrl(timeStamp);\n\n const headers: HeadersType = {\n [Header.SdkType]: this.packageInfo.type.toLowerCase(),\n [Header.SdkVersion]: this.packageInfo.version,\n };\n\n try {\n const response = await this.requestDispatcher.getClientConfiguration(\n requestUrl,\n headers,\n );\n\n if (response) {\n return Ok(response as ConfigurationDataType);\n }\n\n return Err(new KameleoonError(KameleoonException.MaximumRetriesReached));\n } catch (error) {\n return Err(error as KameleoonError);\n }\n }\n\n public async getRemoteData(\n key: string,\n ): Promise<Result<JSONType, KameleoonError>> {\n const requestUrl = UrlProvider.getRemoteDataUrl(key);\n\n try {\n const response = await this.requestDispatcher.getRemoteData(requestUrl);\n return Ok(response);\n } catch (error) {\n return Err(error as KameleoonError);\n }\n }\n\n public async getVisitorData(\n visitorCode: string,\n filters: VisitorDataFiltersType,\n ): Promise<Result<GetVisitorDataResultType, KameleoonError>> {\n const requestUrl = UrlProvider.getVisitorDataUrl(visitorCode, filters);\n\n try {\n const response = await this.requestDispatcher.getRemoteData(requestUrl);\n return Ok(response as GetVisitorDataResultType);\n } catch (error) {\n return Err(error as KameleoonError);\n }\n }\n\n public async trackExperiment({\n visitorCode,\n dataUrl,\n variationDataUrl,\n userAgent,\n isUnallocated,\n }: TrackExperimentParamsType): Promise<Result<boolean, void>> {\n const url = UrlProvider.getTrackingUrl(visitorCode);\n\n const unallocatedAddition = !dataUrl\n ? UrlEventType.Activity + UrlParameter.Nonce + Utilities.getNonce()\n : '';\n\n const bodyAddition = isUnallocated ? unallocatedAddition : variationDataUrl;\n\n const extendedBody = bodyAddition ? dataUrl + '\\n' + bodyAddition : dataUrl;\n\n const headers: HeadersType | undefined = userAgent\n ? {\n [Header.UserAgent]: userAgent,\n }\n : undefined;\n\n try {\n const response = await this.requestDispatcher.track({\n url,\n headers,\n body: extendedBody,\n });\n\n return Ok(response);\n } catch (_) {\n return Err();\n }\n }\n\n public async trackData({\n visitorCode,\n body,\n userAgent,\n isMappingIdentifier,\n }: TrackDataParamsType): Promise<Result<boolean, void>> {\n const url = UrlProvider.getTrackingUrl(visitorCode, isMappingIdentifier);\n\n const requestBody =\n body || UrlEventType.Activity + UrlParameter.Nonce + Utilities.getNonce();\n\n const headers = userAgent\n ? {\n [Header.UserAgent]: userAgent,\n }\n : undefined;\n\n try {\n const response = await this.requestDispatcher.track({\n url,\n headers,\n body: requestBody,\n });\n\n return Ok(response);\n } catch (_) {\n return Err();\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"requester.js","names":["Requester","constructor","a","siteCode","environment","packageInfo","requestDispatcher","_defineProperty","UrlProvider","initialize","getClientConfiguration","timeStamp","requestUrl","getClientConfigurationUrl","headers","Header","SdkType","type","toLowerCase","SdkVersion","version","response","Ok","Err","KameleoonError","KameleoonException","MaximumRetriesReached","error","getRemoteData","key","getRemoteDataUrl","getVisitorData","visitorCode","filters","isMappingIdentifier","getVisitorDataUrl","trackExperiment","dataUrl","variationDataUrl","userAgent","isUnallocated","url","getTrackingUrl","unallocatedAddition","UrlEventType","Activity","UrlParameter","Nonce","Utilities","getNonce","bodyAddition","extendedBody","UserAgent","track","body","_","trackData","requestBody","exports"],"sources":["../../src/requester/requester.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport { ExternalPackageInfoType } from 'src/types';\nimport { KameleoonError, KameleoonException } from 'src/kameleoonError';\nimport { ConfigurationDataType, JSONType } from 'src/clientConfiguration';\nimport { Utilities } from 'src/utilities';\nimport { UrlParameter, Header, UrlEventType } from './constants';\nimport {\n RequesterParamsType,\n TrackDataParamsType,\n IExternalRequestDispatcher,\n GetVisitorDataResultType,\n TrackExperimentParamsType,\n HeadersType,\n GetVisitorDataParamsType,\n} from './types';\nimport { UrlProvider } from './urlProvider';\n\nexport interface IRequester {\n getClientConfiguration: () => Promise<\n Result<ConfigurationDataType, KameleoonError>\n >;\n getRemoteData: (key: string) => Promise<Result<JSONType, KameleoonError>>;\n trackData: ({\n visitorCode,\n body,\n userAgent,\n }: TrackDataParamsType) => Promise<Result<boolean, void>>;\n trackExperiment: ({\n visitorCode,\n dataUrl,\n variationDataUrl,\n isUnallocated,\n isTargetedRule,\n userAgent,\n }: TrackExperimentParamsType) => Promise<Result<boolean, void>>;\n}\n\nexport class Requester implements IRequester {\n private requestDispatcher: IExternalRequestDispatcher;\n private packageInfo: ExternalPackageInfoType;\n\n constructor({\n siteCode,\n environment,\n packageInfo,\n requestDispatcher,\n }: RequesterParamsType) {\n this.requestDispatcher = requestDispatcher;\n this.packageInfo = packageInfo;\n\n UrlProvider.initialize({ siteCode, packageInfo, environment });\n }\n\n public async getClientConfiguration(\n timeStamp?: number,\n ): Promise<Result<ConfigurationDataType, KameleoonError>> {\n const requestUrl = UrlProvider.getClientConfigurationUrl(timeStamp);\n\n const headers: HeadersType = {\n [Header.SdkType]: this.packageInfo.type.toLowerCase(),\n [Header.SdkVersion]: this.packageInfo.version,\n };\n\n try {\n const response = await this.requestDispatcher.getClientConfiguration(\n requestUrl,\n headers,\n );\n\n if (response) {\n return Ok(response as ConfigurationDataType);\n }\n\n return Err(new KameleoonError(KameleoonException.MaximumRetriesReached));\n } catch (error) {\n return Err(error as KameleoonError);\n }\n }\n\n public async getRemoteData(\n key: string,\n ): Promise<Result<JSONType, KameleoonError>> {\n const requestUrl = UrlProvider.getRemoteDataUrl(key);\n\n try {\n const response = await this.requestDispatcher.getRemoteData(requestUrl);\n return Ok(response);\n } catch (error) {\n return Err(error as KameleoonError);\n }\n }\n\n public async getVisitorData({\n visitorCode,\n filters,\n isMappingIdentifier,\n }: GetVisitorDataParamsType): Promise<\n Result<GetVisitorDataResultType, KameleoonError>\n > {\n const requestUrl = UrlProvider.getVisitorDataUrl({\n visitorCode,\n filters,\n isMappingIdentifier,\n });\n\n try {\n const response = await this.requestDispatcher.getRemoteData(requestUrl);\n return Ok(response as GetVisitorDataResultType);\n } catch (error) {\n return Err(error as KameleoonError);\n }\n }\n\n public async trackExperiment({\n visitorCode,\n dataUrl,\n variationDataUrl,\n userAgent,\n isUnallocated,\n }: TrackExperimentParamsType): Promise<Result<boolean, void>> {\n const url = UrlProvider.getTrackingUrl(visitorCode);\n\n const unallocatedAddition = !dataUrl\n ? UrlEventType.Activity + UrlParameter.Nonce + Utilities.getNonce()\n : '';\n\n const bodyAddition = isUnallocated ? unallocatedAddition : variationDataUrl;\n\n const extendedBody = bodyAddition ? dataUrl + '\\n' + bodyAddition : dataUrl;\n\n const headers: HeadersType | undefined = userAgent\n ? {\n [Header.UserAgent]: userAgent,\n }\n : undefined;\n\n try {\n const response = await this.requestDispatcher.track({\n url,\n headers,\n body: extendedBody,\n });\n\n return Ok(response);\n } catch (_) {\n return Err();\n }\n }\n\n public async trackData({\n visitorCode,\n body,\n userAgent,\n isMappingIdentifier,\n }: TrackDataParamsType): Promise<Result<boolean, void>> {\n const url = UrlProvider.getTrackingUrl(visitorCode, isMappingIdentifier);\n\n const requestBody =\n body || UrlEventType.Activity + UrlParameter.Nonce + Utilities.getNonce();\n\n const headers = userAgent\n ? {\n [Header.UserAgent]: userAgent,\n }\n : undefined;\n\n try {\n const response = await this.requestDispatcher.track({\n url,\n headers,\n body: requestBody,\n });\n\n return Ok(response);\n } catch (_) {\n return Err();\n }\n }\n}\n"],"mappings":"qxBAqCO,KAAM,CAAAA,SAAgC,CAI3CC,WAAWA,CAAAC,CAAA,CAKa,IALZ,CACVC,QAAQ,CAARA,CAAQ,CACRC,WAAW,CAAXA,CAAW,CACXC,WAAW,CAAXA,CAAW,CACXC,iBAAiB,CAAjBA,CACmB,CAAC,CAAAJ,CAAA,CAAAK,eAAA,kCAAAA,eAAA,4BACpB,IAAI,CAACD,iBAAiB,CAAGA,CAAiB,CAC1C,IAAI,CAACD,WAAW,CAAGA,CAAW,CAE9BG,wBAAW,CAACC,UAAU,CAAC,CAAEN,QAAQ,CAARA,CAAQ,CAAEE,WAAW,CAAXA,CAAW,CAAED,WAAW,CAAXA,CAAY,CAAC,CAC/D,CAEA,KAAa,CAAAM,sBAAsBA,CACjCC,CAAkB,CACsC,MAClD,CAAAC,CAAU,CAAGJ,wBAAW,CAACK,yBAAyB,CAACF,CAAS,CAAC,CAE7DG,CAAoB,CAAG,CAC3B,CAACC,iBAAM,CAACC,OAAO,EAAG,IAAI,CAACX,WAAW,CAACY,IAAI,CAACC,WAAW,CAAC,CAAC,CACrD,CAACH,iBAAM,CAACI,UAAU,EAAG,IAAI,CAACd,WAAW,CAACe,OACxC,CAAC,CAED,GAAI,CACF,KAAM,CAAAC,CAAQ,CAAG,KAAM,KAAI,CAACf,iBAAiB,CAACI,sBAAsB,CAClEE,CAAU,CACVE,CACF,CAAC,CAAC,MAEE,CAAAO,CAAQ,CACH,GAAAC,SAAE,EAACD,CAAiC,CAAC,CAGvC,GAAAE,UAAG,EAAC,GAAI,CAAAC,8BAAc,CAACC,kCAAkB,CAACC,qBAAqB,CAAC,CACzE,CAAE,MAAOC,CAAK,CAAE,CACd,MAAO,GAAAJ,UAAG,EAACI,CAAuB,CACpC,CACF,CAEA,KAAa,CAAAC,aAAaA,CACxBC,CAAW,CACgC,CAC3C,KAAM,CAAAjB,CAAU,CAAGJ,wBAAW,CAACsB,gBAAgB,CAACD,CAAG,CAAC,CAEpD,GAAI,CACF,KAAM,CAAAR,CAAQ,CAAG,KAAM,KAAI,CAACf,iBAAiB,CAACsB,aAAa,CAAChB,CAAU,CAAC,CACvE,MAAO,GAAAU,SAAE,EAACD,CAAQ,CACpB,CAAE,MAAOM,CAAK,CAAE,CACd,MAAO,GAAAJ,UAAG,EAACI,CAAuB,CACpC,CACF,CAEA,KAAa,CAAAI,cAAcA,CAAA7B,CAAA,CAMzB,IAN0B,CAC1B8B,WAAW,CAAXA,CAAW,CACXC,OAAO,CAAPA,CAAO,CACPC,mBAAmB,CAAnBA,CACwB,CAAC,CAAAhC,CAAA,CAGzB,KAAM,CAAAU,CAAU,CAAGJ,wBAAW,CAAC2B,iBAAiB,CAAC,CAC/CH,WAAW,CAAXA,CAAW,CACXC,OAAO,CAAPA,CAAO,CACPC,mBAAmB,CAAnBA,CACF,CAAC,CAAC,CAEF,GAAI,CACF,KAAM,CAAAb,CAAQ,CAAG,KAAM,KAAI,CAACf,iBAAiB,CAACsB,aAAa,CAAChB,CAAU,CAAC,CACvE,MAAO,GAAAU,SAAE,EAACD,CAAoC,CAChD,CAAE,MAAOM,CAAK,CAAE,CACd,MAAO,GAAAJ,UAAG,EAACI,CAAuB,CACpC,CACF,CAEA,KAAa,CAAAS,eAAeA,CAAAlC,CAAA,CAMkC,IANjC,CAC3B8B,WAAW,CAAXA,CAAW,CACXK,OAAO,CAAPA,CAAO,CACPC,gBAAgB,CAAhBA,CAAgB,CAChBC,SAAS,CAATA,CAAS,CACTC,aAAa,CAAbA,CACyB,CAAC,CAAAtC,CAAA,MACpB,CAAAuC,CAAG,CAAGjC,wBAAW,CAACkC,cAAc,CAACV,CAAW,CAAC,CAE7CW,CAAmB,CAAIN,CAAO,CAEhC,EAAE,CADFO,uBAAY,CAACC,QAAQ,CAAGC,uBAAY,CAACC,KAAK,CAAGC,oBAAS,CAACC,QAAQ,CAAC,CAC9D,CAEAC,CAAY,CAAGV,CAAa,CAAGG,CAAmB,CAAGL,CAAgB,CAErEa,CAAY,CAAGD,CAAY,CAAGb,CAAO,CAAG,IAAI,CAAGa,CAAY,CAAGb,CAAO,CAErEvB,CAAgC,CAAGyB,CAAS,CAC9C,CACE,CAACxB,iBAAM,CAACqC,SAAS,EAAGb,CACtB,CAAC,OACQ,CAEb,GAAI,CACF,KAAM,CAAAlB,CAAQ,CAAG,KAAM,KAAI,CAACf,iBAAiB,CAAC+C,KAAK,CAAC,CAClDZ,GAAG,CAAHA,CAAG,CACH3B,OAAO,CAAPA,CAAO,CACPwC,IAAI,CAAEH,CACR,CAAC,CAAC,CAEF,MAAO,GAAA7B,SAAE,EAACD,CAAQ,CACpB,CAAE,MAAOkC,CAAC,CAAE,CACV,MAAO,GAAAhC,UAAG,EAAC,CACb,CACF,CAEA,KAAa,CAAAiC,SAASA,CAAAtD,CAAA,CAKkC,IALjC,CACrB8B,WAAW,CAAXA,CAAW,CACXsB,IAAI,CAAJA,CAAI,CACJf,SAAS,CAATA,CAAS,CACTL,mBAAmB,CAAnBA,CACmB,CAAC,CAAAhC,CAAA,MACd,CAAAuC,CAAG,CAAGjC,wBAAW,CAACkC,cAAc,CAACV,CAAW,CAAEE,CAAmB,CAAC,CAElEuB,CAAW,CACfH,CAAI,EAAIV,uBAAY,CAACC,QAAQ,CAAGC,uBAAY,CAACC,KAAK,CAAGC,oBAAS,CAACC,QAAQ,CAAC,CAAC,CAErEnC,CAAO,CAAGyB,CAAS,CACrB,CACE,CAACxB,iBAAM,CAACqC,SAAS,EAAGb,CACtB,CAAC,OACQ,CAEb,GAAI,CACF,KAAM,CAAAlB,CAAQ,CAAG,KAAM,KAAI,CAACf,iBAAiB,CAAC+C,KAAK,CAAC,CAClDZ,GAAG,CAAHA,CAAG,CACH3B,OAAO,CAAPA,CAAO,CACPwC,IAAI,CAAEG,CACR,CAAC,CAAC,CAEF,MAAO,GAAAnC,SAAE,EAACD,CAAQ,CACpB,CAAE,MAAOkC,CAAC,CAAE,CACV,MAAO,GAAAhC,UAAG,EAAC,CACb,CACF,CACF,CAACmC,OAAA,CAAA1D,SAAA,CAAAA,SAAA"}
@@ -1,8 +1,9 @@
1
1
  import { JSONType } from '../clientConfiguration';
2
2
  import { Environment, ExternalPackageInfoType } from '../types';
3
3
  import { BrowserIndexMap, BrowserType, OperatingSystemType } from '../kameleoonData';
4
- import { DeviceType, OperatingSystemIndexMap } from '../kameleoonData/types';
4
+ import { DeviceType, KCSType, OperatingSystemIndexMap } from '../kameleoonData/types';
5
5
  import { Header } from './constants';
6
+ import { VisitorDataFiltersType } from '../utilities';
6
7
  export type UrlProviderInitializeParamsType = {
7
8
  siteCode: string;
8
9
  packageInfo: ExternalPackageInfoType;
@@ -28,6 +29,16 @@ export type TrackDataParamsType = {
28
29
  userAgent?: string;
29
30
  isMappingIdentifier?: boolean;
30
31
  };
32
+ export type GetVisitorDataParamsType = {
33
+ visitorCode: string;
34
+ filters: VisitorDataFiltersType;
35
+ isMappingIdentifier?: boolean;
36
+ };
37
+ export type GetVisitorDataUrlParamsType = {
38
+ visitorCode: string;
39
+ filters: VisitorDataFiltersType;
40
+ isMappingIdentifier?: boolean;
41
+ };
31
42
  type EventDataType = {
32
43
  sdk?: {
33
44
  name: string;
@@ -115,6 +126,7 @@ export type VisitType = {
115
126
  export type GetVisitorDataResultType = {
116
127
  previousVisits?: VisitType[];
117
128
  currentVisit?: VisitType;
129
+ kcs?: KCSType;
118
130
  };
119
131
  export declare enum HttpMethod {
120
132
  Get = "GET",
@@ -126,7 +138,7 @@ export declare enum DataApiQuery {
126
138
  DataMap = 2
127
139
  }
128
140
  declare const EVENT_TYPE_KEYS: readonly ["customData", "staticData", "page", "conversion", "geolocation", "activity", "experiment"];
129
- declare const PARAMETER_KEYS: readonly ["valuesCountMap", "mappingValue", "id", "nonce", "country", "environment", "city", "region", "latitude", "geolocation", "longitude", "mappingIdentifier", "postalCode", "sdkName", "sdkVersion", "browserIndex", "browserVersion", "siteCode", "visitorCode", "currentVisit", "maxNumberPreviousVisits", "customData", "negative", "revenue", "title", "os", "conversion", "staticData", "osIndex", "browser", "referrersIndices", "overwrite", "index", "href", "experiment", "page", "variationId", "deviceType", "goalId", "ts", "key"];
141
+ declare const PARAMETER_KEYS: readonly ["valuesCountMap", "mappingValue", "id", "nonce", "country", "environment", "city", "region", "latitude", "geolocation", "longitude", "mappingIdentifier", "postalCode", "sdkName", "sdkVersion", "kcs", "browserIndex", "browserVersion", "siteCode", "visitorCode", "currentVisit", "maxNumberPreviousVisits", "customData", "negative", "revenue", "title", "os", "conversion", "staticData", "osIndex", "browser", "referrersIndices", "overwrite", "index", "href", "experiment", "page", "variationId", "deviceType", "goalId", "ts", "key"];
130
142
  declare const TRACKING_KEYS: readonly ["visit", "map"];
131
143
  declare const QUERY_KEYS: readonly ["sse", "visitor", "map", "events"];
132
144
  export type TrackingType = Record<Capitalize<(typeof TRACKING_KEYS)[number]>, string>;
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.HttpMethod=exports.DataApiQuery=void 0;let HttpMethod=exports.HttpMethod=function(a){return a.Get="GET",a.Post="POST",a}({}),DataApiQuery=exports.DataApiQuery=function(a){return a[a.VisitEvent=0]="VisitEvent",a[a.VisitData=1]="VisitData",a[a.DataMap=2]="DataMap",a}({});const EVENT_TYPE_KEYS=["customData","staticData","page","conversion","geolocation","activity","experiment"],PARAMETER_KEYS=["valuesCountMap","mappingValue","id","nonce","country","environment","city","region","latitude","geolocation","longitude","mappingIdentifier","postalCode","sdkName","sdkVersion","browserIndex","browserVersion","siteCode","visitorCode","currentVisit","maxNumberPreviousVisits","customData","negative","revenue","title","os","conversion","staticData","osIndex","browser","referrersIndices","overwrite","index","href","experiment","page","variationId","deviceType","goalId","ts","key"],TRACKING_KEYS=["visit","map"],QUERY_KEYS=["sse","visitor","map","events"];
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.HttpMethod=exports.DataApiQuery=void 0;let HttpMethod=exports.HttpMethod=function(a){return a.Get="GET",a.Post="POST",a}({}),DataApiQuery=exports.DataApiQuery=function(a){return a[a.VisitEvent=0]="VisitEvent",a[a.VisitData=1]="VisitData",a[a.DataMap=2]="DataMap",a}({});const EVENT_TYPE_KEYS=["customData","staticData","page","conversion","geolocation","activity","experiment"],PARAMETER_KEYS=["valuesCountMap","mappingValue","id","nonce","country","environment","city","region","latitude","geolocation","longitude","mappingIdentifier","postalCode","sdkName","sdkVersion","kcs","browserIndex","browserVersion","siteCode","visitorCode","currentVisit","maxNumberPreviousVisits","customData","negative","revenue","title","os","conversion","staticData","osIndex","browser","referrersIndices","overwrite","index","href","experiment","page","variationId","deviceType","goalId","ts","key"],TRACKING_KEYS=["visit","map"],QUERY_KEYS=["sse","visitor","map","events"];
2
2
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["HttpMethod","exports","Get","Post","DataApiQuery","VisitEvent","VisitData","DataMap","EVENT_TYPE_KEYS","PARAMETER_KEYS","TRACKING_KEYS","QUERY_KEYS"],"sources":["../../src/requester/types.ts"],"sourcesContent":["import { JSONType } from 'src/clientConfiguration';\nimport { Environment, ExternalPackageInfoType } from 'src/types';\nimport {\n BrowserIndexMap,\n BrowserType,\n OperatingSystemType,\n} from 'src/kameleoonData';\nimport { DeviceType, OperatingSystemIndexMap } from 'src/kameleoonData/types';\nimport { Header } from './constants';\n\nexport type UrlProviderInitializeParamsType = {\n siteCode: string;\n packageInfo: ExternalPackageInfoType;\n environment?: Environment;\n};\n\nexport type RequesterParamsType = {\n siteCode: string;\n environment?: Environment;\n packageInfo: ExternalPackageInfoType;\n requestDispatcher: IExternalRequestDispatcher;\n};\n\nexport type TrackExperimentParamsType = {\n dataUrl: string;\n variationDataUrl: string;\n visitorCode: string;\n isUnallocated: boolean;\n userAgent?: string;\n isTargetedRule?: boolean;\n};\n\nexport type TrackDataParamsType = {\n visitorCode: string;\n body: string;\n userAgent?: string;\n isMappingIdentifier?: boolean;\n};\n\ntype EventDataType = {\n sdk?: {\n name: string;\n version: string;\n };\n itp: boolean;\n time: number;\n};\n\ntype CustomDataEventType = {\n data: {\n index: number;\n valuesCountMap: {\n [value: string]: number;\n };\n overwrite: boolean;\n mappingIdentifier: boolean;\n };\n} & EventDataType;\n\ntype ExperimentEventType = {\n data: {\n id: number;\n variationId: number;\n };\n} & EventDataType;\n\ntype ConversionEventType = {\n data: {\n goalId: number;\n revenue: number;\n negative: boolean;\n };\n} & EventDataType;\n\ntype BrowserIndexType = (typeof BrowserIndexMap)[BrowserType];\ntype OperatingSystemIndexType =\n (typeof OperatingSystemIndexMap)[OperatingSystemType];\n\nexport type PageEventType = {\n data: {\n href: string;\n canonicalHref: string | null;\n title: string;\n keyPagesIndices: number[] | [null];\n referrerHref: string | null;\n referrersIndices: number[] | [null];\n };\n} & EventDataType;\n\nexport type GeolocationEventType = {\n data: {\n country: string;\n region: string | null;\n city: string | null;\n postalCode: string | null;\n latitude: number | null;\n longitude: number | null;\n };\n} & EventDataType;\n\nexport type StaticDataEventType = {\n data: {\n visitNumber: number;\n timeSincePreviousVisit: number;\n firstReferrerHref: string | null;\n browser: BrowserType | null;\n browserIndex: BrowserIndexType | null;\n browserVersion: number | null;\n os: OperatingSystemType | null;\n osIndex: OperatingSystemIndexType | null;\n windowWidth: number | null;\n windowHeight: number | null;\n screenWidth: number | null;\n screenHeight: number | null;\n timeZoneId: string | null;\n localeLanguageTag: string | null;\n deviceType: DeviceType | null;\n mappingIdentifier: string | null;\n };\n} & EventDataType;\n\nexport type VisitType = {\n siteCode: string;\n visitorCode: string;\n timeStarted: number;\n customDataEvents?: CustomDataEventType[];\n experimentEvents?: ExperimentEventType[];\n conversionEvents?: ConversionEventType[];\n geolocationEvents?: GeolocationEventType[];\n staticDataEvent?: StaticDataEventType;\n pageEvents?: PageEventType[];\n};\n\nexport type GetVisitorDataResultType = {\n previousVisits?: VisitType[];\n currentVisit?: VisitType;\n};\n\nexport enum HttpMethod {\n Get = 'GET',\n Post = 'POST',\n}\n\nexport enum DataApiQuery {\n VisitEvent,\n VisitData,\n DataMap,\n}\n\nconst EVENT_TYPE_KEYS = [\n 'customData',\n 'staticData',\n 'page',\n 'conversion',\n 'geolocation',\n 'activity',\n 'experiment',\n] as const;\nconst PARAMETER_KEYS = [\n 'valuesCountMap',\n 'mappingValue',\n 'id',\n 'nonce',\n 'country',\n 'environment',\n 'city',\n 'region',\n 'latitude',\n 'geolocation',\n 'longitude',\n 'mappingIdentifier',\n 'postalCode',\n 'sdkName',\n 'sdkVersion',\n 'browserIndex',\n 'browserVersion',\n 'siteCode',\n 'visitorCode',\n 'currentVisit',\n 'maxNumberPreviousVisits',\n 'customData',\n 'negative',\n 'revenue',\n 'title',\n 'os',\n 'conversion',\n 'staticData',\n 'osIndex',\n 'browser',\n 'referrersIndices',\n 'overwrite',\n 'index',\n 'href',\n 'experiment',\n 'page',\n 'variationId',\n 'deviceType',\n 'goalId',\n 'ts',\n 'key',\n] as const;\nconst TRACKING_KEYS = ['visit', 'map'] as const;\nconst QUERY_KEYS = ['sse', 'visitor', 'map', 'events'] as const;\n\nexport type TrackingType = Record<\n Capitalize<(typeof TRACKING_KEYS)[number]>,\n string\n>;\nexport type QueryType = Record<Capitalize<(typeof QUERY_KEYS)[number]>, string>;\nexport type ParameterType = Record<\n Capitalize<(typeof PARAMETER_KEYS)[number]>,\n string\n>;\nexport type EventType = Record<\n Capitalize<(typeof EVENT_TYPE_KEYS)[number]>,\n string\n>;\n\nexport type StrictTrackingRecord<T> = {\n [K in keyof T]: `${Uncapitalize<K & string>}/`;\n};\nexport type StrictQueryRecord<T> = {\n [K in keyof T]: `${Uncapitalize<K & string>}?siteCode=`;\n};\nexport type StrictEventTypeRecord<T> = {\n [K in keyof T]: `eventType=${Uncapitalize<K & string>}`;\n};\nexport type StrictParameterRecord<T> = {\n [K in keyof T]: `&${Uncapitalize<K & string>}=`;\n};\nexport type StrictFirstParameterRecord<T> = {\n [K in keyof T]: `?${Uncapitalize<K & string>}=`;\n};\n\n/**\n * @type HeadersType - a type of headers available in the request\n * */\nexport type HeadersType = Partial<Record<Header, string>>;\n\nexport type TrackParametersType = {\n url: string;\n headers?: HeadersType;\n body: string;\n};\n\n/**\n * @interface an interface of External Request Dispatcher which will be used to perform requests.\n * */\nexport interface IExternalRequestDispatcher {\n /**\n * @method track - send a track request\n * @param {TrackParametersType} parameters - track parameters\n * */\n track: (params: TrackParametersType) => Promise<boolean>;\n /**\n * @method getClientConfiguration - get client configuration\n * @param {string} url - url address\n * @param {HeadersType} headers - headers\n * */\n getClientConfiguration: (\n url: string,\n headers: HeadersType,\n ) => Promise<JSONType>;\n /**\n * @method getRemoteData - get data from remote server of Kameleoon\n * @param {string} url - url address\n * */\n getRemoteData: (url: string) => Promise<JSONType>;\n}\n"],"mappings":"sHA0IY,CAAAA,UAAU,CAAAC,OAAA,CAAAD,UAAA,UAAVA,CAAU,QAAV,CAAAA,CAAU,CAAAE,GAAA,OAAVF,CAAU,CAAAG,IAAA,QAAVH,CAAU,MAKVI,YAAY,CAAAH,OAAA,CAAAG,YAAA,UAAZA,CAAY,QAAZ,CAAAA,CAAY,CAAZA,CAAY,CAAAC,UAAA,iBAAZD,CAAY,CAAZA,CAAY,CAAAE,SAAA,gBAAZF,CAAY,CAAZA,CAAY,CAAAG,OAAA,cAAZH,CAAY,WAMlB,CAAAI,eAAe,CAAG,CACtB,YAAY,CACZ,YAAY,CACZ,MAAM,CACN,YAAY,CACZ,aAAa,CACb,UAAU,CACV,YAAY,CACJ,CACJC,cAAc,CAAG,CACrB,gBAAgB,CAChB,cAAc,CACd,IAAI,CACJ,OAAO,CACP,SAAS,CACT,aAAa,CACb,MAAM,CACN,QAAQ,CACR,UAAU,CACV,aAAa,CACb,WAAW,CACX,mBAAmB,CACnB,YAAY,CACZ,SAAS,CACT,YAAY,CACZ,cAAc,CACd,gBAAgB,CAChB,UAAU,CACV,aAAa,CACb,cAAc,CACd,yBAAyB,CACzB,YAAY,CACZ,UAAU,CACV,SAAS,CACT,OAAO,CACP,IAAI,CACJ,YAAY,CACZ,YAAY,CACZ,SAAS,CACT,SAAS,CACT,kBAAkB,CAClB,WAAW,CACX,OAAO,CACP,MAAM,CACN,YAAY,CACZ,MAAM,CACN,aAAa,CACb,YAAY,CACZ,QAAQ,CACR,IAAI,CACJ,KAAK,CACG,CACJC,aAAa,CAAG,CAAC,OAAO,CAAE,KAAK,CAAU,CACzCC,UAAU,CAAG,CAAC,KAAK,CAAE,SAAS,CAAE,KAAK,CAAE,QAAQ,CAAU"}
1
+ {"version":3,"file":"types.js","names":["HttpMethod","exports","Get","Post","DataApiQuery","VisitEvent","VisitData","DataMap","EVENT_TYPE_KEYS","PARAMETER_KEYS","TRACKING_KEYS","QUERY_KEYS"],"sources":["../../src/requester/types.ts"],"sourcesContent":["import { JSONType } from 'src/clientConfiguration';\nimport { Environment, ExternalPackageInfoType } from 'src/types';\nimport {\n BrowserIndexMap,\n BrowserType,\n OperatingSystemType,\n} from 'src/kameleoonData';\nimport {\n DeviceType,\n KCSType,\n OperatingSystemIndexMap,\n} from 'src/kameleoonData/types';\nimport { Header } from './constants';\nimport { VisitorDataFiltersType } from 'src/utilities';\n\nexport type UrlProviderInitializeParamsType = {\n siteCode: string;\n packageInfo: ExternalPackageInfoType;\n environment?: Environment;\n};\n\nexport type RequesterParamsType = {\n siteCode: string;\n environment?: Environment;\n packageInfo: ExternalPackageInfoType;\n requestDispatcher: IExternalRequestDispatcher;\n};\n\nexport type TrackExperimentParamsType = {\n dataUrl: string;\n variationDataUrl: string;\n visitorCode: string;\n isUnallocated: boolean;\n userAgent?: string;\n isTargetedRule?: boolean;\n};\n\nexport type TrackDataParamsType = {\n visitorCode: string;\n body: string;\n userAgent?: string;\n isMappingIdentifier?: boolean;\n};\n\nexport type GetVisitorDataParamsType = {\n visitorCode: string;\n filters: VisitorDataFiltersType;\n isMappingIdentifier?: boolean;\n};\n\nexport type GetVisitorDataUrlParamsType = {\n visitorCode: string;\n filters: VisitorDataFiltersType;\n isMappingIdentifier?: boolean;\n};\n\ntype EventDataType = {\n sdk?: {\n name: string;\n version: string;\n };\n itp: boolean;\n time: number;\n};\n\ntype CustomDataEventType = {\n data: {\n index: number;\n valuesCountMap: {\n [value: string]: number;\n };\n overwrite: boolean;\n mappingIdentifier: boolean;\n };\n} & EventDataType;\n\ntype ExperimentEventType = {\n data: {\n id: number;\n variationId: number;\n };\n} & EventDataType;\n\ntype ConversionEventType = {\n data: {\n goalId: number;\n revenue: number;\n negative: boolean;\n };\n} & EventDataType;\n\ntype BrowserIndexType = (typeof BrowserIndexMap)[BrowserType];\ntype OperatingSystemIndexType =\n (typeof OperatingSystemIndexMap)[OperatingSystemType];\n\nexport type PageEventType = {\n data: {\n href: string;\n canonicalHref: string | null;\n title: string;\n keyPagesIndices: number[] | [null];\n referrerHref: string | null;\n referrersIndices: number[] | [null];\n };\n} & EventDataType;\n\nexport type GeolocationEventType = {\n data: {\n country: string;\n region: string | null;\n city: string | null;\n postalCode: string | null;\n latitude: number | null;\n longitude: number | null;\n };\n} & EventDataType;\n\nexport type StaticDataEventType = {\n data: {\n visitNumber: number;\n timeSincePreviousVisit: number;\n firstReferrerHref: string | null;\n browser: BrowserType | null;\n browserIndex: BrowserIndexType | null;\n browserVersion: number | null;\n os: OperatingSystemType | null;\n osIndex: OperatingSystemIndexType | null;\n windowWidth: number | null;\n windowHeight: number | null;\n screenWidth: number | null;\n screenHeight: number | null;\n timeZoneId: string | null;\n localeLanguageTag: string | null;\n deviceType: DeviceType | null;\n mappingIdentifier: string | null;\n };\n} & EventDataType;\n\nexport type VisitType = {\n siteCode: string;\n visitorCode: string;\n timeStarted: number;\n customDataEvents?: CustomDataEventType[];\n experimentEvents?: ExperimentEventType[];\n conversionEvents?: ConversionEventType[];\n geolocationEvents?: GeolocationEventType[];\n staticDataEvent?: StaticDataEventType;\n pageEvents?: PageEventType[];\n};\n\nexport type GetVisitorDataResultType = {\n previousVisits?: VisitType[];\n currentVisit?: VisitType;\n kcs?: KCSType;\n};\n\nexport enum HttpMethod {\n Get = 'GET',\n Post = 'POST',\n}\n\nexport enum DataApiQuery {\n VisitEvent,\n VisitData,\n DataMap,\n}\n\nconst EVENT_TYPE_KEYS = [\n 'customData',\n 'staticData',\n 'page',\n 'conversion',\n 'geolocation',\n 'activity',\n 'experiment',\n] as const;\nconst PARAMETER_KEYS = [\n 'valuesCountMap',\n 'mappingValue',\n 'id',\n 'nonce',\n 'country',\n 'environment',\n 'city',\n 'region',\n 'latitude',\n 'geolocation',\n 'longitude',\n 'mappingIdentifier',\n 'postalCode',\n 'sdkName',\n 'sdkVersion',\n 'kcs',\n 'browserIndex',\n 'browserVersion',\n 'siteCode',\n 'visitorCode',\n 'currentVisit',\n 'maxNumberPreviousVisits',\n 'customData',\n 'negative',\n 'revenue',\n 'title',\n 'os',\n 'conversion',\n 'staticData',\n 'osIndex',\n 'browser',\n 'referrersIndices',\n 'overwrite',\n 'index',\n 'href',\n 'experiment',\n 'page',\n 'variationId',\n 'deviceType',\n 'goalId',\n 'ts',\n 'key',\n] as const;\nconst TRACKING_KEYS = ['visit', 'map'] as const;\nconst QUERY_KEYS = ['sse', 'visitor', 'map', 'events'] as const;\n\nexport type TrackingType = Record<\n Capitalize<(typeof TRACKING_KEYS)[number]>,\n string\n>;\nexport type QueryType = Record<Capitalize<(typeof QUERY_KEYS)[number]>, string>;\nexport type ParameterType = Record<\n Capitalize<(typeof PARAMETER_KEYS)[number]>,\n string\n>;\nexport type EventType = Record<\n Capitalize<(typeof EVENT_TYPE_KEYS)[number]>,\n string\n>;\n\nexport type StrictTrackingRecord<T> = {\n [K in keyof T]: `${Uncapitalize<K & string>}/`;\n};\nexport type StrictQueryRecord<T> = {\n [K in keyof T]: `${Uncapitalize<K & string>}?siteCode=`;\n};\nexport type StrictEventTypeRecord<T> = {\n [K in keyof T]: `eventType=${Uncapitalize<K & string>}`;\n};\nexport type StrictParameterRecord<T> = {\n [K in keyof T]: `&${Uncapitalize<K & string>}=`;\n};\nexport type StrictFirstParameterRecord<T> = {\n [K in keyof T]: `?${Uncapitalize<K & string>}=`;\n};\n\n/**\n * @type HeadersType - a type of headers available in the request\n * */\nexport type HeadersType = Partial<Record<Header, string>>;\n\nexport type TrackParametersType = {\n url: string;\n headers?: HeadersType;\n body: string;\n};\n\n/**\n * @interface an interface of External Request Dispatcher which will be used to perform requests.\n * */\nexport interface IExternalRequestDispatcher {\n /**\n * @method track - send a track request\n * @param {TrackParametersType} parameters - track parameters\n * */\n track: (params: TrackParametersType) => Promise<boolean>;\n /**\n * @method getClientConfiguration - get client configuration\n * @param {string} url - url address\n * @param {HeadersType} headers - headers\n * */\n getClientConfiguration: (\n url: string,\n headers: HeadersType,\n ) => Promise<JSONType>;\n /**\n * @method getRemoteData - get data from remote server of Kameleoon\n * @param {string} url - url address\n * */\n getRemoteData: (url: string) => Promise<JSONType>;\n}\n"],"mappings":"sHA4JY,CAAAA,UAAU,CAAAC,OAAA,CAAAD,UAAA,UAAVA,CAAU,QAAV,CAAAA,CAAU,CAAAE,GAAA,OAAVF,CAAU,CAAAG,IAAA,QAAVH,CAAU,MAKVI,YAAY,CAAAH,OAAA,CAAAG,YAAA,UAAZA,CAAY,QAAZ,CAAAA,CAAY,CAAZA,CAAY,CAAAC,UAAA,iBAAZD,CAAY,CAAZA,CAAY,CAAAE,SAAA,gBAAZF,CAAY,CAAZA,CAAY,CAAAG,OAAA,cAAZH,CAAY,WAMlB,CAAAI,eAAe,CAAG,CACtB,YAAY,CACZ,YAAY,CACZ,MAAM,CACN,YAAY,CACZ,aAAa,CACb,UAAU,CACV,YAAY,CACJ,CACJC,cAAc,CAAG,CACrB,gBAAgB,CAChB,cAAc,CACd,IAAI,CACJ,OAAO,CACP,SAAS,CACT,aAAa,CACb,MAAM,CACN,QAAQ,CACR,UAAU,CACV,aAAa,CACb,WAAW,CACX,mBAAmB,CACnB,YAAY,CACZ,SAAS,CACT,YAAY,CACZ,KAAK,CACL,cAAc,CACd,gBAAgB,CAChB,UAAU,CACV,aAAa,CACb,cAAc,CACd,yBAAyB,CACzB,YAAY,CACZ,UAAU,CACV,SAAS,CACT,OAAO,CACP,IAAI,CACJ,YAAY,CACZ,YAAY,CACZ,SAAS,CACT,SAAS,CACT,kBAAkB,CAClB,WAAW,CACX,OAAO,CACP,MAAM,CACN,YAAY,CACZ,MAAM,CACN,aAAa,CACb,YAAY,CACZ,QAAQ,CACR,IAAI,CACJ,KAAK,CACG,CACJC,aAAa,CAAG,CAAC,OAAO,CAAE,KAAK,CAAU,CACzCC,UAAU,CAAG,CAAC,KAAK,CAAE,SAAS,CAAE,KAAK,CAAE,QAAQ,CAAU"}
@@ -1,5 +1,4 @@
1
- import { VisitorDataFiltersType } from '../utilities';
2
- import { UrlProviderInitializeParamsType } from './types';
1
+ import { GetVisitorDataUrlParamsType, UrlProviderInitializeParamsType } from './types';
3
2
  export declare class UrlProvider {
4
3
  private static siteCode;
5
4
  private static environment?;
@@ -11,7 +10,7 @@ export declare class UrlProvider {
11
10
  static setDataApiDomain(domain: string): void;
12
11
  static getClientConfigurationUrl(timeStamp?: number): string;
13
12
  static getRemoteDataUrl(key: string): string;
14
- static getVisitorDataUrl(visitorCode: string, filters: VisitorDataFiltersType): string;
13
+ static getVisitorDataUrl({ visitorCode, filters, isMappingIdentifier, }: GetVisitorDataUrlParamsType): string;
15
14
  static getTrackingUrl(visitorCode: string, isMappingIdentifier?: boolean): string;
16
15
  private static isInitialized;
17
16
  private static getDataApiUrl;
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.UrlProvider=void 0;var _constants=require("./constants"),_types=require("./types");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 UrlProvider{static initialize(a){let{siteCode:b,packageInfo:c,environment:d}=a;this.siteCode=b,this.environment=d,this.packageInfo=c,this.ready=!0}static setDataApiDomain(a){this.dataApiDomain=a.split(".").slice(0,-1).join(".")}static getClientConfigurationUrl(a){this.isInitialized();const b=this.environment?_constants.UrlFirstParameter.Environment+this.environment:"";let c="";return a&&(b?c=_constants.UrlParameter.Ts+a:c=_constants.UrlFirstParameter.Ts+a),_constants.URL.CLIENT_CONFIGURATION+this.siteCode+b+c}static getRemoteDataUrl(a){return this.isInitialized(),this.getDataApiUrl(_types.DataApiQuery.DataMap)+this.siteCode+_constants.UrlParameter.Key+encodeURI(a)}static getVisitorDataUrl(a,b){const{customData:c,previousVisitAmount:d,currentVisit:e,conversions:f,geolocation:g,experiments:h,pageViews:i,device:j,browser:k,operatingSystem:l}=b,m=c?_constants.UrlParameter.CustomData+!0:"",n=f?_constants.UrlParameter.Conversion+!0:"",o=g?_constants.UrlParameter.Geolocation+!0:"",p=h?_constants.UrlParameter.Experiment+!0:"",q=i?_constants.UrlParameter.Page+!0:"",r=!!(j||k||l)?_constants.UrlParameter.StaticData+!0:"",s=e?_constants.UrlParameter.CurrentVisit+!0:"";return this.getDataApiUrl(_types.DataApiQuery.VisitData)+this.siteCode+_constants.UrlParameter.VisitorCode+a+_constants.UrlParameter.MaxNumberPreviousVisits+d+m+n+o+p+q+r+s}static getTrackingUrl(a,b){this.isInitialized();const{type:c,version:d}=this.packageInfo,e=encodeURIComponent("".concat(d,"/").concat("4.0.1")),f=b?_constants.UrlParameter.MappingValue:_constants.UrlParameter.VisitorCode;return this.getDataApiUrl(_types.DataApiQuery.VisitEvent)+this.siteCode+f+a+_constants.UrlParameter.SdkName+c.toLowerCase()+_constants.UrlParameter.SdkVersion+e}static isInitialized(){if(!this.ready)throw new Error("UrlProvider is not initialized")}static getDataApiUrl(a){const b="https://".concat(this.dataApiDomain).concat(this.dataApiTopLevelDomain);return a===_types.DataApiQuery.VisitEvent?"".concat(b,"/").concat(_constants.UrlTracking.Visit+_constants.UrlQuery.Events):a===_types.DataApiQuery.VisitData?"".concat(b,"/").concat(_constants.UrlTracking.Visit+_constants.UrlQuery.Visitor):a===_types.DataApiQuery.DataMap?"".concat(b,"/").concat(_constants.UrlTracking.Map+_constants.UrlQuery.Map):void 0}}exports.UrlProvider=UrlProvider,_defineProperty(UrlProvider,"siteCode",void 0),_defineProperty(UrlProvider,"environment",void 0),_defineProperty(UrlProvider,"ready",!1),_defineProperty(UrlProvider,"packageInfo",void 0),_defineProperty(UrlProvider,"dataApiDomain","data.kameleoon"),_defineProperty(UrlProvider,"dataApiTopLevelDomain",".io");
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.UrlProvider=void 0;var _constants=require("./constants"),_types=require("./types");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 UrlProvider{static initialize(a){let{siteCode:b,packageInfo:c,environment:d}=a;this.siteCode=b,this.environment=d,this.packageInfo=c,this.ready=!0}static setDataApiDomain(a){this.dataApiDomain=a.split(".").slice(0,-1).join(".")}static getClientConfigurationUrl(a){this.isInitialized();const b=this.environment?_constants.UrlFirstParameter.Environment+this.environment:"";let c="";return a&&(b?c=_constants.UrlParameter.Ts+a:c=_constants.UrlFirstParameter.Ts+a),_constants.URL.CLIENT_CONFIGURATION+this.siteCode+b+c}static getRemoteDataUrl(a){return this.isInitialized(),this.getDataApiUrl(_types.DataApiQuery.DataMap)+this.siteCode+_constants.UrlParameter.Key+encodeURI(a)}static getVisitorDataUrl(a){let{visitorCode:b,filters:c,isMappingIdentifier:d}=a;const{customData:e,previousVisitAmount:f,currentVisit:g,conversions:h,geolocation:i,experiments:j,pageViews:k,device:l,browser:m,operatingSystem:n,kcs:o}=c,p=d?_constants.UrlParameter.MappingValue:_constants.UrlParameter.VisitorCode,q=e?_constants.UrlParameter.CustomData+!0:"",r=h?_constants.UrlParameter.Conversion+!0:"",s=i?_constants.UrlParameter.Geolocation+!0:"",t=j?_constants.UrlParameter.Experiment+!0:"",u=k?_constants.UrlParameter.Page+!0:"",v=!!(l||m||n)?_constants.UrlParameter.StaticData+!0:"",w=g?_constants.UrlParameter.CurrentVisit+!0:"";let x="";o&&(x=_constants.UrlParameter.Kcs+!0,!w&&(x+=_constants.UrlParameter.CurrentVisit+!0));const y="number"==typeof f?_constants.UrlParameter.MaxNumberPreviousVisits+f:_constants.UrlParameter.MaxNumberPreviousVisits+1;return this.getDataApiUrl(_types.DataApiQuery.VisitData)+this.siteCode+p+b+y+q+r+s+t+u+v+w+x}static getTrackingUrl(a,b){this.isInitialized();const{type:c,version:d}=this.packageInfo,e=b?_constants.UrlParameter.MappingValue:_constants.UrlParameter.VisitorCode;return this.getDataApiUrl(_types.DataApiQuery.VisitEvent)+this.siteCode+e+a+_constants.UrlParameter.SdkName+c.toLowerCase()+_constants.UrlParameter.SdkVersion+d}static isInitialized(){if(!this.ready)throw new Error("UrlProvider is not initialized")}static getDataApiUrl(a){const b="https://".concat(this.dataApiDomain).concat(this.dataApiTopLevelDomain);return a===_types.DataApiQuery.VisitEvent?"".concat(b,"/").concat(_constants.UrlTracking.Visit+_constants.UrlQuery.Events):a===_types.DataApiQuery.VisitData?"".concat(b,"/").concat(_constants.UrlTracking.Visit+_constants.UrlQuery.Visitor):a===_types.DataApiQuery.DataMap?"".concat(b,"/").concat(_constants.UrlTracking.Map+_constants.UrlQuery.Map):void 0}}exports.UrlProvider=UrlProvider,_defineProperty(UrlProvider,"siteCode",void 0),_defineProperty(UrlProvider,"environment",void 0),_defineProperty(UrlProvider,"ready",!1),_defineProperty(UrlProvider,"packageInfo",void 0),_defineProperty(UrlProvider,"dataApiDomain","data.kameleoon"),_defineProperty(UrlProvider,"dataApiTopLevelDomain",".io");
2
2
  //# sourceMappingURL=urlProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"urlProvider.js","names":["UrlProvider","initialize","a","siteCode","packageInfo","environment","ready","setDataApiDomain","domain","dataApiDomain","split","slice","join","getClientConfigurationUrl","timeStamp","isInitialized","environmentParam","UrlFirstParameter","Environment","timeStampParam","UrlParameter","Ts","URL","CLIENT_CONFIGURATION","getRemoteDataUrl","key","getDataApiUrl","DataApiQuery","DataMap","Key","encodeURI","getVisitorDataUrl","visitorCode","filters","customData","previousVisitAmount","currentVisit","conversions","geolocation","experiments","pageViews","device","browser","operatingSystem","customDataParameter","CustomData","conversionsParameter","Conversion","geolocationParameter","Geolocation","experimentsParameter","Experiment","pageViewsParameter","Page","staticDataParameter","StaticData","currentVisitParameter","CurrentVisit","VisitData","VisitorCode","MaxNumberPreviousVisits","getTrackingUrl","isMappingIdentifier","type","version","versionWithCore","encodeURIComponent","concat","identifierParameter","MappingValue","VisitEvent","SdkName","toLowerCase","SdkVersion","Error","query","dataApiTopLevelDomain","UrlTracking","Visit","UrlQuery","Events","Visitor","Map","exports","_defineProperty"],"sources":["../../src/requester/urlProvider.ts"],"sourcesContent":["import { Environment, ExternalPackageInfoType } from 'src/types';\nimport { VisitorDataFiltersType } from 'src/utilities';\nimport {\n UrlFirstParameter,\n UrlParameter,\n URL,\n UrlTracking,\n UrlQuery,\n} from './constants';\nimport { DataApiQuery, UrlProviderInitializeParamsType } from './types';\n\n// TODO: To be removed in favour of `DependencyManager`\n// which will use protected `KameleoonClient` method to be able to mock every dependency\n// for tests\nexport class UrlProvider {\n private static siteCode: string;\n private static environment?: Environment;\n private static ready = false;\n private static packageInfo: ExternalPackageInfoType;\n private static dataApiDomain = 'data.kameleoon';\n\n public static dataApiTopLevelDomain = '.io';\n\n public static initialize({\n siteCode,\n packageInfo,\n environment,\n }: UrlProviderInitializeParamsType): void {\n this.siteCode = siteCode;\n this.environment = environment;\n this.packageInfo = packageInfo;\n this.ready = true;\n }\n\n public static setDataApiDomain(domain: string): void {\n this.dataApiDomain = domain.split('.').slice(0, -1).join('.');\n }\n\n public static getClientConfigurationUrl(timeStamp?: number): string {\n this.isInitialized();\n\n const environmentParam = this.environment\n ? UrlFirstParameter.Environment + this.environment\n : '';\n let timeStampParam = '';\n\n if (timeStamp) {\n if (environmentParam) {\n timeStampParam = UrlParameter.Ts + timeStamp;\n } else {\n timeStampParam = UrlFirstParameter.Ts + timeStamp;\n }\n }\n\n return (\n URL.CLIENT_CONFIGURATION +\n this.siteCode +\n environmentParam +\n timeStampParam\n );\n }\n\n public static getRemoteDataUrl(key: string): string {\n this.isInitialized();\n\n return (\n this.getDataApiUrl(DataApiQuery.DataMap) +\n this.siteCode +\n UrlParameter.Key +\n encodeURI(key)\n );\n }\n\n public static getVisitorDataUrl(\n visitorCode: string,\n filters: VisitorDataFiltersType,\n ): string {\n const {\n customData,\n previousVisitAmount,\n currentVisit,\n conversions,\n geolocation,\n experiments,\n pageViews,\n device,\n browser,\n operatingSystem,\n } = filters;\n\n const customDataParameter = customData\n ? UrlParameter.CustomData + true\n : '';\n const conversionsParameter = conversions\n ? UrlParameter.Conversion + true\n : '';\n const geolocationParameter = geolocation\n ? UrlParameter.Geolocation + true\n : '';\n const experimentsParameter = experiments\n ? UrlParameter.Experiment + true\n : '';\n const pageViewsParameter = pageViews ? UrlParameter.Page + true : '';\n const staticDataParameter = Boolean(device || browser || operatingSystem)\n ? UrlParameter.StaticData + true\n : '';\n const currentVisitParameter = currentVisit\n ? UrlParameter.CurrentVisit + true\n : '';\n\n return (\n this.getDataApiUrl(DataApiQuery.VisitData) +\n this.siteCode +\n UrlParameter.VisitorCode +\n visitorCode +\n UrlParameter.MaxNumberPreviousVisits +\n previousVisitAmount +\n customDataParameter +\n conversionsParameter +\n geolocationParameter +\n experimentsParameter +\n pageViewsParameter +\n staticDataParameter +\n currentVisitParameter\n );\n }\n\n public static getTrackingUrl(\n visitorCode: string,\n isMappingIdentifier?: boolean,\n ): string {\n this.isInitialized();\n\n const { type, version } = this.packageInfo;\n\n const versionWithCore = encodeURIComponent(\n `${version}/${process.env.npm_package_version}`,\n );\n\n const identifierParameter = isMappingIdentifier\n ? UrlParameter.MappingValue\n : UrlParameter.VisitorCode;\n\n return (\n this.getDataApiUrl(DataApiQuery.VisitEvent) +\n this.siteCode +\n identifierParameter +\n visitorCode +\n UrlParameter.SdkName +\n type.toLowerCase() +\n UrlParameter.SdkVersion +\n versionWithCore\n );\n }\n\n private static isInitialized(): void {\n if (!this.ready) {\n throw new Error('UrlProvider is not initialized');\n }\n }\n\n private static getDataApiUrl(query: DataApiQuery): string {\n const domain = `https://${this.dataApiDomain}${this.dataApiTopLevelDomain}`;\n\n switch (query) {\n case DataApiQuery.VisitEvent:\n return `${domain}/${UrlTracking.Visit + UrlQuery.Events}`;\n case DataApiQuery.VisitData:\n return `${domain}/${UrlTracking.Visit + UrlQuery.Visitor}`;\n case DataApiQuery.DataMap:\n return `${domain}/${UrlTracking.Map + UrlQuery.Map}`;\n }\n }\n}\n"],"mappings":"kqBAcO,KAAM,CAAAA,WAAY,CASvB,MAAc,CAAAC,UAAUA,CAAAC,CAAA,CAIkB,IAJjB,CACvBC,QAAQ,CAARA,CAAQ,CACRC,WAAW,CAAXA,CAAW,CACXC,WAAW,CAAXA,CAC+B,CAAC,CAAAH,CAAA,CAChC,IAAI,CAACC,QAAQ,CAAGA,CAAQ,CACxB,IAAI,CAACE,WAAW,CAAGA,CAAW,CAC9B,IAAI,CAACD,WAAW,CAAGA,CAAW,CAC9B,IAAI,CAACE,KAAK,GACZ,CAEA,MAAc,CAAAC,gBAAgBA,CAACC,CAAc,CAAQ,CACnD,IAAI,CAACC,aAAa,CAAGD,CAAM,CAACE,KAAK,CAAC,GAAG,CAAC,CAACC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,GAAG,CAC9D,CAEA,MAAc,CAAAC,yBAAyBA,CAACC,CAAkB,CAAU,CAClE,IAAI,CAACC,aAAa,CAAC,CAAC,CAEpB,KAAM,CAAAC,CAAgB,CAAG,IAAI,CAACX,WAAW,CACrCY,4BAAiB,CAACC,WAAW,CAAG,IAAI,CAACb,WAAW,CAChD,EAAE,CACN,GAAI,CAAAc,CAAc,CAAG,EAAE,CAUvB,MARI,CAAAL,CAAS,GACPE,CAAgB,CAClBG,CAAc,CAAGC,uBAAY,CAACC,EAAE,CAAGP,CAAS,CAE5CK,CAAc,CAAGF,4BAAiB,CAACI,EAAE,CAAGP,CAAS,EAKnDQ,cAAG,CAACC,oBAAoB,CACxB,IAAI,CAACpB,QAAQ,CACba,CAAgB,CAChBG,CAEJ,CAEA,MAAc,CAAAK,gBAAgBA,CAACC,CAAW,CAAU,CAGlD,MAFA,KAAI,CAACV,aAAa,CAAC,CAAC,CAGlB,IAAI,CAACW,aAAa,CAACC,mBAAY,CAACC,OAAO,CAAC,CACxC,IAAI,CAACzB,QAAQ,CACbiB,uBAAY,CAACS,GAAG,CAChBC,SAAS,CAACL,CAAG,CAEjB,CAEA,MAAc,CAAAM,iBAAiBA,CAC7BC,CAAmB,CACnBC,CAA+B,CACvB,MACF,CACJC,UAAU,CAAVA,CAAU,CACVC,mBAAmB,CAAnBA,CAAmB,CACnBC,YAAY,CAAZA,CAAY,CACZC,WAAW,CAAXA,CAAW,CACXC,WAAW,CAAXA,CAAW,CACXC,WAAW,CAAXA,CAAW,CACXC,SAAS,CAATA,CAAS,CACTC,MAAM,CAANA,CAAM,CACNC,OAAO,CAAPA,CAAO,CACPC,eAAe,CAAfA,CACF,CAAC,CAAGV,CAAO,CAELW,CAAmB,CAAGV,CAAU,CAClCd,uBAAY,CAACyB,UAAU,GAAO,CAC9B,EAAE,CACAC,CAAoB,CAAGT,CAAW,CACpCjB,uBAAY,CAAC2B,UAAU,GAAO,CAC9B,EAAE,CACAC,CAAoB,CAAGV,CAAW,CACpClB,uBAAY,CAAC6B,WAAW,GAAO,CAC/B,EAAE,CACAC,CAAoB,CAAGX,CAAW,CACpCnB,uBAAY,CAAC+B,UAAU,GAAO,CAC9B,EAAE,CACAC,CAAkB,CAAGZ,CAAS,CAAGpB,uBAAY,CAACiC,IAAI,GAAO,CAAG,EAAE,CAC9DC,CAAmB,CAAG,GAAQb,CAAM,EAAIC,CAAO,EAAIC,CAAe,EACpEvB,uBAAY,CAACmC,UAAU,GAAO,CAC9B,EAAE,CACAC,CAAqB,CAAGpB,CAAY,CACtChB,uBAAY,CAACqC,YAAY,GAAO,CAChC,EAAE,CAEN,MACE,KAAI,CAAC/B,aAAa,CAACC,mBAAY,CAAC+B,SAAS,CAAC,CAC1C,IAAI,CAACvD,QAAQ,CACbiB,uBAAY,CAACuC,WAAW,CACxB3B,CAAW,CACXZ,uBAAY,CAACwC,uBAAuB,CACpCzB,CAAmB,CACnBS,CAAmB,CACnBE,CAAoB,CACpBE,CAAoB,CACpBE,CAAoB,CACpBE,CAAkB,CAClBE,CAAmB,CACnBE,CAEJ,CAEA,MAAc,CAAAK,cAAcA,CAC1B7B,CAAmB,CACnB8B,CAA6B,CACrB,CACR,IAAI,CAAC/C,aAAa,CAAC,CAAC,MAEd,CAAEgD,IAAI,CAAJA,CAAI,CAAEC,OAAO,CAAPA,CAAQ,CAAC,CAAG,IAAI,CAAC5D,WAAW,CAEpC6D,CAAe,CAAGC,kBAAkB,IAAAC,MAAA,CACrCH,CAAO,MAAAG,MAAA,SACZ,CAAC,CAEKC,CAAmB,CAAGN,CAAmB,CAC3C1C,uBAAY,CAACiD,YAAY,CACzBjD,uBAAY,CAACuC,WAAW,CAE5B,MACE,KAAI,CAACjC,aAAa,CAACC,mBAAY,CAAC2C,UAAU,CAAC,CAC3C,IAAI,CAACnE,QAAQ,CACbiE,CAAmB,CACnBpC,CAAW,CACXZ,uBAAY,CAACmD,OAAO,CACpBR,CAAI,CAACS,WAAW,CAAC,CAAC,CAClBpD,uBAAY,CAACqD,UAAU,CACvBR,CAEJ,CAEA,MAAe,CAAAlD,aAAaA,CAAA,CAAS,CACnC,GAAI,CAAC,IAAI,CAACT,KAAK,CACb,KAAM,IAAI,CAAAoE,KAAK,CAAC,gCAAgC,CAEpD,CAEA,MAAe,CAAAhD,aAAaA,CAACiD,CAAmB,CAAU,CACxD,KAAM,CAAAnE,CAAM,YAAA2D,MAAA,CAAc,IAAI,CAAC1D,aAAa,EAAA0D,MAAA,CAAG,IAAI,CAACS,qBAAqB,CAAE,CAAC,MAEpE,CAAAD,CAAK,GACNhD,mBAAY,CAAC2C,UAAU,IAAAH,MAAA,CAChB3D,CAAM,MAAA2D,MAAA,CAAIU,sBAAW,CAACC,KAAK,CAAGC,mBAAQ,CAACC,MAAM,EAFnDL,CAAK,GAGNhD,mBAAY,CAAC+B,SAAS,IAAAS,MAAA,CACf3D,CAAM,MAAA2D,MAAA,CAAIU,sBAAW,CAACC,KAAK,CAAGC,mBAAQ,CAACE,OAAO,EAJpDN,CAAK,GAKNhD,mBAAY,CAACC,OAAO,IAAAuC,MAAA,CACb3D,CAAM,MAAA2D,MAAA,CAAIU,sBAAW,CAACK,GAAG,CAAGH,mBAAQ,CAACG,GAAG,QAExD,CACF,CAACC,OAAA,CAAAnF,WAAA,CAAAA,WAAA,CAAAoF,eAAA,CA/JYpF,WAAW,oBAAAoF,eAAA,CAAXpF,WAAW,uBAAAoF,eAAA,CAAXpF,WAAW,aAAAoF,eAAA,CAAXpF,WAAW,uBAAAoF,eAAA,CAAXpF,WAAW,iBAKS,gBAAgB,EAAAoF,eAAA,CALpCpF,WAAW,yBAOgB,KAAK"}
1
+ {"version":3,"file":"urlProvider.js","names":["UrlProvider","initialize","a","siteCode","packageInfo","environment","ready","setDataApiDomain","domain","dataApiDomain","split","slice","join","getClientConfigurationUrl","timeStamp","isInitialized","environmentParam","UrlFirstParameter","Environment","timeStampParam","UrlParameter","Ts","URL","CLIENT_CONFIGURATION","getRemoteDataUrl","key","getDataApiUrl","DataApiQuery","DataMap","Key","encodeURI","getVisitorDataUrl","visitorCode","filters","isMappingIdentifier","customData","previousVisitAmount","currentVisit","conversions","geolocation","experiments","pageViews","device","browser","operatingSystem","kcs","identifierParameter","MappingValue","VisitorCode","customDataParameter","CustomData","conversionsParameter","Conversion","geolocationParameter","Geolocation","experimentsParameter","Experiment","pageViewsParameter","Page","staticDataParameter","StaticData","currentVisitParameter","CurrentVisit","kcsParameter","Kcs","previousVisitAmountParam","MaxNumberPreviousVisits","VisitData","getTrackingUrl","type","version","VisitEvent","SdkName","toLowerCase","SdkVersion","Error","query","concat","dataApiTopLevelDomain","UrlTracking","Visit","UrlQuery","Events","Visitor","Map","exports","_defineProperty"],"sources":["../../src/requester/urlProvider.ts"],"sourcesContent":["import { Environment, ExternalPackageInfoType } from 'src/types';\nimport {\n UrlFirstParameter,\n UrlParameter,\n URL,\n UrlTracking,\n UrlQuery,\n} from './constants';\nimport {\n DataApiQuery,\n GetVisitorDataUrlParamsType,\n UrlProviderInitializeParamsType,\n} from './types';\n\n// TODO: To be removed in favour of `DependencyManager`\n// which will use protected `KameleoonClient` method to be able to mock every dependency\n// for tests\nexport class UrlProvider {\n private static siteCode: string;\n private static environment?: Environment;\n private static ready = false;\n private static packageInfo: ExternalPackageInfoType;\n private static dataApiDomain = 'data.kameleoon';\n\n public static dataApiTopLevelDomain = '.io';\n\n public static initialize({\n siteCode,\n packageInfo,\n environment,\n }: UrlProviderInitializeParamsType): void {\n this.siteCode = siteCode;\n this.environment = environment;\n this.packageInfo = packageInfo;\n this.ready = true;\n }\n\n public static setDataApiDomain(domain: string): void {\n this.dataApiDomain = domain.split('.').slice(0, -1).join('.');\n }\n\n public static getClientConfigurationUrl(timeStamp?: number): string {\n this.isInitialized();\n\n const environmentParam = this.environment\n ? UrlFirstParameter.Environment + this.environment\n : '';\n let timeStampParam = '';\n\n if (timeStamp) {\n if (environmentParam) {\n timeStampParam = UrlParameter.Ts + timeStamp;\n } else {\n timeStampParam = UrlFirstParameter.Ts + timeStamp;\n }\n }\n\n return (\n URL.CLIENT_CONFIGURATION +\n this.siteCode +\n environmentParam +\n timeStampParam\n );\n }\n\n public static getRemoteDataUrl(key: string): string {\n this.isInitialized();\n\n return (\n this.getDataApiUrl(DataApiQuery.DataMap) +\n this.siteCode +\n UrlParameter.Key +\n encodeURI(key)\n );\n }\n\n public static getVisitorDataUrl({\n visitorCode,\n filters,\n isMappingIdentifier,\n }: GetVisitorDataUrlParamsType): string {\n const {\n customData,\n previousVisitAmount,\n currentVisit,\n conversions,\n geolocation,\n experiments,\n pageViews,\n device,\n browser,\n operatingSystem,\n kcs,\n } = filters;\n\n const identifierParameter = isMappingIdentifier\n ? UrlParameter.MappingValue\n : UrlParameter.VisitorCode;\n\n const customDataParameter = customData\n ? UrlParameter.CustomData + true\n : '';\n const conversionsParameter = conversions\n ? UrlParameter.Conversion + true\n : '';\n const geolocationParameter = geolocation\n ? UrlParameter.Geolocation + true\n : '';\n const experimentsParameter = experiments\n ? UrlParameter.Experiment + true\n : '';\n const pageViewsParameter = pageViews ? UrlParameter.Page + true : '';\n const staticDataParameter = Boolean(device || browser || operatingSystem)\n ? UrlParameter.StaticData + true\n : '';\n const currentVisitParameter = currentVisit\n ? UrlParameter.CurrentVisit + true\n : '';\n\n // --- Note ---\n // `kcs` parameter requires `currentVisit=true`\n let kcsParameter = '';\n\n if (kcs) {\n kcsParameter = UrlParameter.Kcs + true;\n\n if (!currentVisitParameter) {\n kcsParameter += UrlParameter.CurrentVisit + true;\n }\n }\n\n const previousVisitAmountParam =\n typeof previousVisitAmount !== 'number'\n ? UrlParameter.MaxNumberPreviousVisits + 1\n : UrlParameter.MaxNumberPreviousVisits + previousVisitAmount;\n\n return (\n this.getDataApiUrl(DataApiQuery.VisitData) +\n this.siteCode +\n identifierParameter +\n visitorCode +\n previousVisitAmountParam +\n customDataParameter +\n conversionsParameter +\n geolocationParameter +\n experimentsParameter +\n pageViewsParameter +\n staticDataParameter +\n currentVisitParameter +\n kcsParameter\n );\n }\n\n public static getTrackingUrl(\n visitorCode: string,\n isMappingIdentifier?: boolean,\n ): string {\n this.isInitialized();\n\n const { type, version } = this.packageInfo;\n\n const identifierParameter = isMappingIdentifier\n ? UrlParameter.MappingValue\n : UrlParameter.VisitorCode;\n\n return (\n this.getDataApiUrl(DataApiQuery.VisitEvent) +\n this.siteCode +\n identifierParameter +\n visitorCode +\n UrlParameter.SdkName +\n type.toLowerCase() +\n UrlParameter.SdkVersion +\n version\n );\n }\n\n private static isInitialized(): void {\n if (!this.ready) {\n throw new Error('UrlProvider is not initialized');\n }\n }\n\n private static getDataApiUrl(query: DataApiQuery): string {\n const domain = `https://${this.dataApiDomain}${this.dataApiTopLevelDomain}`;\n\n switch (query) {\n case DataApiQuery.VisitEvent:\n return `${domain}/${UrlTracking.Visit + UrlQuery.Events}`;\n case DataApiQuery.VisitData:\n return `${domain}/${UrlTracking.Visit + UrlQuery.Visitor}`;\n case DataApiQuery.DataMap:\n return `${domain}/${UrlTracking.Map + UrlQuery.Map}`;\n }\n }\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.DataStorage=void 0;var _tsRes=require("ts-res"),_kameleoonError=require("../kameleoonError");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 DataStorage{constructor(a,b){_defineProperty(this,"externalStorage",void 0),_defineProperty(this,"storageKey",void 0),this.externalStorage=a,this.storageKey=b}get key(){return this.storageKey}read(){try{const a=this.externalStorage.read(this.storageKey);return null===a?(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.StorageEmpty)):(0,_tsRes.Ok)(a)}catch(a){return(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.StorageRead,this.storageKey))}}write(a){try{return this.externalStorage.write(this.storageKey,a),(0,_tsRes.Ok)()}catch(a){return(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.StorageWrite,this.storageKey))}}update(a){const b=this.read();if(!b.ok)return b.error.type===_kameleoonError.KameleoonException.StorageEmpty?this.write(a):b;const c=b.data;let d;return d="string"==typeof c?a:_objectSpread(_objectSpread({},c),a),this.write(d)}}exports.DataStorage=DataStorage;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.DataStorage=void 0;var _tsRes=require("ts-res"),_kameleoonError=require("../kameleoonError");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 DataStorage{constructor(a,b){_defineProperty(this,"externalStorage",void 0),_defineProperty(this,"storageKey",void 0),this.externalStorage=a,this.storageKey=b}get key(){return this.storageKey}read(){try{const a=this.externalStorage.read(this.storageKey);return null===a?(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.StorageEmpty)):(0,_tsRes.Ok)(a)}catch(_){return(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.StorageRead,this.storageKey))}}write(a){try{return this.externalStorage.write(this.storageKey,a),(0,_tsRes.Ok)()}catch(_){return(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.StorageWrite,this.storageKey))}}update(a){const b=this.read();if(!b.ok)return b.error.type===_kameleoonError.KameleoonException.StorageEmpty?this.write(a):b;const c=b.data;let d;return d="string"==typeof c?a:_objectSpread(_objectSpread({},c),a),this.write(d)}}exports.DataStorage=DataStorage;
2
2
  //# sourceMappingURL=storage.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Browser=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_kameleoonError=require("../../kameleoonError"),_types=require("../types");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 Browser{constructor(a){let{browser:b,version:c,versionMatchType:d}=a;_defineProperty(this,"browser",void 0),_defineProperty(this,"version",void 0),_defineProperty(this,"versionMatchType",void 0),_defineProperty(this,"error",void 0),this.browser=b,this.version=c,this.versionMatchType=d}evaluate(a){let{targetingData:b}=a;const c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.Browser];if(c){const a=this.checkCondition(c);return this.error?(0,_tsRes.Err)(this.error):(0,_tsRes.Ok)(a)}return(0,_tsRes.Ok)(!1)}checkCondition(a){const{browser:b,version:c}=a;if("string"!=typeof this.browser)return!1;if("string"!=typeof this.version)return b===this.browser;if(!this.versionMatchType||"number"!=typeof c)return!1;const d=parseFloat(this.version);switch(isNaN(d)&&(this.error=new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.VersionParse,this.version)),this.versionMatchType){case _types.VersionMatchType.EQUAL:return b===this.browser&&c===d;case _types.VersionMatchType.GREATER:return b===this.browser&&c>d;case _types.VersionMatchType.LOWER:return b===this.browser&&c<d;default:(0,_kameleoonError.exhaustCheck)(this.versionMatchType)}}}exports.Browser=Browser;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Browser=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_kameleoonError=require("../../kameleoonError"),_types=require("../types");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 Browser{constructor(a){let{browser:b,version:c,versionMatchType:d}=a;_defineProperty(this,"browser",void 0),_defineProperty(this,"version",void 0),_defineProperty(this,"versionMatchType",void 0),_defineProperty(this,"error",void 0),this.browser=b,this.version=c,this.versionMatchType=d}evaluate(a){let{targetingData:b}=a;const c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.Browser];if(c){const a=this.checkCondition(c);return this.error?(0,_tsRes.Err)(this.error):(0,_tsRes.Ok)(a)}return(0,_tsRes.Ok)(!1)}checkCondition(a){const{browser:b,version:c}=a;if("string"!=typeof this.browser)return!1;if(!this.version)return b===this.browser;if(!this.versionMatchType||"number"!=typeof c)return!1;const d=parseFloat(this.version);switch(isNaN(d)&&(this.error=new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.VersionParse,this.version)),this.versionMatchType){case _types.VersionMatchType.EQUAL:return b===this.browser&&c===d;case _types.VersionMatchType.GREATER:return b===this.browser&&c>d;case _types.VersionMatchType.LOWER:return b===this.browser&&c<d;default:(0,_kameleoonError.exhaustCheck)(this.versionMatchType)}}}exports.Browser=Browser;
2
2
  //# sourceMappingURL=browser.js.map