@kameleoon/javascript-sdk-core 4.0.0 → 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 (118) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/clientConfiguration/clientConfiguration.js +1 -1
  3. package/dist/clientConfiguration/clientConfiguration.js.map +1 -1
  4. package/dist/clientConfiguration/constants.js +1 -1
  5. package/dist/clientConfiguration/constants.js.map +1 -1
  6. package/dist/clientConfiguration/types.d.ts +1 -1
  7. package/dist/clientConfiguration/types.js.map +1 -1
  8. package/dist/constants.js +1 -1
  9. package/dist/constants.js.map +1 -1
  10. package/dist/kameleoonClient.d.ts +2 -1
  11. package/dist/kameleoonClient.js +1 -1
  12. package/dist/kameleoonClient.js.map +1 -1
  13. package/dist/kameleoonClientInterface.d.ts +2 -2
  14. package/dist/kameleoonClientInterface.js.map +1 -1
  15. package/dist/kameleoonData/applicationVersion.d.ts +0 -9
  16. package/dist/kameleoonData/applicationVersion.js.map +1 -1
  17. package/dist/kameleoonData/browser.d.ts +3 -12
  18. package/dist/kameleoonData/browser.js +1 -1
  19. package/dist/kameleoonData/browser.js.map +1 -1
  20. package/dist/kameleoonData/conversion.d.ts +11 -13
  21. package/dist/kameleoonData/conversion.js +1 -1
  22. package/dist/kameleoonData/conversion.js.map +1 -1
  23. package/dist/kameleoonData/cookie.d.ts +0 -9
  24. package/dist/kameleoonData/cookie.js.map +1 -1
  25. package/dist/kameleoonData/customData.d.ts +3 -13
  26. package/dist/kameleoonData/customData.js +1 -1
  27. package/dist/kameleoonData/customData.js.map +1 -1
  28. package/dist/kameleoonData/dataManager.d.ts +11 -5
  29. package/dist/kameleoonData/dataManager.js +1 -1
  30. package/dist/kameleoonData/dataManager.js.map +1 -1
  31. package/dist/kameleoonData/dataProcessor.d.ts +13 -6
  32. package/dist/kameleoonData/dataProcessor.js +1 -1
  33. package/dist/kameleoonData/dataProcessor.js.map +1 -1
  34. package/dist/kameleoonData/device.d.ts +3 -12
  35. package/dist/kameleoonData/device.js +1 -1
  36. package/dist/kameleoonData/device.js.map +1 -1
  37. package/dist/kameleoonData/geolocation.d.ts +3 -12
  38. package/dist/kameleoonData/geolocation.js +1 -1
  39. package/dist/kameleoonData/geolocation.js.map +1 -1
  40. package/dist/kameleoonData/index.d.ts +1 -0
  41. package/dist/kameleoonData/index.js +1 -1
  42. package/dist/kameleoonData/index.js.map +1 -1
  43. package/dist/kameleoonData/kameleoonConversionScore.d.ts +15 -0
  44. package/dist/kameleoonData/kameleoonConversionScore.js +2 -0
  45. package/dist/kameleoonData/kameleoonConversionScore.js.map +1 -0
  46. package/dist/kameleoonData/operatingSystem.d.ts +3 -12
  47. package/dist/kameleoonData/operatingSystem.js +1 -1
  48. package/dist/kameleoonData/operatingSystem.js.map +1 -1
  49. package/dist/kameleoonData/pageView.d.ts +4 -13
  50. package/dist/kameleoonData/pageView.js +1 -1
  51. package/dist/kameleoonData/pageView.js.map +1 -1
  52. package/dist/kameleoonData/types.d.ts +54 -11
  53. package/dist/kameleoonData/types.js +1 -1
  54. package/dist/kameleoonData/types.js.map +1 -1
  55. package/dist/kameleoonData/userAgent.d.ts +0 -9
  56. package/dist/kameleoonData/userAgent.js.map +1 -1
  57. package/dist/kameleoonData/visitProcessor.d.ts +34 -0
  58. package/dist/kameleoonData/visitProcessor.js +2 -0
  59. package/dist/kameleoonData/visitProcessor.js.map +1 -0
  60. package/dist/kameleoonData/visitsData.d.ts +7 -21
  61. package/dist/kameleoonData/visitsData.js +1 -1
  62. package/dist/kameleoonData/visitsData.js.map +1 -1
  63. package/dist/requester/constants.d.ts +1 -3
  64. package/dist/requester/constants.js +1 -1
  65. package/dist/requester/constants.js.map +1 -1
  66. package/dist/requester/index.d.ts +1 -1
  67. package/dist/requester/index.js +1 -1
  68. package/dist/requester/index.js.map +1 -1
  69. package/dist/requester/requester.d.ts +2 -6
  70. package/dist/requester/requester.js +1 -1
  71. package/dist/requester/requester.js.map +1 -1
  72. package/dist/requester/types.d.ts +24 -2
  73. package/dist/requester/types.js +1 -1
  74. package/dist/requester/types.js.map +1 -1
  75. package/dist/requester/urlProvider.d.ts +17 -0
  76. package/dist/requester/urlProvider.js +2 -0
  77. package/dist/requester/urlProvider.js.map +1 -0
  78. package/dist/storage/storage.js +1 -1
  79. package/dist/targeting/conditions/browser.js +1 -1
  80. package/dist/targeting/conditions/browser.js.map +1 -1
  81. package/dist/targeting/conditions/conditionFactory.js +1 -1
  82. package/dist/targeting/conditions/conditionFactory.js.map +1 -1
  83. package/dist/targeting/conditions/conversionLikelihood.d.ts +12 -0
  84. package/dist/targeting/conditions/conversionLikelihood.js +2 -0
  85. package/dist/targeting/conditions/conversionLikelihood.js.map +1 -0
  86. package/dist/targeting/conditions/firstVisit.js +1 -1
  87. package/dist/targeting/conditions/firstVisit.js.map +1 -1
  88. package/dist/targeting/conditions/geolocation.js +1 -1
  89. package/dist/targeting/conditions/geolocation.js.map +1 -1
  90. package/dist/targeting/conditions/index.d.ts +1 -0
  91. package/dist/targeting/conditions/index.js +1 -1
  92. package/dist/targeting/conditions/index.js.map +1 -1
  93. package/dist/targeting/conditions/lastVisit.js +1 -1
  94. package/dist/targeting/conditions/lastVisit.js.map +1 -1
  95. package/dist/targeting/conditions/newVisitor.js +1 -1
  96. package/dist/targeting/conditions/newVisitor.js.map +1 -1
  97. package/dist/targeting/conditions/sameDayVisits.js +1 -1
  98. package/dist/targeting/conditions/sameDayVisits.js.map +1 -1
  99. package/dist/targeting/conditions/targetFeatureFlag.js +1 -1
  100. package/dist/targeting/conditions/types.d.ts +3 -0
  101. package/dist/targeting/conditions/types.js.map +1 -1
  102. package/dist/targeting/conditions/visits.js +1 -1
  103. package/dist/targeting/conditions/visits.js.map +1 -1
  104. package/dist/targeting/index.d.ts +2 -2
  105. package/dist/targeting/index.js +1 -1
  106. package/dist/targeting/index.js.map +1 -1
  107. package/dist/targeting/types.d.ts +4 -0
  108. package/dist/targeting/types.js.map +1 -1
  109. package/dist/types.d.ts +2 -0
  110. package/dist/types.js.map +1 -1
  111. package/dist/utilities/types.d.ts +6 -1
  112. package/dist/utilities/types.js.map +1 -1
  113. package/dist/utilities/utilities.d.ts +1 -1
  114. package/dist/utilities/utilities.js +1 -1
  115. package/dist/utilities/utilities.js.map +1 -1
  116. package/dist/variationConfiguration/types.d.ts +1 -1
  117. package/dist/variationConfiguration/types.js.map +1 -1
  118. package/package.json +6 -2
@@ -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>>;
@@ -10,15 +9,12 @@ export interface IRequester {
10
9
  trackExperiment: ({ visitorCode, dataUrl, variationDataUrl, isUnallocated, isTargetedRule, userAgent, }: TrackExperimentParamsType) => Promise<Result<boolean, void>>;
11
10
  }
12
11
  export declare class Requester implements IRequester {
13
- private siteCode;
14
- private environment?;
15
12
  private requestDispatcher;
16
13
  private packageInfo;
17
14
  constructor({ siteCode, environment, packageInfo, requestDispatcher, }: RequesterParamsType);
18
15
  getClientConfiguration(timeStamp?: number): Promise<Result<ConfigurationDataType, KameleoonError>>;
19
16
  getRemoteData(key: string): Promise<Result<JSONType, KameleoonError>>;
20
- getVisitorData(visitorCode: string, filters: VisitorDataFiltersType): Promise<Result<GetVisitorDataResultType, KameleoonError>>;
17
+ getVisitorData({ visitorCode, filters, isMappingIdentifier, }: GetVisitorDataParamsType): Promise<Result<GetVisitorDataResultType, KameleoonError>>;
21
18
  trackExperiment({ visitorCode, dataUrl, variationDataUrl, userAgent, isUnallocated, }: TrackExperimentParamsType): Promise<Result<boolean, void>>;
22
19
  trackData({ visitorCode, body, userAgent, isMappingIdentifier, }: TrackDataParamsType): Promise<Result<boolean, void>>;
23
- private getTrackingUrl;
24
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");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,"siteCode",void 0),_defineProperty(this,"environment",void 0),_defineProperty(this,"requestDispatcher",void 0),_defineProperty(this,"packageInfo",void 0),this.requestDispatcher=e,this.siteCode=b,this.environment=c,this.packageInfo=d}async getClientConfiguration(a){const b=this.environment?_constants.UrlFirstParameter.Environment+this.environment:"";let c="";a&&(b?c=_constants.UrlParameter.Ts+a:c=_constants.UrlFirstParameter.Ts+a);const d=_constants.URL.CLIENT_CONFIGURATION+this.siteCode+b+c,e={[_constants.Header.SdkType]:this.packageInfo.type.toLowerCase(),[_constants.Header.SdkVersion]:this.packageInfo.version};try{const a=await this.requestDispatcher.getClientConfiguration(d,e);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=_constants.URL.DATA_MAP+this.siteCode+_constants.UrlParameter.Key+encodeURI(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{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:"",t=_constants.URL.VISIT_DATA+this.siteCode+_constants.UrlParameter.VisitorCode+a+_constants.UrlParameter.MaxNumberPreviousVisits+d+m+n+o+p+q+r+s;try{const a=await this.requestDispatcher.getRemoteData(t);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=this.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=this.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)()}}getTrackingUrl(a,b){const{type:c,version:d}=this.packageInfo,e=encodeURIComponent("".concat(d,"/").concat("4.0.0")),f=b?_constants.UrlParameter.MappingValue:_constants.UrlParameter.VisitorCode;return _constants.URL.VISIT_EVENT+this.siteCode+f+a+_constants.UrlParameter.SdkName+c.toLowerCase()+_constants.UrlParameter.SdkVersion+e}}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","getClientConfiguration","timeStamp","environmentParam","UrlFirstParameter","Environment","timeStampParam","UrlParameter","Ts","requestUrl","URL","CLIENT_CONFIGURATION","headers","Header","SdkType","type","toLowerCase","SdkVersion","version","response","Ok","Err","KameleoonError","KameleoonException","MaximumRetriesReached","error","getRemoteData","key","DATA_MAP","Key","encodeURI","getVisitorData","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","VISIT_DATA","VisitorCode","MaxNumberPreviousVisits","trackExperiment","dataUrl","variationDataUrl","userAgent","isUnallocated","url","getTrackingUrl","unallocatedAddition","UrlEventType","Activity","Nonce","Utilities","getNonce","bodyAddition","extendedBody","UserAgent","track","body","_","trackData","isMappingIdentifier","requestBody","versionWithCore","encodeURIComponent","concat","identifierParameter","MappingValue","VISIT_EVENT","SdkName","exports"],"sources":["../../src/requester/requester.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport { Environment, ExternalPackageInfoType } from 'src/types';\nimport { KameleoonError, KameleoonException } from 'src/kameleoonError';\nimport { ConfigurationDataType, JSONType } from 'src/clientConfiguration';\nimport { Utilities, VisitorDataFiltersType } from 'src/utilities';\nimport {\n URL,\n UrlParameter,\n Header,\n UrlEventType,\n UrlFirstParameter,\n} from './constants';\nimport {\n RequesterParamsType,\n TrackDataParamsType,\n IExternalRequestDispatcher,\n GetVisitorDataResultType,\n TrackExperimentParamsType,\n HeadersType,\n} from './types';\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 siteCode: string;\n private environment?: Environment;\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.siteCode = siteCode;\n this.environment = environment;\n this.packageInfo = packageInfo;\n }\n\n public async getClientConfiguration(\n timeStamp?: number,\n ): Promise<Result<ConfigurationDataType, KameleoonError>> {\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 const requestUrl =\n URL.CLIENT_CONFIGURATION +\n this.siteCode +\n environmentParam +\n timeStampParam;\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: string =\n URL.DATA_MAP + this.siteCode + UrlParameter.Key + encodeURI(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 {\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 const requestUrl: string =\n URL.VISIT_DATA +\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 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 = this.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 = this.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 private getTrackingUrl(\n visitorCode: string,\n isMappingIdentifier?: boolean,\n ): string {\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 URL.VISIT_EVENT +\n this.siteCode +\n identifierParameter +\n visitorCode +\n UrlParameter.SdkName +\n type.toLowerCase() +\n UrlParameter.SdkVersion +\n versionWithCore\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":"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"}
@@ -1,8 +1,14 @@
1
1
  import { JSONType } from '../clientConfiguration';
