@kameleoon/javascript-sdk-core 2.10.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. package/dist/cacheManager/cacheManager.js +1 -11
  2. package/dist/cacheManager/cacheManager.js.map +1 -1
  3. package/dist/clientConfiguration/clientConfiguration.d.ts +52 -0
  4. package/dist/clientConfiguration/clientConfiguration.js +2 -0
  5. package/dist/clientConfiguration/clientConfiguration.js.map +1 -0
  6. package/dist/clientConfiguration/constants.d.ts +2 -0
  7. package/dist/clientConfiguration/constants.js +2 -0
  8. package/dist/clientConfiguration/constants.js.map +1 -0
  9. package/dist/clientConfiguration/index.d.ts +2 -0
  10. package/dist/clientConfiguration/index.js +2 -0
  11. package/dist/clientConfiguration/index.js.map +1 -0
  12. package/dist/{campaignConfiguration → clientConfiguration}/types.d.ts +12 -53
  13. package/dist/clientConfiguration/types.js +2 -0
  14. package/dist/clientConfiguration/types.js.map +1 -0
  15. package/dist/clientSettings/clientSettings.js +1 -1
  16. package/dist/clientSettings/clientSettings.js.map +1 -1
  17. package/dist/constants.d.ts +3 -2
  18. package/dist/constants.js +1 -4
  19. package/dist/constants.js.map +1 -1
  20. package/dist/eventSource/externalEventSource.js +1 -1
  21. package/dist/eventSource/externalEventSource.js.map +1 -1
  22. package/dist/hasher/hasher.d.ts +2 -3
  23. package/dist/hasher/hasher.js +1 -6
  24. package/dist/hasher/hasher.js.map +1 -1
  25. package/dist/hasher/types.d.ts +3 -10
  26. package/dist/hasher/types.js.map +1 -1
  27. package/dist/index.d.ts +7 -6
  28. package/dist/index.js +1 -1
  29. package/dist/index.js.map +1 -1
  30. package/dist/kameleoonClient.d.ts +44 -80
  31. package/dist/kameleoonClient.js +1 -18
  32. package/dist/kameleoonClient.js.map +1 -1
  33. package/dist/kameleoonData/applicationVersion.d.ts +26 -0
  34. package/dist/kameleoonData/applicationVersion.js +2 -0
  35. package/dist/kameleoonData/applicationVersion.js.map +1 -0
  36. package/dist/kameleoonData/browser.d.ts +16 -1
  37. package/dist/kameleoonData/browser.js +1 -17
  38. package/dist/kameleoonData/browser.js.map +1 -1
  39. package/dist/kameleoonData/constants.d.ts +4 -0
  40. package/dist/kameleoonData/constants.js +2 -0
  41. package/dist/kameleoonData/constants.js.map +1 -0
  42. package/dist/kameleoonData/conversion.d.ts +14 -1
  43. package/dist/kameleoonData/conversion.js +1 -13
  44. package/dist/kameleoonData/conversion.js.map +1 -1
  45. package/dist/kameleoonData/cookie.d.ts +33 -0
  46. package/dist/kameleoonData/cookie.js +2 -0
  47. package/dist/kameleoonData/cookie.js.map +1 -0
  48. package/dist/kameleoonData/customData.d.ts +14 -1
  49. package/dist/kameleoonData/customData.js +1 -24
  50. package/dist/kameleoonData/customData.js.map +1 -1
  51. package/dist/kameleoonData/dataManager.d.ts +38 -0
  52. package/dist/kameleoonData/dataManager.js +2 -0
  53. package/dist/kameleoonData/dataManager.js.map +1 -0
  54. package/dist/kameleoonData/dataProcessor.d.ts +26 -0
  55. package/dist/kameleoonData/dataProcessor.js +2 -0
  56. package/dist/kameleoonData/dataProcessor.js.map +1 -0
  57. package/dist/kameleoonData/device.d.ts +14 -1
  58. package/dist/kameleoonData/device.js +1 -13
  59. package/dist/kameleoonData/device.js.map +1 -1
  60. package/dist/kameleoonData/geolocation.d.ts +52 -0
  61. package/dist/kameleoonData/geolocation.js +2 -0
  62. package/dist/kameleoonData/geolocation.js.map +1 -0
  63. package/dist/kameleoonData/helpers.d.ts +1 -0
  64. package/dist/kameleoonData/helpers.js +2 -0
  65. package/dist/kameleoonData/helpers.js.map +1 -0
  66. package/dist/kameleoonData/index.d.ts +10 -3
  67. package/dist/kameleoonData/index.js +1 -1
  68. package/dist/kameleoonData/index.js.map +1 -1
  69. package/dist/kameleoonData/operatingSystem.d.ts +34 -0
  70. package/dist/kameleoonData/operatingSystem.js +2 -0
  71. package/dist/kameleoonData/operatingSystem.js.map +1 -0
  72. package/dist/kameleoonData/pageView.d.ts +20 -1
  73. package/dist/kameleoonData/pageView.js +1 -13
  74. package/dist/kameleoonData/pageView.js.map +1 -1
  75. package/dist/kameleoonData/types.d.ts +118 -9
  76. package/dist/kameleoonData/types.js +1 -14
  77. package/dist/kameleoonData/types.js.map +1 -1
  78. package/dist/kameleoonData/userAgent.d.ts +6 -1
  79. package/dist/kameleoonData/userAgent.js +1 -8
  80. package/dist/kameleoonData/userAgent.js.map +1 -1
  81. package/dist/kameleoonData/visitsData.d.ts +34 -0
  82. package/dist/{variationConfiguration/variation.js → kameleoonData/visitsData.js} +2 -7
  83. package/dist/kameleoonData/visitsData.js.map +1 -0
  84. package/dist/kameleoonError/constants.d.ts +5 -4
  85. package/dist/kameleoonError/constants.js +1 -1
  86. package/dist/kameleoonError/constants.js.map +1 -1
  87. package/dist/kameleoonError/kameleoonError.d.ts +5 -4
  88. package/dist/kameleoonError/kameleoonError.js +1 -4
  89. package/dist/kameleoonError/kameleoonError.js.map +1 -1
  90. package/dist/kameleoonError/types.d.ts +8 -3
  91. package/dist/kameleoonError/types.js +1 -1
  92. package/dist/kameleoonError/types.js.map +1 -1
  93. package/dist/kameleoonUtils.js +1 -4
  94. package/dist/kameleoonUtils.js.map +1 -1
  95. package/dist/requester/constants.d.ts +2 -1
  96. package/dist/requester/constants.js +1 -1
  97. package/dist/requester/constants.js.map +1 -1
  98. package/dist/requester/index.d.ts +1 -1
  99. package/dist/requester/index.js +1 -1
  100. package/dist/requester/index.js.map +1 -1
  101. package/dist/requester/requester.d.ts +5 -4
  102. package/dist/requester/requester.js +1 -1
  103. package/dist/requester/requester.js.map +1 -1
  104. package/dist/requester/types.d.ts +73 -8
  105. package/dist/requester/types.js +1 -1
  106. package/dist/requester/types.js.map +1 -1
  107. package/dist/storage/constants.d.ts +1 -0
  108. package/dist/storage/constants.js +1 -4
  109. package/dist/storage/constants.js.map +1 -1
  110. package/dist/storage/index.d.ts +1 -1
  111. package/dist/storage/index.js +1 -1
  112. package/dist/storage/index.js.map +1 -1
  113. package/dist/storage/types.d.ts +5 -8
  114. package/dist/storage/types.js.map +1 -1
  115. package/dist/targeting/conditions/applicationVersion.d.ts +10 -0
  116. package/dist/targeting/conditions/applicationVersion.js +2 -0
  117. package/dist/targeting/conditions/applicationVersion.js.map +1 -0
  118. package/dist/targeting/conditions/{browserCondition.d.ts → browser.d.ts} +1 -1
  119. package/dist/targeting/conditions/browser.js +2 -0
  120. package/dist/targeting/conditions/browser.js.map +1 -0
  121. package/dist/targeting/conditions/conditionFactory.js +1 -1
  122. package/dist/targeting/conditions/conditionFactory.js.map +1 -1
  123. package/dist/targeting/conditions/{conversionCondition.d.ts → conversion.d.ts} +1 -2
  124. package/dist/targeting/conditions/conversion.js +2 -0
  125. package/dist/targeting/conditions/conversion.js.map +1 -0
  126. package/dist/targeting/conditions/cookie.d.ts +15 -0
  127. package/dist/targeting/conditions/cookie.js +2 -0
  128. package/dist/targeting/conditions/cookie.js.map +1 -0
  129. package/dist/targeting/conditions/{customDataCondition.d.ts → customData.d.ts} +1 -1
  130. package/dist/targeting/conditions/customData.js +2 -0
  131. package/dist/targeting/conditions/customData.js.map +1 -0
  132. package/dist/targeting/conditions/{deviceCondition.d.ts → device.d.ts} +1 -1
  133. package/dist/targeting/conditions/{targetExperimentCondition.js → device.js} +2 -2
  134. package/dist/targeting/conditions/device.js.map +1 -0
  135. package/dist/targeting/conditions/{exclusiveExperimentCondition.d.ts → exclusiveCampaign.d.ts} +2 -2
  136. package/dist/targeting/conditions/exclusiveCampaign.js +2 -0
  137. package/dist/targeting/conditions/exclusiveCampaign.js.map +1 -0
  138. package/dist/targeting/conditions/firstVisit.d.ts +12 -0
  139. package/dist/targeting/conditions/firstVisit.js +2 -0
  140. package/dist/targeting/conditions/firstVisit.js.map +1 -0
  141. package/dist/targeting/conditions/geolocation.d.ts +11 -0
  142. package/dist/targeting/conditions/geolocation.js +2 -0
  143. package/dist/targeting/conditions/geolocation.js.map +1 -0
  144. package/dist/targeting/conditions/index.d.ts +22 -10
  145. package/dist/targeting/conditions/index.js +1 -1
  146. package/dist/targeting/conditions/index.js.map +1 -1
  147. package/dist/targeting/conditions/lastVisit.d.ts +12 -0
  148. package/dist/targeting/conditions/lastVisit.js +2 -0
  149. package/dist/targeting/conditions/lastVisit.js.map +1 -0
  150. package/dist/targeting/conditions/newVisitor.d.ts +9 -0
  151. package/dist/targeting/conditions/newVisitor.js +2 -0
  152. package/dist/targeting/conditions/newVisitor.js.map +1 -0
  153. package/dist/targeting/conditions/operatingSystem.d.ts +9 -0
  154. package/dist/targeting/conditions/{deviceCondition.js → operatingSystem.js} +2 -2
  155. package/dist/targeting/conditions/operatingSystem.js.map +1 -0
  156. package/dist/targeting/conditions/{pageTitleCondition.d.ts → pageTitle.d.ts} +1 -1
  157. package/dist/targeting/conditions/pageTitle.js +2 -0
  158. package/dist/targeting/conditions/pageTitle.js.map +1 -0
  159. package/dist/targeting/conditions/{pageUrlCondition.d.ts → pageUrl.d.ts} +1 -1
  160. package/dist/targeting/conditions/pageUrl.js +2 -0
  161. package/dist/targeting/conditions/pageUrl.js.map +1 -0
  162. package/dist/targeting/conditions/previousPage.d.ts +12 -0
  163. package/dist/targeting/conditions/previousPage.js +2 -0
  164. package/dist/targeting/conditions/previousPage.js.map +1 -0
  165. package/dist/targeting/conditions/sameDayVisits.d.ts +11 -0
  166. package/dist/targeting/conditions/sameDayVisits.js +2 -0
  167. package/dist/targeting/conditions/sameDayVisits.js.map +1 -0
  168. package/dist/targeting/conditions/{sdkLanguageCondition.d.ts → sdkLanguage.d.ts} +1 -4
  169. package/dist/targeting/conditions/sdkLanguage.js +2 -0
  170. package/dist/targeting/conditions/sdkLanguage.js.map +1 -0
  171. package/dist/targeting/conditions/segment.d.ts +9 -0
  172. package/dist/targeting/conditions/segment.js +2 -0
  173. package/dist/targeting/conditions/segment.js.map +1 -0
  174. package/dist/targeting/conditions/targetFeatureFlag.d.ts +11 -0
  175. package/dist/targeting/conditions/targetFeatureFlag.js +2 -0
  176. package/dist/targeting/conditions/targetFeatureFlag.js.map +1 -0
  177. package/dist/targeting/conditions/types.d.ts +20 -13
  178. package/dist/targeting/conditions/types.js.map +1 -1
  179. package/dist/targeting/conditions/visitedPages.d.ts +11 -0
  180. package/dist/targeting/conditions/visitedPages.js +2 -0
  181. package/dist/targeting/conditions/visitedPages.js.map +1 -0
  182. package/dist/targeting/conditions/{visitorCodeCondition.d.ts → visitorCode.d.ts} +1 -1
  183. package/dist/targeting/conditions/visitorCode.js +2 -0
  184. package/dist/targeting/conditions/visitorCode.js.map +1 -0
  185. package/dist/targeting/conditions/visits.d.ts +11 -0
  186. package/dist/targeting/conditions/visits.js +2 -0
  187. package/dist/targeting/conditions/visits.js.map +1 -0
  188. package/dist/targeting/index.d.ts +3 -3
  189. package/dist/targeting/index.js +1 -1
  190. package/dist/targeting/index.js.map +1 -1
  191. package/dist/targeting/{targetingNode.d.ts → node.d.ts} +7 -7
  192. package/dist/targeting/node.js +2 -0
  193. package/dist/targeting/node.js.map +1 -0
  194. package/dist/targeting/{targetingTree.d.ts → tree.d.ts} +6 -3
  195. package/dist/targeting/tree.js +2 -0
  196. package/dist/targeting/tree.js.map +1 -0
  197. package/dist/targeting/types.d.ts +30 -8
  198. package/dist/targeting/types.js +1 -1
  199. package/dist/targeting/types.js.map +1 -1
  200. package/dist/types.d.ts +17 -6
  201. package/dist/types.js +1 -41
  202. package/dist/types.js.map +1 -1
  203. package/dist/utilities/index.d.ts +1 -0
  204. package/dist/utilities/index.js +1 -1
  205. package/dist/utilities/index.js.map +1 -1
  206. package/dist/utilities/types.d.ts +61 -6
  207. package/dist/utilities/types.js +1 -1
  208. package/dist/utilities/types.js.map +1 -1
  209. package/dist/utilities/utilities.d.ts +24 -11
  210. package/dist/utilities/utilities.js +1 -1
  211. package/dist/utilities/utilities.js.map +1 -1
  212. package/dist/variationConfiguration/index.d.ts +1 -1
  213. package/dist/variationConfiguration/index.js +1 -1
  214. package/dist/variationConfiguration/index.js.map +1 -1
  215. package/dist/variationConfiguration/types.d.ts +5 -12
  216. package/dist/variationConfiguration/types.js.map +1 -1
  217. package/dist/variationConfiguration/variationConfiguration.d.ts +13 -21
  218. package/dist/variationConfiguration/variationConfiguration.js +1 -65
  219. package/dist/variationConfiguration/variationConfiguration.js.map +1 -1
  220. package/package.json +1 -1
  221. package/dist/campaignConfiguration/campaignConfiguration.d.ts +0 -71
  222. package/dist/campaignConfiguration/campaignConfiguration.js +0 -24
  223. package/dist/campaignConfiguration/campaignConfiguration.js.map +0 -1
  224. package/dist/campaignConfiguration/constants.d.ts +0 -6
  225. package/dist/campaignConfiguration/constants.js +0 -4
  226. package/dist/campaignConfiguration/constants.js.map +0 -1
  227. package/dist/campaignConfiguration/index.d.ts +0 -3
  228. package/dist/campaignConfiguration/index.js +0 -2
  229. package/dist/campaignConfiguration/index.js.map +0 -1
  230. package/dist/campaignConfiguration/types.js +0 -2
  231. package/dist/campaignConfiguration/types.js.map +0 -1
  232. package/dist/targeting/conditions/browserCondition.js +0 -2
  233. package/dist/targeting/conditions/browserCondition.js.map +0 -1
  234. package/dist/targeting/conditions/conversionCondition.js +0 -4
  235. package/dist/targeting/conditions/conversionCondition.js.map +0 -1
  236. package/dist/targeting/conditions/customDataCondition.js +0 -8
  237. package/dist/targeting/conditions/customDataCondition.js.map +0 -1
  238. package/dist/targeting/conditions/deviceCondition.js.map +0 -1
  239. package/dist/targeting/conditions/exclusiveExperimentCondition.js +0 -2
  240. package/dist/targeting/conditions/exclusiveExperimentCondition.js.map +0 -1
  241. package/dist/targeting/conditions/pageTitleCondition.js +0 -2
  242. package/dist/targeting/conditions/pageTitleCondition.js.map +0 -1
  243. package/dist/targeting/conditions/pageUrlCondition.js +0 -2
  244. package/dist/targeting/conditions/pageUrlCondition.js.map +0 -1
  245. package/dist/targeting/conditions/sdkLanguageCondition.js +0 -2
  246. package/dist/targeting/conditions/sdkLanguageCondition.js.map +0 -1
  247. package/dist/targeting/conditions/targetExperimentCondition.d.ts +0 -12
  248. package/dist/targeting/conditions/targetExperimentCondition.js.map +0 -1
  249. package/dist/targeting/conditions/visitorCodeCondition.js +0 -2
  250. package/dist/targeting/conditions/visitorCodeCondition.js.map +0 -1
  251. package/dist/targeting/targetingNode.js +0 -2
  252. package/dist/targeting/targetingNode.js.map +0 -1
  253. package/dist/targeting/targetingTree.js +0 -35
  254. package/dist/targeting/targetingTree.js.map +0 -1
  255. package/dist/variationConfiguration/variation.d.ts +0 -13
  256. package/dist/variationConfiguration/variation.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FirstVisit=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_utilities=require("../../utilities"),_types=require("../types");function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,_toPropertyKey(c.key),c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),Object.defineProperty(a,"prototype",{writable:!1}),a}function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"===_typeof(b)?b:b+""}function _toPrimitive(a,b){if("object"!==_typeof(a)||null===a)return a;var c=a[Symbol.toPrimitive];if(c!==void 0){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)}var FirstVisit=function(){function a(b){var c=b.matchType,d=b.count,e=b.unitOfTime;_classCallCheck(this,a),_defineProperty(this,"matchType",void 0),_defineProperty(this,"conditionValue",void 0),_defineProperty(this,"timeUnit",void 0),this.matchType=c,this.conditionValue=d,this.timeUnit=e}return _createClass(a,[{key:"evaluate",value:function evaluate(a){var b=a.targetingData,c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.VisitsData];if(!c)return(0,_tsRes.Ok)(!1);var d=c.currentVisit,e=c.previousVisits,f=e.length?e[0]:d;return"number"==typeof f?(0,_tsRes.Ok)(this.checkCondition(f)):(0,_tsRes.Ok)(!1)}},{key:"checkCondition",value:function checkCondition(a){if(!this.matchType||"number"!=typeof this.conditionValue||!this.timeUnit)return!1;var b=Date.now()-a,c=_utilities.Utilities.convertTimeUnit(b,this.timeUnit);switch(this.matchType){case _types.MatchType.GREATER:return c>this.conditionValue;case _types.MatchType.LOWER:return c<this.conditionValue;default:return!1;}}}]),a}();exports.FirstVisit=FirstVisit;
