@kameleoon/javascript-sdk-core 4.4.8 → 5.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 +32 -0
- package/dist/cacheManager/cacheManager.js +1 -1
- package/dist/cacheManager/cacheManager.js.map +1 -1
- package/dist/cacheManager/index.js.map +1 -1
- package/dist/cacheManager/types.js.map +1 -1
- package/dist/clientConfiguration/clientConfiguration.d.ts +2 -6
- package/dist/clientConfiguration/clientConfiguration.js +1 -1
- package/dist/clientConfiguration/clientConfiguration.js.map +1 -1
- package/dist/clientConfiguration/constants.js.map +1 -1
- package/dist/clientConfiguration/index.js.map +1 -1
- package/dist/clientConfiguration/types.d.ts +2 -5
- package/dist/clientConfiguration/types.js +1 -1
- package/dist/clientConfiguration/types.js.map +1 -1
- package/dist/clientSettings/clientSettings.d.ts +2 -1
- package/dist/clientSettings/clientSettings.js +1 -1
- package/dist/clientSettings/clientSettings.js.map +1 -1
- package/dist/clientSettings/index.js.map +1 -1
- package/dist/clientSettings/types.d.ts +1 -0
- package/dist/clientSettings/types.js.map +1 -1
- package/dist/constants.d.ts +0 -1
- package/dist/constants.js +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/eventManager/eventManager.js +1 -1
- package/dist/eventManager/eventManager.js.map +1 -1
- package/dist/eventManager/index.js.map +1 -1
- package/dist/eventManager/types.js.map +1 -1
- package/dist/eventSource/constants.js.map +1 -1
- package/dist/eventSource/eventSource.js +1 -1
- package/dist/eventSource/eventSource.js.map +1 -1
- package/dist/eventSource/index.js.map +1 -1
- package/dist/eventSource/types.js.map +1 -1
- package/dist/hasher/hasher.js.map +1 -1
- package/dist/hasher/index.js.map +1 -1
- package/dist/hasher/types.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/kameleoonClient.d.ts +6 -13
- package/dist/kameleoonClient.js +1 -1
- package/dist/kameleoonClient.js.map +1 -1
- package/dist/kameleoonClientInterface.d.ts +18 -16
- package/dist/kameleoonClientInterface.js.map +1 -1
- package/dist/kameleoonData/applicationVersion.d.ts +2 -3
- package/dist/kameleoonData/applicationVersion.js +1 -1
- package/dist/kameleoonData/applicationVersion.js.map +1 -1
- package/dist/kameleoonData/browser.d.ts +9 -3
- package/dist/kameleoonData/browser.js +1 -1
- package/dist/kameleoonData/browser.js.map +1 -1
- package/dist/kameleoonData/conversion.d.ts +12 -3
- package/dist/kameleoonData/conversion.js +1 -1
- package/dist/kameleoonData/conversion.js.map +1 -1
- package/dist/kameleoonData/cookie.d.ts +2 -3
- package/dist/kameleoonData/cookie.js +1 -1
- package/dist/kameleoonData/cookie.js.map +1 -1
- package/dist/kameleoonData/customData.d.ts +11 -3
- package/dist/kameleoonData/customData.js +1 -1
- package/dist/kameleoonData/customData.js.map +1 -1
- package/dist/kameleoonData/dataManager.d.ts +34 -23
- package/dist/kameleoonData/dataManager.js +1 -1
- package/dist/kameleoonData/dataManager.js.map +1 -1
- package/dist/kameleoonData/dataProcessor.d.ts +22 -24
- package/dist/kameleoonData/dataProcessor.js +1 -1
- package/dist/kameleoonData/dataProcessor.js.map +1 -1
- package/dist/kameleoonData/device.d.ts +9 -3
- package/dist/kameleoonData/device.js +1 -1
- package/dist/kameleoonData/device.js.map +1 -1
- package/dist/kameleoonData/geolocation.d.ts +9 -3
- package/dist/kameleoonData/geolocation.js +1 -1
- package/dist/kameleoonData/geolocation.js.map +1 -1
- package/dist/kameleoonData/helpers.js.map +1 -1
- package/dist/kameleoonData/index.d.ts +2 -1
- package/dist/kameleoonData/index.js +1 -1
- package/dist/kameleoonData/index.js.map +1 -1
- package/dist/kameleoonData/kameleoonConversionScore.d.ts +2 -1
- package/dist/kameleoonData/kameleoonConversionScore.js +1 -1
- package/dist/kameleoonData/kameleoonConversionScore.js.map +1 -1
- package/dist/kameleoonData/operatingSystem.d.ts +9 -3
- package/dist/kameleoonData/operatingSystem.js +1 -1
- package/dist/kameleoonData/operatingSystem.js.map +1 -1
- package/dist/kameleoonData/pageView.d.ts +12 -8
- package/dist/kameleoonData/pageView.js +1 -1
- package/dist/kameleoonData/pageView.js.map +1 -1
- package/dist/kameleoonData/types.d.ts +97 -31
- package/dist/kameleoonData/types.js +1 -1
- package/dist/kameleoonData/types.js.map +1 -1
- package/dist/kameleoonData/uniqueIdentifier.d.ts +19 -0
- package/dist/kameleoonData/uniqueIdentifier.js +2 -0
- package/dist/kameleoonData/uniqueIdentifier.js.map +1 -0
- package/dist/kameleoonData/userAgent.d.ts +2 -3
- package/dist/kameleoonData/userAgent.js +1 -1
- package/dist/kameleoonData/userAgent.js.map +1 -1
- package/dist/kameleoonData/visitProcessor.d.ts +3 -4
- package/dist/kameleoonData/visitProcessor.js +1 -1
- package/dist/kameleoonData/visitProcessor.js.map +1 -1
- package/dist/kameleoonData/visitsData.d.ts +2 -0
- package/dist/kameleoonData/visitsData.js +1 -1
- package/dist/kameleoonData/visitsData.js.map +1 -1
- package/dist/kameleoonError/constants.js +1 -1
- package/dist/kameleoonError/constants.js.map +1 -1
- package/dist/kameleoonError/helpers.js +1 -1
- package/dist/kameleoonError/helpers.js.map +1 -1
- package/dist/kameleoonError/index.js.map +1 -1
- package/dist/kameleoonError/kameleoonError.js +1 -1
- package/dist/kameleoonError/kameleoonError.js.map +1 -1
- package/dist/kameleoonError/types.js.map +1 -1
- package/dist/kameleoonUtils.d.ts +1 -11
- 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.d.ts +1 -1
- package/dist/requester/index.js +1 -1
- package/dist/requester/index.js.map +1 -1
- package/dist/requester/requester.d.ts +5 -7
- package/dist/requester/requester.js +1 -1
- package/dist/requester/requester.js.map +1 -1
- package/dist/requester/types.d.ts +7 -26
- package/dist/requester/types.js +1 -1
- package/dist/requester/types.js.map +1 -1
- package/dist/requester/urlProvider.d.ts +2 -2
- package/dist/requester/urlProvider.js +1 -1
- package/dist/requester/urlProvider.js.map +1 -1
- package/dist/storage/constants.d.ts +6 -2
- package/dist/storage/constants.js +1 -1
- package/dist/storage/constants.js.map +1 -1
- package/dist/storage/index.d.ts +3 -2
- package/dist/storage/index.js +1 -1
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/integrityChecker.d.ts +20 -0
- package/dist/storage/integrityChecker.js +2 -0
- package/dist/storage/integrityChecker.js.map +1 -0
- package/dist/storage/storage.d.ts +0 -1
- package/dist/storage/storage.js +1 -1
- package/dist/storage/storage.js.map +1 -1
- package/dist/storage/types.d.ts +25 -17
- 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.map +1 -1
- package/dist/targeting/conditions/conversion.js +1 -1
- package/dist/targeting/conditions/conversion.js.map +1 -1
- package/dist/targeting/conditions/conversionLikelihood.js +1 -1
- package/dist/targeting/conditions/conversionLikelihood.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.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.map +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/types.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.d.ts +1 -1
- package/dist/targeting/index.js.map +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.map +1 -1
- package/dist/tracking/bodyProvider.d.ts +26 -0
- package/dist/tracking/bodyProvider.js +2 -0
- package/dist/tracking/bodyProvider.js.map +1 -0
- package/dist/tracking/constants.d.ts +2 -0
- package/dist/tracking/constants.js +2 -0
- package/dist/tracking/constants.js.map +1 -0
- package/dist/tracking/index.d.ts +1 -0
- package/dist/tracking/index.js +2 -0
- package/dist/tracking/index.js.map +1 -0
- package/dist/tracking/tracker.d.ts +21 -0
- package/dist/tracking/tracker.js +2 -0
- package/dist/tracking/tracker.js.map +1 -0
- package/dist/tracking/types.d.ts +45 -0
- package/dist/tracking/types.js +2 -0
- package/dist/tracking/types.js.map +1 -0
- package/dist/types.d.ts +44 -15
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utilities/constants.d.ts +0 -1
- package/dist/utilities/constants.js +1 -1
- package/dist/utilities/constants.js.map +1 -1
- package/dist/utilities/index.d.ts +3 -2
- package/dist/utilities/index.js +1 -1
- package/dist/utilities/index.js.map +1 -1
- package/dist/utilities/parser.d.ts +10 -0
- package/dist/utilities/parser.js +2 -0
- package/dist/utilities/parser.js.map +1 -0
- package/dist/utilities/types.d.ts +3 -40
- package/dist/utilities/types.js.map +1 -1
- package/dist/utilities/utilities.d.ts +5 -21
- package/dist/utilities/utilities.js +1 -1
- package/dist/utilities/utilities.js.map +1 -1
- package/dist/utilities/validator.d.ts +5 -0
- package/dist/utilities/validator.js +2 -0
- package/dist/utilities/validator.js.map +1 -0
- package/dist/variationConfiguration/index.js.map +1 -1
- package/dist/variationConfiguration/types.d.ts +7 -2
- package/dist/variationConfiguration/types.js.map +1 -1
- package/dist/variationConfiguration/variationConfiguration.d.ts +15 -7
- package/dist/variationConfiguration/variationConfiguration.js +1 -1
- package/dist/variationConfiguration/variationConfiguration.js.map +1 -1
- package/dist/visitorCodeManager/constants.d.ts +2 -0
- package/dist/visitorCodeManager/constants.js +1 -1
- package/dist/visitorCodeManager/constants.js.map +1 -1
- package/dist/visitorCodeManager/index.js.map +1 -1
- package/dist/visitorCodeManager/types.d.ts +3 -0
- package/dist/visitorCodeManager/types.js.map +1 -1
- package/dist/visitorCodeManager/visitorCodeManager.d.ts +4 -0
- package/dist/visitorCodeManager/visitorCodeManager.js +1 -1
- package/dist/visitorCodeManager/visitorCodeManager.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","names":["DataStorage","constructor","externalStorage","storageKey","_defineProperty","
|
|
1
|
+
{"version":3,"file":"storage.js","names":["DataStorage","constructor","externalStorage","storageKey","_defineProperty","integrityChecker","IntegrityChecker","result","read","ok","error","type","KameleoonException","StorageEmpty","defaultData","getDefaultData","write","data","isDataValid","Err","KameleoonError","Ok","_","StorageRead","StorageWrite","update","existingData","newData","_objectSpread","exports"],"sources":["../../src/storage/storage.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport { KameleoonError, KameleoonException } from 'src/kameleoonError';\nimport { KameleoonStorageKey } from './constants';\nimport { IExternalStorage, IStorage, StorageDataType } from './types';\nimport { IntegrityChecker } from './integrityChecker';\n\n// --- Note ---\n// Named `DataStorage` to avoid collision with `Storage` from `window` API\nexport class DataStorage<T extends StorageDataType> implements IStorage<T> {\n private externalStorage: IExternalStorage;\n private storageKey: KameleoonStorageKey;\n\n constructor(\n externalStorage: IExternalStorage,\n storageKey: KameleoonStorageKey,\n ) {\n this.externalStorage = externalStorage;\n this.storageKey = storageKey;\n\n const integrityChecker = new IntegrityChecker(storageKey);\n\n const result = this.read();\n\n if (!result.ok) {\n if (result.error.type === KameleoonException.StorageEmpty) {\n const defaultData = integrityChecker.getDefaultData();\n this.write(defaultData as T);\n }\n\n return;\n }\n\n const data = result.data;\n\n if (!integrityChecker.isDataValid(data)) {\n const defaultData = integrityChecker.getDefaultData();\n this.write(defaultData as T);\n }\n }\n\n public read(): Result<T, KameleoonError> {\n try {\n const result = this.externalStorage.read(this.storageKey);\n\n if (result === null) {\n return Err(new KameleoonError(KameleoonException.StorageEmpty));\n }\n\n // --- Note ---\n // Have to cast the type here to tell TS that `result.data` type is a subset of `T` as we check it already in the default generic `StorageDataType` for `IExternalStorage`\n return Ok(result as T);\n } catch (_) {\n return Err(\n new KameleoonError(KameleoonException.StorageRead, this.storageKey),\n );\n }\n }\n\n public write(data: T): Result<void, KameleoonError> {\n try {\n this.externalStorage.write(this.storageKey, data);\n\n return Ok();\n } catch (_) {\n return Err(\n new KameleoonError(KameleoonException.StorageWrite, this.storageKey),\n );\n }\n }\n\n public update(data: Partial<T>): Result<void, KameleoonError> {\n const result = this.read();\n\n if (!result.ok) {\n if (result.error.type === KameleoonException.StorageEmpty) {\n return this.write(data as T);\n } else {\n return result;\n }\n }\n\n const existingData: StorageDataType | null = result.data;\n\n let newData: T;\n\n if (typeof existingData === 'string') {\n newData = data as T;\n } else {\n newData = { ...existingData, ...data } as T;\n }\n\n return this.write(newData);\n }\n}\n"],"mappings":"4zCAQO,KAAM,CAAAA,WAA8D,CAIzEC,WAAWA,CACTC,CAAiC,CACjCC,CAA+B,CAC/B,CAAAC,eAAA,gCAAAA,eAAA,2BACA,IAAI,CAACF,eAAe,CAAGA,CAAe,CACtC,IAAI,CAACC,UAAU,CAAGA,CAAU,MAEtB,CAAAE,CAAgB,CAAG,GAAI,CAAAC,kCAAgB,CAACH,CAAU,CAAC,CAEnDI,CAAM,CAAG,IAAI,CAACC,IAAI,CAAC,CAAC,CAE1B,GAAI,CAACD,CAAM,CAACE,EAAE,CAAE,CACd,GAAIF,CAAM,CAACG,KAAK,CAACC,IAAI,GAAKC,kCAAkB,CAACC,YAAY,CAAE,CACzD,KAAM,CAAAC,CAAW,CAAGT,CAAgB,CAACU,cAAc,CAAC,CAAC,CACrD,IAAI,CAACC,KAAK,CAACF,CAAgB,CAC7B,CAEA,MACF,CAEA,KAAM,CAAAG,CAAI,CAAGV,CAAM,CAACU,IAAI,CAExB,GAAI,CAACZ,CAAgB,CAACa,WAAW,CAACD,CAAI,CAAC,CAAE,CACvC,KAAM,CAAAH,CAAW,CAAGT,CAAgB,CAACU,cAAc,CAAC,CAAC,CACrD,IAAI,CAACC,KAAK,CAACF,CAAgB,CAC7B,CACF,CAEON,IAAIA,CAAA,CAA8B,CACvC,GAAI,CACF,KAAM,CAAAD,CAAM,CAAG,IAAI,CAACL,eAAe,CAACM,IAAI,CAAC,IAAI,CAACL,UAAU,CAAC,CAAC,MAE3C,KAAI,GAAfI,CAAe,CACV,GAAAY,UAAG,EAAC,GAAI,CAAAC,8BAAc,CAACR,kCAAkB,CAACC,YAAY,CAAC,CAAC,CAK1D,GAAAQ,SAAE,EAACd,CAAW,CACvB,CAAE,MAAOe,CAAC,CAAE,CACV,MAAO,GAAAH,UAAG,EACR,GAAI,CAAAC,8BAAc,CAACR,kCAAkB,CAACW,WAAW,CAAE,IAAI,CAACpB,UAAU,CACpE,CACF,CACF,CAEOa,KAAKA,CAACC,CAAO,CAAgC,CAClD,GAAI,CAGF,MAFA,KAAI,CAACf,eAAe,CAACc,KAAK,CAAC,IAAI,CAACb,UAAU,CAAEc,CAAI,CAAC,CAE1C,GAAAI,SAAE,EAAC,CACZ,CAAE,MAAOC,CAAC,CAAE,CACV,MAAO,GAAAH,UAAG,EACR,GAAI,CAAAC,8BAAc,CAACR,kCAAkB,CAACY,YAAY,CAAE,IAAI,CAACrB,UAAU,CACrE,CACF,CACF,CAEOsB,MAAMA,CAACR,CAAgB,CAAgC,CAC5D,KAAM,CAAAV,CAAM,CAAG,IAAI,CAACC,IAAI,CAAC,CAAC,CAE1B,GAAI,CAACD,CAAM,CAACE,EAAE,OACR,CAAAF,CAAM,CAACG,KAAK,CAACC,IAAI,GAAKC,kCAAkB,CAACC,YAAY,CAChD,IAAI,CAACG,KAAK,CAACC,CAAS,CAAC,CAErBV,CAAM,CAIjB,KAAM,CAAAmB,CAAoC,CAAGnB,CAAM,CAACU,IAAI,CAExD,GAAI,CAAAU,CAAU,CAQd,MALE,CAAAA,CAAO,CADmB,QAAQ,EAAhC,MAAO,CAAAD,CAAyB,CACxBT,CAAI,CAAAW,aAAA,CAAAA,aAAA,IAECF,CAAY,EAAKT,CAAI,EAG/B,IAAI,CAACD,KAAK,CAACW,CAAO,CAC3B,CACF,CAACE,OAAA,CAAA7B,WAAA,CAAAA,WAAA","ignoreList":[]}
|
package/dist/storage/types.d.ts
CHANGED
|
@@ -1,38 +1,48 @@
|
|
|
1
1
|
import { Result } from 'ts-res';
|
|
2
2
|
import { ConfigurationDataType } from '../clientConfiguration';
|
|
3
3
|
import { KameleoonError } from '../kameleoonError';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { KameleoonData } from '../kameleoonData';
|
|
5
|
+
import { TrackingStatus } from '../types';
|
|
6
|
+
import { TargetingDataType } from '../targeting';
|
|
6
7
|
export type ClientDataType = {
|
|
7
8
|
data: ConfigurationDataType;
|
|
8
9
|
lastUpdate: string;
|
|
9
10
|
};
|
|
10
|
-
export type
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
export type DataInfoType = {
|
|
12
|
+
nextVisitTime: number;
|
|
13
|
+
nextDataCleanup?: number;
|
|
14
|
+
unsentData: {
|
|
15
|
+
[visitorCode: string]: KameleoonData[];
|
|
15
16
|
};
|
|
16
17
|
};
|
|
18
|
+
export type FeatureFlagVariationType = {
|
|
19
|
+
variationId: number;
|
|
20
|
+
isTargetedRule: boolean;
|
|
21
|
+
status: TrackingStatus;
|
|
22
|
+
};
|
|
23
|
+
export type FeatureFlagVariationsType = {
|
|
24
|
+
[experimentId: string]: FeatureFlagVariationType;
|
|
25
|
+
};
|
|
17
26
|
export type VariationDataType = {
|
|
18
27
|
[visitorCode: string]: FeatureFlagVariationsType;
|
|
19
28
|
};
|
|
20
|
-
type OfflineTrackingParameters = TrackDataParamsType | TrackExperimentParamsType;
|
|
21
|
-
export type OfflineTracking = {
|
|
22
|
-
requestParameters?: Array<OfflineTrackingParameters & {
|
|
23
|
-
timestamp: number;
|
|
24
|
-
isExperiment: boolean;
|
|
25
|
-
}>;
|
|
26
|
-
};
|
|
27
29
|
export type ConsentDataType = {
|
|
28
30
|
[visitorCode: string]: boolean;
|
|
29
31
|
};
|
|
32
|
+
export type ScheduledVisitorsType = {
|
|
33
|
+
[visitorCode: string]: {
|
|
34
|
+
isConsentProvided: boolean;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
export type TrackingDataType = {
|
|
38
|
+
scheduledVisitors: ScheduledVisitorsType;
|
|
39
|
+
};
|
|
30
40
|
/**
|
|
31
41
|
* @type `StorageDataType` - an enumeration type which represents a data stored on SDK storage
|
|
32
42
|
*
|
|
33
43
|
* `string` represents visitor code storage with only one string value
|
|
34
44
|
* */
|
|
35
|
-
export type StorageDataType = ClientDataType |
|
|
45
|
+
export type StorageDataType = ClientDataType | TargetingDataType | TrackingDataType | VariationDataType | ConsentDataType | DataInfoType | string;
|
|
36
46
|
/**
|
|
37
47
|
* @interface an interface of External Storage which must be implemented to be used as external storage an SDK
|
|
38
48
|
* */
|
|
@@ -55,9 +65,7 @@ export interface IExternalStorage<T = StorageDataType> {
|
|
|
55
65
|
* @interface an interface which serves as a wrapper over `IExternalStorage` for internal SDK usage
|
|
56
66
|
* */
|
|
57
67
|
export interface IStorage<T> {
|
|
58
|
-
readonly key: KameleoonStorageKey;
|
|
59
68
|
read: () => Result<T, KameleoonError>;
|
|
60
69
|
write: (data: T) => Result<void, KameleoonError>;
|
|
61
70
|
update: (data: Partial<T>) => Result<void, KameleoonError>;
|
|
62
71
|
}
|
|
63
|
-
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../src/storage/types.ts"],"sourcesContent":["import { Result } from 'ts-res';\nimport { ConfigurationDataType } from 'src/clientConfiguration';\nimport { KameleoonError } from 'src/kameleoonError';\nimport {
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../src/storage/types.ts"],"sourcesContent":["import { Result } from 'ts-res';\nimport { ConfigurationDataType } from 'src/clientConfiguration';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { TrackingStatus } from 'src/types';\nimport { TargetingDataType } from 'src/targeting';\n\nexport type ClientDataType = {\n data: ConfigurationDataType;\n lastUpdate: string;\n};\n\nexport type DataInfoType = {\n // --- Note ---\n // Not a real next visit time, but a minimum time that guarantees to make it to the next visit\n nextVisitTime: number;\n nextDataCleanup?: number;\n unsentData: {\n [visitorCode: string]: KameleoonData[];\n };\n};\n\nexport type FeatureFlagVariationType = {\n variationId: number;\n isTargetedRule: boolean;\n status: TrackingStatus;\n};\n\nexport type FeatureFlagVariationsType = {\n [experimentId: string]: FeatureFlagVariationType;\n};\n\nexport type VariationDataType = {\n [visitorCode: string]: FeatureFlagVariationsType;\n};\n\nexport type ConsentDataType = {\n [visitorCode: string]: boolean;\n};\n\nexport type ScheduledVisitorsType = {\n [visitorCode: string]: {\n isConsentProvided: boolean;\n };\n};\n\nexport type TrackingDataType = {\n scheduledVisitors: ScheduledVisitorsType;\n};\n\n/**\n * @type `StorageDataType` - an enumeration type which represents a data stored on SDK storage\n *\n * `string` represents visitor code storage with only one string value\n * */\nexport type StorageDataType =\n | ClientDataType\n | TargetingDataType\n | TrackingDataType\n | VariationDataType\n | ConsentDataType\n | DataInfoType\n | string;\n\n/**\n * @interface an interface of External Storage which must be implemented to be used as external storage an SDK\n * */\nexport interface IExternalStorage<T = StorageDataType> {\n /**\n * @method read - reads data from the storage\n * @param {string} key - a key, which different SDK data blocks are stored under\n * @returns {T | null} representation of generic Kameleoon data type `T` or `null` if the storage was read successfully but it's empty\n * */\n read: (key: string) => T | null;\n /**\n * @method write - writes data to storage\n * @param {string} key - a key, which different SDK data blocks are stored under\n * @param {T} data - representation of generic Kameleoon data type\n * @returns {void}\n * */\n write: (key: string, data: T) => void;\n}\n\n/**\n * @interface an interface which serves as a wrapper over `IExternalStorage` for internal SDK usage\n * */\nexport interface IStorage<T> {\n read: () => Result<T, KameleoonError>;\n write: (data: T) => Result<void, KameleoonError>;\n update: (data: Partial<T>) => Result<void, KameleoonError>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ApplicationVersion=void 0;var _tsRes=require("ts-res"),_utilities=require("../../utilities"),_kameleoonData=require("../../kameleoonData");function _defineProperty(a,b,c){return
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ApplicationVersion=void 0;var _tsRes=require("ts-res"),_utilities=require("../../utilities"),_kameleoonData=require("../../kameleoonData");function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class ApplicationVersion{constructor(a){let{version:b,versionMatchType:c}=a;_defineProperty(this,"conditionValue",void 0),_defineProperty(this,"versionMatchType",void 0),this.conditionValue=b,this.versionMatchType=c}evaluate(a){var b;let{targetingData:c}=a;const d=null===c||void 0===c||null===(b=c[_kameleoonData.KameleoonData.ApplicationVersion])||void 0===b?void 0:b.version;if(!d||!this.conditionValue||!this.versionMatchType)return(0,_tsRes.Ok)(!1);const e=_utilities.Utilities.compareSemVer({version:d,compareVersion:this.conditionValue,operator:this.versionMatchType});return e.ok?(0,_tsRes.Ok)(e.data):(0,_tsRes.Err)(e.error)}}exports.ApplicationVersion=ApplicationVersion;
|
|
2
2
|
//# sourceMappingURL=applicationVersion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applicationVersion.js","names":["ApplicationVersion","constructor","a","version","versionMatchType","_defineProperty","conditionValue","evaluate","b","targetingData","KameleoonData","Ok","result","Utilities","compareSemVer","compareVersion","operator","ok","data","Err","error","exports"],"sources":["../../../src/targeting/conditions/applicationVersion.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { Utilities } from 'src/utilities';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { EvaluationDataType, VersionMatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class ApplicationVersion implements ICondition {\n private conditionValue?: string | null;\n private versionMatchType?: VersionMatchType | null;\n\n constructor({ version, versionMatchType }: ConditionDataType) {\n this.conditionValue = version;\n this.versionMatchType = versionMatchType;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const version = targetingData?.[KameleoonData.ApplicationVersion]?.version;\n\n if (!version || !this.conditionValue || !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(result.data);\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"applicationVersion.js","names":["ApplicationVersion","constructor","a","version","versionMatchType","_defineProperty","conditionValue","evaluate","b","targetingData","KameleoonData","Ok","result","Utilities","compareSemVer","compareVersion","operator","ok","data","Err","error","exports"],"sources":["../../../src/targeting/conditions/applicationVersion.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { Utilities } from 'src/utilities';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { EvaluationDataType, VersionMatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class ApplicationVersion implements ICondition {\n private conditionValue?: string | null;\n private versionMatchType?: VersionMatchType | null;\n\n constructor({ version, versionMatchType }: ConditionDataType) {\n this.conditionValue = version;\n this.versionMatchType = versionMatchType;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const version = targetingData?.[KameleoonData.ApplicationVersion]?.version;\n\n if (!version || !this.conditionValue || !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(result.data);\n }\n}\n"],"mappings":"wtBAOO,KAAM,CAAAA,kBAAyC,CAIpDC,WAAWA,CAAAC,CAAA,CAAmD,IAAlD,CAAEC,OAAO,CAAPA,CAAO,CAAEC,gBAAgB,CAAhBA,CAAoC,CAAC,CAAAF,CAAA,CAAAG,eAAA,+BAAAA,eAAA,iCAC1D,IAAI,CAACC,cAAc,CAAGH,CAAO,CAC7B,IAAI,CAACC,gBAAgB,CAAGA,CAC1B,CAEOG,QAAQA,CAAAL,CAAA,CAEyC,KAAAM,CAAA,IAFxC,CACdC,aAAa,CAAbA,CACkB,CAAC,CAAAP,CAAA,CACnB,KAAM,CAAAC,CAAO,QAAGM,CAAa,WAAbA,CAAa,UAAAD,CAAA,CAAbC,CAAa,CAAGC,4BAAa,CAACV,kBAAkB,CAAC,YAAAQ,CAAA,QAAjDA,CAAA,CAAmDL,OAAO,CAE1E,GAAI,CAACA,CAAO,EAAI,CAAC,IAAI,CAACG,cAAc,EAAI,CAAC,IAAI,CAACF,gBAAgB,CAC5D,MAAO,GAAAO,SAAE,IAAM,CAAC,CAGlB,KAAM,CAAAC,CAAM,CAAGC,oBAAS,CAACC,aAAa,CAAC,CACrCX,OAAO,CAAPA,CAAO,CACPY,cAAc,CAAE,IAAI,CAACT,cAAc,CACnCU,QAAQ,CAAE,IAAI,CAACZ,gBACjB,CAAC,CAAC,CAAC,MAEE,CAAAQ,CAAM,CAACK,EAAE,CAIP,GAAAN,SAAE,EAACC,CAAM,CAACM,IAAI,CAAC,CAHb,GAAAC,UAAG,EAACP,CAAM,CAACQ,KAAK,CAI3B,CACF,CAACC,OAAA,CAAArB,kBAAA,CAAAA,kBAAA","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Browser=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_kameleoonError=require("../../kameleoonError"),_types=require("../types");function _defineProperty(a,b,c){return
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Browser=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_kameleoonError=require("../../kameleoonError"),_types=require("../types");function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class Browser{constructor(a){let{browser:b,version:c,versionMatchType:d}=a;_defineProperty(this,"browser",void 0),_defineProperty(this,"version",void 0),_defineProperty(this,"versionMatchType",void 0),_defineProperty(this,"error",void 0),this.browser=b,this.version=c,this.versionMatchType=d}evaluate(a){let{targetingData:b}=a;const c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.Browser];if(c){const a=this.checkCondition(c);return this.error?(0,_tsRes.Err)(this.error):(0,_tsRes.Ok)(a)}return(0,_tsRes.Ok)(!1)}checkCondition(a){const{browser:b,version:c}=a;if("string"!=typeof this.browser)return!1;if(!this.version)return b===this.browser;if(!this.versionMatchType||"number"!=typeof c)return!1;const d=parseFloat(this.version);switch(isNaN(d)&&(this.error=new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.VersionParse,this.version)),this.versionMatchType){case _types.VersionMatchType.EQUAL:return b===this.browser&&c===d;case _types.VersionMatchType.GREATER:return b===this.browser&&c>d;case _types.VersionMatchType.LOWER:return b===this.browser&&c<d;default:(0,_kameleoonError.exhaustCheck)(this.versionMatchType)}}}exports.Browser=Browser;
|
|
2
2
|
//# sourceMappingURL=browser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","names":["Browser","constructor","a","browser","version","versionMatchType","_defineProperty","evaluate","targetingData","browserData","KameleoonData","result","checkCondition","error","Err","Ok","parsedVersion","parseFloat","isNaN","KameleoonError","KameleoonException","VersionParse","VersionMatchType","EQUAL","GREATER","LOWER","exhaustCheck","exports"],"sources":["../../../src/targeting/conditions/browser.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport { KameleoonData, BrowserType, BrowserDataType } from 'src/kameleoonData';\nimport {\n exhaustCheck,\n KameleoonError,\n KameleoonException,\n} from 'src/kameleoonError';\nimport { EvaluationDataType, VersionMatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class Browser implements ICondition {\n private browser?: BrowserType | null;\n private version?: string | null;\n private versionMatchType?: VersionMatchType | null;\n private error?: KameleoonError;\n\n constructor({ browser, version, versionMatchType }: ConditionDataType) {\n this.browser = browser;\n this.version = version;\n this.versionMatchType = versionMatchType;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const browserData = targetingData?.[KameleoonData.Browser];\n\n if (browserData) {\n const result = this.checkCondition(browserData);\n\n if (this.error) {\n return Err(this.error);\n }\n\n return Ok(result);\n }\n\n return Ok(false);\n }\n\n private checkCondition(browserData: BrowserDataType): boolean {\n const { browser, version } = browserData;\n\n if (typeof this.browser !== 'string') {\n return false;\n }\n\n if (!this.version) {\n return browser === this.browser;\n }\n\n if (!this.versionMatchType || typeof version !== 'number') {\n return false;\n }\n\n const parsedVersion = parseFloat(this.version);\n\n if (isNaN(parsedVersion)) {\n this.error = new KameleoonError(\n KameleoonException.VersionParse,\n this.version,\n );\n }\n\n switch (this.versionMatchType) {\n case VersionMatchType.EQUAL:\n return browser === this.browser && version === parsedVersion;\n case VersionMatchType.GREATER:\n return browser === this.browser && version > parsedVersion;\n case VersionMatchType.LOWER:\n return browser === this.browser && version < parsedVersion;\n default:\n exhaustCheck(this.versionMatchType);\n }\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"browser.js","names":["Browser","constructor","a","browser","version","versionMatchType","_defineProperty","evaluate","targetingData","browserData","KameleoonData","result","checkCondition","error","Err","Ok","parsedVersion","parseFloat","isNaN","KameleoonError","KameleoonException","VersionParse","VersionMatchType","EQUAL","GREATER","LOWER","exhaustCheck","exports"],"sources":["../../../src/targeting/conditions/browser.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport { KameleoonData, BrowserType, BrowserDataType } from 'src/kameleoonData';\nimport {\n exhaustCheck,\n KameleoonError,\n KameleoonException,\n} from 'src/kameleoonError';\nimport { EvaluationDataType, VersionMatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class Browser implements ICondition {\n private browser?: BrowserType | null;\n private version?: string | null;\n private versionMatchType?: VersionMatchType | null;\n private error?: KameleoonError;\n\n constructor({ browser, version, versionMatchType }: ConditionDataType) {\n this.browser = browser;\n this.version = version;\n this.versionMatchType = versionMatchType;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const browserData = targetingData?.[KameleoonData.Browser];\n\n if (browserData) {\n const result = this.checkCondition(browserData);\n\n if (this.error) {\n return Err(this.error);\n }\n\n return Ok(result);\n }\n\n return Ok(false);\n }\n\n private checkCondition(browserData: BrowserDataType): boolean {\n const { browser, version } = browserData;\n\n if (typeof this.browser !== 'string') {\n return false;\n }\n\n if (!this.version) {\n return browser === this.browser;\n }\n\n if (!this.versionMatchType || typeof version !== 'number') {\n return false;\n }\n\n const parsedVersion = parseFloat(this.version);\n\n if (isNaN(parsedVersion)) {\n this.error = new KameleoonError(\n KameleoonException.VersionParse,\n this.version,\n );\n }\n\n switch (this.versionMatchType) {\n case VersionMatchType.EQUAL:\n return browser === this.browser && version === parsedVersion;\n case VersionMatchType.GREATER:\n return browser === this.browser && version > parsedVersion;\n case VersionMatchType.LOWER:\n return browser === this.browser && version < parsedVersion;\n default:\n exhaustCheck(this.versionMatchType);\n }\n }\n}\n"],"mappings":"kvBAUO,KAAM,CAAAA,OAA8B,CAMzCC,WAAWA,CAAAC,CAAA,CAA4D,IAA3D,CAAEC,OAAO,CAAPA,CAAO,CAAEC,OAAO,CAAPA,CAAO,CAAEC,gBAAgB,CAAhBA,CAAoC,CAAC,CAAAH,CAAA,CAAAI,eAAA,wBAAAA,eAAA,wBAAAA,eAAA,iCAAAA,eAAA,sBACnE,IAAI,CAACH,OAAO,CAAGA,CAAO,CACtB,IAAI,CAACC,OAAO,CAAGA,CAAO,CACtB,IAAI,CAACC,gBAAgB,CAAGA,CAC1B,CAEOE,QAAQA,CAAAL,CAAA,CAEyC,IAFxC,CACdM,aAAa,CAAbA,CACkB,CAAC,CAAAN,CAAA,CACnB,KAAM,CAAAO,CAAW,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACV,OAAO,CAAC,CAE1D,GAAIS,CAAW,CAAE,CACf,KAAM,CAAAE,CAAM,CAAG,IAAI,CAACC,cAAc,CAACH,CAAW,CAAC,CAAC,MAE5C,KAAI,CAACI,KAAK,CACL,GAAAC,UAAG,EAAC,IAAI,CAACD,KAAK,CAAC,CAGjB,GAAAE,SAAE,EAACJ,CAAM,CAClB,CAEA,MAAO,GAAAI,SAAE,IAAM,CACjB,CAEQH,cAAcA,CAACH,CAA4B,CAAW,CAC5D,KAAM,CAAEN,OAAO,CAAPA,CAAO,CAAEC,OAAO,CAAPA,CAAQ,CAAC,CAAGK,CAAW,CAExC,GAA4B,QAAQ,EAAhC,MAAO,KAAI,CAACN,OAAoB,CAClC,SAGF,GAAI,CAAC,IAAI,CAACC,OAAO,CACf,MAAO,CAAAD,CAAO,GAAK,IAAI,CAACA,OAAO,CAGjC,GAAI,CAAC,IAAI,CAACE,gBAAgB,EAAuB,QAAQ,EAA3B,MAAO,CAAAD,CAAoB,CACvD,SAGF,KAAM,CAAAY,CAAa,CAAGC,UAAU,CAAC,IAAI,CAACb,OAAO,CAAC,CAS9C,OAPIc,KAAK,CAACF,CAAa,CAAC,GACtB,IAAI,CAACH,KAAK,CAAG,GAAI,CAAAM,8BAAc,CAC7BC,kCAAkB,CAACC,YAAY,CAC/B,IAAI,CAACjB,OACP,CAAC,EAGK,IAAI,CAACC,gBAAgB,EAC3B,IAAK,CAAAiB,uBAAgB,CAACC,KAAK,CACzB,MAAO,CAAApB,CAAO,GAAK,IAAI,CAACA,OAAO,EAAIC,CAAO,GAAKY,CAAa,CAC9D,IAAK,CAAAM,uBAAgB,CAACE,OAAO,CAC3B,MAAO,CAAArB,CAAO,GAAK,IAAI,CAACA,OAAO,EAAIC,CAAO,CAAGY,CAAa,CAC5D,IAAK,CAAAM,uBAAgB,CAACG,KAAK,CACzB,MAAO,CAAAtB,CAAO,GAAK,IAAI,CAACA,OAAO,EAAIC,CAAO,CAAGY,CAAa,CAC5D,QACE,GAAAU,4BAAY,EAAC,IAAI,CAACrB,gBAAgB,CACtC,CACF,CACF,CAACsB,OAAA,CAAA3B,OAAA,CAAAA,OAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditionFactory.js","names":["ConditionFactory","createCondition","data","targetingType","TargetingType","CUSTOM_DATUM","Ok","CustomData","EXCLUSIVE_EXPERIMENT","EXCLUSIVE_FEATURE_FLAG","ExclusiveCampaign","TARGET_FEATURE_FLAG","TargetFeatureFlag","DEVICE_TYPE","Device","BROWSER","Browser","PAGE_URL","PageUrl","PAGE_TITLE","PageTitle","CONVERSIONS","Conversion","VISITOR_CODE","VisitorCode","SDK_LANGUAGE","SdkLanguage","COOKIE","Cookie","OPERATING_SYSTEM","OperatingSystem","GEOLOCATION","GeolocationCondition","SEGMENT","Segment","APPLICATION_VERSION","ApplicationVersion","PREVIOUS_PAGE","PreviousPage","NUMBER_OF_VISITED_PAGES","VisitedPages","LAST_VISIT","LastVisit","FIRST_VISIT","FirstVisit","SAME_DAY_VISITS","SameDayVisits","VISITS","Visits","NEW_VISITORS","NewVisitor","HEAT_SLICE","ConversionLikelihood","Err","KameleoonError","KameleoonException","TargetingCondition","exports"],"sources":["../../../src/targeting/conditions/conditionFactory.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport { KameleoonError, KameleoonException } from 'src/kameleoonError';\nimport { TargetingType } from 'src/targeting/types';\nimport { Browser } from './browser';\nimport { Conversion } from './conversion';\nimport { CustomData } from './customData';\nimport { Device } from './device';\nimport { ExclusiveCampaign } from './exclusiveCampaign';\nimport { PageTitle } from './pageTitle';\nimport { PageUrl } from './pageUrl';\nimport { SdkLanguage } from './sdkLanguage';\nimport { ConditionDataType, ConditionType } from './types';\nimport { VisitorCode } from './visitorCode';\nimport { Cookie } from './cookie';\nimport { OperatingSystem } from './operatingSystem';\nimport { GeolocationCondition } from './geolocation';\nimport { Segment } from './segment';\nimport { TargetFeatureFlag } from './targetFeatureFlag';\nimport { PreviousPage } from './previousPage';\nimport { VisitedPages } from './visitedPages';\nimport { FirstVisit } from './firstVisit';\nimport { LastVisit } from './lastVisit';\nimport { SameDayVisits } from './sameDayVisits';\nimport { Visits } from './visits';\nimport { NewVisitor } from './newVisitor';\nimport { ApplicationVersion } from './applicationVersion';\nimport { ConversionLikelihood } from './conversionLikelihood';\n\nexport class ConditionFactory {\n static createCondition(\n data: ConditionDataType,\n ): Result<ConditionType, KameleoonError> {\n const { targetingType } = data;\n\n switch (targetingType) {\n case TargetingType.CUSTOM_DATUM:\n return Ok(new CustomData(data));\n case TargetingType.EXCLUSIVE_EXPERIMENT:\n case TargetingType.EXCLUSIVE_FEATURE_FLAG:\n return Ok(new ExclusiveCampaign());\n case TargetingType.TARGET_FEATURE_FLAG:\n return Ok(new TargetFeatureFlag(data));\n case TargetingType.DEVICE_TYPE:\n return Ok(new Device(data));\n case TargetingType.BROWSER:\n return Ok(new Browser(data));\n case TargetingType.PAGE_URL:\n return Ok(new PageUrl(data));\n case TargetingType.PAGE_TITLE:\n return Ok(new PageTitle(data));\n case TargetingType.CONVERSIONS:\n return Ok(new Conversion(data));\n case TargetingType.VISITOR_CODE:\n return Ok(new VisitorCode(data));\n case TargetingType.SDK_LANGUAGE:\n return Ok(new SdkLanguage(data));\n case TargetingType.COOKIE:\n return Ok(new Cookie(data));\n case TargetingType.OPERATING_SYSTEM:\n return Ok(new OperatingSystem(data));\n case TargetingType.GEOLOCATION:\n return Ok(new GeolocationCondition(data));\n case TargetingType.SEGMENT:\n return Ok(new Segment(data));\n case TargetingType.APPLICATION_VERSION:\n return Ok(new ApplicationVersion(data));\n case TargetingType.PREVIOUS_PAGE:\n return Ok(new PreviousPage(data));\n case TargetingType.NUMBER_OF_VISITED_PAGES:\n return Ok(new VisitedPages(data));\n case TargetingType.LAST_VISIT:\n return Ok(new LastVisit(data));\n case TargetingType.FIRST_VISIT:\n return Ok(new FirstVisit(data));\n case TargetingType.SAME_DAY_VISITS:\n return Ok(new SameDayVisits(data));\n case TargetingType.VISITS:\n return Ok(new Visits(data));\n case TargetingType.NEW_VISITORS:\n return Ok(new NewVisitor(data));\n case TargetingType.HEAT_SLICE:\n return Ok(new ConversionLikelihood(data));\n default:\n return Err(\n new KameleoonError(\n KameleoonException.TargetingCondition,\n targetingType,\n ),\n );\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"conditionFactory.js","names":["ConditionFactory","createCondition","data","targetingType","TargetingType","CUSTOM_DATUM","Ok","CustomData","EXCLUSIVE_EXPERIMENT","EXCLUSIVE_FEATURE_FLAG","ExclusiveCampaign","TARGET_FEATURE_FLAG","TargetFeatureFlag","DEVICE_TYPE","Device","BROWSER","Browser","PAGE_URL","PageUrl","PAGE_TITLE","PageTitle","CONVERSIONS","Conversion","VISITOR_CODE","VisitorCode","SDK_LANGUAGE","SdkLanguage","COOKIE","Cookie","OPERATING_SYSTEM","OperatingSystem","GEOLOCATION","GeolocationCondition","SEGMENT","Segment","APPLICATION_VERSION","ApplicationVersion","PREVIOUS_PAGE","PreviousPage","NUMBER_OF_VISITED_PAGES","VisitedPages","LAST_VISIT","LastVisit","FIRST_VISIT","FirstVisit","SAME_DAY_VISITS","SameDayVisits","VISITS","Visits","NEW_VISITORS","NewVisitor","HEAT_SLICE","ConversionLikelihood","Err","KameleoonError","KameleoonException","TargetingCondition","exports"],"sources":["../../../src/targeting/conditions/conditionFactory.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport { KameleoonError, KameleoonException } from 'src/kameleoonError';\nimport { TargetingType } from 'src/targeting/types';\nimport { Browser } from './browser';\nimport { Conversion } from './conversion';\nimport { CustomData } from './customData';\nimport { Device } from './device';\nimport { ExclusiveCampaign } from './exclusiveCampaign';\nimport { PageTitle } from './pageTitle';\nimport { PageUrl } from './pageUrl';\nimport { SdkLanguage } from './sdkLanguage';\nimport { ConditionDataType, ConditionType } from './types';\nimport { VisitorCode } from './visitorCode';\nimport { Cookie } from './cookie';\nimport { OperatingSystem } from './operatingSystem';\nimport { GeolocationCondition } from './geolocation';\nimport { Segment } from './segment';\nimport { TargetFeatureFlag } from './targetFeatureFlag';\nimport { PreviousPage } from './previousPage';\nimport { VisitedPages } from './visitedPages';\nimport { FirstVisit } from './firstVisit';\nimport { LastVisit } from './lastVisit';\nimport { SameDayVisits } from './sameDayVisits';\nimport { Visits } from './visits';\nimport { NewVisitor } from './newVisitor';\nimport { ApplicationVersion } from './applicationVersion';\nimport { ConversionLikelihood } from './conversionLikelihood';\n\nexport class ConditionFactory {\n static createCondition(\n data: ConditionDataType,\n ): Result<ConditionType, KameleoonError> {\n const { targetingType } = data;\n\n switch (targetingType) {\n case TargetingType.CUSTOM_DATUM:\n return Ok(new CustomData(data));\n case TargetingType.EXCLUSIVE_EXPERIMENT:\n case TargetingType.EXCLUSIVE_FEATURE_FLAG:\n return Ok(new ExclusiveCampaign());\n case TargetingType.TARGET_FEATURE_FLAG:\n return Ok(new TargetFeatureFlag(data));\n case TargetingType.DEVICE_TYPE:\n return Ok(new Device(data));\n case TargetingType.BROWSER:\n return Ok(new Browser(data));\n case TargetingType.PAGE_URL:\n return Ok(new PageUrl(data));\n case TargetingType.PAGE_TITLE:\n return Ok(new PageTitle(data));\n case TargetingType.CONVERSIONS:\n return Ok(new Conversion(data));\n case TargetingType.VISITOR_CODE:\n return Ok(new VisitorCode(data));\n case TargetingType.SDK_LANGUAGE:\n return Ok(new SdkLanguage(data));\n case TargetingType.COOKIE:\n return Ok(new Cookie(data));\n case TargetingType.OPERATING_SYSTEM:\n return Ok(new OperatingSystem(data));\n case TargetingType.GEOLOCATION:\n return Ok(new GeolocationCondition(data));\n case TargetingType.SEGMENT:\n return Ok(new Segment(data));\n case TargetingType.APPLICATION_VERSION:\n return Ok(new ApplicationVersion(data));\n case TargetingType.PREVIOUS_PAGE:\n return Ok(new PreviousPage(data));\n case TargetingType.NUMBER_OF_VISITED_PAGES:\n return Ok(new VisitedPages(data));\n case TargetingType.LAST_VISIT:\n return Ok(new LastVisit(data));\n case TargetingType.FIRST_VISIT:\n return Ok(new FirstVisit(data));\n case TargetingType.SAME_DAY_VISITS:\n return Ok(new SameDayVisits(data));\n case TargetingType.VISITS:\n return Ok(new Visits(data));\n case TargetingType.NEW_VISITORS:\n return Ok(new NewVisitor(data));\n case TargetingType.HEAT_SLICE:\n return Ok(new ConversionLikelihood(data));\n default:\n return Err(\n new KameleoonError(\n KameleoonException.TargetingCondition,\n targetingType,\n ),\n );\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -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 _defineProperty(a,b,c){return
|
|
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))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];if(!this.conditionValue)return(0,_tsRes.Ok)(!1);if(c){if(Object.keys(c).length&&-1===this.conditionValue)return(0,_tsRes.Ok)(!0);const a=Object.values(c);return(0,_tsRes.Ok)(a.some(a=>!!a&&a.goalId===this.conditionValue))}return(0,_tsRes.Ok)(!1)}}exports.Conversion=Conversion;
|
|
2
2
|
//# sourceMappingURL=conversion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversion.js","names":["Conversion","constructor","a","goalId","_defineProperty","conditionValue","evaluate","targetingData","conversionData","KameleoonData","length","
|
|
1
|
+
{"version":3,"file":"conversion.js","names":["Conversion","constructor","a","goalId","_defineProperty","conditionValue","evaluate","targetingData","conversionData","KameleoonData","Ok","Object","keys","length","conversions","values","some","conversion","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 (Object.keys(conversionData).length && this.conditionValue === -1) {\n return Ok(true);\n }\n\n const conversions = Object.values(conversionData);\n\n return Ok(\n conversions.some((conversion) => {\n if (!conversion) {\n return false;\n }\n\n return conversion.goalId === this.conditionValue;\n }),\n );\n }\n\n return Ok(false);\n }\n}\n"],"mappings":"0qBAMO,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,CAEhE,GAAI,CAAC,IAAI,CAACK,cAAc,CACtB,MAAO,GAAAK,SAAE,IAAM,CAAC,CAGlB,GAAIF,CAAc,CAAE,CAClB,GAAIG,MAAM,CAACC,IAAI,CAACJ,CAAc,CAAC,CAACK,MAAM,EAA4B,CAAC,CAAC,GAA1B,IAAI,CAACR,cAAqB,CAClE,MAAO,GAAAK,SAAE,IAAK,CAAC,CAGjB,KAAM,CAAAI,CAAW,CAAGH,MAAM,CAACI,MAAM,CAACP,CAAc,CAAC,CAEjD,MAAO,GAAAE,SAAE,EACPI,CAAW,CAACE,IAAI,CAAEC,CAAU,IACrBA,CAAU,EAIRA,CAAU,CAACd,MAAM,GAAK,IAAI,CAACE,cACnC,CACH,CACF,CAEA,MAAO,GAAAK,SAAE,IAAM,CACjB,CACF,CAACQ,OAAA,CAAAlB,UAAA,CAAAA,UAAA","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ConversionLikelihood=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData");function _defineProperty(a,b,c){return
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ConversionLikelihood=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData");function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class ConversionLikelihood{constructor(a){let{lowerBound:b,upperBound:c,keyMomentId:d,goalId:e}=a;_defineProperty(this,"lowerBound",void 0),_defineProperty(this,"upperBound",void 0),_defineProperty(this,"keyMomentId",void 0),_defineProperty(this,"goalId",void 0),this.lowerBound=b,this.upperBound=c,this.keyMomentId=d,this.goalId=e}evaluate(a){var b;let{targetingData:c}=a;const d=null===c||void 0===c?void 0:c[_kameleoonData.KameleoonData.KameleoonConversionScore];if("number"!=typeof this.keyMomentId||"number"!=typeof this.goalId||"number"!=typeof this.lowerBound||"number"!=typeof this.upperBound||!d)return(0,_tsRes.Ok)(!1);const e=null===(b=d.kcs[this.keyMomentId.toString()])||void 0===b?void 0:b[this.goalId.toString()];return"number"==typeof e?(0,_tsRes.Ok)(e>=this.lowerBound&&e<=this.upperBound):(0,_tsRes.Ok)(!1)}}exports.ConversionLikelihood=ConversionLikelihood;
|
|
2
2
|
//# sourceMappingURL=conversionLikelihood.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversionLikelihood.js","names":["ConversionLikelihood","constructor","a","lowerBound","upperBound","keyMomentId","goalId","_defineProperty","evaluate","b","targetingData","kcsData","KameleoonData","KameleoonConversionScore","Ok","score","kcs","toString","exports"],"sources":["../../../src/targeting/conditions/conversionLikelihood.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { EvaluationDataType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class ConversionLikelihood implements ICondition {\n private lowerBound?: number;\n private upperBound?: number;\n private keyMomentId?: number;\n private goalId?: number | null;\n\n constructor({\n lowerBound,\n upperBound,\n keyMomentId,\n goalId,\n }: ConditionDataType) {\n this.lowerBound = lowerBound;\n this.upperBound = upperBound;\n this.keyMomentId = keyMomentId;\n this.goalId = goalId;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const kcsData = targetingData?.[KameleoonData.KameleoonConversionScore];\n\n if (\n typeof this.keyMomentId !== 'number' ||\n typeof this.goalId !== 'number' ||\n typeof this.lowerBound !== 'number' ||\n typeof this.upperBound !== 'number' ||\n !kcsData\n ) {\n return Ok(false);\n }\n\n const score: number | undefined =\n kcsData.kcs[this.keyMomentId.toString()]?.[this.goalId.toString()];\n\n if (typeof score !== 'number') {\n return Ok(false);\n }\n\n return Ok(score >= this.lowerBound && score <= this.upperBound);\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"conversionLikelihood.js","names":["ConversionLikelihood","constructor","a","lowerBound","upperBound","keyMomentId","goalId","_defineProperty","evaluate","b","targetingData","kcsData","KameleoonData","KameleoonConversionScore","Ok","score","kcs","toString","exports"],"sources":["../../../src/targeting/conditions/conversionLikelihood.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { EvaluationDataType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class ConversionLikelihood implements ICondition {\n private lowerBound?: number;\n private upperBound?: number;\n private keyMomentId?: number;\n private goalId?: number | null;\n\n constructor({\n lowerBound,\n upperBound,\n keyMomentId,\n goalId,\n }: ConditionDataType) {\n this.lowerBound = lowerBound;\n this.upperBound = upperBound;\n this.keyMomentId = keyMomentId;\n this.goalId = goalId;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const kcsData = targetingData?.[KameleoonData.KameleoonConversionScore];\n\n if (\n typeof this.keyMomentId !== 'number' ||\n typeof this.goalId !== 'number' ||\n typeof this.lowerBound !== 'number' ||\n typeof this.upperBound !== 'number' ||\n !kcsData\n ) {\n return Ok(false);\n }\n\n const score: number | undefined =\n kcsData.kcs[this.keyMomentId.toString()]?.[this.goalId.toString()];\n\n if (typeof score !== 'number') {\n return Ok(false);\n }\n\n return Ok(score >= this.lowerBound && score <= this.upperBound);\n }\n}\n"],"mappings":"orBAMO,KAAM,CAAAA,oBAA2C,CAMtDC,WAAWA,CAAAC,CAAA,CAKW,IALV,CACVC,UAAU,CAAVA,CAAU,CACVC,UAAU,CAAVA,CAAU,CACVC,WAAW,CAAXA,CAAW,CACXC,MAAM,CAANA,CACiB,CAAC,CAAAJ,CAAA,CAAAK,eAAA,2BAAAA,eAAA,2BAAAA,eAAA,4BAAAA,eAAA,uBAClB,IAAI,CAACJ,UAAU,CAAGA,CAAU,CAC5B,IAAI,CAACC,UAAU,CAAGA,CAAU,CAC5B,IAAI,CAACC,WAAW,CAAGA,CAAW,CAC9B,IAAI,CAACC,MAAM,CAAGA,CAChB,CAEOE,QAAQA,CAAAN,CAAA,CAEyC,KAAAO,CAAA,IAFxC,CACdC,aAAa,CAAbA,CACkB,CAAC,CAAAR,CAAA,CACnB,KAAM,CAAAS,CAAO,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACC,wBAAwB,CAAC,CAEvE,GAC8B,QAAQ,EAApC,MAAO,KAAI,CAACR,WAAwB,EACb,QAAQ,EAA/B,MAAO,KAAI,CAACC,MAAmB,EACJ,QAAQ,EAAnC,MAAO,KAAI,CAACH,UAAuB,EACR,QAAQ,EAAnC,MAAO,KAAI,CAACC,UAAuB,EACnC,CAACO,CAAO,CAER,MAAO,GAAAG,SAAE,IAAM,CAAC,CAGlB,KAAM,CAAAC,CAAyB,SAAAN,CAAA,CAC7BE,CAAO,CAACK,GAAG,CAAC,IAAI,CAACX,WAAW,CAACY,QAAQ,CAAC,CAAC,CAAC,YAAAR,CAAA,QAAxCA,CAAA,CAA2C,IAAI,CAACH,MAAM,CAACW,QAAQ,CAAC,CAAC,CAAC,CAAC,MAEhD,QAAQ,EAAzB,MAAO,CAAAF,CAAkB,CAItB,GAAAD,SAAE,EAACC,CAAK,EAAI,IAAI,CAACZ,UAAU,EAAIY,CAAK,EAAI,IAAI,CAACX,UAAU,CAAC,CAHtD,GAAAU,SAAE,IAAM,CAInB,CACF,CAACI,OAAA,CAAAlB,oBAAA,CAAAA,oBAAA","ignoreList":[]}
|
|
@@ -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 _defineProperty(a,b,c){return
|
|
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))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:b??void 0,value: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.Parser.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.Parser.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","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","
|
|
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","Parser","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 { Parser } 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 = Parser.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 Parser.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":"uxBAYO,KAAM,CAAAA,MAA6B,CAKxCC,WAAWA,CAAAC,CAAA,CAKW,IALV,CACVC,IAAI,CAAJA,CAAI,CACJC,KAAK,CAALA,CAAK,CACLC,aAAa,CAAbA,CAAa,CACbC,cAAc,CAAdA,CACiB,CAAC,CAAAJ,CAAA,CAAAK,eAAA,uBAAAA,eAAA,6BAAAA,eAAA,+BAClB,IAAI,CAACC,MAAM,CAAG,CACZC,GAAG,CAAEN,CAAI,QAAa,CACtBC,KAAK,CAAEA,CAAK,QACd,CAAC,CACD,IAAI,CAACM,YAAY,CAAGL,CAAa,CACjC,IAAI,CAACC,cAAc,CAAGA,CACxB,CAEOK,QAAQA,CAAAT,CAAA,CAEyC,KAAAU,CAAA,IAFxC,CACdC,aAAa,CAAbA,CACkB,CAAC,CAAAX,CAAA,MACb,CAAAY,CAAa,CAAG,CAAC,IAAI,CAACN,MAAM,CAACC,GAAG,EAAI,CAAC,IAAI,CAACD,MAAM,CAACJ,KAAK,CACtDW,CAAgB,CACpB,EAAQ,IAAI,CAACT,cAAc,IAAa,IAAI,CAACI,YAAa,CAE5D,GAAII,CAAa,EAAI,CAACC,CAAgB,CACpC,MAAO,GAAAC,SAAE,IAAM,CAAC,CACjB,KAEK,CAAAC,CAAe,CAAG,IAAI,CAACC,aAAa,CAAC,CAAC,CACtCC,CAAU,CAAG,QAAAN,CAAa,WAAbA,CAAa,UAAAD,CAAA,CAAbC,CAAa,CAAGO,4BAAa,CAACpB,MAAM,CAAC,YAAAY,CAAA,QAArCA,CAAA,CAAuCJ,MAAM,GAAI,EAAE,CAEtE,MAAO,GAAAQ,SAAE,EACPC,CAAe,CAACI,IAAI,CAAEC,CAAI,EAAK,IAAI,CAACC,cAAc,CAACD,CAAI,CAAC,CAAC,EACvDH,CAAU,CAACE,IAAI,CAAEC,CAAI,EAAK,IAAI,CAACC,cAAc,CAACD,CAAI,CAAC,CACvD,CACF,CAEQJ,aAAaA,CAAA,CAAiB,OACZ,WAAW,EAA/B,MAAO,CAAAM,QAAwB,EAAIA,QAAQ,CAAChB,MAAM,CAC7CiB,qBAAU,CAACC,UAAU,CAACF,QAAQ,CAAChB,MAAM,CAAC,CAACmB,IAAI,CAACnB,MAAM,CAGpD,EACT,CAEQe,cAAcA,CAACK,CAAsB,CAAW,MAChD,CAAAC,CAAe,CAAG,IAAI,CAACnB,YAAa,CACpC,CAAED,GAAG,CAAHA,CAAG,CAAEL,KAAK,CAALA,CAAM,CAAC,CAAGwB,CAAU,CAEjC,GAAIC,CAAe,GAAKC,oBAAa,CAACC,QAAQ,CAAE,CAC9C,KAAM,CAAAC,CAAe,CAAG,IAAI,CAACxB,MAAM,CAEnC,QAAO,IAAI,CAACyB,gBAAgB,CAACD,CAAe,CAAC,EACzC,IAAI,CAACE,kBAAkB,CAAC9B,CAAK,CAAE4B,CAAe,CAAC5B,KAAK,CAE1D,CAEA,KAAM,CAAEK,GAAG,CAAE0B,CAAU,CAAE/B,KAAK,CAAEgC,CAAa,CAAC,CAAG,IAAI,CAAC5B,MAAoB,CAE1E,GAAI,CAAA6B,CAAiB,CAgBrB,MAdQ,CAAAR,CAAe,GAChBC,oBAAa,CAACQ,KAAK,CACtBD,CAAQ,CAAG5B,CAAG,GAAK0B,CAAU,CAFzBN,CAAe,GAIhBC,oBAAa,CAACS,QAAQ,CACzBF,CAAQ,CAAG5B,CAAG,CAAC+B,QAAQ,CAACL,CAAU,CAAC,CAL/BN,CAAe,GAOhBC,oBAAa,CAACW,kBAAkB,CACnCJ,CAAQ,CAAGK,iBAAM,CAACC,WAAW,CAACR,CAAU,CAAC,CAACS,IAAI,CAACnC,CAAG,CAAC,CAGnD,GAAAoC,4BAAY,EAAChB,CAAe,CAAC,CAG1BQ,CAAQ,EAAI,IAAI,CAACH,kBAAkB,CAAC9B,CAAK,CAAEgC,CAAY,CAChE,CAEQF,kBAAkBA,CAAC9B,CAAa,CAAEgC,CAAoB,CAAW,CACvE,KAAM,CAAA9B,CAAc,CAAG,IAAI,CAACA,cAAe,CAAC,MAEpC,CAAAA,CAAc,GACfwC,qBAAc,CAACR,KAAK,CAChBlC,CAAK,GAAKgC,CAAY,CAFzB9B,CAAc,GAGfwC,qBAAc,CAACP,QAAQ,CACnBnC,CAAK,CAACoC,QAAQ,CAACJ,CAAY,CAAC,GAJ/B9B,CAAc,GAKfwC,qBAAc,CAACL,kBAAkB,GAC7BC,iBAAM,CAACC,WAAW,CAACP,CAAY,CAAC,CAACQ,IAAI,CAACxC,CAAK,CAIxD,CAEQ6B,gBAAgBA,CACtBzB,CAA2B,CACG,CAC9B,KAAM,CAAEJ,KAAK,CAALA,CAAM,CAAC,CAAGI,CAAM,CAExB,MAAwB,WAAW,EAA5B,MAAO,CAAAJ,CAChB,CACF,CAAC2C,OAAA,CAAA/C,MAAA,CAAAA,MAAA","ignoreList":[]}
|
|
@@ -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"),_=require("./.."),_utilities=require("../../utilities");function _defineProperty(a,b,c){return
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CustomData=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_kameleoonError=require("../../kameleoonError"),_=require("./.."),_utilities=require("../../utilities");function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class CustomData{constructor(a){let{customDataIndex:b,valueMatchType:c,value:d,range:e}=a;_defineProperty(this,"customDataIndex",void 0),_defineProperty(this,"matchType",void 0),_defineProperty(this,"conditionValue",void 0),_defineProperty(this,"error",void 0),_defineProperty(this,"range",void 0),this.customDataIndex=b?+b:null,this.matchType=c,this.conditionValue=d,this.range=e}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===_.ValueMatchType.UNDEFINED)}checkCondition(a){if("string"!=typeof this.conditionValue&&this.matchType!==_.ValueMatchType.TRUE&&this.matchType!==_.ValueMatchType.FALSE&&this.matchType!==_.ValueMatchType.RANGE)return!1;const b=this.conditionValue;if(this.matchType===_.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(this.matchType===_.ValueMatchType.RANGE){const b=this.parseRange(this.range);if(!b.ok)return this.error=b.error,!1;const[c,d]=b.data,e=a=>a>=c&&a<=d;return Array.isArray(a)?a.some(a=>e(+a)):e(+a)}if(Array.isArray(a))return a.some(a=>this.checkCondition(a));switch(this.matchType){case _.ValueMatchType.CONTAINS:return a.includes(b);case _.ValueMatchType.EXACT:return a===this.conditionValue;case _.ValueMatchType.REGULAR_EXPRESSION:return _utilities.Parser.parseRegExp(b).test(a);case _.ValueMatchType.LOWER:return+a<+this.conditionValue;case _.ValueMatchType.EQUAL:return+a===+this.conditionValue;case _.ValueMatchType.GREATER:return+a>+this.conditionValue;case _.ValueMatchType.TRUE:return"true"===a.toLowerCase();case _.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)([])}parseRange(a){return a&&2===a.length?(0,_tsRes.Ok)(a):(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.RangeCheck,a))}}exports.CustomData=CustomData;
|
|
2
2
|
//# sourceMappingURL=customData.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"customData.js","names":["CustomData","constructor","a","customDataIndex","valueMatchType","value","range","_defineProperty","matchType","conditionValue","evaluate","targetingData","c","customData","KameleoonData","customDataValue","result","checkCondition","error","Err","Ok","ValueMatchType","UNDEFINED","TRUE","FALSE","RANGE","AMONG_VALUES","parseArray","ok","resultData","Set","data","Array","isArray","some","has","includes","parseRange","lowerBound","upperBound","isInRange","CONTAINS","EXACT","REGULAR_EXPRESSION","
|
|
1
|
+
{"version":3,"file":"customData.js","names":["CustomData","constructor","a","customDataIndex","valueMatchType","value","range","_defineProperty","matchType","conditionValue","evaluate","targetingData","c","customData","KameleoonData","customDataValue","result","checkCondition","error","Err","Ok","ValueMatchType","UNDEFINED","TRUE","FALSE","RANGE","AMONG_VALUES","parseArray","ok","resultData","Set","data","Array","isArray","some","has","includes","parseRange","lowerBound","upperBound","isInRange","CONTAINS","EXACT","REGULAR_EXPRESSION","Parser","parseRegExp","test","LOWER","EQUAL","GREATER","toLowerCase","JSON","parse","err","KameleoonError","KameleoonException","AmongValuesCheck","array","length","RangeCheck","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 { EvaluationDataType, ValueMatchType } from 'src/targeting';\nimport { Parser } from 'src/utilities';\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 private range?: number[] | null;\n\n constructor({\n customDataIndex,\n valueMatchType,\n value,\n range,\n }: ConditionDataType) {\n this.customDataIndex = customDataIndex ? Number(customDataIndex) : null;\n this.matchType = valueMatchType;\n this.conditionValue = value;\n this.range = range;\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 this.matchType !== ValueMatchType.RANGE\n ) {\n return false;\n }\n\n // --- Note ---\n // `TRUE`/`FALSE`/`RANGE` do not use condition value\n // so we can safely assume that `this.conditionValue` is a string at this point\n // for other match types\n const conditionValue = this.conditionValue as string;\n\n // --- Note ---\n // `AMONG_VALUES` and `RANGE` are 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 (this.matchType === ValueMatchType.RANGE) {\n const result = this.parseRange(this.range);\n\n if (!result.ok) {\n this.error = result.error;\n\n return false;\n }\n\n const [lowerBound, upperBound] = result.data;\n\n const isInRange = (value: number) =>\n value >= lowerBound && value <= upperBound;\n\n return Array.isArray(customDataValue)\n ? customDataValue.some((value) => isInRange(Number(value)))\n : isInRange(Number(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 Parser.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 private parseRange(\n array?: number[] | null,\n ): Result<[number, number], KameleoonError> {\n if (!array || array.length !== 2) {\n return Err(new KameleoonError(KameleoonException.RangeCheck, array));\n }\n\n return Ok(array as [number, number]);\n }\n}\n"],"mappings":"kxBAOO,KAAM,CAAAA,UAAiC,CAO5CC,WAAWA,CAAAC,CAAA,CAKW,IALV,CACVC,eAAe,CAAfA,CAAe,CACfC,cAAc,CAAdA,CAAc,CACdC,KAAK,CAALA,CAAK,CACLC,KAAK,CAALA,CACiB,CAAC,CAAAJ,CAAA,CAAAK,eAAA,gCAAAA,eAAA,0BAAAA,eAAA,+BAAAA,eAAA,sBAAAA,eAAA,sBAClB,IAAI,CAACJ,eAAe,CAAGA,CAAe,EAAUA,CAAe,CAAI,IAAI,CACvE,IAAI,CAACK,SAAS,CAAGJ,CAAc,CAC/B,IAAI,CAACK,cAAc,CAAGJ,CAAK,CAC3B,IAAI,CAACC,KAAK,CAAGA,CACf,CAEOI,QAAQA,CAAAR,CAAA,CAEyC,IAFxC,CACdS,aAAa,CAAbA,CACkB,CAAC,CAAAT,CAAA,CACnB,GAAoC,QAAQ,EAAxC,MAAO,KAAI,CAACC,eAA4B,CAAE,KAAAS,CAAA,CAC5C,KAAM,CAAAC,CAAU,QACdF,CAAa,WAAbA,CAAa,UAAAC,CAAA,CAAbD,CAAa,CAAGG,4BAAa,CAACd,UAAU,CAAC,YAAAY,CAAA,QAAzCA,CAAA,CAA4C,IAAI,CAACT,eAAe,CAAC,CAEnE,GAAIU,CAAU,CAAE,MACR,CAAER,KAAK,CAAEU,CAAgB,CAAC,CAAGF,CAAU,CACvCG,CAAM,CAAG,IAAI,CAACC,cAAc,CAACF,CAAe,CAAC,OAE/C,KAAI,CAACG,KAAK,CACL,GAAAC,UAAG,EAAC,IAAI,CAACD,KAAK,CAAC,CAGjB,GAAAE,SAAE,EAACJ,CAAM,CAClB,CACF,CAEA,MAAO,GAAAI,SAAE,EAAC,IAAI,CAACZ,SAAS,GAAKa,gBAAc,CAACC,SAAS,CACvD,CAEQL,cAAcA,CACpBF,CAAiD,CACxC,CACT,GACiC,QAAQ,EAAvC,MAAO,KAAI,CAACN,cAA2B,EACvC,IAAI,CAACD,SAAS,GAAKa,gBAAc,CAACE,IAAI,EACtC,IAAI,CAACf,SAAS,GAAKa,gBAAc,CAACG,KAAK,EACvC,IAAI,CAAChB,SAAS,GAAKa,gBAAc,CAACI,KAAK,CAEvC,SAOF,KAAM,CAAAhB,CAAc,CAAG,IAAI,CAACA,cAAwB,CAKpD,GAAI,IAAI,CAACD,SAAS,GAAKa,gBAAc,CAACK,YAAY,CAAE,CAClD,KAAM,CAAAV,CAAM,CAAG,IAAI,CAACW,UAAU,CAAClB,CAAc,CAAC,CAE9C,GAAI,CAACO,CAAM,CAACY,EAAE,CAGZ,MAFA,KAAI,CAACV,KAAK,CAAGF,CAAM,CAACE,KAAK,IAK3B,KAAM,CAAAW,CAAU,CAAG,GAAI,CAAAC,GAAG,CAACd,CAAM,CAACe,IAAI,CAAC,CAEvC,MAAO,CAAAC,KAAK,CAACC,OAAO,CAAClB,CAAe,CAAC,CACjCA,CAAe,CAACmB,IAAI,CAAE7B,CAAK,EAAKwB,CAAU,CAACM,GAAG,CAAC9B,CAAK,CAAC,CAAC,CACtDW,CAAM,CAACe,IAAI,CAACK,QAAQ,CAACrB,CAAe,CAC1C,CAEA,GAAI,IAAI,CAACP,SAAS,GAAKa,gBAAc,CAACI,KAAK,CAAE,CAC3C,KAAM,CAAAT,CAAM,CAAG,IAAI,CAACqB,UAAU,CAAC,IAAI,CAAC/B,KAAK,CAAC,CAE1C,GAAI,CAACU,CAAM,CAACY,EAAE,CAGZ,MAFA,KAAI,CAACV,KAAK,CAAGF,CAAM,CAACE,KAAK,IAG1B,KAEK,CAACoB,CAAU,CAAEC,CAAU,CAAC,CAAGvB,CAAM,CAACe,IAAI,CAEtCS,CAAS,CAAInC,CAAa,EAC9BA,CAAK,EAAIiC,CAAU,EAAIjC,CAAK,EAAIkC,CAAU,CAE5C,MAAO,CAAAP,KAAK,CAACC,OAAO,CAAClB,CAAe,CAAC,CACjCA,CAAe,CAACmB,IAAI,CAAE7B,CAAK,EAAKmC,CAAS,EAAQnC,CAAM,CAAC,CAAC,CACzDmC,CAAS,EAAQzB,CAAgB,CACvC,CAEA,GAAIiB,KAAK,CAACC,OAAO,CAAClB,CAAe,CAAC,CAChC,MAAO,CAAAA,CAAe,CAACmB,IAAI,CAAE7B,CAAK,EAAK,IAAI,CAACY,cAAc,CAACZ,CAAK,CAAC,CAAC,CAGpE,OAAQ,IAAI,CAACG,SAAS,EACpB,IAAK,CAAAa,gBAAc,CAACoB,QAAQ,CAC1B,MAAO,CAAA1B,CAAe,CAACqB,QAAQ,CAAC3B,CAAc,CAAC,CACjD,IAAK,CAAAY,gBAAc,CAACqB,KAAK,CACvB,MAAO,CAAA3B,CAAe,GAAK,IAAI,CAACN,cAAc,CAChD,IAAK,CAAAY,gBAAc,CAACsB,kBAAkB,CACpC,MAAO,CAAAC,iBAAM,CAACC,WAAW,CAACpC,CAAc,CAAC,CAACqC,IAAI,CAAC/B,CAAe,CAAC,CACjE,IAAK,CAAAM,gBAAc,CAAC0B,KAAK,CACvB,MAAO,CAAOhC,CAAe,EAAW,IAAI,CAACN,cAAe,CAC9D,IAAK,CAAAY,gBAAc,CAAC2B,KAAK,CACvB,MAAO,CAAOjC,CAAe,IAAa,IAAI,CAACN,cAAe,CAChE,IAAK,CAAAY,gBAAc,CAAC4B,OAAO,CACzB,MAAO,CAAOlC,CAAe,EAAW,IAAI,CAACN,cAAe,CAC9D,IAAK,CAAAY,gBAAc,CAACE,IAAI,CACtB,MAAyC,MAAM,GAAxCR,CAAe,CAACmC,WAAW,CAAC,CAAY,CACjD,IAAK,CAAA7B,gBAAc,CAACG,KAAK,CACvB,MAAyC,OAAO,GAAzCT,CAAe,CAACmC,WAAW,CAAC,CAAa,CAClD,QACE,QACJ,CACF,CAEQvB,UAAUA,CAACtB,CAAa,CAAoC,CAClE,GAAI,CACF,KAAM,CAAAW,CAAM,CAAGmC,IAAI,CAACC,KAAK,CAAC/C,CAAK,CAAC,CAEhC,GAAI2B,KAAK,CAACC,OAAO,CAACjB,CAAM,CAAC,CACvB,MAAO,GAAAI,SAAE,EAACJ,CAAM,CAEpB,CAAE,MAAOqC,CAAG,CAAE,CACZ,MAAO,GAAAlC,UAAG,EACR,GAAI,CAAAmC,8BAAc,CAACC,kCAAkB,CAACC,gBAAgB,CAAEH,CAAG,CAAEhD,CAAK,CACpE,CACF,CAEA,MAAO,GAAAe,SAAE,EAAC,EAAE,CACd,CAEQiB,UAAUA,CAChBoB,CAAuB,CACmB,OACrC,CAAAA,CAAK,EAAqB,CAAC,GAAlBA,CAAK,CAACC,MAAY,CAIzB,GAAAtC,SAAE,EAACqC,CAAyB,CAAC,CAH3B,GAAAtC,UAAG,EAAC,GAAI,CAAAmC,8BAAc,CAACC,kCAAkB,CAACI,UAAU,CAAEF,CAAK,CAAC,CAIvE,CACF,CAACG,OAAA,CAAA5D,UAAA,CAAAA,UAAA","ignoreList":[]}
|
|
@@ -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 _defineProperty(a,b,c){return
|
|
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))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","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":"
|
|
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":"sqBAMO,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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
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
|
+
{"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FirstVisit=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_utilities=require("../../utilities"),_types=require("../types");function _defineProperty(a,b,c){return
|
|
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))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class FirstVisit{constructor(a){let{matchType:b,count:c,unitOfTime:d}=a;_defineProperty(this,"matchType",void 0),_defineProperty(this,"conditionValue",void 0),_defineProperty(this,"timeUnit",void 0),this.matchType=b,this.conditionValue=c,this.timeUnit=d}evaluate(a){let{targetingData:b}=a;const c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.VisitsData];if(!(null!==c&&void 0!==c&&c.visits.length))return(0,_tsRes.Ok)(!1);const d=c.visits[0];return(0,_tsRes.Ok)(this.checkCondition(d))}checkCondition(a){if(!this.matchType||"number"!=typeof this.conditionValue||!this.timeUnit)return!1;const b=Date.now()-a,c=_utilities.Utilities.convertTimeUnit(b,this.timeUnit);switch(this.matchType){case _types.MatchType.GREATER:return c>this.conditionValue;case _types.MatchType.LOWER:return c<this.conditionValue;default:return!1}}}exports.FirstVisit=FirstVisit;
|
|
2
2
|
//# sourceMappingURL=firstVisit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firstVisit.js","names":["FirstVisit","constructor","a","matchType","count","unitOfTime","_defineProperty","conditionValue","timeUnit","evaluate","targetingData","visitsData","KameleoonData","VisitsData","visits","length","Ok","firstVisitTimestamp","checkCondition","elapsedTimeMilliseconds","Date","now","elapsedTimeUnit","Utilities","convertTimeUnit","MatchType","GREATER","LOWER","exports"],"sources":["../../../src/targeting/conditions/firstVisit.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { Utilities, TimeUnit } from 'src/utilities';\nimport { EvaluationDataType, MatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class FirstVisit implements ICondition {\n private matchType?: MatchType | null;\n private conditionValue?: number | null;\n private timeUnit?: TimeUnit | null;\n\n constructor({ matchType, count, unitOfTime }: ConditionDataType) {\n this.matchType = matchType;\n this.conditionValue = count;\n this.timeUnit = unitOfTime;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const visitsData = targetingData?.[KameleoonData.VisitsData];\n\n if (!visitsData?.visits.length) {\n return Ok(false);\n }\n\n const firstVisitTimestamp = visitsData.visits[0];\n\n return Ok(this.checkCondition(firstVisitTimestamp));\n }\n\n private checkCondition(firstVisitTimestamp: number): boolean {\n if (\n !this.matchType ||\n typeof this.conditionValue !== 'number' ||\n !this.timeUnit\n ) {\n return false;\n }\n\n const elapsedTimeMilliseconds = Date.now() - firstVisitTimestamp;\n const elapsedTimeUnit = Utilities.convertTimeUnit(\n elapsedTimeMilliseconds,\n this.timeUnit,\n );\n\n switch (this.matchType) {\n case MatchType.GREATER:\n return elapsedTimeUnit > this.conditionValue;\n case MatchType.LOWER:\n return elapsedTimeUnit < this.conditionValue;\n default:\n return false;\n }\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"firstVisit.js","names":["FirstVisit","constructor","a","matchType","count","unitOfTime","_defineProperty","conditionValue","timeUnit","evaluate","targetingData","visitsData","KameleoonData","VisitsData","visits","length","Ok","firstVisitTimestamp","checkCondition","elapsedTimeMilliseconds","Date","now","elapsedTimeUnit","Utilities","convertTimeUnit","MatchType","GREATER","LOWER","exports"],"sources":["../../../src/targeting/conditions/firstVisit.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { Utilities, TimeUnit } from 'src/utilities';\nimport { EvaluationDataType, MatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class FirstVisit implements ICondition {\n private matchType?: MatchType | null;\n private conditionValue?: number | null;\n private timeUnit?: TimeUnit | null;\n\n constructor({ matchType, count, unitOfTime }: ConditionDataType) {\n this.matchType = matchType;\n this.conditionValue = count;\n this.timeUnit = unitOfTime;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const visitsData = targetingData?.[KameleoonData.VisitsData];\n\n if (!visitsData?.visits.length) {\n return Ok(false);\n }\n\n const firstVisitTimestamp = visitsData.visits[0];\n\n return Ok(this.checkCondition(firstVisitTimestamp));\n }\n\n private checkCondition(firstVisitTimestamp: number): boolean {\n if (\n !this.matchType ||\n typeof this.conditionValue !== 'number' ||\n !this.timeUnit\n ) {\n return false;\n }\n\n const elapsedTimeMilliseconds = Date.now() - firstVisitTimestamp;\n const elapsedTimeUnit = Utilities.convertTimeUnit(\n elapsedTimeMilliseconds,\n this.timeUnit,\n );\n\n switch (this.matchType) {\n case MatchType.GREATER:\n return elapsedTimeUnit > this.conditionValue;\n case MatchType.LOWER:\n return elapsedTimeUnit < this.conditionValue;\n default:\n return false;\n }\n }\n}\n"],"mappings":"2uBAOO,KAAM,CAAAA,UAAiC,CAK5CC,WAAWA,CAAAC,CAAA,CAAsD,IAArD,CAAEC,SAAS,CAATA,CAAS,CAAEC,KAAK,CAALA,CAAK,CAAEC,UAAU,CAAVA,CAA8B,CAAC,CAAAH,CAAA,CAAAI,eAAA,0BAAAA,eAAA,+BAAAA,eAAA,yBAC7D,IAAI,CAACH,SAAS,CAAGA,CAAS,CAC1B,IAAI,CAACI,cAAc,CAAGH,CAAK,CAC3B,IAAI,CAACI,QAAQ,CAAGH,CAClB,CAEOI,QAAQA,CAAAP,CAAA,CAEyC,IAFxC,CACdQ,aAAa,CAAbA,CACkB,CAAC,CAAAR,CAAA,CACnB,KAAM,CAAAS,CAAU,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACC,UAAU,CAAC,CAE5D,GAAI,SAACF,CAAU,WAAVA,CAAU,EAAVA,CAAU,CAAEG,MAAM,CAACC,MAAM,EAC5B,MAAO,GAAAC,SAAE,IAAM,CAAC,CAGlB,KAAM,CAAAC,CAAmB,CAAGN,CAAU,CAACG,MAAM,CAAC,CAAC,CAAC,CAEhD,MAAO,GAAAE,SAAE,EAAC,IAAI,CAACE,cAAc,CAACD,CAAmB,CAAC,CACpD,CAEQC,cAAcA,CAACD,CAA2B,CAAW,CAC3D,GACE,CAAC,IAAI,CAACd,SAAS,EACgB,QAAQ,EAAvC,MAAO,KAAI,CAACI,cAA2B,EACvC,CAAC,IAAI,CAACC,QAAQ,CAEd,SACD,KAEK,CAAAW,CAAuB,CAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,CAAGJ,CAAmB,CAC1DK,CAAe,CAAGC,oBAAS,CAACC,eAAe,CAC/CL,CAAuB,CACvB,IAAI,CAACX,QACP,CAAC,CAED,OAAQ,IAAI,CAACL,SAAS,EACpB,IAAK,CAAAsB,gBAAS,CAACC,OAAO,CACpB,MAAO,CAAAJ,CAAe,CAAG,IAAI,CAACf,cAAc,CAC9C,IAAK,CAAAkB,gBAAS,CAACE,KAAK,CAClB,MAAO,CAAAL,CAAe,CAAG,IAAI,CAACf,cAAc,CAC9C,QACE,QACJ,CACF,CACF,CAACqB,OAAA,CAAA5B,UAAA,CAAAA,UAAA","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.GeolocationCondition=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData");function _defineProperty(a,b,c){return
|
|
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))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class GeolocationCondition{constructor(a){let{country:b,region:c,city:d}=a;_defineProperty(this,"country",void 0),_defineProperty(this,"region",void 0),_defineProperty(this,"city",void 0),this.country=b,this.region=c,this.city=d}evaluate(a){let{targetingData:b}=a;const c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.GeolocationData];if(c){const{country:a,region:b,city:d}=c,[e,f,g]=[this.country,this.region,this.city];if(!e||!a)return(0,_tsRes.Ok)(!1);const h=a.toLowerCase()===e.toLowerCase()&&(!f||(null===b||void 0===b?void 0:b.toLowerCase())===f.toLowerCase())&&(!g||(null===d||void 0===d?void 0:d.toLowerCase())===g.toLowerCase());return(0,_tsRes.Ok)(h)}return(0,_tsRes.Ok)(!1)}}exports.GeolocationCondition=GeolocationCondition;
|
|
2
2
|
//# sourceMappingURL=geolocation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geolocation.js","names":["GeolocationCondition","constructor","a","country","region","city","_defineProperty","evaluate","targetingData","geolocationData","KameleoonData","GeolocationData","dataCountry","dataRegion","dataCity","conditionCountry","conditionRegion","conditionCity","Ok","result","toLowerCase","exports"],"sources":["../../../src/targeting/conditions/geolocation.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { EvaluationDataType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\n// --- Note ---\n// `GeolocationCondition` uses `Condition` in the naming to avoid confusion with\n// native `Geolocation` API\nexport class GeolocationCondition implements ICondition {\n private country?: string | null;\n private region?: string | null;\n private city?: string | null;\n\n constructor({ country, region, city }: ConditionDataType) {\n this.country = country;\n this.region = region;\n this.city = city;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const geolocationData = targetingData?.[KameleoonData.GeolocationData];\n\n if (geolocationData) {\n const {\n country: dataCountry,\n region: dataRegion,\n city: dataCity,\n } = geolocationData;\n const [conditionCountry, conditionRegion, conditionCity] = [\n this.country,\n this.region,\n this.city,\n ];\n\n if (!conditionCountry || !dataCountry) {\n return Ok(false);\n }\n\n const result =\n dataCountry.toLowerCase() === conditionCountry.toLowerCase() &&\n (!conditionRegion ||\n dataRegion?.toLowerCase() === conditionRegion.toLowerCase()) &&\n (!conditionCity ||\n dataCity?.toLowerCase() === conditionCity.toLowerCase());\n\n return Ok(result);\n }\n\n return Ok(false);\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"geolocation.js","names":["GeolocationCondition","constructor","a","country","region","city","_defineProperty","evaluate","targetingData","geolocationData","KameleoonData","GeolocationData","dataCountry","dataRegion","dataCity","conditionCountry","conditionRegion","conditionCity","Ok","result","toLowerCase","exports"],"sources":["../../../src/targeting/conditions/geolocation.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { EvaluationDataType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\n// --- Note ---\n// `GeolocationCondition` uses `Condition` in the naming to avoid confusion with\n// native `Geolocation` API\nexport class GeolocationCondition implements ICondition {\n private country?: string | null;\n private region?: string | null;\n private city?: string | null;\n\n constructor({ country, region, city }: ConditionDataType) {\n this.country = country;\n this.region = region;\n this.city = city;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const geolocationData = targetingData?.[KameleoonData.GeolocationData];\n\n if (geolocationData) {\n const {\n country: dataCountry,\n region: dataRegion,\n city: dataCity,\n } = geolocationData;\n const [conditionCountry, conditionRegion, conditionCity] = [\n this.country,\n this.region,\n this.city,\n ];\n\n if (!conditionCountry || !dataCountry) {\n return Ok(false);\n }\n\n const result =\n dataCountry.toLowerCase() === conditionCountry.toLowerCase() &&\n (!conditionRegion ||\n dataRegion?.toLowerCase() === conditionRegion.toLowerCase()) &&\n (!conditionCity ||\n dataCity?.toLowerCase() === conditionCity.toLowerCase());\n\n return Ok(result);\n }\n\n return Ok(false);\n }\n}\n"],"mappings":"orBASO,KAAM,CAAAA,oBAA2C,CAKtDC,WAAWA,CAAAC,CAAA,CAA+C,IAA9C,CAAEC,OAAO,CAAPA,CAAO,CAAEC,MAAM,CAANA,CAAM,CAAEC,IAAI,CAAJA,CAAwB,CAAC,CAAAH,CAAA,CAAAI,eAAA,wBAAAA,eAAA,uBAAAA,eAAA,qBACtD,IAAI,CAACH,OAAO,CAAGA,CAAO,CACtB,IAAI,CAACC,MAAM,CAAGA,CAAM,CACpB,IAAI,CAACC,IAAI,CAAGA,CACd,CAEOE,QAAQA,CAAAL,CAAA,CAEyC,IAFxC,CACdM,aAAa,CAAbA,CACkB,CAAC,CAAAN,CAAA,CACnB,KAAM,CAAAO,CAAe,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACC,eAAe,CAAC,CAEtE,GAAIF,CAAe,CAAE,MACb,CACJN,OAAO,CAAES,CAAW,CACpBR,MAAM,CAAES,CAAU,CAClBR,IAAI,CAAES,CACR,CAAC,CAAGL,CAAe,CACb,CAACM,CAAgB,CAAEC,CAAe,CAAEC,CAAa,CAAC,CAAG,CACzD,IAAI,CAACd,OAAO,CACZ,IAAI,CAACC,MAAM,CACX,IAAI,CAACC,IAAI,CACV,CAED,GAAI,CAACU,CAAgB,EAAI,CAACH,CAAW,CACnC,MAAO,GAAAM,SAAE,IAAM,CAAC,CAGlB,KAAM,CAAAC,CAAM,CACVP,CAAW,CAACQ,WAAW,CAAC,CAAC,GAAKL,CAAgB,CAACK,WAAW,CAAC,CAAC,GAC3D,CAACJ,CAAe,EACf,QAAAH,CAAU,WAAVA,CAAU,QAAVA,CAAU,CAAEO,WAAW,CAAC,CAAC,IAAKJ,CAAe,CAACI,WAAW,CAAC,CAAC,CAAC,GAC7D,CAACH,CAAa,EACb,QAAAH,CAAQ,WAARA,CAAQ,QAARA,CAAQ,CAAEM,WAAW,CAAC,CAAC,IAAKH,CAAa,CAACG,WAAW,CAAC,CAAC,CAAC,CAE5D,MAAO,GAAAF,SAAE,EAACC,CAAM,CAClB,CAEA,MAAO,GAAAD,SAAE,IAAM,CACjB,CACF,CAACG,OAAA,CAAArB,oBAAA,CAAAA,oBAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/targeting/conditions/index.ts"],"sourcesContent":["export { Device } from './device';\nexport { ConditionFactory } from './conditionFactory';\nexport { ConditionDataType, ConditionType } from './types';\nexport { CustomData } from './customData';\nexport { ExclusiveCampaign } from './exclusiveCampaign';\nexport { Browser } from './browser';\nexport { PageUrl } from './pageUrl';\nexport { PageTitle } from './pageTitle';\nexport { Conversion } from './conversion';\nexport { VisitorCode } from './visitorCode';\nexport { SdkLanguage } from './sdkLanguage';\nexport { TargetFeatureFlag } from './targetFeatureFlag';\nexport { Cookie } from './cookie';\nexport { OperatingSystem } from './operatingSystem';\nexport { GeolocationCondition } from './geolocation';\nexport { Segment } from './segment';\nexport { PreviousPage } from './previousPage';\nexport { VisitedPages } from './visitedPages';\nexport { FirstVisit } from './firstVisit';\nexport { LastVisit } from './lastVisit';\nexport { Visits } from './visits';\nexport { SameDayVisits } from './sameDayVisits';\nexport { NewVisitor } from './newVisitor';\nexport { ApplicationVersion } from './applicationVersion';\nexport { ConversionLikelihood } from './conversionLikelihood';\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/targeting/conditions/index.ts"],"sourcesContent":["export { Device } from './device';\nexport { ConditionFactory } from './conditionFactory';\nexport { ConditionDataType, ConditionType } from './types';\nexport { CustomData } from './customData';\nexport { ExclusiveCampaign } from './exclusiveCampaign';\nexport { Browser } from './browser';\nexport { PageUrl } from './pageUrl';\nexport { PageTitle } from './pageTitle';\nexport { Conversion } from './conversion';\nexport { VisitorCode } from './visitorCode';\nexport { SdkLanguage } from './sdkLanguage';\nexport { TargetFeatureFlag } from './targetFeatureFlag';\nexport { Cookie } from './cookie';\nexport { OperatingSystem } from './operatingSystem';\nexport { GeolocationCondition } from './geolocation';\nexport { Segment } from './segment';\nexport { PreviousPage } from './previousPage';\nexport { VisitedPages } from './visitedPages';\nexport { FirstVisit } from './firstVisit';\nexport { LastVisit } from './lastVisit';\nexport { Visits } from './visits';\nexport { SameDayVisits } from './sameDayVisits';\nexport { NewVisitor } from './newVisitor';\nexport { ApplicationVersion } from './applicationVersion';\nexport { ConversionLikelihood } from './conversionLikelihood';\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.LastVisit=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_utilities=require("../../utilities"),_types=require("../types");function _defineProperty(a,b,c){return
|
|
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))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class LastVisit{constructor(a){let{matchType:b,count:c,unitOfTime:d}=a;_defineProperty(this,"matchType",void 0),_defineProperty(this,"conditionValue",void 0),_defineProperty(this,"timeUnit",void 0),this.matchType=b,this.conditionValue=c,this.timeUnit=d}evaluate(a){let{targetingData:b}=a;const c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.VisitsData];if(!(null!==c&&void 0!==c&&c.visits.length))return(0,_tsRes.Ok)(!1);const{visits:d}=c,e=d[d.length-1];return(0,_tsRes.Ok)(this.checkCondition(e))}checkCondition(a){if(!this.matchType||"number"!=typeof this.conditionValue||!this.timeUnit)return!1;const b=Date.now()-a,c=_utilities.Utilities.convertTimeUnit(b,this.timeUnit);switch(this.matchType){case _types.MatchType.GREATER:return c>this.conditionValue;case _types.MatchType.LOWER:return c<this.conditionValue;default:return!1}}}exports.LastVisit=LastVisit;
|
|
2
2
|
//# sourceMappingURL=lastVisit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lastVisit.js","names":["LastVisit","constructor","a","matchType","count","unitOfTime","_defineProperty","conditionValue","timeUnit","evaluate","targetingData","visitsData","KameleoonData","VisitsData","visits","length","Ok","latestPreviousVisitTimestamp","checkCondition","lastVisitTimestamp","elapsedTimeMilliseconds","Date","now","elapsedTimeUnit","Utilities","convertTimeUnit","MatchType","GREATER","LOWER","exports"],"sources":["../../../src/targeting/conditions/lastVisit.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { Utilities, TimeUnit } from 'src/utilities';\nimport { EvaluationDataType, MatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class LastVisit implements ICondition {\n private matchType?: MatchType | null;\n private conditionValue?: number | null;\n private timeUnit?: TimeUnit | null;\n\n constructor({ matchType, count, unitOfTime }: ConditionDataType) {\n this.matchType = matchType;\n this.conditionValue = count;\n this.timeUnit = unitOfTime;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const visitsData = targetingData?.[KameleoonData.VisitsData];\n\n if (!visitsData?.visits.length) {\n return Ok(false);\n }\n\n const { visits } = visitsData;\n\n // --- Note ---\n // Takes the timestamp of latest previous visit\n const latestPreviousVisitTimestamp =\n visits[visits.length - 1];\n\n return Ok(this.checkCondition(latestPreviousVisitTimestamp));\n }\n\n private checkCondition(lastVisitTimestamp: number): boolean {\n if (\n !this.matchType ||\n typeof this.conditionValue !== 'number' ||\n !this.timeUnit\n ) {\n return false;\n }\n\n const elapsedTimeMilliseconds = Date.now() - lastVisitTimestamp;\n const elapsedTimeUnit = Utilities.convertTimeUnit(\n elapsedTimeMilliseconds,\n this.timeUnit,\n );\n\n switch (this.matchType) {\n case MatchType.GREATER:\n return elapsedTimeUnit > this.conditionValue;\n case MatchType.LOWER:\n return elapsedTimeUnit < this.conditionValue;\n default:\n return false;\n }\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"lastVisit.js","names":["LastVisit","constructor","a","matchType","count","unitOfTime","_defineProperty","conditionValue","timeUnit","evaluate","targetingData","visitsData","KameleoonData","VisitsData","visits","length","Ok","latestPreviousVisitTimestamp","checkCondition","lastVisitTimestamp","elapsedTimeMilliseconds","Date","now","elapsedTimeUnit","Utilities","convertTimeUnit","MatchType","GREATER","LOWER","exports"],"sources":["../../../src/targeting/conditions/lastVisit.ts"],"sourcesContent":["import { Ok, Result } from 'ts-res';\nimport { KameleoonData } from 'src/kameleoonData';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { Utilities, TimeUnit } from 'src/utilities';\nimport { EvaluationDataType, MatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class LastVisit implements ICondition {\n private matchType?: MatchType | null;\n private conditionValue?: number | null;\n private timeUnit?: TimeUnit | null;\n\n constructor({ matchType, count, unitOfTime }: ConditionDataType) {\n this.matchType = matchType;\n this.conditionValue = count;\n this.timeUnit = unitOfTime;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const visitsData = targetingData?.[KameleoonData.VisitsData];\n\n if (!visitsData?.visits.length) {\n return Ok(false);\n }\n\n const { visits } = visitsData;\n\n // --- Note ---\n // Takes the timestamp of latest previous visit\n const latestPreviousVisitTimestamp =\n visits[visits.length - 1];\n\n return Ok(this.checkCondition(latestPreviousVisitTimestamp));\n }\n\n private checkCondition(lastVisitTimestamp: number): boolean {\n if (\n !this.matchType ||\n typeof this.conditionValue !== 'number' ||\n !this.timeUnit\n ) {\n return false;\n }\n\n const elapsedTimeMilliseconds = Date.now() - lastVisitTimestamp;\n const elapsedTimeUnit = Utilities.convertTimeUnit(\n elapsedTimeMilliseconds,\n this.timeUnit,\n );\n\n switch (this.matchType) {\n case MatchType.GREATER:\n return elapsedTimeUnit > this.conditionValue;\n case MatchType.LOWER:\n return elapsedTimeUnit < this.conditionValue;\n default:\n return false;\n }\n }\n}\n"],"mappings":"0uBAOO,KAAM,CAAAA,SAAgC,CAK3CC,WAAWA,CAAAC,CAAA,CAAsD,IAArD,CAAEC,SAAS,CAATA,CAAS,CAAEC,KAAK,CAALA,CAAK,CAAEC,UAAU,CAAVA,CAA8B,CAAC,CAAAH,CAAA,CAAAI,eAAA,0BAAAA,eAAA,+BAAAA,eAAA,yBAC7D,IAAI,CAACH,SAAS,CAAGA,CAAS,CAC1B,IAAI,CAACI,cAAc,CAAGH,CAAK,CAC3B,IAAI,CAACI,QAAQ,CAAGH,CAClB,CAEOI,QAAQA,CAAAP,CAAA,CAEyC,IAFxC,CACdQ,aAAa,CAAbA,CACkB,CAAC,CAAAR,CAAA,CACnB,KAAM,CAAAS,CAAU,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACC,UAAU,CAAC,CAE5D,GAAI,SAACF,CAAU,WAAVA,CAAU,EAAVA,CAAU,CAAEG,MAAM,CAACC,MAAM,EAC5B,MAAO,GAAAC,SAAE,IAAM,CAAC,CACjB,KAEK,CAAEF,MAAM,CAANA,CAAO,CAAC,CAAGH,CAAU,CAIvBM,CAA4B,CAClCH,CAAM,CAACA,CAAM,CAACC,MAAM,CAAG,CAAC,CAAC,CAEzB,MAAO,GAAAC,SAAE,EAAC,IAAI,CAACE,cAAc,CAACD,CAA4B,CAAC,CAC7D,CAEQC,cAAcA,CAACC,CAA0B,CAAW,CAC1D,GACE,CAAC,IAAI,CAAChB,SAAS,EACgB,QAAQ,EAAvC,MAAO,KAAI,CAACI,cAA2B,EACvC,CAAC,IAAI,CAACC,QAAQ,CAEd,SACD,KAEK,CAAAY,CAAuB,CAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,CAAGH,CAAkB,CACzDI,CAAe,CAAGC,oBAAS,CAACC,eAAe,CAC/CL,CAAuB,CACvB,IAAI,CAACZ,QACP,CAAC,CAED,OAAQ,IAAI,CAACL,SAAS,EACpB,IAAK,CAAAuB,gBAAS,CAACC,OAAO,CACpB,MAAO,CAAAJ,CAAe,CAAG,IAAI,CAAChB,cAAc,CAC9C,IAAK,CAAAmB,gBAAS,CAACE,KAAK,CAClB,MAAO,CAAAL,CAAe,CAAG,IAAI,CAAChB,cAAc,CAC9C,QACE,QACJ,CACF,CACF,CAACsB,OAAA,CAAA7B,SAAA,CAAAA,SAAA","ignoreList":[]}
|
|
@@ -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 _defineProperty(a,b,c){return
|
|
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))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{visits:d}=c,e=!d.length;switch(this.visitorType){case _types.VisitorType.NEW:return(0,_tsRes.Ok)(e);case _types.VisitorType.RETURNING:return(0,_tsRes.Ok)(!e);default:(0,_kameleoonError.exhaustCheck)(this.visitorType)}}}exports.NewVisitor=NewVisitor;
|
|
2
2
|
//# sourceMappingURL=newVisitor.js.map
|