@kameleoon/javascript-sdk-core 5.0.2 → 5.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/dist/cacheManager/cacheManager.js +1 -2
  3. package/dist/cacheManager/index.js +1 -2
  4. package/dist/cacheManager/types.js +1 -2
  5. package/dist/clientConfiguration/clientConfiguration.js +1 -2
  6. package/dist/clientConfiguration/constants.js +1 -2
  7. package/dist/clientConfiguration/index.js +1 -2
  8. package/dist/clientConfiguration/types.js +1 -2
  9. package/dist/clientSettings/clientSettings.js +1 -2
  10. package/dist/clientSettings/index.js +1 -2
  11. package/dist/clientSettings/types.js +1 -2
  12. package/dist/constants.js +1 -2
  13. package/dist/eventManager/eventManager.js +1 -2
  14. package/dist/eventManager/index.js +1 -2
  15. package/dist/eventManager/types.js +1 -2
  16. package/dist/eventSource/constants.js +1 -2
  17. package/dist/eventSource/eventSource.d.ts +2 -0
  18. package/dist/eventSource/eventSource.js +1 -2
  19. package/dist/eventSource/index.js +1 -2
  20. package/dist/eventSource/types.d.ts +4 -0
  21. package/dist/eventSource/types.js +1 -2
  22. package/dist/hasher/hasher.js +1 -2
  23. package/dist/hasher/index.js +1 -2
  24. package/dist/hasher/types.js +1 -2
  25. package/dist/index.d.ts +5 -3
  26. package/dist/index.js +1 -2
  27. package/dist/kameleoonClient.d.ts +6 -1
  28. package/dist/kameleoonClient.js +1 -2
  29. package/dist/kameleoonClientInterface.d.ts +68 -20
  30. package/dist/kameleoonClientInterface.js +1 -2
  31. package/dist/kameleoonData/applicationVersion.js +1 -2
  32. package/dist/kameleoonData/browser.js +1 -2
  33. package/dist/kameleoonData/conversion.js +1 -2
  34. package/dist/kameleoonData/cookie.js +1 -2
  35. package/dist/kameleoonData/customData.js +1 -2
  36. package/dist/kameleoonData/dataManager.js +1 -2
  37. package/dist/kameleoonData/dataProcessor.js +1 -2
  38. package/dist/kameleoonData/device.js +1 -2
  39. package/dist/kameleoonData/geolocation.js +1 -2
  40. package/dist/kameleoonData/helpers.js +1 -2
  41. package/dist/kameleoonData/index.js +1 -2
  42. package/dist/kameleoonData/kameleoonConversionScore.js +1 -2
  43. package/dist/kameleoonData/operatingSystem.js +1 -2
  44. package/dist/kameleoonData/pageView.js +1 -2
  45. package/dist/kameleoonData/types.js +1 -2
  46. package/dist/kameleoonData/uniqueIdentifier.js +1 -2
  47. package/dist/kameleoonData/userAgent.js +1 -2
  48. package/dist/kameleoonData/visitProcessor.js +1 -2
  49. package/dist/kameleoonData/visitsData.js +1 -2
  50. package/dist/kameleoonError/constants.d.ts +0 -1
  51. package/dist/kameleoonError/constants.js +1 -2
  52. package/dist/kameleoonError/helpers.js +1 -2
  53. package/dist/kameleoonError/index.js +1 -2
  54. package/dist/kameleoonError/kameleoonError.d.ts +0 -1
  55. package/dist/kameleoonError/kameleoonError.js +1 -2
  56. package/dist/kameleoonError/types.d.ts +0 -1
  57. package/dist/kameleoonError/types.js +1 -2
  58. package/dist/kameleoonUtils.js +1 -2
  59. package/dist/logging/defaultLogger.d.ts +14 -0
  60. package/dist/logging/defaultLogger.js +1 -0
  61. package/dist/logging/index.d.ts +3 -0
  62. package/dist/logging/index.js +1 -0
  63. package/dist/logging/kameleoonLogger.d.ts +14 -0
  64. package/dist/logging/kameleoonLogger.js +1 -0
  65. package/dist/logging/types.d.ts +36 -0
  66. package/dist/logging/types.js +1 -0
  67. package/dist/requester/constants.js +1 -2
  68. package/dist/requester/index.js +1 -2
  69. package/dist/requester/requester.js +1 -2
  70. package/dist/requester/types.js +1 -2
  71. package/dist/requester/urlProvider.js +1 -2
  72. package/dist/storage/constants.js +1 -2
  73. package/dist/storage/index.js +1 -2
  74. package/dist/storage/integrityChecker.js +1 -2
  75. package/dist/storage/storage.js +1 -2
  76. package/dist/storage/types.js +1 -2
  77. package/dist/targeting/conditions/applicationVersion.js +1 -2
  78. package/dist/targeting/conditions/browser.js +1 -2
  79. package/dist/targeting/conditions/conditionFactory.js +1 -2
  80. package/dist/targeting/conditions/conversion.js +1 -2
  81. package/dist/targeting/conditions/conversionLikelihood.js +1 -2
  82. package/dist/targeting/conditions/cookie.js +1 -2
  83. package/dist/targeting/conditions/customData.js +1 -2
  84. package/dist/targeting/conditions/device.js +1 -2
  85. package/dist/targeting/conditions/exclusiveCampaign.js +1 -2
  86. package/dist/targeting/conditions/firstVisit.js +1 -2
  87. package/dist/targeting/conditions/geolocation.js +1 -2
  88. package/dist/targeting/conditions/index.js +1 -2
  89. package/dist/targeting/conditions/lastVisit.js +1 -2
  90. package/dist/targeting/conditions/newVisitor.js +1 -2
  91. package/dist/targeting/conditions/operatingSystem.js +1 -2
  92. package/dist/targeting/conditions/pageTitle.js +1 -2
  93. package/dist/targeting/conditions/pageUrl.js +1 -2
  94. package/dist/targeting/conditions/previousPage.js +1 -2
  95. package/dist/targeting/conditions/sameDayVisits.js +1 -2
  96. package/dist/targeting/conditions/sdkLanguage.js +1 -2
  97. package/dist/targeting/conditions/segment.js +1 -2
  98. package/dist/targeting/conditions/targetFeatureFlag.js +1 -2
  99. package/dist/targeting/conditions/types.js +1 -2
  100. package/dist/targeting/conditions/utilities.js +1 -2
  101. package/dist/targeting/conditions/visitedPages.js +1 -2
  102. package/dist/targeting/conditions/visitorCode.js +1 -2
  103. package/dist/targeting/conditions/visits.js +1 -2
  104. package/dist/targeting/index.js +1 -2
  105. package/dist/targeting/node.js +1 -2
  106. package/dist/targeting/tree.js +1 -2
  107. package/dist/targeting/types.js +1 -2
  108. package/dist/tracking/bodyProvider.js +1 -2
  109. package/dist/tracking/constants.js +1 -2
  110. package/dist/tracking/index.js +1 -2
  111. package/dist/tracking/tracker.js +1 -2
  112. package/dist/tracking/types.js +1 -2
  113. package/dist/types.d.ts +52 -0
  114. package/dist/types.js +1 -2
  115. package/dist/utilities/constants.d.ts +5 -0
  116. package/dist/utilities/constants.js +1 -2
  117. package/dist/utilities/index.js +1 -2
  118. package/dist/utilities/parser.d.ts +1 -0
  119. package/dist/utilities/parser.js +1 -2
  120. package/dist/utilities/types.js +1 -2
  121. package/dist/utilities/utilities.js +1 -2
  122. package/dist/utilities/validator.d.ts +1 -0
  123. package/dist/utilities/validator.js +1 -2
  124. package/dist/variationConfiguration/index.js +1 -2
  125. package/dist/variationConfiguration/types.d.ts +1 -0
  126. package/dist/variationConfiguration/types.js +1 -2
  127. package/dist/variationConfiguration/variationConfiguration.d.ts +1 -1
  128. package/dist/variationConfiguration/variationConfiguration.js +1 -2
  129. package/dist/visitorCodeManager/constants.js +1 -2
  130. package/dist/visitorCodeManager/index.js +1 -2
  131. package/dist/visitorCodeManager/types.js +1 -2
  132. package/dist/visitorCodeManager/visitorCodeManager.js +1 -2
  133. package/package.json +4 -2
  134. package/dist/cacheManager/cacheManager.js.map +0 -1
  135. package/dist/cacheManager/index.js.map +0 -1
  136. package/dist/cacheManager/types.js.map +0 -1
  137. package/dist/clientConfiguration/clientConfiguration.js.map +0 -1
  138. package/dist/clientConfiguration/constants.js.map +0 -1
  139. package/dist/clientConfiguration/index.js.map +0 -1
  140. package/dist/clientConfiguration/types.js.map +0 -1
  141. package/dist/clientSettings/clientSettings.js.map +0 -1
  142. package/dist/clientSettings/index.js.map +0 -1
  143. package/dist/clientSettings/types.js.map +0 -1
  144. package/dist/constants.js.map +0 -1
  145. package/dist/eventManager/eventManager.js.map +0 -1
  146. package/dist/eventManager/index.js.map +0 -1
  147. package/dist/eventManager/types.js.map +0 -1
  148. package/dist/eventSource/constants.js.map +0 -1
  149. package/dist/eventSource/eventSource.js.map +0 -1
  150. package/dist/eventSource/index.js.map +0 -1
  151. package/dist/eventSource/types.js.map +0 -1
  152. package/dist/hasher/hasher.js.map +0 -1
  153. package/dist/hasher/index.js.map +0 -1
  154. package/dist/hasher/types.js.map +0 -1
  155. package/dist/index.js.map +0 -1
  156. package/dist/kameleoonClient.js.map +0 -1
  157. package/dist/kameleoonClientInterface.js.map +0 -1
  158. package/dist/kameleoonData/applicationVersion.js.map +0 -1
  159. package/dist/kameleoonData/browser.js.map +0 -1
  160. package/dist/kameleoonData/conversion.js.map +0 -1
  161. package/dist/kameleoonData/cookie.js.map +0 -1
  162. package/dist/kameleoonData/customData.js.map +0 -1
  163. package/dist/kameleoonData/dataManager.js.map +0 -1
  164. package/dist/kameleoonData/dataProcessor.js.map +0 -1
  165. package/dist/kameleoonData/device.js.map +0 -1
  166. package/dist/kameleoonData/geolocation.js.map +0 -1
  167. package/dist/kameleoonData/helpers.js.map +0 -1
  168. package/dist/kameleoonData/index.js.map +0 -1
  169. package/dist/kameleoonData/kameleoonConversionScore.js.map +0 -1
  170. package/dist/kameleoonData/operatingSystem.js.map +0 -1
  171. package/dist/kameleoonData/pageView.js.map +0 -1
  172. package/dist/kameleoonData/types.js.map +0 -1
  173. package/dist/kameleoonData/uniqueIdentifier.js.map +0 -1
  174. package/dist/kameleoonData/userAgent.js.map +0 -1
  175. package/dist/kameleoonData/visitProcessor.js.map +0 -1
  176. package/dist/kameleoonData/visitsData.js.map +0 -1
  177. package/dist/kameleoonError/constants.js.map +0 -1
  178. package/dist/kameleoonError/helpers.js.map +0 -1
  179. package/dist/kameleoonError/index.js.map +0 -1
  180. package/dist/kameleoonError/kameleoonError.js.map +0 -1
  181. package/dist/kameleoonError/types.js.map +0 -1
  182. package/dist/kameleoonUtils.js.map +0 -1
  183. package/dist/requester/constants.js.map +0 -1
  184. package/dist/requester/index.js.map +0 -1
  185. package/dist/requester/requester.js.map +0 -1
  186. package/dist/requester/types.js.map +0 -1
  187. package/dist/requester/urlProvider.js.map +0 -1
  188. package/dist/storage/constants.js.map +0 -1
  189. package/dist/storage/index.js.map +0 -1
  190. package/dist/storage/integrityChecker.js.map +0 -1
  191. package/dist/storage/storage.js.map +0 -1
  192. package/dist/storage/types.js.map +0 -1
  193. package/dist/targeting/conditions/applicationVersion.js.map +0 -1
  194. package/dist/targeting/conditions/browser.js.map +0 -1
  195. package/dist/targeting/conditions/conditionFactory.js.map +0 -1
  196. package/dist/targeting/conditions/conversion.js.map +0 -1
  197. package/dist/targeting/conditions/conversionLikelihood.js.map +0 -1
  198. package/dist/targeting/conditions/cookie.js.map +0 -1
  199. package/dist/targeting/conditions/customData.js.map +0 -1
  200. package/dist/targeting/conditions/device.js.map +0 -1
  201. package/dist/targeting/conditions/exclusiveCampaign.js.map +0 -1
  202. package/dist/targeting/conditions/firstVisit.js.map +0 -1
  203. package/dist/targeting/conditions/geolocation.js.map +0 -1
  204. package/dist/targeting/conditions/index.js.map +0 -1
  205. package/dist/targeting/conditions/lastVisit.js.map +0 -1
  206. package/dist/targeting/conditions/newVisitor.js.map +0 -1
  207. package/dist/targeting/conditions/operatingSystem.js.map +0 -1
  208. package/dist/targeting/conditions/pageTitle.js.map +0 -1
  209. package/dist/targeting/conditions/pageUrl.js.map +0 -1
  210. package/dist/targeting/conditions/previousPage.js.map +0 -1
  211. package/dist/targeting/conditions/sameDayVisits.js.map +0 -1
  212. package/dist/targeting/conditions/sdkLanguage.js.map +0 -1
  213. package/dist/targeting/conditions/segment.js.map +0 -1
  214. package/dist/targeting/conditions/targetFeatureFlag.js.map +0 -1
  215. package/dist/targeting/conditions/types.js.map +0 -1
  216. package/dist/targeting/conditions/utilities.js.map +0 -1
  217. package/dist/targeting/conditions/visitedPages.js.map +0 -1
  218. package/dist/targeting/conditions/visitorCode.js.map +0 -1
  219. package/dist/targeting/conditions/visits.js.map +0 -1
  220. package/dist/targeting/index.js.map +0 -1
  221. package/dist/targeting/node.js.map +0 -1
  222. package/dist/targeting/tree.js.map +0 -1
  223. package/dist/targeting/types.js.map +0 -1
  224. package/dist/tracking/bodyProvider.js.map +0 -1
  225. package/dist/tracking/constants.js.map +0 -1
  226. package/dist/tracking/index.js.map +0 -1
  227. package/dist/tracking/tracker.js.map +0 -1
  228. package/dist/tracking/types.js.map +0 -1
  229. package/dist/types.js.map +0 -1
  230. package/dist/utilities/constants.js.map +0 -1
  231. package/dist/utilities/index.js.map +0 -1
  232. package/dist/utilities/parser.js.map +0 -1
  233. package/dist/utilities/types.js.map +0 -1
  234. package/dist/utilities/utilities.js.map +0 -1
  235. package/dist/utilities/validator.js.map +0 -1
  236. package/dist/variationConfiguration/index.js.map +0 -1
  237. package/dist/variationConfiguration/types.js.map +0 -1
  238. package/dist/variationConfiguration/variationConfiguration.js.map +0 -1
  239. package/dist/visitorCodeManager/constants.js.map +0 -1
  240. package/dist/visitorCodeManager/index.js.map +0 -1
  241. package/dist/visitorCodeManager/types.js.map +0 -1
  242. package/dist/visitorCodeManager/visitorCodeManager.js.map +0 -1
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Segment=void 0;var _tsRes=require("ts-res"),_tree=require("../tree");function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class Segment{constructor(a){let{segmentId:b}=a;_defineProperty(this,"segmentId",void 0),this.segmentId=b}evaluate(a){const{segments:b,trees:c}=a;if(!this.segmentId)return(0,_tsRes.Ok)(!1);const d=null===b||void 0===b?void 0:b.get(this.segmentId.toString());if(!d)return(0,_tsRes.Ok)(!1);const e=null===c||void 0===c?void 0:c.get(this.segmentId.toString());return e?e.evaluate(a):new _tree.Tree(d).evaluate(a)}}exports.Segment=Segment;
2
- //# sourceMappingURL=segment.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Segment=void 0;var _tsRes=require("ts-res"),_tree=require("../tree");function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class Segment{constructor(a){let{segmentId:b}=a;_defineProperty(this,"segmentId",void 0),this.segmentId=b}evaluate(a){const{segments:b,trees:c}=a;if(!this.segmentId)return(0,_tsRes.Ok)(!1);const d=null===b||void 0===b?void 0:b.get(this.segmentId.toString());if(!d)return(0,_tsRes.Ok)(!1);const e=null===c||void 0===c?void 0:c.get(this.segmentId.toString());return e?e.evaluate(a):new _tree.Tree(d).evaluate(a)}}exports.Segment=Segment;
@@ -1,2 +1 @@
1
- "use strict";var _tsRes=require("ts-res");Object.defineProperty(exports,"__esModule",{value:!0}),exports.TargetFeatureFlag=void 0;function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class TargetFeatureFlag{constructor(a){let{featureFlagId:b,variationKey:c,ruleId:d}=a;_defineProperty(this,"featureId",void 0),_defineProperty(this,"ruleId",void 0),_defineProperty(this,"variationKey",void 0),this.featureId=b,this.ruleId=d,this.variationKey=c}evaluate(a){let{variationData:b,ruleMap:c}=a;if(!this.featureId||!c)return(0,_tsRes.Ok)(!1);if(this.featureId&&!this.ruleId&&!this.variationKey){for(const[_,a]of c){var d;const{featureId:c,experimentId:e}=a;if(c===this.featureId&&"number"==typeof(null===(d=b[e])||void 0===d?void 0:d.variationId))return(0,_tsRes.Ok)(!0)}return(0,_tsRes.Ok)(!1)}if(this.featureId&&this.ruleId){var e;const a=c.get(this.ruleId);if(!a)return(0,_tsRes.Ok)(!1);const{experimentId:d,variations:g}=a;if(this.variationKey){var f;const a=g.get(this.variationKey);return(0,_tsRes.Ok)(!!a&&(null===(f=b[d])||void 0===f?void 0:f.variationId)===a)}return(0,_tsRes.Ok)(null!==(e=b[a.experimentId])&&void 0!==e&&e.variationId)}if(this.featureId&&!this.ruleId&&this.variationKey)for(const[_,a]of c){const{featureId:c,experimentId:d,variations:e}=a;if(c===this.featureId&&e.has(this.variationKey)){var g;const a=e.get(this.variationKey);return(0,_tsRes.Ok)(!!a&&(null===(g=b[d])||void 0===g?void 0:g.variationId)===a)}}return(0,_tsRes.Ok)(!1)}}exports.TargetFeatureFlag=TargetFeatureFlag;
2
- //# sourceMappingURL=targetFeatureFlag.js.map
1
+ "use strict";var _tsRes=require("ts-res");Object.defineProperty(exports,"__esModule",{value:!0}),exports.TargetFeatureFlag=void 0;function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class TargetFeatureFlag{constructor(a){let{featureFlagId:b,variationKey:c,ruleId:d}=a;_defineProperty(this,"featureId",void 0),_defineProperty(this,"ruleId",void 0),_defineProperty(this,"variationKey",void 0),this.featureId=b,this.ruleId=d,this.variationKey=c}evaluate(a){let{variationData:b,ruleMap:c}=a;if(!this.featureId||!c)return(0,_tsRes.Ok)(!1);if(this.featureId&&!this.ruleId&&!this.variationKey){for(const[_,a]of c){var d;const{featureId:c,experimentId:e}=a;if(c===this.featureId&&"number"==typeof(null===(d=b[e])||void 0===d?void 0:d.variationId))return(0,_tsRes.Ok)(!0)}return(0,_tsRes.Ok)(!1)}if(this.featureId&&this.ruleId){var e;const a=c.get(this.ruleId);if(!a)return(0,_tsRes.Ok)(!1);const{experimentId:d,variations:g}=a;if(this.variationKey){var f;const a=g.get(this.variationKey);return(0,_tsRes.Ok)(!!a&&(null===(f=b[d])||void 0===f?void 0:f.variationId)===a)}return(0,_tsRes.Ok)(null!==(e=b[a.experimentId])&&void 0!==e&&e.variationId)}if(this.featureId&&!this.ruleId&&this.variationKey)for(const[_,a]of c){const{featureId:c,experimentId:d,variations:e}=a;if(c===this.featureId&&e.has(this.variationKey)){var g;const a=e.get(this.variationKey);return(0,_tsRes.Ok)(!!a&&(null===(g=b[d])||void 0===g?void 0:g.variationId)===a)}}return(0,_tsRes.Ok)(!1)}}exports.TargetFeatureFlag=TargetFeatureFlag;
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});
2
- //# sourceMappingURL=types.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PageUtils=void 0;class PageUtils{static getLatest(a){return Object.values(a).reduce((a,b)=>a.timestamps[a.timestamps.length-1].time>b.timestamps[b.timestamps.length-1].time?a:b)}}exports.PageUtils=PageUtils;
2
- //# sourceMappingURL=utilities.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PageUtils=void 0;class PageUtils{static getLatest(a){return Object.values(a).reduce((a,b)=>a.timestamps[a.timestamps.length-1].time>b.timestamps[b.timestamps.length-1].time?a:b)}}exports.PageUtils=PageUtils;
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.VisitedPages=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_types=require("../types");function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class VisitedPages{constructor(a){let{matchType:b,pageCount:c}=a;_defineProperty(this,"conditionValue",void 0),_defineProperty(this,"matchType",void 0),this.matchType=b,this.conditionValue=c}evaluate(a){let{targetingData:b}=a;const c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.PageView];if(!c)return(0,_tsRes.Ok)(!1);let d=0;return Object.values(c).forEach(a=>{d+=a.timestamps.length}),(0,_tsRes.Ok)(this.checkCondition(d))}checkCondition(a){if(!this.matchType||"number"!=typeof this.conditionValue)return!1;switch(this.matchType){case _types.MatchType.EQUAL:return a===this.conditionValue;case _types.MatchType.GREATER:return a>this.conditionValue;case _types.MatchType.LOWER:return a<this.conditionValue;default:return!1}}}exports.VisitedPages=VisitedPages;
2
- //# sourceMappingURL=visitedPages.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.VisitedPages=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_types=require("../types"),_logging=require("../../logging");function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class VisitedPages{constructor(a){let{matchType:b,pageCount:c}=a;_defineProperty(this,"conditionValue",void 0),_defineProperty(this,"matchType",void 0),this.matchType=b,this.conditionValue=c}evaluate(a){let{targetingData:b}=a;const c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.PageView];if(!c)return(0,_tsRes.Ok)(!1);let d=0;return Object.values(c).forEach(a=>{d+=a.timestamps.length}),(0,_tsRes.Ok)(this.checkCondition(d))}checkCondition(a){if(!this.matchType||"number"!=typeof this.conditionValue)return!1;switch(this.matchType){case _types.MatchType.EQUAL:return a===this.conditionValue;case _types.MatchType.GREATER:return a>this.conditionValue;case _types.MatchType.LOWER:return a<this.conditionValue;default:return _logging.KameleoonLogger.error`Unexpected comparing operation for VisitedPages condition: ${this.matchType}`,!1}}}exports.VisitedPages=VisitedPages;
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.VisitorCode=void 0;var _tsRes=require("ts-res"),_utilities=require("../../utilities"),_types=require("../types");function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class VisitorCode{constructor(a){let{visitorCode:b,matchType:c}=a;_defineProperty(this,"matchType",void 0),_defineProperty(this,"conditionValue",void 0),this.matchType=c,this.conditionValue=b}evaluate(a){let{visitorCode:b}=a;return(0,_tsRes.Ok)(this.checkCondition(b))}checkCondition(a){if(!this.matchType||!this.conditionValue)return!1;switch(this.matchType){case _types.MatchType.CONTAINS:return a.includes(this.conditionValue);case _types.MatchType.EXACT:return a===this.conditionValue;case _types.MatchType.REGULAR_EXPRESSION:return _utilities.Parser.parseRegExp(this.conditionValue).test(a);default:return!1}}}exports.VisitorCode=VisitorCode;
2
- //# sourceMappingURL=visitorCode.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.VisitorCode=void 0;var _tsRes=require("ts-res"),_utilities=require("../../utilities"),_types=require("../types"),_logging=require("../../logging");function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class VisitorCode{constructor(a){let{visitorCode:b,matchType:c}=a;_defineProperty(this,"matchType",void 0),_defineProperty(this,"conditionValue",void 0),this.matchType=c,this.conditionValue=b}evaluate(a){let{visitorCode:b}=a;return(0,_tsRes.Ok)(this.checkCondition(b))}checkCondition(a){if(!this.matchType||!this.conditionValue)return!1;switch(this.matchType){case _types.MatchType.CONTAINS:return a.includes(this.conditionValue);case _types.MatchType.EXACT:return a===this.conditionValue;case _types.MatchType.REGULAR_EXPRESSION:return _utilities.Parser.parseRegExp(this.conditionValue).test(a);default:return _logging.KameleoonLogger.error`Unexpected comparing operation for VisitorCode condition: ${this.matchType}`,!1}}}exports.VisitorCode=VisitorCode;
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Visits=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_types=require("../types");function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class Visits{constructor(a){let{matchType:b,visitCount:c}=a;_defineProperty(this,"matchType",void 0),_defineProperty(this,"conditionValue",void 0),this.matchType=b,this.conditionValue=c}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 d=c.visits.length+1;return(0,_tsRes.Ok)(this.checkCondition(d))}checkCondition(a){if(!this.matchType||"number"!=typeof this.conditionValue)return!1;switch(this.matchType){case _types.MatchType.EQUAL:return a===this.conditionValue;case _types.MatchType.GREATER:return a>this.conditionValue;case _types.MatchType.LOWER:return a<this.conditionValue;default:return!1}}}exports.Visits=Visits;
2
- //# sourceMappingURL=visits.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Visits=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_types=require("../types"),_logging=require("../../logging");function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class Visits{constructor(a){let{matchType:b,visitCount:c}=a;_defineProperty(this,"matchType",void 0),_defineProperty(this,"conditionValue",void 0),this.matchType=b,this.conditionValue=c}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 d=c.visits.length+1;return(0,_tsRes.Ok)(this.checkCondition(d))}checkCondition(a){if(!this.matchType||"number"!=typeof this.conditionValue)return!1;switch(this.matchType){case _types.MatchType.EQUAL:return a===this.conditionValue;case _types.MatchType.GREATER:return a>this.conditionValue;case _types.MatchType.LOWER:return a<this.conditionValue;default:return _logging.KameleoonLogger.error`Unexpected comparing operation for Visits condition: ${this.matchType}`,!1}}}exports.Visits=Visits;
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"Browser",{enumerable:!0,get:function(){return _conditions.Browser}}),Object.defineProperty(exports,"ConditionFactory",{enumerable:!0,get:function(){return _conditions.ConditionFactory}}),Object.defineProperty(exports,"Conversion",{enumerable:!0,get:function(){return _conditions.Conversion}}),Object.defineProperty(exports,"ConversionLikelihood",{enumerable:!0,get:function(){return _conditions.ConversionLikelihood}}),Object.defineProperty(exports,"Cookie",{enumerable:!0,get:function(){return _conditions.Cookie}}),Object.defineProperty(exports,"CustomData",{enumerable:!0,get:function(){return _conditions.CustomData}}),Object.defineProperty(exports,"DereferencedTargetingDataType",{enumerable:!0,get:function(){return _types.DereferencedTargetingDataType}}),Object.defineProperty(exports,"Device",{enumerable:!0,get:function(){return _conditions.Device}}),Object.defineProperty(exports,"EvaluationDataType",{enumerable:!0,get:function(){return _types.EvaluationDataType}}),Object.defineProperty(exports,"ExclusiveCampaign",{enumerable:!0,get:function(){return _conditions.ExclusiveCampaign}}),Object.defineProperty(exports,"FirstVisit",{enumerable:!0,get:function(){return _conditions.FirstVisit}}),Object.defineProperty(exports,"GeolocationCondition",{enumerable:!0,get:function(){return _conditions.GeolocationCondition}}),Object.defineProperty(exports,"LastVisit",{enumerable:!0,get:function(){return _conditions.LastVisit}}),Object.defineProperty(exports,"MatchType",{enumerable:!0,get:function(){return _types.MatchType}}),Object.defineProperty(exports,"MatchTypeVariation",{enumerable:!0,get:function(){return _types.MatchTypeVariation}}),Object.defineProperty(exports,"NewVisitor",{enumerable:!0,get:function(){return _conditions.NewVisitor}}),Object.defineProperty(exports,"OperatingSystem",{enumerable:!0,get:function(){return _conditions.OperatingSystem}}),Object.defineProperty(exports,"Operator",{enumerable:!0,get:function(){return _types.Operator}}),Object.defineProperty(exports,"PageTitle",{enumerable:!0,get:function(){return _conditions.PageTitle}}),Object.defineProperty(exports,"PageUrl",{enumerable:!0,get:function(){return _conditions.PageUrl}}),Object.defineProperty(exports,"PreviousPage",{enumerable:!0,get:function(){return _conditions.PreviousPage}}),Object.defineProperty(exports,"SameDayVisits",{enumerable:!0,get:function(){return _conditions.SameDayVisits}}),Object.defineProperty(exports,"SdkLanguage",{enumerable:!0,get:function(){return _conditions.SdkLanguage}}),Object.defineProperty(exports,"Segment",{enumerable:!0,get:function(){return _conditions.Segment}}),Object.defineProperty(exports,"SegmentType",{enumerable:!0,get:function(){return _types.SegmentType}}),Object.defineProperty(exports,"TargetFeatureFlag",{enumerable:!0,get:function(){return _conditions.TargetFeatureFlag}}),Object.defineProperty(exports,"TargetingDataType",{enumerable:!0,get:function(){return _types.TargetingDataType}}),Object.defineProperty(exports,"TargetingType",{enumerable:!0,get:function(){return _types.TargetingType}}),Object.defineProperty(exports,"Tree",{enumerable:!0,get:function(){return _tree.Tree}}),Object.defineProperty(exports,"ValueMatchType",{enumerable:!0,get:function(){return _types.ValueMatchType}}),Object.defineProperty(exports,"VersionMatchType",{enumerable:!0,get:function(){return _types.VersionMatchType}}),Object.defineProperty(exports,"VisitedPages",{enumerable:!0,get:function(){return _conditions.VisitedPages}}),Object.defineProperty(exports,"VisitorCode",{enumerable:!0,get:function(){return _conditions.VisitorCode}}),Object.defineProperty(exports,"VisitorReference",{enumerable:!0,get:function(){return _types.VisitorReference}}),Object.defineProperty(exports,"Visits",{enumerable:!0,get:function(){return _conditions.Visits}});var _tree=require("./tree"),_types=require("./types"),_conditions=require("./conditions");
2
- //# sourceMappingURL=index.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"Browser",{enumerable:!0,get:function(){return _conditions.Browser}}),Object.defineProperty(exports,"ConditionFactory",{enumerable:!0,get:function(){return _conditions.ConditionFactory}}),Object.defineProperty(exports,"Conversion",{enumerable:!0,get:function(){return _conditions.Conversion}}),Object.defineProperty(exports,"ConversionLikelihood",{enumerable:!0,get:function(){return _conditions.ConversionLikelihood}}),Object.defineProperty(exports,"Cookie",{enumerable:!0,get:function(){return _conditions.Cookie}}),Object.defineProperty(exports,"CustomData",{enumerable:!0,get:function(){return _conditions.CustomData}}),Object.defineProperty(exports,"DereferencedTargetingDataType",{enumerable:!0,get:function(){return _types.DereferencedTargetingDataType}}),Object.defineProperty(exports,"Device",{enumerable:!0,get:function(){return _conditions.Device}}),Object.defineProperty(exports,"EvaluationDataType",{enumerable:!0,get:function(){return _types.EvaluationDataType}}),Object.defineProperty(exports,"ExclusiveCampaign",{enumerable:!0,get:function(){return _conditions.ExclusiveCampaign}}),Object.defineProperty(exports,"FirstVisit",{enumerable:!0,get:function(){return _conditions.FirstVisit}}),Object.defineProperty(exports,"GeolocationCondition",{enumerable:!0,get:function(){return _conditions.GeolocationCondition}}),Object.defineProperty(exports,"LastVisit",{enumerable:!0,get:function(){return _conditions.LastVisit}}),Object.defineProperty(exports,"MatchType",{enumerable:!0,get:function(){return _types.MatchType}}),Object.defineProperty(exports,"MatchTypeVariation",{enumerable:!0,get:function(){return _types.MatchTypeVariation}}),Object.defineProperty(exports,"NewVisitor",{enumerable:!0,get:function(){return _conditions.NewVisitor}}),Object.defineProperty(exports,"OperatingSystem",{enumerable:!0,get:function(){return _conditions.OperatingSystem}}),Object.defineProperty(exports,"Operator",{enumerable:!0,get:function(){return _types.Operator}}),Object.defineProperty(exports,"PageTitle",{enumerable:!0,get:function(){return _conditions.PageTitle}}),Object.defineProperty(exports,"PageUrl",{enumerable:!0,get:function(){return _conditions.PageUrl}}),Object.defineProperty(exports,"PreviousPage",{enumerable:!0,get:function(){return _conditions.PreviousPage}}),Object.defineProperty(exports,"SameDayVisits",{enumerable:!0,get:function(){return _conditions.SameDayVisits}}),Object.defineProperty(exports,"SdkLanguage",{enumerable:!0,get:function(){return _conditions.SdkLanguage}}),Object.defineProperty(exports,"Segment",{enumerable:!0,get:function(){return _conditions.Segment}}),Object.defineProperty(exports,"SegmentType",{enumerable:!0,get:function(){return _types.SegmentType}}),Object.defineProperty(exports,"TargetFeatureFlag",{enumerable:!0,get:function(){return _conditions.TargetFeatureFlag}}),Object.defineProperty(exports,"TargetingDataType",{enumerable:!0,get:function(){return _types.TargetingDataType}}),Object.defineProperty(exports,"TargetingType",{enumerable:!0,get:function(){return _types.TargetingType}}),Object.defineProperty(exports,"Tree",{enumerable:!0,get:function(){return _tree.Tree}}),Object.defineProperty(exports,"ValueMatchType",{enumerable:!0,get:function(){return _types.ValueMatchType}}),Object.defineProperty(exports,"VersionMatchType",{enumerable:!0,get:function(){return _types.VersionMatchType}}),Object.defineProperty(exports,"VisitedPages",{enumerable:!0,get:function(){return _conditions.VisitedPages}}),Object.defineProperty(exports,"VisitorCode",{enumerable:!0,get:function(){return _conditions.VisitorCode}}),Object.defineProperty(exports,"VisitorReference",{enumerable:!0,get:function(){return _types.VisitorReference}}),Object.defineProperty(exports,"Visits",{enumerable:!0,get:function(){return _conditions.Visits}});var _tree=require("./tree"),_types=require("./types"),_conditions=require("./conditions");
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Node=void 0;var _conditions=require("./conditions"),_types=require("./types");function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class Node{constructor(a,b,c){if(_defineProperty(this,"nodeValue",void 0),_defineProperty(this,"nodeError",void 0),_defineProperty(this,"leftChild",void 0),_defineProperty(this,"rightChild",void 0),_defineProperty(this,"inverseResult",!1),this.isOperator(a))this.nodeValue=a;else{var d;const b=_conditions.ConditionFactory.createCondition(a);this.inverseResult=null!==(d=a.isInclude)&&void 0!==d&&!d,b.ok?this.nodeValue=b.data:this.nodeError=b.error}this.leftChild=b,this.rightChild=c}get value(){return this.nodeValue}get error(){return this.nodeError}get left(){return this.leftChild}get right(){return this.rightChild}get inverse(){return this.inverseResult}isOperator(a){return a===_types.Operator.And||a===_types.Operator.Or}}exports.Node=Node;
2
- //# sourceMappingURL=node.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Node=void 0;var _conditions=require("./conditions"),_types=require("./types");function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class Node{constructor(a,b,c){if(_defineProperty(this,"nodeValue",void 0),_defineProperty(this,"nodeError",void 0),_defineProperty(this,"leftChild",void 0),_defineProperty(this,"rightChild",void 0),_defineProperty(this,"inverseResult",!1),this.isOperator(a))this.nodeValue=a;else{var d;const b=_conditions.ConditionFactory.createCondition(a);this.inverseResult=null!==(d=a.isInclude)&&void 0!==d&&!d,b.ok?this.nodeValue=b.data:this.nodeError=b.error}this.leftChild=b,this.rightChild=c}get value(){return this.nodeValue}get error(){return this.nodeError}get left(){return this.leftChild}get right(){return this.rightChild}get inverse(){return this.inverseResult}isOperator(a){return a===_types.Operator.And||a===_types.Operator.Or}}exports.Node=Node;
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Tree=void 0;var _tsRes=require("ts-res"),_kameleoonError=require("../kameleoonError"),_node=require("./node"),_types=require("./types");function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class Tree{constructor(a){_defineProperty(this,"tree",void 0),_defineProperty(this,"error",null),_defineProperty(this,"targetingTypes",new Set);const{nestedConditions:b,topLevelOperators:c}=this.flattenSegment(a),d=b.map(a=>{let{conditions:b,operators:c}=a;const d=b.map(a=>(this.targetingTypes.add(a.targetingType),new _node.Node(a)));return this.buildTree(d,c)});this.tree=this.buildTree(d,c)}evaluate(a){const b=this.evaluateNode(this.tree,a);return this.error?(0,_tsRes.Err)(this.error):(0,_tsRes.Ok)(b)}hasTargetingType(a){return this.targetingTypes.has(a)}evaluateNode(a,b){if(this.isLeafNode(a)){if(a.error)return a.error.type===_kameleoonError.KameleoonException.TargetingCondition;const c=a.value.evaluate(b);return c.ok?a.inverse?!c.data:c.data:(this.error=c.error,!1)}if(this.isNonLeafNode(a))switch(a.value){case _types.Operator.And:return this.evaluateNode(a.left,b)&&this.evaluateNode(a.right,b);case _types.Operator.Or:return this.evaluateNode(a.left,b)||this.evaluateNode(a.right,b);default:}return!1}isLeafNode(a){return!!!(a.left&&a.right)}isNonLeafNode(a){return!!(a.left&&a.right&&(a.value===_types.Operator.Or||a.value===_types.Operator.And))}buildTree(a,b){if(1===a.length)return a[0];for(const c of b){const b=a.shift(),d=a.shift(),e=new _node.Node(c,b,d);a.unshift(e)}return a[0]}flattenSegment(a){const{firstLevel:b,firstLevelOrOperators:c}=a.conditionsData,d=[];return b.forEach(a=>{const{conditions:b,orOperators:c}=a,e={operators:this.convertOperators(c),conditions:b};d.push(e)}),{topLevelOperators:this.convertOperators(c),nestedConditions:d}}convertOperators(a){return a.map(a=>a?_types.Operator.Or:_types.Operator.And)}}exports.Tree=Tree;
2
- //# sourceMappingURL=tree.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Tree=void 0;var _tsRes=require("ts-res"),_kameleoonError=require("../kameleoonError"),_node=require("./node"),_types=require("./types"),_logging=require("../logging");function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class Tree{constructor(a){_defineProperty(this,"tree",void 0),_defineProperty(this,"error",null),_defineProperty(this,"targetingTypes",new Set),_logging.KameleoonLogger.debug`CALL: new Tree(segment: ${a})`;const{nestedConditions:b,topLevelOperators:c}=this.flattenSegment(a),d=b.map(a=>{let{conditions:b,operators:c}=a;const d=b.map(a=>(this.targetingTypes.add(a.targetingType),new _node.Node(a)));return this.buildTree(d,c)});this.tree=this.buildTree(d,c),_logging.KameleoonLogger.debug`RETURN: new Tree(segment: ${a})`}evaluate(a){const b=this.evaluateNode(this.tree,a);return this.error?(0,_tsRes.Err)(this.error):(0,_tsRes.Ok)(b)}hasTargetingType(a){return this.targetingTypes.has(a)}evaluateNode(a,b){if(this.isLeafNode(a)){if(a.error)return a.error.type===_kameleoonError.KameleoonException.TargetingCondition;const c=a.value.evaluate(b);return c.ok?a.inverse?!c.data:c.data:(this.error=c.error,!1)}if(this.isNonLeafNode(a))switch(a.value){case _types.Operator.And:return this.evaluateNode(a.left,b)&&this.evaluateNode(a.right,b);case _types.Operator.Or:return this.evaluateNode(a.left,b)||this.evaluateNode(a.right,b);default:}return!1}isLeafNode(a){return!!!(a.left&&a.right)}isNonLeafNode(a){return!!(a.left&&a.right&&(a.value===_types.Operator.Or||a.value===_types.Operator.And))}buildTree(a,b){if(1===a.length)return a[0];for(const c of b){const b=a.shift(),d=a.shift(),e=new _node.Node(c,b,d);a.unshift(e)}return a[0]}flattenSegment(a){const{firstLevel:b,firstLevelOrOperators:c}=a.conditionsData,d=[];return b.forEach(a=>{const{conditions:b,orOperators:c}=a,e={operators:this.convertOperators(c),conditions:b};d.push(e)}),{topLevelOperators:this.convertOperators(c),nestedConditions:d}}convertOperators(a){return a.map(a=>a?_types.Operator.Or:_types.Operator.And)}}exports.Tree=Tree;
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.VisitorType=exports.VersionMatchType=exports.ValueMatchType=exports.TargetingType=exports.Operator=exports.NameMatchType=exports.MatchTypeVariation=exports.MatchTypeTest=exports.MatchType=void 0;let Operator=exports.Operator=function(a){return a.And="AND",a.Or="OR",a}({}),ValueMatchType=exports.ValueMatchType=function(a){return a.TRUE="TRUE",a.FALSE="FALSE",a.EXACT="EXACT",a.CONTAINS="CONTAINS",a.REGULAR_EXPRESSION="REGULAR_EXPRESSION",a.EQUAL="EQUAL",a.LOWER="LOWER",a.GREATER="GREATER",a.UNDEFINED="UNDEFINED",a.AMONG_VALUES="AMONG_VALUES",a.RANGE="RANGE",a}({}),VisitorType=exports.VisitorType=function(a){return a.NEW="NEW",a.RETURNING="RETURNING",a}({}),MatchTypeVariation=exports.MatchTypeVariation=function(a){return a.ANY="ANY",a.EXACT="EXACT",a}({}),MatchTypeTest=exports.MatchTypeTest=function(a){return a.ALL="ALL",a.TEST="TEST",a.PERSO="PERSO",a}({}),MatchType=exports.MatchType=function(a){return a.EXACT="EXACT",a.CONTAINS="CONTAINS",a.REGULAR_EXPRESSION="REGULAR_EXPRESSION",a.GREATER="GREATER",a.EQUAL="EQUAL",a.LOWER="LOWER",a}({}),VersionMatchType=exports.VersionMatchType=function(a){return a.GREATER="GREATER",a.EQUAL="EQUAL",a.LOWER="LOWER",a}({}),NameMatchType=exports.NameMatchType=function(a){return a.EXACT="EXACT",a.CONTAINS="CONTAINS",a.REGULAR_EXPRESSION="REGULAR_EXPRESSION",a.OPTIONAL="OPTIONAL",a}({}),TargetingType=exports.TargetingType=function(a){return a.PAGE_URL="PAGE_URL",a.PAGE_TITLE="PAGE_TITLE",a.LANDING_PAGE="LANDING_PAGE",a.ORIGIN="ORIGIN",a.ORIGIN_TYPE="ORIGIN_TYPE",a.REFERRERS="REFERRERS",a.NEW_VISITORS="NEW_VISITORS",a.INTERESTS="INTERESTS",a.BROWSER_LANGUAGE="BROWSER_LANGUAGE",a.GEOLOCATION="GEOLOCATION",a.DEVICE_TYPE="DEVICE_TYPE",a.SCREEN_DIMENSION="SCREEN_DIMENSION",a.VISITOR_IP="VISITOR_IP",a.AD_BLOCKER="AD_BLOCKER",a.PREVIOUS_PAGE="PREVIOUS_PAGE",a.KEY_PAGES="KEY_PAGES",a.PAGE_VIEWS="PAGE_VIEWS",a.FIRST_VISIT="FIRST_VISIT",a.LAST_VISIT="LAST_VISIT",a.ACTIVE_SESSION="ACTIVE_SESSION",a.TIME_SINCE_PAGE_LOAD="TIME_SINCE_PAGE_LOAD",a.SAME_DAY_VISITS="SAME_DAY_VISITS",a.VISITS="VISITS",a.VISITS_BY_PAGE="VISITS_BY_PAGE",a.VISITOR_CODE="VISITOR_CODE",a.SDK_LANGUAGE="SDK_LANGUAGE",a.INTERNAL_SEARCH_KEYWORDS="INTERNAL_SEARCH_KEYWORDS",a.TABS_ON_SITE="TABS_ON_SITE",a.CONVERSION_PROBABILITY="CONVERSION_PROBABILITY",a.HEAT_SLICE="HEAT_SLICE",a.SKY_STATUS="SKY_STATUS",a.TEMPERATURE="TEMPERATURE",a.DAY_NIGHT="DAY_NIGHT",a.FORECAST_SKY_STATUS="FORECAST_SKY_STATUS",a.FORECAST_TEMPERATURE="FORECAST_TEMPERATURE",a.DAY_OF_WEEK="DAY_OF_WEEK",a.TIME_RANGE="TIME_RANGE",a.HOUR_MINUTE_RANGE="HOUR_MINUTE_RANGE",a.JS_CODE="JS_CODE",a.COOKIE="COOKIE",a.EVENT="EVENT",a.BROWSER="BROWSER",a.OPERATING_SYSTEM="OPERATING_SYSTEM",a.DOM_ELEMENT="DOM_ELEMENT",a.MOUSE_OUT="MOUSE_OUT",a.TARGET_EXPERIMENT="TARGET_EXPERIMENT",a.TARGET_FEATURE_FLAG="TARGET_FEATURE_FLAG",a.TARGET_PERSONALIZATION="TARGET_PERSONALIZATION",a.EXCLUSIVE_EXPERIMENT="EXCLUSIVE_EXPERIMENT",a.EXCLUSIVE_FEATURE_FLAG="EXCLUSIVE_FEATURE_FLAG",a.CONVERSIONS="CONVERSIONS",a.CUSTOM_DATUM="CUSTOM_DATUM",a.YSANCE_SEGMENT="YSANCE_SEGMENT",a.SEGMENT="SEGMENT",a.YSANCE_ATTRIBUT="YSANCE_ATTRIBUT",a.TEALIUM_BADGE="TEALIUM_BADGE",a.TEALIUM_AUDIENCE="TEALIUM_AUDIENCE",a.PRICE_OF_DISPLAYED_PAGE="PRICE_OF_DISPLAYED_PAGE",a.NUMBER_OF_VISITED_PAGES="NUMBER_OF_VISITED_PAGES",a.VISITED_PAGES="VISITED_PAGES",a.CUSTOM="CUSTOM",a.EXPLICIT_TRIGGER="EXPLICIT_TRIGGER",a.APPLICATION_VERSION="APPLICATION_VERSION",a}({});
2
- //# sourceMappingURL=types.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.VisitorType=exports.VersionMatchType=exports.ValueMatchType=exports.TargetingType=exports.Operator=exports.NameMatchType=exports.MatchTypeVariation=exports.MatchTypeTest=exports.MatchType=void 0;let Operator=exports.Operator=function(a){return a.And="AND",a.Or="OR",a}({}),ValueMatchType=exports.ValueMatchType=function(a){return a.TRUE="TRUE",a.FALSE="FALSE",a.EXACT="EXACT",a.CONTAINS="CONTAINS",a.REGULAR_EXPRESSION="REGULAR_EXPRESSION",a.EQUAL="EQUAL",a.LOWER="LOWER",a.GREATER="GREATER",a.UNDEFINED="UNDEFINED",a.AMONG_VALUES="AMONG_VALUES",a.RANGE="RANGE",a}({}),VisitorType=exports.VisitorType=function(a){return a.NEW="NEW",a.RETURNING="RETURNING",a}({}),MatchTypeVariation=exports.MatchTypeVariation=function(a){return a.ANY="ANY",a.EXACT="EXACT",a}({}),MatchTypeTest=exports.MatchTypeTest=function(a){return a.ALL="ALL",a.TEST="TEST",a.PERSO="PERSO",a}({}),MatchType=exports.MatchType=function(a){return a.EXACT="EXACT",a.CONTAINS="CONTAINS",a.REGULAR_EXPRESSION="REGULAR_EXPRESSION",a.GREATER="GREATER",a.EQUAL="EQUAL",a.LOWER="LOWER",a}({}),VersionMatchType=exports.VersionMatchType=function(a){return a.GREATER="GREATER",a.EQUAL="EQUAL",a.LOWER="LOWER",a}({}),NameMatchType=exports.NameMatchType=function(a){return a.EXACT="EXACT",a.CONTAINS="CONTAINS",a.REGULAR_EXPRESSION="REGULAR_EXPRESSION",a.OPTIONAL="OPTIONAL",a}({}),TargetingType=exports.TargetingType=function(a){return a.PAGE_URL="PAGE_URL",a.PAGE_TITLE="PAGE_TITLE",a.LANDING_PAGE="LANDING_PAGE",a.ORIGIN="ORIGIN",a.ORIGIN_TYPE="ORIGIN_TYPE",a.REFERRERS="REFERRERS",a.NEW_VISITORS="NEW_VISITORS",a.INTERESTS="INTERESTS",a.BROWSER_LANGUAGE="BROWSER_LANGUAGE",a.GEOLOCATION="GEOLOCATION",a.DEVICE_TYPE="DEVICE_TYPE",a.SCREEN_DIMENSION="SCREEN_DIMENSION",a.VISITOR_IP="VISITOR_IP",a.AD_BLOCKER="AD_BLOCKER",a.PREVIOUS_PAGE="PREVIOUS_PAGE",a.KEY_PAGES="KEY_PAGES",a.PAGE_VIEWS="PAGE_VIEWS",a.FIRST_VISIT="FIRST_VISIT",a.LAST_VISIT="LAST_VISIT",a.ACTIVE_SESSION="ACTIVE_SESSION",a.TIME_SINCE_PAGE_LOAD="TIME_SINCE_PAGE_LOAD",a.SAME_DAY_VISITS="SAME_DAY_VISITS",a.VISITS="VISITS",a.VISITS_BY_PAGE="VISITS_BY_PAGE",a.VISITOR_CODE="VISITOR_CODE",a.SDK_LANGUAGE="SDK_LANGUAGE",a.INTERNAL_SEARCH_KEYWORDS="INTERNAL_SEARCH_KEYWORDS",a.TABS_ON_SITE="TABS_ON_SITE",a.CONVERSION_PROBABILITY="CONVERSION_PROBABILITY",a.HEAT_SLICE="HEAT_SLICE",a.SKY_STATUS="SKY_STATUS",a.TEMPERATURE="TEMPERATURE",a.DAY_NIGHT="DAY_NIGHT",a.FORECAST_SKY_STATUS="FORECAST_SKY_STATUS",a.FORECAST_TEMPERATURE="FORECAST_TEMPERATURE",a.DAY_OF_WEEK="DAY_OF_WEEK",a.TIME_RANGE="TIME_RANGE",a.HOUR_MINUTE_RANGE="HOUR_MINUTE_RANGE",a.JS_CODE="JS_CODE",a.COOKIE="COOKIE",a.EVENT="EVENT",a.BROWSER="BROWSER",a.OPERATING_SYSTEM="OPERATING_SYSTEM",a.DOM_ELEMENT="DOM_ELEMENT",a.MOUSE_OUT="MOUSE_OUT",a.TARGET_EXPERIMENT="TARGET_EXPERIMENT",a.TARGET_FEATURE_FLAG="TARGET_FEATURE_FLAG",a.TARGET_PERSONALIZATION="TARGET_PERSONALIZATION",a.EXCLUSIVE_EXPERIMENT="EXCLUSIVE_EXPERIMENT",a.EXCLUSIVE_FEATURE_FLAG="EXCLUSIVE_FEATURE_FLAG",a.CONVERSIONS="CONVERSIONS",a.CUSTOM_DATUM="CUSTOM_DATUM",a.YSANCE_SEGMENT="YSANCE_SEGMENT",a.SEGMENT="SEGMENT",a.YSANCE_ATTRIBUT="YSANCE_ATTRIBUT",a.TEALIUM_BADGE="TEALIUM_BADGE",a.TEALIUM_AUDIENCE="TEALIUM_AUDIENCE",a.PRICE_OF_DISPLAYED_PAGE="PRICE_OF_DISPLAYED_PAGE",a.NUMBER_OF_VISITED_PAGES="NUMBER_OF_VISITED_PAGES",a.VISITED_PAGES="VISITED_PAGES",a.CUSTOM="CUSTOM",a.EXPLICIT_TRIGGER="EXPLICIT_TRIGGER",a.APPLICATION_VERSION="APPLICATION_VERSION",a}({});
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.BodyProvider=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../kameleoonData"),_requester=require("../requester"),_utilities=require("../utilities"),_constants=require("./constants");function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class BodyProvider{constructor(a){_defineProperty(this,"prng",void 0),_defineProperty(this,"currentSize",0),_defineProperty(this,"resultBody",[]),_defineProperty(this,"hasUserAgent",!1),_defineProperty(this,"trackingVisitors",{}),this.prng=a}getTrackingBody(){const a={body:this.resultBody.join("\n"),hasUserAgent:this.hasUserAgent};return this.cleanup(),a}addData(a){let{visitorCode:b,variationData:c,visitorData:d,userAgent:e,isConsentProvided:f,isMappingIdentifier:g}=a;const h=[],i=this.getVariationDataLines(c),j=this.getVisitorDataLines(d);return h.push(...j,...i),this.addVisitorTrackingLines({visitorCode:b,lines:h,userAgent:e,isConsentProvided:f,isMappingIdentifier:g})}getVisitorDataLines(a){const b=[];for(const c of a){let a;if(c.data.type===_kameleoonData.KameleoonData.Conversion||c.data.type===_kameleoonData.KameleoonData.PageView){const b=c.data.nonce;b?a=b:(a=_utilities.Utilities.getNonce(this.prng),c.data.nonce=a)}a||(a=_utilities.Utilities.getNonce(this.prng)),b.push(c.url+_requester.UrlParameter.Nonce+a)}return b}getVariationDataLines(a){const b=[];return a.forEach(a=>{b.push(_requester.UrlEventType.Experiment+_requester.UrlParameter.Id+a.experimentId+_requester.UrlParameter.VariationId+a.variationId+_requester.UrlParameter.Nonce+_utilities.Utilities.getNonce(this.prng))}),b}prepareVisitorBody(a){const b=this.trackingVisitors[a];if(!b)return(0,_tsRes.Err)();const{lines:c,userAgent:d,isMappingIdentifier:e,isConsentProvided:f}=b,g=this.getIdentifier(a,e);if(c.length)c.forEach((a,b)=>{c[b]=a+g});else if(f){const a=this.getActivityLine();c.push(a+g)}d&&c.length&&(c[0]+=_requester.UrlParameter.UserAgent+d,this.hasUserAgent=!0);const h=this.checkSize(c);return h.ok&&this.resultBody.push(...c),h}cleanup(){this.currentSize=0,this.resultBody=[],this.hasUserAgent=!1,this.trackingVisitors={}}checkSize(a){let b=0;return(b+=a.reduce((a,b)=>a+b.length*_constants.SYMBOL_SIZE,0),b+this.currentSize>_constants.MAX_BODY_SIZE)?(0,_tsRes.Err)():(this.currentSize+=b,(0,_tsRes.Ok)())}addVisitorTrackingLines(a){let{visitorCode:b,lines:c,userAgent:d,isConsentProvided:e,isMappingIdentifier:f}=a;return this.trackingVisitors[b]?(d&&(this.trackingVisitors[b].userAgent=d),this.trackingVisitors[b].lines.push(...c)):this.trackingVisitors[b]={isMappingIdentifier:f,isConsentProvided:e,userAgent:d,lines:c},this.prepareVisitorBody(b)}getActivityLine(){return _requester.UrlEventType.Activity+_requester.UrlParameter.Nonce+_utilities.Utilities.getNonce(this.prng)}getIdentifier(a,b){const c=b?_requester.UrlParameter.MappingValue:_requester.UrlParameter.VisitorCode;return c+a}}exports.BodyProvider=BodyProvider;
2
- //# sourceMappingURL=bodyProvider.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.BodyProvider=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../kameleoonData"),_requester=require("../requester"),_utilities=require("../utilities"),_constants=require("./constants"),_logging=require("../logging");function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class BodyProvider{constructor(a){_defineProperty(this,"prng",void 0),_defineProperty(this,"currentSize",0),_defineProperty(this,"resultBody",[]),_defineProperty(this,"hasUserAgent",!1),_defineProperty(this,"trackingVisitors",{}),this.prng=a}getTrackingBody(){const a={body:this.resultBody.join("\n"),hasUserAgent:this.hasUserAgent};return this.cleanup(),a}addData(a){let{visitorCode:b,variationData:c,visitorData:d,userAgent:e,isConsentProvided:f,isMappingIdentifier:g}=a;const h=[],i=this.getVariationDataLines(c),j=this.getVisitorDataLines(d);return h.push(...j,...i),this.addVisitorTrackingLines({visitorCode:b,lines:h,userAgent:e,isConsentProvided:f,isMappingIdentifier:g})}getVisitorDataLines(a){const b=[];for(const c of a){let a;if(c.data.type===_kameleoonData.KameleoonData.Conversion||c.data.type===_kameleoonData.KameleoonData.PageView){const b=c.data.nonce;b?a=b:(a=_utilities.Utilities.getNonce(this.prng),c.data.nonce=a)}a||(a=_utilities.Utilities.getNonce(this.prng)),b.push(c.url+_requester.UrlParameter.Nonce+a)}return b}getVariationDataLines(a){const b=[];return a.forEach(a=>{b.push(_requester.UrlEventType.Experiment+_requester.UrlParameter.Id+a.experimentId+_requester.UrlParameter.VariationId+a.variationId+_requester.UrlParameter.Nonce+_utilities.Utilities.getNonce(this.prng))}),b}prepareVisitorBody(a){const b=this.trackingVisitors[a];if(!b)return(0,_tsRes.Err)();const{lines:c,userAgent:d,isMappingIdentifier:e,isConsentProvided:f}=b,g=this.getIdentifier(a,e);if(c.length)c.forEach((a,b)=>{c[b]=a+g}),_logging.KameleoonLogger.debug`Sending tracking request for unsent data ${c} of visitor ${a} with given (or not required) consent ${f}`;else if(f){const b=this.getActivityLine();c.push(b+g),_logging.KameleoonLogger.debug`Sending tracking request for activity of visitor ${a} with given consent`}else _logging.KameleoonLogger.debug`No data to send for visitor ${a} with no consent`;d&&c.length&&(c[0]+=_requester.UrlParameter.UserAgent+d,this.hasUserAgent=!0);const h=this.checkSize(c);return h.ok&&this.resultBody.push(...c),h}cleanup(){this.currentSize=0,this.resultBody=[],this.hasUserAgent=!1,this.trackingVisitors={}}checkSize(a){let b=0;return(b+=a.reduce((a,b)=>a+b.length*_constants.SYMBOL_SIZE,0),b+this.currentSize>_constants.MAX_BODY_SIZE)?(0,_tsRes.Err)():(this.currentSize+=b,(0,_tsRes.Ok)())}addVisitorTrackingLines(a){let{visitorCode:b,lines:c,userAgent:d,isConsentProvided:e,isMappingIdentifier:f}=a;return this.trackingVisitors[b]?(d&&(this.trackingVisitors[b].userAgent=d),this.trackingVisitors[b].lines.push(...c)):this.trackingVisitors[b]={isMappingIdentifier:f,isConsentProvided:e,userAgent:d,lines:c},this.prepareVisitorBody(b)}getActivityLine(){return _requester.UrlEventType.Activity+_requester.UrlParameter.Nonce+_utilities.Utilities.getNonce(this.prng)}getIdentifier(a,b){const c=b?_requester.UrlParameter.MappingValue:_requester.UrlParameter.VisitorCode;return c+a}}exports.BodyProvider=BodyProvider;
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SYMBOL_SIZE=exports.MAX_BODY_SIZE=void 0;var Byte=function(a){return a[a.Kb=1000]="Kb",a[a.Mb=1e3*a.Kb]="Mb",a[a.Gb=1e3*a.Mb]="Gb",a}(Byte||{});const MAX_BODY_SIZE=exports.MAX_BODY_SIZE=10*Byte.Mb,SYMBOL_SIZE=exports.SYMBOL_SIZE=4;
2
- //# sourceMappingURL=constants.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SYMBOL_SIZE=exports.MAX_BODY_SIZE=void 0;var Byte=function(a){return a[a.Kb=1000]="Kb",a[a.Mb=1e3*a.Kb]="Mb",a[a.Gb=1e3*a.Mb]="Gb",a}(Byte||{});const MAX_BODY_SIZE=exports.MAX_BODY_SIZE=10*Byte.Mb,SYMBOL_SIZE=exports.SYMBOL_SIZE=4;
@@ -1,2 +1 @@
1
- "use strict";var _tracker=require("./tracker");Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"Tracker",{enumerable:!0,get:function(){return _tracker.Tracker}});
2
- //# sourceMappingURL=index.js.map
1
+ "use strict";var _tracker=require("./tracker");Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"Tracker",{enumerable:!0,get:function(){return _tracker.Tracker}});
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Tracker=void 0;var _kameleoonData=require("../kameleoonData"),_types=require("../types"),_bodyProvider=require("./bodyProvider");function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class Tracker{constructor(a){let{dataManager:b,trackingStorage:c,variationConfiguration:d,trackingInterval:e,requester:f,prng:g}=a;_defineProperty(this,"dataManager",void 0),_defineProperty(this,"variationConfiguration",void 0),_defineProperty(this,"requester",void 0),_defineProperty(this,"bodyProvider",void 0),_defineProperty(this,"intervalId",null),_defineProperty(this,"trackingStorage",void 0),this.dataManager=b,this.trackingStorage=c,this.variationConfiguration=d,this.requester=f,this.bodyProvider=new _bodyProvider.BodyProvider(g);try{this.intervalId=setInterval(()=>{this.sendData()},e)}catch(a){throw this.intervalId&&clearInterval(this.intervalId),a}}scheduleVisitor(a,b){this.trackingStorage.read().and(c=>{c.scheduledVisitors[a]={isConsentProvided:b},this.trackingStorage.write(c)})}checkIsIdentifier(a){const b=this.dataManager.isUniqueIdentifier(a);let c=!1;if(b){const b=this.dataManager.getLinkedVisitor(a),d=this.dataManager.identifierCustomDataIndex;b||"number"!=typeof d?c=!0:this.dataManager.storeData(a,new _kameleoonData.CustomData(d,a))}return c}getUserAgent(a){const b=this.dataManager.getVisitorData(a);if(b){const a=b[_kameleoonData.KameleoonData.UserAgent];if(a)return a.value}}async sendData(){const a={},b=this.trackingStorage.read();if(!b.ok)return;const{scheduledVisitors:c}=b.data,d=[];for(const[b,{isConsentProvided:e}]of Object.entries(c)){const c=this.checkIsIdentifier(b),f=this.getUserAgent(b),g=this.getUnsentVisitorData(b,e),h=this.getUnsentVariationData(b,e),i=this.bodyProvider.addData({visitorCode:b,variationData:h,visitorData:g,userAgent:f,isConsentProvided:e,isMappingIdentifier:c});if(i.ok)a[b]={visitorData:g,variationData:h},d.push(b);else break}const{body:e,hasUserAgent:f}=this.bodyProvider.getTrackingBody();if(e){const b=await this.requester.track(e,f);b.ok?(this.updateDataStatus(a,_types.TrackingStatus.Sent),d.forEach(a=>{delete c[a]}),this.trackingStorage.write({scheduledVisitors:c})):this.updateDataStatus(a,_types.TrackingStatus.Unsent)}}updateDataStatus(a,b){let c={};for(const[d,{visitorData:e,variationData:f}]of Object.entries(a)){c[d]=e.map(a=>(a.status=b,a));const a=f.map(a=>a.experimentId+"");this.variationConfiguration.updateDataStatus({visitorCode:d,experimentIdList:a,status:b})}b===_types.TrackingStatus.Sent?this.dataManager.storeTrackedData(c):this.dataManager.storeData(c)}getUnsentVisitorData(a,b){const c=this.dataManager.getUnsentData(a),d=[];if(!c.length)return[];for(const e of c)e.url&&(e.data.type===_kameleoonData.KameleoonData.Conversion||b)&&d.push(e);if(d.length){const b=d.map(a=>(a.status=_types.TrackingStatus.Pending,a));this.dataManager.storeTrackedData({[a]:b})}return d}getUnsentVariationData(a,b){const c=this.variationConfiguration.getUnsentData(a),d=new Set;if(!c.length)return[];const e=c.filter(a=>{const c=a.isTargetedRule||b;return c&&d.add(a.experimentId+""),c});return this.variationConfiguration.updateDataStatus({visitorCode:a,experimentIdList:Array.from(d),status:_types.TrackingStatus.Pending}),e}}exports.Tracker=Tracker;
2
- //# sourceMappingURL=tracker.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Tracker=void 0;var _kameleoonData=require("../kameleoonData"),_types=require("../types"),_bodyProvider=require("./bodyProvider"),_logging=require("../logging");function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class Tracker{constructor(a){let{dataManager:b,trackingStorage:c,variationConfiguration:d,trackingInterval:e,requester:f,prng:g}=a;_defineProperty(this,"dataManager",void 0),_defineProperty(this,"variationConfiguration",void 0),_defineProperty(this,"requester",void 0),_defineProperty(this,"bodyProvider",void 0),_defineProperty(this,"intervalId",null),_defineProperty(this,"trackingStorage",void 0),_logging.KameleoonLogger.debug`CALL: new Tracker(dataManager, trackingStorage, variationConfiguration, trackingInterval: ${e}, requester, prng)`,this.dataManager=b,this.trackingStorage=c,this.variationConfiguration=d,this.requester=f,this.bodyProvider=new _bodyProvider.BodyProvider(g);try{this.intervalId=setInterval(()=>{this.sendData()},e)}catch(a){throw this.intervalId&&clearInterval(this.intervalId),a}_logging.KameleoonLogger.debug`RETURN: new Tracker(dataManager, trackingStorage, variationConfiguration, trackingInterval: ${e}, requester, prng)`}scheduleVisitor(a,b){_logging.KameleoonLogger.debug`CALL: Tracker.scheduleVisitor(visitorCode: ${a}, isConsentProvided: ${b})`,this.trackingStorage.read().and(c=>{c.scheduledVisitors[a]={isConsentProvided:b},this.trackingStorage.write(c)}),_logging.KameleoonLogger.debug`RETURN: Tracker.scheduleVisitor(visitorCode: ${a}, isConsentProvided: ${b})`}checkIsIdentifier(a){const b=this.dataManager.isUniqueIdentifier(a);let c=!1;if(b){const b=this.dataManager.getLinkedVisitor(a),d=this.dataManager.identifierCustomDataIndex;b||"number"!=typeof d?c=!0:this.dataManager.storeData(a,new _kameleoonData.CustomData(d,a))}return c}getUserAgent(a){const b=this.dataManager.getVisitorData(a);if(b){const a=b[_kameleoonData.KameleoonData.UserAgent];if(a)return a.value}}async sendData(){const a={},b=this.trackingStorage.read();if(!b.ok)return;const{scheduledVisitors:c}=b.data,d=[];for(const[b,{isConsentProvided:e}]of Object.entries(c)){const c=this.checkIsIdentifier(b),f=this.getUserAgent(b),g=this.getUnsentVisitorData(b,e),h=this.getUnsentVariationData(b,e),i=this.bodyProvider.addData({visitorCode:b,variationData:h,visitorData:g,userAgent:f,isConsentProvided:e,isMappingIdentifier:c});if(i.ok)a[b]={visitorData:g,variationData:h},d.push(b);else{_logging.KameleoonLogger.warning("Visitor data to be tracked exceeded the request size limit. Some visitor data is kept to be sent later. If it is not caused by the peak load, decreasing the tracking interval is recommended.");break}}const{body:e,hasUserAgent:f}=this.bodyProvider.getTrackingBody();if(e){const b=await this.requester.track(e,f);b.ok?(_logging.KameleoonLogger.info`Successful request for tracking visitors: ${d}, data: ${a}`,this.updateDataStatus(a,_types.TrackingStatus.Sent),d.forEach(a=>{delete c[a]}),this.trackingStorage.write({scheduledVisitors:c})):(_logging.KameleoonLogger.error("Tracking request failed"),_logging.KameleoonLogger.info`Failed request for tracking visitors: ${d}, data: ${a}`,this.updateDataStatus(a,_types.TrackingStatus.Unsent))}}updateDataStatus(a,b){let c={};for(const[d,{visitorData:e,variationData:f}]of Object.entries(a)){c[d]=e.map(a=>(a.status=b,a));const a=f.map(a=>a.experimentId+"");this.variationConfiguration.updateDataStatus({visitorCode:d,experimentIdList:a,status:b})}b===_types.TrackingStatus.Sent?this.dataManager.storeTrackedData(c):this.dataManager.storeData(c)}getUnsentVisitorData(a,b){const c=this.dataManager.getUnsentData(a),d=[];if(!c.length)return[];for(const e of c)e.url&&(e.data.type===_kameleoonData.KameleoonData.Conversion||b)&&d.push(e);if(d.length){const b=d.map(a=>(a.status=_types.TrackingStatus.Pending,a));this.dataManager.storeTrackedData({[a]:b})}return d}getUnsentVariationData(a,b){const c=this.variationConfiguration.getUnsentData(a),d=new Set;if(!c.length)return[];const e=c.filter(a=>{const c=a.isTargetedRule||b;return c&&d.add(a.experimentId+""),c});return this.variationConfiguration.updateDataStatus({visitorCode:a,experimentIdList:Array.from(d),status:_types.TrackingStatus.Pending}),e}}exports.Tracker=Tracker;
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});
2
- //# sourceMappingURL=types.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});
package/dist/types.d.ts CHANGED
@@ -5,6 +5,7 @@ import { IExternalRequester, IUrlProvider, RequestType } from './requester';
5
5
  import { IExternalStorage } from './storage';