2
+ //# sourceMappingURL=firstVisit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firstVisit.js","names":["FirstVisit","a","b","matchType","count","unitOfTime","_classCallCheck","_defineProperty","conditionValue","timeUnit","_createClass","key","value","evaluate","targetingData","visitsData","KameleoonData","VisitsData","Ok","currentVisit","previousVisits","firstVisitTimestamp","length","checkCondition","elapsedTimeMilliseconds","Date","now","elapsedTimeUnit","Utilities","convertTimeUnit","MatchType","GREATER","LOWER","exports"],"sources":["../../../src/targeting/conditions/firstVisit.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { Utilities, TimeUnit } from 'src/utilities';\nimport { EvaluationDataType, MatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class FirstVisit implements ICondition {\n private matchType?: MatchType | null;\n private conditionValue?: number | null;\n private timeUnit?: TimeUnit | null;\n\n constructor({ matchType, count, unitOfTime }: ConditionDataType) {\n this.matchType = matchType;\n this.conditionValue = count;\n this.timeUnit = unitOfTime;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const visitsData = targetingData?.[KameleoonData.VisitsData];\n\n if (!visitsData) {\n return Ok(false);\n }\n\n const { currentVisit, previousVisits } = visitsData;\n\n const firstVisitTimestamp = previousVisits.length\n ? previousVisits[0]\n : currentVisit;\n\n if (typeof firstVisitTimestamp !== 'number') {\n return Ok(false);\n }\n\n return Ok(this.checkCondition(firstVisitTimestamp));\n }\n\n private checkCondition(firstVisitTimestamp: number): boolean {\n if (\n !this.matchType ||\n typeof this.conditionValue !== 'number' ||\n !this.timeUnit\n ) {\n return false;\n }\n\n const elapsedTimeMilliseconds = Date.now() - firstVisitTimestamp;\n const elapsedTimeUnit = Utilities.convertTimeUnit(\n elapsedTimeMilliseconds,\n this.timeUnit,\n );\n\n switch (this.matchType) {\n case MatchType.GREATER:\n return elapsedTimeUnit > this.conditionValue;\n case MatchType.LOWER:\n return elapsedTimeUnit < this.conditionValue;\n default:\n return false;\n }\n }\n}\n"],"mappings":"s9CAOa,CAAAA,UAAU,YAKrB,SAAAC,EAAAC,CAAA,CAAiE,IAAnD,CAAAC,CAAS,CAAAD,CAAA,CAATC,SAAS,CAAEC,CAAK,CAAAF,CAAA,CAALE,KAAK,CAAEC,CAAU,CAAAH,CAAA,CAAVG,UAAU,CAAAC,eAAA,MAAAL,CAAA,EAAAM,eAAA,0BAAAA,eAAA,+BAAAA,eAAA,yBACxC,IAAI,CAACJ,SAAS,CAAGA,CAAS,CAC1B,IAAI,CAACK,cAAc,CAAGJ,CAAK,CAC3B,IAAI,CAACK,QAAQ,CAAGJ,CAClB,CAAC,OAAAK,YAAA,CAAAT,CAAA,GAAAU,GAAA,YAAAC,KAAA,CAED,SAAAC,SAAAZ,CAAA,CAEwD,IADtD,CAAAa,CAAa,CAAAb,CAAA,CAAba,aAAa,CAEPC,CAAU,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACC,UAAU,CAAC,CAE5D,GAAI,CAACF,CAAU,CACb,MAAO,GAAAG,SAAE,KAAO,CACjB,GAEO,CAAAC,CAAY,CAAqBJ,CAAU,CAA3CI,YAAY,CAAEC,CAAc,CAAKL,CAAU,CAA7BK,cAAc,CAE9BC,CAAmB,CAAGD,CAAc,CAACE,MAAM,CAC7CF,CAAc,CAAC,CAAC,CAAC,CACjBD,CAAY,OAEmB,QAAQ,EAAvC,MAAO,CAAAE,CAAgC,CAIpC,GAAAH,SAAE,EAAC,IAAI,CAACK,cAAc,CAACF,CAAmB,CAAC,CAAC,CAH1C,GAAAH,SAAE,KAIb,CAAC,GAAAP,GAAA,kBAAAC,KAAA,CAED,SAAAW,eAAuBF,CAA2B,CAAW,CAC3D,GACE,CAAC,IAAI,CAAClB,SAAS,EACgB,QAAQ,EAAvC,MAAO,KAAI,CAACK,cAA2B,EACvC,CAAC,IAAI,CAACC,QAAQ,CAEd,SACD,GAEK,CAAAe,CAAuB,CAAGC,IAAI,CAACC,GAAG,EAAE,CAAGL,CAAmB,CAC1DM,CAAe,CAAGC,oBAAS,CAACC,eAAe,CAC/CL,CAAuB,CACvB,IAAI,CAACf,QAAQ,CACd,CAED,OAAQ,IAAI,CAACN,SAAS,EACpB,IAAK,CAAA2B,gBAAS,CAACC,OAAO,CACpB,MAAO,CAAAJ,CAAe,CAAG,IAAI,CAACnB,cAAc,CAC9C,IAAK,CAAAsB,gBAAS,CAACE,KAAK,CAClB,MAAO,CAAAL,CAAe,CAAG,IAAI,CAACnB,cAAc,CAC9C,QACE,SAAa,CAEnB,CAAC,IAAAP,CAAA,IAAAgC,OAAA,CAAAjC,UAAA,CAAAA,UAAA"}
@@ -0,0 +1,11 @@
1
+ import { Result } from 'ts-res';
2
+ import { KameleoonError } from '../../kameleoonError';
3
+ import { EvaluationDataType } from '../../targeting/types';
4
+ import { ConditionDataType, ICondition } from './types';
5
+ export declare class GeolocationCondition implements ICondition {
6
+ private country?;
7
+ private region?;
8
+ private city?;
9
+ constructor({ country, region, city }: ConditionDataType);
10
+ evaluate({ targetingData, }: EvaluationDataType): Result<boolean, KameleoonError>;
11
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.GeolocationCondition=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData");function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,_toPropertyKey(c.key),c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),Object.defineProperty(a,"prototype",{writable:!1}),a}function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"===_typeof(b)?b:b+""}function _toPrimitive(a,b){if("object"!==_typeof(a)||null===a)return a;var c=a[Symbol.toPrimitive];if(c!==void 0){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)}var GeolocationCondition=function(){function a(b){var c=b.country,d=b.region,e=b.city;_classCallCheck(this,a),_defineProperty(this,"country",void 0),_defineProperty(this,"region",void 0),_defineProperty(this,"city",void 0),this.country=c,this.region=d,this.city=e}return _createClass(a,[{key:"evaluate",value:function evaluate(a){var b=a.targetingData,c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.GeolocationData];if(c){var d=c.country,e=c.region,f=c.city,g=[this.country,this.region,this.city],h=g[0],i=g[1],j=g[2];if(!h||!d)return(0,_tsRes.Ok)(!1);return(0,_tsRes.Ok)(d===h&&(!i||e===i)&&(!j||f===j))}return(0,_tsRes.Ok)(!1)}}]),a}();exports.GeolocationCondition=GeolocationCondition;
2
+ //# sourceMappingURL=geolocation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geolocation.js","names":["GeolocationCondition","a","b","country","region","city","_classCallCheck","_defineProperty","_createClass","key","value","evaluate","targetingData","geolocationData","KameleoonData","GeolocationData","dataCountry","dataRegion","dataCity","g","conditionCountry","conditionRegion","conditionCity","Ok","exports"],"sources":["../../../src/targeting/conditions/geolocation.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { EvaluationDataType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\n// --- Note ---\n// `GeolocationCondition` uses `Condition` in the naming to avoid confusion with\n// native `Geolocation` API\nexport class GeolocationCondition implements ICondition {\n private country?: string | null;\n private region?: string | null;\n private city?: string | null;\n\n constructor({ country, region, city }: ConditionDataType) {\n this.country = country;\n this.region = region;\n this.city = city;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const geolocationData = targetingData?.[KameleoonData.GeolocationData];\n\n if (geolocationData) {\n const {\n country: dataCountry,\n region: dataRegion,\n city: dataCity,\n } = geolocationData;\n const [conditionCountry, conditionRegion, conditionCity] = [\n this.country,\n this.region,\n this.city,\n ];\n\n if (!conditionCountry || !dataCountry) {\n return Ok(false);\n }\n\n const result =\n dataCountry === conditionCountry &&\n (!conditionRegion || dataRegion === conditionRegion) &&\n (!conditionCity || dataCity === conditionCity);\n\n return Ok(result);\n }\n\n return Ok(false);\n }\n}\n"],"mappings":"+5CASa,CAAAA,oBAAoB,YAK/B,SAAAC,EAAAC,CAAA,CAA0D,IAA5C,CAAAC,CAAO,CAAAD,CAAA,CAAPC,OAAO,CAAEC,CAAM,CAAAF,CAAA,CAANE,MAAM,CAAEC,CAAI,CAAAH,CAAA,CAAJG,IAAI,CAAAC,eAAA,MAAAL,CAAA,EAAAM,eAAA,wBAAAA,eAAA,uBAAAA,eAAA,qBACjC,IAAI,CAACJ,OAAO,CAAGA,CAAO,CACtB,IAAI,CAACC,MAAM,CAAGA,CAAM,CACpB,IAAI,CAACC,IAAI,CAAGA,CACd,CAAC,OAAAG,YAAA,CAAAP,CAAA,GAAAQ,GAAA,YAAAC,KAAA,CAED,SAAAC,SAAAV,CAAA,CAEwD,IADtD,CAAAW,CAAa,CAAAX,CAAA,CAAbW,aAAa,CAEPC,CAAe,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACC,eAAe,CAAC,CAEtE,GAAIF,CAAe,CAAE,IAER,CAAAG,CAAW,CAGlBH,CAAe,CAHjBV,OAAO,CACCc,CAAU,CAEhBJ,CAAe,CAFjBT,MAAM,CACAc,CAAQ,CACZL,CAAe,CADjBR,IAAI,CAAAc,CAAA,CAEqD,CACzD,IAAI,CAAChB,OAAO,CACZ,IAAI,CAACC,MAAM,CACX,IAAI,CAACC,IAAI,CACV,CAJMe,CAAgB,CAAAD,CAAA,IAAEE,CAAe,CAAAF,CAAA,IAAEG,CAAa,CAAAH,CAAA,IAMvD,GAAI,CAACC,CAAgB,EAAI,CAACJ,CAAW,CACnC,MAAO,GAAAO,SAAE,KAAO,CAQlB,MAAO,GAAAA,SAAE,EAJPP,CAAW,GAAKI,CAAgB,GAC/B,CAACC,CAAe,EAAIJ,CAAU,GAAKI,CAAe,CAAC,GACnD,CAACC,CAAa,EAAIJ,CAAQ,GAAKI,CAAa,CAAC,CAGlD,CAEA,MAAO,GAAAC,SAAE,KACX,CAAC,IAAAtB,CAAA,IAAAuB,OAAA,CAAAxB,oBAAA,CAAAA,oBAAA"}
@@ -1,12 +1,24 @@
1
- export { DeviceCondition } from './deviceCondition';
1
+ export { Device } from './device';
2
2
  export { ConditionFactory } from './conditionFactory';
