@kameleoon/javascript-sdk-core 5.12.1 → 5.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/bundle-cjs-stats.html +4949 -0
  3. package/dist/bundle-es-stats.html +4949 -0
  4. package/dist/javascript-sdk-core.cjs.min.js +2 -0
  5. package/dist/javascript-sdk-core.cjs.min.js.map +1 -0
  6. package/dist/javascript-sdk-core.es.min.js +2 -0
  7. package/dist/javascript-sdk-core.es.min.js.map +1 -0
  8. package/dist/kameleoonClient.d.ts +1 -0
  9. package/dist/kameleoonClientInterface.d.ts +10 -0
  10. package/dist/kameleoonData/dataProcessor.d.ts +1 -0
  11. package/dist/kameleoonData/targetedSegment.d.ts +10 -0
  12. package/dist/kameleoonData/types.d.ts +18 -6
  13. package/dist/requester/types.d.ts +1 -1
  14. package/dist/targeting/types.d.ts +1 -0
  15. package/package.json +5 -3
  16. package/dist/cacheManager/cacheManager.js +0 -1
  17. package/dist/cacheManager/index.js +0 -1
  18. package/dist/cacheManager/types.js +0 -1
  19. package/dist/clientConfiguration/clientConfiguration.js +0 -1
  20. package/dist/clientConfiguration/constants.js +0 -1
  21. package/dist/clientConfiguration/index.js +0 -1
  22. package/dist/clientConfiguration/meGroup.js +0 -1
  23. package/dist/clientConfiguration/types.js +0 -1
  24. package/dist/clientSettings/clientSettings.js +0 -1
  25. package/dist/clientSettings/index.js +0 -1
  26. package/dist/clientSettings/types.js +0 -1
  27. package/dist/constants.js +0 -1
  28. package/dist/eventManager/eventManager.js +0 -1
  29. package/dist/eventManager/index.js +0 -1
  30. package/dist/eventManager/types.js +0 -1
  31. package/dist/eventSource/constants.js +0 -1
  32. package/dist/eventSource/eventSource.js +0 -1
  33. package/dist/eventSource/index.js +0 -1
  34. package/dist/eventSource/types.js +0 -1
  35. package/dist/hasher/hasher.js +0 -1
  36. package/dist/hasher/index.js +0 -1
  37. package/dist/hasher/types.js +0 -1
  38. package/dist/index.js +0 -1
  39. package/dist/kameleoonClient.js +0 -1
  40. package/dist/kameleoonClientInterface.js +0 -1
  41. package/dist/kameleoonData/applicationVersion.js +0 -1
  42. package/dist/kameleoonData/browser.js +0 -1
  43. package/dist/kameleoonData/cbScores.js +0 -1
  44. package/dist/kameleoonData/conversion.js +0 -1
  45. package/dist/kameleoonData/cookie.js +0 -1
  46. package/dist/kameleoonData/customData.js +0 -1
  47. package/dist/kameleoonData/dataManager.js +0 -1
  48. package/dist/kameleoonData/dataProcessor.js +0 -1
  49. package/dist/kameleoonData/device.js +0 -1
  50. package/dist/kameleoonData/geolocation.js +0 -1
  51. package/dist/kameleoonData/helpers.js +0 -1
  52. package/dist/kameleoonData/index.js +0 -1
  53. package/dist/kameleoonData/kameleoonConversionScore.js +0 -1
  54. package/dist/kameleoonData/operatingSystem.js +0 -1
  55. package/dist/kameleoonData/pageView.js +0 -1
  56. package/dist/kameleoonData/personalization.js +0 -1
  57. package/dist/kameleoonData/staticData.js +0 -1
  58. package/dist/kameleoonData/types.js +0 -1
  59. package/dist/kameleoonData/uniqueIdentifier.js +0 -1
  60. package/dist/kameleoonData/userAgent.js +0 -1
  61. package/dist/kameleoonData/visitProcessor.js +0 -1
  62. package/dist/kameleoonData/visitsData.js +0 -1
  63. package/dist/kameleoonError/constants.js +0 -1
  64. package/dist/kameleoonError/helpers.js +0 -1
  65. package/dist/kameleoonError/index.js +0 -1
  66. package/dist/kameleoonError/kameleoonError.js +0 -1
  67. package/dist/kameleoonError/types.js +0 -1
  68. package/dist/kameleoonUtils.js +0 -1
  69. package/dist/logging/defaultLogger.js +0 -1
  70. package/dist/logging/index.js +0 -1
  71. package/dist/logging/kameleoonLogger.js +0 -1
  72. package/dist/logging/types.js +0 -1
  73. package/dist/requester/constants.js +0 -1
  74. package/dist/requester/index.js +0 -1
  75. package/dist/requester/requester.js +0 -1
  76. package/dist/requester/types.js +0 -1
  77. package/dist/requester/urlProvider.js +0 -1
  78. package/dist/sdkInfoTypes.js +0 -1
  79. package/dist/storage/constants.js +0 -1
  80. package/dist/storage/index.js +0 -1
  81. package/dist/storage/integrityChecker.js +0 -1
  82. package/dist/storage/storage.js +0 -1
  83. package/dist/storage/storageCleanupManager.js +0 -1
  84. package/dist/storage/types.js +0 -1
  85. package/dist/targeting/conditions/applicationVersion.js +0 -1
  86. package/dist/targeting/conditions/browser.js +0 -1
  87. package/dist/targeting/conditions/conditionFactory.js +0 -1
  88. package/dist/targeting/conditions/conditionFactoryInstance.js +0 -1
  89. package/dist/targeting/conditions/conversion.js +0 -1
  90. package/dist/targeting/conditions/conversionLikelihood.js +0 -1
  91. package/dist/targeting/conditions/cookie.js +0 -1
  92. package/dist/targeting/conditions/customData.js +0 -1
  93. package/dist/targeting/conditions/device.js +0 -1
  94. package/dist/targeting/conditions/exclusiveCampaign.js +0 -1
  95. package/dist/targeting/conditions/exclusiveExperiment.js +0 -1
  96. package/dist/targeting/conditions/firstVisit.js +0 -1
  97. package/dist/targeting/conditions/geolocation.js +0 -1
  98. package/dist/targeting/conditions/index.js +0 -1
  99. package/dist/targeting/conditions/lastVisit.js +0 -1
  100. package/dist/targeting/conditions/newVisitor.js +0 -1
  101. package/dist/targeting/conditions/operatingSystem.js +0 -1
  102. package/dist/targeting/conditions/pageTitle.js +0 -1
  103. package/dist/targeting/conditions/pageUrl.js +0 -1
  104. package/dist/targeting/conditions/previousPage.js +0 -1
  105. package/dist/targeting/conditions/sameDayVisits.js +0 -1
  106. package/dist/targeting/conditions/sdkLanguage.js +0 -1
  107. package/dist/targeting/conditions/segment.js +0 -1
  108. package/dist/targeting/conditions/targetExperiment.js +0 -1
  109. package/dist/targeting/conditions/targetFeatureFlag.js +0 -1
  110. package/dist/targeting/conditions/targetPersonalization.js +0 -1
  111. package/dist/targeting/conditions/types.js +0 -1
  112. package/dist/targeting/conditions/utilities.js +0 -1
  113. package/dist/targeting/conditions/visitedPages.js +0 -1
  114. package/dist/targeting/conditions/visitorCode.js +0 -1
  115. package/dist/targeting/conditions/visits.js +0 -1
  116. package/dist/targeting/index.js +0 -1
  117. package/dist/targeting/node.js +0 -1
  118. package/dist/targeting/tree.js +0 -1
  119. package/dist/targeting/types.js +0 -1
  120. package/dist/tracking/bodyProvider.js +0 -1
  121. package/dist/tracking/constants.js +0 -1
  122. package/dist/tracking/index.js +0 -1
  123. package/dist/tracking/tracker.js +0 -1
  124. package/dist/tracking/types.js +0 -1
  125. package/dist/types.js +0 -1
  126. package/dist/utilities/constants.js +0 -1
  127. package/dist/utilities/index.js +0 -1
  128. package/dist/utilities/listUtilities.js +0 -1
  129. package/dist/utilities/parser.js +0 -1
  130. package/dist/utilities/types.js +0 -1
  131. package/dist/utilities/utilities.js +0 -1
  132. package/dist/utilities/validator.js +0 -1
  133. package/dist/variationConfiguration/index.js +0 -1
  134. package/dist/variationConfiguration/types.js +0 -1
  135. package/dist/variationConfiguration/variationConfiguration.js +0 -1
  136. package/dist/visitorCodeManager/constants.js +0 -1
  137. package/dist/visitorCodeManager/index.js +0 -1
  138. package/dist/visitorCodeManager/types.js +0 -1
  139. package/dist/visitorCodeManager/visitorCodeManager.js +0 -1