6
6
  import { IExternalPRNG, VisitorDataFiltersType } from './utilities';
7
7
  import { IVisitorCodeManager } from './visitorCodeManager';
8
+ import { IExternalLogger } from './logging';
8
9
  /**
9
10
  * @param {number} updateInterval - update interval in _minutes_ for sdk configuration, minimum value is 1 minute
10
11
  * @defaultvalue 60
@@ -75,6 +76,7 @@ export type InternalsType = {
75
76
  * @param {ExternalPackageInfoType} externalPackageInfo - external package info, used to get package version and name
76
77
  * @param {IExternalRequester} externalRequester - external requester , used to track or get data
77
78
  * @param {IVisitorCodeManager} externalVisitorCodeManager - external visitor code manager, used to get or generate visitor code
79
+ * @param {IExternalLogger | undefined} logger - external logger implementation
78
80
  * */
79
81
  export type ExternalsType = {
80
82
  externalStorage: IExternalStorage;
@@ -83,6 +85,7 @@ export type ExternalsType = {
83
85
  externalPackageInfo: ExternalPackageInfoType;
84
86
  externalRequester: IExternalRequester;
85
87
  externalPRNG: IExternalPRNG;
88
+ externalLogger?: IExternalLogger;
86
89
  };
87
90
  /**
88
91
  * @param {boolean} useAbortController - a flag to enable or disable usage of `AbortController` for requests allowing for `requestTimeout` to be respected
@@ -199,6 +202,17 @@ export type RemoteVisitorDataParamsType = {
199
202
  shouldAddData?: boolean;
200
203
  filters?: VisitorDataFiltersType;
201
204
  };
205
+ /**
206
+ * @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters
207
+ * @param {string} featureKey - key of the feature flag to look for, can be found on Kameleoon Platform
208
+ * @param {boolean | undefined} track - a flag to enable or disable tracking request
209
+ * @defaultvalue `true`
210
+ * */
211
+ export type IsFeatureFlagActiveParamsType = {
212
+ visitorCode: string;
213
+ featureKey: string;
214
+ track?: boolean;
215
+ };
202
216
  export type GetFeatureVariablesParamsType = {
203
217
  visitorCode: string;
204
218
  featureKey: string;
@@ -225,6 +239,16 @@ export type KameleoonVariationType = {
225
239
  experimentId: number | null;
226
240
  variables: KameleoonVariableType[];
227
241
  };
242
+ /**
243
+ * @type `VariationType` - an object containing information about the variation and its variables
244
+ * @param {string} key - key of the variation
245
+ * @param {number | null} id - id of the variation or `null` if the visitor hit default variation
246
+ * @param {number | null} experimentId - id of the experiment or `null` if the visitor hit default variation
247
+ * @param {Map<string, KameleoonVariableType>} variables - map of variables for the variation, where key is the variable key and value is the variable object
248
+ * */
249
+ export type VariationType = Omit<KameleoonVariationType, 'variables'> & {
250
+ variables: Map<string, KameleoonVariableType>;
251
+ };
228
252
  /**
229
253
  * @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters
230
254
  * @param {string} featureKey - key of the feature flag to look for, can be found on Kameleoon Platform
@@ -246,6 +270,29 @@ export type GetVisitorWarehouseAudienceParamsType = {
246
270
  customDataIndex: number;
247
271
  warehouseKey?: string;
248
272
  };
273
+ /**
274
+ * @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters
275
+ * @param {string} featureKey - key of the feature flag to look for, can be found on Kameleoon Platform
276
+ * @param {boolean | undefined} track - a flag to enable or disable tracking request
277
+ * @defaultvalue `true`
278
+ * */
279
+ export type GetVariationParamsType = {
280
+ visitorCode: string;
281
+ featureKey: string;
282
+ track?: boolean;
283
+ };
284
+ /**
285
+ * @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters
286
+ * @param {boolean | undefined} onlyActive - an indicator to get only active variations
287
+ * @defaultvalue `false`
288
+ * @param {boolean | undefined} track - a flag to enable or disable tracking request
289
+ * @defaultvalue `true`
290
+ * */
291
+ export type GetVariationsParamsType = {
292
+ visitorCode: string;
293
+ onlyActive?: boolean;
294
+ track?: boolean;
295
+ };
249
296
  export type WarehouseAudienceType = {
250
297
  warehouseAudiences: Record<string, unknown>;
251
298
  };
@@ -262,6 +309,11 @@ export type SetDataCallbackParametersType = {
262
309
  path: string;
263
310
  key: string;
264
311
  };
312
+ export type GetFeatureVariationParametersType = {
313
+ visitorCode: string;
314
+ featureKey: string;
315
+ track: boolean;
316
+ };
265
317
  /**
266
318
  * @param {string} visitorCode - unique visitor identifier, shouldn't exceed 255 characters
267
319
  * @param {boolean} consent - a value representing the legal consent status. - 'true' indicates the
package/dist/types.js CHANGED
@@ -1,2 +1 @@
1
- "use strict";var _requester=require("./requester");Object.defineProperty(exports,"__esModule",{value:!0}),exports.VariableType=exports.TrackingStatus=exports.Milliseconds=exports.Environment=void 0;let Environment=exports.Environment=function(a){return a.Production="production",a.Staging="staging",a.Development="development",a}({}),VariableType=exports.VariableType=function(a){return a.BOOLEAN="BOOLEAN",a.NUMBER="NUMBER",a.STRING="STRING",a.JSON="JSON",a.JS="JS",a.CSS="CSS",a}({}),TrackingStatus=exports.TrackingStatus=function(a){return a.Sent="sent",a.Unsent="unsent",a.Pending="pending",a}({}),Milliseconds=exports.Milliseconds=function(a){return a[a.Second=1000]="Second",a[a.Minute=60*a.Second]="Minute",a[a.Hour=60*a.Minute]="Hour",a[a.Day=24*a.Hour]="Day",a[a.Week=7*a.Day]="Week",a[a.Month=30*a.Day]="Month",a}({});
2
- //# sourceMappingURL=types.js.map
1
+ "use strict";var _requester=require("./requester");Object.defineProperty(exports,"__esModule",{value:!0}),exports.VariableType=exports.TrackingStatus=exports.Milliseconds=exports.Environment=void 0;let Environment=exports.Environment=function(a){return a.Production="production",a.Staging="staging",a.Development="development",a}({}),VariableType=exports.VariableType=function(a){return a.BOOLEAN="BOOLEAN",a.NUMBER="NUMBER",a.STRING="STRING",a.JSON="JSON",a.JS="JS",a.CSS="CSS",a}({}),TrackingStatus=exports.TrackingStatus=function(a){return a.Sent="sent",a.Unsent="unsent",a.Pending="pending",a}({}),Milliseconds=exports.Milliseconds=function(a){return a[a.Second=1000]="Second",a[a.Minute=60*a.Second]="Minute",a[a.Hour=60*a.Minute]="Hour",a[a.Day=24*a.Hour]="Day",a[a.Week=7*a.Day]="Week",a[a.Month=30*a.Day]="Month",a}({});
@@ -1,2 +1,7 @@
1
1
  export declare const HEX_CHARACTERS = "0123456789ABCDEF";
2
2
  export declare const NONCE_LENGTH = 16;
3
+ export declare const HTTP = "http://";
4
+ export declare const HTTPS = "https://";
5
+ export declare const REGEX_DOMAIN: RegExp;
6
+ export declare const HIDDEN_SECRET_CHAR = "*";
7
+ export declare const SECRET_VISIBLE_LENGTH = 4;
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.NONCE_LENGTH=exports.HEX_CHARACTERS=void 0;const HEX_CHARACTERS=exports.HEX_CHARACTERS="0123456789ABCDEF",NONCE_LENGTH=exports.NONCE_LENGTH=16;
2
- //# sourceMappingURL=constants.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SECRET_VISIBLE_LENGTH=exports.REGEX_DOMAIN=exports.NONCE_LENGTH=exports.HTTPS=exports.HTTP=exports.HIDDEN_SECRET_CHAR=exports.HEX_CHARACTERS=void 0;const HEX_CHARACTERS=exports.HEX_CHARACTERS="0123456789ABCDEF",NONCE_LENGTH=exports.NONCE_LENGTH=16,HTTP=exports.HTTP="http://",HTTPS=exports.HTTPS="https://",REGEX_DOMAIN=exports.REGEX_DOMAIN=/^(\.?(([a-zA-Z\d][a-zA-Z\d-]*[a-zA-Z\d])|[a-zA-Z\d]))(\.(([a-zA-Z\d][a-zA-Z\d-]*[a-zA-Z\d])|[a-zA-Z\d])){1,126}$/,HIDDEN_SECRET_CHAR=exports.HIDDEN_SECRET_CHAR="*",SECRET_VISIBLE_LENGTH=exports.SECRET_VISIBLE_LENGTH=4;
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"IExternalPRNG",{enumerable:!0,get:function(){return _types.IExternalPRNG}}),Object.defineProperty(exports,"Order",{enumerable:!0,get:function(){return _types.Order}}),Object.defineProperty(exports,"Parser",{enumerable:!0,get:function(){return _parser.Parser}}),Object.defineProperty(exports,"TimeUnit",{enumerable:!0,get:function(){return _types.TimeUnit}}),Object.defineProperty(exports,"Utilities",{enumerable:!0,get:function(){return _utilities.Utilities}}),Object.defineProperty(exports,"Validator",{enumerable:!0,get:function(){return _validator.Validator}}),Object.defineProperty(exports,"VisitorDataFiltersType",{enumerable:!0,get:function(){return _types.VisitorDataFiltersType}});var _utilities=require("./utilities"),_parser=require("./parser"),_validator=require("./validator"),_types=require("./types");
2
- //# sourceMappingURL=index.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"IExternalPRNG",{enumerable:!0,get:function(){return _types.IExternalPRNG}}),Object.defineProperty(exports,"Order",{enumerable:!0,get:function(){return _types.Order}}),Object.defineProperty(exports,"Parser",{enumerable:!0,get:function(){return _parser.Parser}}),Object.defineProperty(exports,"TimeUnit",{enumerable:!0,get:function(){return _types.TimeUnit}}),Object.defineProperty(exports,"Utilities",{enumerable:!0,get:function(){return _utilities.Utilities}}),Object.defineProperty(exports,"Validator",{enumerable:!0,get:function(){return _validator.Validator}}),Object.defineProperty(exports,"VisitorDataFiltersType",{enumerable:!0,get:function(){return _types.VisitorDataFiltersType}});var _utilities=require("./utilities"),_parser=require("./parser"),_validator=require("./validator"),_types=require("./types");
@@ -7,4 +7,5 @@ export declare class Parser {
7
7
  static parseFeatureVariable(variable: FeatureVariableType): Result<FeatureVariableResultType, KameleoonError>;
8
8
  static parseVisitorData({ data, filters, visitorCode, dataManager, variationConfiguration, }: ParseVisitorDataParametersType): ParseVisitorDataResultType;
9
9
  static parseRegExp(value: string): RegExp;
10
+ static parseSecret(secret: string | null): string;
10
11
  }
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Parser=void 0;var _tsRes=require("ts-res"),_kameleoonError=require("../kameleoonError"),_types=require("../types"),_visitProcessor=require("../kameleoonData/visitProcessor");class Parser{static parseFeatureVariable(a){const{key:b,type:c,value:d}=a;switch(c){case _types.VariableType.BOOLEAN:return(0,_tsRes.Ok)({key:b,type:c,value:!!d});case _types.VariableType.JS:case _types.VariableType.CSS:case _types.VariableType.STRING:return(0,_tsRes.Ok)({key:b,type:c,value:d+""});case _types.VariableType.NUMBER:const e=+d;return Number.isNaN(e)?(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.NumberParse,d+"")):(0,_tsRes.Ok)({key:b,type:c,value:e});case _types.VariableType.JSON:try{const d=JSON.parse(a.value+"");return(0,_tsRes.Ok)({key:b,type:c,value:d})}catch(a){return(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.JSONParse,a))}default:(0,_kameleoonError.exhaustCheck)(c)}}static parseVisitorData(a){let{data:b,filters:c,visitorCode:d,dataManager:e,variationConfiguration:f}=a;const g=new _visitProcessor.VisitProcessor({filters:c,dataManager:e,visitorCode:d}),{currentVisit:h,previousVisits:i,kcs:j}=b;let k=[];if(h&&k.push(h),i&&k.push(...i),!k.length)return{visitorData:[],storageVisitorData:[]};k.forEach(a=>{g.processVisit(a)}),g.processKcs(j),g.processMultipleDataTypes();const{visitorData:l,storageVisitorData:m,visitsData:n,experimentData:o}=g.data;return f.updateStoredVariations(d,o),{visitorData:l,storageVisitorData:m,visitsData:n}}static parseRegExp(a){if("/"===a[0]){const[_,b,c]=a.split("/");return new RegExp(b,c)}return new RegExp(a)}}exports.Parser=Parser;
2
- //# sourceMappingURL=parser.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Parser=void 0;var _tsRes=require("ts-res"),_kameleoonError=require("../kameleoonError"),_types=require("../types"),_visitProcessor=require("../kameleoonData/visitProcessor"),_constants=require("./constants");class Parser{static parseFeatureVariable(a){const{key:b,type:c,value:d}=a;switch(c){case _types.VariableType.BOOLEAN:return(0,_tsRes.Ok)({key:b,type:c,value:!!d});case _types.VariableType.JS:case _types.VariableType.CSS:case _types.VariableType.STRING:return(0,_tsRes.Ok)({key:b,type:c,value:d+""});case _types.VariableType.NUMBER:const e=+d;return Number.isNaN(e)?(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.NumberParse,d+"")):(0,_tsRes.Ok)({key:b,type:c,value:e});case _types.VariableType.JSON:try{const d=JSON.parse(a.value+"");return(0,_tsRes.Ok)({key:b,type:c,value:d})}catch(a){return(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.JSONParse,a))}default:(0,_kameleoonError.exhaustCheck)(c)}}static parseVisitorData(a){let{data:b,filters:c,visitorCode:d,dataManager:e,variationConfiguration:f}=a;const g=new _visitProcessor.VisitProcessor({filters:c,dataManager:e,visitorCode:d}),{currentVisit:h,previousVisits:i,kcs:j}=b;let k=[];if(h&&k.push(h),i&&k.push(...i),!k.length)return{visitorData:[],storageVisitorData:[]};k.forEach(a=>{g.processVisit(a)}),g.processKcs(j),g.processMultipleDataTypes();const{visitorData:l,storageVisitorData:m,visitsData:n,experimentData:o}=g.data;return f.updateStoredVariations(d,o),{visitorData:l,storageVisitorData:m,visitsData:n}}static parseRegExp(a){if("/"===a[0]){const[_,b,c]=a.split("/");return new RegExp(b,c)}return new RegExp(a)}static parseSecret(a){if(null===a)return"null";const b=a.length;if(b<=_constants.SECRET_VISIBLE_LENGTH)return _constants.HIDDEN_SECRET_CHAR.repeat(b);const c=Math.max(b-_constants.SECRET_VISIBLE_LENGTH,_constants.SECRET_VISIBLE_LENGTH);return a.substring(0,b-c)+_constants.HIDDEN_SECRET_CHAR.repeat(c)}}exports.Parser=Parser;
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.TimeUnit=exports.Order=void 0;let TimeUnit=exports.TimeUnit=function(a){return a.Minute="MINUTE",a.Hour="HOUR",a.Day="DAY",a.Week="WEEK",a.Month="MONTH",a}({}),Order=exports.Order=function(a){return a.Ascending="asc",a.Descending="desc",a}({});
2
- //# sourceMappingURL=types.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.TimeUnit=exports.Order=void 0;let TimeUnit=exports.TimeUnit=function(a){return a.Minute="MINUTE",a.Hour="HOUR",a.Day="DAY",a.Week="WEEK",a.Month="MONTH",a}({}),Order=exports.Order=function(a){return a.Ascending="asc",a.Descending="desc",a}({});
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Utilities=void 0;var _tsRes=require("ts-res"),_kameleoonError=require("../kameleoonError"),_types=require("../types"),_kameleoonData=require("../kameleoonData"),_constants=require("../constants"),_targeting=require("../targeting"),_types2=require("./types"),_constants2=require("./constants"),_validator=require("./validator");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))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 Utilities{static getNonce(a){let b="";for(let c=0;c<_constants2.NONCE_LENGTH;c++){const c=a.getRandomNumber(),d=Math.floor(c*_constants2.NONCE_LENGTH);b+=_constants2.HEX_CHARACTERS.charAt(d)}return b}static checkTargeting(a){let{segment:b,visitorCode:c,targetingData:d,experimentId:e,variationConfiguration:f,clientConfiguration:g,packageInfo:h,dataManager:i}=a;if(!b||!b.conditionsData.firstLevel.length)return(0,_tsRes.Ok)(!0);if(!f)return(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization));let j={};const k=f.getStoredVariations(c);k.ok&&(j=k.data);const l=i.getTree(b);let m,n,o;l.hasTargetingType(_targeting.TargetingType.SEGMENT)&&(m=i.trees,o=g.segments),l.hasTargetingType(_targeting.TargetingType.TARGET_FEATURE_FLAG)&&(n=g.ruleMap);const p=l.evaluate({variationData:j,sdkInfo:h,segments:o,ruleMap:n,trees:m,targetingData:d,experimentId:e,visitorCode:c});return p}static convertTimeUnit(a,b){const c={[_types2.TimeUnit.Minute]:_types.Milliseconds.Minute,[_types2.TimeUnit.Hour]:_types.Milliseconds.Hour,[_types2.TimeUnit.Day]:_types.Milliseconds.Day,[_types2.TimeUnit.Week]:_types.Milliseconds.Week,[_types2.TimeUnit.Month]:_types.Milliseconds.Month};return a/c[b]}static isCustomData(a){return a.data.type===_kameleoonData.KameleoonData.CustomData}static insertInOrderedListMutably(a){let{list:b,element:c,order:d}=a;if(!b.includes(c)){const a=b.findIndex(a=>d===_types2.Order.Ascending?a>=c:a<=c);-1===a?b.push(c):b.splice(a,0,c)}}static updateCache(a){let{hasJsCssVariables:b,cacheManager:c,visitorCode:d,experimentId:e,variationId:f}=a;const g=c.getAliveItem(d),h=g?_objectSpread({},g):{};h[e]={variationId:f,hasJsCssVariables:b,expirationTime:Date.now()+_constants.CACHE_ITEM_LIFETIME*_types.Milliseconds.Second},c.add({key:d,data:h,lifetime:_constants.CACHE_ITEM_LIFETIME})}static getTrackingCode(a,b){let c="window.kameleoonQueue=window.kameleoonQueue||[];";const d=a.getAliveItem(b);if(!d)return c;const e={};return Object.entries(d).forEach(a=>{let[b,{variationId:d,expirationTime:f,hasJsCssVariables:g}]=a;f>Date.now()&&(c+=`window.kameleoonQueue.push(['Experiments.assignVariation',${b},${d},true]);`,c+=`window.kameleoonQueue.push(['Experiments.trigger',${b},${!g}]);`,e[+b]={variationId:d,expirationTime:f,hasJsCssVariables:g})}),a.add({key:b,data:e,lifetime:_constants.CACHE_ITEM_LIFETIME}),c}static compareSemVer(a){let{version:b,compareVersion:c,operator:d}=a;const e=_validator.Validator.validateVersion(b),f=_validator.Validator.validateVersion(c);if(!e.ok)return(0,_tsRes.Err)(e.error);if(!f.ok)return(0,_tsRes.Err)(f.error);const[g,h,i]=e.data,[j,k,l]=f.data,[m,n,o]=[g===j,h===k,i===l];switch(d){case _targeting.VersionMatchType.EQUAL:return(0,_tsRes.Ok)(m&&n&&o);case _targeting.VersionMatchType.GREATER:return(0,_tsRes.Ok)(g>j||m&&h>k||m&&n&&i>l);case _targeting.VersionMatchType.LOWER:return(0,_tsRes.Ok)(g<j||m&&h<k||m&&n&&i<l);default:(0,_kameleoonError.exhaustCheck)(d)}}}exports.Utilities=Utilities;
2
- //# sourceMappingURL=utilities.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Utilities=void 0;var _tsRes=require("ts-res"),_kameleoonError=require("../kameleoonError"),_types=require("../types"),_kameleoonData=require("../kameleoonData"),_constants=require("../constants"),_targeting=require("../targeting"),_types2=require("./types"),_constants2=require("./constants"),_validator=require("./validator"),_logging=require("../logging");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))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 Utilities{static getNonce(a){let b="";for(let c=0;c<_constants2.NONCE_LENGTH;c++){const c=a.getRandomNumber(),d=Math.floor(c*_constants2.NONCE_LENGTH);b+=_constants2.HEX_CHARACTERS.charAt(d)}return b}static checkTargeting(a){let{segment:b,visitorCode:c,targetingData:d,experimentId:e,variationConfiguration:f,clientConfiguration:g,packageInfo:h,dataManager:i}=a;if(_logging.KameleoonLogger.debug`CALL: checkTargeting(segment, visitorCode: ${c}, targetingData: ${d}, experimentId: ${e}, variationConfiguration, clientConfiguration, packageInfo, dataManager)`,!b||!b.conditionsData.firstLevel.length){const a=(0,_tsRes.Ok)(!0);return _logging.KameleoonLogger.debug`RETURN checkTargeting(segment, visitorCode: ${c}, targetingData: ${d}, experimentId: ${e}, variationConfiguration, clientConfiguration, packageInfo, dataManager) -> (result: ${a})`,a}if(!f){const a=(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization));return _logging.KameleoonLogger.debug`RETURN checkTargeting(segment, visitorCode: ${c}, targetingData: ${d}, experimentId: ${e}, variationConfiguration, clientConfiguration, packageInfo, dataManager) -> (result: ${a})`,a}let j={};const k=f.getStoredVariations(c);k.ok&&(j=k.data);const l=i.getTree(b);let m,n,o;l.hasTargetingType(_targeting.TargetingType.SEGMENT)&&(m=i.trees,o=g.segments),l.hasTargetingType(_targeting.TargetingType.TARGET_FEATURE_FLAG)&&(n=g.ruleMap);const p=l.evaluate({variationData:j,sdkInfo:h,segments:o,ruleMap:n,trees:m,targetingData:d,experimentId:e,visitorCode:c});return _logging.KameleoonLogger.debug`RETURN checkTargeting(segment, visitorCode: ${c}, targetingData: ${d}, experimentId: ${e}, variationConfiguration, clientConfiguration, packageInfo, dataManager) -> (result: ${p})`,p}static convertTimeUnit(a,b){const c={[_types2.TimeUnit.Minute]:_types.Milliseconds.Minute,[_types2.TimeUnit.Hour]:_types.Milliseconds.Hour,[_types2.TimeUnit.Day]:_types.Milliseconds.Day,[_types2.TimeUnit.Week]:_types.Milliseconds.Week,[_types2.TimeUnit.Month]:_types.Milliseconds.Month};return a/c[b]}static isCustomData(a){return a.data.type===_kameleoonData.KameleoonData.CustomData}static insertInOrderedListMutably(a){let{list:b,element:c,order:d}=a;if(!b.includes(c)){const a=b.findIndex(a=>d===_types2.Order.Ascending?a>=c:a<=c);-1===a?b.push(c):b.splice(a,0,c)}}static updateCache(a){let{hasJsCssVariables:b,cacheManager:c,visitorCode:d,experimentId:e,variationId:f}=a;const g=c.getAliveItem(d),h=g?_objectSpread({},g):{};h[e]={variationId:f,hasJsCssVariables:b,expirationTime:Date.now()+_constants.CACHE_ITEM_LIFETIME*_types.Milliseconds.Second},c.add({key:d,data:h,lifetime:_constants.CACHE_ITEM_LIFETIME})}static getTrackingCode(a,b){let c="window.kameleoonQueue=window.kameleoonQueue||[];";const d=a.getAliveItem(b);if(!d)return c;const e={};return Object.entries(d).forEach(a=>{let[b,{variationId:d,expirationTime:f,hasJsCssVariables:g}]=a;f>Date.now()&&(c+=`window.kameleoonQueue.push(['Experiments.assignVariation',${b},${d},true]);`,c+=`window.kameleoonQueue.push(['Experiments.trigger',${b},${!g}]);`,e[+b]={variationId:d,expirationTime:f,hasJsCssVariables:g})}),a.add({key:b,data:e,lifetime:_constants.CACHE_ITEM_LIFETIME}),c}static compareSemVer(a){let{version:b,compareVersion:c,operator:d}=a;const e=_validator.Validator.validateVersion(b),f=_validator.Validator.validateVersion(c);if(!e.ok)return(0,_tsRes.Err)(e.error);if(!f.ok)return(0,_tsRes.Err)(f.error);const[g,h,i]=e.data,[j,k,l]=f.data,[m,n,o]=[g===j,h===k,i===l];switch(d){case _targeting.VersionMatchType.EQUAL:return(0,_tsRes.Ok)(m&&n&&o);case _targeting.VersionMatchType.GREATER:return(0,_tsRes.Ok)(g>j||m&&h>k||m&&n&&i>l);case _targeting.VersionMatchType.LOWER:return(0,_tsRes.Ok)(g<j||m&&h<k||m&&n&&i<l);default:_logging.KameleoonLogger.error`Unknown version match type: ${d}`,(0,_kameleoonError.exhaustCheck)(d)}}}exports.Utilities=Utilities;
@@ -2,4 +2,5 @@ import { Result } from 'ts-res';
2
2
  import { KameleoonError } from '../kameleoonError';
3
3
  export declare class Validator {
4
4
  static validateVersion(version: string): Result<[number, number, number], KameleoonError>;
5
+ static validateDomain(domain: string | undefined): Result<string, void>;
5
6
  }
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Validator=void 0;var _tsRes=require("ts-res"),_kameleoonError=require("../kameleoonError");class Validator{static validateVersion(a){const b=a.split(".").map(a=>parseInt(a,10));for(;3>b.length;)b.push(0);return b.some(a=>isNaN(a))?(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.SemanticVersionParse,a)):(0,_tsRes.Ok)(b.slice(0,3))}}exports.Validator=Validator;
2
- //# sourceMappingURL=validator.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Validator=void 0;var _tsRes=require("ts-res"),_kameleoonError=require("../kameleoonError"),_constants=require("./constants"),_logging=require("../logging");class Validator{static validateVersion(a){const b=a.split(".").map(a=>parseInt(a,10));for(;3>b.length;)b.push(0);return b.some(a=>isNaN(a))?(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.SemanticVersionParse,a)):(0,_tsRes.Ok)(b.slice(0,3))}static validateDomain(a){if(!a)return(0,_tsRes.Err)();a=a.toLowerCase();const b=[_constants.HTTP,_constants.HTTPS];for(const c of b)if(a.startsWith(c)){a=a.substring(c.length),_logging.KameleoonLogger.warning`The top-level domain contains ${c}. Domain after protocol trimming: ${a}`;break}return _constants.REGEX_DOMAIN.test(a)?(0,_tsRes.Ok)(a):(_logging.KameleoonLogger.error`The top-level domain ${a} is invalid.`,(0,_tsRes.Err)())}}exports.Validator=Validator;
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"FeatureFlagVariationType",{enumerable:!0,get:function(){return _types.FeatureFlagVariationType}}),Object.defineProperty(exports,"VariationConfiguration",{enumerable:!0,get:function(){return _variationConfiguration.VariationConfiguration}});var _variationConfiguration=require("./variationConfiguration"),_types=require("./types");
2
- //# sourceMappingURL=index.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"FeatureFlagVariationType",{enumerable:!0,get:function(){return _types.FeatureFlagVariationType}}),Object.defineProperty(exports,"VariationConfiguration",{enumerable:!0,get:function(){return _variationConfiguration.VariationConfiguration}});var _variationConfiguration=require("./variationConfiguration"),_types=require("./types");
@@ -17,6 +17,7 @@ export type FeatureFlagVariationType = {
17
17
  isTargetedRule: boolean;
18
18
  };
19
19
  export type GetVariationParametersType = {
20
+ track?: boolean;
20
21
  visitorCode: string;
21
22
  visitorIdentifier: string;
22
23
  featureFlag: FeatureFlagType;
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});
2
- //# sourceMappingURL=types.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});
@@ -38,7 +38,7 @@ export declare class VariationConfiguration implements IVariationConfiguration {
38
38
  getUnsentData(visitorCode: string): BaseVariationDataType[];
39
39
  getPendingData(visitorCode: string): BaseVariationDataType[];
40
40
  getStoredVariations(visitorCode: string): Result<FeatureFlagVariationsType, KameleoonError>;
41
- getVariation({ visitorCode, visitorIdentifier, featureFlag, targetingData, packageInfo, clientConfiguration, dataManager, withAssignment, }: GetVariationParametersType): Result<FeatureFlagVariationType, KameleoonError>;
41
+ getVariation({ visitorCode, visitorIdentifier, featureFlag, targetingData, packageInfo, clientConfiguration, dataManager, track, withAssignment, }: GetVariationParametersType): Result<FeatureFlagVariationType, KameleoonError>;
42
42
  updateStoredVariations(visitorCode: string, variationData: FeatureFlagVariationsType): Result<void, KameleoonError>;
43
43
  private getVariationData;
44
44
  }
@@ -1,2 +1 @@
1
- "use strict";const _excluded=["exposition"];Object.defineProperty(exports,"__esModule",{value:!0}),exports.VariationConfiguration=void 0;var _tsRes=require("ts-res"),_hasher=require("../hasher"),_kameleoonError=require("../kameleoonError"),_utilities=require("../utilities"),_types=require("../clientConfiguration/types"),_types2=require("../types");function _objectWithoutProperties(a,b){if(null==a)return{};var c,d,e=_objectWithoutPropertiesLoose(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],b.includes(c)||{}.propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}function _objectWithoutPropertiesLoose(a,b){if(null==a)return{};var c={};for(var d in a)if({}.hasOwnProperty.call(a,d)){if(b.includes(d))continue;c[d]=a[d]}return c}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))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 VariationConfiguration{constructor(a,b){_defineProperty(this,"storage",void 0),_defineProperty(this,"visitorCodeManager",void 0),this.storage=a,this.visitorCodeManager=b}updateDataStatus(a){let{visitorCode:b,experimentIdList:c,status:d}=a;const e=this.storage.read();if(!e.ok)return e;let f=e.data;f[b]||(f[b]={});for(const e of c)f[b][e]=_objectSpread(_objectSpread({},f[b][e]),{},{status:d});return this.storage.write(f)}getUnsentData(a){return this.getVariationData(a,a=>a===_types2.TrackingStatus.Unsent)}getPendingData(a){return this.getVariationData(a,a=>a===_types2.TrackingStatus.Pending)}getStoredVariations(a){const b=this.storage.read();if(!b.ok)return b;const c=b.data[a];return c?(0,_tsRes.Ok)(c):(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.StorageRead,a))}getVariation(a){let{visitorCode:b,visitorIdentifier:c,featureFlag:d,targetingData:e,packageInfo:f,clientConfiguration:g,dataManager:h,withAssignment:i=!1}=a;const j=this.visitorCodeManager.validateVisitorCode(b);if(!j.ok)return(0,_tsRes.Err)(j.error);const{rules:k,featureKey:l,id:m,defaultVariationKey:n}=d;for(const d of k){const{segment:a,experimentId:j,id:k,exposition:o,respoolTime:p,variationByExposition:q}=d,r=_utilities.Utilities.checkTargeting({segment:a,visitorCode:b,experimentId:j,targetingData:e,packageInfo:f,clientConfiguration:g,dataManager:h,variationConfiguration:this});if(!r.ok)return r;if(!r.data)continue;const s=_hasher.Hasher.getHashDouble({visitorIdentifier:c,respoolTime:p,id:k+""});if(s<=o){let a=0;const e=_hasher.Hasher.getHashDouble({visitorIdentifier:c,respoolTime:p,id:j+""});for(const c of q)if(a+=c.exposition,e<=a){i&&this.updateStoredVariations(b,{[j]:{variationId:c.variationId,isTargetedRule:d.type===_types.RuleType.TARGETED_DELIVERY,status:_types2.TrackingStatus.Unsent}});const{exposition:a}=c,e=_objectWithoutProperties(c,_excluded);return(0,_tsRes.Ok)(_objectSpread(_objectSpread({},e),{},{rule:d,featureFlagId:m,featureKey:l,experimentId:j,isTargetedRule:d.type===_types.RuleType.TARGETED_DELIVERY}))}}if(d.type===_types.RuleType.TARGETED_DELIVERY)return(0,_tsRes.Ok)({featureKey:l,featureFlagId:m,experimentId:null,variationKey:n,variationId:null,rule:null,isTargetedRule:!0})}return(0,_tsRes.Ok)({featureKey:l,featureFlagId:m,experimentId:null,variationKey:n,variationId:null,rule:null,isTargetedRule:!1})}updateStoredVariations(a,b){const c=this.storage.read();if(!c.ok)return c;let d=c.data;return d[a]?d[a]=_objectSpread(_objectSpread({},d[a]),b):d=_objectSpread(_objectSpread({},d),{},{[a]:_objectSpread({},b)}),this.storage.write(d)}getVariationData(a,b){const c=this.getStoredVariations(a);if(!c.ok)return[];const d=[];for(const[e,f]of Object.entries(c.data))b(f.status)&&d.push({experimentId:+e,variationId:f.variationId,isTargetedRule:f.isTargetedRule});return d}}exports.VariationConfiguration=VariationConfiguration;
2
- //# sourceMappingURL=variationConfiguration.js.map
1
+ "use strict";const _excluded=["exposition"];Object.defineProperty(exports,"__esModule",{value:!0}),exports.VariationConfiguration=void 0;var _tsRes=require("ts-res"),_hasher=require("../hasher"),_kameleoonError=require("../kameleoonError"),_utilities=require("../utilities"),_types=require("../clientConfiguration/types"),_types2=require("../types"),_logging=require("../logging");function _objectWithoutProperties(a,b){if(null==a)return{};var c,d,e=_objectWithoutPropertiesLoose(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],b.includes(c)||{}.propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}function _objectWithoutPropertiesLoose(a,b){if(null==a)return{};var c={};for(var d in a)if({}.hasOwnProperty.call(a,d)){if(b.includes(d))continue;c[d]=a[d]}return c}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))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 VariationConfiguration{constructor(a,b){_defineProperty(this,"storage",void 0),_defineProperty(this,"visitorCodeManager",void 0),this.storage=a,this.visitorCodeManager=b}updateDataStatus(a){let{visitorCode:b,experimentIdList:c,status:d}=a;const e=this.storage.read();if(!e.ok)return e;let f=e.data;f[b]||(f[b]={});for(const e of c)f[b][e]=_objectSpread(_objectSpread({},f[b][e]),{},{status:d});return this.storage.write(f)}getUnsentData(a){return this.getVariationData(a,a=>a===_types2.TrackingStatus.Unsent)}getPendingData(a){return this.getVariationData(a,a=>a===_types2.TrackingStatus.Pending)}getStoredVariations(a){const b=this.storage.read();if(!b.ok)return b;const c=b.data[a];return c?(0,_tsRes.Ok)(c):(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.StorageRead,a))}getVariation(a){let{visitorCode:b,visitorIdentifier:c,featureFlag:d,targetingData:e,packageInfo:f,clientConfiguration:g,dataManager:h,track:i=!0,withAssignment:j=!1}=a;_logging.KameleoonLogger.debug`CALL: VariationConfiguration.getVariation(visitorCode: ${b}, visitorIdentifier: ${c}, featureFlag: ${d}, targetingData: ${e}, packageInfo: ${f}, clientConfiguration, dataManager, withAssignment: ${j})`;const k=this.visitorCodeManager.validateVisitorCode(b);if(!k.ok)return(0,_tsRes.Err)(k.error);const{rules:l,featureKey:m,id:n,defaultVariationKey:o}=d;for(const k of l){const{segment:a,experimentId:l,id:p,exposition:q,respoolTime:r,variationByExposition:s}=k,t=_utilities.Utilities.checkTargeting({segment:a,visitorCode:b,experimentId:l,targetingData:e,packageInfo:f,clientConfiguration:g,dataManager:h,variationConfiguration:this});if(!t.ok)return _logging.KameleoonLogger.debug`RETURN: VariationConfiguration.getVariation(visitorCode: ${b}, visitorIdentifier: ${c}, featureFlag: ${d}, targetingData: ${e}, packageInfo: ${f}, clientConfiguration, dataManager, withAssignment: ${j}) -> (targetedVariation: ${t})`,t;if(!t.data)continue;_logging.KameleoonLogger.info`Visitor ${b} has been targeted for ${k}`;const u=_hasher.Hasher.getHashDouble({visitorIdentifier:c,respoolTime:r,id:p+""});if(_logging.KameleoonLogger.debug`Calculated ruleHash: ${u} for visitorCode: ${b}`,u<=q){let a=0;const g=_hasher.Hasher.getHashDouble({visitorIdentifier:c,respoolTime:r,id:l+""});_logging.KameleoonLogger.debug`Calculated variationHash: ${g} for visitorCode: ${b}`;for(const h of s)if(a+=h.exposition,g<=a){j&&this.updateStoredVariations(b,{[l]:{variationId:h.variationId,isTargetedRule:k.type===_types.RuleType.TARGETED_DELIVERY,status:i?_types2.TrackingStatus.Unsent:_types2.TrackingStatus.Sent}});const{exposition:a}=h,g=_objectWithoutProperties(h,_excluded),o=_objectSpread(_objectSpread({},g),{},{rule:k,featureFlagId:n,featureKey:m,experimentId:l,isTargetedRule:k.type===_types.RuleType.TARGETED_DELIVERY});return _logging.KameleoonLogger.debug`RETURN: VariationConfiguration.getVariation(visitorCode: ${b}, visitorIdentifier: ${c}, featureFlag: ${d}, targetingData: ${e}, packageInfo: ${f}, clientConfiguration, dataManager, withAssignment: ${j}) -> (targetedVariation: ${o})`,(0,_tsRes.Ok)(o)}}if(k.type===_types.RuleType.TARGETED_DELIVERY){const a={featureKey:m,featureFlagId:n,experimentId:null,variationKey:o,variationId:null,rule:null,isTargetedRule:!0};return _logging.KameleoonLogger.debug`RETURN: VariationConfiguration.getVariation(visitorCode: ${b}, visitorIdentifier: ${c}, featureFlag: ${d}, targetingData: ${e}, packageInfo: ${f}, clientConfiguration, dataManager, withAssignment: ${j}) -> (targetedVariation: ${a})`,(0,_tsRes.Ok)(a)}}const p={featureKey:m,featureFlagId:n,experimentId:null,variationKey:o,variationId:null,rule:null,isTargetedRule:!1};return _logging.KameleoonLogger.debug`RETURN: VariationConfiguration.getVariation(visitorCode: ${b}, visitorIdentifier: ${c}, featureFlag: ${d}, targetingData: ${e}, packageInfo: ${f}, clientConfiguration, dataManager, withAssignment: ${j}) -> (targetedVariation: ${p})`,(0,_tsRes.Ok)(p)}updateStoredVariations(a,b){const c=this.storage.read();if(!c.ok)return c;let d=c.data;return d[a]?d[a]=_objectSpread(_objectSpread({},d[a]),b):d=_objectSpread(_objectSpread({},d),{},{[a]:_objectSpread({},b)}),this.storage.write(d)}getVariationData(a,b){const c=this.getStoredVariations(a);if(!c.ok)return[];const d=[];for(const[e,f]of Object.entries(c.data))b(f.status)&&d.push({experimentId:+e,variationId:f.variationId,isTargetedRule:f.isTargetedRule});return d}}exports.VariationConfiguration=VariationConfiguration;
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ZERO_MAX_AGE=exports.VISITOR_CODE_MAX_LENGTH=exports.VISITOR_CODE_LENGTH=exports.PATH=exports.DEFAULT_MAX_AGE=void 0;const VISITOR_CODE_LENGTH=exports.VISITOR_CODE_LENGTH=16,VISITOR_CODE_MAX_LENGTH=exports.VISITOR_CODE_MAX_LENGTH=255,DEFAULT_MAX_AGE=exports.DEFAULT_MAX_AGE=31536000,ZERO_MAX_AGE=exports.ZERO_MAX_AGE=0,PATH=exports.PATH="/";
2
- //# sourceMappingURL=constants.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ZERO_MAX_AGE=exports.VISITOR_CODE_MAX_LENGTH=exports.VISITOR_CODE_LENGTH=exports.PATH=exports.DEFAULT_MAX_AGE=void 0;const VISITOR_CODE_LENGTH=exports.VISITOR_CODE_LENGTH=16,VISITOR_CODE_MAX_LENGTH=exports.VISITOR_CODE_MAX_LENGTH=255,DEFAULT_MAX_AGE=exports.DEFAULT_MAX_AGE=31536000,ZERO_MAX_AGE=exports.ZERO_MAX_AGE=0,PATH=exports.PATH="/";
@@ -1,2 +1 @@
1
- "use strict";var _exportNames={VisitorCodeManager:!0};var _types=require("./types");var _constants=require("./constants");var _visitorCodeManager=require("./visitorCodeManager");Object.defineProperty(exports,"__esModule",{value:!0});Object.defineProperty(exports,"VisitorCodeManager",{enumerable:!0,get:function(){return _visitorCodeManager.VisitorCodeManager}});Object.keys(_types).forEach(function(a){"default"===a||"__esModule"===a||Object.prototype.hasOwnProperty.call(_exportNames,a)||a in exports&&exports[a]===_types[a]||Object.defineProperty(exports,a,{enumerable:!0,get:function(){return _types[a]}})});Object.keys(_constants).forEach(function(a){"default"===a||"__esModule"===a||Object.prototype.hasOwnProperty.call(_exportNames,a)||a in exports&&exports[a]===_constants[a]||Object.defineProperty(exports,a,{enumerable:!0,get:function(){return _constants[a]}})});
2
- //# sourceMappingURL=index.js.map
1
+ "use strict";var _exportNames={VisitorCodeManager:!0};var _types=require("./types");var _constants=require("./constants");var _visitorCodeManager=require("./visitorCodeManager");Object.defineProperty(exports,"__esModule",{value:!0});Object.defineProperty(exports,"VisitorCodeManager",{enumerable:!0,get:function(){return _visitorCodeManager.VisitorCodeManager}});Object.keys(_types).forEach(function(a){"default"===a||"__esModule"===a||Object.prototype.hasOwnProperty.call(_exportNames,a)||a in exports&&exports[a]===_types[a]||Object.defineProperty(exports,a,{enumerable:!0,get:function(){return _types[a]}})});Object.keys(_constants).forEach(function(a){"default"===a||"__esModule"===a||Object.prototype.hasOwnProperty.call(_exportNames,a)||a in exports&&exports[a]===_constants[a]||Object.defineProperty(exports,a,{enumerable:!0,get:function(){return _constants[a]}})});
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});
2
- //# sourceMappingURL=types.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});
@@ -1,2 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.VisitorCodeManager=void 0;var _tsRes=require("ts-res"),_storage=require("../storage"),_kameleoonError=require("../kameleoonError"),_constants=require("./constants");function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class VisitorCodeManager{constructor(){_defineProperty(this,"isConsentRequired",!1),_defineProperty(this,"setDataCallback",void 0),_defineProperty(this,"getDataCallback",void 0)}set consentRequired(a){this.isConsentRequired=a}get consentRequired(){return this.isConsentRequired}set getData(a){this.getDataCallback=a}set setData(a){this.setDataCallback=a}get setData(){if(this.setDataCallback)return this.setDataCallback;throw new Error("Missing setDataCallback!")}validateVisitorCode(a){return 0===a.length?(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.VisitorCodeEmpty)):a.length>_constants.VISITOR_CODE_MAX_LENGTH?(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.VisitorCodeMaxLength)):(0,_tsRes.Ok)()}getVisitorCode(a){if(!this.getDataCallback||!this.setDataCallback)throw new Error("Missing getDataCallback or setDataCallback methods in getVisitorCode!");let b;const c=this.getDataCallback(_storage.KameleoonStorageKey.VisitorCode);return c&&(b=c),b||(a?(this.validateVisitorCode(a).throw(),b=a):b=this.generateVisitorCode()),this.isConsentRequired||this.setDataCallback({visitorCode:b,key:_storage.KameleoonStorageKey.VisitorCode,maxAge:_constants.DEFAULT_MAX_AGE,path:_constants.PATH}),b}generateVisitorCode(){const a="abcdefghijklmnopqrstuvwxyz0123456789",b=[];for(let c=0;c<_constants.VISITOR_CODE_LENGTH;c++)b.push(a[Math.floor(Math.random()*a.length)]);return b.join("")}}exports.VisitorCodeManager=VisitorCodeManager;
2
- //# sourceMappingURL=visitorCodeManager.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.VisitorCodeManager=void 0;var _tsRes=require("ts-res"),_storage=require("../storage"),_kameleoonError=require("../kameleoonError"),_constants=require("./constants"),_logging=require("../logging");function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class VisitorCodeManager{constructor(){_defineProperty(this,"isConsentRequired",!1),_defineProperty(this,"setDataCallback",void 0),_defineProperty(this,"getDataCallback",void 0)}set consentRequired(a){this.isConsentRequired=a}get consentRequired(){return this.isConsentRequired}set getData(a){this.getDataCallback=a}set setData(a){this.setDataCallback=a}get setData(){if(this.setDataCallback)return this.setDataCallback;throw new Error("Missing setDataCallback!")}validateVisitorCode(a){return 0===a.length?(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.VisitorCodeEmpty)):a.length>_constants.VISITOR_CODE_MAX_LENGTH?(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.VisitorCodeMaxLength)):(0,_tsRes.Ok)()}getVisitorCode(a){if(_logging.KameleoonLogger.debug`CALL: VisitorCodeManager.getVisitorCode(defaultVisitorCode: ${a})`,!this.getDataCallback||!this.setDataCallback)throw new Error("Missing getDataCallback or setDataCallback methods in getVisitorCode!");let b;const c=this.getDataCallback(_storage.KameleoonStorageKey.VisitorCode);return c&&(b=c),b||(a?(this.validateVisitorCode(a).throw(),b=a,_logging.KameleoonLogger.debug`Used default visitor code: ${b}`):(b=this.generateVisitorCode(),_logging.KameleoonLogger.debug`Generated new visitor code: ${b}`)),this.isConsentRequired||this.setDataCallback({visitorCode:b,key:_storage.KameleoonStorageKey.VisitorCode,maxAge:_constants.DEFAULT_MAX_AGE,path:_constants.PATH}),_logging.KameleoonLogger.debug`RETURN: VisitorCodeManager.getVisitorCode(defaultVisitorCode: ${a}) -> (visitorCode: ${b})`,b}generateVisitorCode(){const a="abcdefghijklmnopqrstuvwxyz0123456789",b=[];for(let c=0;c<_constants.VISITOR_CODE_LENGTH;c++)b.push(a[Math.floor(Math.random()*a.length)]);return b.join("")}}exports.VisitorCodeManager=VisitorCodeManager;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kameleoon/javascript-sdk-core",
3
- "version": "5.0.2",
3
+ "version": "5.1.1",
4
4
  "description": "Kameleoon JS SDK Core",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -11,8 +11,10 @@
11
11
  "clean": "rimraf dist && rimraf tsconfig.tsbuildinfo",
12
12
  "dev": "npm run clean && tsc -w -p tsconfig.watch.json",
13
13
  "build": "npm run clean && npm run build:types && npm run build:js",
14
+ "build:test": "npm run clean && npm run build:js-source-maps",
14
15
  "build:types": "tsc --emitDeclarationOnly && tsc-alias",
15
- "build:js": "babel src --out-dir dist --extensions \".ts,.tsx\" --source-maps true",
16
+ "build:js": "babel src --out-dir dist --extensions \".ts,.tsx\"",
17
+ "build:js-source-maps": "babel src --out-dir dist --extensions \".ts,.tsx\" --source-maps true",
16
18
  "deploy": "/bin/bash ../../scripts/deploy.sh javascript-sdk-core",
17
19
  "deploy-nexus": "/bin/bash ../../scripts/deploy_nexus.sh javascript-sdk-core",
18
20
  "update-changelog": "/bin/bash ../../scripts/update_changelog.sh javascript-sdk-core",
@@ -1 +0,0 @@
1
- {"version":3,"file":"cacheManager.js","names":["_types","require","Object","defineProperty","exports","value","CacheManager","_defineProperty","a","b","c","_toPropertyKey","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","d","call","TypeError","String","Number","constructor","cleanupTimeout","Map","Milliseconds","Second","add","key","data","lifetime","intervalId","activate","expirationTime","cacheItem","Date","now","cacheMap","set","getAliveItem","get","delete","setInterval","item","size","cleanupInterval","clearInterval"],"sources":["../../src/cacheManager/cacheManager.ts"],"sourcesContent":["import { Milliseconds } from 'src/types';\nimport { AddParametersType, CacheItemType } from './types';\n\ninterface ICacheManager<T> {\n /**\n * Add item to cache\n * @param {AddParametersType<T>} parameters - parameters for adding new item cache\n * @returns {void}\n */\n add({ key, data, lifetime }: AddParametersType<T>): void;\n /**\n * Get item that is not expired from cache\n * @param {string} key - key of item\n * @returns {T} an item that is not expired\n */\n getAliveItem(key: string): T | null;\n}\n\n/**\n * @class\n * CacheManager - a class for managing cache\n */\nexport class CacheManager<T> implements ICacheManager<T> {\n private cacheMap = new Map<string, CacheItemType<T>>();\n private intervalId: NodeJS.Timeout | null = null;\n private cleanupTimeout: number;\n\n /**\n * @param {number} cleanupTimeout - timeout for cleaning cache in seconds\n * generic type `T` is a type of data that will be stored in cache\n * @example\n * ```typescript\n * const cacheManager = new CacheManager<number>(60);\n * ```\n */\n constructor(cleanupTimeout: number) {\n this.cleanupTimeout = cleanupTimeout * Milliseconds.Second;\n }\n\n public add({ key, data, lifetime }: AddParametersType<T>): void {\n if (this.intervalId === null) {\n this.activate();\n }\n\n const expirationTime = lifetime * Milliseconds.Second;\n\n const cacheItem: CacheItemType<T> = {\n data,\n expirationTime: Date.now() + expirationTime,\n };\n\n this.cacheMap.set(key, cacheItem);\n }\n\n public getAliveItem(key: string): T | null {\n const cacheItem = this.cacheMap.get(key);\n\n if (cacheItem && cacheItem.expirationTime >= Date.now()) {\n return cacheItem.data;\n }\n\n cacheItem && this.cacheMap.delete(key);\n\n return null;\n }\n\n private activate(): void {\n this.intervalId = setInterval(() => {\n const now = Date.now();\n\n for (const [key, item] of this.cacheMap) {\n if (item.expirationTime < now) {\n this.cacheMap.delete(key);\n }\n }\n\n if (!this.cacheMap.size) {\n this.cleanupInterval();\n }\n }, this.cleanupTimeout);\n }\n\n private cleanupInterval(): void {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n this.intervalId = null;\n }\n }\n}\n"],"mappings":"aAAA,IAAAA,MAAA,CAAAC,OAAA,aAAyCC,MAAA,CAAAC,cAAA,CAAAC,OAAA,eAAAC,KAAA,MAAAD,OAAA,CAAAE,YAAA,iBAAAC,gBAAAC,CAAA,CAAAC,CAAA,CAAAC,CAAA,SAAAD,CAAA,CAAAE,cAAA,CAAAF,CAAA,KAAAD,CAAA,CAAAN,MAAA,CAAAC,cAAA,CAAAK,CAAA,CAAAC,CAAA,EAAAJ,KAAA,CAAAK,CAAA,CAAAE,UAAA,IAAAC,YAAA,IAAAC,QAAA,MAAAN,CAAA,CAAAC,CAAA,EAAAC,CAAA,CAAAF,CAAA,UAAAG,eAAAH,CAAA,MAAAC,CAAA,CAAAM,YAAA,CAAAP,CAAA,kCAAAC,CAAA,CAAAA,CAAA,CAAAA,CAAA,aAAAM,aAAAP,CAAA,CAAAC,CAAA,sBAAAD,CAAA,GAAAA,CAAA,QAAAA,CAAA,KAAAE,CAAA,CAAAF,CAAA,CAAAQ,MAAA,CAAAC,WAAA,cAAAP,CAAA,MAAAQ,CAAA,CAAAR,CAAA,CAAAS,IAAA,CAAAX,CAAA,CAAAC,CAAA,iCAAAS,CAAA,QAAAA,CAAA,WAAAE,SAAA,mEAAAX,CAAA,CAAAY,MAAA,CAAAC,MAAA,EAAAd,CAAA,EAsBlC,KAAM,CAAAF,YAA4C,CAavDiB,WAAWA,CAACC,CAAsB,CAAE,CAAAjB,eAAA,iBAZjB,GAAI,CAAAkB,GAA+B,EAAAlB,eAAA,mBACV,IAAI,EAAAA,eAAA,+BAY9C,IAAI,CAACiB,cAAc,CAAGA,CAAc,CAAGE,mBAAY,CAACC,MACtD,CAEOC,GAAGA,CAAApB,CAAA,CAAsD,IAArD,CAAEqB,GAAG,CAAHA,CAAG,CAAEC,IAAI,CAAJA,CAAI,CAAEC,QAAQ,CAARA,CAA+B,CAAC,CAAAvB,CAAA,CAC9B,IAAI,GAAxB,IAAI,CAACwB,UAAmB,EAC1B,IAAI,CAACC,QAAQ,CAAC,CAAC,MAGX,CAAAC,CAAc,CAAGH,CAAQ,CAAGL,mBAAY,CAACC,MAAM,CAE/CQ,CAA2B,CAAG,CAClCL,IAAI,CAAJA,CAAI,CACJI,cAAc,CAAEE,IAAI,CAACC,GAAG,CAAC,CAAC,CAAGH,CAC/B,CAAC,CAED,IAAI,CAACI,QAAQ,CAACC,GAAG,CAACV,CAAG,CAAEM,CAAS,CAClC,CAEOK,YAAYA,CAACX,CAAW,CAAY,CACzC,KAAM,CAAAM,CAAS,CAAG,IAAI,CAACG,QAAQ,CAACG,GAAG,CAACZ,CAAG,CAAC,CAAC,MAErC,CAAAM,CAAS,EAAIA,CAAS,CAACD,cAAc,EAAIE,IAAI,CAACC,GAAG,CAAC,CAAC,CAC9CF,CAAS,CAACL,IAAI,EAGvBK,CAAS,EAAI,IAAI,CAACG,QAAQ,CAACI,MAAM,CAACb,CAAG,CAAC,CAE/B,IAAI,CACb,CAEQI,QAAQA,CAAA,CAAS,CACvB,IAAI,CAACD,UAAU,CAAGW,WAAW,CAAC,IAAM,CAClC,KAAM,CAAAN,CAAG,CAAGD,IAAI,CAACC,GAAG,CAAC,CAAC,CAEtB,IAAK,KAAM,CAACR,CAAG,CAAEe,CAAI,CAAC,EAAI,KAAI,CAACN,QAAQ,CACjCM,CAAI,CAACV,cAAc,CAAGG,CAAG,EAC3B,IAAI,CAACC,QAAQ,CAACI,MAAM,CAACb,CAAG,CAAC,CAIxB,IAAI,CAACS,QAAQ,CAACO,IAAI,EACrB,IAAI,CAACC,eAAe,CAAC,CAEzB,CAAC,CAAE,IAAI,CAACtB,cAAc,CACxB,CAEQsB,eAAeA,CAAA,CAAS,CAC1B,IAAI,CAACd,UAAU,GACjBe,aAAa,CAAC,IAAI,CAACf,UAAU,CAAC,CAC9B,IAAI,CAACA,UAAU,CAAG,IAAI,CAE1B,CACF,CAAC5B,OAAA,CAAAE,YAAA,CAAAA,YAAA","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/cacheManager/index.ts"],"sourcesContent":["export { CacheManager } from './cacheManager';\nexport { AddParametersType } from './types';\n"],"mappings":"","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../src/cacheManager/types.ts"],"sourcesContent":["/**\n * @param {string} key - key for adding new item cache, key must be unique otherwise the item will be overwritten\n * @param {T} data - data for adding new item cache\n * @param {number} lifetime - lifetime for adding new item cache in seconds\n */\nexport type AddParametersType<T> = {\n key: string;\n data: T;\n lifetime: number;\n};\n\nexport type CacheItemType<T> = {\n data: T;\n expirationTime: number;\n};\n"],"mappings":"","ignoreList":[]}