3
3
  export { ConditionDataType, ConditionType } from './types';
4
- export { CustomDataCondition } from './customDataCondition';
5
- export { TargetExperimentCondition } from './targetExperimentCondition';
6
- export { ExclusiveExperimentCondition } from './exclusiveExperimentCondition';
7
- export { BrowserCondition } from './browserCondition';
8
- export { PageUrlCondition } from './pageUrlCondition';
9
- export { PageTitleCondition } from './pageTitleCondition';
10
- export { ConversionCondition } from './conversionCondition';
11
- export { VisitorCodeCondition } from './visitorCodeCondition';
12
- export { SdkLanguageCondition } from './sdkLanguageCondition';
4
+ export { CustomData } from './customData';
5
+ export { ExclusiveCampaign } from './exclusiveCampaign';
6
+ export { Browser } from './browser';
7
+ export { PageUrl } from './pageUrl';
8
+ export { PageTitle } from './pageTitle';
9
+ export { Conversion } from './conversion';
10
+ export { VisitorCode } from './visitorCode';
11
+ export { SdkLanguage } from './sdkLanguage';
12
+ export { TargetFeatureFlag } from './targetFeatureFlag';
13
+ export { Cookie } from './cookie';
14
+ export { OperatingSystem } from './operatingSystem';
15
+ export { GeolocationCondition } from './geolocation';
16
+ export { Segment } from './segment';
17
+ export { PreviousPage } from './previousPage';
18
+ export { VisitedPages } from './visitedPages';
19
+ export { FirstVisit } from './firstVisit';
20
+ export { LastVisit } from './lastVisit';
21
+ export { Visits } from './visits';
22
+ export { SameDayVisits } from './sameDayVisits';
23
+ export { NewVisitor } from './newVisitor';
24
+ export { ApplicationVersion } from './applicationVersion';
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"BrowserCondition",{enumerable:!0,get:function get(){return _browserCondition.BrowserCondition}}),Object.defineProperty(exports,"ConditionDataType",{enumerable:!0,get:function get(){return _types.ConditionDataType}}),Object.defineProperty(exports,"ConditionFactory",{enumerable:!0,get:function get(){return _conditionFactory.ConditionFactory}}),Object.defineProperty(exports,"ConditionType",{enumerable:!0,get:function get(){return _types.ConditionType}}),Object.defineProperty(exports,"ConversionCondition",{enumerable:!0,get:function get(){return _conversionCondition.ConversionCondition}}),Object.defineProperty(exports,"CustomDataCondition",{enumerable:!0,get:function get(){return _customDataCondition.CustomDataCondition}}),Object.defineProperty(exports,"DeviceCondition",{enumerable:!0,get:function get(){return _deviceCondition.DeviceCondition}}),Object.defineProperty(exports,"ExclusiveExperimentCondition",{enumerable:!0,get:function get(){return _exclusiveExperimentCondition.ExclusiveExperimentCondition}}),Object.defineProperty(exports,"PageTitleCondition",{enumerable:!0,get:function get(){return _pageTitleCondition.PageTitleCondition}}),Object.defineProperty(exports,"PageUrlCondition",{enumerable:!0,get:function get(){return _pageUrlCondition.PageUrlCondition}}),Object.defineProperty(exports,"SdkLanguageCondition",{enumerable:!0,get:function get(){return _sdkLanguageCondition.SdkLanguageCondition}}),Object.defineProperty(exports,"TargetExperimentCondition",{enumerable:!0,get:function get(){return _targetExperimentCondition.TargetExperimentCondition}}),Object.defineProperty(exports,"VisitorCodeCondition",{enumerable:!0,get:function get(){return _visitorCodeCondition.VisitorCodeCondition}});var _deviceCondition=require("./deviceCondition"),_conditionFactory=require("./conditionFactory"),_types=require("./types"),_customDataCondition=require("./customDataCondition"),_targetExperimentCondition=require("./targetExperimentCondition"),_exclusiveExperimentCondition=require("./exclusiveExperimentCondition"),_browserCondition=require("./browserCondition"),_pageUrlCondition=require("./pageUrlCondition"),_pageTitleCondition=require("./pageTitleCondition"),_conversionCondition=require("./conversionCondition"),_visitorCodeCondition=require("./visitorCodeCondition"),_sdkLanguageCondition=require("./sdkLanguageCondition");
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ApplicationVersion",{enumerable:!0,get:function get(){return _applicationVersion.ApplicationVersion}}),Object.defineProperty(exports,"Browser",{enumerable:!0,get:function get(){return _browser.Browser}}),Object.defineProperty(exports,"ConditionDataType",{enumerable:!0,get:function get(){return _types.ConditionDataType}}),Object.defineProperty(exports,"ConditionFactory",{enumerable:!0,get:function get(){return _conditionFactory.ConditionFactory}}),Object.defineProperty(exports,"ConditionType",{enumerable:!0,get:function get(){return _types.ConditionType}}),Object.defineProperty(exports,"Conversion",{enumerable:!0,get:function get(){return _conversion.Conversion}}),Object.defineProperty(exports,"Cookie",{enumerable:!0,get:function get(){return _cookie.Cookie}}),Object.defineProperty(exports,"CustomData",{enumerable:!0,get:function get(){return _customData.CustomData}}),Object.defineProperty(exports,"Device",{enumerable:!0,get:function get(){return _device.Device}}),Object.defineProperty(exports,"ExclusiveCampaign",{enumerable:!0,get:function get(){return _exclusiveCampaign.ExclusiveCampaign}}),Object.defineProperty(exports,"FirstVisit",{enumerable:!0,get:function get(){return _firstVisit.FirstVisit}}),Object.defineProperty(exports,"GeolocationCondition",{enumerable:!0,get:function get(){return _geolocation.GeolocationCondition}}),Object.defineProperty(exports,"LastVisit",{enumerable:!0,get:function get(){return _lastVisit.LastVisit}}),Object.defineProperty(exports,"NewVisitor",{enumerable:!0,get:function get(){return _newVisitor.NewVisitor}}),Object.defineProperty(exports,"OperatingSystem",{enumerable:!0,get:function get(){return _operatingSystem.OperatingSystem}}),Object.defineProperty(exports,"PageTitle",{enumerable:!0,get:function get(){return _pageTitle.PageTitle}}),Object.defineProperty(exports,"PageUrl",{enumerable:!0,get:function get(){return _pageUrl.PageUrl}}),Object.defineProperty(exports,"PreviousPage",{enumerable:!0,get:function get(){return _previousPage.PreviousPage}}),Object.defineProperty(exports,"SameDayVisits",{enumerable:!0,get:function get(){return _sameDayVisits.SameDayVisits}}),Object.defineProperty(exports,"SdkLanguage",{enumerable:!0,get:function get(){return _sdkLanguage.SdkLanguage}}),Object.defineProperty(exports,"Segment",{enumerable:!0,get:function get(){return _segment.Segment}}),Object.defineProperty(exports,"TargetFeatureFlag",{enumerable:!0,get:function get(){return _targetFeatureFlag.TargetFeatureFlag}}),Object.defineProperty(exports,"VisitedPages",{enumerable:!0,get:function get(){return _visitedPages.VisitedPages}}),Object.defineProperty(exports,"VisitorCode",{enumerable:!0,get:function get(){return _visitorCode.VisitorCode}}),Object.defineProperty(exports,"Visits",{enumerable:!0,get:function get(){return _visits.Visits}});var _device=require("./device"),_conditionFactory=require("./conditionFactory"),_types=require("./types"),_customData=require("./customData"),_exclusiveCampaign=require("./exclusiveCampaign"),_browser=require("./browser"),_pageUrl=require("./pageUrl"),_pageTitle=require("./pageTitle"),_conversion=require("./conversion"),_visitorCode=require("./visitorCode"),_sdkLanguage=require("./sdkLanguage"),_targetFeatureFlag=require("./targetFeatureFlag"),_cookie=require("./cookie"),_operatingSystem=require("./operatingSystem"),_geolocation=require("./geolocation"),_segment=require("./segment"),_previousPage=require("./previousPage"),_visitedPages=require("./visitedPages"),_firstVisit=require("./firstVisit"),_lastVisit=require("./lastVisit"),_visits=require("./visits"),_sameDayVisits=require("./sameDayVisits"),_newVisitor=require("./newVisitor"),_applicationVersion=require("./applicationVersion");
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/targeting/conditions/index.ts"],"sourcesContent":["export { DeviceCondition } from './deviceCondition';\nexport { ConditionFactory } from './conditionFactory';\nexport { ConditionDataType, ConditionType } from './types';\nexport { CustomDataCondition } from './customDataCondition';\nexport { TargetExperimentCondition } from './targetExperimentCondition';\nexport { ExclusiveExperimentCondition } from './exclusiveExperimentCondition';\nexport { BrowserCondition } from './browserCondition';\nexport { PageUrlCondition } from './pageUrlCondition';\nexport { PageTitleCondition } from './pageTitleCondition';\nexport { ConversionCondition } from './conversionCondition';\nexport { VisitorCodeCondition } from './visitorCodeCondition';\nexport { SdkLanguageCondition } from './sdkLanguageCondition';\n"],"mappings":""}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/targeting/conditions/index.ts"],"sourcesContent":["export { Device } from './device';\nexport { ConditionFactory } from './conditionFactory';\nexport { ConditionDataType, ConditionType } from './types';\nexport { CustomData } from './customData';\nexport { ExclusiveCampaign } from './exclusiveCampaign';\nexport { Browser } from './browser';\nexport { PageUrl } from './pageUrl';\nexport { PageTitle } from './pageTitle';\nexport { Conversion } from './conversion';\nexport { VisitorCode } from './visitorCode';\nexport { SdkLanguage } from './sdkLanguage';\nexport { TargetFeatureFlag } from './targetFeatureFlag';\nexport { Cookie } from './cookie';\nexport { OperatingSystem } from './operatingSystem';\nexport { GeolocationCondition } from './geolocation';\nexport { Segment } from './segment';\nexport { PreviousPage } from './previousPage';\nexport { VisitedPages } from './visitedPages';\nexport { FirstVisit } from './firstVisit';\nexport { LastVisit } from './lastVisit';\nexport { Visits } from './visits';\nexport { SameDayVisits } from './sameDayVisits';\nexport { NewVisitor } from './newVisitor';\nexport { ApplicationVersion } from './applicationVersion';\n"],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import { Result } from 'ts-res';
2
+ import { KameleoonError } from '../../kameleoonError';
3
+ import { EvaluationDataType } from '../../targeting/types';
4
+ import { ConditionDataType, ICondition } from './types';
5
+ export declare class LastVisit implements ICondition {
6
+ private matchType?;
7
+ private conditionValue?;
8
+ private timeUnit?;
9
+ constructor({ matchType, count, unitOfTime }: ConditionDataType);
10
+ evaluate({ targetingData, }: EvaluationDataType): Result<boolean, KameleoonError>;
11
+ private checkCondition;
12
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.LastVisit=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_utilities=require("../../utilities"),_types=require("../types");function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,_toPropertyKey(c.key),c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),Object.defineProperty(a,"prototype",{writable:!1}),a}function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"===_typeof(b)?b:b+""}function _toPrimitive(a,b){if("object"!==_typeof(a)||null===a)return a;var c=a[Symbol.toPrimitive];if(c!==void 0){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)}var LastVisit=function(){function a(b){var c=b.matchType,d=b.count,e=b.unitOfTime;_classCallCheck(this,a),_defineProperty(this,"matchType",void 0),_defineProperty(this,"conditionValue",void 0),_defineProperty(this,"timeUnit",void 0),this.matchType=c,this.conditionValue=d,this.timeUnit=e}return _createClass(a,[{key:"evaluate",value:function evaluate(a){var b=a.targetingData,c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.VisitsData];if(!c)return(0,_tsRes.Ok)(!1);var d=c.currentVisit,e=c.previousVisits,f=d?d:e[e.length-1];return"number"==typeof f?(0,_tsRes.Ok)(this.checkCondition(f)):(0,_tsRes.Ok)(!1)}},{key:"checkCondition",value:function checkCondition(a){if(!this.matchType||"number"!=typeof this.conditionValue||!this.timeUnit)return!1;var b=Date.now()-a,c=_utilities.Utilities.convertTimeUnit(b,this.timeUnit);switch(this.matchType){case _types.MatchType.GREATER:return c>this.conditionValue;case _types.MatchType.LOWER:return c<this.conditionValue;default:return!1;}}}]),a}();exports.LastVisit=LastVisit;
2
+ //# sourceMappingURL=lastVisit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lastVisit.js","names":["LastVisit","a","b","matchType","count","unitOfTime","_classCallCheck","_defineProperty","conditionValue","timeUnit","_createClass","key","value","evaluate","targetingData","visitsData","KameleoonData","VisitsData","Ok","currentVisit","previousVisits","lastVisitTimestamp","length","checkCondition","elapsedTimeMilliseconds","Date","now","elapsedTimeUnit","Utilities","convertTimeUnit","MatchType","GREATER","LOWER","exports"],"sources":["../../../src/targeting/conditions/lastVisit.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { Utilities, TimeUnit } from 'src/utilities';\nimport { EvaluationDataType, MatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class LastVisit implements ICondition {\n private matchType?: MatchType | null;\n private conditionValue?: number | null;\n private timeUnit?: TimeUnit | null;\n\n constructor({ matchType, count, unitOfTime }: ConditionDataType) {\n this.matchType = matchType;\n this.conditionValue = count;\n this.timeUnit = unitOfTime;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const visitsData = targetingData?.[KameleoonData.VisitsData];\n\n if (!visitsData) {\n return Ok(false);\n }\n\n const { currentVisit, previousVisits } = visitsData;\n\n const lastVisitTimestamp = currentVisit\n ? currentVisit\n : previousVisits[previousVisits.length - 1];\n\n if (typeof lastVisitTimestamp !== 'number') {\n return Ok(false);\n }\n\n return Ok(this.checkCondition(lastVisitTimestamp));\n }\n\n private checkCondition(lastVisitTimestamp: number): boolean {\n if (\n !this.matchType ||\n typeof this.conditionValue !== 'number' ||\n !this.timeUnit\n ) {\n return false;\n }\n\n const elapsedTimeMilliseconds = Date.now() - lastVisitTimestamp;\n const elapsedTimeUnit = Utilities.convertTimeUnit(\n elapsedTimeMilliseconds,\n this.timeUnit,\n );\n\n switch (this.matchType) {\n case MatchType.GREATER:\n return elapsedTimeUnit > this.conditionValue;\n case MatchType.LOWER:\n return elapsedTimeUnit < this.conditionValue;\n default:\n return false;\n }\n }\n}\n"],"mappings":"q9CAOa,CAAAA,SAAS,YAKpB,SAAAC,EAAAC,CAAA,CAAiE,IAAnD,CAAAC,CAAS,CAAAD,CAAA,CAATC,SAAS,CAAEC,CAAK,CAAAF,CAAA,CAALE,KAAK,CAAEC,CAAU,CAAAH,CAAA,CAAVG,UAAU,CAAAC,eAAA,MAAAL,CAAA,EAAAM,eAAA,0BAAAA,eAAA,+BAAAA,eAAA,yBACxC,IAAI,CAACJ,SAAS,CAAGA,CAAS,CAC1B,IAAI,CAACK,cAAc,CAAGJ,CAAK,CAC3B,IAAI,CAACK,QAAQ,CAAGJ,CAClB,CAAC,OAAAK,YAAA,CAAAT,CAAA,GAAAU,GAAA,YAAAC,KAAA,CAED,SAAAC,SAAAZ,CAAA,CAEwD,IADtD,CAAAa,CAAa,CAAAb,CAAA,CAAba,aAAa,CAEPC,CAAU,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACC,UAAU,CAAC,CAE5D,GAAI,CAACF,CAAU,CACb,MAAO,GAAAG,SAAE,KAAO,CACjB,GAEO,CAAAC,CAAY,CAAqBJ,CAAU,CAA3CI,YAAY,CAAEC,CAAc,CAAKL,CAAU,CAA7BK,cAAc,CAE9BC,CAAkB,CAAGF,CAAY,CACnCA,CAAY,CACZC,CAAc,CAACA,CAAc,CAACE,MAAM,CAAG,CAAC,CAAC,OAEX,QAAQ,EAAtC,MAAO,CAAAD,CAA+B,CAInC,GAAAH,SAAE,EAAC,IAAI,CAACK,cAAc,CAACF,CAAkB,CAAC,CAAC,CAHzC,GAAAH,SAAE,KAIb,CAAC,GAAAP,GAAA,kBAAAC,KAAA,CAED,SAAAW,eAAuBF,CAA0B,CAAW,CAC1D,GACE,CAAC,IAAI,CAAClB,SAAS,EACgB,QAAQ,EAAvC,MAAO,KAAI,CAACK,cAA2B,EACvC,CAAC,IAAI,CAACC,QAAQ,CAEd,SACD,GAEK,CAAAe,CAAuB,CAAGC,IAAI,CAACC,GAAG,EAAE,CAAGL,CAAkB,CACzDM,CAAe,CAAGC,oBAAS,CAACC,eAAe,CAC/CL,CAAuB,CACvB,IAAI,CAACf,QAAQ,CACd,CAED,OAAQ,IAAI,CAACN,SAAS,EACpB,IAAK,CAAA2B,gBAAS,CAACC,OAAO,CACpB,MAAO,CAAAJ,CAAe,CAAG,IAAI,CAACnB,cAAc,CAC9C,IAAK,CAAAsB,gBAAS,CAACE,KAAK,CAClB,MAAO,CAAAL,CAAe,CAAG,IAAI,CAACnB,cAAc,CAC9C,QACE,SAAa,CAEnB,CAAC,IAAAP,CAAA,IAAAgC,OAAA,CAAAjC,SAAA,CAAAA,SAAA"}
@@ -0,0 +1,9 @@
1
+ import { Result } from 'ts-res';
2
+ import { KameleoonError } from '../../kameleoonError';
3
+ import { EvaluationDataType } from '../../targeting/types';
4
+ import { ConditionDataType, ICondition } from './types';
5
+ export declare class NewVisitor implements ICondition {
6
+ private visitorType?;
7
+ constructor({ visitorType }: ConditionDataType);
8
+ evaluate({ targetingData, }: EvaluationDataType): Result<boolean, KameleoonError>;
9
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.NewVisitor=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_kameleoonError=require("../../kameleoonError"),_types=require("../types");function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,_toPropertyKey(c.key),c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),Object.defineProperty(a,"prototype",{writable:!1}),a}function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"===_typeof(b)?b:b+""}function _toPrimitive(a,b){if("object"!==_typeof(a)||null===a)return a;var c=a[Symbol.toPrimitive];if(c!==void 0){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)}var NewVisitor=function(){function a(b){var c=b.visitorType;_classCallCheck(this,a),_defineProperty(this,"visitorType",void 0),this.visitorType=c}return _createClass(a,[{key:"evaluate",value:function evaluate(a){var b=a.targetingData,c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.VisitsData];if(!c||!this.visitorType)return(0,_tsRes.Ok)(!1);var d=c.currentVisit,e=c.previousVisits,f=d&&!e.length||!d&&!e.length;switch(this.visitorType){case _types.VisitorType.NEW:return(0,_tsRes.Ok)(f);case _types.VisitorType.RETURNING:return(0,_tsRes.Ok)(!f);default:(0,_kameleoonError.exhaustCheck)(this.visitorType);}}}]),a}();exports.NewVisitor=NewVisitor;
2
+ //# sourceMappingURL=newVisitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"newVisitor.js","names":["NewVisitor","a","b","visitorType","_classCallCheck","_defineProperty","_createClass","key","value","evaluate","targetingData","visitsData","KameleoonData","VisitsData","Ok","currentVisit","previousVisits","isNewVisitor","length","VisitorType","NEW","RETURNING","exhaustCheck","exports"],"sources":["../../../src/targeting/conditions/newVisitor.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { exhaustCheck, KameleoonError } from 'src/kameleoonError';\nimport { EvaluationDataType, VisitorType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class NewVisitor implements ICondition {\n private visitorType?: VisitorType | null;\n\n constructor({ visitorType }: ConditionDataType) {\n this.visitorType = visitorType;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const visitsData = targetingData?.[KameleoonData.VisitsData];\n\n if (!visitsData || !this.visitorType) {\n return Ok(false);\n }\n\n const { currentVisit, previousVisits } = visitsData;\n\n // --- Note ---\n // Second case handles situation when user didn't use `addData` that\n // creates new current visit\n const isNewVisitor =\n (currentVisit && !previousVisits.length) ||\n (!currentVisit && !previousVisits.length);\n\n switch (this.visitorType) {\n case VisitorType.NEW:\n return Ok(isNewVisitor);\n case VisitorType.RETURNING:\n return Ok(!isNewVisitor);\n default:\n exhaustCheck(this.visitorType);\n }\n }\n}\n"],"mappings":"g+CAMa,CAAAA,UAAU,YAGrB,SAAAC,EAAAC,CAAA,CAAgD,IAAlC,CAAAC,CAAW,CAAAD,CAAA,CAAXC,WAAW,CAAAC,eAAA,MAAAH,CAAA,EAAAI,eAAA,4BACvB,IAAI,CAACF,WAAW,CAAGA,CACrB,CAAC,OAAAG,YAAA,CAAAL,CAAA,GAAAM,GAAA,YAAAC,KAAA,CAED,SAAAC,SAAAR,CAAA,CAEwD,IADtD,CAAAS,CAAa,CAAAT,CAAA,CAAbS,aAAa,CAEPC,CAAU,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACC,UAAU,CAAC,CAE5D,GAAI,CAACF,CAAU,EAAI,CAAC,IAAI,CAACR,WAAW,CAClC,MAAO,GAAAW,SAAE,KAAO,CACjB,GAEO,CAAAC,CAAY,CAAqBJ,CAAU,CAA3CI,YAAY,CAAEC,CAAc,CAAKL,CAAU,CAA7BK,cAAc,CAK9BC,CAAY,CACfF,CAAY,EAAI,CAACC,CAAc,CAACE,MAAM,EACtC,CAACH,CAAY,EAAI,CAACC,CAAc,CAACE,MAAO,CAE3C,OAAQ,IAAI,CAACf,WAAW,EACtB,IAAK,CAAAgB,kBAAW,CAACC,GAAG,CAClB,MAAO,GAAAN,SAAE,EAACG,CAAY,CAAC,CACzB,IAAK,CAAAE,kBAAW,CAACE,SAAS,CACxB,MAAO,GAAAP,SAAE,EAAC,CAACG,CAAY,CAAC,CAC1B,QACE,GAAAK,4BAAY,EAAC,IAAI,CAACnB,WAAW,CAAC,CAAC,CAErC,CAAC,IAAAF,CAAA,IAAAsB,OAAA,CAAAvB,UAAA,CAAAA,UAAA"}
@@ -0,0 +1,9 @@
1
+ import { Result } from 'ts-res';
2
+ import { KameleoonError } from '../../kameleoonError';
3
+ import { EvaluationDataType } from '../../targeting/types';
4
+ import { ConditionDataType, ICondition } from './types';
5
+ export declare class OperatingSystem implements ICondition {
6
+ private operatingSystem?;
7
+ constructor({ os }: ConditionDataType);
8
+ evaluate({ targetingData, }: EvaluationDataType): Result<boolean, KameleoonError>;
9
+ }
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.DeviceCondition=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData");function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,_toPropertyKey(c.key),c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),Object.defineProperty(a,"prototype",{writable:!1}),a}function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"===_typeof(b)?b:b+""}function _toPrimitive(a,b){if("object"!==_typeof(a)||null===a)return a;var c=a[Symbol.toPrimitive];if(c!==void 0){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)}var DeviceCondition=/*#__PURE__*/function(){function a(b){var c=b.device;_classCallCheck(this,a),_defineProperty(this,"device",void 0),this.device=c}return _createClass(a,[{key:"evaluate",value:function evaluate(a){var b=a.targetingData,c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.Device];if(c){var d=c.device;return(0,_tsRes.Ok)(d===this.device)}return(0,_tsRes.Ok)(!1)}}]),a}();exports.DeviceCondition=DeviceCondition;
2
- //# sourceMappingURL=deviceCondition.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.OperatingSystem=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData");function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,_toPropertyKey(c.key),c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),Object.defineProperty(a,"prototype",{writable:!1}),a}function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"===_typeof(b)?b:b+""}function _toPrimitive(a,b){if("object"!==_typeof(a)||null===a)return a;var c=a[Symbol.toPrimitive];if(c!==void 0){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)}var OperatingSystem=function(){function a(b){var c=b.os;_classCallCheck(this,a),_defineProperty(this,"operatingSystem",void 0),this.operatingSystem=c}return _createClass(a,[{key:"evaluate",value:function evaluate(a){var b=a.targetingData,c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.OperatingSystem];if(c){var d=c.operatingSystem;return(0,_tsRes.Ok)(d===this.operatingSystem)}return(0,_tsRes.Ok)(!1)}}]),a}();exports.OperatingSystem=OperatingSystem;
2
+ //# sourceMappingURL=operatingSystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operatingSystem.js","names":["OperatingSystem","a","b","os","_classCallCheck","_defineProperty","operatingSystem","_createClass","key","value","evaluate","targetingData","operatingSystemData","KameleoonData","Ok","exports"],"sources":["../../../src/targeting/conditions/operatingSystem.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { EvaluationDataType } from 'src/targeting/types';\nimport { OperatingSystemType } from 'src/kameleoonData/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class OperatingSystem implements ICondition {\n private operatingSystem?: OperatingSystemType | null;\n\n constructor({ os }: ConditionDataType) {\n this.operatingSystem = os;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const operatingSystemData = targetingData?.[KameleoonData.OperatingSystem];\n\n if (operatingSystemData) {\n const { operatingSystem } = operatingSystemData;\n\n return Ok(operatingSystem === this.operatingSystem);\n }\n\n return Ok(false);\n }\n}\n"],"mappings":"05CAOa,CAAAA,eAAe,YAG1B,SAAAC,EAAAC,CAAA,CAAuC,IAAzB,CAAAC,CAAE,CAAAD,CAAA,CAAFC,EAAE,CAAAC,eAAA,MAAAH,CAAA,EAAAI,eAAA,gCACd,IAAI,CAACC,eAAe,CAAGH,CACzB,CAAC,OAAAI,YAAA,CAAAN,CAAA,GAAAO,GAAA,YAAAC,KAAA,CAED,SAAAC,SAAAT,CAAA,CAEwD,IADtD,CAAAU,CAAa,CAAAV,CAAA,CAAbU,aAAa,CAEPC,CAAmB,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACb,eAAe,CAAC,CAE1E,GAAIY,CAAmB,CAAE,CACvB,GAAQ,CAAAN,CAAe,CAAKM,CAAmB,CAAvCN,eAAe,CAEvB,MAAO,GAAAQ,SAAE,EAACR,CAAe,GAAK,IAAI,CAACA,eAAe,CACpD,CAEA,MAAO,GAAAQ,SAAE,KACX,CAAC,IAAAb,CAAA,IAAAc,OAAA,CAAAf,eAAA,CAAAA,eAAA"}
@@ -2,7 +2,7 @@ import { Result } from 'ts-res';
2
2
  import { KameleoonError } from '../../kameleoonError';