@@ -50,6 +50,7 @@ export declare class KameleoonClient implements IKameleoonClient {
50
50
  isInitialized(): boolean;
51
51
  setLogLevel(level: LogLevel): void;
52
52
  setForcedVariation({ visitorCode, experimentId, variationKey, forceTargeting, }: SetForcedVariationParametersType): void;
53
+ evaluateAudiences(visitorCode: string): void;
53
54
  protected setUserConsent({ visitorCode, consent, setData, }: SetUserConsentParametersType): void;
54
55
  private updateConsentData;
55
56
  protected _isConsentProvided(visitorCode: string): boolean;
@@ -328,4 +328,14 @@ export interface IKameleoonClient {
328
328
  * - `KameleoonException.StorageWrite` - Couldn't update storage data
329
329
  */
330
330
  setForcedVariation: ({ visitorCode, experimentId, variationKey, forceTargeting, }: SetForcedVariationParametersType) => void;
331
+ /**
332
+ * @method evaluateAudiences - evaluates the visitor against all available Audiences Explorer segments and tracks those that match.
333
+ * A detailed analysis of segment performance can then be performed directly in Audiences Explorer.
334
+ * @param visitorCode {string} - The unique visitor code identifying the visitor.
335
+ * @throws `KameleoonError` with one of the following `type` s:
336
+ * - `KameleoonException.VisitorCodeMaxLength` - The visitor code length was exceeded
337
+ * - `KameleoonException.VisitorCodeEmpty` The visitor code is empty
338
+ * - `KameleoonException.Initialization` - Method was executed before the `kameleoonClient` completed its `initialize` call
339
+ */
340
+ evaluateAudiences(visitorCode: string): void;
331
341
  }
@@ -23,6 +23,7 @@ export declare class DataProcessor implements IDataProcessor {
23
23
  private updateConversion;
24
24
  private updateVisitsData;
25
25
  private updatePersonalization;
26
+ private updateTargetedSegment;
26
27
  private updateCommonData;
27
28
  dereferenceData(data: TargetingDataType, visitorCode: string): DereferenceTargetingDataResultType;
28
29
  private deleteExpiredField;
@@ -0,0 +1,10 @@
1
+ import { IKameleoonData, TargetedSegmentDataType } from './types';
2
+ import { TrackingStatus } from '../types';
3
+ export declare class TargetedSegment implements IKameleoonData {
4
+ status: TrackingStatus;
5
+ private id;
6
+ constructor(id: number);
7
+ get url(): string;
8
+ get data(): TargetedSegmentDataType;
9
+ static _fromRaw(data: TargetedSegmentDataType): TargetedSegment;
10
+ }
@@ -6,6 +6,7 @@ import { TrackingStatus } from '../types';
6
6
  import { ExternalPackageInfoType } from '../sdkInfoTypes';
7
7
  import { Personalization } from '../kameleoonData/personalization';
8
8
  import { CBScores } from '../kameleoonData/cbScores';
9
+ import { TargetedSegment } from '../kameleoonData/targetedSegment';
9
10
  export type FieldParametersType = {
10
11
  expirationTime: number;
11
12
  key: KameleoonData;
@@ -21,9 +22,9 @@ export type VisitorProcessorParametersType = {
21
22
  export type NestedFieldParametersType = {
22
23
  expirationTime: number;
23
24
  visitorCode: string;
24
- key: KameleoonData.CustomData | KameleoonData.PageView | KameleoonData.Conversion | KameleoonData.Personalization;
25
+ key: KameleoonData.CustomData | KameleoonData.PageView | KameleoonData.Conversion | KameleoonData.Personalization | KameleoonData.TargetedSegment;
25
26
  nestedKey: string;
26
- value: CustomDataType | PageViewDataType | ConversionDataType | PersonalizationDataType;
27
+ value: CustomDataType | PageViewDataType | ConversionDataType | PersonalizationDataType | TargetedSegmentDataType;
27
28
  data: DereferencedTargetingDataType;
28
29
  };
29
30
  export type DataFilterType = ({ status, key, cdIndex, }: {
@@ -47,7 +48,7 @@ export type DataManagerParametersType = {
47
48
  infoStorage: IStorage<DataInfoType>;
48
49
  packageInfo: ExternalPackageInfoType;
49
50
  };
50
- export type KameleoonDataItemType = IdentifierDataType | BrowserDataType | ConversionDataType | CustomDataType | DeviceDataType | PageViewDataType | UserAgentDataType | CookieDataType | GeolocationDataType | OperatingSystemDataType | ApplicationVersionDataType | KCSDataType | VisitsDataType | PersonalizationDataType | CBSDataType;
51
+ export type KameleoonDataItemType = IdentifierDataType | BrowserDataType | ConversionDataType | CustomDataType | DeviceDataType | PageViewDataType | UserAgentDataType | CookieDataType | GeolocationDataType | OperatingSystemDataType | ApplicationVersionDataType | KCSDataType | VisitsDataType | PersonalizationDataType | CBSDataType | TargetedSegmentDataType;
51
52
  /**
52
53
  * @interface an interface of KameleoonData
53
54
  * each class instance will have url getter method
@@ -71,7 +72,7 @@ export interface IKameleoonData {
71
72
  * @type a tuple of each possible type of data for `addData` method
72
73
  * of KameleoonClient
73
74
  * */
74
- export type KameleoonDataType = UniqueIdentifier | Browser | Conversion | CustomData | Device | PageView | UserAgent | VisitsData | GeolocationData | OperatingSystem | Cookie | ApplicationVersion | KameleoonConversionScore | Personalization | CBScores;
75
+ export type KameleoonDataType = UniqueIdentifier | Browser | Conversion | CustomData | Device | PageView | UserAgent | VisitsData | GeolocationData | OperatingSystem | Cookie | ApplicationVersion | KameleoonConversionScore | Personalization | CBScores | TargetedSegment;
75
76
  export type ExpirationTimeType = {
76
77
  expirationTime: number;
77
78
  };
@@ -82,8 +83,9 @@ export type ExistingCustomDataType = NonNullable<KameleoonVisitorDataType[Kamele
82
83
  export type ExistingPageViewDataType = NonNullable<KameleoonVisitorDataType[KameleoonData.PageView]>;
83
84
  export type ExistingConversionDataType = NonNullable<KameleoonVisitorDataType[KameleoonData.Conversion]>;
84
85
  export type ExistingPersonalizationDataType = NonNullable<KameleoonVisitorDataType[KameleoonData.Personalization]>;
86
+ export type ExistingTargetedSegmentDataType = NonNullable<KameleoonVisitorDataType[KameleoonData.TargetedSegment]>;
85
87
  export type ExistingDataType<T extends KameleoonData> = NonNullable<KameleoonVisitorDataType[T]>;
86
- export type ExistingNestedDataType = ExistingCustomDataType | ExistingPageViewDataType | ExistingConversionDataType | ExistingPersonalizationDataType;
88
+ export type ExistingNestedDataType = ExistingCustomDataType | ExistingPageViewDataType | ExistingConversionDataType | ExistingPersonalizationDataType | ExistingTargetedSegmentDataType;
87
89
  export type KameleoonVisitorDataType<T = ExpirationTimeType> = {
88
90
  [KameleoonData.CustomData]?: {
89
91
  [index: string]: (CustomDataType & T) | undefined;
@@ -108,6 +110,9 @@ export type KameleoonVisitorDataType<T = ExpirationTimeType> = {
108
110
  [id: string]: PersonalizationDataType & T;
109
111
  };
110
112
  [KameleoonData.CBScores]?: CBSDataType & T;
113
+ [KameleoonData.TargetedSegment]?: {
114
+ [id: string]: TargetedSegmentDataType & T;
115
+ };
111
116
  };
112
117
  export declare enum KameleoonData {
113
118
  UniqueIdentifier = "uniqueIdentifier",
@@ -124,7 +129,8 @@ export declare enum KameleoonData {
124
129
  VisitsData = "visitsData",
125
130
  KameleoonConversionScore = "kameleoonConversionScore",
126
131
  Personalization = "personalization",
127
- CBScores = "cbScores"
132
+ CBScores = "cbScores",
133
+ TargetedSegment = "targetedSegment"
128
134
  }
129
135
  type CommonUpdateParametersType = {
130
136
  mutData: DereferencedTargetingDataType;
@@ -149,6 +155,9 @@ export type UpdateVisitsDataParametersType = {
149
155
  export type UpdatePersonalizationParametersType = {
150
156
  personalization: Personalization;
151
157
  } & CommonUpdateParametersType;
158
+ export type UpdateTargetSegmentParametersType = {
159
+ targetedSegment: TargetedSegment;
160
+ } & CommonUpdateParametersType;
152
161
  export type UpdateCommonDataParametersType = {
153
162
  commonData: KameleoonDataType;
154
163
  } & CommonUpdateParametersType;
@@ -184,6 +193,9 @@ export type BrowserDataType = {
184
193
  browser: BrowserType;
185
194
  version?: number;
186
195
  } & SharedDataPropertiesType;
196
+ export type TargetedSegmentDataType = {
197
+ id: number;
198
+ } & SharedDataPropertiesType;
187
199
  export type ConversionDataType = {
188
200
  id: number;
189
201
  goalId: number;
@@ -151,7 +151,7 @@ export declare enum DataApiQuery {
151
151
  VisitData = 1,
152
152
  DataMap = 2
153
153
  }
154
- declare const EVENT_TYPE_KEYS: readonly ["customData", "staticData", "page", "conversion", "geolocation", "activity", "experiment"];
154
+ declare const EVENT_TYPE_KEYS: readonly ["customData", "staticData", "targetingSegment", "page", "conversion", "geolocation", "activity", "experiment"];
155
155
  declare const PARAMETER_KEYS: readonly ["valuesCountMap", "mappingValue", "id", "nonce", "country", "environment", "city", "region", "latitude", "geolocation", "longitude", "mappingIdentifier", "postalCode", "sdkName", "sdkVersion", "kcs", "cbs", "personalization", "browserIndex", "browserVersion", "siteCode", "visitorCode", "currentVisit", "maxNumberPreviousVisits", "customData", "negative", "metadata", "revenue", "title", "os", "conversion", "staticData", "osIndex", "browser", "referrersIndices", "overwrite", "index", "href", "experiment", "page", "variationId", "deviceType", "goalId", "ts", "key", "userAgent", "bodyUa", "timeSincePreviousVisit", "visitNumber"];
156
156
  declare const TRACKING_KEYS: readonly ["visit", "map"];
157
157
  declare const QUERY_KEYS: readonly ["sse", "visitor", "map", "events"];
@@ -27,6 +27,7 @@ export type ConditionLevelType = {
27
27
  export type SegmentType = {
28
28
  id: string;
29
29
  name: string;
30
+ audienceTracking?: boolean;
30
31
  conditionsData: {
31
32
  firstLevelOrOperators: boolean[];
32
33
  firstLevel: ConditionLevelType[];
package/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "name": "@kameleoon/javascript-sdk-core",
3
- "version": "5.12.1",
3
+ "version": "5.14.0",
4
4
  "description": "Kameleoon JS SDK Core",
5
- "main": "dist/index.js",
5
+ "main": "dist/javascript-sdk-core.cjs.min.js",
6
+ "module": "dist/javascript-sdk-core.es.min.js",
6
7
  "types": "dist/index.d.ts",
7
8
  "files": [
8
9
  "dist"
@@ -10,9 +11,10 @@
10
11
  "scripts": {
11
12
  "clean": "rimraf dist && rimraf tsconfig.tsbuildinfo",
12
13
  "dev": "npm run clean && tsc -w -p tsconfig.watch.json",
13
- "build": "npm run clean && npm run build:types && npm run build:js",
14
+ "build": "npm run clean && npm run build:types && npm run build:bundle",
14
15
  "build:test": "npm run clean && npm run build:js-source-maps",
15
16
  "build:types": "tsc --emitDeclarationOnly && tsc-alias",
17
+ "build:bundle": "rollup -c",
16
18
  "build:js": "babel src --out-dir dist --extensions \".ts,.tsx\"",
17
19
  "build:js-source-maps": "babel src --out-dir dist --extensions \".ts,.tsx\" --source-maps true",
18
20
  "deploy": "/bin/bash ../../scripts/deploy.sh javascript-sdk-core",
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CacheManager=void 0;var _types=require("../types"),_logging=require("../logging");function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class CacheManager{constructor(a){_defineProperty(this,"cacheMap",new Map),_defineProperty(this,"intervalId",null),_defineProperty(this,"cleanupTimeout",void 0),this.cleanupTimeout=a*_types.Milliseconds.Second}add(a){let{key:b,data:c,lifetime:d}=a;_logging.KameleoonLogger.debug`CALL: CacheManager.add(key: ${b}, data: ${c}, lifetime: ${d})`,null===this.intervalId&&this.activate();const e=d*_types.Milliseconds.Second,f={data:c,expirationTime:Date.now()+e};this.cacheMap.set(b,f),_logging.KameleoonLogger.debug`RETURN: CacheManager.add(key: ${b}, data: ${c}, lifetime: ${d})`}getAliveItem(a){_logging.KameleoonLogger.debug`CALL: CacheManager.getAliveItem(key: ${a})`;const b=this.cacheMap.get(a);if(b&&b.expirationTime>=Date.now()){const c=b.data;return _logging.KameleoonLogger.debug`RETURN: CacheManager.getAliveItem(key: ${a}) -> (item: ${c})`,c}return b&&this.cacheMap.delete(a),_logging.KameleoonLogger.debug`RETURN: CacheManager.getAliveItem(key: ${a}) -> (item: null)`,null}activate(){this.intervalId=setInterval(()=>{const a=Date.now();for(const[b,c]of this.cacheMap)c.expirationTime<a&&this.cacheMap.delete(b);this.cacheMap.size||this.cleanupInterval()},this.cleanupTimeout)}cleanupInterval(){this.intervalId&&(clearInterval(this.intervalId),this.intervalId=null)}}exports.CacheManager=CacheManager;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"AddParametersType",{enumerable:!0,get:function(){return _types.AddParametersType}}),Object.defineProperty(exports,"CacheManager",{enumerable:!0,get:function(){return _cacheManager.CacheManager}});var _cacheManager=require("./cacheManager"),_types=require("./types");
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ClientConfiguration=void 0;var _tsRes=require("ts-res"),_types=require("./types"),_eventManager=require("../eventManager"),_constants=require("./constants"),_logging=require("../logging"),_meGroup=require("./meGroup"),_types2=require("../types");function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class ClientConfiguration{constructor(a){let{updateInterval:b,urlProvider:c,storage:d,requester:e,dataManager:f,eventSource:g,externalVisitorCodeManager:h,eventManager:i,externalPackageInfo:j,defaultDataFile:k}=a;_defineProperty(this,"updateConfigurationIntervalId",null),_defineProperty(this,"updateType",_types.UpdateType.Polling),_defineProperty(this,"configurationData",_constants.DEFAULT_CLIENT_CONFIGURATION),_defineProperty(this,"featureFlagsData",new Map),_defineProperty(this,"isTargetedDeliveryRule",null),_defineProperty(this,"segmentsData",null),_defineProperty(this,"holdoutData",null),_defineProperty(this,"meGroupsData",new Map),_defineProperty(this,"updateInterval",void 0),_defineProperty(this,"lastUpdate",void 0),_defineProperty(this,"storage",void 0),_defineProperty(this,"requester",void 0),_defineProperty(this,"eventSource",void 0),_defineProperty(this,"mappedRules",null),_defineProperty(this,"mappedExperiments",null),_defineProperty(this,"dataManager",void 0),_defineProperty(this,"visitorCodeManager",void 0),_defineProperty(this,"eventManager",void 0),_defineProperty(this,"urlProvider",void 0),_defineProperty(this,"lastModified",void 0),_defineProperty(this,"requestTime",void 0),_defineProperty(this,"externalPackageInfo",void 0),_defineProperty(this,"usedDefaultDataFile",!1),_defineProperty(this,"defaultDataFile",void 0),_defineProperty(this,"CACHE_REVALIDATE_PERIOD",90*_types2.Milliseconds.Minute),this.urlProvider=c,this.requester=e,this.updateInterval=b,this.lastUpdate=new Date,this.storage=d,this.dataManager=f,this.eventManager=i,this.visitorCodeManager=h,this.eventSource=g,this.externalPackageInfo=j,this.defaultDataFile=k}async initialize(){_logging.KameleoonLogger.debug("CALL: ClientConfiguration.initialize()"),this.readStorageData();const a=this.checkShouldUpdate();if(a){const a=await this.updateClientConfiguration();if(!a.ok)return _logging.KameleoonLogger.error("Error occurred during client configuration update"),a;const b=a.data;if(b)return _logging.KameleoonLogger.debug("RETURN: ClientConfiguration.initialize()"),(0,_tsRes.Ok)()}return this.updateType!==_types.UpdateType.RealTime||this.eventSource.isOpen?(this.updateType===_types.UpdateType.Polling&&this.handlePollingUpdates(),_logging.KameleoonLogger.debug("RETURN: ClientConfiguration.initialize()"),(0,_tsRes.Ok)()):(this.handleRealTimeUpdates(),_logging.KameleoonLogger.debug("RETURN: ClientConfiguration.initialize()"),(0,_tsRes.Ok)())}cleanupHandlers(){this.eventSource.isOpen&&this.eventSource.close(),this.updateConfigurationIntervalId&&clearInterval(this.updateConfigurationIntervalId)}handleRealTimeUpdates(){this.cleanupHandlers();const a=a=>{this.updateClientConfiguration(a).then(b=>{b.ok&&this.eventManager.fireEvent(_eventManager.EventType.ConfigurationUpdate,{timestamp:a})})};this.eventSource.open(a),this.eventSource.onError(a=>{_logging.KameleoonLogger.error`Error occurred during real-time update: ${a}. Switching to polling updates while the connection is not restored.`,this.updateType=_types.UpdateType.Polling,this.handlePollingUpdates()})}handlePollingUpdates(){this.cleanupHandlers();try{this.updateConfigurationIntervalId=setInterval(this.updateClientConfiguration.bind(this),this.updateInterval)}catch(a){throw this.updateConfigurationIntervalId&&clearInterval(this.updateConfigurationIntervalId),a}}get featureFlags(){return this.featureFlagsData}get configuration(){return this.configurationData.configuration}get segments(){if(this.segmentsData)return this.segmentsData;const a=new Map;return this.featureFlagsData.forEach(b=>{b.rules.forEach(b=>{b.segment&&!a.has(b.segment.id.toString())&&a.set(b.segment.id.toString(),b.segment)})}),this.segmentsData=a,a}get ruleMap(){var a;if(null!==(a=this.mappedRules)&&void 0!==a&&a.size)return this.mappedRules;const b=new Map;for(const a of this.featureFlags.values())for(const c of a.rules){const{id:d,experimentId:e,variationByExposition:f}=c,g=new Map;f.forEach(a=>{let{variationKey:b,variationId:c}=a;"number"==typeof c&&g.set(b,c)}),b.set(d,{featureId:a.id,experimentId:e,variations:g})}return this.mappedRules=b,b}get experimentMap(){var a;if(null!==(a=this.mappedExperiments)&&void 0!==a&&a.size)return this.mappedExperiments;const b=new Map;for(const a of this.featureFlags.values())for(const c of a.rules){const{experimentId:a,variationByExposition:d}=c,e=new Map;d.forEach(a=>{let{variationKey:b,variationId:c}=a;"number"==typeof c&&e.set(b,c)}),b.set(a,{type:c.type,variations:e})}return this.mappedExperiments=b,b}get holdout(){return this.holdoutData}get meGroups(){return this.meGroupsData}get isConsentRequired(){return this.configuration.consentType===_types.ConsentType.Required}get hasAnyTargetedDeliveryRule(){if(null!==this.isTargetedDeliveryRule)return this.isTargetedDeliveryRule;for(const a of this.featureFlags.values())if(a.environmentEnabled&&a.rules.some(a=>a.type===_types.RuleType.TARGETED_DELIVERY))return!0;return!1}checkShouldUpdate(){const{configuration:a}=this.configurationData;if(this.updateType=a.realTimeUpdate?_types.UpdateType.RealTime:_types.UpdateType.Polling,!this.featureFlags.size)return!0;const b=this.lastUpdate.getTime(),c=Date.now()-this.updateInterval;return b<c}readStorageData(){_logging.KameleoonLogger.debug("CALL: ClientConfiguration.readStorageData()");const a=this.storage.read();if(a.ok){let{data:e,lastUpdate:f,lastModified:g,requestTime:h}=a.data;if(this.defaultDataFile)try{var b,c,d;const a=JSON.parse(this.defaultDataFile);this.defaultDataFile=void 0,this.usedDefaultDataFile=!0;const f=null!==(b=null!==(c=e.dateModified)&&void 0!==c?c:h)&&void 0!==b?b:-1,g=null!==(d=a.dateModified)&&void 0!==d?d:0;(!h||g>f)&&(e=a)}catch(a){_logging.KameleoonLogger.error`Error parsing default data file: ${a}`}this.updateConfigurationData(e,!1),this.lastUpdate=this.usedDefaultDataFile?new Date(0):new Date(Date.parse(f)),this.lastModified=g,this.requestTime=h}_logging.KameleoonLogger.debug`RETURN: ClientConfiguration.readStorageData() -> (result: ${a.ok})`}async updateClientConfiguration(a){const b=Date.now();if(this.usedDefaultDataFile)return this.updateClientConfigurationInBackground(),(0,_tsRes.Ok)(!1);if(this.requestTime&&!a&&!this.externalPackageInfo.isServer){if(b-this.requestTime<=this.CACHE_REVALIDATE_PERIOD)return this.updateClientConfigurationInBackground(),(0,_tsRes.Ok)(!1);_logging.KameleoonLogger.debug`Cached configuration data has expired. Fetching fresh data.`}const c=await this.requester.getClientConfiguration(a,this.lastModified);return this.applyNewConfigurationDataFromResponse(c)}updateClientConfigurationInBackground(){setTimeout(async()=>{const a=await this.requester.getClientConfiguration(void 0,this.lastModified);await this.applyNewConfigurationDataFromResponse(a)},0)}async applyNewConfigurationDataFromResponse(a){var b,c;if(this.requestTime=Date.now(),!a.ok)return this.featureFlags.size?(_logging.KameleoonLogger.error("Error occurred while updating configuration. Existing configuration will be used as a fallback."),(0,_tsRes.Ok)(!0)):a;if(void 0===a.data.configuration)return this.updateStorageData(),(0,_tsRes.Ok)(!1);const d=a.data.configuration;this.updateConfigurationData(d,!0),this.dataManager.clearTrees(),null===(b=this.mappedRules)||void 0===b?void 0:b.clear(),null===(c=this.experimentMap)||void 0===c?void 0:c.clear(),this.isTargetedDeliveryRule=null,a.data.lastModified&&(this.lastModified=a.data.lastModified);const e=this.updateStorageData();if(!e.ok)return e;const f=d.configuration.realTimeUpdate?_types.UpdateType.RealTime:_types.UpdateType.Polling,g=f!==this.updateType;return g&&(this.updateType=f,_logging.KameleoonLogger.info`Configuration update type was toggled to ${_types.UpdateType[f]}`,await this.initialize()),(0,_tsRes.Ok)(g)}updateConfigurationData(a){let b=!(1<arguments.length&&arguments[1]!==void 0)||arguments[1];const{configuration:c,featureFlags:d,customData:e,holdout:f,segments:g,dateModified:h}=a;let i=null,j=null;if(b&&(i=g?new Map(g.map(a=>[a.id.toString(),a])):null,null!==e&&void 0!==e&&e.length)){j=new Map;for(let a of e)if(void 0!==a.id)j.set(a.id,a.index);else{j=null;break}}const k=new Map;for(const c of d)k.set(c.featureKey,c),b&&(this.updateFeatureFlagSegments(c,i),this.updateFeatureFlagBucketingCustomDataId(c,j));this.featureFlagsData=k,null!==e&&void 0!==e&&e.length&&(this.dataManager.customDataIndexes=e),this.meGroupsData=this.makeMEGroups(d),this.holdoutData=null!==f&&void 0!==f?f:null,this.configurationData={configuration:c,customData:e,holdout:f,dateModified:h},this.urlProvider.dataApiDomain=a.configuration.dataApiDomain,this.updateConsentRequired(),this.segmentsData=i}updateFeatureFlagSegments(a,b){null!==b&&a.rules.forEach(a=>{var c;const d=a.segmentId;a.segment=null==d?null:null!==(c=b.get(d.toString()))&&void 0!==c?c:null})}updateFeatureFlagBucketingCustomDataId(a,b){const c=a.bucketingCustomDataId;null!=c&&b&&(a.bucketingCustomDataIndex=b.get(c))}makeMEGroups(a){const b=new Map;a.forEach(a=>{const c=a.mutuallyExclusiveGroup;if(c){let d=b.get(c);d?d.push(a):b.set(c,[a])}});const c=new Map;return b.forEach((a,b)=>{c.set(b,new _meGroup.MEGroup(a))}),c}updateStorageData(){this.lastUpdate=new Date;const a=_objectSpread(_objectSpread({},this.configurationData),{},{featureFlags:Array.from(this.featureFlags.values())}),b={data:a,lastUpdate:this.lastUpdate.toString(),lastModified:this.lastModified,requestTime:this.requestTime};return this.storage.write(b)}updateConsentRequired(){this.visitorCodeManager.consentRequired=this.isConsentRequired&&!this.hasAnyTargetedDeliveryRule}}exports.ClientConfiguration=ClientConfiguration;
@@ -1 +0,0 @@
1
- "use strict";var _types=require("./types");Object.defineProperty(exports,"__esModule",{value:!0}),exports.DEFAULT_CONFIGURATION_DATA=exports.DEFAULT_CLIENT_CONFIGURATION=void 0;const DEFAULT_CONFIGURATION_DATA=exports.DEFAULT_CONFIGURATION_DATA={customData:[],configuration:{realTimeUpdate:!1,consentType:_types.ConsentType.NotRequired,dataApiDomain:"data.kameleoon.io"}},DEFAULT_CLIENT_CONFIGURATION=exports.DEFAULT_CLIENT_CONFIGURATION={customData:[],featureFlags:[],configuration:{realTimeUpdate:!1,consentType:_types.ConsentType.NotRequired,dataApiDomain:"data.kameleoon.io"}};
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ClientConfiguration",{enumerable:!0,get:function(){return _clientConfiguration.ClientConfiguration}}),Object.defineProperty(exports,"ClientConfigurationDataType",{enumerable:!0,get:function(){return _types.ClientConfigurationDataType}}),Object.defineProperty(exports,"ConfigurationDataType",{enumerable:!0,get:function(){return _types.ConfigurationDataType}}),Object.defineProperty(exports,"ConsentType",{enumerable:!0,get:function(){return _types.ConsentType}}),Object.defineProperty(exports,"CustomDataConfigurationType",{enumerable:!0,get:function(){return _types.CustomDataConfigurationType}}),Object.defineProperty(exports,"CustomDataScope",{enumerable:!0,get:function(){return _types.CustomDataScope}}),Object.defineProperty(exports,"FeatureFlagType",{enumerable:!0,get:function(){return _types.FeatureFlagType}}),Object.defineProperty(exports,"FeatureVariableType",{enumerable:!0,get:function(){return _types.FeatureVariableType}}),Object.defineProperty(exports,"JSONType",{enumerable:!0,get:function(){return _types.JSONType}}),Object.defineProperty(exports,"JSONValue",{enumerable:!0,get:function(){return _types.JSONValue}}),Object.defineProperty(exports,"RuleItemType",{enumerable:!0,get:function(){return _types.RuleItemType}}),Object.defineProperty(exports,"RuleType",{enumerable:!0,get:function(){return _types.RuleType}}),Object.defineProperty(exports,"VariationByExpositionType",{enumerable:!0,get:function(){return _types.VariationByExpositionType}});var _types=require("./types"),_clientConfiguration=require("./clientConfiguration");
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.MEGroup=void 0;function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class MEGroup{constructor(a){_defineProperty(this,"_featureFlags",void 0),this._featureFlags=a.slice().sort((a,b)=>a.id-b.id)}getFeatureFlagByHash(a){let b=Math.floor(a*this._featureFlags.length);return b=Math.min(b,this._featureFlags.length-1),this._featureFlags[b]}get featureFlags(){return this._featureFlags}}exports.MEGroup=MEGroup;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.UpdateType=exports.RuleType=exports.FeatureStatus=exports.FeatureFlagSdkLanguageType=exports.CustomDataScope=exports.ConsentType=void 0;let UpdateType=exports.UpdateType=function(a){return a[a.Polling=0]="Polling",a[a.RealTime=1]="RealTime",a}({}),RuleType=exports.RuleType=function(a){return a.TARGETED_DELIVERY="TARGETED_DELIVERY",a.EXPERIMENTATION="EXPERIMENTATION",a}({}),FeatureFlagSdkLanguageType=exports.FeatureFlagSdkLanguageType=function(a){return a.ANDROID="ANDROID",a.SWIFT="SWIFT",a.JAVA="JAVA",a.CSHARP="CSHARP",a.NODEJS="NODEJS",a.PHP="PHP",a.RUBY="RUBY",a.GO="GO",a.FLUTTER="FLUTTER",a.REACTJS="REACTJS",a}({}),FeatureStatus=exports.FeatureStatus=function(a){return a.ACTIVATED="ACTIVATED",a.DEACTIVATED="DEACTIVATED",a.SCHEDULED="SCHEDULED",a}({}),CustomDataScope=exports.CustomDataScope=function(a){return a.Visit="VISIT",a.Visitor="VISITOR",a.Page="Page",a}({}),ConsentType=exports.ConsentType=function(a){return a.Required="REQUIRED",a.NotRequired="NOT_REQUIRED",a}({});
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ClientSettings=void 0;var _types=require("../types"),_sdkInfoTypes=require("../sdkInfoTypes"),_logging=require("../logging"),_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 ClientSettings{constructor(a,b){_defineProperty(this,"updateInterval",void 0),_defineProperty(this,"environment",void 0),_defineProperty(this,"networkDomain",void 0),_defineProperty(this,"requestTimeout",void 0),_defineProperty(this,"siteCode",void 0),_defineProperty(this,"cleanupInterval",void 0),_defineProperty(this,"trackRetryDelay",void 0),_defineProperty(this,"trackingInterval",void 0),_logging.KameleoonLogger.debug`CALL: new ClientSettings(siteCode: ${a}, configuration: ${b})`,this.siteCode=a,this.environment=this.getEnvironment(b),this.networkDomain=this.getNetworkDomain(b),this.updateInterval=this.getUpdateInterval(b),this.cleanupInterval=this.getCleanupInterval(b),this.requestTimeout=this.getRequestTimeout(b),this.trackingInterval=this.getTrackingInterval(b),this.trackRetryDelay=5*_types.Milliseconds.Second,_logging.KameleoonLogger.debug`RETURN: new ClientSettings(siteCode: ${a}, configuration: ${b})`}getTrackingInterval(a){return"number"==typeof(null===a||void 0===a?void 0:a.trackingInterval)?100>a.trackingInterval?(_logging.KameleoonLogger.warning("Tracking interval must not be shorter than 100 ms. Minimum possible interval was applied."),100):1e3<a.trackingInterval?(_logging.KameleoonLogger.warning("Tracking interval must not be longer than 1000 ms. Maximum possible interval was applied."),1e3):a.trackingInterval:1e3}getEnvironment(a){return null!==a&&void 0!==a&&a.environment?a.environment:_sdkInfoTypes.Environment.Production}getCleanupInterval(a){return"number"==typeof(null===a||void 0===a?void 0:a.targetingDataCleanupInterval)?1>a.targetingDataCleanupInterval?(_logging.KameleoonLogger.warning("Targeting data cleanup interval must not be shorter than 1 minute. Minimum possible interval was applied."),1*_types.Milliseconds.Minute):a.targetingDataCleanupInterval*_types.Milliseconds.Minute:null}getUpdateInterval(a){return"number"==typeof(null===a||void 0===a?void 0:a.updateInterval)?1>a.updateInterval?(_logging.KameleoonLogger.warning("Update interval must not be shorter than 1 minute. Minimum possible interval was applied."),1*_types.Milliseconds.Minute):a.updateInterval*_types.Milliseconds.Minute:60*_types.Milliseconds.Minute}getNetworkDomain(a){const b=_utilities.Validator.validateNetworkDomain(null===a||void 0===a?void 0:a.networkDomain);return b.ok?b.data:null}getRequestTimeout(a){return"number"==typeof(null===a||void 0===a?void 0:a.requestTimeout)?a.requestTimeout:10*_types.Milliseconds.Second}get settings(){return{trackingInterval:this.trackingInterval,trackRetryDelay:this.trackRetryDelay,cleanupInterval:this.cleanupInterval,updateInterval:this.updateInterval,requestTimeout:this.requestTimeout,networkDomain:this.networkDomain,environment:this.environment,siteCode:this.siteCode}}}exports.ClientSettings=ClientSettings;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ClientSettings",{enumerable:!0,get:function(){return _clientSettings.ClientSettings}}),Object.defineProperty(exports,"ClientSettingsType",{enumerable:!0,get:function(){return _types.ClientSettingsType}});var _clientSettings=require("./clientSettings"),_types=require("./types");
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});
package/dist/constants.js DELETED
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.WAREHOUSE_AUDIENCE_KEY=exports.SdkLanguageType=exports.OFF_VARIATION_KEY=exports.IN_HOLDOUT_VARIATION_KEY=exports.DEFAULT_VISITOR_DATA_FILTERS=exports.CACHE_ITEM_LIFETIME=exports.CACHE_CLEANUP_TIMEOUT=void 0;const OFF_VARIATION_KEY=exports.OFF_VARIATION_KEY="off",WAREHOUSE_AUDIENCE_KEY=exports.WAREHOUSE_AUDIENCE_KEY="warehouseAudiences",CACHE_CLEANUP_TIMEOUT=exports.CACHE_CLEANUP_TIMEOUT=10,CACHE_ITEM_LIFETIME=exports.CACHE_ITEM_LIFETIME=5,IN_HOLDOUT_VARIATION_KEY=exports.IN_HOLDOUT_VARIATION_KEY="in-holdout";let SdkLanguageType=exports.SdkLanguageType=function(a){return a.ANDROID="ANDROID",a.IOS="IOS",a.JAVA="JAVA",a.CSHARP="CSHARP",a.NODEJS="NODEJS",a.PHP="PHP",a.RUBY="RUBY",a.GO="GO",a.FLUTTER="FLUTTER",a.REACT="REACT",a.PYTHON="PYTHON",a.JAVASCRIPT="JAVASCRIPT",a.RUST="RUST",a}({});const DEFAULT_VISITOR_DATA_FILTERS=exports.DEFAULT_VISITOR_DATA_FILTERS={previousVisitAmount:1,currentVisit:!0,customData:!0,pageViews:!1,geolocation:!1,device:!1,browser:!1,operatingSystem:!1,conversions:!1,experiments:!1,kcs:!1,visitorCode:!0,personalization:!1};
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.EventManager=void 0;function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class EventManager{constructor(){_defineProperty(this,"eventHandlers",void 0)}addEventHandler(a,b){this.eventHandlers||(this.eventHandlers=new Map),this.eventHandlers.set(a,b)}fireEvent(a,b){var c;const d=null===(c=this.eventHandlers)||void 0===c?void 0:c.get(a);d&&b&&d(b)}}exports.EventManager=EventManager;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ConfigurationUpdateEventDataType",{enumerable:!0,get:function(){return _types.ConfigurationUpdateEventDataType}}),Object.defineProperty(exports,"EvaluationEventDataType",{enumerable:!0,get:function(){return _types.EvaluationEventDataType}}),Object.defineProperty(exports,"EventCallbackType",{enumerable:!0,get:function(){return _types.EventCallbackType}}),Object.defineProperty(exports,"EventDataType",{enumerable:!0,get:function(){return _types.EventDataType}}),Object.defineProperty(exports,"EventManager",{enumerable:!0,get:function(){return _eventManager.EventManager}}),Object.defineProperty(exports,"EventType",{enumerable:!0,get:function(){return _types.EventType}});var _eventManager=require("./eventManager"),_types=require("./types");
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.EventType=void 0;let EventType=exports.EventType=function(a){return a.Evaluation="evaluation",a.ConfigurationUpdate="configurationUpdate",a}({});
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.REAL_TIME_EVENT=void 0;const REAL_TIME_EVENT=exports.REAL_TIME_EVENT="configuration-update-event";
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.KameleoonEventSource=void 0;var _kameleoonLogger=require("../logging/kameleoonLogger"),_constants=require("./constants");function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class KameleoonEventSource{constructor(a){let{siteCode:b,externalEventSource:c,urlProvider:d}=a;_defineProperty(this,"eventSource",void 0),_defineProperty(this,"siteCode",void 0),_defineProperty(this,"url",void 0),_defineProperty(this,"isConnectionOpen",void 0),this.url=d.getEventSourceUrl(),this.siteCode=b,this.eventSource=c,this.isConnectionOpen=!1}get isOpen(){return this.isConnectionOpen}open(a){this.eventSource.open({onEvent:this.handleMessage(a),url:this.url,eventType:_constants.REAL_TIME_EVENT}),this.isConnectionOpen=!0,_kameleoonLogger.KameleoonLogger.info`Established a new SSE connection with: ${this.url}`}close(){this.eventSource.close(),this.isConnectionOpen=!1,_kameleoonLogger.KameleoonLogger.info`SSE connection: '${this.url}' was successfully closed`}onError(a){return this.eventSource.onError?void this.eventSource.onError(a):void _kameleoonLogger.KameleoonLogger.warning("EventSource does not have `onError` method provided. Real-time errors won't be handled.")}handleMessage(a){const b=b=>{_kameleoonLogger.KameleoonLogger.debug`Received new message from: ${this.url}`;const c=JSON.parse(b.data),{siteCode:d,ts:e}=c;this.siteCode===d&&a(e)};return b}}exports.KameleoonEventSource=KameleoonEventSource;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"EventSourceOpenParametersType",{enumerable:!0,get:function(){return _types.EventSourceOpenParametersType}}),Object.defineProperty(exports,"IEventSource",{enumerable:!0,get:function(){return _eventSource.IEventSource}}),Object.defineProperty(exports,"IExternalEventSource",{enumerable:!0,get:function(){return _types.IExternalEventSource}}),Object.defineProperty(exports,"KameleoonEventSource",{enumerable:!0,get:function(){return _eventSource.KameleoonEventSource}}),Object.defineProperty(exports,"REAL_TIME_EVENT",{enumerable:!0,get:function(){return _constants.REAL_TIME_EVENT}}),Object.defineProperty(exports,"RealTimeEventType",{enumerable:!0,get:function(){return _types.RealTimeEventType}});var _types=require("./types"),_eventSource=require("./eventSource"),_constants=require("./constants");
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});
@@ -1 +0,0 @@
1
- "use strict";var _sha=_interopRequireDefault(require("crypto-js/sha256"));Object.defineProperty(exports,"__esModule",{value:!0}),exports.Hasher=void 0;function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}class Hasher{static getHashDoubleForMEGroup(a,b){return this.calculateHash(a+b)}static getHashDouble(a){let{visitorIdentifier:b,id:c,respoolTime:d}=a,e="";return d&&(e+=d+""),this.calculateHash(b+c+e)}static calculateHash(a){const b=(0,_sha.default)(a).toString();return parseInt(b,16)/Math.pow(2,256)}}exports.Hasher=Hasher;
@@ -1 +0,0 @@
1
- "use strict";var _hasher=require("./hasher");Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"Hasher",{enumerable:!0,get:function(){return _hasher.Hasher}});
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});
package/dist/index.js DELETED
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ApplicationVersion",{enumerable:!0,get:function(){return _kameleoonData.ApplicationVersion}}),Object.defineProperty(exports,"ApplicationVersionDataType",{enumerable:!0,get:function(){return _kameleoonData.ApplicationVersionDataType}}),Object.defineProperty(exports,"BooleanVariableType",{enumerable:!0,get:function(){return _types.BooleanVariableType}}),Object.defineProperty(exports,"Browser",{enumerable:!0,get:function(){return _kameleoonData.Browser}}),Object.defineProperty(exports,"BrowserDataType",{enumerable:!0,get:function(){return _types3.BrowserDataType}}),Object.defineProperty(exports,"BrowserType",{enumerable:!0,get:function(){return _kameleoonData.BrowserType}}),Object.defineProperty(exports,"ConfigurationDataType",{enumerable:!0,get:function(){return _clientConfiguration.ConfigurationDataType}}),Object.defineProperty(exports,"ConfigurationUpdateEventDataType",{enumerable:!0,get:function(){return _eventManager.ConfigurationUpdateEventDataType}}),Object.defineProperty(exports,"Conversion",{enumerable:!0,get:function(){return _kameleoonData.Conversion}}),Object.defineProperty(exports,"ConversionParametersType",{enumerable:!0,get:function(){return _kameleoonData.ConversionParametersType}}),Object.defineProperty(exports,"Cookie",{enumerable:!0,get:function(){return _kameleoonData.Cookie}}),Object.defineProperty(exports,"CookieType",{enumerable:!0,get:function(){return _kameleoonData.CookieType}}),Object.defineProperty(exports,"CustomData",{enumerable:!0,get:function(){return _kameleoonData.CustomData}}),Object.defineProperty(exports,"CustomDataConfigurationType",{enumerable:!0,get:function(){return _clientConfiguration.CustomDataConfigurationType}}),Object.defineProperty(exports,"CustomDataScope",{enumerable:!0,get:function(){return _clientConfiguration.CustomDataScope}}),Object.defineProperty(exports,"CustomDataType",{enumerable:!0,get:function(){return _types3.CustomDataType}}),Object.defineProperty(exports,"DataFilterType",{enumerable:!0,get:function(){return _types3.DataFilterType}}),Object.defineProperty(exports,"DataInfoType",{enumerable:!0,get:function(){return _storage.DataInfoType}}),Object.defineProperty(exports,"DataManager",{enumerable:!0,get:function(){return _kameleoonData.DataManager}}),Object.defineProperty(exports,"DataManagerParametersType",{enumerable:!0,get:function(){return _types3.DataManagerParametersType}}),Object.defineProperty(exports,"DataProcessor",{enumerable:!0,get:function(){return _kameleoonData.DataProcessor}}),Object.defineProperty(exports,"DataStorage",{enumerable:!0,get:function(){return _storage.DataStorage}}),Object.defineProperty(exports,"Device",{enumerable:!0,get:function(){return _kameleoonData.Device}}),Object.defineProperty(exports,"DeviceDataType",{enumerable:!0,get:function(){return _types3.DeviceDataType}}),Object.defineProperty(exports,"DeviceType",{enumerable:!0,get:function(){return _kameleoonData.DeviceType}}),Object.defineProperty(exports,"Environment",{enumerable:!0,get:function(){return _sdkInfoTypes.Environment}}),Object.defineProperty(exports,"Err",{enumerable:!0,get:function(){return _tsRes.Err}}),Object.defineProperty(exports,"EvaluationEventDataType",{enumerable:!0,get:function(){return _eventManager.EvaluationEventDataType}}),Object.defineProperty(exports,"EventCallbackType",{enumerable:!0,get:function(){return _eventManager.EventCallbackType}}),Object.defineProperty(exports,"EventDataType",{enumerable:!0,get:function(){return _eventManager.EventDataType}}),Object.defineProperty(exports,"EventSourceOpenParametersType",{enumerable:!0,get:function(){return _eventSource.EventSourceOpenParametersType}}),Object.defineProperty(exports,"EventType",{enumerable:!0,get:function(){return _eventManager.EventType}}),Object.defineProperty(exports,"ExternalPackageInfoType",{enumerable:!0,get:function(){return _sdkInfoTypes.ExternalPackageInfoType}}),Object.defineProperty(exports,"FeatureFlagType",{enumerable:!0,get:function(){return _types.FeatureFlagType}}),Object.defineProperty(exports,"FeatureFlagVariableType",{enumerable:!0,get:function(){return _types.FeatureFlagVariableType}}),Object.defineProperty(exports,"FeatureFlagVariationsType",{enumerable:!0,get:function(){return _storage.FeatureFlagVariationsType}}),Object.defineProperty(exports,"FeatureVariableResultType",{enumerable:!0,get:function(){return _types.FeatureVariableResultType}}),Object.defineProperty(exports,"FlushParamsType",{enumerable:!0,get:function(){return _types.FlushParamsType}}),Object.defineProperty(exports,"GeolocationData",{enumerable:!0,get:function(){return _kameleoonData.GeolocationData}}),Object.defineProperty(exports,"GeolocationDataType",{enumerable:!0,get:function(){return _types3.GeolocationDataType}}),Object.defineProperty(exports,"GeolocationInfoType",{enumerable:!0,get:function(){return _kameleoonData.GeolocationInfoType}}),Object.defineProperty(exports,"GetFeatureFlagVariableParamsType",{enumerable:!0,get:function(){return _types.GetFeatureFlagVariableParamsType}}),Object.defineProperty(exports,"GetVariationParamsType",{enumerable:!0,get:function(){return _types.GetVariationParamsType}}),Object.defineProperty(exports,"GetVariationsParamsType",{enumerable:!0,get:function(){return _types.GetVariationsParamsType}}),Object.defineProperty(exports,"GetVisitorWarehouseAudienceParamsType",{enumerable:!0,get:function(){return _types.GetVisitorWarehouseAudienceParamsType}}),Object.defineProperty(exports,"Header",{enumerable:!0,get:function(){return _requester.Header}}),Object.defineProperty(exports,"HeadersType",{enumerable:!0,get:function(){return _requester.HeadersType}}),Object.defineProperty(exports,"HttpMethod",{enumerable:!0,get:function(){return _requester.HttpMethod}}),Object.defineProperty(exports,"IDataManager",{enumerable:!0,get:function(){return _kameleoonData.IDataManager}}),Object.defineProperty(exports,"IExternalEventSource",{enumerable:!0,get:function(){return _eventSource.IExternalEventSource}}),Object.defineProperty(exports,"IExternalLogger",{enumerable:!0,get:function(){return _logging.IExternalLogger}}),Object.defineProperty(exports,"IExternalPRNG",{enumerable:!0,get:function(){return _utilities.IExternalPRNG}}),Object.defineProperty(exports,"IExternalRequester",{enumerable:!0,get:function(){return _requester.IExternalRequester}}),Object.defineProperty(exports,"IExternalStorage",{enumerable:!0,get:function(){return _storage.IExternalStorage}}),Object.defineProperty(exports,"IKameleoonCore",{enumerable:!0,get:function(){return _kameleoonClientInterface.IKameleoonClient}}),Object.defineProperty(exports,"IStorage",{enumerable:!0,get:function(){return _storage.IStorage}}),Object.defineProperty(exports,"ITracker",{enumerable:!0,get:function(){return _tracking.ITracker}}),Object.defineProperty(exports,"IVisitorCodeManager",{enumerable:!0,get:function(){return _visitorCodeManager.IVisitorCodeManager}}),Object.defineProperty(exports,"InternalSDKConfigurationType",{enumerable:!0,get:function(){return _types.InternalSDKConfigurationType}}),Object.defineProperty(exports,"InternalsType",{enumerable:!0,get:function(){return _types.InternalsType}}),Object.defineProperty(exports,"IsFeatureFlagActiveParamsType",{enumerable:!0,get:function(){return _types.IsFeatureFlagActiveParamsType}}),Object.defineProperty(exports,"JSONType",{enumerable:!0,get:function(){return _clientConfiguration.JSONType}}),Object.defineProperty(exports,"JSONVariableType",{enumerable:!0,get:function(){return _types.JSONVariableType}}),Object.defineProperty(exports,"KameleoonCore",{enumerable:!0,get:function(){return _kameleoonClient.KameleoonClient}}),Object.defineProperty(exports,"KameleoonData",{enumerable:!0,get:function(){return _kameleoonData.KameleoonData}}),Object.defineProperty(exports,"KameleoonDataType",{enumerable:!0,get:function(){return _kameleoonData.KameleoonDataType}}),Object.defineProperty(exports,"KameleoonError",{enumerable:!0,get:function(){return _kameleoonError.KameleoonError}}),Object.defineProperty(exports,"KameleoonException",{enumerable:!0,get:function(){return _kameleoonError.KameleoonException}}),Object.defineProperty(exports,"KameleoonLogger",{enumerable:!0,get:function(){return _logging.KameleoonLogger}}),Object.defineProperty(exports,"KameleoonResponseType",{enumerable:!0,get:function(){return _requester.KameleoonResponseType}}),Object.defineProperty(exports,"KameleoonStorageKey",{enumerable:!0,get:function(){return _storage.KameleoonStorageKey}}),Object.defineProperty(exports,"KameleoonUtils",{enumerable:!0,get:function(){return _kameleoonUtils.KameleoonUtils}}),Object.defineProperty(exports,"KameleoonVariableType",{enumerable:!0,get:function(){return _types.KameleoonVariableType}}),Object.defineProperty(exports,"KameleoonVariationType",{enumerable:!0,get:function(){return _types.KameleoonVariationType}}),Object.defineProperty(exports,"KameleoonVisitorDataType",{enumerable:!0,get:function(){return _types3.KameleoonVisitorDataType}}),Object.defineProperty(exports,"ListUtilities",{enumerable:!0,get:function(){return _utilities.ListUtilities}}),Object.defineProperty(exports,"LogLevel",{enumerable:!0,get:function(){return _logging.LogLevel}}),Object.defineProperty(exports,"MappingIdentifierType",{enumerable:!0,get:function(){return _types2.MappingIdentifierType}}),Object.defineProperty(exports,"Milliseconds",{enumerable:!0,get:function(){return _types.Milliseconds}}),Object.defineProperty(exports,"MutUpdateTargetingDataParametersType",{enumerable:!0,get:function(){return _types3.MutUpdateTargetingDataParametersType}}),Object.defineProperty(exports,"NUMBER_OF_RETRIES",{enumerable:!0,get:function(){return _requester.NUMBER_OF_RETRIES}}),Object.defineProperty(exports,"NumberVariableType",{enumerable:!0,get:function(){return _types.NumberVariableType}}),Object.defineProperty(exports,"Ok",{enumerable:!0,get:function(){return _tsRes.Ok}}),Object.defineProperty(exports,"OperatingSystem",{enumerable:!0,get:function(){return _kameleoonData.OperatingSystem}}),Object.defineProperty(exports,"OperatingSystemDataType",{enumerable:!0,get:function(){return _types3.OperatingSystemDataType}}),Object.defineProperty(exports,"OperatingSystemType",{enumerable:!0,get:function(){return _kameleoonData.OperatingSystemType}}),Object.defineProperty(exports,"PageView",{enumerable:!0,get:function(){return _kameleoonData.PageView}}),Object.defineProperty(exports,"PageViewDataType",{enumerable:!0,get:function(){return _types3.PageViewDataType}}),Object.defineProperty(exports,"PageViewParametersType",{enumerable:!0,get:function(){return _kameleoonData.PageViewParametersType}}),Object.defineProperty(exports,"Parser",{enumerable:!0,get:function(){return _parser.Parser}}),Object.defineProperty(exports,"ProcessCustomDataManagerParametersType",{enumerable:!0,get:function(){return _types3.ProcessCustomDataManagerParametersType}}),Object.defineProperty(exports,"RemoteVisitorDataParamsType",{enumerable:!0,get:function(){return _types.RemoteVisitorDataParamsType}}),Object.defineProperty(exports,"RequestParametersType",{enumerable:!0,get:function(){return _requester.RequestParametersType}}),Object.defineProperty(exports,"RequestType",{enumerable:!0,get:function(){return _requester.RequestType}}),Object.defineProperty(exports,"Result",{enumerable:!0,get:function(){return _tsRes.Result}}),Object.defineProperty(exports,"RetryCountType",{enumerable:!0,get:function(){return _requester.RetryCountType}}),Object.defineProperty(exports,"SDKConfigurationType",{enumerable:!0,get:function(){return _types.SDKConfigurationType}}),Object.defineProperty(exports,"SDKCoreParameters",{enumerable:!0,get:function(){return _types.SDKCoreParameters}}),Object.defineProperty(exports,"SdkLanguageType",{enumerable:!0,get:function(){return _constants.SdkLanguageType}}),Object.defineProperty(exports,"SegmentType",{enumerable:!0,get:function(){return _targeting.SegmentType}}),Object.defineProperty(exports,"SendRequestParametersType",{enumerable:!0,get:function(){return _requester.SendRequestParametersType}}),Object.defineProperty(exports,"SetDataCallbackParametersType",{enumerable:!0,get:function(){return _types.SetDataCallbackParametersType}}),Object.defineProperty(exports,"SetForcedVariationParametersType",{enumerable:!0,get:function(){return _types.SetForcedVariationParametersType}}),Object.defineProperty(exports,"SimulateRequestDataType",{enumerable:!0,get:function(){return _types.SimulateRequestDataType}}),Object.defineProperty(exports,"StaticData",{enumerable:!0,get:function(){return _kameleoonData.StaticData}}),Object.defineProperty(exports,"StorageDataType",{enumerable:!0,get:function(){return _storage.StorageDataType}}),Object.defineProperty(exports,"StringVariableType",{enumerable:!0,get:function(){return _types.StringVariableType}}),Object.defineProperty(exports,"TargetingDataType",{enumerable:!0,get:function(){return _targeting.TargetingDataType}}),Object.defineProperty(exports,"TrackConversionParamsType",{enumerable:!0,get:function(){return _types.TrackConversionParamsType}}),Object.defineProperty(exports,"TrackingStatus",{enumerable:!0,get:function(){return _types.TrackingStatus}}),Object.defineProperty(exports,"Tree",{enumerable:!0,get:function(){return _targeting.Tree}}),Object.defineProperty(exports,"UniqueIdentifier",{enumerable:!0,get:function(){return _kameleoonData.UniqueIdentifier}}),Object.defineProperty(exports,"UserAgent",{enumerable:!0,get:function(){return _kameleoonData.UserAgent}}),Object.defineProperty(exports,"Utilities",{enumerable:!0,get:function(){return _utilities.Utilities}}),Object.defineProperty(exports,"VISITOR_CODE_LENGTH",{enumerable:!0,get:function(){return _visitorCodeManager.VISITOR_CODE_LENGTH}}),Object.defineProperty(exports,"VISIT_DURATION",{enumerable:!0,get:function(){return _storage.VISIT_DURATION}}),Object.defineProperty(exports,"Validator",{enumerable:!0,get:function(){return _utilities.Validator}}),Object.defineProperty(exports,"VariableType",{enumerable:!0,get:function(){return _types.VariableType}}),Object.defineProperty(exports,"VariationType",{enumerable:!0,get:function(){return _types.VariationType}}),Object.defineProperty(exports,"VisitDataType",{enumerable:!0,get:function(){return _types3.VisitDataType}}),Object.defineProperty(exports,"VisitorCodeManager",{enumerable:!0,get:function(){return _visitorCodeManager.VisitorCodeManager}}),Object.defineProperty(exports,"VisitorDataFiltersType",{enumerable:!0,get:function(){return _utilities.VisitorDataFiltersType}}),Object.defineProperty(exports,"VisitorsDataType",{enumerable:!0,get:function(){return _types3.VisitorsDataType}});var _tsRes=require("ts-res"),_kameleoonClient=require("./kameleoonClient"),_kameleoonUtils=require("./kameleoonUtils"),_kameleoonClientInterface=require("./kameleoonClientInterface"),_kameleoonError=require("./kameleoonError"),_utilities=require("./utilities"),_storage=require("./storage"),_eventManager=require("./eventManager"),_visitorCodeManager=require("./visitorCodeManager"),_logging=require("./logging"),_parser=require("./utilities/parser"),_constants=require("./constants"),_clientConfiguration=require("./clientConfiguration"),_types=require("./types"),_sdkInfoTypes=require("./sdkInfoTypes"),_kameleoonData=require("./kameleoonData"),_eventSource=require("./eventSource"),_requester=require("./requester"),_tracking=require("./tracking"),_targeting=require("./targeting"),_types2=require("./storage/types"),_types3=require("./kameleoonData/types");
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.KameleoonClient=void 0;var _tsRes=require("ts-res"),_cacheManager=require("./cacheManager"),_clientConfiguration=require("./clientConfiguration"),_clientSettings=require("./clientSettings"),_constants=require("./constants"),_kameleoonData=require("./kameleoonData"),_kameleoonError=require("./kameleoonError"),_requester=require("./requester"),_storage=require("./storage"),_types=require("./types"),_utilities=require("./utilities"),_variationConfiguration=require("./variationConfiguration"),_targeting=require("./targeting"),_eventSource=require("./eventSource"),_visitorCodeManager=require("./visitorCodeManager"),_eventManager=require("./eventManager"),_tracking=require("./tracking"),_logging=require("./logging"),_hasher=require("./hasher"),_conditionFactoryInstance=require("./targeting/conditions/conditionFactoryInstance");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 KameleoonClient{constructor(a){var b;let{siteCode:c,dependencies:d,configuration:e,internalConfiguration:f,stubMode:g}=a;if(_defineProperty(this,"variationConfiguration",void 0),_defineProperty(this,"clientConfiguration",void 0),_defineProperty(this,"dataManager",void 0),_defineProperty(this,"consentDataStorage",void 0),_defineProperty(this,"trackingCache",void 0),_defineProperty(this,"requester",void 0),_defineProperty(this,"externalPackageInfo",void 0),_defineProperty(this,"initialized",!1),_defineProperty(this,"visitorCodeManager",void 0),_defineProperty(this,"eventManager",void 0),_defineProperty(this,"tracker",void 0),_defineProperty(this,"environment",void 0),_defineProperty(this,"stubMode",void 0),this.stubMode=g,g)return this.variationConfiguration={},this.clientConfiguration={},this.dataManager={},this.consentDataStorage={},this.trackingCache={},this.requester={},this.externalPackageInfo={},this.visitorCodeManager={},this.eventManager={},this.tracker={},void(this.environment="");const h=null===f||void 0===f?void 0:f.externals.externalLogger;h&&_logging.KameleoonLogger.setLogger(h),_conditionFactoryInstance.ConditionFactoryInstance.setConditionFactoryInstance(new _targeting.ConditionFactory),_logging.KameleoonLogger.debug`CALL: new KameleoonClient(siteCode: ${c}, dependencies: ${d}, configuration: ${e})`;const{settings:i}=new _clientSettings.ClientSettings(c,e);this.environment=i.environment;const{externalStorage:j,externalEventSource:k,externalPackageInfo:l,externalVisitorCodeManager:m,externalRequester:n,externalPRNG:o,customDataManager:p}=f.externals,{useAbortController:q}=f.settings,r=new _cacheManager.CacheManager(_constants.CACHE_CLEANUP_TIMEOUT),s=new _storage.DataStorage(j,_storage.KameleoonStorageKey.ClientData),t=new _storage.DataStorage(j,_storage.KameleoonStorageKey.VariationData),u=new _storage.DataStorage(j,_storage.KameleoonStorageKey.ForcedExperimentVariation),v=new _storage.DataStorage(j,_storage.KameleoonStorageKey.ForcedFeatureVariation),w=new _storage.DataStorage(j,_storage.KameleoonStorageKey.ConsentData),x=new _storage.DataStorage(j,_storage.KameleoonStorageKey.TrackingData);let y=p;if(!y){const a=new _storage.DataStorage(j,_storage.KameleoonStorageKey.TargetingData),b=new _storage.DataStorage(j,_storage.KameleoonStorageKey.DataInfo);y=new _kameleoonData.DataManager({dataStorage:a,infoStorage:b,cleanupInterval:i.cleanupInterval,packageInfo:l})}const z=null!==(b=null===d||void 0===d?void 0:d.urlProvider)&&void 0!==b?b:new _requester.UrlProvider;z.initialize({domain:i.networkDomain,siteCode:i.siteCode,packageInfo:l,environment:i.environment});const A=new _requester.Requester({urlProvider:z,useAbortController:q,packageInfo:l,externalRequester:n,requestTimeout:i.requestTimeout,trackRetryDelay:i.trackRetryDelay}),B=new _eventSource.KameleoonEventSource({siteCode:i.siteCode,externalEventSource:k,urlProvider:z}),C=new _eventManager.EventManager,D=new _clientConfiguration.ClientConfiguration({urlProvider:z,storage:s,updateInterval:i.updateInterval,dataManager:y,eventManager:C,requester:A,eventSource:B,externalVisitorCodeManager:m,externalPackageInfo:l,defaultDataFile:null===e||void 0===e?void 0:e.defaultDataFile}),E=new _variationConfiguration.VariationConfiguration(t,u,v,m,D),F=new _tracking.Tracker({dataManager:y,trackingStorage:x,variationConfiguration:E,requester:A,trackingInterval:i.trackingInterval,prng:o});this.tracker=F,this.variationConfiguration=E,this.requester=A,this.trackingCache=r,this.dataManager=y,this.clientConfiguration=D,this.externalPackageInfo=l,this.consentDataStorage=w,this.visitorCodeManager=m,this.eventManager=C,null!==i.cleanupInterval&&new _storage.StorageCleanupManager(j,i.cleanupInterval),_logging.KameleoonLogger.debug`RETURN: new KameleoonClient(siteCode: ${c}, dependencies: ${d}, configuration: ${e})`}async initialize(){if(this.stubMode)return!1;_logging.KameleoonLogger.info("CALL: KameleoonClient.initialize()");const a=await this.clientConfiguration.initialize();return a.throw(),this.initialized=!0,_logging.KameleoonLogger.info`RETURN: KameleoonClient.initialize() -> (result: ${a.ok})`,a.ok}addData(a){if(this.stubMode)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);for(var b=arguments.length,c=Array(1<b?b-1:0),d=1;d<b;d++)c[d-1]=arguments[d];if(_logging.KameleoonLogger.info`CALL: KameleoonClient.addData(visitorCode: ${a}, data: ${c})`,this.visitorCodeManager.validateVisitorCode(a).throw(),!this.initialized)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);this.dataManager.storeData(a,...c).throw(),_logging.KameleoonLogger.info`RETURN: KameleoonClient.addData(visitorCode: ${a}, data: ${c})`}async getRemoteVisitorData(a){let{visitorCode:b,shouldAddData:c=!0,filters:d=_constants.DEFAULT_VISITOR_DATA_FILTERS}=a;if(this.stubMode)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);if(_logging.KameleoonLogger.info`CALL: KameleoonClient.getRemoteVisitorData(visitorCode: ${b}, shouldAddData: ${c}, filters: ${d})`,!this.initialized)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);this.visitorCodeManager.validateVisitorCode(b).throw();const{previousVisitAmount:e}=d;if("number"==typeof e&&(1>e||25<e))throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.VisitAmount);const f=this.dataManager.isUniqueIdentifier(b),g=await this.requester.getVisitorData({visitorCode:b,filters:d,isMappingIdentifier:f}),h=g.throw(),{visitorData:i,storageVisitorData:j,visitsData:k,mappingIdentifier:l}=_utilities.Parser.parseVisitorData({data:h,filters:d,visitorCode:b,dataManager:this.dataManager,variationConfiguration:this.variationConfiguration});for(const d of j)(c||this.dataManager.isPersistentCustomData(d))&&this.addData(b,d);return k&&c&&this.addData(b,k),null!==d&&void 0!==d&&d.visitorCode&&l&&this.dataManager.setMappingIdentifier(b,l),_logging.KameleoonLogger.info`RETURN: KameleoonClient.getRemoteVisitorData(visitorCode: ${b}, shouldAddData: ${c}, filters: ${d}) -> (visitorData: ${i})`,i}trackConversion(a){let{visitorCode:b,goalId:c,negative:d,revenue:e,metadata:f}=a;this.stubMode||(_logging.KameleoonLogger.info`CALL: KameleoonClient.trackConversion(visitorCode: ${b}, goalId: ${c}, negative: ${d}, revenue: ${e}, metadata: ${f})`,this.addData(b,new _kameleoonData.Conversion({goalId:c,revenue:e,negative:d,metadata:f})),this.flush(b),_logging.KameleoonLogger.info`RETURN: KameleoonClient.trackConversion(visitorCode: ${b}, goalId: ${c}, negative: ${d}, revenue: ${e}, metadata: ${f})`)}flush(a){if(this.stubMode)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);let b,c=!1;if("string"==typeof a)b=a;else if(a){var d;b=a.visitorCode,c=null!==(d=a.instant)&&void 0!==d&&d}if(_logging.KameleoonLogger.info`CALL: KameleoonClient.flush(visitorCode: ${b}, instant: ${c})`,!this.initialized)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);if("string"==typeof b)this.visitorCodeManager.validateVisitorCode(b).throw(),c?this.tracker.sendDataForVisitor(b,this._isConsentProvided(b)):this.tracker.scheduleVisitor(b,this._isConsentProvided(b));else{for(const a of this.dataManager.unsentDataVisitors)this.tracker.scheduleVisitor(a,this._isConsentProvided(a));for(const a of this.variationConfiguration.getVisitorsWithUnsentData())this.tracker.scheduleVisitor(a,this._isConsentProvided(a));c&&this.tracker.sendDataAll()}_logging.KameleoonLogger.info`RETURN: KameleoonClient.flush(visitorCode: ${b}, instant: ${c})`}getFeatureFlags(){if(this.stubMode)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);if(_logging.KameleoonLogger.info("CALL: KameleoonClient.getFeatureFlags()"),!this.initialized)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);const a=this.clientConfiguration.featureFlags,b=[];return a.forEach(a=>{let{id:c,featureKey:d}=a;b.push({id:c,key:d})}),_logging.KameleoonLogger.info`RETURN: KameleoonClient.getFeatureFlags() -> (FeatureFlags: ${b})`,b}getVisitorFeatureFlags(a){if(this.stubMode)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);if(_logging.KameleoonLogger.info`CALL: KameleoonClient.getVisitorFeatureFlags(visitorCode: ${a})`,!this.initialized)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);this.visitorCodeManager.validateVisitorCode(a).throw();const b=this._getActiveFeatureVariations(a),c=[];return b.forEach(a=>{let{featureFlagId:b,featureKey:d}=a;c.push({id:b,key:d})}),_logging.KameleoonLogger.info`RETURN: KameleoonClient.getVisitorFeatureFlags(visitorCode: ${a}) -> (FeatureFlags: ${c})`,c}getVariation(a){let{visitorCode:b,featureKey:c,track:d=!0}=a;if(this.stubMode)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);_logging.KameleoonLogger.info`CALL: KameleoonClient.getVariation(visitorCode: ${b}, featureKey: ${c}, track: ${d})`,this.visitorCodeManager.validateVisitorCode(b).throw();const e=this._getFeatureVariation({visitorCode:b,featureKey:c,track:d}).throw();return _logging.KameleoonLogger.info`RETURN: KameleoonClient.getVariation(visitorCode: ${b}, featureKey: ${c}, track: ${d}) -> (variation: ${e})`,e}getVariations(a){let{visitorCode:b,onlyActive:c=!1,track:d=!0}=a;if(this.stubMode)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);_logging.KameleoonLogger.info`CALL: KameleoonClient.getVariations(visitorCode: ${b}, onlyActive: ${c}, track: ${d})`,this.visitorCodeManager.validateVisitorCode(b).throw();const e=new Map,f=this.clientConfiguration.featureFlags;for(const g of f.values()){const a=this._getFeatureVariation({visitorCode:b,featureKey:g.featureKey,track:d});a.ok&&(!c||a.data.key!==_constants.OFF_VARIATION_KEY)&&e.set(g.featureKey,a.data)}return _logging.KameleoonLogger.info`RETURN: KameleoonClient.getVariations(visitorCode: ${b}, onlyActive: ${c}, track: ${d}) -> (variations: ${e})`,e}getActiveFeatureFlags(a){if(this.stubMode)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);if(_logging.KameleoonLogger.info`CALL: KameleoonClient.getActiveFeatureFlags(visitorCode: ${a})`,!this.initialized)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);this.visitorCodeManager.validateVisitorCode(a).throw();const b=this._getActiveFeatureVariations(a),c=new Map;return b.forEach(b=>{const{variationKey:d,featureKey:e,variationId:f,experimentId:g}=b;let h=[];null!==f&&null!==g&&(h=this._getFeatureVariables({visitorCode:a,featureKey:e,variationKey:d}));const i=h.map(a=>_utilities.Parser.parseFeatureVariable(a).throw());c.set(b.featureKey,{key:d,id:f,experimentId:g,variables:i})}),_logging.KameleoonLogger.info`RETURN: KameleoonClient.getActiveFeatureFlags(visitorCode: ${a}) -> (FeatureFlags: ${c})`,c}getFeatureFlagVariationKey(a,b){if(this.stubMode)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);_logging.KameleoonLogger.info`CALL: KameleoonClient.getFeatureFlagVariationKey(visitorCode: ${a}, featureKey: ${b})`,this.visitorCodeManager.validateVisitorCode(a).throw();const{key:c}=this._getFeatureVariation({visitorCode:a,featureKey:b,track:!0}).throw();return _logging.KameleoonLogger.info`RETURN: KameleoonClient.getFeatureFlagVariationKey(visitorCode: ${a}, featureKey: ${b}) -> (variationKey: ${c})`,c}getFeatureFlagVariable(a){let{visitorCode:b,featureKey:c,variableKey:d}=a;if(this.stubMode)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);_logging.KameleoonLogger.info`CALL: KameleoonClient.getFeatureFlagVariable(visitorCode: ${b}, featureKey: ${c}, variableKey: ${d})`,this.visitorCodeManager.validateVisitorCode(b).throw();const{key:e}=this._getFeatureVariation({visitorCode:b,featureKey:c,track:!0}).throw(),f=this._getFeatureVariables({visitorCode:b,featureKey:c,variationKey:e}),g=f.find(a=>a.key===d);if(!g)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.FeatureFlagVariableNotFound,d,b);const{type:h,value:i}=_utilities.Parser.parseFeatureVariable(g).throw(),j={type:h,value:i};return _logging.KameleoonLogger.info`RETURN: KameleoonClient.getFeatureFlagVariable(visitorCode: ${b}, featureKey: ${c}, variableKey: ${d}) -> (FeatureFlagVariable: ${j})`,j}getFeatureFlagVariables(a,b){if(this.stubMode)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);_logging.KameleoonLogger.info`CALL: KameleoonClient.getFeatureFlagVariables(visitorCode: ${a}, featureKey: ${b})`,this.visitorCodeManager.validateVisitorCode(a).throw();const{key:c}=this._getFeatureVariation({visitorCode:a,featureKey:b,track:!0}).throw(),d=this._getFeatureVariables({visitorCode:a,featureKey:b,variationKey:c}),e=[];for(const c of d){const a=_utilities.Parser.parseFeatureVariable(c).throw();e.push(a)}return _logging.KameleoonLogger.info`RETURN: KameleoonClient.getFeatureFlagVariables(visitorCode: ${a}, featureKey: ${b}) -> (FeatureFlagVariables: ${e})`,e}isFeatureFlagActive(a,b){if(this.stubMode)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);let[c,d,e]=["","",!0];"string"==typeof a?(c=a,d=b):([c,d]=[a.visitorCode,a.featureKey],a.track!==void 0&&(e=a.track)),_logging.KameleoonLogger.info`CALL: KameleoonClient.isFeatureFlagActive(visitorCode: ${c}, featureKey: ${d}, track ${e})`,this.visitorCodeManager.validateVisitorCode(c).throw();try{const{key:a}=this._getFeatureVariation({visitorCode:c,featureKey:d,track:e}).throw(),b=a!==_constants.OFF_VARIATION_KEY;return _logging.KameleoonLogger.info`RETURN: KameleoonClient.isFeatureFlagActive(visitorCode: ${c}, featureKey: ${d}, track: ${e}) -> (isActive: ${b})`,b}catch(a){if(a instanceof _kameleoonError.KameleoonError&&a.type===_kameleoonError.KameleoonException.FeatureFlagEnvironmentDisabled)return _logging.KameleoonLogger.info`RETURN: KameleoonClient.isFeatureFlagActive(visitorCode: ${c}, featureKey: ${d}, track: ${e}) -> (isActive: false)`,!1;throw a}}async getRemoteData(a){if(this.stubMode)return null;_logging.KameleoonLogger.info`CALL: KameleoonClient.getRemoteData(key: ${a})`;const b=await this.requester.getRemoteData(a);return _logging.KameleoonLogger.info`RETURN: KameleoonClient.getRemoteData(key: ${a}) -> (remoteData: ${b})`,b.throw()}async getVisitorWarehouseAudience(a){let{visitorCode:b,customDataIndex:c,warehouseKey:d}=a;if(this.stubMode)return null;_logging.KameleoonLogger.info`CALL: KameleoonClient.getVisitorWarehouseAudience(visitorCode: ${b}, customDataIndex: ${c}, warehouseKey: ${d})`,this.visitorCodeManager.validateVisitorCode(b).throw();const e=await this.getRemoteData(d||b);if(!e)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.RemoteData,`No data found for ${d||b} key`);if(!e[_constants.WAREHOUSE_AUDIENCE_KEY]||0===Object.keys(e[_constants.WAREHOUSE_AUDIENCE_KEY]).length)return _logging.KameleoonLogger.info`RETURN: KameleoonClient.getVisitorWarehouseAudience(visitorCode: ${b}, customDataIndex: ${c}, warehouseKey: ${d}) -> (customData: null)`,null;const f=new _kameleoonData.CustomData(c,...Object.keys(e[_constants.WAREHOUSE_AUDIENCE_KEY]));return this.dataManager.storeData(b,f),_logging.KameleoonLogger.info`RETURN: KameleoonClient.getVisitorWarehouseAudience(visitorCode: ${b}, customDataIndex: ${c}, warehouseKey: ${d}) -> (customData: ${f})`,f}onEvent(a,b){if(this.stubMode)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);if(_logging.KameleoonLogger.info`CALL: KameleoonClient.onEvent(event: ${a}, callback)`,!this.initialized)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization);this.eventManager.addEventHandler(a,b),_logging.KameleoonLogger.info`RETURN: KameleoonClient.onEvent(event: ${a}, callback)`}getEngineTrackingCode(a){if(this.stubMode)return"";_logging.KameleoonLogger.info`CALL: KameleoonClient.getEngineTrackingCode(visitorCode: ${a})`,this.visitorCodeManager.validateVisitorCode(a).throw();const b=_utilities.Utilities.getTrackingCode(this.trackingCache,a);return _logging.KameleoonLogger.info`RETURN: KameleoonClient.getEngineTrackingCode(visitorCode: ${a}) -> (trackingCode: ${b})`,b}isInitialized(){return _logging.KameleoonLogger.debug`CALL/RETURN: KameleoonClient.isInitialized() -> (initialized: ${this.initialized})`,this.initialized}setLogLevel(a){_logging.KameleoonLogger.setLogLevel(a)}setForcedVariation(a){let{visitorCode:b,experimentId:c,variationKey:d,forceTargeting:e=!0}=a;this.stubMode||(_logging.KameleoonLogger.info`CALL: KameleoonClient.setForcedVariation(visitorCode: '${b}', experimentId: ${c}, variationKey: '${d}', forceTargeting: ${e})`,this.visitorCodeManager.validateVisitorCode(b).throw(),this._setForcedVariation({visitorCode:b,experimentId:c,variationKey:d,forceTargeting:e}).throw(),_logging.KameleoonLogger.info`RETURN: KameleoonClient.setForcedVariation(visitorCode: '${b}', experimentId: ${c}, variationKey: '${d}', forceTargeting: ${e})`)}setUserConsent(a){let{visitorCode:b,consent:c,setData:d}=a;this.stubMode||(_logging.KameleoonLogger.info`CALL: KameleoonClient.setUserConsent(visitorCode: ${b}, consent: ${c}, setData: ${d})`,this.visitorCodeManager.validateVisitorCode(b).throw(),this.updateConsentData(b,c),c?d({visitorCode:b,key:_storage.KameleoonStorageKey.VisitorCode,maxAge:_visitorCodeManager.DEFAULT_MAX_AGE,path:_visitorCodeManager.PATH}):this.visitorCodeManager.consentRequired&&d({visitorCode:"",key:_storage.KameleoonStorageKey.VisitorCode,maxAge:_visitorCodeManager.ZERO_MAX_AGE,path:_visitorCodeManager.PATH}),this.flush(b),_logging.KameleoonLogger.info`RETURN: KameleoonClient.setUserConsent(visitorCode: ${b}, consent: ${c}, setData: ${d})`)}updateConsentData(a,b){const c=this.consentDataStorage.read();if(!c.ok)return void(c.error.type===_kameleoonError.KameleoonException.StorageEmpty&&this.consentDataStorage.write({[a]:{consent:b}}));const d=c.data;d[a]={consent:b},this.consentDataStorage.write(d)}_isConsentProvided(a){_logging.KameleoonLogger.debug`CALL: KameleoonClient._isConsentProvided(visitorCode: ${a})`;const{isConsentRequired:b}=this.clientConfiguration,c=this.consentDataStorage.read();let d=!1;if(!b)d=!0;else if(c.ok){const b=c.data[a];d="boolean"==typeof b?b:b&&b.consent}return _logging.KameleoonLogger.debug`RETURN: KameleoonClient._isConsentProvided(visitorCode: ${a}) -> (isConsentProvided: ${d})`,d}_getFeatureVariables(a){let{visitorCode:b,featureKey:c,variationKey:d}=a;_logging.KameleoonLogger.debug`CALL: KameleoonClient._getFeatureVariables(visitorCode: ${b}, featureKey: ${c}, variationKey: ${d})`;const e=this.clientConfiguration.featureFlags,f=e.get(c);if(!f)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.FeatureFlagConfigurationNotFound,c);const g=f.variations.find(a=>a.key===d);if(!g)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.FeatureFlagVariationNotFound,d,b);return _logging.KameleoonLogger.debug`RETURN: KameleoonClient._getFeatureVariables(visitorCode: ${b}, featureKey: ${c}, variationKey: ${d}) -> (variables: ${g.variables})`,g.variables}_getActiveFeatureVariations(a){_logging.KameleoonLogger.debug`CALL: KameleoonClient._getActiveFeatureVariations(visitorCode: ${a})`;const b=this.clientConfiguration.featureFlags,c=[];for(const d of b.values()){if(!d.environmentEnabled)continue;const b=this._evaluate({visitorCode:a,featureFlag:d,track:!1,save:!1});b.variationKey!==_constants.OFF_VARIATION_KEY&&c.push({variationKey:b.variationKey,variationId:b.variationId,experimentId:b.experimentId,featureFlagId:d.id,featureKey:d.featureKey,rule:null,isTargetedRule:b.ruleType===_clientConfiguration.RuleType.TARGETED_DELIVERY})}return _logging.KameleoonLogger.debug`RETURN: KameleoonClient._getActiveFeatureVariations(visitorCode: ${a}) -> (activeVariations: ${c})`,c}_evaluate(a){let{visitorCode:b,featureFlag:c,track:d,save:e}=a;_logging.KameleoonLogger.debug`CALL: KameleoonClient._evaluate(visitorCode: ${b}, featureFlag: ${c}, track: ${d}, save: ${e})`;let f,g=null;const h=this.dataManager.getVisitorData(b),i=this.variationConfiguration.getForcedFeatureVariation(b,c.featureKey);if(i.ok&&(g=i.data),g)f=KameleoonClient.EvaluatedExperiment.fromForcedFeatureVariation(c.defaultVariationKey,g);else if(this._isVisitorNotInHoldout(b,d,e,c,h)&&this._isFFUnrestrictedByMEGroup(b,c,h)){const a=this._getCodeForHash(b,c.bucketingCustomDataIndex,h),g=this.variationConfiguration.getVariation({visitorCode:b,visitorIdentifier:a,featureFlag:c,track:d,withAssignment:e,targetingData:h,clientConfiguration:this.clientConfiguration,dataManager:this.dataManager,packageInfo:this.externalPackageInfo}).throw();f=KameleoonClient.EvaluatedExperiment.fromVariationData(g)}else f=KameleoonClient.EvaluatedExperiment.fromDefaultVariationKey(c.defaultVariationKey);return e&&!f.isSimulated&&null!==f.experimentId&&null!==f.variationId&&this.variationConfiguration.updateStoredVariations(b,{[f.experimentId]:{variationId:f.variationId,isTargetedRule:f.ruleType===_clientConfiguration.RuleType.TARGETED_DELIVERY,status:d?_types.TrackingStatus.Unsent:_types.TrackingStatus.Sent}}),this.eventManager.fireEvent(_eventManager.EventType.Evaluation,{featureKey:c.featureKey,variation:{key:f.variationKey,experimentId:f.experimentId,id:f.variationId}}),_logging.KameleoonLogger.debug`RETURN: KameleoonClient._evaluate(visitorCode: ${b}, featureFlag: ${c}, track: ${d}, save: ${e}) -> (evalExp: ${f})`,f}_isFFUnrestrictedByMEGroup(a,b,c){const d=b.mutuallyExclusiveGroup;if(!d)return!0;_logging.KameleoonLogger.debug`CALL: KameleoonClient._isFFUnrestrictedByMEGroup(visitorCode: ${a}, featureFlag: ${b}, visitorData: ${c})`;let e=!0;const f=this.clientConfiguration.meGroups.get(d);if(f){const g=this._getCodeForHash(a,b.bucketingCustomDataIndex,c),h=_hasher.Hasher.getHashDoubleForMEGroup(g,d);_logging.KameleoonLogger.debug`Calculated meGroup hash ${h} for code: ${g}, meGroup: ${d}`,e=f.getFeatureFlagByHash(h)===b}return _logging.KameleoonLogger.debug`RETURN: KameleoonClient._isFFUnrestrictedByMEGroup(visitorCode: ${a}, featureFlag: ${b}, visitorData: ${c}) -> (selected: ${e})`,e}_getFeatureVariation(a){let{visitorCode:b,featureKey:c,track:d}=a;if(_logging.KameleoonLogger.debug`CALL: KameleoonClient._getFeatureVariation(visitorCode: ${b}, featureKey: ${c}, track: ${d})`,!this.initialized)return(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.Initialization));const e=this.clientConfiguration.featureFlags,f=e.get(c);if(!f)return(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.FeatureFlagConfigurationNotFound,c));if(!f.environmentEnabled)return(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.FeatureFlagEnvironmentDisabled,f.featureKey,this.environment));const g=this._evaluate({visitorCode:b,featureFlag:f,track:d,save:!0}),{experimentId:h,variationId:i,variationKey:j,isSimulated:k}=g;let l=new Map,m=!1;try{const a=this._getFeatureVariables({visitorCode:b,featureKey:c,variationKey:j});a.forEach(a=>{m||a.type!==_types.VariableType.JS&&a.type!==_types.VariableType.CSS||(m=!0);const b=_utilities.Parser.parseFeatureVariable(a).throw();l.set(a.key,b)})}catch(_){}h&&"number"==typeof i&&!k&&_utilities.Utilities.updateCache({cacheManager:this.trackingCache,hasJsCssVariables:m,visitorCode:b,experimentId:h,variationId:i}),d&&!k&&this.tracker.scheduleVisitor(b,this._isConsentProvided(b));const n={key:j,id:i,experimentId:h,variables:l};return _logging.KameleoonLogger.debug`RETURN: KameleoonClient._getFeatureVariation(visitorCode: ${b}, featureKey: ${c}, track: ${d}) -> (variation: ${n})`,(0,_tsRes.Ok)(n)}_isVisitorNotInHoldout(a,b,c,d,e){const f=this.clientConfiguration.holdout;if(!f)return!0;_logging.KameleoonLogger.debug`CALL: KameleoonClient._isVisitorNotInHoldout(visitorCode: ${a}, track: ${b}, save: ${c}, featureFlag: ${d}, visitorData: ${e})`;let g=!0;const h=this._getCodeForHash(a,null===d||void 0===d?void 0:d.bucketingCustomDataIndex,e),i=_hasher.Hasher.getHashDouble({visitorIdentifier:h,respoolTime:null,id:f.experimentId+""});_logging.KameleoonLogger.debug`Calculated holdoutHash: ${i} for visitorCode: ${h}`;let j=_utilities.Utilities.getVariationByHash(f.variationByExposition,i);return null!==j&&(g=j.variationKey!==_constants.IN_HOLDOUT_VARIATION_KEY,c&&this.variationConfiguration.updateStoredVariations(a,{[f.experimentId]:{variationId:j.variationId,isTargetedRule:!1,status:b?_types.TrackingStatus.Unsent:_types.TrackingStatus.Sent}})),_logging.KameleoonLogger.debug`RETURN: KameleoonClient._isVisitorNotInHoldout(visitorCode: ${a}, track: ${b}, save: ${c}, featureFlag: ${d}, visitorData: ${e}) -> (isNotInHoldout: ${g})`,g}_setForcedVariation(a){let{visitorCode:b,experimentId:c,variationKey:d,forceTargeting:e=!0}=a;if(_logging.KameleoonLogger.debug`CALL: KameleoonClient._setForcedVariation(visitorCode: '${b}', experimentId: ${c}, variationKey: '${d}', forceTargeting: ${e})`,null===d){const a=this.variationConfiguration.updateForcedExperimentVariation(b,c,null);return _logging.KameleoonLogger.debug`RETURN: KameleoonClient._setForcedVariation(visitorCode: '${b}', experimentId: ${c}, variationKey: '${d}', forceTargeting: ${e}) -> (writeResult: ${a})`,a}let f=null,g=null;if(f=this.clientConfiguration.experimentMap.get(c),!f)return _logging.KameleoonLogger.error`Experiment with id ${c} not found for visitor ${b}`,(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.FeatureFlagExperimentNotFound,c,b));if(g=f.variations.get(d),void 0===g)return _logging.KameleoonLogger.error`Variation with key ${d} not found in experiment ${f} for visitor ${b}`,(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.FeatureFlagVariationNotFound,d,b));f={type:f.type,experimentId:c},g={variationKey:d,variationId:g};const h=this.variationConfiguration.updateForcedExperimentVariation(b,c,{rule:f,varByExp:g,forceTargeting:e});return _logging.KameleoonLogger.debug`RETURN: KameleoonClient._setForcedVariation(visitorCode: '${b}', experimentId: ${c}, variationKey: '${d}', forceTargeting: ${e}) -> (writeResult: ${h})`,h}_getCodeForHash(a,b,c){_logging.KameleoonLogger.debug`CALL: KameleoonClient._getCodeForHash(visitorCode: ${a}, bucketingCustomDataIndex: ${b}, visitorData: ${c})`;let d;if(null!=b){const a=null===c||void 0===c?void 0:c.customData;if(a){var e;const c=null===(e=a[b])||void 0===e?void 0:e.value[0];c&&(d=c)}}return d||(d=this.dataManager.getVisitorIdentifier(a)),_logging.KameleoonLogger.debug`RETURN: KameleoonClient._getCodeForHash(visitorCode: ${a}, bucketingCustomDataIndex: ${b}, visitorData: ${c}) -> (codeForHash: ${d})`,d}}exports.KameleoonClient=KameleoonClient,_defineProperty(KameleoonClient,"EvaluatedExperiment",class{static fromForcedFeatureVariation(a,b){var c,d,e;let f=a;return b.varByExp?f=b.varByExp.variationKey:b.rule&&b.rule.type===_clientConfiguration.RuleType.EXPERIMENTATION&&(f=_constants.OFF_VARIATION_KEY),{variationKey:f,variationId:(null===(c=b.varByExp)||void 0===c?void 0:c.variationId)||null,experimentId:(null===(d=b.rule)||void 0===d?void 0:d.experimentId)||null,ruleType:(null===(e=b.rule)||void 0===e?void 0:e.type)||null,isSimulated:b.simulated}}static fromVariationData(a){var b,c;return{variationKey:a.variationKey,variationId:a.variationId,experimentId:a.experimentId,ruleType:null!==(b=null===(c=a.rule)||void 0===c?void 0:c.type)&&void 0!==b?b:null,isSimulated:!1}}static fromDefaultVariationKey(a){return{variationKey:a,variationId:null,experimentId:null,ruleType:null,isSimulated:!1}}});
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ApplicationVersion=void 0;var _types=require("../types"),_types2=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 ApplicationVersion{constructor(a){_defineProperty(this,"status",void 0),_defineProperty(this,"version",void 0),this.version=a,this.status=_types.TrackingStatus.Sent}get url(){return""}get data(){return{version:this.version,type:_types2.KameleoonData.ApplicationVersion,status:this.status}}}exports.ApplicationVersion=ApplicationVersion;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Browser=void 0;var _requester=require("../requester"),_types=require("./types"),_types2=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,b){_defineProperty(this,"status",void 0),_defineProperty(this,"browser",void 0),_defineProperty(this,"version",void 0),this.browser=a,this.version=b,this.status=_types2.TrackingStatus.Unsent}get url(){if(!this.browser)return"";const a=this.version?_requester.UrlParameter.BrowserVersion+this.version:"";return _requester.UrlEventType.StaticData+_requester.UrlParameter.Browser+this.browser+_requester.UrlParameter.BrowserIndex+_types.BrowserIndexMap[this.browser]+a}get data(){return{browser:this.browser,type:_types.KameleoonData.Browser,version:this.version,status:this.status}}static _fromRaw(a){const{browser:b,version:c,status:d}=a,e=new Browser(b,c);return e.status=d,e}static _fromVisit(a){if(a.staticDataEvent){const{browser:b,browserIndex:c,browserVersion:d}=a.staticDataEvent.data;if(b||"number"==typeof c){const a=null!==b&&void 0!==b?b:_types.BrowserTypeMap[c];return d?new Browser(a,d):new Browser(a)}}}}exports.Browser=Browser;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CBScores=void 0;var _types=require("./types"),_types2=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 CBScores{constructor(a){_defineProperty(this,"status",void 0),_defineProperty(this,"values",void 0),_defineProperty(this,"cbs",void 0),this.values=new Map(Object.entries(a).map(a=>{let[b,c]=a;return[+b,this.extractVarIds(c)]})),this.cbs=a,this.status=_types2.TrackingStatus.Sent}extractVarIds(a){const b=new Map;return Object.entries(a).forEach(a=>{let[c,d]=a;b.has(d)||b.set(d,[]),b.get(d).push(+c)}),Array.from(b.entries()).sort((a,b)=>{let[c]=a,[d]=b;return d-c}).map(a=>{let[,b]=a;return{ids:b.sort((c,a)=>c-a)}})}getValues(){return this.values}get url(){return""}get data(){return{cbs:this.cbs,type:_types.KameleoonData.CBScores,status:this.status}}static _fromRaw(a){const b=new CBScores(a.cbs);return b.status=a.status,b}}exports.CBScores=CBScores;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Conversion=void 0;var _requester=require("../requester"),_types=require("./types"),_types2=require("../types"),_customData=require("./customData");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,revenue:d=0,negative:e=!1,metadata:c}=a;_defineProperty(this,"status",void 0),_defineProperty(this,"goalId",void 0),_defineProperty(this,"revenue",void 0),_defineProperty(this,"negative",void 0),_defineProperty(this,"id",void 0),_defineProperty(this,"nonce",void 0),_defineProperty(this,"metadata",void 0),this.goalId=b,this.revenue=d,this.negative=e,this.status=_types2.TrackingStatus.Unsent,this.id=Math.floor(1e6*Math.random()),this.metadata=c}set _id(a){this.id=a}set _nonce(a){this.nonce=a}get url(){var a;return _requester.UrlEventType.Conversion+_requester.UrlParameter.GoalId+(this.goalId+"")+_requester.UrlParameter.Revenue+(this.revenue+"")+_requester.UrlParameter.Negative+(this.negative+"")+(null!==(a=this.metadata)&&void 0!==a&&a.length?_requester.UrlParameter.Metadata+this._encodeMetadata():"")}get data(){var a;return{goalId:this.goalId,nonce:this.nonce,revenue:this.revenue,negative:this.negative,type:_types.KameleoonData.Conversion,status:this.status,id:this.id,metadata:(null===(a=this.metadata)||void 0===a?void 0:a.map(a=>a.data))||void 0}}_encodeMetadata(){var a;if(!(null!==(a=this.metadata)&&void 0!==a&&a.length))return"";const b=new Set;return encodeURIComponent(JSON.stringify(this.metadata.reduce((a,c)=>b.has(c.data.index)?a:(b.add(c.data.index),a[c.data.index]=c.data.value,a),{})))}static _fromRaw(a){const{goalId:b,revenue:c,negative:d,status:e,id:f,nonce:g,metadata:h}=a,i=new Conversion({goalId:b,revenue:c,negative:d,metadata:Conversion.parseMetadata(h)});return i._id=f,i.status=e,g&&(i._nonce=g),i}static parseMetadata(a){return(null===a||void 0===a?void 0:a.map(a=>_customData.CustomData._fromRaw(a)))||void 0}static _listFromVisit(a){var b,c;const d=[];if(!(null!==(b=a.conversionEvents)&&void 0!==b&&b.length))return[];if(null!==(c=a.conversionEvents)&&void 0!==c&&c.length)for(const b of a.conversionEvents){const{goalId:a,revenue:c,negative:e}=b.data,f=new Conversion({goalId:a,revenue:c,negative:e});f.status=_types2.TrackingStatus.Sent,d.push(f)}return d}static _updateFromVisit(a,b){var c;if(null!==(c=a.conversionEvents)&&void 0!==c&&c.length)for(const c of a.conversionEvents){const{goalId:a}=c.data;if(!b.has(a)){const c=new Conversion({goalId:a});c.status=_types2.TrackingStatus.Sent,b.set(a,c)}}}}exports.Conversion=Conversion;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Cookie=void 0;var _kameleoonError=require("../kameleoonError"),_types=require("./types"),_types2=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 Cookie{constructor(a){_defineProperty(this,"status",void 0),_defineProperty(this,"cookie",void 0),this.cookie=a,this.status=_types2.TrackingStatus.Sent}static fromString(a){if(!a)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.CookieParse,"Cookie string can't be empty");const b=a.split(";"),c=b.map(a=>{const[b,c]=a.trim().split("=");if(!b||!c)throw new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.CookieParse,"Cookie string is not valid");return{key:b,value:c}});return new Cookie(c)}get url(){return""}get data(){return{cookie:this.cookie,type:_types.KameleoonData.Cookie,status:this.status}}}exports.Cookie=Cookie;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CustomData=void 0;var _requester=require("../requester"),_types=require("./types"),_types2=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 CustomData{constructor(a){_defineProperty(this,"_status",void 0),_defineProperty(this,"index",void 0),_defineProperty(this,"value",void 0),_defineProperty(this,"isIdentifier",void 0),this.index=a;for(var b=arguments.length,c=Array(1<b?b-1:0),d=1;d<b;d++)c[d-1]=arguments[d];this.value=c,this._status=_types2.TrackingStatus.Unsent,this.isIdentifier=!1}get url(){if("number"!=typeof this.index)return"";const a=[...new Set(this.value)];let b={};a.forEach(a=>{b[a]=1});let c="";return this.isIdentifier&&(c=_requester.UrlParameter.MappingIdentifier+"true"),_requester.UrlEventType.CustomData+_requester.UrlParameter.Index+this.index+_requester.UrlParameter.ValuesCountMap+encodeURIComponent(JSON.stringify(b))+_requester.UrlParameter.Overwrite+"true"+c}get data(){return{index:this.index,value:this.value,type:_types.KameleoonData.CustomData,isIdentifier:this.isIdentifier,status:this.status}}get status(){return this._isMappingIdentifier?_types2.TrackingStatus.Unsent:this._status}static _fromRaw(a){const{index:b,value:c,status:d,isIdentifier:e}=a,f=new CustomData(b,...c);return f.status=d,f._isMappingIdentifier=e,f}set _isMappingIdentifier(a){this.isIdentifier=a}set status(a){this._status=a}static _updateFromVisit(a,b){var c;if(null!==(c=a.customDataEvents)&&void 0!==c&&c.length)for(let c=a.customDataEvents.length-1;0<=c;c--){const{index:d,valuesCountMap:e}=a.customDataEvents[c].data;b.has(d)||b.set(d,new CustomData(d,...Object.keys(e)))}}}exports.CustomData=CustomData;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.DataManager=void 0;var _targeting=require("../targeting"),_dataProcessor=require("./dataProcessor"),_customData=require("./customData"),_types=require("./types"),_storage=require("../storage"),_clientConfiguration=require("../clientConfiguration"),_utilities=require("../utilities"),_conversion=require("./conversion"),_pageView=require("./pageView"),_browser=require("./browser"),_device=require("./device"),_geolocation=require("./geolocation"),_types2=require("../types"),_operatingSystem=require("./operatingSystem"),_logging=require("../logging");function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class DataManager{constructor(a){let{dataStorage:b,infoStorage:c,cleanupInterval:d,packageInfo:e}=a;if(_defineProperty(this,"dataStorage",void 0),_defineProperty(this,"infoStorage",void 0),_defineProperty(this,"dataProcessor",void 0),_defineProperty(this,"targetingTrees",new Map),_defineProperty(this,"mappingIdentifierCustomDataIndex",null),_defineProperty(this,"persistentCustomDataIndexes",new Set),_defineProperty(this,"localCustomDataIndexes",new Set),_defineProperty(this,"cleanupIntervalId",null),_defineProperty(this,"packageInfo",void 0),_logging.KameleoonLogger.debug`CALL: new DataManager(dataStorage, infoStorage, cleanupInterval: ${d})`,this.dataStorage=b,this.infoStorage=c,this.dataProcessor=new _dataProcessor.DataProcessor(d,e),this.packageInfo=e,d){const a=()=>{this.cleanupData()};try{this.cleanupIntervalId=setInterval(a,d)}catch(a){throw this.cleanupIntervalId&&clearInterval(this.cleanupIntervalId),_logging.KameleoonLogger.error`Failed to set cleanup interval: ${d}`,a}}_logging.KameleoonLogger.debug`RETURN: new DataManager(dataStorage, infoStorage, cleanupInterval: ${d})`}getUnsentData(a){const b=this.infoStorage.read();if(!b.ok)return[];const c=b.data,d=this.getVisitorData(a);if(!c.unsentData[a]||!d)return[];const e=c.unsentData[a],f=c.nextVisitTime<=Date.now(),g=a=>{let{status:b,key:c,cdIndex:d}=a;return!!("number"==typeof d&&this.persistentCustomDataIndexes.has(d)&&f)||e.includes(c)&&b===_types2.TrackingStatus.Unsent};return f&&(c.nextVisitTime=Date.now()+_storage.VISIT_DURATION,this.infoStorage.write(c)),this.getDataFromRaw(d,g)}getPendingData(a){const b=this.getVisitorData(a);if(!b)return[];return this.getDataFromRaw(b,a=>{let{status:b}=a;return b===_types2.TrackingStatus.Pending})}getDataFromRaw(a,b){const c=[];for(const[d,e]of Object.entries(a))if(e)switch(d){case _types.KameleoonData.CustomData:{for(const a of Object.values(e)){if(!a)continue;const{status:e,index:f}=a;if(b({status:e,key:d,cdIndex:f})){const b=_customData.CustomData._fromRaw(a);c.push(b)}}break}case _types.KameleoonData.Conversion:{for(const a of Object.values(e))if(a&&b({status:a.status,key:d})){const b=_conversion.Conversion._fromRaw(a);c.push(b)}break}case _types.KameleoonData.PageView:{for(const a of Object.values(e))if(b({status:a.status,key:d})){const b=_pageView.PageView._fromRaw(a);c.push(b)}break}case _types.KameleoonData.GeolocationData:{const a=e;if(!e)continue;if(b({status:a.status,key:d})){const b=_geolocation.GeolocationData._fromRaw(a);c.push(b)}break}case _types.KameleoonData.Browser:{const a=e;if(b({status:a.status,key:d})){const b=_browser.Browser._fromRaw(a);c.push(b)}break}case _types.KameleoonData.Device:{const a=e;if(b({status:a.status,key:d})){const b=_device.Device._fromRaw(a);c.push(b)}break}case _types.KameleoonData.OperatingSystem:{const a=e;if(b({status:a.status,key:d})){const b=_operatingSystem.OperatingSystem._fromRaw(a);c.push(b)}}}return c}storeTrackedData(a){this.storeData(a);const b=this.infoStorage.read();if(b.ok){const c=b.data.unsentData;for(const[b,d]of Object.entries(a)){if(!c[b])return;const a=new Set(c[b]);d.forEach(b=>{let{data:c}=b;a.has(c.type)&&a.delete(c.type)});const e=d.some(a=>{let{data:b}=a;if(b.type!==_types.KameleoonData.CustomData)return!1;const{index:c}=b;return this.persistentCustomDataIndexes.has(c)||this.mappingIdentifierCustomDataIndex===c});e&&a.add(_types.KameleoonData.CustomData),c[b]=Array.from(a),c[b].length||delete c[b]}this.infoStorage.write(b.data)}}storeData(a){for(var b=arguments.length,c=Array(1<b?b-1:0),d=1;d<b;d++)c[d-1]=arguments[d];_logging.KameleoonLogger.debug`CALL: DataManager.storeData(visitorCode: ${a}, data: ${c})`;const e=this.dataStorage.read(),f=this.infoStorage.read();if(!e.ok)return e;if(!f.ok)return f;const g=e.data,h=f.data;if("string"==typeof a)this.mutUpdateTargetingData({infoData:h,targetingData:g,visitorCode:a,kameleoonData:c});else for(const[b,c]of Object.entries(a))this.mutUpdateTargetingData({infoData:h,targetingData:g,visitorCode:b,kameleoonData:c});this.cleanupData(),this.infoStorage.write(f.data);const i=this.dataStorage.write(g);return _logging.KameleoonLogger.debug`RETURN: DataManager.storeData(visitorCode: ${a}, data: ${c}) -> (writeResult: ${i})`,i}getTree(a){if(this.targetingTrees.has(a.id))return this.targetingTrees.get(a.id);const b=new _targeting.Tree(a);return this.targetingTrees.set(a.id,b),b}clearTrees(){this.targetingTrees.clear()}isPersistentCustomData(a){return!!this.persistentCustomDataIndexes.size&&!!_utilities.Utilities.isCustomData(a)&&this.persistentCustomDataIndexes.has(a.data.index)}isUniqueIdentifier(a){var b;const c=this.getVisitorData(a),d=null===c||void 0===c?void 0:c[_types.KameleoonData.UniqueIdentifier];return!(null===(b=null===d||void 0===d?void 0:d.value)||void 0===b)&&b}getVisitorIdentifier(a){var b,c,d;const e=this.infoStorage.read();if(!e.ok)return a;const f=e.data;return null!==(b=f.mappingIdentifiers)&&void 0!==b?b:f.mappingIdentifiers={},null!==(c=null===(d=f.mappingIdentifiers[a])||void 0===d?void 0:d.mappingIdentifier)&&void 0!==c?c:a}getMappingIdentifier(a){const b=this.infoStorage.read();if(b.ok){const c=b.data;return c.mappingIdentifiers?c.mappingIdentifiers[a]:void 0}}setMappingIdentifier(a,b){var c;const d=this.infoStorage.read();if(d.ok){const e=d.data;null!==(c=e.mappingIdentifiers)&&void 0!==c?c:e.mappingIdentifiers={};const f=e.mappingIdentifiers[a];(!f||f.timestamp<b.timestamp)&&(e.mappingIdentifiers[a]=b,this.infoStorage.write(e))}}getVisitorData(a){this.cleanupData();const b=this.dataStorage.read();if(!b.ok)return;let{visitorReference:c,data:d,isReference:e}=this.dataProcessor.dereferenceData(b.data,a);if(this.packageInfo.isServer&&e&&!d[c]){const b=this.infoStorage.read();b.ok&&b.data.mappingIdentifiers&&delete b.data.mappingIdentifiers[a],delete d[a],c=a}return d[c]}getVisitorStoredDataTypes(a){const b=this.getVisitorData(a);return b?new Set(Object.keys(b)):new Set}getLinkedVisitor(a){const b=this.dataStorage.read();if(!b.ok)return null;if("string"==typeof b.data[a])return b.data[a];if(null===this.mappingIdentifierCustomDataIndex)return null;const c=b.data[a];if(!c)return null;const d=c[_types.KameleoonData.CustomData];return d&&d[this.mappingIdentifierCustomDataIndex]?d[this.mappingIdentifierCustomDataIndex].value[0]:null}mutUpdateTargetingData(a){let{infoData:b,visitorCode:c,kameleoonData:d,targetingData:e}=a;for(const f of d){f.data.type===_types.KameleoonData.CustomData&&this.processCustomData({infoData:b,customData:f,mutData:e,visitorCode:c});const a=this.dataProcessor.mutUpdateData({infoData:b,visitorCode:c,mutData:e,dataItem:f}),d=b.nextDataCleanup;(!d||d&&a<d)&&(b.nextDataCleanup=a),f.data.status===_types2.TrackingStatus.Unsent&&this.dataProcessor.mutAddUnsentData({mutData:b,visitorCode:c,dataType:f.data.type})}}cleanupData(){const a=this.dataStorage.read(),b=this.infoStorage.read();if(!a.ok||!b.ok)return;const c=a.data,d=b.data,e=d.nextDataCleanup;if(e&&e<Date.now()){const a=this.dataProcessor.mutCleanupData(c,d);d.nextDataCleanup=a||void 0,this.infoStorage.write(d),this.dataStorage.write(c)}}processCustomData(a){let{infoData:b,mutData:c,customData:d,visitorCode:e}=a;const{data:f}=d,g=!!(f.value.length&&f.value[0].length);if(this.mappingIdentifierCustomDataIndex===f.index&&g){d._isMappingIdentifier=!0;const a=f.value[0];if(e!==a){var h;_logging.KameleoonLogger.info`Linked anonymous visitor ${e} with user ${a}`,this.dataProcessor.createReference({infoData:b,mutData:c,visitorCode:e,linkedVisitor:f.value[0]}),null!==(h=b.mappingIdentifiers)&&void 0!==h?h:b.mappingIdentifiers={},b.mappingIdentifiers[a]={mappingIdentifier:e,timestamp:Date.now()}}}this.localCustomDataIndexes.has(f.index)&&(d.status=_types2.TrackingStatus.Sent)}get unsentDataVisitors(){const a=this.infoStorage.read();return a.ok?Object.keys(a.data.unsentData):[]}get identifierCustomDataIndex(){return this.mappingIdentifierCustomDataIndex}get trees(){return this.targetingTrees}get storedCustomDataIndexes(){const a=this.dataStorage.read();if(!a.ok)return new Set;const b=a.data;if(!(_types.KameleoonData.CustomData in b))return new Set;const c=new Set;for(const a in Object.keys(b[_types.KameleoonData.CustomData]))c.add(+a);return c}set customDataIndexes(a){var b;const[c,d]=[[],[]];a.forEach(a=>{a.localOnly&&c.push(a.index),a.scope===_clientConfiguration.CustomDataScope.Visitor&&d.push(a.index)}),this.mappingIdentifierCustomDataIndex=(null===(b=a.find(a=>a.isMappingIdentifier))||void 0===b?void 0:b.index)||null,this.localCustomDataIndexes=new Set(c),this.persistentCustomDataIndexes=new Set(d)}}exports.DataManager=DataManager;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.DataProcessor=void 0;var _listUtilities=require("../utilities/listUtilities"),_types=require("./types");function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class DataProcessor{constructor(){let a=0<arguments.length&&arguments[0]!==void 0?arguments[0]:null,b=1<arguments.length?arguments[1]:void 0;_defineProperty(this,"cleanupInterval",void 0),_defineProperty(this,"packageInfo",void 0),this.cleanupInterval=a,this.packageInfo=b}mutUpdateData(a){let{infoData:b,visitorCode:c,mutData:d,dataItem:e}=a,{visitorReference:f,data:g,isReference:h}=this.dereferenceData(d,c);this.packageInfo.isServer&&h&&!d[f]&&(b.mappingIdentifiers&&delete b.mappingIdentifiers[c],delete d[c],f=c);const i=this.cleanupInterval?Date.now()+this.cleanupInterval:0;switch(e.data.type){case _types.KameleoonData.CustomData:{this.updateCustomData({expirationTime:i,customData:e,visitorCode:f,mutData:g});break}case _types.KameleoonData.PageView:{this.updatePageView({expirationTime:i,pageView:e,visitorCode:f,mutData:g});break}case _types.KameleoonData.Conversion:{this.updateConversion({expirationTime:i,conversion:e,visitorCode:f,mutData:g});break}case _types.KameleoonData.VisitsData:{this.updateVisitsData({expirationTime:i,visitsData:e,visitorCode:f,mutData:g});break}case _types.KameleoonData.Personalization:{this.updatePersonalization({expirationTime:i,personalization:e,visitorCode:f,mutData:g});break}default:this.updateCommonData({expirationTime:i,commonData:e,visitorCode:f,mutData:g})}return i}mutCleanupData(a,b){if(!this.cleanupInterval)return null;let c=0;for(const[e,f]of Object.entries(a)){if("string"==typeof f){this.removeReference({mutData:a,visitorCode:e,linkedVisitor:f,infoData:b});continue}let g=0;for(const a of Object.keys(f)){const b=a;let c;switch(b){case _types.KameleoonData.CustomData:case _types.KameleoonData.PageView:case _types.KameleoonData.Conversion:case _types.KameleoonData.Personalization:{c=this.deleteNestedExpiredField(f,b);break}default:c=this.deleteExpiredField(f,b)}(!g||c&&c<g)&&(g=c)}if(!!Object.keys(a[e]).length)(!c||g&&g<c)&&(c=g);else if(delete a[e],this.packageInfo.isServer){var d;null!==(d=b.mappingIdentifiers)&&void 0!==d?d:b.mappingIdentifiers={},delete b.mappingIdentifiers[e]}}return c}mutAddUnsentData(a){let{mutData:b,visitorCode:c,dataType:d}=a;const e=b.unsentData[c];if(!e||!e.length)b.unsentData[c]=[d];else{const a=new Set([...e]);a.add(d),b.unsentData[c]=Array.from(a)}}createReference(a){let{mutData:b,visitorCode:c,linkedVisitor:d}=a;b[d]=c}removeReference(a){let{mutData:b,visitorCode:c,linkedVisitor:d,infoData:e}=a;this.packageInfo.isServer&&!b[d]&&(delete b[c],e.mappingIdentifiers&&delete e.mappingIdentifiers[c])}updatePageView(a){let{visitorCode:b,mutData:c,pageView:d,expirationTime:e}=a;const{data:f}=d,g=c[b]&&_types.KameleoonData.PageView in c[b]&&f.urlAddress in c[b][_types.KameleoonData.PageView],h={expirationTime:e,visitorCode:b,data:c,key:_types.KameleoonData.PageView,nestedKey:f.urlAddress,value:f};if(g){const a=c[b][_types.KameleoonData.PageView][f.urlAddress],d=a.timestamps;for(const a of d){const{time:b}=a;if(f.timestamps.some(a=>{let{time:c}=a;return c===b}))continue;const c=f.timestamps.findIndex(a=>{let{time:c}=a;return c>=b});-1===c?f.timestamps.push(a):f.timestamps.splice(c,0,a)}this.updateNestedField(h)}else this.createNestedField(h)}updateCustomData(a){let{visitorCode:b,customData:c,mutData:d,expirationTime:e}=a;const{data:f}=c,g=d[b]&&_types.KameleoonData.CustomData in d[b],h={expirationTime:e,visitorCode:b,data:d,key:_types.KameleoonData.CustomData,nestedKey:f.index.toString(),value:f};g?this.updateNestedField(h):this.createNestedField(h)}updateConversion(a){let{conversion:b,mutData:c,visitorCode:d,expirationTime:e}=a;const{data:f}=b,g=c[d]&&_types.KameleoonData.Conversion in c[d],h={expirationTime:e,visitorCode:d,data:c,key:_types.KameleoonData.Conversion,nestedKey:f.id.toString(),value:f};g?this.updateNestedField(h):this.createNestedField(h)}updateVisitsData(a){let{visitorCode:b,mutData:c,visitsData:d,expirationTime:e}=a;const{data:f}=d,g=c[b]&&_types.KameleoonData.VisitsData in c[b],h={expirationTime:e,data:c,key:_types.KameleoonData.VisitsData,value:f,visitorCode:b};if(g){var i,j;const a=c[b][_types.KameleoonData.VisitsData];a.visits.forEach(a=>{_listUtilities.ListUtilities.insertVisitInOrderedListMutably({list:f.visits,visit:a})});const d=Math.max(null!==(i=f.visitNumber)&&void 0!==i?i:f.visits.length-1,f.visits.length-1,null!==(j=a.visitNumber)&&void 0!==j?j:0);this.updateField(_objectSpread(_objectSpread({},h),{},{value:_objectSpread(_objectSpread({},f),{},{visits:f.visits,visitNumber:d})}))}else this.createField(h)}updatePersonalization(a){let{visitorCode:b,mutData:c,personalization:d,expirationTime:e}=a;const{data:f}=d,g=c[b]&&_types.KameleoonData.Personalization in c[b],h={expirationTime:e,visitorCode:b,data:c,key:_types.KameleoonData.Personalization,nestedKey:f.id.toString(),value:f};g?this.updateNestedField(h):this.createNestedField(h)}updateCommonData(a){let{visitorCode:b,mutData:c,commonData:d,expirationTime:e}=a;const{data:f}=d,g=c[b]&&f.type in c[b],h={expirationTime:e,data:c,key:f.type,visitorCode:b,value:f};g?this.updateField(h):this.createField(h)}dereferenceData(a,b){return"string"==typeof a[b]?{visitorReference:a[b],data:a,isReference:!0}:{visitorReference:b,data:a,isReference:!1}}deleteExpiredField(a,b){if(!a)return 0;const c=b,d=a[c].expirationTime<Date.now();return d?(delete a[c],0):a[c].expirationTime}deleteNestedExpiredField(a,b){if(!a[b])return 0;const c=a[b];let d;for(const[e,f]of Object.entries(c)){if(!f)continue;const a=f.expirationTime<Date.now();a?delete c[e]:(!d||f.expirationTime<d)&&(d=f.expirationTime)}return Object.keys(c).length||delete a[b],d}updateField(a){let{key:b,value:c,data:d,visitorCode:e,expirationTime:f}=a;d[e][b]=_objectSpread(_objectSpread({},c),{},{expirationTime:f})}createField(a){let{key:b,value:c,data:d,visitorCode:e,expirationTime:f}=a;d[e]=_objectSpread(_objectSpread({},d[e]),{},{[b]:_objectSpread(_objectSpread({},c),{},{expirationTime:f})})}updateNestedField(a){let{key:b,nestedKey:c,value:d,data:e,visitorCode:f,expirationTime:g}=a;e[f][b][c]=_objectSpread(_objectSpread({},d),{},{expirationTime:g})}createNestedField(a){var b;let{key:c,nestedKey:d,value:e,data:f,visitorCode:g,expirationTime:h}=a;f[g]=null!==(b=f[g])&&void 0!==b&&b[c]?_objectSpread(_objectSpread({},f[g]),{},{[c]:_objectSpread(_objectSpread({},f[g][c]),{},{[d]:_objectSpread(_objectSpread({},e),{},{expirationTime:h})})}):_objectSpread(_objectSpread({},f[g]),{},{[c]:{[d]:_objectSpread(_objectSpread({},e),{},{expirationTime:h})}})}}exports.DataProcessor=DataProcessor;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Device=void 0;var _requester=require("../requester"),_types=require("./types"),_types2=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 Device{constructor(a){_defineProperty(this,"status",void 0),_defineProperty(this,"device",void 0),this.device=a,this.status=_types2.TrackingStatus.Unsent}get url(){return this.device?_requester.UrlEventType.StaticData+_requester.UrlParameter.DeviceType+this.device:""}get data(){return{device:this.device,type:_types.KameleoonData.Device,status:this.status}}static _fromRaw(a){const{device:b,status:c}=a,d=new Device(b);return d.status=c,d}static _fromVisit(a){var b;return null!==(b=a.staticDataEvent)&&void 0!==b&&b.data.deviceType?new Device(a.staticDataEvent.data.deviceType):void 0}}exports.Device=Device;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.GeolocationData=void 0;var _requester=require("../requester"),_types=require("./types"),_types2=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 GeolocationData{constructor(a){let{country:b,region:c,city:d,postalCode:e,coordinates:f}=a;_defineProperty(this,"status",void 0),_defineProperty(this,"country",void 0),_defineProperty(this,"region",void 0),_defineProperty(this,"city",void 0),_defineProperty(this,"postalCode",void 0),_defineProperty(this,"coordinates",void 0),this.country=b,this.region=c,this.city=d,this.postalCode=e,this.coordinates=f,this.status=_types2.TrackingStatus.Unsent}get url(){const a=this.region?_requester.UrlParameter.Region+encodeURIComponent(this.region):"",b=this.city?_requester.UrlParameter.City+encodeURIComponent(this.city):"",c=this.postalCode?_requester.UrlParameter.PostalCode+encodeURIComponent(this.postalCode):"",d=this.coordinates?_requester.UrlParameter.Latitude+this.coordinates[0]+_requester.UrlParameter.Longitude+this.coordinates[1]:"";return _requester.UrlEventType.Geolocation+_requester.UrlParameter.Country+encodeURIComponent(this.country)+a+b+c+d}get data(){return{type:_types.KameleoonData.GeolocationData,country:this.country,region:this.region,city:this.city,postalCode:this.postalCode,coordinates:this.coordinates,status:this.status}}static _fromRaw(a){const{country:b,region:c,city:d,postalCode:e,coordinates:f,status:g}=a,h=new GeolocationData({country:b,region:c,city:d,postalCode:e,coordinates:f});return h.status=g,h}static _fromVisit(a){var b;if(!(null!==(b=a.geolocationEvents)&&void 0!==b&&b.length))return;let c;for(const b of a.geolocationEvents){const{data:a}=b;a.country&&(c=a)}const{country:d,region:e,city:f}=c||{};if(d)return e&&f?new GeolocationData({country:d,region:e,city:f}):e?new GeolocationData({country:d,region:e}):new GeolocationData({country:d})}}exports.GeolocationData=GeolocationData;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.constructTypeMap=constructTypeMap;function constructTypeMap(a){return Object.fromEntries(Object.entries(a).map(a=>{let[b,c]=a;return[c,b]}))}
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ApplicationVersion",{enumerable:!0,get:function(){return _applicationVersion.ApplicationVersion}}),Object.defineProperty(exports,"ApplicationVersionDataType",{enumerable:!0,get:function(){return _types.ApplicationVersionDataType}}),Object.defineProperty(exports,"Browser",{enumerable:!0,get:function(){return _browser.Browser}}),Object.defineProperty(exports,"BrowserDataType",{enumerable:!0,get:function(){return _types.BrowserDataType}}),Object.defineProperty(exports,"BrowserIndexMap",{enumerable:!0,get:function(){return _types.BrowserIndexMap}}),Object.defineProperty(exports,"BrowserType",{enumerable:!0,get:function(){return _types.BrowserType}}),Object.defineProperty(exports,"Conversion",{enumerable:!0,get:function(){return _conversion.Conversion}}),Object.defineProperty(exports,"ConversionDataType",{enumerable:!0,get:function(){return _types.ConversionDataType}}),Object.defineProperty(exports,"ConversionParametersType",{enumerable:!0,get:function(){return _types.ConversionParametersType}}),Object.defineProperty(exports,"Cookie",{enumerable:!0,get:function(){return _cookie.Cookie}}),Object.defineProperty(exports,"CookieType",{enumerable:!0,get:function(){return _types.CookieType}}),Object.defineProperty(exports,"CustomData",{enumerable:!0,get:function(){return _customData.CustomData}}),Object.defineProperty(exports,"CustomDataType",{enumerable:!0,get:function(){return _types.CustomDataType}}),Object.defineProperty(exports,"DataManager",{enumerable:!0,get:function(){return _dataManager.DataManager}}),Object.defineProperty(exports,"DataProcessor",{enumerable:!0,get:function(){return _dataProcessor.DataProcessor}}),Object.defineProperty(exports,"Device",{enumerable:!0,get:function(){return _device.Device}}),Object.defineProperty(exports,"DeviceDataType",{enumerable:!0,get:function(){return _types.DeviceDataType}}),Object.defineProperty(exports,"DeviceType",{enumerable:!0,get:function(){return _types.DeviceType}}),Object.defineProperty(exports,"GeolocationData",{enumerable:!0,get:function(){return _geolocation.GeolocationData}}),Object.defineProperty(exports,"GeolocationInfoType",{enumerable:!0,get:function(){return _types.GeolocationInfoType}}),Object.defineProperty(exports,"IDataManager",{enumerable:!0,get:function(){return _dataManager.IDataManager}}),Object.defineProperty(exports,"IdentifierDataType",{enumerable:!0,get:function(){return _types.IdentifierDataType}}),Object.defineProperty(exports,"KameleoonConversionScore",{enumerable:!0,get:function(){return _kameleoonConversionScore.KameleoonConversionScore}}),Object.defineProperty(exports,"KameleoonData",{enumerable:!0,get:function(){return _types.KameleoonData}}),Object.defineProperty(exports,"KameleoonDataItemType",{enumerable:!0,get:function(){return _types.KameleoonDataItemType}}),Object.defineProperty(exports,"KameleoonDataType",{enumerable:!0,get:function(){return _types.KameleoonDataType}}),Object.defineProperty(exports,"OperatingSystem",{enumerable:!0,get:function(){return _operatingSystem.OperatingSystem}}),Object.defineProperty(exports,"OperatingSystemType",{enumerable:!0,get:function(){return _types.OperatingSystemType}}),Object.defineProperty(exports,"PageView",{enumerable:!0,get:function(){return _pageView.PageView}}),Object.defineProperty(exports,"PageViewDataType",{enumerable:!0,get:function(){return _types.PageViewDataType}}),Object.defineProperty(exports,"PageViewParametersType",{enumerable:!0,get:function(){return _types.PageViewParametersType}}),Object.defineProperty(exports,"StaticData",{enumerable:!0,get:function(){return _staticData.StaticData}}),Object.defineProperty(exports,"UniqueIdentifier",{enumerable:!0,get:function(){return _uniqueIdentifier.UniqueIdentifier}}),Object.defineProperty(exports,"UserAgent",{enumerable:!0,get:function(){return _userAgent.UserAgent}}),Object.defineProperty(exports,"UserAgentDataType",{enumerable:!0,get:function(){return _types.UserAgentDataType}}),Object.defineProperty(exports,"VisitsData",{enumerable:!0,get:function(){return _visitsData.VisitsData}}),Object.defineProperty(exports,"VisitsDataType",{enumerable:!0,get:function(){return _types.VisitsDataType}});var _device=require("./device"),_cookie=require("./cookie"),_browser=require("./browser"),_pageView=require("./pageView"),_userAgent=require("./userAgent"),_customData=require("./customData"),_conversion=require("./conversion"),_geolocation=require("./geolocation"),_operatingSystem=require("./operatingSystem"),_uniqueIdentifier=require("./uniqueIdentifier"),_applicationVersion=require("./applicationVersion"),_visitsData=require("./visitsData"),_kameleoonConversionScore=require("./kameleoonConversionScore"),_dataProcessor=require("./dataProcessor"),_staticData=require("./staticData"),_types=require("./types"),_dataManager=require("./dataManager");
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.KameleoonConversionScore=void 0;var _types=require("./types"),_types2=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 KameleoonConversionScore{constructor(a){_defineProperty(this,"status",void 0),_defineProperty(this,"kcs",void 0),this.kcs=a,this.status=_types2.TrackingStatus.Sent}get url(){return""}get data(){return{kcs:this.kcs,type:_types.KameleoonData.KameleoonConversionScore,status:this.status}}}exports.KameleoonConversionScore=KameleoonConversionScore;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.OperatingSystem=void 0;var _requester=require("../requester"),_types=require("./types"),_types2=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 OperatingSystem{constructor(a){_defineProperty(this,"operatingSystem",void 0),_defineProperty(this,"status",void 0),this.operatingSystem=a,this.status=_types2.TrackingStatus.Unsent}get url(){return this.operatingSystem?_requester.UrlEventType.StaticData+_requester.UrlParameter.Os+this.operatingSystem+_requester.UrlParameter.OsIndex+_types.OperatingSystemIndexMap[this.operatingSystem]:""}get data(){return{operatingSystem:this.operatingSystem,type:_types.KameleoonData.OperatingSystem,status:this.status}}static _fromRaw(a){const{operatingSystem:b,status:c}=a,d=new OperatingSystem(b);return d.status=c,d}static _fromVisit(a){if(a.staticDataEvent){const{os:b,osIndex:c}=a.staticDataEvent.data;if(b||"number"==typeof c){const a=null!==b&&void 0!==b?b:_types.OperatingSystemTypeMap[c];return new OperatingSystem(a)}}}}exports.OperatingSystem=OperatingSystem;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PageView=void 0;var _requester=require("../requester"),_types=require("./types"),_types2=require("../types");function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function _defineProperty(a,b,c){return(b=_toPropertyKey(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class PageView{constructor(a){let{urlAddress:b,title:c,referrers:d}=a;_defineProperty(this,"timestamps",void 0),_defineProperty(this,"urlAddress",void 0),_defineProperty(this,"title",void 0),_defineProperty(this,"nonce",void 0),_defineProperty(this,"referrers",void 0),this.urlAddress=b,this.title=c,this.referrers=d,this.timestamps=[{time:Date.now(),status:_types2.TrackingStatus.Unsent}]}get url(){var a;if(!this.urlAddress)return"";const b=this.title?_requester.UrlParameter.Title+encodeURIComponent(this.title):"",c=null!==(a=this.referrers)&&void 0!==a&&a.length?_requester.UrlParameter.ReferrersIndices+JSON.stringify(this.referrers):"";return _requester.UrlEventType.Page+_requester.UrlParameter.Href+encodeURIComponent(this.urlAddress)+b+c}get status(){const{[_types2.TrackingStatus.Sent]:a,[_types2.TrackingStatus.Unsent]:b,[_types2.TrackingStatus.Pending]:c}=this.timestamps.reduce((a,b)=>{let{status:c}=b;return a[c]=!0,a},{[_types2.TrackingStatus.Sent]:!1,[_types2.TrackingStatus.Unsent]:!1,[_types2.TrackingStatus.Pending]:!1});return!a||b||c?c&&!b?_types2.TrackingStatus.Pending:_types2.TrackingStatus.Unsent:_types2.TrackingStatus.Sent}set status(a){this.timestamps=this.timestamps.map(b=>_objectSpread(_objectSpread({},b),{},{status:a}))}set _nonce(a){this.nonce=a}get data(){return{urlAddress:this.urlAddress,title:this.title,referrers:this.referrers,type:_types.KameleoonData.PageView,timestamps:this.timestamps,status:this.status,nonce:this.nonce}}static _fromRaw(a){const{urlAddress:b,title:c,referrers:d,timestamps:e,nonce:f}=a,g=new PageView({urlAddress:b,title:c,referrers:d});return g.timestamps=e,f&&(g._nonce=f),g}static _updateFromVisit(a,b){const c=a.pageEvents;if(c)for(const a of c){let c=[];const{time:d}=a,{href:e,title:f,referrersIndices:g}=a.data;"number"==typeof g[0]&&(c=g);let h;if(b.has(e)){const a=b.get(e).timestamps;h=new PageView({urlAddress:e,title:f,referrers:c}),h.timestamps=[...a,{time:d,status:_types2.TrackingStatus.Sent}]}else h=new PageView({urlAddress:e,title:f,referrers:c}),h.timestamps=[{time:d,status:_types2.TrackingStatus.Sent}];b.set(e,h)}}}exports.PageView=PageView;