2
2
  import { Environment, ExternalPackageInfoType } from '../types';
3
3
  import { BrowserIndexMap, BrowserType, OperatingSystemType } from '../kameleoonData';
4
+ import { DeviceType, KCSType, OperatingSystemIndexMap } from '../kameleoonData/types';
4
5
  import { Header } from './constants';
5
- import { DeviceType, OperatingSystemIndexMap } from '../kameleoonData/types';
6
+ import { VisitorDataFiltersType } from '../utilities';
7
+ export type UrlProviderInitializeParamsType = {
8
+ siteCode: string;
9
+ packageInfo: ExternalPackageInfoType;
10
+ environment?: Environment;
11
+ };
6
12
  export type RequesterParamsType = {
7
13
  siteCode: string;
8
14
  environment?: Environment;
@@ -23,6 +29,16 @@ export type TrackDataParamsType = {
23
29
  userAgent?: string;
24
30
  isMappingIdentifier?: boolean;
25
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
+ };
26
42
  type EventDataType = {
27
43
  sdk?: {
28
44
  name: string;
@@ -110,13 +126,19 @@ export type VisitType = {
110
126
  export type GetVisitorDataResultType = {
111
127
  previousVisits?: VisitType[];
112
128
  currentVisit?: VisitType;
129
+ kcs?: KCSType;
113
130
  };
114
131
  export declare enum HttpMethod {
115
132
  Get = "GET",
116
133
  Post = "POST"
117
134
  }
135
+ export declare enum DataApiQuery {
136
+ VisitEvent = 0,
137
+ VisitData = 1,
138
+ DataMap = 2
139
+ }
118
140
  declare const EVENT_TYPE_KEYS: readonly ["customData", "staticData", "page", "conversion", "geolocation", "activity", "experiment"];
119
- 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"];
120
142
  declare const TRACKING_KEYS: readonly ["visit", "map"];
121
143
  declare const QUERY_KEYS: readonly ["sse", "visitor", "map", "events"];
122
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=void 0;let HttpMethod=exports.HttpMethod=function(a){return a.Get="GET",a.Post="POST",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","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 { Header } from './constants';\nimport { DeviceType, OperatingSystemIndexMap } from 'src/kameleoonData/types';\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\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":"iGAoIY,CAAAA,UAAU,CAAAC,OAAA,CAAAD,UAAA,UAAVA,CAAU,QAAV,CAAAA,CAAU,CAAAE,GAAA,OAAVF,CAAU,CAAAG,IAAA,QAAVH,CAAU,WAKhB,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"}
@@ -0,0 +1,17 @@
1
+ import { GetVisitorDataUrlParamsType, UrlProviderInitializeParamsType } from './types';
2
+ export declare class UrlProvider {
3
+ private static siteCode;
4
+ private static environment?;
5
+ private static ready;
6
+ private static packageInfo;
7
+ private static dataApiDomain;
8
+ static dataApiTopLevelDomain: string;
9
+ static initialize({ siteCode, packageInfo, environment, }: UrlProviderInitializeParamsType): void;
10
+ static setDataApiDomain(domain: string): void;
11
+ static getClientConfigurationUrl(timeStamp?: number): string;
12
+ static getRemoteDataUrl(key: string): string;
13
+ static getVisitorDataUrl({ visitorCode, filters, isMappingIdentifier, }: GetVisitorDataUrlParamsType): string;
14
+ static getTrackingUrl(visitorCode: string, isMappingIdentifier?: boolean): string;
15
+ private static isInitialized;
16
+ private static getDataApiUrl;
17
+ }
@@ -0,0 +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){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
+ //# sourceMappingURL=urlProvider.js.map
@@ -0,0 +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","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
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","names":["Browser","constructor","a","browser","version","versionMatchType","_defineProperty","evaluate","targetingData","browserData","KameleoonData","result","checkCondition","error","Err","Ok","parsedVersion","parseFloat","isNaN","KameleoonError","KameleoonException","VersionParse","VersionMatchType","EQUAL","GREATER","LOWER","exhaustCheck","exports"],"sources":["../../../src/targeting/conditions/browser.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport { KameleoonData, BrowserType, BrowserDataType } from 'src/kameleoonData';\nimport {\n exhaustCheck,\n KameleoonError,\n KameleoonException,\n} from 'src/kameleoonError';\nimport { EvaluationDataType, VersionMatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class Browser implements ICondition {\n private browser?: BrowserType | null;\n private version?: string | null;\n private versionMatchType?: VersionMatchType | null;\n private error?: KameleoonError;\n\n constructor({ browser, version, versionMatchType }: ConditionDataType) {\n this.browser = browser;\n this.version = version;\n this.versionMatchType = versionMatchType;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const browserData = targetingData?.[KameleoonData.Browser];\n\n if (browserData) {\n const result = this.checkCondition(browserData);\n\n if (this.error) {\n return Err(this.error);\n }\n\n return Ok(result);\n }\n\n return Ok(false);\n }\n\n private checkCondition(browserData: BrowserDataType): boolean {\n const { browser, version } = browserData;\n\n if (typeof this.browser !== 'string') {\n return false;\n }\n\n if (typeof this.version !== 'string') {\n return browser === this.browser;\n }\n\n if (!this.versionMatchType || typeof version !== 'number') {\n return false;\n }\n\n const parsedVersion = parseFloat(this.version);\n\n if (isNaN(parsedVersion)) {\n this.error = new KameleoonError(\n KameleoonException.VersionParse,\n this.version,\n );\n }\n\n switch (this.versionMatchType) {\n case VersionMatchType.EQUAL:\n return browser === this.browser && version === parsedVersion;\n case VersionMatchType.GREATER:\n return browser === this.browser && version > parsedVersion;\n case VersionMatchType.LOWER:\n return browser === this.browser && version < parsedVersion;\n default:\n exhaustCheck(this.versionMatchType);\n }\n }\n}\n"],"mappings":"ovBAUO,KAAM,CAAAA,OAA8B,CAMzCC,WAAWA,CAAAC,CAAA,CAA4D,IAA3D,CAAEC,OAAO,CAAPA,CAAO,CAAEC,OAAO,CAAPA,CAAO,CAAEC,gBAAgB,CAAhBA,CAAoC,CAAC,CAAAH,CAAA,CAAAI,eAAA,wBAAAA,eAAA,wBAAAA,eAAA,iCAAAA,eAAA,sBACnE,IAAI,CAACH,OAAO,CAAGA,CAAO,CACtB,IAAI,CAACC,OAAO,CAAGA,CAAO,CACtB,IAAI,CAACC,gBAAgB,CAAGA,CAC1B,CAEOE,QAAQA,CAAAL,CAAA,CAEyC,IAFxC,CACdM,aAAa,CAAbA,CACkB,CAAC,CAAAN,CAAA,CACnB,KAAM,CAAAO,CAAW,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACV,OAAO,CAAC,CAE1D,GAAIS,CAAW,CAAE,CACf,KAAM,CAAAE,CAAM,CAAG,IAAI,CAACC,cAAc,CAACH,CAAW,CAAC,CAAC,MAE5C,KAAI,CAACI,KAAK,CACL,GAAAC,UAAG,EAAC,IAAI,CAACD,KAAK,CAAC,CAGjB,GAAAE,SAAE,EAACJ,CAAM,CAClB,CAEA,MAAO,GAAAI,SAAE,IAAM,CACjB,CAEQH,cAAcA,CAACH,CAA4B,CAAW,CAC5D,KAAM,CAAEN,OAAO,CAAPA,CAAO,CAAEC,OAAO,CAAPA,CAAQ,CAAC,CAAGK,CAAW,CAExC,GAA4B,QAAQ,EAAhC,MAAO,KAAI,CAACN,OAAoB,CAClC,SAGF,GAA4B,QAAQ,EAAhC,MAAO,KAAI,CAACC,OAAoB,CAClC,MAAO,CAAAD,CAAO,GAAK,IAAI,CAACA,OAAO,CAGjC,GAAI,CAAC,IAAI,CAACE,gBAAgB,EAAuB,QAAQ,EAA3B,MAAO,CAAAD,CAAoB,CACvD,SAGF,KAAM,CAAAY,CAAa,CAAGC,UAAU,CAAC,IAAI,CAACb,OAAO,CAAC,CAS9C,OAPIc,KAAK,CAACF,CAAa,CAAC,GACtB,IAAI,CAACH,KAAK,CAAG,GAAI,CAAAM,8BAAc,CAC7BC,kCAAkB,CAACC,YAAY,CAC/B,IAAI,CAACjB,OACP,CAAC,EAGK,IAAI,CAACC,gBAAgB,EAC3B,IAAK,CAAAiB,uBAAgB,CAACC,KAAK,CACzB,MAAO,CAAApB,CAAO,GAAK,IAAI,CAACA,OAAO,EAAIC,CAAO,GAAKY,CAAa,CAC9D,IAAK,CAAAM,uBAAgB,CAACE,OAAO,CAC3B,MAAO,CAAArB,CAAO,GAAK,IAAI,CAACA,OAAO,EAAIC,CAAO,CAAGY,CAAa,CAC5D,IAAK,CAAAM,uBAAgB,CAACG,KAAK,CACzB,MAAO,CAAAtB,CAAO,GAAK,IAAI,CAACA,OAAO,EAAIC,CAAO,CAAGY,CAAa,CAC5D,QACE,GAAAU,4BAAY,EAAC,IAAI,CAACrB,gBAAgB,CACtC,CACF,CACF,CAACsB,OAAA,CAAA3B,OAAA,CAAAA,OAAA"}
1
+ {"version":3,"file":"browser.js","names":["Browser","constructor","a","browser","version","versionMatchType","_defineProperty","evaluate","targetingData","browserData","KameleoonData","result","checkCondition","error","Err","Ok","parsedVersion","parseFloat","isNaN","KameleoonError","KameleoonException","VersionParse","VersionMatchType","EQUAL","GREATER","LOWER","exhaustCheck","exports"],"sources":["../../../src/targeting/conditions/browser.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport { KameleoonData, BrowserType, BrowserDataType } from 'src/kameleoonData';\nimport {\n exhaustCheck,\n KameleoonError,\n KameleoonException,\n} from 'src/kameleoonError';\nimport { EvaluationDataType, VersionMatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class Browser implements ICondition {\n private browser?: BrowserType | null;\n private version?: string | null;\n private versionMatchType?: VersionMatchType | null;\n private error?: KameleoonError;\n\n constructor({ browser, version, versionMatchType }: ConditionDataType) {\n this.browser = browser;\n this.version = version;\n this.versionMatchType = versionMatchType;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const browserData = targetingData?.[KameleoonData.Browser];\n\n if (browserData) {\n const result = this.checkCondition(browserData);\n\n if (this.error) {\n return Err(this.error);\n }\n\n return Ok(result);\n }\n\n return Ok(false);\n }\n\n private checkCondition(browserData: BrowserDataType): boolean {\n const { browser, version } = browserData;\n\n if (typeof this.browser !== 'string') {\n return false;\n }\n\n if (!this.version) {\n return browser === this.browser;\n }\n\n if (!this.versionMatchType || typeof version !== 'number') {\n return false;\n }\n\n const parsedVersion = parseFloat(this.version);\n\n if (isNaN(parsedVersion)) {\n this.error = new KameleoonError(\n KameleoonException.VersionParse,\n this.version,\n );\n }\n\n switch (this.versionMatchType) {\n case VersionMatchType.EQUAL:\n return browser === this.browser && version === parsedVersion;\n case VersionMatchType.GREATER:\n return browser === this.browser && version > parsedVersion;\n case VersionMatchType.LOWER:\n return browser === this.browser && version < parsedVersion;\n default:\n exhaustCheck(this.versionMatchType);\n }\n }\n}\n"],"mappings":"ovBAUO,KAAM,CAAAA,OAA8B,CAMzCC,WAAWA,CAAAC,CAAA,CAA4D,IAA3D,CAAEC,OAAO,CAAPA,CAAO,CAAEC,OAAO,CAAPA,CAAO,CAAEC,gBAAgB,CAAhBA,CAAoC,CAAC,CAAAH,CAAA,CAAAI,eAAA,wBAAAA,eAAA,wBAAAA,eAAA,iCAAAA,eAAA,sBACnE,IAAI,CAACH,OAAO,CAAGA,CAAO,CACtB,IAAI,CAACC,OAAO,CAAGA,CAAO,CACtB,IAAI,CAACC,gBAAgB,CAAGA,CAC1B,CAEOE,QAAQA,CAAAL,CAAA,CAEyC,IAFxC,CACdM,aAAa,CAAbA,CACkB,CAAC,CAAAN,CAAA,CACnB,KAAM,CAAAO,CAAW,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACV,OAAO,CAAC,CAE1D,GAAIS,CAAW,CAAE,CACf,KAAM,CAAAE,CAAM,CAAG,IAAI,CAACC,cAAc,CAACH,CAAW,CAAC,CAAC,MAE5C,KAAI,CAACI,KAAK,CACL,GAAAC,UAAG,EAAC,IAAI,CAACD,KAAK,CAAC,CAGjB,GAAAE,SAAE,EAACJ,CAAM,CAClB,CAEA,MAAO,GAAAI,SAAE,IAAM,CACjB,CAEQH,cAAcA,CAACH,CAA4B,CAAW,CAC5D,KAAM,CAAEN,OAAO,CAAPA,CAAO,CAAEC,OAAO,CAAPA,CAAQ,CAAC,CAAGK,CAAW,CAExC,GAA4B,QAAQ,EAAhC,MAAO,KAAI,CAACN,OAAoB,CAClC,SAGF,GAAI,CAAC,IAAI,CAACC,OAAO,CACf,MAAO,CAAAD,CAAO,GAAK,IAAI,CAACA,OAAO,CAGjC,GAAI,CAAC,IAAI,CAACE,gBAAgB,EAAuB,QAAQ,EAA3B,MAAO,CAAAD,CAAoB,CACvD,SAGF,KAAM,CAAAY,CAAa,CAAGC,UAAU,CAAC,IAAI,CAACb,OAAO,CAAC,CAS9C,OAPIc,KAAK,CAACF,CAAa,CAAC,GACtB,IAAI,CAACH,KAAK,CAAG,GAAI,CAAAM,8BAAc,CAC7BC,kCAAkB,CAACC,YAAY,CAC/B,IAAI,CAACjB,OACP,CAAC,EAGK,IAAI,CAACC,gBAAgB,EAC3B,IAAK,CAAAiB,uBAAgB,CAACC,KAAK,CACzB,MAAO,CAAApB,CAAO,GAAK,IAAI,CAACA,OAAO,EAAIC,CAAO,GAAKY,CAAa,CAC9D,IAAK,CAAAM,uBAAgB,CAACE,OAAO,CAC3B,MAAO,CAAArB,CAAO,GAAK,IAAI,CAACA,OAAO,EAAIC,CAAO,CAAGY,CAAa,CAC5D,IAAK,CAAAM,uBAAgB,CAACG,KAAK,CACzB,MAAO,CAAAtB,CAAO,GAAK,IAAI,CAACA,OAAO,EAAIC,CAAO,CAAGY,CAAa,CAC5D,QACE,GAAAU,4BAAY,EAAC,IAAI,CAACrB,gBAAgB,CACtC,CACF,CACF,CAACsB,OAAA,CAAA3B,OAAA,CAAAA,OAAA"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ConditionFactory=void 0;var _tsRes=require("ts-res"),_kameleoonError=require("../../kameleoonError"),_types=require("../types"),_browser=require("./browser"),_conversion=require("./conversion"),_customData=require("./customData"),_device=require("./device"),_exclusiveCampaign=require("./exclusiveCampaign"),_pageTitle=require("./pageTitle"),_pageUrl=require("./pageUrl"),_sdkLanguage=require("./sdkLanguage"),_visitorCode=require("./visitorCode"),_cookie=require("./cookie"),_operatingSystem=require("./operatingSystem"),_geolocation=require("./geolocation"),_segment=require("./segment"),_targetFeatureFlag=require("./targetFeatureFlag"),_previousPage=require("./previousPage"),_visitedPages=require("./visitedPages"),_firstVisit=require("./firstVisit"),_lastVisit=require("./lastVisit"),_sameDayVisits=require("./sameDayVisits"),_visits=require("./visits"),_newVisitor=require("./newVisitor"),_applicationVersion=require("./applicationVersion");class ConditionFactory{static createCondition(a){const{targetingType:b}=a;return b===_types.TargetingType.CUSTOM_DATUM?(0,_tsRes.Ok)(new _customData.CustomData(a)):b===_types.TargetingType.EXCLUSIVE_EXPERIMENT||b===_types.TargetingType.EXCLUSIVE_FEATURE_FLAG?(0,_tsRes.Ok)(new _exclusiveCampaign.ExclusiveCampaign):b===_types.TargetingType.TARGET_FEATURE_FLAG?(0,_tsRes.Ok)(new _targetFeatureFlag.TargetFeatureFlag(a)):b===_types.TargetingType.DEVICE_TYPE?(0,_tsRes.Ok)(new _device.Device(a)):b===_types.TargetingType.BROWSER?(0,_tsRes.Ok)(new _browser.Browser(a)):b===_types.TargetingType.PAGE_URL?(0,_tsRes.Ok)(new _pageUrl.PageUrl(a)):b===_types.TargetingType.PAGE_TITLE?(0,_tsRes.Ok)(new _pageTitle.PageTitle(a)):b===_types.TargetingType.CONVERSIONS?(0,_tsRes.Ok)(new _conversion.Conversion(a)):b===_types.TargetingType.VISITOR_CODE?(0,_tsRes.Ok)(new _visitorCode.VisitorCode(a)):b===_types.TargetingType.SDK_LANGUAGE?(0,_tsRes.Ok)(new _sdkLanguage.SdkLanguage(a)):b===_types.TargetingType.COOKIE?(0,_tsRes.Ok)(new _cookie.Cookie(a)):b===_types.TargetingType.OPERATING_SYSTEM?(0,_tsRes.Ok)(new _operatingSystem.OperatingSystem(a)):b===_types.TargetingType.GEOLOCATION?(0,_tsRes.Ok)(new _geolocation.GeolocationCondition(a)):b===_types.TargetingType.SEGMENT?(0,_tsRes.Ok)(new _segment.Segment(a)):b===_types.TargetingType.APPLICATION_VERSION?(0,_tsRes.Ok)(new _applicationVersion.ApplicationVersion(a)):b===_types.TargetingType.PREVIOUS_PAGE?(0,_tsRes.Ok)(new _previousPage.PreviousPage(a)):b===_types.TargetingType.NUMBER_OF_VISITED_PAGES?(0,_tsRes.Ok)(new _visitedPages.VisitedPages(a)):b===_types.TargetingType.LAST_VISIT?(0,_tsRes.Ok)(new _lastVisit.LastVisit(a)):b===_types.TargetingType.FIRST_VISIT?(0,_tsRes.Ok)(new _firstVisit.FirstVisit(a)):b===_types.TargetingType.SAME_DAY_VISITS?(0,_tsRes.Ok)(new _sameDayVisits.SameDayVisits(a)):b===_types.TargetingType.VISITS?(0,_tsRes.Ok)(new _visits.Visits(a)):b===_types.TargetingType.NEW_VISITORS?(0,_tsRes.Ok)(new _newVisitor.NewVisitor(a)):(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.TargetingCondition,b))}}exports.ConditionFactory=ConditionFactory;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ConditionFactory=void 0;var _tsRes=require("ts-res"),_kameleoonError=require("../../kameleoonError"),_types=require("../types"),_browser=require("./browser"),_conversion=require("./conversion"),_customData=require("./customData"),_device=require("./device"),_exclusiveCampaign=require("./exclusiveCampaign"),_pageTitle=require("./pageTitle"),_pageUrl=require("./pageUrl"),_sdkLanguage=require("./sdkLanguage"),_visitorCode=require("./visitorCode"),_cookie=require("./cookie"),_operatingSystem=require("./operatingSystem"),_geolocation=require("./geolocation"),_segment=require("./segment"),_targetFeatureFlag=require("./targetFeatureFlag"),_previousPage=require("./previousPage"),_visitedPages=require("./visitedPages"),_firstVisit=require("./firstVisit"),_lastVisit=require("./lastVisit"),_sameDayVisits=require("./sameDayVisits"),_visits=require("./visits"),_newVisitor=require("./newVisitor"),_applicationVersion=require("./applicationVersion"),_conversionLikelihood=require("./conversionLikelihood");class ConditionFactory{static createCondition(a){const{targetingType:b}=a;return b===_types.TargetingType.CUSTOM_DATUM?(0,_tsRes.Ok)(new _customData.CustomData(a)):b===_types.TargetingType.EXCLUSIVE_EXPERIMENT||b===_types.TargetingType.EXCLUSIVE_FEATURE_FLAG?(0,_tsRes.Ok)(new _exclusiveCampaign.ExclusiveCampaign):b===_types.TargetingType.TARGET_FEATURE_FLAG?(0,_tsRes.Ok)(new _targetFeatureFlag.TargetFeatureFlag(a)):b===_types.TargetingType.DEVICE_TYPE?(0,_tsRes.Ok)(new _device.Device(a)):b===_types.TargetingType.BROWSER?(0,_tsRes.Ok)(new _browser.Browser(a)):b===_types.TargetingType.PAGE_URL?(0,_tsRes.Ok)(new _pageUrl.PageUrl(a)):b===_types.TargetingType.PAGE_TITLE?(0,_tsRes.Ok)(new _pageTitle.PageTitle(a)):b===_types.TargetingType.CONVERSIONS?(0,_tsRes.Ok)(new _conversion.Conversion(a)):b===_types.TargetingType.VISITOR_CODE?(0,_tsRes.Ok)(new _visitorCode.VisitorCode(a)):b===_types.TargetingType.SDK_LANGUAGE?(0,_tsRes.Ok)(new _sdkLanguage.SdkLanguage(a)):b===_types.TargetingType.COOKIE?(0,_tsRes.Ok)(new _cookie.Cookie(a)):b===_types.TargetingType.OPERATING_SYSTEM?(0,_tsRes.Ok)(new _operatingSystem.OperatingSystem(a)):b===_types.TargetingType.GEOLOCATION?(0,_tsRes.Ok)(new _geolocation.GeolocationCondition(a)):b===_types.TargetingType.SEGMENT?(0,_tsRes.Ok)(new _segment.Segment(a)):b===_types.TargetingType.APPLICATION_VERSION?(0,_tsRes.Ok)(new _applicationVersion.ApplicationVersion(a)):b===_types.TargetingType.PREVIOUS_PAGE?(0,_tsRes.Ok)(new _previousPage.PreviousPage(a)):b===_types.TargetingType.NUMBER_OF_VISITED_PAGES?(0,_tsRes.Ok)(new _visitedPages.VisitedPages(a)):b===_types.TargetingType.LAST_VISIT?(0,_tsRes.Ok)(new _lastVisit.LastVisit(a)):b===_types.TargetingType.FIRST_VISIT?(0,_tsRes.Ok)(new _firstVisit.FirstVisit(a)):b===_types.TargetingType.SAME_DAY_VISITS?(0,_tsRes.Ok)(new _sameDayVisits.SameDayVisits(a)):b===_types.TargetingType.VISITS?(0,_tsRes.Ok)(new _visits.Visits(a)):b===_types.TargetingType.NEW_VISITORS?(0,_tsRes.Ok)(new _newVisitor.NewVisitor(a)):b===_types.TargetingType.HEAT_SLICE?(0,_tsRes.Ok)(new _conversionLikelihood.ConversionLikelihood(a)):(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.TargetingCondition,b))}}exports.ConditionFactory=ConditionFactory;
2
2
  //# sourceMappingURL=conditionFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conditionFactory.js","names":["ConditionFactory","createCondition","data","targetingType","TargetingType","CUSTOM_DATUM","Ok","CustomData","EXCLUSIVE_EXPERIMENT","EXCLUSIVE_FEATURE_FLAG","ExclusiveCampaign","TARGET_FEATURE_FLAG","TargetFeatureFlag","DEVICE_TYPE","Device","BROWSER","Browser","PAGE_URL","PageUrl","PAGE_TITLE","PageTitle","CONVERSIONS","Conversion","VISITOR_CODE","VisitorCode","SDK_LANGUAGE","SdkLanguage","COOKIE","Cookie","OPERATING_SYSTEM","OperatingSystem","GEOLOCATION","GeolocationCondition","SEGMENT","Segment","APPLICATION_VERSION","ApplicationVersion","PREVIOUS_PAGE","PreviousPage","NUMBER_OF_VISITED_PAGES","VisitedPages","LAST_VISIT","LastVisit","FIRST_VISIT","FirstVisit","SAME_DAY_VISITS","SameDayVisits","VISITS","Visits","NEW_VISITORS","NewVisitor","Err","KameleoonError","KameleoonException","TargetingCondition","exports"],"sources":["../../../src/targeting/conditions/conditionFactory.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport { KameleoonError, KameleoonException } from 'src/kameleoonError';\nimport { TargetingType } from 'src/targeting/types';\nimport { Browser } from './browser';\nimport { Conversion } from './conversion';\nimport { CustomData } from './customData';\nimport { Device } from './device';\nimport { ExclusiveCampaign } from './exclusiveCampaign';\nimport { PageTitle } from './pageTitle';\nimport { PageUrl } from './pageUrl';\nimport { SdkLanguage } from './sdkLanguage';\nimport { ConditionDataType, ConditionType } from './types';\nimport { VisitorCode } from './visitorCode';\nimport { Cookie } from './cookie';\nimport { OperatingSystem } from './operatingSystem';\nimport { GeolocationCondition } from './geolocation';\nimport { Segment } from './segment';\nimport { TargetFeatureFlag } from './targetFeatureFlag';\nimport { PreviousPage } from './previousPage';\nimport { VisitedPages } from './visitedPages';\nimport { FirstVisit } from './firstVisit';\nimport { LastVisit } from './lastVisit';\nimport { SameDayVisits } from './sameDayVisits';\nimport { Visits } from './visits';\nimport { NewVisitor } from './newVisitor';\nimport { ApplicationVersion } from './applicationVersion';\n\nexport class ConditionFactory {\n static createCondition(\n data: ConditionDataType,\n ): Result<ConditionType, KameleoonError> {\n const { targetingType } = data;\n\n switch (targetingType) {\n case TargetingType.CUSTOM_DATUM:\n return Ok(new CustomData(data));\n case TargetingType.EXCLUSIVE_EXPERIMENT:\n case TargetingType.EXCLUSIVE_FEATURE_FLAG:\n return Ok(new ExclusiveCampaign());\n case TargetingType.TARGET_FEATURE_FLAG:\n return Ok(new TargetFeatureFlag(data));\n case TargetingType.DEVICE_TYPE:\n return Ok(new Device(data));\n case TargetingType.BROWSER:\n return Ok(new Browser(data));\n case TargetingType.PAGE_URL:\n return Ok(new PageUrl(data));\n case TargetingType.PAGE_TITLE:\n return Ok(new PageTitle(data));\n case TargetingType.CONVERSIONS:\n return Ok(new Conversion(data));\n case TargetingType.VISITOR_CODE:\n return Ok(new VisitorCode(data));\n case TargetingType.SDK_LANGUAGE:\n return Ok(new SdkLanguage(data));\n case TargetingType.COOKIE:\n return Ok(new Cookie(data));\n case TargetingType.OPERATING_SYSTEM:\n return Ok(new OperatingSystem(data));\n case TargetingType.GEOLOCATION:\n return Ok(new GeolocationCondition(data));\n case TargetingType.SEGMENT:\n return Ok(new Segment(data));\n case TargetingType.APPLICATION_VERSION:\n return Ok(new ApplicationVersion(data));\n case TargetingType.PREVIOUS_PAGE:\n return Ok(new PreviousPage(data));\n case TargetingType.NUMBER_OF_VISITED_PAGES:\n return Ok(new VisitedPages(data));\n case TargetingType.LAST_VISIT:\n return Ok(new LastVisit(data));\n case TargetingType.FIRST_VISIT:\n return Ok(new FirstVisit(data));\n case TargetingType.SAME_DAY_VISITS:\n return Ok(new SameDayVisits(data));\n case TargetingType.VISITS:\n return Ok(new Visits(data));\n case TargetingType.NEW_VISITORS:\n return Ok(new NewVisitor(data));\n default:\n return Err(\n new KameleoonError(\n KameleoonException.TargetingCondition,\n targetingType,\n ),\n );\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"conditionFactory.js","names":["ConditionFactory","createCondition","data","targetingType","TargetingType","CUSTOM_DATUM","Ok","CustomData","EXCLUSIVE_EXPERIMENT","EXCLUSIVE_FEATURE_FLAG","ExclusiveCampaign","TARGET_FEATURE_FLAG","TargetFeatureFlag","DEVICE_TYPE","Device","BROWSER","Browser","PAGE_URL","PageUrl","PAGE_TITLE","PageTitle","CONVERSIONS","Conversion","VISITOR_CODE","VisitorCode","SDK_LANGUAGE","SdkLanguage","COOKIE","Cookie","OPERATING_SYSTEM","OperatingSystem","GEOLOCATION","GeolocationCondition","SEGMENT","Segment","APPLICATION_VERSION","ApplicationVersion","PREVIOUS_PAGE","PreviousPage","NUMBER_OF_VISITED_PAGES","VisitedPages","LAST_VISIT","LastVisit","FIRST_VISIT","FirstVisit","SAME_DAY_VISITS","SameDayVisits","VISITS","Visits","NEW_VISITORS","NewVisitor","HEAT_SLICE","ConversionLikelihood","Err","KameleoonError","KameleoonException","TargetingCondition","exports"],"sources":["../../../src/targeting/conditions/conditionFactory.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport { KameleoonError, KameleoonException } from 'src/kameleoonError';\nimport { TargetingType } from 'src/targeting/types';\nimport { Browser } from './browser';\nimport { Conversion } from './conversion';\nimport { CustomData } from './customData';\nimport { Device } from './device';\nimport { ExclusiveCampaign } from './exclusiveCampaign';\nimport { PageTitle } from './pageTitle';\nimport { PageUrl } from './pageUrl';\nimport { SdkLanguage } from './sdkLanguage';\nimport { ConditionDataType, ConditionType } from './types';\nimport { VisitorCode } from './visitorCode';\nimport { Cookie } from './cookie';\nimport { OperatingSystem } from './operatingSystem';\nimport { GeolocationCondition } from './geolocation';\nimport { Segment } from './segment';\nimport { TargetFeatureFlag } from './targetFeatureFlag';\nimport { PreviousPage } from './previousPage';\nimport { VisitedPages } from './visitedPages';\nimport { FirstVisit } from './firstVisit';\nimport { LastVisit } from './lastVisit';\nimport { SameDayVisits } from './sameDayVisits';\nimport { Visits } from './visits';\nimport { NewVisitor } from './newVisitor';\nimport { ApplicationVersion } from './applicationVersion';\nimport { ConversionLikelihood } from './conversionLikelihood';\n\nexport class ConditionFactory {\n static createCondition(\n data: ConditionDataType,\n ): Result<ConditionType, KameleoonError> {\n const { targetingType } = data;\n\n switch (targetingType) {\n case TargetingType.CUSTOM_DATUM:\n return Ok(new CustomData(data));\n case TargetingType.EXCLUSIVE_EXPERIMENT:\n case TargetingType.EXCLUSIVE_FEATURE_FLAG:\n return Ok(new ExclusiveCampaign());\n case TargetingType.TARGET_FEATURE_FLAG:\n return Ok(new TargetFeatureFlag(data));\n case TargetingType.DEVICE_TYPE:\n return Ok(new Device(data));\n case TargetingType.BROWSER:\n return Ok(new Browser(data));\n case TargetingType.PAGE_URL:\n return Ok(new PageUrl(data));\n case TargetingType.PAGE_TITLE:\n return Ok(new PageTitle(data));\n case TargetingType.CONVERSIONS:\n return Ok(new Conversion(data));\n case TargetingType.VISITOR_CODE:\n return Ok(new VisitorCode(data));\n case TargetingType.SDK_LANGUAGE:\n return Ok(new SdkLanguage(data));\n case TargetingType.COOKIE:\n return Ok(new Cookie(data));\n case TargetingType.OPERATING_SYSTEM:\n return Ok(new OperatingSystem(data));\n case TargetingType.GEOLOCATION:\n return Ok(new GeolocationCondition(data));\n case TargetingType.SEGMENT:\n return Ok(new Segment(data));\n case TargetingType.APPLICATION_VERSION:\n return Ok(new ApplicationVersion(data));\n case TargetingType.PREVIOUS_PAGE:\n return Ok(new PreviousPage(data));\n case TargetingType.NUMBER_OF_VISITED_PAGES:\n return Ok(new VisitedPages(data));\n case TargetingType.LAST_VISIT:\n return Ok(new LastVisit(data));\n case TargetingType.FIRST_VISIT:\n return Ok(new FirstVisit(data));\n case TargetingType.SAME_DAY_VISITS:\n return Ok(new SameDayVisits(data));\n case TargetingType.VISITS:\n return Ok(new Visits(data));\n case TargetingType.NEW_VISITORS:\n return Ok(new NewVisitor(data));\n case TargetingType.HEAT_SLICE:\n return Ok(new ConversionLikelihood(data));\n default:\n return Err(\n new KameleoonError(\n KameleoonException.TargetingCondition,\n targetingType,\n ),\n );\n }\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Result } from 'ts-res';
2
+ import { KameleoonError } from '../../kameleoonError';
3
+ import { EvaluationDataType } from '../../targeting/types';
4
+ import { ConditionDataType, ICondition } from './types';
5
+ export declare class ConversionLikelihood implements ICondition {
6
+ private lowerBound?;
7
+ private upperBound?;
8
+ private keyMomentId?;
9
+ private goalId?;
10
+ constructor({ lowerBound, upperBound, keyMomentId, goalId, }: ConditionDataType);
11
+ evaluate({ targetingData, }: EvaluationDataType): Result<boolean, KameleoonError>;
12
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ConversionLikelihood=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData");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 ConversionLikelihood{constructor(a){let{lowerBound:b,upperBound:c,keyMomentId:d,goalId:e}=a;_defineProperty(this,"lowerBound",void 0),_defineProperty(this,"upperBound",void 0),_defineProperty(this,"keyMomentId",void 0),_defineProperty(this,"goalId",void 0),this.lowerBound=b,this.upperBound=c,this.keyMomentId=d,this.goalId=e}evaluate(a){var b;let{targetingData:c}=a;const d=null===c||void 0===c?void 0:c[_kameleoonData.KameleoonData.KameleoonConversionScore];if("number"!=typeof this.keyMomentId||"number"!=typeof this.goalId||"number"!=typeof this.lowerBound||"number"!=typeof this.upperBound||!d)return(0,_tsRes.Ok)(!1);const e=null===(b=d.kcs[this.keyMomentId.toString()])||void 0===b?void 0:b[this.goalId.toString()];return"number"==typeof e?(0,_tsRes.Ok)(e>=this.lowerBound&&e<=this.upperBound):(0,_tsRes.Ok)(!1)}}exports.ConversionLikelihood=ConversionLikelihood;
2
+ //# sourceMappingURL=conversionLikelihood.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversionLikelihood.js","names":["ConversionLikelihood","constructor","a","lowerBound","upperBound","keyMomentId","goalId","_defineProperty","evaluate","b","targetingData","kcsData","KameleoonData","KameleoonConversionScore","Ok","score","kcs","toString","exports"],"sources":["../../../src/targeting/conditions/conversionLikelihood.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { EvaluationDataType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class ConversionLikelihood implements ICondition {\n private lowerBound?: number;\n private upperBound?: number;\n private keyMomentId?: number;\n private goalId?: number | null;\n\n constructor({\n lowerBound,\n upperBound,\n keyMomentId,\n goalId,\n }: ConditionDataType) {\n this.lowerBound = lowerBound;\n this.upperBound = upperBound;\n this.keyMomentId = keyMomentId;\n this.goalId = goalId;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const kcsData = targetingData?.[KameleoonData.KameleoonConversionScore];\n\n if (\n typeof this.keyMomentId !== 'number' ||\n typeof this.goalId !== 'number' ||\n typeof this.lowerBound !== 'number' ||\n typeof this.upperBound !== 'number' ||\n !kcsData\n ) {\n return Ok(false);\n }\n\n const score: number | undefined =\n kcsData.kcs[this.keyMomentId.toString()]?.[this.goalId.toString()];\n\n if (typeof score !== 'number') {\n return Ok(false);\n }\n\n return Ok(score >= this.lowerBound && score <= this.upperBound);\n }\n}\n"],"mappings":"srBAMO,KAAM,CAAAA,oBAA2C,CAMtDC,WAAWA,CAAAC,CAAA,CAKW,IALV,CACVC,UAAU,CAAVA,CAAU,CACVC,UAAU,CAAVA,CAAU,CACVC,WAAW,CAAXA,CAAW,CACXC,MAAM,CAANA,CACiB,CAAC,CAAAJ,CAAA,CAAAK,eAAA,2BAAAA,eAAA,2BAAAA,eAAA,4BAAAA,eAAA,uBAClB,IAAI,CAACJ,UAAU,CAAGA,CAAU,CAC5B,IAAI,CAACC,UAAU,CAAGA,CAAU,CAC5B,IAAI,CAACC,WAAW,CAAGA,CAAW,CAC9B,IAAI,CAACC,MAAM,CAAGA,CAChB,CAEOE,QAAQA,CAAAN,CAAA,CAEyC,KAAAO,CAAA,IAFxC,CACdC,aAAa,CAAbA,CACkB,CAAC,CAAAR,CAAA,CACnB,KAAM,CAAAS,CAAO,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACC,wBAAwB,CAAC,CAEvE,GAC8B,QAAQ,EAApC,MAAO,KAAI,CAACR,WAAwB,EACb,QAAQ,EAA/B,MAAO,KAAI,CAACC,MAAmB,EACJ,QAAQ,EAAnC,MAAO,KAAI,CAACH,UAAuB,EACR,QAAQ,EAAnC,MAAO,KAAI,CAACC,UAAuB,EACnC,CAACO,CAAO,CAER,MAAO,GAAAG,SAAE,IAAM,CAAC,CAGlB,KAAM,CAAAC,CAAyB,SAAAN,CAAA,CAC7BE,CAAO,CAACK,GAAG,CAAC,IAAI,CAACX,WAAW,CAACY,QAAQ,CAAC,CAAC,CAAC,YAAAR,CAAA,QAAxCA,CAAA,CAA2C,IAAI,CAACH,MAAM,CAACW,QAAQ,CAAC,CAAC,CAAC,CAAC,MAEhD,QAAQ,EAAzB,MAAO,CAAAF,CAAkB,CAItB,GAAAD,SAAE,EAACC,CAAK,EAAI,IAAI,CAACZ,UAAU,EAAIY,CAAK,EAAI,IAAI,CAACX,UAAU,CAAC,CAHtD,GAAAU,SAAE,IAAM,CAInB,CACF,CAACI,OAAA,CAAAlB,oBAAA,CAAAA,oBAAA"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FirstVisit=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_utilities=require("../../utilities"),_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 FirstVisit{constructor(a){let{matchType:b,count:c,unitOfTime:d}=a;_defineProperty(this,"matchType",void 0),_defineProperty(this,"conditionValue",void 0),_defineProperty(this,"timeUnit",void 0),this.matchType=b,this.conditionValue=c,this.timeUnit=d}evaluate(a){let{targetingData:b}=a;const c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.VisitsData];if(!c)return(0,_tsRes.Ok)(!1);const{currentVisit:d,previousVisits:e}=c,f=e.length?e[0]:d;return"number"==typeof f?(0,_tsRes.Ok)(this.checkCondition(f)):(0,_tsRes.Ok)(!1)}checkCondition(a){if(!this.matchType||"number"!=typeof this.conditionValue||!this.timeUnit)return!1;const b=Date.now()-a,c=_utilities.Utilities.convertTimeUnit(b,this.timeUnit);switch(this.matchType){case _types.MatchType.GREATER:return c>this.conditionValue;case _types.MatchType.LOWER:return c<this.conditionValue;default:return!1}}}exports.FirstVisit=FirstVisit;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FirstVisit=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_utilities=require("../../utilities"),_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 FirstVisit{constructor(a){let{matchType:b,count:c,unitOfTime:d}=a;_defineProperty(this,"matchType",void 0),_defineProperty(this,"conditionValue",void 0),_defineProperty(this,"timeUnit",void 0),this.matchType=b,this.conditionValue=c,this.timeUnit=d}evaluate(a){let{targetingData:b}=a;const c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.VisitsData];if(!(null!==c&&void 0!==c&&c.visits.length))return(0,_tsRes.Ok)(!1);const d=c.visits[0];return(0,_tsRes.Ok)(this.checkCondition(d))}checkCondition(a){if(!this.matchType||"number"!=typeof this.conditionValue||!this.timeUnit)return!1;const b=Date.now()-a,c=_utilities.Utilities.convertTimeUnit(b,this.timeUnit);switch(this.matchType){case _types.MatchType.GREATER:return c>this.conditionValue;case _types.MatchType.LOWER:return c<this.conditionValue;default:return!1}}}exports.FirstVisit=FirstVisit;
2
2
  //# sourceMappingURL=firstVisit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"firstVisit.js","names":["FirstVisit","constructor","a","matchType","count","unitOfTime","_defineProperty","conditionValue","timeUnit","evaluate","targetingData","visitsData","KameleoonData","VisitsData","Ok","currentVisit","previousVisits","firstVisitTimestamp","length","checkCondition","elapsedTimeMilliseconds","Date","now","elapsedTimeUnit","Utilities","convertTimeUnit","MatchType","GREATER","LOWER","exports"],"sources":["../../../src/targeting/conditions/firstVisit.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { Utilities, TimeUnit } from 'src/utilities';\nimport { EvaluationDataType, MatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class FirstVisit implements ICondition {\n private matchType?: MatchType | null;\n private conditionValue?: number | null;\n private timeUnit?: TimeUnit | null;\n\n constructor({ matchType, count, unitOfTime }: ConditionDataType) {\n this.matchType = matchType;\n this.conditionValue = count;\n this.timeUnit = unitOfTime;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const visitsData = targetingData?.[KameleoonData.VisitsData];\n\n if (!visitsData) {\n return Ok(false);\n }\n\n const { currentVisit, previousVisits } = visitsData;\n\n const firstVisitTimestamp = previousVisits.length\n ? previousVisits[0]\n : currentVisit;\n\n if (typeof firstVisitTimestamp !== 'number') {\n return Ok(false);\n }\n\n return Ok(this.checkCondition(firstVisitTimestamp));\n }\n\n private checkCondition(firstVisitTimestamp: number): boolean {\n if (\n !this.matchType ||\n typeof this.conditionValue !== 'number' ||\n !this.timeUnit\n ) {\n return false;\n }\n\n const elapsedTimeMilliseconds = Date.now() - firstVisitTimestamp;\n const elapsedTimeUnit = Utilities.convertTimeUnit(\n elapsedTimeMilliseconds,\n this.timeUnit,\n );\n\n switch (this.matchType) {\n case MatchType.GREATER:\n return elapsedTimeUnit > this.conditionValue;\n case MatchType.LOWER:\n return elapsedTimeUnit < this.conditionValue;\n default:\n return false;\n }\n }\n}\n"],"mappings":"6uBAOO,KAAM,CAAAA,UAAiC,CAK5CC,WAAWA,CAAAC,CAAA,CAAsD,IAArD,CAAEC,SAAS,CAATA,CAAS,CAAEC,KAAK,CAALA,CAAK,CAAEC,UAAU,CAAVA,CAA8B,CAAC,CAAAH,CAAA,CAAAI,eAAA,0BAAAA,eAAA,+BAAAA,eAAA,yBAC7D,IAAI,CAACH,SAAS,CAAGA,CAAS,CAC1B,IAAI,CAACI,cAAc,CAAGH,CAAK,CAC3B,IAAI,CAACI,QAAQ,CAAGH,CAClB,CAEOI,QAAQA,CAAAP,CAAA,CAEyC,IAFxC,CACdQ,aAAa,CAAbA,CACkB,CAAC,CAAAR,CAAA,CACnB,KAAM,CAAAS,CAAU,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACC,UAAU,CAAC,CAE5D,GAAI,CAACF,CAAU,CACb,MAAO,GAAAG,SAAE,IAAM,CAAC,CACjB,KAEK,CAAEC,YAAY,CAAZA,CAAY,CAAEC,cAAc,CAAdA,CAAe,CAAC,CAAGL,CAAU,CAE7CM,CAAmB,CAAGD,CAAc,CAACE,MAAM,CAC7CF,CAAc,CAAC,CAAC,CAAC,CACjBD,CAAY,OAEmB,QAAQ,EAAvC,MAAO,CAAAE,CAAgC,CAIpC,GAAAH,SAAE,EAAC,IAAI,CAACK,cAAc,CAACF,CAAmB,CAAC,CAAC,CAH1C,GAAAH,SAAE,IAAM,CAInB,CAEQK,cAAcA,CAACF,CAA2B,CAAW,CAC3D,GACE,CAAC,IAAI,CAACd,SAAS,EACgB,QAAQ,EAAvC,MAAO,KAAI,CAACI,cAA2B,EACvC,CAAC,IAAI,CAACC,QAAQ,CAEd,SACD,KAEK,CAAAY,CAAuB,CAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,CAAGL,CAAmB,CAC1DM,CAAe,CAAGC,oBAAS,CAACC,eAAe,CAC/CL,CAAuB,CACvB,IAAI,CAACZ,QACP,CAAC,CAED,OAAQ,IAAI,CAACL,SAAS,EACpB,IAAK,CAAAuB,gBAAS,CAACC,OAAO,CACpB,MAAO,CAAAJ,CAAe,CAAG,IAAI,CAAChB,cAAc,CAC9C,IAAK,CAAAmB,gBAAS,CAACE,KAAK,CAClB,MAAO,CAAAL,CAAe,CAAG,IAAI,CAAChB,cAAc,CAC9C,QACE,QACJ,CACF,CACF,CAACsB,OAAA,CAAA7B,UAAA,CAAAA,UAAA"}
1
+ {"version":3,"file":"firstVisit.js","names":["FirstVisit","constructor","a","matchType","count","unitOfTime","_defineProperty","conditionValue","timeUnit","evaluate","targetingData","visitsData","KameleoonData","VisitsData","visits","length","Ok","firstVisitTimestamp","checkCondition","elapsedTimeMilliseconds","Date","now","elapsedTimeUnit","Utilities","convertTimeUnit","MatchType","GREATER","LOWER","exports"],"sources":["../../../src/targeting/conditions/firstVisit.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { Utilities, TimeUnit } from 'src/utilities';\nimport { EvaluationDataType, MatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class FirstVisit implements ICondition {\n private matchType?: MatchType | null;\n private conditionValue?: number | null;\n private timeUnit?: TimeUnit | null;\n\n constructor({ matchType, count, unitOfTime }: ConditionDataType) {\n this.matchType = matchType;\n this.conditionValue = count;\n this.timeUnit = unitOfTime;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const visitsData = targetingData?.[KameleoonData.VisitsData];\n\n if (!visitsData?.visits.length) {\n return Ok(false);\n }\n\n const firstVisitTimestamp = visitsData.visits[0];\n\n return Ok(this.checkCondition(firstVisitTimestamp));\n }\n\n private checkCondition(firstVisitTimestamp: number): boolean {\n if (\n !this.matchType ||\n typeof this.conditionValue !== 'number' ||\n !this.timeUnit\n ) {\n return false;\n }\n\n const elapsedTimeMilliseconds = Date.now() - firstVisitTimestamp;\n const elapsedTimeUnit = Utilities.convertTimeUnit(\n elapsedTimeMilliseconds,\n this.timeUnit,\n );\n\n switch (this.matchType) {\n case MatchType.GREATER:\n return elapsedTimeUnit > this.conditionValue;\n case MatchType.LOWER:\n return elapsedTimeUnit < this.conditionValue;\n default:\n return false;\n }\n }\n}\n"],"mappings":"6uBAOO,KAAM,CAAAA,UAAiC,CAK5CC,WAAWA,CAAAC,CAAA,CAAsD,IAArD,CAAEC,SAAS,CAATA,CAAS,CAAEC,KAAK,CAALA,CAAK,CAAEC,UAAU,CAAVA,CAA8B,CAAC,CAAAH,CAAA,CAAAI,eAAA,0BAAAA,eAAA,+BAAAA,eAAA,yBAC7D,IAAI,CAACH,SAAS,CAAGA,CAAS,CAC1B,IAAI,CAACI,cAAc,CAAGH,CAAK,CAC3B,IAAI,CAACI,QAAQ,CAAGH,CAClB,CAEOI,QAAQA,CAAAP,CAAA,CAEyC,IAFxC,CACdQ,aAAa,CAAbA,CACkB,CAAC,CAAAR,CAAA,CACnB,KAAM,CAAAS,CAAU,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACC,UAAU,CAAC,CAE5D,GAAI,SAACF,CAAU,WAAVA,CAAU,EAAVA,CAAU,CAAEG,MAAM,CAACC,MAAM,EAC5B,MAAO,GAAAC,SAAE,IAAM,CAAC,CAGlB,KAAM,CAAAC,CAAmB,CAAGN,CAAU,CAACG,MAAM,CAAC,CAAC,CAAC,CAEhD,MAAO,GAAAE,SAAE,EAAC,IAAI,CAACE,cAAc,CAACD,CAAmB,CAAC,CACpD,CAEQC,cAAcA,CAACD,CAA2B,CAAW,CAC3D,GACE,CAAC,IAAI,CAACd,SAAS,EACgB,QAAQ,EAAvC,MAAO,KAAI,CAACI,cAA2B,EACvC,CAAC,IAAI,CAACC,QAAQ,CAEd,SACD,KAEK,CAAAW,CAAuB,CAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,CAAGJ,CAAmB,CAC1DK,CAAe,CAAGC,oBAAS,CAACC,eAAe,CAC/CL,CAAuB,CACvB,IAAI,CAACX,QACP,CAAC,CAED,OAAQ,IAAI,CAACL,SAAS,EACpB,IAAK,CAAAsB,gBAAS,CAACC,OAAO,CACpB,MAAO,CAAAJ,CAAe,CAAG,IAAI,CAACf,cAAc,CAC9C,IAAK,CAAAkB,gBAAS,CAACE,KAAK,CAClB,MAAO,CAAAL,CAAe,CAAG,IAAI,CAACf,cAAc,CAC9C,QACE,QACJ,CACF,CACF,CAACqB,OAAA,CAAA5B,UAAA,CAAAA,UAAA"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.GeolocationCondition=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData");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 GeolocationCondition{constructor(a){let{country:b,region:c,city:d}=a;_defineProperty(this,"country",void 0),_defineProperty(this,"region",void 0),_defineProperty(this,"city",void 0),this.country=b,this.region=c,this.city=d}evaluate(a){let{targetingData:b}=a;const c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.GeolocationData];if(c){const{country:a,region:b,city:d}=c,[e,f,g]=[this.country,this.region,this.city];if(!e||!a)return(0,_tsRes.Ok)(!1);return(0,_tsRes.Ok)(a===e&&(!f||b===f)&&(!g||d===g))}return(0,_tsRes.Ok)(!1)}}exports.GeolocationCondition=GeolocationCondition;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.GeolocationCondition=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData");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 GeolocationCondition{constructor(a){let{country:b,region:c,city:d}=a;_defineProperty(this,"country",void 0),_defineProperty(this,"region",void 0),_defineProperty(this,"city",void 0),this.country=b,this.region=c,this.city=d}evaluate(a){let{targetingData:b}=a;const c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.GeolocationData];if(c){const{country:a,region:b,city:d}=c,[e,f,g]=[this.country,this.region,this.city];if(!e||!a)return(0,_tsRes.Ok)(!1);const h=a.toLowerCase()===e.toLowerCase()&&(!f||(null===b||void 0===b?void 0:b.toLowerCase())===f.toLowerCase())&&(!g||(null===d||void 0===d?void 0:d.toLowerCase())===g.toLowerCase());return(0,_tsRes.Ok)(h)}return(0,_tsRes.Ok)(!1)}}exports.GeolocationCondition=GeolocationCondition;
2
2
  //# sourceMappingURL=geolocation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"geolocation.js","names":["GeolocationCondition","constructor","a","country","region","city","_defineProperty","evaluate","targetingData","geolocationData","KameleoonData","GeolocationData","dataCountry","dataRegion","dataCity","conditionCountry","conditionRegion","conditionCity","Ok","exports"],"sources":["../../../src/targeting/conditions/geolocation.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { EvaluationDataType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\n// --- Note ---\n// `GeolocationCondition` uses `Condition` in the naming to avoid confusion with\n// native `Geolocation` API\nexport class GeolocationCondition implements ICondition {\n private country?: string | null;\n private region?: string | null;\n private city?: string | null;\n\n constructor({ country, region, city }: ConditionDataType) {\n this.country = country;\n this.region = region;\n this.city = city;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const geolocationData = targetingData?.[KameleoonData.GeolocationData];\n\n if (geolocationData) {\n const {\n country: dataCountry,\n region: dataRegion,\n city: dataCity,\n } = geolocationData;\n const [conditionCountry, conditionRegion, conditionCity] = [\n this.country,\n this.region,\n this.city,\n ];\n\n if (!conditionCountry || !dataCountry) {\n return Ok(false);\n }\n\n const result =\n dataCountry === conditionCountry &&\n (!conditionRegion || dataRegion === conditionRegion) &&\n (!conditionCity || dataCity === conditionCity);\n\n return Ok(result);\n }\n\n return Ok(false);\n }\n}\n"],"mappings":"srBASO,KAAM,CAAAA,oBAA2C,CAKtDC,WAAWA,CAAAC,CAAA,CAA+C,IAA9C,CAAEC,OAAO,CAAPA,CAAO,CAAEC,MAAM,CAANA,CAAM,CAAEC,IAAI,CAAJA,CAAwB,CAAC,CAAAH,CAAA,CAAAI,eAAA,wBAAAA,eAAA,uBAAAA,eAAA,qBACtD,IAAI,CAACH,OAAO,CAAGA,CAAO,CACtB,IAAI,CAACC,MAAM,CAAGA,CAAM,CACpB,IAAI,CAACC,IAAI,CAAGA,CACd,CAEOE,QAAQA,CAAAL,CAAA,CAEyC,IAFxC,CACdM,aAAa,CAAbA,CACkB,CAAC,CAAAN,CAAA,CACnB,KAAM,CAAAO,CAAe,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACC,eAAe,CAAC,CAEtE,GAAIF,CAAe,CAAE,MACb,CACJN,OAAO,CAAES,CAAW,CACpBR,MAAM,CAAES,CAAU,CAClBR,IAAI,CAAES,CACR,CAAC,CAAGL,CAAe,CACb,CAACM,CAAgB,CAAEC,CAAe,CAAEC,CAAa,CAAC,CAAG,CACzD,IAAI,CAACd,OAAO,CACZ,IAAI,CAACC,MAAM,CACX,IAAI,CAACC,IAAI,CACV,CAED,GAAI,CAACU,CAAgB,EAAI,CAACH,CAAW,CACnC,MAAO,GAAAM,SAAE,IAAM,CAAC,CAQlB,MAAO,GAAAA,SAAE,EAJPN,CAAW,GAAKG,CAAgB,GAC/B,CAACC,CAAe,EAAIH,CAAU,GAAKG,CAAe,CAAC,GACnD,CAACC,CAAa,EAAIH,CAAQ,GAAKG,CAAa,CAE/B,CAClB,CAEA,MAAO,GAAAC,SAAE,IAAM,CACjB,CACF,CAACC,OAAA,CAAAnB,oBAAA,CAAAA,oBAAA"}
1
+ {"version":3,"file":"geolocation.js","names":["GeolocationCondition","constructor","a","country","region","city","_defineProperty","evaluate","targetingData","geolocationData","KameleoonData","GeolocationData","dataCountry","dataRegion","dataCity","conditionCountry","conditionRegion","conditionCity","Ok","result","toLowerCase","exports"],"sources":["../../../src/targeting/conditions/geolocation.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { EvaluationDataType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\n// --- Note ---\n// `GeolocationCondition` uses `Condition` in the naming to avoid confusion with\n// native `Geolocation` API\nexport class GeolocationCondition implements ICondition {\n private country?: string | null;\n private region?: string | null;\n private city?: string | null;\n\n constructor({ country, region, city }: ConditionDataType) {\n this.country = country;\n this.region = region;\n this.city = city;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const geolocationData = targetingData?.[KameleoonData.GeolocationData];\n\n if (geolocationData) {\n const {\n country: dataCountry,\n region: dataRegion,\n city: dataCity,\n } = geolocationData;\n const [conditionCountry, conditionRegion, conditionCity] = [\n this.country,\n this.region,\n this.city,\n ];\n\n if (!conditionCountry || !dataCountry) {\n return Ok(false);\n }\n\n const result =\n dataCountry.toLowerCase() === conditionCountry.toLowerCase() &&\n (!conditionRegion ||\n dataRegion?.toLowerCase() === conditionRegion.toLowerCase()) &&\n (!conditionCity ||\n dataCity?.toLowerCase() === conditionCity.toLowerCase());\n\n return Ok(result);\n }\n\n return Ok(false);\n }\n}\n"],"mappings":"srBASO,KAAM,CAAAA,oBAA2C,CAKtDC,WAAWA,CAAAC,CAAA,CAA+C,IAA9C,CAAEC,OAAO,CAAPA,CAAO,CAAEC,MAAM,CAANA,CAAM,CAAEC,IAAI,CAAJA,CAAwB,CAAC,CAAAH,CAAA,CAAAI,eAAA,wBAAAA,eAAA,uBAAAA,eAAA,qBACtD,IAAI,CAACH,OAAO,CAAGA,CAAO,CACtB,IAAI,CAACC,MAAM,CAAGA,CAAM,CACpB,IAAI,CAACC,IAAI,CAAGA,CACd,CAEOE,QAAQA,CAAAL,CAAA,CAEyC,IAFxC,CACdM,aAAa,CAAbA,CACkB,CAAC,CAAAN,CAAA,CACnB,KAAM,CAAAO,CAAe,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACC,eAAe,CAAC,CAEtE,GAAIF,CAAe,CAAE,MACb,CACJN,OAAO,CAAES,CAAW,CACpBR,MAAM,CAAES,CAAU,CAClBR,IAAI,CAAES,CACR,CAAC,CAAGL,CAAe,CACb,CAACM,CAAgB,CAAEC,CAAe,CAAEC,CAAa,CAAC,CAAG,CACzD,IAAI,CAACd,OAAO,CACZ,IAAI,CAACC,MAAM,CACX,IAAI,CAACC,IAAI,CACV,CAED,GAAI,CAACU,CAAgB,EAAI,CAACH,CAAW,CACnC,MAAO,GAAAM,SAAE,IAAM,CAAC,CAGlB,KAAM,CAAAC,CAAM,CACVP,CAAW,CAACQ,WAAW,CAAC,CAAC,GAAKL,CAAgB,CAACK,WAAW,CAAC,CAAC,GAC3D,CAACJ,CAAe,EACf,QAAAH,CAAU,WAAVA,CAAU,QAAVA,CAAU,CAAEO,WAAW,CAAC,CAAC,IAAKJ,CAAe,CAACI,WAAW,CAAC,CAAC,CAAC,GAC7D,CAACH,CAAa,EACb,QAAAH,CAAQ,WAARA,CAAQ,QAARA,CAAQ,CAAEM,WAAW,CAAC,CAAC,IAAKH,CAAa,CAACG,WAAW,CAAC,CAAC,CAAC,CAE5D,MAAO,GAAAF,SAAE,EAACC,CAAM,CAClB,CAEA,MAAO,GAAAD,SAAE,IAAM,CACjB,CACF,CAACG,OAAA,CAAArB,oBAAA,CAAAA,oBAAA"}
@@ -22,3 +22,4 @@ export { Visits } from './visits';
22
22
  export { SameDayVisits } from './sameDayVisits';
23
23
  export { NewVisitor } from './newVisitor';
24
24
  export { ApplicationVersion } from './applicationVersion';
25
+ export { ConversionLikelihood } from './conversionLikelihood';
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ApplicationVersion",{enumerable:!0,get:function(){return _applicationVersion.ApplicationVersion}}),Object.defineProperty(exports,"Browser",{enumerable:!0,get:function(){return _browser.Browser}}),Object.defineProperty(exports,"ConditionDataType",{enumerable:!0,get:function(){return _types.ConditionDataType}}),Object.defineProperty(exports,"ConditionFactory",{enumerable:!0,get:function(){return _conditionFactory.ConditionFactory}}),Object.defineProperty(exports,"ConditionType",{enumerable:!0,get:function(){return _types.ConditionType}}),Object.defineProperty(exports,"Conversion",{enumerable:!0,get:function(){return _conversion.Conversion}}),Object.defineProperty(exports,"Cookie",{enumerable:!0,get:function(){return _cookie.Cookie}}),Object.defineProperty(exports,"CustomData",{enumerable:!0,get:function(){return _customData.CustomData}}),Object.defineProperty(exports,"Device",{enumerable:!0,get:function(){return _device.Device}}),Object.defineProperty(exports,"ExclusiveCampaign",{enumerable:!0,get:function(){return _exclusiveCampaign.ExclusiveCampaign}}),Object.defineProperty(exports,"FirstVisit",{enumerable:!0,get:function(){return _firstVisit.FirstVisit}}),Object.defineProperty(exports,"GeolocationCondition",{enumerable:!0,get:function(){return _geolocation.GeolocationCondition}}),Object.defineProperty(exports,"LastVisit",{enumerable:!0,get:function(){return _lastVisit.LastVisit}}),Object.defineProperty(exports,"NewVisitor",{enumerable:!0,get:function(){return _newVisitor.NewVisitor}}),Object.defineProperty(exports,"OperatingSystem",{enumerable:!0,get:function(){return _operatingSystem.OperatingSystem}}),Object.defineProperty(exports,"PageTitle",{enumerable:!0,get:function(){return _pageTitle.PageTitle}}),Object.defineProperty(exports,"PageUrl",{enumerable:!0,get:function(){return _pageUrl.PageUrl}}),Object.defineProperty(exports,"PreviousPage",{enumerable:!0,get:function(){return _previousPage.PreviousPage}}),Object.defineProperty(exports,"SameDayVisits",{enumerable:!0,get:function(){return _sameDayVisits.SameDayVisits}}),Object.defineProperty(exports,"SdkLanguage",{enumerable:!0,get:function(){return _sdkLanguage.SdkLanguage}}),Object.defineProperty(exports,"Segment",{enumerable:!0,get:function(){return _segment.Segment}}),Object.defineProperty(exports,"TargetFeatureFlag",{enumerable:!0,get:function(){return _targetFeatureFlag.TargetFeatureFlag}}),Object.defineProperty(exports,"VisitedPages",{enumerable:!0,get:function(){return _visitedPages.VisitedPages}}),Object.defineProperty(exports,"VisitorCode",{enumerable:!0,get:function(){return _visitorCode.VisitorCode}}),Object.defineProperty(exports,"Visits",{enumerable:!0,get:function(){return _visits.Visits}});var _device=require("./device"),_conditionFactory=require("./conditionFactory"),_types=require("./types"),_customData=require("./customData"),_exclusiveCampaign=require("./exclusiveCampaign"),_browser=require("./browser"),_pageUrl=require("./pageUrl"),_pageTitle=require("./pageTitle"),_conversion=require("./conversion"),_visitorCode=require("./visitorCode"),_sdkLanguage=require("./sdkLanguage"),_targetFeatureFlag=require("./targetFeatureFlag"),_cookie=require("./cookie"),_operatingSystem=require("./operatingSystem"),_geolocation=require("./geolocation"),_segment=require("./segment"),_previousPage=require("./previousPage"),_visitedPages=require("./visitedPages"),_firstVisit=require("./firstVisit"),_lastVisit=require("./lastVisit"),_visits=require("./visits"),_sameDayVisits=require("./sameDayVisits"),_newVisitor=require("./newVisitor"),_applicationVersion=require("./applicationVersion");
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ApplicationVersion",{enumerable:!0,get:function(){return _applicationVersion.ApplicationVersion}}),Object.defineProperty(exports,"Browser",{enumerable:!0,get:function(){return _browser.Browser}}),Object.defineProperty(exports,"ConditionDataType",{enumerable:!0,get:function(){return _types.ConditionDataType}}),Object.defineProperty(exports,"ConditionFactory",{enumerable:!0,get:function(){return _conditionFactory.ConditionFactory}}),Object.defineProperty(exports,"ConditionType",{enumerable:!0,get:function(){return _types.ConditionType}}),Object.defineProperty(exports,"Conversion",{enumerable:!0,get:function(){return _conversion.Conversion}}),Object.defineProperty(exports,"ConversionLikelihood",{enumerable:!0,get:function(){return _conversionLikelihood.ConversionLikelihood}}),Object.defineProperty(exports,"Cookie",{enumerable:!0,get:function(){return _cookie.Cookie}}),Object.defineProperty(exports,"CustomData",{enumerable:!0,get:function(){return _customData.CustomData}}),Object.defineProperty(exports,"Device",{enumerable:!0,get:function(){return _device.Device}}),Object.defineProperty(exports,"ExclusiveCampaign",{enumerable:!0,get:function(){return _exclusiveCampaign.ExclusiveCampaign}}),Object.defineProperty(exports,"FirstVisit",{enumerable:!0,get:function(){return _firstVisit.FirstVisit}}),Object.defineProperty(exports,"GeolocationCondition",{enumerable:!0,get:function(){return _geolocation.GeolocationCondition}}),Object.defineProperty(exports,"LastVisit",{enumerable:!0,get:function(){return _lastVisit.LastVisit}}),Object.defineProperty(exports,"NewVisitor",{enumerable:!0,get:function(){return _newVisitor.NewVisitor}}),Object.defineProperty(exports,"OperatingSystem",{enumerable:!0,get:function(){return _operatingSystem.OperatingSystem}}),Object.defineProperty(exports,"PageTitle",{enumerable:!0,get:function(){return _pageTitle.PageTitle}}),Object.defineProperty(exports,"PageUrl",{enumerable:!0,get:function(){return _pageUrl.PageUrl}}),Object.defineProperty(exports,"PreviousPage",{enumerable:!0,get:function(){return _previousPage.PreviousPage}}),Object.defineProperty(exports,"SameDayVisits",{enumerable:!0,get:function(){return _sameDayVisits.SameDayVisits}}),Object.defineProperty(exports,"SdkLanguage",{enumerable:!0,get:function(){return _sdkLanguage.SdkLanguage}}),Object.defineProperty(exports,"Segment",{enumerable:!0,get:function(){return _segment.Segment}}),Object.defineProperty(exports,"TargetFeatureFlag",{enumerable:!0,get:function(){return _targetFeatureFlag.TargetFeatureFlag}}),Object.defineProperty(exports,"VisitedPages",{enumerable:!0,get:function(){return _visitedPages.VisitedPages}}),Object.defineProperty(exports,"VisitorCode",{enumerable:!0,get:function(){return _visitorCode.VisitorCode}}),Object.defineProperty(exports,"Visits",{enumerable:!0,get:function(){return _visits.Visits}});var _device=require("./device"),_conditionFactory=require("./conditionFactory"),_types=require("./types"),_customData=require("./customData"),_exclusiveCampaign=require("./exclusiveCampaign"),_browser=require("./browser"),_pageUrl=require("./pageUrl"),_pageTitle=require("./pageTitle"),_conversion=require("./conversion"),_visitorCode=require("./visitorCode"),_sdkLanguage=require("./sdkLanguage"),_targetFeatureFlag=require("./targetFeatureFlag"),_cookie=require("./cookie"),_operatingSystem=require("./operatingSystem"),_geolocation=require("./geolocation"),_segment=require("./segment"),_previousPage=require("./previousPage"),_visitedPages=require("./visitedPages"),_firstVisit=require("./firstVisit"),_lastVisit=require("./lastVisit"),_visits=require("./visits"),_sameDayVisits=require("./sameDayVisits"),_newVisitor=require("./newVisitor"),_applicationVersion=require("./applicationVersion"),_conversionLikelihood=require("./conversionLikelihood");
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/targeting/conditions/index.ts"],"sourcesContent":["export { Device } from './device';\nexport { ConditionFactory } from './conditionFactory';\nexport { ConditionDataType, ConditionType } from './types';\nexport { CustomData } from './customData';\nexport { ExclusiveCampaign } from './exclusiveCampaign';\nexport { Browser } from './browser';\nexport { PageUrl } from './pageUrl';\nexport { PageTitle } from './pageTitle';\nexport { Conversion } from './conversion';\nexport { VisitorCode } from './visitorCode';\nexport { SdkLanguage } from './sdkLanguage';\nexport { TargetFeatureFlag } from './targetFeatureFlag';\nexport { Cookie } from './cookie';\nexport { OperatingSystem } from './operatingSystem';\nexport { GeolocationCondition } from './geolocation';\nexport { Segment } from './segment';\nexport { PreviousPage } from './previousPage';\nexport { VisitedPages } from './visitedPages';\nexport { FirstVisit } from './firstVisit';\nexport { LastVisit } from './lastVisit';\nexport { Visits } from './visits';\nexport { SameDayVisits } from './sameDayVisits';\nexport { NewVisitor } from './newVisitor';\nexport { ApplicationVersion } from './applicationVersion';\n"],"mappings":""}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/targeting/conditions/index.ts"],"sourcesContent":["export { Device } from './device';\nexport { ConditionFactory } from './conditionFactory';\nexport { ConditionDataType, ConditionType } from './types';\nexport { CustomData } from './customData';\nexport { ExclusiveCampaign } from './exclusiveCampaign';\nexport { Browser } from './browser';\nexport { PageUrl } from './pageUrl';\nexport { PageTitle } from './pageTitle';\nexport { Conversion } from './conversion';\nexport { VisitorCode } from './visitorCode';\nexport { SdkLanguage } from './sdkLanguage';\nexport { TargetFeatureFlag } from './targetFeatureFlag';\nexport { Cookie } from './cookie';\nexport { OperatingSystem } from './operatingSystem';\nexport { GeolocationCondition } from './geolocation';\nexport { Segment } from './segment';\nexport { PreviousPage } from './previousPage';\nexport { VisitedPages } from './visitedPages';\nexport { FirstVisit } from './firstVisit';\nexport { LastVisit } from './lastVisit';\nexport { Visits } from './visits';\nexport { SameDayVisits } from './sameDayVisits';\nexport { NewVisitor } from './newVisitor';\nexport { ApplicationVersion } from './applicationVersion';\nexport { ConversionLikelihood } from './conversionLikelihood';\n"],"mappings":""}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.LastVisit=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_utilities=require("../../utilities"),_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 LastVisit{constructor(a){let{matchType:b,count:c,unitOfTime:d}=a;_defineProperty(this,"matchType",void 0),_defineProperty(this,"conditionValue",void 0),_defineProperty(this,"timeUnit",void 0),this.matchType=b,this.conditionValue=c,this.timeUnit=d}evaluate(a){let{targetingData:b}=a;const c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.VisitsData];if(!c)return(0,_tsRes.Ok)(!1);const{currentVisit:d,previousVisits:e}=c,f=d?d:e[e.length-1];return"number"==typeof f?(0,_tsRes.Ok)(this.checkCondition(f)):(0,_tsRes.Ok)(!1)}checkCondition(a){if(!this.matchType||"number"!=typeof this.conditionValue||!this.timeUnit)return!1;const b=Date.now()-a,c=_utilities.Utilities.convertTimeUnit(b,this.timeUnit);switch(this.matchType){case _types.MatchType.GREATER:return c>this.conditionValue;case _types.MatchType.LOWER:return c<this.conditionValue;default:return!1}}}exports.LastVisit=LastVisit;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.LastVisit=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_utilities=require("../../utilities"),_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 LastVisit{constructor(a){let{matchType:b,count:c,unitOfTime:d}=a;_defineProperty(this,"matchType",void 0),_defineProperty(this,"conditionValue",void 0),_defineProperty(this,"timeUnit",void 0),this.matchType=b,this.conditionValue=c,this.timeUnit=d}evaluate(a){let{targetingData:b}=a;const c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.VisitsData];if(!(null!==c&&void 0!==c&&c.visits.length))return(0,_tsRes.Ok)(!1);const{visits:d}=c,e=d[d.length-1];return(0,_tsRes.Ok)(this.checkCondition(e))}checkCondition(a){if(!this.matchType||"number"!=typeof this.conditionValue||!this.timeUnit)return!1;const b=Date.now()-a,c=_utilities.Utilities.convertTimeUnit(b,this.timeUnit);switch(this.matchType){case _types.MatchType.GREATER:return c>this.conditionValue;case _types.MatchType.LOWER:return c<this.conditionValue;default:return!1}}}exports.LastVisit=LastVisit;
2
2
  //# sourceMappingURL=lastVisit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lastVisit.js","names":["LastVisit","constructor","a","matchType","count","unitOfTime","_defineProperty","conditionValue","timeUnit","evaluate","targetingData","visitsData","KameleoonData","VisitsData","Ok","currentVisit","previousVisits","lastVisitTimestamp","length","checkCondition","elapsedTimeMilliseconds","Date","now","elapsedTimeUnit","Utilities","convertTimeUnit","MatchType","GREATER","LOWER","exports"],"sources":["../../../src/targeting/conditions/lastVisit.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { Utilities, TimeUnit } from 'src/utilities';\nimport { EvaluationDataType, MatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class LastVisit implements ICondition {\n private matchType?: MatchType | null;\n private conditionValue?: number | null;\n private timeUnit?: TimeUnit | null;\n\n constructor({ matchType, count, unitOfTime }: ConditionDataType) {\n this.matchType = matchType;\n this.conditionValue = count;\n this.timeUnit = unitOfTime;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const visitsData = targetingData?.[KameleoonData.VisitsData];\n\n if (!visitsData) {\n return Ok(false);\n }\n\n const { currentVisit, previousVisits } = visitsData;\n\n const lastVisitTimestamp = currentVisit\n ? currentVisit\n : previousVisits[previousVisits.length - 1];\n\n if (typeof lastVisitTimestamp !== 'number') {\n return Ok(false);\n }\n\n return Ok(this.checkCondition(lastVisitTimestamp));\n }\n\n private checkCondition(lastVisitTimestamp: number): boolean {\n if (\n !this.matchType ||\n typeof this.conditionValue !== 'number' ||\n !this.timeUnit\n ) {\n return false;\n }\n\n const elapsedTimeMilliseconds = Date.now() - lastVisitTimestamp;\n const elapsedTimeUnit = Utilities.convertTimeUnit(\n elapsedTimeMilliseconds,\n this.timeUnit,\n );\n\n switch (this.matchType) {\n case MatchType.GREATER:\n return elapsedTimeUnit > this.conditionValue;\n case MatchType.LOWER:\n return elapsedTimeUnit < this.conditionValue;\n default:\n return false;\n }\n }\n}\n"],"mappings":"4uBAOO,KAAM,CAAAA,SAAgC,CAK3CC,WAAWA,CAAAC,CAAA,CAAsD,IAArD,CAAEC,SAAS,CAATA,CAAS,CAAEC,KAAK,CAALA,CAAK,CAAEC,UAAU,CAAVA,CAA8B,CAAC,CAAAH,CAAA,CAAAI,eAAA,0BAAAA,eAAA,+BAAAA,eAAA,yBAC7D,IAAI,CAACH,SAAS,CAAGA,CAAS,CAC1B,IAAI,CAACI,cAAc,CAAGH,CAAK,CAC3B,IAAI,CAACI,QAAQ,CAAGH,CAClB,CAEOI,QAAQA,CAAAP,CAAA,CAEyC,IAFxC,CACdQ,aAAa,CAAbA,CACkB,CAAC,CAAAR,CAAA,CACnB,KAAM,CAAAS,CAAU,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACC,UAAU,CAAC,CAE5D,GAAI,CAACF,CAAU,CACb,MAAO,GAAAG,SAAE,IAAM,CAAC,CACjB,KAEK,CAAEC,YAAY,CAAZA,CAAY,CAAEC,cAAc,CAAdA,CAAe,CAAC,CAAGL,CAAU,CAE7CM,CAAkB,CAAGF,CAAY,CACnCA,CAAY,CACZC,CAAc,CAACA,CAAc,CAACE,MAAM,CAAG,CAAC,CAAC,OAEX,QAAQ,EAAtC,MAAO,CAAAD,CAA+B,CAInC,GAAAH,SAAE,EAAC,IAAI,CAACK,cAAc,CAACF,CAAkB,CAAC,CAAC,CAHzC,GAAAH,SAAE,IAAM,CAInB,CAEQK,cAAcA,CAACF,CAA0B,CAAW,CAC1D,GACE,CAAC,IAAI,CAACd,SAAS,EACgB,QAAQ,EAAvC,MAAO,KAAI,CAACI,cAA2B,EACvC,CAAC,IAAI,CAACC,QAAQ,CAEd,SACD,KAEK,CAAAY,CAAuB,CAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,CAAGL,CAAkB,CACzDM,CAAe,CAAGC,oBAAS,CAACC,eAAe,CAC/CL,CAAuB,CACvB,IAAI,CAACZ,QACP,CAAC,CAED,OAAQ,IAAI,CAACL,SAAS,EACpB,IAAK,CAAAuB,gBAAS,CAACC,OAAO,CACpB,MAAO,CAAAJ,CAAe,CAAG,IAAI,CAAChB,cAAc,CAC9C,IAAK,CAAAmB,gBAAS,CAACE,KAAK,CAClB,MAAO,CAAAL,CAAe,CAAG,IAAI,CAAChB,cAAc,CAC9C,QACE,QACJ,CACF,CACF,CAACsB,OAAA,CAAA7B,SAAA,CAAAA,SAAA"}
1
+ {"version":3,"file":"lastVisit.js","names":["LastVisit","constructor","a","matchType","count","unitOfTime","_defineProperty","conditionValue","timeUnit","evaluate","targetingData","visitsData","KameleoonData","VisitsData","visits","length","Ok","latestPreviousVisitTimestamp","checkCondition","lastVisitTimestamp","elapsedTimeMilliseconds","Date","now","elapsedTimeUnit","Utilities","convertTimeUnit","MatchType","GREATER","LOWER","exports"],"sources":["../../../src/targeting/conditions/lastVisit.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { Utilities, TimeUnit } from 'src/utilities';\nimport { EvaluationDataType, MatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class LastVisit implements ICondition {\n private matchType?: MatchType | null;\n private conditionValue?: number | null;\n private timeUnit?: TimeUnit | null;\n\n constructor({ matchType, count, unitOfTime }: ConditionDataType) {\n this.matchType = matchType;\n this.conditionValue = count;\n this.timeUnit = unitOfTime;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const visitsData = targetingData?.[KameleoonData.VisitsData];\n\n if (!visitsData?.visits.length) {\n return Ok(false);\n }\n\n const { visits } = visitsData;\n\n // --- Note ---\n // Takes the timestamp of latest previous visit\n const latestPreviousVisitTimestamp =\n visits[visits.length - 1];\n\n return Ok(this.checkCondition(latestPreviousVisitTimestamp));\n }\n\n private checkCondition(lastVisitTimestamp: number): boolean {\n if (\n !this.matchType ||\n typeof this.conditionValue !== 'number' ||\n !this.timeUnit\n ) {\n return false;\n }\n\n const elapsedTimeMilliseconds = Date.now() - lastVisitTimestamp;\n const elapsedTimeUnit = Utilities.convertTimeUnit(\n elapsedTimeMilliseconds,\n this.timeUnit,\n );\n\n switch (this.matchType) {\n case MatchType.GREATER:\n return elapsedTimeUnit > this.conditionValue;\n case MatchType.LOWER:\n return elapsedTimeUnit < this.conditionValue;\n default:\n return false;\n }\n }\n}\n"],"mappings":"4uBAOO,KAAM,CAAAA,SAAgC,CAK3CC,WAAWA,CAAAC,CAAA,CAAsD,IAArD,CAAEC,SAAS,CAATA,CAAS,CAAEC,KAAK,CAALA,CAAK,CAAEC,UAAU,CAAVA,CAA8B,CAAC,CAAAH,CAAA,CAAAI,eAAA,0BAAAA,eAAA,+BAAAA,eAAA,yBAC7D,IAAI,CAACH,SAAS,CAAGA,CAAS,CAC1B,IAAI,CAACI,cAAc,CAAGH,CAAK,CAC3B,IAAI,CAACI,QAAQ,CAAGH,CAClB,CAEOI,QAAQA,CAAAP,CAAA,CAEyC,IAFxC,CACdQ,aAAa,CAAbA,CACkB,CAAC,CAAAR,CAAA,CACnB,KAAM,CAAAS,CAAU,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACC,UAAU,CAAC,CAE5D,GAAI,SAACF,CAAU,WAAVA,CAAU,EAAVA,CAAU,CAAEG,MAAM,CAACC,MAAM,EAC5B,MAAO,GAAAC,SAAE,IAAM,CAAC,CACjB,KAEK,CAAEF,MAAM,CAANA,CAAO,CAAC,CAAGH,CAAU,CAIvBM,CAA4B,CAClCH,CAAM,CAACA,CAAM,CAACC,MAAM,CAAG,CAAC,CAAC,CAEzB,MAAO,GAAAC,SAAE,EAAC,IAAI,CAACE,cAAc,CAACD,CAA4B,CAAC,CAC7D,CAEQC,cAAcA,CAACC,CAA0B,CAAW,CAC1D,GACE,CAAC,IAAI,CAAChB,SAAS,EACgB,QAAQ,EAAvC,MAAO,KAAI,CAACI,cAA2B,EACvC,CAAC,IAAI,CAACC,QAAQ,CAEd,SACD,KAEK,CAAAY,CAAuB,CAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,CAAGH,CAAkB,CACzDI,CAAe,CAAGC,oBAAS,CAACC,eAAe,CAC/CL,CAAuB,CACvB,IAAI,CAACZ,QACP,CAAC,CAED,OAAQ,IAAI,CAACL,SAAS,EACpB,IAAK,CAAAuB,gBAAS,CAACC,OAAO,CACpB,MAAO,CAAAJ,CAAe,CAAG,IAAI,CAAChB,cAAc,CAC9C,IAAK,CAAAmB,gBAAS,CAACE,KAAK,CAClB,MAAO,CAAAL,CAAe,CAAG,IAAI,CAAChB,cAAc,CAC9C,QACE,QACJ,CACF,CACF,CAACsB,OAAA,CAAA7B,SAAA,CAAAA,SAAA"}