3
3
  import { EvaluationDataType } from '../../targeting/types';
4
4
  import { ConditionDataType, ICondition } from './types';
5
- export declare class PageTitleCondition implements ICondition {
5
+ export declare class PageTitle implements ICondition {
6
6
  private matchType?;
7
7
  private conditionValue?;
8
8
  constructor({ matchType, title }: ConditionDataType);
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PageTitle=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_utilities=require("../../utilities"),_types=require("../types");function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,_toPropertyKey(c.key),c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),Object.defineProperty(a,"prototype",{writable:!1}),a}function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"===_typeof(b)?b:b+""}function _toPrimitive(a,b){if("object"!==_typeof(a)||null===a)return a;var c=a[Symbol.toPrimitive];if(c!==void 0){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)}var PageTitle=function(){function a(b){var c=b.matchType,d=b.title;_classCallCheck(this,a),_defineProperty(this,"matchType",void 0),_defineProperty(this,"conditionValue",void 0),this.matchType=c,this.conditionValue=d}return _createClass(a,[{key:"evaluate",value:function evaluate(a){var b=this,c=a.targetingData,d=null===c||void 0===c?void 0:c[_kameleoonData.KameleoonData.PageView];return d?(0,_tsRes.Ok)(Object.values(d).some(function(a){return b.checkCondition(a.title)})):(0,_tsRes.Ok)(!1)}},{key:"checkCondition",value:function 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.Utilities.parseRegExp(this.conditionValue).test(a);default:return!1;}}}]),a}();exports.PageTitle=PageTitle;
2
+ //# sourceMappingURL=pageTitle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pageTitle.js","names":["PageTitle","a","b","matchType","title","_classCallCheck","_defineProperty","conditionValue","_createClass","key","value","evaluate","targetingData","pageViewData","KameleoonData","PageView","Ok","Object","values","some","data","checkCondition","MatchType","CONTAINS","includes","EXACT","REGULAR_EXPRESSION","Utilities","parseRegExp","test","exports"],"sources":["../../../src/targeting/conditions/pageTitle.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { Utilities } from 'src/utilities';\nimport { EvaluationDataType, MatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class PageTitle implements ICondition {\n private matchType?: MatchType | null;\n private conditionValue?: string | null;\n\n constructor({ matchType, title }: ConditionDataType) {\n this.matchType = matchType;\n this.conditionValue = title;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const pageViewData = targetingData?.[KameleoonData.PageView];\n\n if (pageViewData) {\n return Ok(\n Object.values(pageViewData).some((data) => {\n return this.checkCondition(data.title);\n }),\n );\n }\n\n return Ok(false);\n }\n\n private checkCondition(title: string): boolean {\n if (!this.matchType || !this.conditionValue) {\n return false;\n }\n\n switch (this.matchType) {\n case MatchType.CONTAINS:\n return title.includes(this.conditionValue);\n case MatchType.EXACT:\n return title === this.conditionValue;\n case MatchType.REGULAR_EXPRESSION:\n return Utilities.parseRegExp(this.conditionValue).test(title);\n default:\n return false;\n }\n }\n}\n"],"mappings":"q9CAOa,CAAAA,SAAS,YAIpB,SAAAC,EAAAC,CAAA,CAAqD,IAAvC,CAAAC,CAAS,CAAAD,CAAA,CAATC,SAAS,CAAEC,CAAK,CAAAF,CAAA,CAALE,KAAK,CAAAC,eAAA,MAAAJ,CAAA,EAAAK,eAAA,0BAAAA,eAAA,+BAC5B,IAAI,CAACH,SAAS,CAAGA,CAAS,CAC1B,IAAI,CAACI,cAAc,CAAGH,CACxB,CAAC,OAAAI,YAAA,CAAAP,CAAA,GAAAQ,GAAA,YAAAC,KAAA,CAED,SAAAC,SAAAV,CAAA,CAEwD,KAAAC,CAAA,MADtDU,CAAa,CAAAX,CAAA,CAAbW,aAAa,CAEPC,CAAY,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACC,QAAQ,CAAC,OAExD,CAAAF,CAAY,CACP,GAAAG,SAAE,EACPC,MAAM,CAACC,MAAM,CAACL,CAAY,CAAC,CAACM,IAAI,CAAC,SAACC,CAAI,CAAK,CACzC,MAAO,CAAAlB,CAAI,CAACmB,cAAc,CAACD,CAAI,CAAChB,KAAK,CACvC,CAAC,CAAC,CACH,CAGI,GAAAY,SAAE,KACX,CAAC,GAAAP,GAAA,kBAAAC,KAAA,CAED,SAAAW,eAAuBjB,CAAa,CAAW,CAC7C,GAAI,CAAC,IAAI,CAACD,SAAS,EAAI,CAAC,IAAI,CAACI,cAAc,CACzC,SAGF,OAAQ,IAAI,CAACJ,SAAS,EACpB,IAAK,CAAAmB,gBAAS,CAACC,QAAQ,CACrB,MAAO,CAAAnB,CAAK,CAACoB,QAAQ,CAAC,IAAI,CAACjB,cAAc,CAAC,CAC5C,IAAK,CAAAe,gBAAS,CAACG,KAAK,CAClB,MAAO,CAAArB,CAAK,GAAK,IAAI,CAACG,cAAc,CACtC,IAAK,CAAAe,gBAAS,CAACI,kBAAkB,CAC/B,MAAO,CAAAC,oBAAS,CAACC,WAAW,CAAC,IAAI,CAACrB,cAAc,CAAC,CAACsB,IAAI,CAACzB,CAAK,CAAC,CAC/D,QACE,SAAa,CAEnB,CAAC,IAAAH,CAAA,IAAA6B,OAAA,CAAA9B,SAAA,CAAAA,SAAA"}
@@ -2,7 +2,7 @@ import { Result } from 'ts-res';
2
2
  import { KameleoonError } from '../../kameleoonError';
