@kameleoon/javascript-sdk-core 3.6.0 → 4.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.
- package/CHANGELOG.md +369 -0
- package/CHANGELOG_INTERNAL.md +3 -0
- package/dist/cacheManager/cacheManager.js +1 -1
- package/dist/cacheManager/cacheManager.js.map +1 -1
- package/dist/cacheManager/index.js +1 -1
- package/dist/clientConfiguration/clientConfiguration.d.ts +2 -3
- package/dist/clientConfiguration/clientConfiguration.js +1 -1
- package/dist/clientConfiguration/clientConfiguration.js.map +1 -1
- package/dist/clientConfiguration/constants.js +1 -1
- package/dist/clientConfiguration/constants.js.map +1 -1
- package/dist/clientConfiguration/index.js +1 -1
- package/dist/clientConfiguration/types.d.ts +7 -8
- package/dist/clientConfiguration/types.js +1 -1
- package/dist/clientConfiguration/types.js.map +1 -1
- package/dist/clientSettings/clientSettings.js +1 -1
- package/dist/clientSettings/clientSettings.js.map +1 -1
- package/dist/clientSettings/index.js +1 -1
- package/dist/constants.d.ts +0 -8
- package/dist/constants.js +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/eventSource/constants.js +1 -1
- package/dist/eventSource/constants.js.map +1 -1
- package/dist/eventSource/eventSource.d.ts +17 -0
- package/dist/eventSource/eventSource.js +2 -0
- package/dist/eventSource/eventSource.js.map +1 -0
- package/dist/eventSource/index.d.ts +2 -2
- package/dist/eventSource/index.js +1 -1
- package/dist/eventSource/index.js.map +1 -1
- package/dist/eventSource/types.d.ts +8 -19
- package/dist/eventSource/types.js.map +1 -1
- package/dist/hasher/hasher.js +1 -1
- package/dist/hasher/hasher.js.map +1 -1
- package/dist/hasher/index.js +1 -1
- package/dist/hasher/index.js.map +1 -1
- package/dist/index.d.ts +7 -6
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/kameleoonClient.d.ts +2 -207
- package/dist/kameleoonClient.js +1 -1
- package/dist/kameleoonClient.js.map +1 -1
- package/dist/kameleoonClientInterface.d.ts +199 -0
- package/dist/kameleoonClientInterface.js +2 -0
- package/dist/kameleoonClientInterface.js.map +1 -0
- package/dist/kameleoonData/applicationVersion.js +1 -1
- package/dist/kameleoonData/applicationVersion.js.map +1 -1
- package/dist/kameleoonData/browser.js +1 -1
- package/dist/kameleoonData/browser.js.map +1 -1
- package/dist/kameleoonData/constants.js +1 -1
- package/dist/kameleoonData/constants.js.map +1 -1
- package/dist/kameleoonData/conversion.js +1 -1
- package/dist/kameleoonData/conversion.js.map +1 -1
- package/dist/kameleoonData/cookie.js +1 -1
- package/dist/kameleoonData/cookie.js.map +1 -1
- package/dist/kameleoonData/customData.js +1 -1
- package/dist/kameleoonData/customData.js.map +1 -1
- package/dist/kameleoonData/dataManager.js +1 -1
- package/dist/kameleoonData/dataManager.js.map +1 -1
- package/dist/kameleoonData/dataProcessor.d.ts +2 -2
- package/dist/kameleoonData/dataProcessor.js +1 -1
- package/dist/kameleoonData/dataProcessor.js.map +1 -1
- package/dist/kameleoonData/device.js +1 -1
- package/dist/kameleoonData/device.js.map +1 -1
- package/dist/kameleoonData/geolocation.js +1 -1
- package/dist/kameleoonData/geolocation.js.map +1 -1
- package/dist/kameleoonData/helpers.js +1 -1
- package/dist/kameleoonData/helpers.js.map +1 -1
- package/dist/kameleoonData/index.js +1 -1
- package/dist/kameleoonData/operatingSystem.js +1 -1
- package/dist/kameleoonData/operatingSystem.js.map +1 -1
- package/dist/kameleoonData/pageView.js +1 -1
- package/dist/kameleoonData/pageView.js.map +1 -1
- package/dist/kameleoonData/types.d.ts +2 -2
- package/dist/kameleoonData/types.js +1 -1
- package/dist/kameleoonData/types.js.map +1 -1
- package/dist/kameleoonData/userAgent.js +1 -1
- package/dist/kameleoonData/userAgent.js.map +1 -1
- package/dist/kameleoonData/visitsData.js +1 -1
- package/dist/kameleoonData/visitsData.js.map +1 -1
- package/dist/kameleoonError/constants.d.ts +1 -0
- package/dist/kameleoonError/constants.js +1 -1
- package/dist/kameleoonError/constants.js.map +1 -1
- package/dist/kameleoonError/helpers.js.map +1 -1
- package/dist/kameleoonError/index.js +1 -1
- package/dist/kameleoonError/kameleoonError.d.ts +1 -1
- package/dist/kameleoonError/kameleoonError.js +1 -1
- package/dist/kameleoonError/kameleoonError.js.map +1 -1
- package/dist/kameleoonError/types.d.ts +1 -0
- package/dist/kameleoonError/types.js +1 -1
- package/dist/kameleoonError/types.js.map +1 -1
- package/dist/kameleoonUtils.js +1 -1
- package/dist/kameleoonUtils.js.map +1 -1
- package/dist/requester/constants.js +1 -1
- package/dist/requester/constants.js.map +1 -1
- package/dist/requester/index.js +1 -1
- package/dist/requester/requester.js +1 -1
- package/dist/requester/requester.js.map +1 -1
- package/dist/requester/types.js +1 -1
- package/dist/requester/types.js.map +1 -1
- package/dist/storage/constants.js +1 -1
- package/dist/storage/constants.js.map +1 -1
- package/dist/storage/index.d.ts +2 -1
- package/dist/storage/index.js +1 -1
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/storage.d.ts +13 -0
- package/dist/storage/storage.js +2 -0
- package/dist/storage/storage.js.map +1 -0
- package/dist/storage/types.d.ts +15 -30
- package/dist/storage/types.js.map +1 -1
- package/dist/targeting/conditions/applicationVersion.js +1 -1
- package/dist/targeting/conditions/applicationVersion.js.map +1 -1
- package/dist/targeting/conditions/browser.js +1 -1
- package/dist/targeting/conditions/browser.js.map +1 -1
- package/dist/targeting/conditions/conditionFactory.js +1 -1
- package/dist/targeting/conditions/conditionFactory.js.map +1 -1
- package/dist/targeting/conditions/conversion.js +1 -1
- package/dist/targeting/conditions/conversion.js.map +1 -1
- package/dist/targeting/conditions/cookie.js +1 -1
- package/dist/targeting/conditions/cookie.js.map +1 -1
- package/dist/targeting/conditions/customData.js +1 -1
- package/dist/targeting/conditions/customData.js.map +1 -1
- package/dist/targeting/conditions/device.js +1 -1
- package/dist/targeting/conditions/device.js.map +1 -1
- package/dist/targeting/conditions/exclusiveCampaign.js +1 -1
- package/dist/targeting/conditions/exclusiveCampaign.js.map +1 -1
- package/dist/targeting/conditions/firstVisit.js +1 -1
- package/dist/targeting/conditions/firstVisit.js.map +1 -1
- package/dist/targeting/conditions/geolocation.js +1 -1
- package/dist/targeting/conditions/geolocation.js.map +1 -1
- package/dist/targeting/conditions/index.js +1 -1
- package/dist/targeting/conditions/lastVisit.js +1 -1
- package/dist/targeting/conditions/lastVisit.js.map +1 -1
- package/dist/targeting/conditions/newVisitor.js +1 -1
- package/dist/targeting/conditions/newVisitor.js.map +1 -1
- package/dist/targeting/conditions/operatingSystem.js +1 -1
- package/dist/targeting/conditions/operatingSystem.js.map +1 -1
- package/dist/targeting/conditions/pageTitle.js +1 -1
- package/dist/targeting/conditions/pageTitle.js.map +1 -1
- package/dist/targeting/conditions/pageUrl.js +1 -1
- package/dist/targeting/conditions/pageUrl.js.map +1 -1
- package/dist/targeting/conditions/previousPage.js +1 -1
- package/dist/targeting/conditions/previousPage.js.map +1 -1
- package/dist/targeting/conditions/sameDayVisits.js +1 -1
- package/dist/targeting/conditions/sameDayVisits.js.map +1 -1
- package/dist/targeting/conditions/sdkLanguage.js +1 -1
- package/dist/targeting/conditions/sdkLanguage.js.map +1 -1
- package/dist/targeting/conditions/segment.js +1 -1
- package/dist/targeting/conditions/segment.js.map +1 -1
- package/dist/targeting/conditions/targetFeatureFlag.js +1 -1
- package/dist/targeting/conditions/targetFeatureFlag.js.map +1 -1
- package/dist/targeting/conditions/visitedPages.js +1 -1
- package/dist/targeting/conditions/visitedPages.js.map +1 -1
- package/dist/targeting/conditions/visitorCode.js +1 -1
- package/dist/targeting/conditions/visitorCode.js.map +1 -1
- package/dist/targeting/conditions/visits.js +1 -1
- package/dist/targeting/conditions/visits.js.map +1 -1
- package/dist/targeting/index.js +1 -1
- package/dist/targeting/node.js +1 -1
- package/dist/targeting/node.js.map +1 -1
- package/dist/targeting/tree.js +1 -1
- package/dist/targeting/tree.js.map +1 -1
- package/dist/targeting/types.js +1 -1
- package/dist/targeting/types.js.map +1 -1
- package/dist/types.d.ts +14 -26
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utilities/constants.js +1 -1
- package/dist/utilities/constants.js.map +1 -1
- package/dist/utilities/index.js +1 -1
- package/dist/utilities/types.d.ts +7 -7
- package/dist/utilities/types.js +1 -1
- package/dist/utilities/types.js.map +1 -1
- package/dist/utilities/utilities.js +1 -1
- package/dist/utilities/utilities.js.map +1 -1
- package/dist/variationConfiguration/index.js +1 -1
- package/dist/variationConfiguration/variationConfiguration.d.ts +3 -3
- package/dist/variationConfiguration/variationConfiguration.js +1 -1
- package/dist/variationConfiguration/variationConfiguration.js.map +1 -1
- package/dist/visitorCodeManager/constants.d.ts +3 -0
- package/dist/visitorCodeManager/constants.js +2 -0
- package/dist/visitorCodeManager/constants.js.map +1 -0
- package/dist/visitorCodeManager/index.d.ts +2 -0
- package/dist/visitorCodeManager/index.js +1 -1
- package/dist/visitorCodeManager/index.js.map +1 -1
- package/dist/visitorCodeManager/types.d.ts +7 -0
- package/dist/visitorCodeManager/types.js +2 -0
- package/dist/visitorCodeManager/types.js.map +1 -0
- package/dist/visitorCodeManager/visitorCodeManager.d.ts +11 -8
- package/dist/visitorCodeManager/visitorCodeManager.js +1 -1
- package/dist/visitorCodeManager/visitorCodeManager.js.map +1 -1
- package/package.json +4 -8
- package/dist/eventSource/externalEventSource.d.ts +0 -12
- package/dist/eventSource/externalEventSource.js +0 -2
- package/dist/eventSource/externalEventSource.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Conversion=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData");function
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Conversion=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData");function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class Conversion{constructor(a){let{goalId:b}=a;_defineProperty(this,"conditionValue",void 0),this.conditionValue=b}evaluate(a){let{targetingData:b}=a;const c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.Conversion];return this.conditionValue?c?c.length&&-1===this.conditionValue?(0,_tsRes.Ok)(!0):(0,_tsRes.Ok)(c.some(a=>{let{goalId:b}=a;return b===this.conditionValue})):(0,_tsRes.Ok)(!1):(0,_tsRes.Ok)(!1)}}exports.Conversion=Conversion;
|
|
2
2
|
//# sourceMappingURL=conversion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversion.js","names":["Conversion","
|
|
1
|
+
{"version":3,"file":"conversion.js","names":["Conversion","constructor","a","goalId","_defineProperty","conditionValue","evaluate","targetingData","conversionData","KameleoonData","length","Ok","some","exports"],"sources":["../../../src/targeting/conditions/conversion.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { EvaluationDataType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class Conversion implements ICondition {\n private conditionValue?: number | null;\n\n constructor({ goalId }: ConditionDataType) {\n this.conditionValue = goalId;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const conversionData = targetingData?.[KameleoonData.Conversion];\n\n if (!this.conditionValue) {\n return Ok(false);\n }\n\n if (conversionData) {\n if (conversionData.length && this.conditionValue === -1) {\n return Ok(true);\n }\n\n return Ok(\n conversionData.some(({ goalId }) => goalId === this.conditionValue),\n );\n }\n\n return Ok(false);\n }\n}\n"],"mappings":"4qBAMO,KAAM,CAAAA,UAAiC,CAG5CC,WAAWA,CAAAC,CAAA,CAAgC,IAA/B,CAAEC,MAAM,CAANA,CAA0B,CAAC,CAAAD,CAAA,CAAAE,eAAA,+BACvC,IAAI,CAACC,cAAc,CAAGF,CACxB,CAEOG,QAAQA,CAAAJ,CAAA,CAEyC,IAFxC,CACdK,aAAa,CAAbA,CACkB,CAAC,CAAAL,CAAA,CACnB,KAAM,CAAAM,CAAc,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACT,UAAU,CAAC,CAAC,MAE5D,KAAI,CAACK,cAAc,CAIpBG,CAAc,CACZA,CAAc,CAACE,MAAM,EAA4B,CAAC,CAAC,GAA1B,IAAI,CAACL,cAAqB,CAC9C,GAAAM,SAAE,IAAK,CAAC,CAGV,GAAAA,SAAE,EACPH,CAAc,CAACI,IAAI,CAACV,CAAA,MAAC,CAAEC,MAAM,CAANA,CAAO,CAAC,CAAAD,CAAA,OAAK,CAAAC,CAAM,GAAK,IAAI,CAACE,cAAc,EACpE,CAAC,CAGI,GAAAM,SAAE,IAAM,CAAC,CAbP,GAAAA,SAAE,IAAM,CAcnB,CACF,CAACE,OAAA,CAAAb,UAAA,CAAAA,UAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Cookie=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_kameleoonError=require("../../kameleoonError"),_types=require("../types"),_utilities=require("../../utilities");function
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Cookie=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_kameleoonError=require("../../kameleoonError"),_types=require("../types"),_utilities=require("../../utilities");function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class Cookie{constructor(a){let{name:b,value:c,nameMatchType:d,valueMatchType:e}=a;_defineProperty(this,"cookie",void 0),_defineProperty(this,"keyMatchType",void 0),_defineProperty(this,"valueMatchType",void 0),this.cookie={key:null!==b&&void 0!==b?b:void 0,value:null!==c&&void 0!==c?c:void 0},this.keyMatchType=d,this.valueMatchType=e}evaluate(a){var b;let{targetingData:c}=a;const d=!this.cookie.key&&!this.cookie.value,e=!!this.valueMatchType&&!!this.keyMatchType;if(d||!e)return(0,_tsRes.Ok)(!1);const f=this.extractCookie(),g=(null===c||void 0===c||null===(b=c[_kameleoonData.KameleoonData.Cookie])||void 0===b?void 0:b.cookie)||[];return(0,_tsRes.Ok)(f.some(a=>this.checkCondition(a))||g.some(a=>this.checkCondition(a)))}extractCookie(){return"undefined"!=typeof document&&document.cookie?_kameleoonData.Cookie.fromString(document.cookie).data.cookie:[]}checkCondition(a){const b=this.keyMatchType,{key:c,value:d}=a;if(b===_types.NameMatchType.OPTIONAL){const a=this.cookie;return!!this.isOptionalCookie(a)&&this.compareCookieValue(d,a.value)}const{key:e,value:f}=this.cookie;let g;return b===_types.NameMatchType.EXACT?g=c===e:b===_types.NameMatchType.CONTAINS?g=c.includes(e):b===_types.NameMatchType.REGULAR_EXPRESSION?g=_utilities.Utilities.parseRegExp(e).test(c):(0,_kameleoonError.exhaustCheck)(b),g&&this.compareCookieValue(d,f)}compareCookieValue(a,b){const c=this.valueMatchType;return c===_types.ValueMatchType.EXACT?a===b:c===_types.ValueMatchType.CONTAINS?a.includes(b):!(c!==_types.ValueMatchType.REGULAR_EXPRESSION)&&_utilities.Utilities.parseRegExp(b).test(a)}isOptionalCookie(a){const{value:b}=a;return"undefined"!=typeof b}}exports.Cookie=Cookie;
|
|
2
2
|
//# sourceMappingURL=cookie.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookie.js","names":["Cookie","
|
|
1
|
+
{"version":3,"file":"cookie.js","names":["Cookie","constructor","a","name","value","nameMatchType","valueMatchType","_defineProperty","cookie","key","keyMatchType","evaluate","b","targetingData","isEmptyCookie","isValidMatchType","Ok","extractedCookie","extractCookie","cookieData","KameleoonData","some","pair","checkCondition","document","CookieData","fromString","data","dataCookie","cookieMatchType","NameMatchType","OPTIONAL","conditionCookie","isOptionalCookie","compareCookieValue","compareKey","compareValue","keyMatch","EXACT","CONTAINS","includes","REGULAR_EXPRESSION","Utilities","parseRegExp","test","exhaustCheck","ValueMatchType","exports"],"sources":["../../../src/targeting/conditions/cookie.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { Cookie as CookieData, KameleoonData } from 'src/kameleoonData';\nimport { exhaustCheck, KameleoonError } from 'src/kameleoonError';\nimport {\n EvaluationDataType,\n NameMatchType,\n ValueMatchType,\n} from 'src/targeting/types';\nimport { CookieType, OptionalCookieType } from 'src/kameleoonData/types';\nimport { Utilities } from 'src/utilities';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class Cookie implements ICondition {\n private cookie: Partial<CookieType>;\n private keyMatchType?: NameMatchType | null;\n private valueMatchType?: ValueMatchType | null;\n\n constructor({\n name,\n value,\n nameMatchType,\n valueMatchType,\n }: ConditionDataType) {\n this.cookie = {\n key: name ?? undefined,\n value: value ?? undefined,\n };\n this.keyMatchType = nameMatchType;\n this.valueMatchType = valueMatchType;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const isEmptyCookie = !this.cookie.key && !this.cookie.value;\n const isValidMatchType =\n Boolean(this.valueMatchType) && Boolean(this.keyMatchType);\n\n if (isEmptyCookie || !isValidMatchType) {\n return Ok(false);\n }\n\n const extractedCookie = this.extractCookie();\n const cookieData = targetingData?.[KameleoonData.Cookie]?.cookie || [];\n\n return Ok(\n extractedCookie.some((pair) => this.checkCondition(pair)) ||\n cookieData.some((pair) => this.checkCondition(pair)),\n );\n }\n\n private extractCookie(): CookieType[] {\n if (typeof document !== 'undefined' && document.cookie) {\n return CookieData.fromString(document.cookie).data.cookie;\n }\n\n return [];\n }\n\n private checkCondition(dataCookie: CookieType): boolean {\n const cookieMatchType = this.keyMatchType!;\n const { key, value } = dataCookie;\n\n if (cookieMatchType === NameMatchType.OPTIONAL) {\n const conditionCookie = this.cookie;\n\n return this.isOptionalCookie(conditionCookie)\n ? this.compareCookieValue(value, conditionCookie.value)\n : false;\n }\n\n const { key: compareKey, value: compareValue } = this.cookie as CookieType;\n\n let keyMatch: boolean;\n\n switch (cookieMatchType) {\n case NameMatchType.EXACT:\n keyMatch = key === compareKey;\n break;\n case NameMatchType.CONTAINS:\n keyMatch = key.includes(compareKey);\n break;\n case NameMatchType.REGULAR_EXPRESSION:\n keyMatch = Utilities.parseRegExp(compareKey).test(key);\n break;\n default:\n exhaustCheck(cookieMatchType);\n }\n\n return keyMatch && this.compareCookieValue(value, compareValue);\n }\n\n private compareCookieValue(value: string, compareValue: string): boolean {\n const valueMatchType = this.valueMatchType!;\n\n switch (valueMatchType) {\n case ValueMatchType.EXACT:\n return value === compareValue;\n case ValueMatchType.CONTAINS:\n return value.includes(compareValue);\n case ValueMatchType.REGULAR_EXPRESSION:\n return Utilities.parseRegExp(compareValue).test(value);\n default:\n return false;\n }\n }\n\n private isOptionalCookie(\n cookie: Partial<CookieType>,\n ): cookie is OptionalCookieType {\n const { value } = cookie;\n\n return typeof value !== 'undefined';\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CustomData=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_kameleoonError=require("../../kameleoonError"),_utilities=require("../../utilities"),_types=require("../types");function
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CustomData=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_kameleoonError=require("../../kameleoonError"),_utilities=require("../../utilities"),_types=require("../types");function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class CustomData{constructor(a){let{customDataIndex:b,valueMatchType:c,value:d}=a;_defineProperty(this,"customDataIndex",void 0),_defineProperty(this,"matchType",void 0),_defineProperty(this,"conditionValue",void 0),_defineProperty(this,"error",void 0),this.customDataIndex=b?+b:null,this.matchType=c,this.conditionValue=d}evaluate(a){let{targetingData:b}=a;if("number"==typeof this.customDataIndex){var c;const a=null===b||void 0===b||null===(c=b[_kameleoonData.KameleoonData.CustomData])||void 0===c?void 0:c[this.customDataIndex];if(a){const{value:b}=a,c=this.checkCondition(b);return this.error?(0,_tsRes.Err)(this.error):(0,_tsRes.Ok)(c)}}return(0,_tsRes.Ok)(this.matchType===_types.ValueMatchType.UNDEFINED)}checkCondition(a){if("string"!=typeof this.conditionValue&&this.matchType!==_types.ValueMatchType.TRUE&&this.matchType!==_types.ValueMatchType.FALSE)return!1;const b=this.conditionValue;if(this.matchType===_types.ValueMatchType.AMONG_VALUES){const c=this.parseArray(b);if(!c.ok)return this.error=c.error,!1;const d=new Set(c.data);return Array.isArray(a)?a.some(a=>d.has(a)):c.data.includes(a)}if(Array.isArray(a))return a.some(a=>this.checkCondition(a));switch(this.matchType){case _types.ValueMatchType.CONTAINS:return a.includes(b);case _types.ValueMatchType.EXACT:return a===this.conditionValue;case _types.ValueMatchType.REGULAR_EXPRESSION:return _utilities.Utilities.parseRegExp(b).test(a);case _types.ValueMatchType.LOWER:return+a<+this.conditionValue;case _types.ValueMatchType.EQUAL:return+a===+this.conditionValue;case _types.ValueMatchType.GREATER:return+a>+this.conditionValue;case _types.ValueMatchType.TRUE:return"true"===a.toLowerCase();case _types.ValueMatchType.FALSE:return"false"===a.toLowerCase();default:return!1}}parseArray(a){try{const b=JSON.parse(a);if(Array.isArray(b))return(0,_tsRes.Ok)(b)}catch(b){return(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.AmongValuesCheck,b,a))}return(0,_tsRes.Ok)([])}}exports.CustomData=CustomData;
|
|
2
2
|
//# sourceMappingURL=customData.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"customData.js","names":["CustomData","
|
|
1
|
+
{"version":3,"file":"customData.js","names":["CustomData","constructor","a","customDataIndex","valueMatchType","value","_defineProperty","matchType","conditionValue","evaluate","targetingData","c","customData","KameleoonData","customDataValue","result","checkCondition","error","Err","Ok","ValueMatchType","UNDEFINED","TRUE","FALSE","AMONG_VALUES","parseArray","ok","resultData","Set","data","Array","isArray","some","has","includes","CONTAINS","EXACT","REGULAR_EXPRESSION","Utilities","parseRegExp","test","LOWER","EQUAL","GREATER","toLowerCase","JSON","parse","err","KameleoonError","KameleoonException","AmongValuesCheck","exports"],"sources":["../../../src/targeting/conditions/customData.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport { CustomDataType, KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError, KameleoonException } from 'src/kameleoonError';\nimport { Utilities } from 'src/utilities';\nimport { EvaluationDataType, ValueMatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class CustomData implements ICondition {\n private customDataIndex: number | null;\n private matchType?: ValueMatchType | null;\n private conditionValue?: string | null;\n private error?: KameleoonError;\n\n constructor({ customDataIndex, valueMatchType, value }: ConditionDataType) {\n this.customDataIndex = customDataIndex ? Number(customDataIndex) : null;\n this.matchType = valueMatchType;\n this.conditionValue = value;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n if (typeof this.customDataIndex === 'number') {\n const customData =\n targetingData?.[KameleoonData.CustomData]?.[this.customDataIndex];\n\n if (customData) {\n const { value: customDataValue } = customData;\n const result = this.checkCondition(customDataValue);\n\n if (this.error) {\n return Err(this.error);\n }\n\n return Ok(result);\n }\n }\n\n return Ok(this.matchType === ValueMatchType.UNDEFINED);\n }\n\n private checkCondition(\n customDataValue: CustomDataType['value'] | string,\n ): boolean {\n if (\n typeof this.conditionValue !== 'string' &&\n this.matchType !== ValueMatchType.TRUE &&\n this.matchType !== ValueMatchType.FALSE\n ) {\n return false;\n }\n\n // --- Note ---\n // `ValueMatchType.TRUE` and `ValueMatchType.FALSE` do not use condition value\n // so we can safely assume that `this.conditionValue` is a string at this point\n const conditionValue = this.conditionValue as string;\n\n // --- Note ---\n // `AMONG_VALUES` is checked separately to avoid recursion overhead\n // for `JSON.parse` inside `this.parseArray`\n if (this.matchType === ValueMatchType.AMONG_VALUES) {\n const result = this.parseArray(conditionValue);\n\n if (!result.ok) {\n this.error = result.error;\n\n return false;\n }\n\n const resultData = new Set(result.data);\n\n return Array.isArray(customDataValue)\n ? customDataValue.some((value) => resultData.has(value))\n : result.data.includes(customDataValue);\n }\n\n if (Array.isArray(customDataValue)) {\n return customDataValue.some((value) => this.checkCondition(value));\n }\n\n switch (this.matchType) {\n case ValueMatchType.CONTAINS:\n return customDataValue.includes(conditionValue);\n case ValueMatchType.EXACT:\n return customDataValue === this.conditionValue;\n case ValueMatchType.REGULAR_EXPRESSION:\n return Utilities.parseRegExp(conditionValue).test(customDataValue);\n case ValueMatchType.LOWER:\n return Number(customDataValue) < Number(this.conditionValue);\n case ValueMatchType.EQUAL:\n return Number(customDataValue) === Number(this.conditionValue);\n case ValueMatchType.GREATER:\n return Number(customDataValue) > Number(this.conditionValue);\n case ValueMatchType.TRUE:\n return customDataValue.toLowerCase() === 'true';\n case ValueMatchType.FALSE:\n return customDataValue.toLowerCase() === 'false';\n default:\n return false;\n }\n }\n\n private parseArray(value: string): Result<string[], KameleoonError> {\n try {\n const result = JSON.parse(value);\n\n if (Array.isArray(result)) {\n return Ok(result);\n }\n } catch (err) {\n return Err(\n new KameleoonError(KameleoonException.AmongValuesCheck, err, value),\n );\n }\n\n return Ok([]);\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Device=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData");function
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Device=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData");function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class Device{constructor(a){let{device:b}=a;_defineProperty(this,"device",void 0),this.device=b}evaluate(a){let{targetingData:b}=a;const c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.Device];if(c){const{device:a}=c;return(0,_tsRes.Ok)(a===this.device)}return(0,_tsRes.Ok)(!1)}}exports.Device=Device;
|
|
2
2
|
//# sourceMappingURL=device.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.js","names":["Device","
|
|
1
|
+
{"version":3,"file":"device.js","names":["Device","constructor","a","device","_defineProperty","evaluate","targetingData","deviceData","KameleoonData","Ok","exports"],"sources":["../../../src/targeting/conditions/device.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { DeviceType, KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { EvaluationDataType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class Device implements ICondition {\n private device?: DeviceType | null;\n\n constructor({ device }: ConditionDataType) {\n this.device = device;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const deviceData = targetingData?.[KameleoonData.Device];\n\n if (deviceData) {\n const { device } = deviceData;\n\n return Ok(device === this.device);\n }\n\n return Ok(false);\n }\n}\n"],"mappings":"wqBAMO,KAAM,CAAAA,MAA6B,CAGxCC,WAAWA,CAAAC,CAAA,CAAgC,IAA/B,CAAEC,MAAM,CAANA,CAA0B,CAAC,CAAAD,CAAA,CAAAE,eAAA,uBACvC,IAAI,CAACD,MAAM,CAAGA,CAChB,CAEOE,QAAQA,CAAAH,CAAA,CAEyC,IAFxC,CACdI,aAAa,CAAbA,CACkB,CAAC,CAAAJ,CAAA,CACnB,KAAM,CAAAK,CAAU,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACR,MAAM,CAAC,CAExD,GAAIO,CAAU,CAAE,CACd,KAAM,CAAEJ,MAAM,CAANA,CAAO,CAAC,CAAGI,CAAU,CAE7B,MAAO,GAAAE,SAAE,EAACN,CAAM,GAAK,IAAI,CAACA,MAAM,CAClC,CAEA,MAAO,GAAAM,SAAE,IAAM,CACjB,CACF,CAACC,OAAA,CAAAV,MAAA,CAAAA,MAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var _tsRes=require("ts-res");Object.defineProperty(exports,"__esModule",{value:!0}),exports.ExclusiveCampaign=void 0;
|
|
1
|
+
"use strict";var _tsRes=require("ts-res");Object.defineProperty(exports,"__esModule",{value:!0}),exports.ExclusiveCampaign=void 0;class ExclusiveCampaign{evaluate(a){let{variationData:b,experimentId:c}=a;const d=Object.keys(b),e=!d.length,f=1===d.length&&d[0]===c+"";return(0,_tsRes.Ok)(e||f)}}exports.ExclusiveCampaign=ExclusiveCampaign;
|
|
2
2
|
//# sourceMappingURL=exclusiveCampaign.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exclusiveCampaign.js","names":["_tsRes","require","Object","defineProperty","exports","value","ExclusiveCampaign","
|
|
1
|
+
{"version":3,"file":"exclusiveCampaign.js","names":["_tsRes","require","Object","defineProperty","exports","value","ExclusiveCampaign","evaluate","a","variationData","experimentId","keys","isEmpty","length","isExclusive","Ok"],"sources":["../../../src/targeting/conditions/exclusiveCampaign.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { EvaluationDataType } from 'src/targeting/types';\nimport { ICondition } from './types';\n\nexport class ExclusiveCampaign implements ICondition {\n evaluate({\n variationData,\n experimentId,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const keys = Object.keys(variationData);\n const isEmpty = !keys.length;\n // --- Note ---\n // Checking exclusiveness is done by checking if there is only one experiment id with variation\n // and the next assigned experiment id will overwrite the previous one\n // (thus, still leaving one exclusive experiment)\n const isExclusive = keys.length === 1 && keys[0] === String(experimentId);\n const isSatisfied = isEmpty || isExclusive;\n\n return Ok(isSatisfied);\n }\n}\n"],"mappings":"aAAA,IAAAA,MAAA,CAAAC,OAAA,WAAoCC,MAAA,CAAAC,cAAA,CAAAC,OAAA,eAAAC,KAAA,MAAAD,OAAA,CAAAE,iBAAA,QAK7B,KAAM,CAAAA,iBAAwC,CACnDC,QAAQA,CAAAC,CAAA,CAGgD,IAH/C,CACPC,aAAa,CAAbA,CAAa,CACbC,YAAY,CAAZA,CACkB,CAAC,CAAAF,CAAA,MACb,CAAAG,CAAI,CAAGT,MAAM,CAACS,IAAI,CAACF,CAAa,CAAC,CACjCG,CAAO,CAAG,CAACD,CAAI,CAACE,MAAM,CAKtBC,CAAW,CAAmB,CAAC,GAAjBH,CAAI,CAACE,MAAY,EAAIF,CAAI,CAAC,CAAC,CAAC,GAAYD,CAAY,GAAC,CAGzE,MAAO,GAAAK,SAAE,EAFWH,CAAO,EAAIE,CAEV,CACvB,CACF,CAACV,OAAA,CAAAE,iBAAA,CAAAA,iBAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FirstVisit=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_utilities=require("../../utilities"),_types=require("../types");function
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FirstVisit=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_utilities=require("../../utilities"),_types=require("../types");function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class FirstVisit{constructor(a){let{matchType:b,count:c,unitOfTime:d}=a;_defineProperty(this,"matchType",void 0),_defineProperty(this,"conditionValue",void 0),_defineProperty(this,"timeUnit",void 0),this.matchType=b,this.conditionValue=c,this.timeUnit=d}evaluate(a){let{targetingData:b}=a;const c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.VisitsData];if(!c)return(0,_tsRes.Ok)(!1);const{currentVisit:d,previousVisits:e}=c,f=e.length?e[0]:d;return"number"==typeof f?(0,_tsRes.Ok)(this.checkCondition(f)):(0,_tsRes.Ok)(!1)}checkCondition(a){if(!this.matchType||"number"!=typeof this.conditionValue||!this.timeUnit)return!1;const b=Date.now()-a,c=_utilities.Utilities.convertTimeUnit(b,this.timeUnit);switch(this.matchType){case _types.MatchType.GREATER:return c>this.conditionValue;case _types.MatchType.LOWER:return c<this.conditionValue;default:return!1}}}exports.FirstVisit=FirstVisit;
|
|
2
2
|
//# sourceMappingURL=firstVisit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firstVisit.js","names":["FirstVisit","
|
|
1
|
+
{"version":3,"file":"firstVisit.js","names":["FirstVisit","constructor","a","matchType","count","unitOfTime","_defineProperty","conditionValue","timeUnit","evaluate","targetingData","visitsData","KameleoonData","VisitsData","Ok","currentVisit","previousVisits","firstVisitTimestamp","length","checkCondition","elapsedTimeMilliseconds","Date","now","elapsedTimeUnit","Utilities","convertTimeUnit","MatchType","GREATER","LOWER","exports"],"sources":["../../../src/targeting/conditions/firstVisit.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { Utilities, TimeUnit } from 'src/utilities';\nimport { EvaluationDataType, MatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class FirstVisit implements ICondition {\n private matchType?: MatchType | null;\n private conditionValue?: number | null;\n private timeUnit?: TimeUnit | null;\n\n constructor({ matchType, count, unitOfTime }: ConditionDataType) {\n this.matchType = matchType;\n this.conditionValue = count;\n this.timeUnit = unitOfTime;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const visitsData = targetingData?.[KameleoonData.VisitsData];\n\n if (!visitsData) {\n return Ok(false);\n }\n\n const { currentVisit, previousVisits } = visitsData;\n\n const firstVisitTimestamp = previousVisits.length\n ? previousVisits[0]\n : currentVisit;\n\n if (typeof firstVisitTimestamp !== 'number') {\n return Ok(false);\n }\n\n return Ok(this.checkCondition(firstVisitTimestamp));\n }\n\n private checkCondition(firstVisitTimestamp: number): boolean {\n if (\n !this.matchType ||\n typeof this.conditionValue !== 'number' ||\n !this.timeUnit\n ) {\n return false;\n }\n\n const elapsedTimeMilliseconds = Date.now() - firstVisitTimestamp;\n const elapsedTimeUnit = Utilities.convertTimeUnit(\n elapsedTimeMilliseconds,\n this.timeUnit,\n );\n\n switch (this.matchType) {\n case MatchType.GREATER:\n return elapsedTimeUnit > this.conditionValue;\n case MatchType.LOWER:\n return elapsedTimeUnit < this.conditionValue;\n default:\n return false;\n }\n }\n}\n"],"mappings":"6uBAOO,KAAM,CAAAA,UAAiC,CAK5CC,WAAWA,CAAAC,CAAA,CAAsD,IAArD,CAAEC,SAAS,CAATA,CAAS,CAAEC,KAAK,CAALA,CAAK,CAAEC,UAAU,CAAVA,CAA8B,CAAC,CAAAH,CAAA,CAAAI,eAAA,0BAAAA,eAAA,+BAAAA,eAAA,yBAC7D,IAAI,CAACH,SAAS,CAAGA,CAAS,CAC1B,IAAI,CAACI,cAAc,CAAGH,CAAK,CAC3B,IAAI,CAACI,QAAQ,CAAGH,CAClB,CAEOI,QAAQA,CAAAP,CAAA,CAEyC,IAFxC,CACdQ,aAAa,CAAbA,CACkB,CAAC,CAAAR,CAAA,CACnB,KAAM,CAAAS,CAAU,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACC,UAAU,CAAC,CAE5D,GAAI,CAACF,CAAU,CACb,MAAO,GAAAG,SAAE,IAAM,CAAC,CACjB,KAEK,CAAEC,YAAY,CAAZA,CAAY,CAAEC,cAAc,CAAdA,CAAe,CAAC,CAAGL,CAAU,CAE7CM,CAAmB,CAAGD,CAAc,CAACE,MAAM,CAC7CF,CAAc,CAAC,CAAC,CAAC,CACjBD,CAAY,OAEmB,QAAQ,EAAvC,MAAO,CAAAE,CAAgC,CAIpC,GAAAH,SAAE,EAAC,IAAI,CAACK,cAAc,CAACF,CAAmB,CAAC,CAAC,CAH1C,GAAAH,SAAE,IAAM,CAInB,CAEQK,cAAcA,CAACF,CAA2B,CAAW,CAC3D,GACE,CAAC,IAAI,CAACd,SAAS,EACgB,QAAQ,EAAvC,MAAO,KAAI,CAACI,cAA2B,EACvC,CAAC,IAAI,CAACC,QAAQ,CAEd,SACD,KAEK,CAAAY,CAAuB,CAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,CAAGL,CAAmB,CAC1DM,CAAe,CAAGC,oBAAS,CAACC,eAAe,CAC/CL,CAAuB,CACvB,IAAI,CAACZ,QACP,CAAC,CAED,OAAQ,IAAI,CAACL,SAAS,EACpB,IAAK,CAAAuB,gBAAS,CAACC,OAAO,CACpB,MAAO,CAAAJ,CAAe,CAAG,IAAI,CAAChB,cAAc,CAC9C,IAAK,CAAAmB,gBAAS,CAACE,KAAK,CAClB,MAAO,CAAAL,CAAe,CAAG,IAAI,CAAChB,cAAc,CAC9C,QACE,QACJ,CACF,CACF,CAACsB,OAAA,CAAA7B,UAAA,CAAAA,UAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.GeolocationCondition=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData");function
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.GeolocationCondition=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData");function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class GeolocationCondition{constructor(a){let{country:b,region:c,city:d}=a;_defineProperty(this,"country",void 0),_defineProperty(this,"region",void 0),_defineProperty(this,"city",void 0),this.country=b,this.region=c,this.city=d}evaluate(a){let{targetingData:b}=a;const c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.GeolocationData];if(c){const{country:a,region:b,city:d}=c,[e,f,g]=[this.country,this.region,this.city];if(!e||!a)return(0,_tsRes.Ok)(!1);return(0,_tsRes.Ok)(a===e&&(!f||b===f)&&(!g||d===g))}return(0,_tsRes.Ok)(!1)}}exports.GeolocationCondition=GeolocationCondition;
|
|
2
2
|
//# sourceMappingURL=geolocation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geolocation.js","names":["GeolocationCondition","
|
|
1
|
+
{"version":3,"file":"geolocation.js","names":["GeolocationCondition","constructor","a","country","region","city","_defineProperty","evaluate","targetingData","geolocationData","KameleoonData","GeolocationData","dataCountry","dataRegion","dataCity","conditionCountry","conditionRegion","conditionCity","Ok","exports"],"sources":["../../../src/targeting/conditions/geolocation.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { EvaluationDataType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\n// --- Note ---\n// `GeolocationCondition` uses `Condition` in the naming to avoid confusion with\n// native `Geolocation` API\nexport class GeolocationCondition implements ICondition {\n private country?: string | null;\n private region?: string | null;\n private city?: string | null;\n\n constructor({ country, region, city }: ConditionDataType) {\n this.country = country;\n this.region = region;\n this.city = city;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const geolocationData = targetingData?.[KameleoonData.GeolocationData];\n\n if (geolocationData) {\n const {\n country: dataCountry,\n region: dataRegion,\n city: dataCity,\n } = geolocationData;\n const [conditionCountry, conditionRegion, conditionCity] = [\n this.country,\n this.region,\n this.city,\n ];\n\n if (!conditionCountry || !dataCountry) {\n return Ok(false);\n }\n\n const result =\n dataCountry === conditionCountry &&\n (!conditionRegion || dataRegion === conditionRegion) &&\n (!conditionCity || dataCity === conditionCity);\n\n return Ok(result);\n }\n\n return Ok(false);\n }\n}\n"],"mappings":"srBASO,KAAM,CAAAA,oBAA2C,CAKtDC,WAAWA,CAAAC,CAAA,CAA+C,IAA9C,CAAEC,OAAO,CAAPA,CAAO,CAAEC,MAAM,CAANA,CAAM,CAAEC,IAAI,CAAJA,CAAwB,CAAC,CAAAH,CAAA,CAAAI,eAAA,wBAAAA,eAAA,uBAAAA,eAAA,qBACtD,IAAI,CAACH,OAAO,CAAGA,CAAO,CACtB,IAAI,CAACC,MAAM,CAAGA,CAAM,CACpB,IAAI,CAACC,IAAI,CAAGA,CACd,CAEOE,QAAQA,CAAAL,CAAA,CAEyC,IAFxC,CACdM,aAAa,CAAbA,CACkB,CAAC,CAAAN,CAAA,CACnB,KAAM,CAAAO,CAAe,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACC,eAAe,CAAC,CAEtE,GAAIF,CAAe,CAAE,MACb,CACJN,OAAO,CAAES,CAAW,CACpBR,MAAM,CAAES,CAAU,CAClBR,IAAI,CAAES,CACR,CAAC,CAAGL,CAAe,CACb,CAACM,CAAgB,CAAEC,CAAe,CAAEC,CAAa,CAAC,CAAG,CACzD,IAAI,CAACd,OAAO,CACZ,IAAI,CAACC,MAAM,CACX,IAAI,CAACC,IAAI,CACV,CAED,GAAI,CAACU,CAAgB,EAAI,CAACH,CAAW,CACnC,MAAO,GAAAM,SAAE,IAAM,CAAC,CAQlB,MAAO,GAAAA,SAAE,EAJPN,CAAW,GAAKG,CAAgB,GAC/B,CAACC,CAAe,EAAIH,CAAU,GAAKG,CAAe,CAAC,GACnD,CAACC,CAAa,EAAIH,CAAQ,GAAKG,CAAa,CAE/B,CAClB,CAEA,MAAO,GAAAC,SAAE,IAAM,CACjB,CACF,CAACC,OAAA,CAAAnB,oBAAA,CAAAA,oBAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ApplicationVersion",{enumerable:!0,get:function
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ApplicationVersion",{enumerable:!0,get:function(){return _applicationVersion.ApplicationVersion}}),Object.defineProperty(exports,"Browser",{enumerable:!0,get:function(){return _browser.Browser}}),Object.defineProperty(exports,"ConditionDataType",{enumerable:!0,get:function(){return _types.ConditionDataType}}),Object.defineProperty(exports,"ConditionFactory",{enumerable:!0,get:function(){return _conditionFactory.ConditionFactory}}),Object.defineProperty(exports,"ConditionType",{enumerable:!0,get:function(){return _types.ConditionType}}),Object.defineProperty(exports,"Conversion",{enumerable:!0,get:function(){return _conversion.Conversion}}),Object.defineProperty(exports,"Cookie",{enumerable:!0,get:function(){return _cookie.Cookie}}),Object.defineProperty(exports,"CustomData",{enumerable:!0,get:function(){return _customData.CustomData}}),Object.defineProperty(exports,"Device",{enumerable:!0,get:function(){return _device.Device}}),Object.defineProperty(exports,"ExclusiveCampaign",{enumerable:!0,get:function(){return _exclusiveCampaign.ExclusiveCampaign}}),Object.defineProperty(exports,"FirstVisit",{enumerable:!0,get:function(){return _firstVisit.FirstVisit}}),Object.defineProperty(exports,"GeolocationCondition",{enumerable:!0,get:function(){return _geolocation.GeolocationCondition}}),Object.defineProperty(exports,"LastVisit",{enumerable:!0,get:function(){return _lastVisit.LastVisit}}),Object.defineProperty(exports,"NewVisitor",{enumerable:!0,get:function(){return _newVisitor.NewVisitor}}),Object.defineProperty(exports,"OperatingSystem",{enumerable:!0,get:function(){return _operatingSystem.OperatingSystem}}),Object.defineProperty(exports,"PageTitle",{enumerable:!0,get:function(){return _pageTitle.PageTitle}}),Object.defineProperty(exports,"PageUrl",{enumerable:!0,get:function(){return _pageUrl.PageUrl}}),Object.defineProperty(exports,"PreviousPage",{enumerable:!0,get:function(){return _previousPage.PreviousPage}}),Object.defineProperty(exports,"SameDayVisits",{enumerable:!0,get:function(){return _sameDayVisits.SameDayVisits}}),Object.defineProperty(exports,"SdkLanguage",{enumerable:!0,get:function(){return _sdkLanguage.SdkLanguage}}),Object.defineProperty(exports,"Segment",{enumerable:!0,get:function(){return _segment.Segment}}),Object.defineProperty(exports,"TargetFeatureFlag",{enumerable:!0,get:function(){return _targetFeatureFlag.TargetFeatureFlag}}),Object.defineProperty(exports,"VisitedPages",{enumerable:!0,get:function(){return _visitedPages.VisitedPages}}),Object.defineProperty(exports,"VisitorCode",{enumerable:!0,get:function(){return _visitorCode.VisitorCode}}),Object.defineProperty(exports,"Visits",{enumerable:!0,get:function(){return _visits.Visits}});var _device=require("./device"),_conditionFactory=require("./conditionFactory"),_types=require("./types"),_customData=require("./customData"),_exclusiveCampaign=require("./exclusiveCampaign"),_browser=require("./browser"),_pageUrl=require("./pageUrl"),_pageTitle=require("./pageTitle"),_conversion=require("./conversion"),_visitorCode=require("./visitorCode"),_sdkLanguage=require("./sdkLanguage"),_targetFeatureFlag=require("./targetFeatureFlag"),_cookie=require("./cookie"),_operatingSystem=require("./operatingSystem"),_geolocation=require("./geolocation"),_segment=require("./segment"),_previousPage=require("./previousPage"),_visitedPages=require("./visitedPages"),_firstVisit=require("./firstVisit"),_lastVisit=require("./lastVisit"),_visits=require("./visits"),_sameDayVisits=require("./sameDayVisits"),_newVisitor=require("./newVisitor"),_applicationVersion=require("./applicationVersion");
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.LastVisit=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_utilities=require("../../utilities"),_types=require("../types");function
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.LastVisit=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_utilities=require("../../utilities"),_types=require("../types");function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class LastVisit{constructor(a){let{matchType:b,count:c,unitOfTime:d}=a;_defineProperty(this,"matchType",void 0),_defineProperty(this,"conditionValue",void 0),_defineProperty(this,"timeUnit",void 0),this.matchType=b,this.conditionValue=c,this.timeUnit=d}evaluate(a){let{targetingData:b}=a;const c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.VisitsData];if(!c)return(0,_tsRes.Ok)(!1);const{currentVisit:d,previousVisits:e}=c,f=d?d:e[e.length-1];return"number"==typeof f?(0,_tsRes.Ok)(this.checkCondition(f)):(0,_tsRes.Ok)(!1)}checkCondition(a){if(!this.matchType||"number"!=typeof this.conditionValue||!this.timeUnit)return!1;const b=Date.now()-a,c=_utilities.Utilities.convertTimeUnit(b,this.timeUnit);switch(this.matchType){case _types.MatchType.GREATER:return c>this.conditionValue;case _types.MatchType.LOWER:return c<this.conditionValue;default:return!1}}}exports.LastVisit=LastVisit;
|
|
2
2
|
//# sourceMappingURL=lastVisit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lastVisit.js","names":["LastVisit","
|
|
1
|
+
{"version":3,"file":"lastVisit.js","names":["LastVisit","constructor","a","matchType","count","unitOfTime","_defineProperty","conditionValue","timeUnit","evaluate","targetingData","visitsData","KameleoonData","VisitsData","Ok","currentVisit","previousVisits","lastVisitTimestamp","length","checkCondition","elapsedTimeMilliseconds","Date","now","elapsedTimeUnit","Utilities","convertTimeUnit","MatchType","GREATER","LOWER","exports"],"sources":["../../../src/targeting/conditions/lastVisit.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { Utilities, TimeUnit } from 'src/utilities';\nimport { EvaluationDataType, MatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class LastVisit implements ICondition {\n private matchType?: MatchType | null;\n private conditionValue?: number | null;\n private timeUnit?: TimeUnit | null;\n\n constructor({ matchType, count, unitOfTime }: ConditionDataType) {\n this.matchType = matchType;\n this.conditionValue = count;\n this.timeUnit = unitOfTime;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const visitsData = targetingData?.[KameleoonData.VisitsData];\n\n if (!visitsData) {\n return Ok(false);\n }\n\n const { currentVisit, previousVisits } = visitsData;\n\n const lastVisitTimestamp = currentVisit\n ? currentVisit\n : previousVisits[previousVisits.length - 1];\n\n if (typeof lastVisitTimestamp !== 'number') {\n return Ok(false);\n }\n\n return Ok(this.checkCondition(lastVisitTimestamp));\n }\n\n private checkCondition(lastVisitTimestamp: number): boolean {\n if (\n !this.matchType ||\n typeof this.conditionValue !== 'number' ||\n !this.timeUnit\n ) {\n return false;\n }\n\n const elapsedTimeMilliseconds = Date.now() - lastVisitTimestamp;\n const elapsedTimeUnit = Utilities.convertTimeUnit(\n elapsedTimeMilliseconds,\n this.timeUnit,\n );\n\n switch (this.matchType) {\n case MatchType.GREATER:\n return elapsedTimeUnit > this.conditionValue;\n case MatchType.LOWER:\n return elapsedTimeUnit < this.conditionValue;\n default:\n return false;\n }\n }\n}\n"],"mappings":"4uBAOO,KAAM,CAAAA,SAAgC,CAK3CC,WAAWA,CAAAC,CAAA,CAAsD,IAArD,CAAEC,SAAS,CAATA,CAAS,CAAEC,KAAK,CAALA,CAAK,CAAEC,UAAU,CAAVA,CAA8B,CAAC,CAAAH,CAAA,CAAAI,eAAA,0BAAAA,eAAA,+BAAAA,eAAA,yBAC7D,IAAI,CAACH,SAAS,CAAGA,CAAS,CAC1B,IAAI,CAACI,cAAc,CAAGH,CAAK,CAC3B,IAAI,CAACI,QAAQ,CAAGH,CAClB,CAEOI,QAAQA,CAAAP,CAAA,CAEyC,IAFxC,CACdQ,aAAa,CAAbA,CACkB,CAAC,CAAAR,CAAA,CACnB,KAAM,CAAAS,CAAU,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACC,UAAU,CAAC,CAE5D,GAAI,CAACF,CAAU,CACb,MAAO,GAAAG,SAAE,IAAM,CAAC,CACjB,KAEK,CAAEC,YAAY,CAAZA,CAAY,CAAEC,cAAc,CAAdA,CAAe,CAAC,CAAGL,CAAU,CAE7CM,CAAkB,CAAGF,CAAY,CACnCA,CAAY,CACZC,CAAc,CAACA,CAAc,CAACE,MAAM,CAAG,CAAC,CAAC,OAEX,QAAQ,EAAtC,MAAO,CAAAD,CAA+B,CAInC,GAAAH,SAAE,EAAC,IAAI,CAACK,cAAc,CAACF,CAAkB,CAAC,CAAC,CAHzC,GAAAH,SAAE,IAAM,CAInB,CAEQK,cAAcA,CAACF,CAA0B,CAAW,CAC1D,GACE,CAAC,IAAI,CAACd,SAAS,EACgB,QAAQ,EAAvC,MAAO,KAAI,CAACI,cAA2B,EACvC,CAAC,IAAI,CAACC,QAAQ,CAEd,SACD,KAEK,CAAAY,CAAuB,CAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,CAAGL,CAAkB,CACzDM,CAAe,CAAGC,oBAAS,CAACC,eAAe,CAC/CL,CAAuB,CACvB,IAAI,CAACZ,QACP,CAAC,CAED,OAAQ,IAAI,CAACL,SAAS,EACpB,IAAK,CAAAuB,gBAAS,CAACC,OAAO,CACpB,MAAO,CAAAJ,CAAe,CAAG,IAAI,CAAChB,cAAc,CAC9C,IAAK,CAAAmB,gBAAS,CAACE,KAAK,CAClB,MAAO,CAAAL,CAAe,CAAG,IAAI,CAAChB,cAAc,CAC9C,QACE,QACJ,CACF,CACF,CAACsB,OAAA,CAAA7B,SAAA,CAAAA,SAAA"}
|
|
@@ -1,2 +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
|
|
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 _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class NewVisitor{constructor(a){let{visitorType:b}=a;_defineProperty(this,"visitorType",void 0),this.visitorType=b}evaluate(a){let{targetingData:b}=a;const c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.VisitsData];if(!c||!this.visitorType)return(0,_tsRes.Ok)(!1);const{currentVisit:d,previousVisits:e}=c,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)}}}exports.NewVisitor=NewVisitor;
|
|
2
2
|
//# sourceMappingURL=newVisitor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"newVisitor.js","names":["NewVisitor","
|
|
1
|
+
{"version":3,"file":"newVisitor.js","names":["NewVisitor","constructor","a","visitorType","_defineProperty","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":"uvBAMO,KAAM,CAAAA,UAAiC,CAG5CC,WAAWA,CAAAC,CAAA,CAAqC,IAApC,CAAEC,WAAW,CAAXA,CAA+B,CAAC,CAAAD,CAAA,CAAAE,eAAA,4BAC5C,IAAI,CAACD,WAAW,CAAGA,CACrB,CAEOE,QAAQA,CAAAH,CAAA,CAEyC,IAFxC,CACdI,aAAa,CAAbA,CACkB,CAAC,CAAAJ,CAAA,CACnB,KAAM,CAAAK,CAAU,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACC,UAAU,CAAC,CAE5D,GAAI,CAACF,CAAU,EAAI,CAAC,IAAI,CAACJ,WAAW,CAClC,MAAO,GAAAO,SAAE,IAAM,CAAC,CACjB,KAEK,CAAEC,YAAY,CAAZA,CAAY,CAAEC,cAAc,CAAdA,CAAe,CAAC,CAAGL,CAAU,CAK7CM,CAAY,CACfF,CAAY,EAAI,CAACC,CAAc,CAACE,MAAM,EACtC,CAACH,CAAY,EAAI,CAACC,CAAc,CAACE,MAAO,CAE3C,OAAQ,IAAI,CAACX,WAAW,EACtB,IAAK,CAAAY,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,CAACf,WAAW,CACjC,CACF,CACF,CAACgB,OAAA,CAAAnB,UAAA,CAAAA,UAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.OperatingSystem=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData");function
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.OperatingSystem=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData");function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class OperatingSystem{constructor(a){let{os:b}=a;_defineProperty(this,"operatingSystem",void 0),this.operatingSystem=b}evaluate(a){let{targetingData:b}=a;const c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.OperatingSystem];if(c){const{operatingSystem:a}=c;return(0,_tsRes.Ok)(a===this.operatingSystem)}return(0,_tsRes.Ok)(!1)}}exports.OperatingSystem=OperatingSystem;
|
|
2
2
|
//# sourceMappingURL=operatingSystem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operatingSystem.js","names":["OperatingSystem","
|
|
1
|
+
{"version":3,"file":"operatingSystem.js","names":["OperatingSystem","constructor","a","os","_defineProperty","operatingSystem","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":"irBAOO,KAAM,CAAAA,eAAsC,CAGjDC,WAAWA,CAAAC,CAAA,CAA4B,IAA3B,CAAEC,EAAE,CAAFA,CAAsB,CAAC,CAAAD,CAAA,CAAAE,eAAA,gCACnC,IAAI,CAACC,eAAe,CAAGF,CACzB,CAEOG,QAAQA,CAAAJ,CAAA,CAEyC,IAFxC,CACdK,aAAa,CAAbA,CACkB,CAAC,CAAAL,CAAA,CACnB,KAAM,CAAAM,CAAmB,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACT,eAAe,CAAC,CAE1E,GAAIQ,CAAmB,CAAE,CACvB,KAAM,CAAEH,eAAe,CAAfA,CAAgB,CAAC,CAAGG,CAAmB,CAE/C,MAAO,GAAAE,SAAE,EAACL,CAAe,GAAK,IAAI,CAACA,eAAe,CACpD,CAEA,MAAO,GAAAK,SAAE,IAAM,CACjB,CACF,CAACC,OAAA,CAAAX,eAAA,CAAAA,eAAA"}
|
|
@@ -1,2 +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
|
|
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 _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class PageTitle{constructor(a){let{matchType:b,title:c}=a;_defineProperty(this,"matchType",void 0),_defineProperty(this,"conditionValue",void 0),this.matchType=b,this.conditionValue=c}evaluate(a){let{targetingData:b}=a;const c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.PageView];return c?(0,_tsRes.Ok)(Object.values(c).some(a=>this.checkCondition(a.title))):(0,_tsRes.Ok)(!1)}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}}}exports.PageTitle=PageTitle;
|
|
2
2
|
//# sourceMappingURL=pageTitle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pageTitle.js","names":["PageTitle","
|
|
1
|
+
{"version":3,"file":"pageTitle.js","names":["PageTitle","constructor","a","matchType","title","_defineProperty","conditionValue","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":"4uBAOO,KAAM,CAAAA,SAAgC,CAI3CC,WAAWA,CAAAC,CAAA,CAA0C,IAAzC,CAAEC,SAAS,CAATA,CAAS,CAAEC,KAAK,CAALA,CAAyB,CAAC,CAAAF,CAAA,CAAAG,eAAA,0BAAAA,eAAA,+BACjD,IAAI,CAACF,SAAS,CAAGA,CAAS,CAC1B,IAAI,CAACG,cAAc,CAAGF,CACxB,CAEOG,QAAQA,CAAAL,CAAA,CAEyC,IAFxC,CACdM,aAAa,CAAbA,CACkB,CAAC,CAAAN,CAAA,CACnB,KAAM,CAAAO,CAAY,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACC,QAAQ,CAAC,CAAC,MAEzD,CAAAF,CAAY,CACP,GAAAG,SAAE,EACPC,MAAM,CAACC,MAAM,CAACL,CAAY,CAAC,CAACM,IAAI,CAAEC,CAAI,EAC7B,IAAI,CAACC,cAAc,CAACD,CAAI,CAACZ,KAAK,CACtC,CACH,CAAC,CAGI,GAAAQ,SAAE,IAAM,CACjB,CAEQK,cAAcA,CAACb,CAAa,CAAW,CAC7C,GAAI,CAAC,IAAI,CAACD,SAAS,EAAI,CAAC,IAAI,CAACG,cAAc,CACzC,SAGF,OAAQ,IAAI,CAACH,SAAS,EACpB,IAAK,CAAAe,gBAAS,CAACC,QAAQ,CACrB,MAAO,CAAAf,CAAK,CAACgB,QAAQ,CAAC,IAAI,CAACd,cAAc,CAAC,CAC5C,IAAK,CAAAY,gBAAS,CAACG,KAAK,CAClB,MAAO,CAAAjB,CAAK,GAAK,IAAI,CAACE,cAAc,CACtC,IAAK,CAAAY,gBAAS,CAACI,kBAAkB,CAC/B,MAAO,CAAAC,oBAAS,CAACC,WAAW,CAAC,IAAI,CAAClB,cAAc,CAAC,CAACmB,IAAI,CAACrB,CAAK,CAAC,CAC/D,QACE,QACJ,CACF,CACF,CAACsB,OAAA,CAAA1B,SAAA,CAAAA,SAAA"}
|
|
@@ -1,2 +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
|
|
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 _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class PageUrl{constructor(a){let{matchType:b,url:c}=a;_defineProperty(this,"matchType",void 0),_defineProperty(this,"conditionValue",void 0),this.matchType=b,this.conditionValue=c}evaluate(a){let{targetingData:b}=a;const c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.PageView];return c?(0,_tsRes.Ok)(Object.keys(c).some(a=>this.checkCondition(a))):(0,_tsRes.Ok)(!1)}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}}}exports.PageUrl=PageUrl;
|
|
2
2
|
//# sourceMappingURL=pageUrl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pageUrl.js","names":["PageUrl","
|
|
1
|
+
{"version":3,"file":"pageUrl.js","names":["PageUrl","constructor","a","matchType","url","_defineProperty","conditionValue","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":"0uBAOO,KAAM,CAAAA,OAA8B,CAIzCC,WAAWA,CAAAC,CAAA,CAAwC,IAAvC,CAAEC,SAAS,CAATA,CAAS,CAAEC,GAAG,CAAHA,CAAuB,CAAC,CAAAF,CAAA,CAAAG,eAAA,0BAAAA,eAAA,+BAC/C,IAAI,CAACF,SAAS,CAAGA,CAAS,CAC1B,IAAI,CAACG,cAAc,CAAGF,CACxB,CAEOG,QAAQA,CAAAL,CAAA,CAEyC,IAFxC,CACdM,aAAa,CAAbA,CACkB,CAAC,CAAAN,CAAA,CACnB,KAAM,CAAAO,CAAY,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACC,QAAQ,CAAC,CAAC,MAEzD,CAAAF,CAAY,CACP,GAAAG,SAAE,EACPC,MAAM,CAACC,IAAI,CAACL,CAAY,CAAC,CAACM,IAAI,CAAEX,CAAG,EAAK,IAAI,CAACY,cAAc,CAACZ,CAAG,CAAC,CAClE,CAAC,CAGI,GAAAQ,SAAE,IAAM,CACjB,CAEQI,cAAcA,CAACZ,CAAW,CAAW,CAC3C,GAAI,CAAC,IAAI,CAACD,SAAS,EAAI,CAAC,IAAI,CAACG,cAAc,CACzC,SAGF,OAAQ,IAAI,CAACH,SAAS,EACpB,IAAK,CAAAc,gBAAS,CAACC,QAAQ,CACrB,MAAO,CAAAd,CAAG,CAACe,QAAQ,CAAC,IAAI,CAACb,cAAc,CAAC,CAC1C,IAAK,CAAAW,gBAAS,CAACG,KAAK,CAClB,MAAO,CAAAhB,CAAG,GAAK,IAAI,CAACE,cAAc,CACpC,IAAK,CAAAW,gBAAS,CAACI,kBAAkB,CAC/B,MAAO,CAAAC,oBAAS,CAACC,WAAW,CAAC,IAAI,CAACjB,cAAc,CAAC,CAACkB,IAAI,CAACpB,CAAG,CAAC,CAC7D,QACE,QACJ,CACF,CACF,CAACqB,OAAA,CAAAzB,OAAA,CAAAA,OAAA"}
|
|
@@ -1,2 +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
|
|
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 _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class PreviousPage{constructor(a){let{matchType:b,url:c}=a;_defineProperty(this,"conditionValue",void 0),_defineProperty(this,"matchType",void 0),this.conditionValue=c,this.matchType=b}evaluate(a){let{targetingData:b}=a;const c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.PageView];if(!c)return(0,_tsRes.Ok)(!1);const d=this.getSecondLatestPageView(Object.values(c));if(!d)return(0,_tsRes.Ok)(!1);const e=d.urlAddress;return(0,_tsRes.Ok)(this.checkCondition(e))}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}}getSecondLatestPageView(a){if(2>a.length)return;let b,c;return a.forEach(a=>{var d,e;const f=a.timestamps[a.timestamps.length-1],g=a.timestamps[a.timestamps.length-2];if(!b&&!c)return b=a,void(g&&(c=a));const h=null!==(d=b.timestamps[b.timestamps.length-1])&&void 0!==d?d:0;if(f>h){var i,j;c=b,b=a;const d=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>d&&(c=a))}let k;if(b.urlAddress===(null===(e=c)||void 0===e?void 0:e.urlAddress))k=c.timestamps[c.timestamps.length-2];else{var l,m,n;k=null!==(l=null===(m=c)||void 0===m?void 0:m.timestamps[(null===(n=c)||void 0===n?void 0:n.timestamps.length)-1])&&void 0!==l?l:0}f&&f>k&&(c=a)}),c}}exports.PreviousPage=PreviousPage;
|
|
2
2
|
//# sourceMappingURL=previousPage.js.map
|