3
3
  import { EvaluationDataType } from '../../targeting/types';
4
4
  import { ConditionDataType, ICondition } from './types';
5
- export declare class PageUrlCondition implements ICondition {
5
+ export declare class PageUrl implements ICondition {
6
6
  private matchType?;
7
7
  private conditionValue?;
8
8
  constructor({ matchType, url }: ConditionDataType);
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PageUrl=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_utilities=require("../../utilities"),_types=require("../types");function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,_toPropertyKey(c.key),c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),Object.defineProperty(a,"prototype",{writable:!1}),a}function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"===_typeof(b)?b:b+""}function _toPrimitive(a,b){if("object"!==_typeof(a)||null===a)return a;var c=a[Symbol.toPrimitive];if(c!==void 0){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)}var PageUrl=function(){function a(b){var c=b.matchType,d=b.url;_classCallCheck(this,a),_defineProperty(this,"matchType",void 0),_defineProperty(this,"conditionValue",void 0),this.matchType=c,this.conditionValue=d}return _createClass(a,[{key:"evaluate",value:function evaluate(a){var b=this,c=a.targetingData,d=null===c||void 0===c?void 0:c[_kameleoonData.KameleoonData.PageView];return d?(0,_tsRes.Ok)(Object.keys(d).some(function(a){return b.checkCondition(a)})):(0,_tsRes.Ok)(!1)}},{key:"checkCondition",value:function 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.Utilities.parseRegExp(this.conditionValue).test(a);default:return!1;}}}]),a}();exports.PageUrl=PageUrl;
2
+ //# sourceMappingURL=pageUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pageUrl.js","names":["PageUrl","a","b","matchType","url","_classCallCheck","_defineProperty","conditionValue","_createClass","key","value","evaluate","targetingData","pageViewData","KameleoonData","PageView","Ok","Object","keys","some","checkCondition","MatchType","CONTAINS","includes","EXACT","REGULAR_EXPRESSION","Utilities","parseRegExp","test","exports"],"sources":["../../../src/targeting/conditions/pageUrl.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { exhaustCheck, KameleoonError } from 'src/kameleoonError';\nimport { Utilities } from 'src/utilities';\nimport { EvaluationDataType, MatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class PageUrl implements ICondition {\n private matchType?: MatchType | null;\n private conditionValue?: string | null;\n\n constructor({ matchType, url }: ConditionDataType) {\n this.matchType = matchType;\n this.conditionValue = url;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const pageViewData = targetingData?.[KameleoonData.PageView];\n\n if (pageViewData) {\n return Ok(\n Object.keys(pageViewData).some((url) => this.checkCondition(url)),\n );\n }\n\n return Ok(false);\n }\n\n private checkCondition(url: string): boolean {\n if (!this.matchType || !this.conditionValue) {\n return false;\n }\n\n switch (this.matchType) {\n case MatchType.CONTAINS:\n return url.includes(this.conditionValue);\n case MatchType.EXACT:\n return url === this.conditionValue;\n case MatchType.REGULAR_EXPRESSION:\n return Utilities.parseRegExp(this.conditionValue).test(url);\n default:\n return false;\n }\n }\n}\n"],"mappings":"m9CAOa,CAAAA,OAAO,YAIlB,SAAAC,EAAAC,CAAA,CAAmD,IAArC,CAAAC,CAAS,CAAAD,CAAA,CAATC,SAAS,CAAEC,CAAG,CAAAF,CAAA,CAAHE,GAAG,CAAAC,eAAA,MAAAJ,CAAA,EAAAK,eAAA,0BAAAA,eAAA,+BAC1B,IAAI,CAACH,SAAS,CAAGA,CAAS,CAC1B,IAAI,CAACI,cAAc,CAAGH,CACxB,CAAC,OAAAI,YAAA,CAAAP,CAAA,GAAAQ,GAAA,YAAAC,KAAA,CAED,SAAAC,SAAAV,CAAA,CAEwD,KAAAC,CAAA,MADtDU,CAAa,CAAAX,CAAA,CAAbW,aAAa,CAEPC,CAAY,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACC,QAAQ,CAAC,OAExD,CAAAF,CAAY,CACP,GAAAG,SAAE,EACPC,MAAM,CAACC,IAAI,CAACL,CAAY,CAAC,CAACM,IAAI,CAAC,SAACf,CAAG,QAAK,CAAAF,CAAI,CAACkB,cAAc,CAAChB,CAAG,CAAC,EAAC,CAClE,CAGI,GAAAY,SAAE,KACX,CAAC,GAAAP,GAAA,kBAAAC,KAAA,CAED,SAAAU,eAAuBhB,CAAW,CAAW,CAC3C,GAAI,CAAC,IAAI,CAACD,SAAS,EAAI,CAAC,IAAI,CAACI,cAAc,CACzC,SAGF,OAAQ,IAAI,CAACJ,SAAS,EACpB,IAAK,CAAAkB,gBAAS,CAACC,QAAQ,CACrB,MAAO,CAAAlB,CAAG,CAACmB,QAAQ,CAAC,IAAI,CAAChB,cAAc,CAAC,CAC1C,IAAK,CAAAc,gBAAS,CAACG,KAAK,CAClB,MAAO,CAAApB,CAAG,GAAK,IAAI,CAACG,cAAc,CACpC,IAAK,CAAAc,gBAAS,CAACI,kBAAkB,CAC/B,MAAO,CAAAC,oBAAS,CAACC,WAAW,CAAC,IAAI,CAACpB,cAAc,CAAC,CAACqB,IAAI,CAACxB,CAAG,CAAC,CAC7D,QACE,SAAa,CAEnB,CAAC,IAAAH,CAAA,IAAA4B,OAAA,CAAA7B,OAAA,CAAAA,OAAA"}
@@ -0,0 +1,12 @@
1
+ import { Result } from 'ts-res';
2
+ import { KameleoonError } from '../../kameleoonError';
3
+ import { EvaluationDataType } from '../../targeting/types';
4
+ import { ConditionDataType, ICondition } from './types';
5
+ export declare class PreviousPage implements ICondition {
6
+ private conditionValue?;
7
+ private matchType?;
8
+ constructor({ matchType, url }: ConditionDataType);
9
+ evaluate({ targetingData, }: EvaluationDataType): Result<boolean, KameleoonError>;
10
+ private checkCondition;
11
+ private getSecondLatestPageView;
12
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PreviousPage=void 0;var _tsRes=require("ts-res"),_utilities=require("../../utilities"),_kameleoonData=require("../../kameleoonData"),_types=require("../types");function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,_toPropertyKey(c.key),c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),Object.defineProperty(a,"prototype",{writable:!1}),a}function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"===_typeof(b)?b:b+""}function _toPrimitive(a,b){if("object"!==_typeof(a)||null===a)return a;var c=a[Symbol.toPrimitive];if(c!==void 0){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)}var PreviousPage=function(){function a(b){var c=b.matchType,d=b.url;_classCallCheck(this,a),_defineProperty(this,"conditionValue",void 0),_defineProperty(this,"matchType",void 0),this.conditionValue=d,this.matchType=c}return _createClass(a,[{key:"evaluate",value:function evaluate(a){var b=a.targetingData,c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.PageView];if(!c)return(0,_tsRes.Ok)(!1);var d=this.getSecondLatestPageView(Object.values(c));if(!d)return(0,_tsRes.Ok)(!1);var e=d.urlAddress;return(0,_tsRes.Ok)(this.checkCondition(e))}},{key:"checkCondition",value:function 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.Utilities.parseRegExp(this.conditionValue).test(a);default:return!1;}}},{key:"getSecondLatestPageView",value:function getSecondLatestPageView(a){if(!(2>a.length)){var b,c;return a.forEach(function(a){var d,e,f=a.timestamps[a.timestamps.length-1],g=a.timestamps[a.timestamps.length-2];if(!b&&!c)return b=a,void(g&&(c=a));var h=null!==(d=b.timestamps[b.timestamps.length-1])&&void 0!==d?d:0;if(f>h){var i,j;c=b,b=a;var k=null===(i=c)||void 0===i?void 0:i.timestamps[(null===(j=c)||void 0===j?void 0:j.timestamps.length)-1];return void(g&&g>k&&(c=a))}var l;if(b.urlAddress===(null===(e=c)||void 0===e?void 0:e.urlAddress))l=c.timestamps[c.timestamps.length-2];else{var m,n,o;l=null!==(m=null===(n=c)||void 0===n?void 0:n.timestamps[(null===(o=c)||void 0===o?void 0:o.timestamps.length)-1])&&void 0!==m?m:0}f&&f>l&&(c=a)}),c}}}]),a}();exports.PreviousPage=PreviousPage;
2
+ //# sourceMappingURL=previousPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"previousPage.js","names":["PreviousPage","a","b","matchType","url","_classCallCheck","_defineProperty","conditionValue","_createClass","key","value","evaluate","targetingData","pageViewsData","KameleoonData","PageView","Ok","secondLatestPageView","getSecondLatestPageView","Object","values","urlAddress","checkCondition","MatchType","CONTAINS","includes","EXACT","REGULAR_EXPRESSION","Utilities","parseRegExp","test","length","latestPV","secondPV","forEach","currentPV","d","e","currentLatestTs","timestamps","currentSecondTs","latestTs","i","j","secondTs","m","n","o","exports"],"sources":["../../../src/targeting/conditions/previousPage.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { Utilities } from 'src/utilities';\nimport { KameleoonData, PageViewDataType } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { EvaluationDataType, MatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class PreviousPage implements ICondition {\n private conditionValue?: string | null;\n private matchType?: MatchType | null;\n\n constructor({ matchType, url }: ConditionDataType) {\n this.conditionValue = url;\n this.matchType = matchType;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const pageViewsData = targetingData?.[KameleoonData.PageView];\n\n if (!pageViewsData) {\n return Ok(false);\n }\n\n // --- Note ---\n // There is more concise way to find previous latest page, but it's less performant,\n // here we only ever check two latest timestamps of page and use one loop\n const secondLatestPageView = this.getSecondLatestPageView(\n Object.values(pageViewsData),\n );\n\n if (!secondLatestPageView) {\n return Ok(false);\n }\n\n const url = secondLatestPageView.urlAddress;\n\n return Ok(this.checkCondition(url));\n }\n\n private checkCondition(url: string): boolean {\n if (!this.matchType || !this.conditionValue) {\n return false;\n }\n\n switch (this.matchType) {\n case MatchType.CONTAINS:\n return url.includes(this.conditionValue);\n case MatchType.EXACT:\n return url === this.conditionValue;\n case MatchType.REGULAR_EXPRESSION:\n return Utilities.parseRegExp(this.conditionValue).test(url);\n default:\n return false;\n }\n }\n\n private getSecondLatestPageView(\n pageViewsData: PageViewDataType[],\n ): PageViewDataType | undefined {\n if (pageViewsData.length < 2) {\n return undefined;\n }\n\n // --- Note ---\n // Arguments and variables named with abbreviations for better readability\n // `second` in this context is `second to latest`\n let latestPV: PageViewDataType | undefined;\n let secondPV: PageViewDataType | undefined;\n\n pageViewsData.forEach((currentPV) => {\n const currentLatestTs =\n currentPV.timestamps[currentPV.timestamps.length - 1];\n const currentSecondTs =\n currentPV.timestamps[currentPV.timestamps.length - 2];\n\n // -- Initial check\n if (!latestPV && !secondPV) {\n latestPV = currentPV;\n\n if (currentSecondTs) {\n secondPV = currentPV;\n }\n\n return;\n }\n\n const latestTs =\n latestPV!.timestamps[latestPV!.timestamps.length - 1] ?? 0;\n\n // -- Covering a case where latest needs to be updated\n if (currentLatestTs > latestTs) {\n secondPV = latestPV;\n latestPV = currentPV;\n\n const secondTs = secondPV?.timestamps[secondPV?.timestamps.length - 1];\n\n // -- Second may need to be updated after latest\n if (currentSecondTs && currentSecondTs > secondTs!) {\n secondPV = currentPV;\n }\n\n return;\n }\n\n // -- Covering a case where only second needs to be updated\n let secondTs: number;\n\n // -- Second and latest can be the same page\n if (latestPV!.urlAddress === secondPV?.urlAddress) {\n // --- Note ---\n // If latest is equal to second, there are at least two timestamps in array\n secondTs = secondPV.timestamps[secondPV.timestamps.length - 2];\n } else {\n secondTs = secondPV?.timestamps[secondPV?.timestamps.length - 1] ?? 0;\n }\n\n // -- Second may need to be updated\n if (currentLatestTs && currentLatestTs > secondTs!) {\n secondPV = currentPV;\n }\n });\n\n return secondPV;\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { Result } from 'ts-res';
2
+ import { KameleoonError } from '../../kameleoonError';
3
+ import { EvaluationDataType } from '../../targeting/types';
4
+ import { ConditionDataType, ICondition } from './types';
5
+ export declare class SameDayVisits implements ICondition {
6
+ private matchType?;
7
+ private conditionValue?;
8
+ constructor({ matchType, visitCount }: ConditionDataType);
9
+ evaluate({ targetingData, }: EvaluationDataType): Result<boolean, KameleoonError>;
10
+ private checkCondition;
11
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SameDayVisits=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_types=require("../types");function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,_toPropertyKey(c.key),c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),Object.defineProperty(a,"prototype",{writable:!1}),a}function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"===_typeof(b)?b:b+""}function _toPrimitive(a,b){if("object"!==_typeof(a)||null===a)return a;var c=a[Symbol.toPrimitive];if(c!==void 0){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)}var SameDayVisits=function(){function a(b){var c=b.matchType,d=b.visitCount;_classCallCheck(this,a),_defineProperty(this,"matchType",void 0),_defineProperty(this,"conditionValue",void 0),this.matchType=c,this.conditionValue=d}return _createClass(a,[{key:"evaluate",value:function evaluate(a){var b=a.targetingData,c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.VisitsData];if(!c)return(0,_tsRes.Ok)(!1);var d=0,e=new Date().setHours(0,0,0,0),f=c.previousVisits,g=c.currentVisit;return f.forEach(function(a){a>e&&d++}),g&&g>e&&d++,(0,_tsRes.Ok)(this.checkCondition(d))}},{key:"checkCondition",value:function 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;}}}]),a}();exports.SameDayVisits=SameDayVisits;
2
+ //# sourceMappingURL=sameDayVisits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sameDayVisits.js","names":["SameDayVisits","a","b","matchType","visitCount","_classCallCheck","_defineProperty","conditionValue","_createClass","key","value","evaluate","targetingData","visitsData","KameleoonData","VisitsData","Ok","todayVisits","todayTimestamp","Date","setHours","previousVisits","currentVisit","forEach","timestamp","checkCondition","todayVisitsAmount","MatchType","EQUAL","GREATER","LOWER","exports"],"sources":["../../../src/targeting/conditions/sameDayVisits.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { EvaluationDataType, MatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class SameDayVisits implements ICondition {\n private matchType?: MatchType | null;\n private conditionValue?: number | null;\n\n constructor({ matchType, visitCount }: ConditionDataType) {\n this.matchType = matchType;\n this.conditionValue = visitCount;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const visitsData = targetingData?.[KameleoonData.VisitsData];\n\n if (!visitsData) {\n return Ok(false);\n }\n\n let todayVisits = 0;\n\n const todayTimestamp = new Date().setHours(0, 0, 0, 0);\n const { previousVisits, currentVisit } = visitsData;\n\n previousVisits.forEach((timestamp) => {\n if (timestamp > todayTimestamp) {\n todayVisits++;\n }\n });\n\n if (currentVisit && currentVisit > todayTimestamp) {\n todayVisits++;\n }\n\n return Ok(this.checkCondition(todayVisits));\n }\n\n private checkCondition(todayVisitsAmount: number): boolean {\n if (!this.matchType || typeof this.conditionValue !== 'number') {\n return false;\n }\n\n switch (this.matchType) {\n case MatchType.EQUAL:\n return todayVisitsAmount === this.conditionValue;\n case MatchType.GREATER:\n return todayVisitsAmount > this.conditionValue;\n case MatchType.LOWER:\n return todayVisitsAmount < this.conditionValue;\n default:\n return false;\n }\n }\n}\n"],"mappings":"m7CAMa,CAAAA,aAAa,YAIxB,SAAAC,EAAAC,CAAA,CAA0D,IAA5C,CAAAC,CAAS,CAAAD,CAAA,CAATC,SAAS,CAAEC,CAAU,CAAAF,CAAA,CAAVE,UAAU,CAAAC,eAAA,MAAAJ,CAAA,EAAAK,eAAA,0BAAAA,eAAA,+BACjC,IAAI,CAACH,SAAS,CAAGA,CAAS,CAC1B,IAAI,CAACI,cAAc,CAAGH,CACxB,CAAC,OAAAI,YAAA,CAAAP,CAAA,GAAAQ,GAAA,YAAAC,KAAA,CAED,SAAAC,SAAAV,CAAA,CAEwD,IADtD,CAAAW,CAAa,CAAAX,CAAA,CAAbW,aAAa,CAEPC,CAAU,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACC,UAAU,CAAC,CAE5D,GAAI,CAACF,CAAU,CACb,MAAO,GAAAG,SAAE,KAAO,CACjB,GAEG,CAAAC,CAAW,CAAG,CAAC,CAEbC,CAAc,CAAG,GAAI,CAAAC,IAAI,EAAE,CAACC,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,CAAC,CAAC,CAC9CC,CAAc,CAAmBR,CAAU,CAA3CQ,cAAc,CAAEC,CAAY,CAAKT,CAAU,CAA3BS,YAAY,CAYpC,MAVA,CAAAD,CAAc,CAACE,OAAO,CAAC,SAACC,CAAS,CAAK,CAChCA,CAAS,CAAGN,CAAc,EAC5BD,CAAW,EAEf,CAAC,CAAC,CAEEK,CAAY,EAAIA,CAAY,CAAGJ,CAAc,EAC/CD,CAAW,EAAE,CAGR,GAAAD,SAAE,EAAC,IAAI,CAACS,cAAc,CAACR,CAAW,CAAC,CAC5C,CAAC,GAAAR,GAAA,kBAAAC,KAAA,CAED,SAAAe,eAAuBC,CAAyB,CAAW,CACzD,GAAI,CAAC,IAAI,CAACvB,SAAS,EAAmC,QAAQ,EAAvC,MAAO,KAAI,CAACI,cAA2B,CAC5D,SAGF,OAAQ,IAAI,CAACJ,SAAS,EACpB,IAAK,CAAAwB,gBAAS,CAACC,KAAK,CAClB,MAAO,CAAAF,CAAiB,GAAK,IAAI,CAACnB,cAAc,CAClD,IAAK,CAAAoB,gBAAS,CAACE,OAAO,CACpB,MAAO,CAAAH,CAAiB,CAAG,IAAI,CAACnB,cAAc,CAChD,IAAK,CAAAoB,gBAAS,CAACG,KAAK,CAClB,MAAO,CAAAJ,CAAiB,CAAG,IAAI,CAACnB,cAAc,CAChD,QACE,SAAa,CAEnB,CAAC,IAAAN,CAAA,IAAA8B,OAAA,CAAA/B,aAAA,CAAAA,aAAA"}
@@ -2,14 +2,11 @@ import { Result } from 'ts-res';
2
2
  import { KameleoonError } from '../../kameleoonError';
3
3
  import { EvaluationDataType } from '../../targeting/types';
4
4
  import { ConditionDataType, ICondition } from './types';
5
- export declare class SdkLanguageCondition implements ICondition {
5
+ export declare class SdkLanguage implements ICondition {
6
6
  private sdkLanguage?;
7
7
  private conditionValue?;
8
8
  private versionMatchType?;
9
- private error?;
10
9
  constructor({ sdkLanguage, version, versionMatchType }: ConditionDataType);
11
10
  evaluate({ sdkInfo, }: EvaluationDataType): Result<boolean, KameleoonError>;
12
11
  private checkCondition;
13
- private compareSemVer;
14
- private validateVersion;
15
12
  }
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SdkLanguage=void 0;var _tsRes=require("ts-res"),_utilities=require("../../utilities");function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,_toPropertyKey(c.key),c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),Object.defineProperty(a,"prototype",{writable:!1}),a}function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"===_typeof(b)?b:b+""}function _toPrimitive(a,b){if("object"!==_typeof(a)||null===a)return a;var c=a[Symbol.toPrimitive];if(c!==void 0){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)}var SdkLanguage=function(){function a(b){var c=b.sdkLanguage,d=b.version,e=b.versionMatchType;_classCallCheck(this,a),_defineProperty(this,"sdkLanguage",void 0),_defineProperty(this,"conditionValue",void 0),_defineProperty(this,"versionMatchType",void 0),this.sdkLanguage=c,this.conditionValue=d,this.versionMatchType=e}return _createClass(a,[{key:"evaluate",value:function evaluate(a){var b=a.sdkInfo;return this.checkCondition(b)}},{key:"checkCondition",value:function checkCondition(a){var b=a.type,c=a.version;if(!this.sdkLanguage)return(0,_tsRes.Ok)(!1);if("string"!=typeof this.conditionValue)return(0,_tsRes.Ok)(b===this.sdkLanguage);if(!this.versionMatchType)return(0,_tsRes.Ok)(!1);var d=_utilities.Utilities.compareSemVer({version:c,compareVersion:this.conditionValue,operator:this.versionMatchType});return d.ok?(0,_tsRes.Ok)(b===this.sdkLanguage&&d.data):(0,_tsRes.Err)(d.error)}}]),a}();exports.SdkLanguage=SdkLanguage;
2
+ //# sourceMappingURL=sdkLanguage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdkLanguage.js","names":["SdkLanguage","a","b","sdkLanguage","version","versionMatchType","_classCallCheck","_defineProperty","conditionValue","_createClass","key","value","evaluate","sdkInfo","checkCondition","sdkType","type","Ok","result","Utilities","compareSemVer","compareVersion","operator","ok","data","Err","error","exports"],"sources":["../../../src/targeting/conditions/sdkLanguage.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport { SdkLanguageType } from 'src/constants';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { Utilities } from 'src/utilities';\nimport { ExternalPackageInfoType } from 'src/types';\nimport { EvaluationDataType, VersionMatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class SdkLanguage implements ICondition {\n private sdkLanguage?: SdkLanguageType | null;\n private conditionValue?: string | null;\n private versionMatchType?: VersionMatchType | null;\n\n constructor({ sdkLanguage, version, versionMatchType }: ConditionDataType) {\n this.sdkLanguage = sdkLanguage;\n this.conditionValue = version;\n this.versionMatchType = versionMatchType;\n }\n\n public evaluate({\n sdkInfo,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n return this.checkCondition(sdkInfo);\n }\n\n private checkCondition(\n sdkInfo: ExternalPackageInfoType,\n ): Result<boolean, KameleoonError> {\n const { type: sdkType, version } = sdkInfo;\n\n if (!this.sdkLanguage) {\n return Ok(false);\n }\n\n if (typeof this.conditionValue !== 'string') {\n return Ok(sdkType === this.sdkLanguage);\n }\n\n if (!this.versionMatchType) {\n return Ok(false);\n }\n\n const result = Utilities.compareSemVer({\n version,\n compareVersion: this.conditionValue,\n operator: this.versionMatchType,\n });\n\n if (!result.ok) {\n return Err(result.error);\n }\n\n return Ok(sdkType === this.sdkLanguage && result.data);\n }\n}\n"],"mappings":"84CAQa,CAAAA,WAAW,YAKtB,SAAAC,EAAAC,CAAA,CAA2E,IAA7D,CAAAC,CAAW,CAAAD,CAAA,CAAXC,WAAW,CAAEC,CAAO,CAAAF,CAAA,CAAPE,OAAO,CAAEC,CAAgB,CAAAH,CAAA,CAAhBG,gBAAgB,CAAAC,eAAA,MAAAL,CAAA,EAAAM,eAAA,4BAAAA,eAAA,+BAAAA,eAAA,iCAClD,IAAI,CAACJ,WAAW,CAAGA,CAAW,CAC9B,IAAI,CAACK,cAAc,CAAGJ,CAAO,CAC7B,IAAI,CAACC,gBAAgB,CAAGA,CAC1B,CAAC,OAAAI,YAAA,CAAAR,CAAA,GAAAS,GAAA,YAAAC,KAAA,CAED,SAAAC,SAAAX,CAAA,CAEwD,IADtD,CAAAY,CAAO,CAAAZ,CAAA,CAAPY,OAAO,CAEP,MAAO,KAAI,CAACC,cAAc,CAACD,CAAO,CACpC,CAAC,GAAAH,GAAA,kBAAAC,KAAA,CAED,SAAAG,eACED,CAAgC,CACC,CACjC,GAAc,CAAAE,CAAO,CAAcF,CAAO,CAAlCG,IAAI,CAAWZ,CAAO,CAAKS,CAAO,CAAnBT,OAAO,CAE9B,GAAI,CAAC,IAAI,CAACD,WAAW,CACnB,MAAO,GAAAc,SAAE,KAAO,CAGlB,GAAmC,QAAQ,EAAvC,MAAO,KAAI,CAACT,cAA2B,CACzC,MAAO,GAAAS,SAAE,EAACF,CAAO,GAAK,IAAI,CAACZ,WAAW,CAAC,CAGzC,GAAI,CAAC,IAAI,CAACE,gBAAgB,CACxB,MAAO,GAAAY,SAAE,KAAO,CAGlB,GAAM,CAAAC,CAAM,CAAGC,oBAAS,CAACC,aAAa,CAAC,CACrChB,OAAO,CAAPA,CAAO,CACPiB,cAAc,CAAE,IAAI,CAACb,cAAc,CACnCc,QAAQ,CAAE,IAAI,CAACjB,gBACjB,CAAC,CAAC,CAAC,MAEE,CAAAa,CAAM,CAACK,EAAE,CAIP,GAAAN,SAAE,EAACF,CAAO,GAAK,IAAI,CAACZ,WAAW,EAAIe,CAAM,CAACM,IAAI,CAAC,CAH7C,GAAAC,UAAG,EAACP,CAAM,CAACQ,KAAK,CAI3B,CAAC,IAAAzB,CAAA,IAAA0B,OAAA,CAAA3B,WAAA,CAAAA,WAAA"}
@@ -0,0 +1,9 @@
1
+ import { Result } from 'ts-res';
2
+ import { KameleoonError } from '../../kameleoonError';
3
+ import { EvaluationDataType } from '../../targeting/types';
4
+ import { ConditionDataType, ICondition } from './types';
5
+ export declare class Segment implements ICondition {
6
+ segmentId?: number | null;
7
+ constructor({ segmentId }: ConditionDataType);
8
+ evaluate(evaluationData: EvaluationDataType): Result<boolean, KameleoonError>;
9
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Segment=void 0;var _tsRes=require("ts-res"),_tree=require("../tree");function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,_toPropertyKey(c.key),c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),Object.defineProperty(a,"prototype",{writable:!1}),a}function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"===_typeof(b)?b:b+""}function _toPrimitive(a,b){if("object"!==_typeof(a)||null===a)return a;var c=a[Symbol.toPrimitive];if(c!==void 0){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)}var Segment=function(){function a(b){var c=b.segmentId;_classCallCheck(this,a),_defineProperty(this,"segmentId",void 0),this.segmentId=c}return _createClass(a,[{key:"evaluate",value:function evaluate(a){var b=a.segments,c=a.trees;if(!this.segmentId)return(0,_tsRes.Ok)(!1);var d=null===b||void 0===b?void 0:b.get(this.segmentId.toString());if(!d)return(0,_tsRes.Ok)(!1);var e=null===c||void 0===c?void 0:c.get(this.segmentId.toString());return e?e.evaluate(a):new _tree.Tree(d).evaluate(a)}}]),a}();exports.Segment=Segment;
2
+ //# sourceMappingURL=segment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"segment.js","names":["Segment","a","b","segmentId","_classCallCheck","_defineProperty","_createClass","key","value","evaluate","evaluationData","segments","trees","Ok","segment","get","toString","tree","Tree","exports"],"sources":["../../../src/targeting/conditions/segment.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { EvaluationDataType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\nimport { Tree } from 'src/targeting/tree';\n\nexport class Segment implements ICondition {\n segmentId?: number | null;\n\n constructor({ segmentId }: ConditionDataType) {\n this.segmentId = segmentId;\n }\n\n public evaluate(\n evaluationData: EvaluationDataType,\n ): Result<boolean, KameleoonError> {\n const { segments, trees } = evaluationData;\n\n if (!this.segmentId) {\n return Ok(false);\n }\n\n const segment = segments?.get(this.segmentId.toString());\n\n if (!segment) {\n return Ok(false);\n }\n\n const tree = trees?.get(this.segmentId.toString());\n\n if (tree) {\n return tree.evaluate(evaluationData);\n }\n\n return new Tree(segment).evaluate(evaluationData);\n }\n}\n"],"mappings":"63CAMa,CAAAA,OAAO,YAGlB,SAAAC,EAAAC,CAAA,CAA8C,IAAhC,CAAAC,CAAS,CAAAD,CAAA,CAATC,SAAS,CAAAC,eAAA,MAAAH,CAAA,EAAAI,eAAA,0BACrB,IAAI,CAACF,SAAS,CAAGA,CACnB,CAAC,OAAAG,YAAA,CAAAL,CAAA,GAAAM,GAAA,YAAAC,KAAA,CAED,SAAAC,SACEC,CAAkC,CACD,CACjC,GAAQ,CAAAC,CAAQ,CAAYD,CAAc,CAAlCC,QAAQ,CAAEC,CAAK,CAAKF,CAAc,CAAxBE,KAAK,CAEvB,GAAI,CAAC,IAAI,CAACT,SAAS,CACjB,MAAO,GAAAU,SAAE,KAAO,CAGlB,GAAM,CAAAC,CAAO,QAAGH,CAAQ,WAARA,CAAQ,QAARA,CAAQ,CAAEI,GAAG,CAAC,IAAI,CAACZ,SAAS,CAACa,QAAQ,EAAE,CAAC,CAExD,GAAI,CAACF,CAAO,CACV,MAAO,GAAAD,SAAE,KAAO,CAGlB,GAAM,CAAAI,CAAI,QAAGL,CAAK,WAALA,CAAK,QAALA,CAAK,CAAEG,GAAG,CAAC,IAAI,CAACZ,SAAS,CAACa,QAAQ,EAAE,CAAC,CAAC,MAE/C,CAAAC,CAAI,CACCA,CAAI,CAACR,QAAQ,CAACC,CAAc,CAAC,CAG/B,GAAI,CAAAQ,UAAI,CAACJ,CAAO,CAAC,CAACL,QAAQ,CAACC,CAAc,CAClD,CAAC,IAAAT,CAAA,IAAAkB,OAAA,CAAAnB,OAAA,CAAAA,OAAA"}
@@ -0,0 +1,11 @@
1
+ import { Result } from 'ts-res';
2
+ import { KameleoonError } from '../../kameleoonError';
3
+ import { EvaluationDataType } from '../../targeting/types';
4
+ import { ConditionDataType, ICondition } from './types';
5
+ export declare class TargetFeatureFlag implements ICondition {
6
+ private featureId?;
7
+ private ruleId?;
8
+ private variationKey?;
9
+ constructor({ featureFlagId, variationKey, ruleId }: ConditionDataType);
10
+ evaluate({ variationData, ruleMap, }: EvaluationDataType): Result<boolean, KameleoonError>;
11
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var _tsRes=require("ts-res");Object.defineProperty(exports,"__esModule",{value:!0}),exports.TargetFeatureFlag=void 0;function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}function _slicedToArray(a,b){return _arrayWithHoles(a)||_iterableToArrayLimit(a,b)||_unsupportedIterableToArray(a,b)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _iterableToArrayLimit(a,b){var c=null==a?null:"undefined"!=typeof Symbol&&a[Symbol.iterator]||a["@@iterator"];if(null!=c){var d,e,f,g,h=[],i=!0,j=!1;try{if(f=(c=c.call(a)).next,0===b){if(Object(c)!==c)return;i=!1}else for(;!(i=(d=f.call(c)).done)&&(h.push(d.value),h.length!==b);i=!0);}catch(a){j=!0,e=a}finally{try{if(!i&&null!=c.return&&(g=c.return(),Object(g)!==g))return}finally{if(j)throw e}}return h}}function _arrayWithHoles(a){if(Array.isArray(a))return a}function _createForOfIteratorHelper(a,b){var c="undefined"!=typeof Symbol&&a[Symbol.iterator]||a["@@iterator"];if(!c){if(Array.isArray(a)||(c=_unsupportedIterableToArray(a))||b&&a&&"number"==typeof a.length){c&&(a=c);var d=0,e=function(){};return{s:e,n:function n(){return d>=a.length?{done:!0}:{done:!1,value:a[d++]}},e:function e(a){throw a},f:e}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var f,g=!0,h=!1;return{s:function s(){c=c.call(a)},n:function n(){var a=c.next();return g=a.done,a},e:function e(a){h=!0,f=a},f:function f(){try{g||null==c.return||c.return()}finally{if(h)throw f}}}}function _unsupportedIterableToArray(a,b){if(a){if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(a):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?_arrayLikeToArray(a,b):void 0}}function _arrayLikeToArray(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c<b;c++)d[c]=a[c];return d}function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,_toPropertyKey(c.key),c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),Object.defineProperty(a,"prototype",{writable:!1}),a}function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"===_typeof(b)?b:b+""}function _toPrimitive(a,b){if("object"!==_typeof(a)||null===a)return a;var c=a[Symbol.toPrimitive];if(c!==void 0){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)}var TargetFeatureFlag=function(){function a(b){var c=b.featureFlagId,d=b.variationKey,e=b.ruleId;_classCallCheck(this,a),_defineProperty(this,"featureId",void 0),_defineProperty(this,"ruleId",void 0),_defineProperty(this,"variationKey",void 0),this.featureId=c,this.ruleId=e,this.variationKey=d}return _createClass(a,[{key:"evaluate",value:function evaluate(a){var b=a.variationData,c=a.ruleMap;if(!this.featureId||!c)return(0,_tsRes.Ok)(!1);if(this.featureId&&!this.ruleId&&!this.variationKey){var d,e=_createForOfIteratorHelper(c);try{for(e.s();!(d=e.n()).done;){var f=_slicedToArray(d.value,2),g=f[0],h=f[1],i=h.featureId,j=h.experimentId;if(i===this.featureId&&"number"==typeof b[j])return(0,_tsRes.Ok)(!0)}}catch(a){e.e(a)}finally{e.f()}return(0,_tsRes.Ok)(!1)}if(this.featureId&&this.ruleId){var k=c.get(this.ruleId);if(!k)return(0,_tsRes.Ok)(!1);var l=k.experimentId,m=k.variations;if(this.variationKey){var n=m.get(this.variationKey);return(0,_tsRes.Ok)(!!n&&b[l]===n)}return(0,_tsRes.Ok)(!!b[k.experimentId])}if(this.featureId&&!this.ruleId&&this.variationKey){var o,p=_createForOfIteratorHelper(c);try{for(p.s();!(o=p.n()).done;){var q=_slicedToArray(o.value,2),r=q[0],s=q[1],t=s.featureId,u=s.experimentId,v=s.variations;if(t===this.featureId&&v.has(this.variationKey)){var w=v.get(this.variationKey);return(0,_tsRes.Ok)(!!w&&b[u]===w)}}}catch(a){p.e(a)}finally{p.f()}}return(0,_tsRes.Ok)(!1)}}]),a}();exports.TargetFeatureFlag=TargetFeatureFlag;
2
+ //# sourceMappingURL=targetFeatureFlag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"targetFeatureFlag.js","names":["_tsRes","require","Object","defineProperty","exports","value","TargetFeatureFlag","_typeof","a","Symbol","iterator","constructor","prototype","_slicedToArray","b","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","c","d","e","f","g","h","i","j","call","next","done","push","length","return","Array","isArray","_createForOfIteratorHelper","s","n","_arrayLikeToArray","toString","slice","name","from","test","_classCallCheck","_defineProperties","enumerable","configurable","writable","_toPropertyKey","key","_createClass","_defineProperty","_toPrimitive","toPrimitive","String","Number","featureFlagId","variationKey","ruleId","featureId","evaluate","variationData","ruleMap","Ok","_","rule","experimentId","get","variations","variationId","o","p","q","has"],"sources":["../../../src/targeting/conditions/targetFeatureFlag.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { EvaluationDataType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class TargetFeatureFlag implements ICondition {\n private featureId?: number | null;\n private ruleId?: number | null;\n private variationKey?: string | null;\n\n constructor({ featureFlagId, variationKey, ruleId }: ConditionDataType) {\n this.featureId = featureFlagId;\n this.ruleId = ruleId;\n this.variationKey = variationKey;\n }\n\n public evaluate({\n variationData,\n ruleMap,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n if (!this.featureId || !ruleMap) {\n return Ok(false);\n }\n\n // -- Visitor took part in any experiment of the feature flag\n // with any variation\n if (this.featureId && !this.ruleId && !this.variationKey) {\n for (const [_, rule] of ruleMap) {\n const { featureId, experimentId } = rule;\n\n if (\n featureId === this.featureId &&\n typeof variationData[experimentId] === 'number'\n ) {\n return Ok(true);\n }\n }\n\n return Ok(false);\n }\n\n // -- Visitor took part in certain experiment of the feature flag\n // with any/exact variation\n if (this.featureId && this.ruleId) {\n const rule = ruleMap.get(this.ruleId);\n\n if (!rule) {\n return Ok(false);\n }\n\n const { experimentId, variations } = rule;\n\n if (this.variationKey) {\n const variationId = variations.get(this.variationKey);\n\n return Ok(\n Boolean(variationId) && variationData[experimentId] === variationId,\n );\n }\n\n return Ok(Boolean(variationData[rule.experimentId]));\n }\n\n // -- Visitor took part in any experiment of the feature flag\n // with certain variation\n if (this.featureId && !this.ruleId && this.variationKey) {\n for (const [_, rule] of ruleMap) {\n const { featureId, experimentId, variations } = rule;\n\n if (featureId === this.featureId && variations.has(this.variationKey)) {\n const variationId = variations.get(this.variationKey);\n\n return Ok(\n Boolean(variationId) && variationData[experimentId] === variationId,\n );\n }\n }\n }\n\n return Ok(false);\n }\n}\n"],"mappings":"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"}
@@ -2,38 +2,45 @@ import { Result } from 'ts-res';
2
2
  import { SdkLanguageType } from '../../constants';
3
3
  import { BrowserType, DeviceType } from '../../kameleoonData';
4
4
  import { KameleoonError } from '../../kameleoonError';
5
- import { EvaluationDataType, MatchType, MatchTypeCustomData, MatchTypeTest, MatchTypeVariation, TargetingType, VersionMatchType } from '../../targeting/types';
6
- import { BrowserCondition } from './browserCondition';
7
- import { ConversionCondition } from './conversionCondition';
8
- import { CustomDataCondition } from './customDataCondition';
9
- import { DeviceCondition } from './deviceCondition';
10
- import { ExclusiveExperimentCondition } from './exclusiveExperimentCondition';
11
- import { PageTitleCondition } from './pageTitleCondition';
12
- import { PageUrlCondition } from './pageUrlCondition';
13
- import { SdkLanguageCondition } from './sdkLanguageCondition';
14
- import { TargetExperimentCondition } from './targetExperimentCondition';
15
- import { VisitorCodeCondition } from './visitorCodeCondition';
5
+ import { EvaluationDataType, MatchType, MatchTypeTest, MatchTypeVariation, NameMatchType, TargetingType, ValueMatchType, VersionMatchType, VisitorType } from '../../targeting/types';
6
+ import { OperatingSystemType } from '../../kameleoonData/types';
7
+ import { TimeUnit } from '../../utilities';
16
8
  export interface ICondition {
17
9
  evaluate: (data: EvaluationDataType) => Result<boolean, KameleoonError>;
18
10
  }
19
- export type ConditionType = CustomDataCondition | ExclusiveExperimentCondition | TargetExperimentCondition | DeviceCondition | BrowserCondition | PageUrlCondition | PageTitleCondition | ConversionCondition | VisitorCodeCondition | SdkLanguageCondition;
11
+ export type ConditionType = ICondition;
20
12
  export type ConditionDataType = {
21
13
  id: number;
22
14
  targetingType: TargetingType;
23
15
  isInclude: boolean | null;
24
16
  weight: number;
25
17
  customDataIndex?: string | null;
18
+ pageCount?: number | null;
26
19
  value?: string | null;
27
- valueMatchType?: MatchTypeCustomData | null;
20
+ valueMatchType?: ValueMatchType | null;
28
21
  experiment?: number | null;
29
22
  variation?: number | null;
23
+ visitCount?: number | null;
24
+ variationKey?: string | null;
25
+ featureFlagId?: number | null;
26
+ ruleId?: number | null;
30
27
  variationMatchType?: MatchTypeVariation | null;
31
28
  testMatchType?: MatchTypeTest | null;
32
29
  matchType?: MatchType | null;
33
30
  device?: DeviceType | null;
34
31
  browser?: BrowserType | null;
32
+ os?: OperatingSystemType | null;
33
+ name?: string | null;
34
+ nameMatchType?: NameMatchType | null;
35
+ country?: string | null;
36
+ region?: string | null;
37
+ city?: string | null;
38
+ segmentId?: number | null;
35
39
  version?: string | null;
36
40
  versionMatchType?: VersionMatchType | null;
41
+ visitorType?: VisitorType | null;
42
+ count?: number | null;
43
+ unitOfTime?: TimeUnit | null;
37
44
  title?: string | null;
38
45
  url?: string | null;
39
46
  goalId?: number | null;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/targeting/conditions/types.ts"],"sourcesContent":["import { Result } from 'ts-res';\nimport { SdkLanguageType } from 'src/constants';\nimport { BrowserType, DeviceType } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport {\n EvaluationDataType,\n MatchType,\n MatchTypeCustomData,\n MatchTypeTest,\n MatchTypeVariation,\n TargetingType,\n VersionMatchType,\n} from 'src/targeting/types';\nimport { BrowserCondition } from './browserCondition';\nimport { ConversionCondition } from './conversionCondition';\nimport { CustomDataCondition } from './customDataCondition';\nimport { DeviceCondition } from './deviceCondition';\nimport { ExclusiveExperimentCondition } from './exclusiveExperimentCondition';\nimport { PageTitleCondition } from './pageTitleCondition';\nimport { PageUrlCondition } from './pageUrlCondition';\nimport { SdkLanguageCondition } from './sdkLanguageCondition';\nimport { TargetExperimentCondition } from './targetExperimentCondition';\nimport { VisitorCodeCondition } from './visitorCodeCondition';\n\nexport interface ICondition {\n evaluate: (data: EvaluationDataType) => Result<boolean, KameleoonError>;\n}\n\nexport type ConditionType =\n | CustomDataCondition\n | ExclusiveExperimentCondition\n | TargetExperimentCondition\n | DeviceCondition\n | BrowserCondition\n | PageUrlCondition\n | PageTitleCondition\n | ConversionCondition\n | VisitorCodeCondition\n | SdkLanguageCondition;\n\nexport type ConditionDataType = {\n id: number;\n targetingType: TargetingType;\n isInclude: boolean | null;\n weight: number;\n customDataIndex?: string | null;\n value?: string | null;\n valueMatchType?: MatchTypeCustomData | null;\n experiment?: number | null;\n variation?: number | null;\n variationMatchType?: MatchTypeVariation | null;\n testMatchType?: MatchTypeTest | null;\n matchType?: MatchType | null;\n device?: DeviceType | null;\n browser?: BrowserType | null;\n version?: string | null;\n versionMatchType?: VersionMatchType | null;\n title?: string | null;\n url?: string | null;\n goalId?: number | null;\n sdkLanguage?: SdkLanguageType | null;\n visitorCode?: string | null;\n};\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/targeting/conditions/types.ts"],"sourcesContent":["import { Result } from 'ts-res';\nimport { SdkLanguageType } from 'src/constants';\nimport { BrowserType, DeviceType } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport {\n EvaluationDataType,\n MatchType,\n MatchTypeTest,\n MatchTypeVariation,\n NameMatchType,\n TargetingType,\n ValueMatchType,\n VersionMatchType,\n VisitorType,\n} from 'src/targeting/types';\nimport { OperatingSystemType } from 'src/kameleoonData/types';\nimport { TimeUnit } from 'src/utilities';\n\nexport interface ICondition {\n evaluate: (data: EvaluationDataType) => Result<boolean, KameleoonError>;\n}\n\nexport type ConditionType = ICondition;\n\nexport type ConditionDataType = {\n id: number;\n targetingType: TargetingType;\n isInclude: boolean | null;\n weight: number;\n customDataIndex?: string | null;\n pageCount?: number | null;\n value?: string | null;\n valueMatchType?: ValueMatchType | null;\n experiment?: number | null;\n variation?: number | null;\n visitCount?: number | null;\n variationKey?: string | null;\n featureFlagId?: number | null;\n ruleId?: number | null;\n variationMatchType?: MatchTypeVariation | null;\n testMatchType?: MatchTypeTest | null;\n matchType?: MatchType | null;\n device?: DeviceType | null;\n browser?: BrowserType | null;\n os?: OperatingSystemType | null;\n name?: string | null;\n nameMatchType?: NameMatchType | null;\n country?: string | null;\n region?: string | null;\n city?: string | null;\n segmentId?: number | null;\n version?: string | null;\n versionMatchType?: VersionMatchType | null;\n visitorType?: VisitorType | null;\n count?: number | null;\n unitOfTime?: TimeUnit | null;\n title?: string | null;\n url?: string | null;\n goalId?: number | null;\n sdkLanguage?: SdkLanguageType | null;\n visitorCode?: string | null;\n};\n"],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { Result } from 'ts-res';
2
+ import { KameleoonError } from '../../kameleoonError';
3
+ import { EvaluationDataType } from '../../targeting/types';
4
+ import { ConditionDataType, ICondition } from './types';
5
+ export declare class VisitedPages implements ICondition {
6
+ private conditionValue?;
7
+ private matchType?;
8
+ constructor({ matchType, pageCount }: ConditionDataType);
9
+ evaluate({ targetingData, }: EvaluationDataType): Result<boolean, KameleoonError>;
10
+ private checkCondition;
11
+ }