@kameleoon/javascript-sdk-core 5.16.1 → 5.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -54,6 +54,8 @@ export declare class KameleoonClient implements IKameleoonClient {
54
54
  getDataFile(): DataFile;
55
55
  protected setUserConsent({ visitorCode, consent, setData, }: SetUserConsentParametersType): void;
56
56
  private updateConsentData;
57
+ private getLegalConsent;
58
+ private extractLegalConsent;
57
59
  protected _isConsentProvided(visitorCode: string): boolean;
58
60
  private _getFeatureVariables;
59
61
  private _getActiveFeatureVariations;
@@ -21,7 +21,17 @@ export declare class Conversion implements IKameleoonData {
21
21
  set _id(id: number);
22
22
  set _nonce(nonce: string);
23
23
  get url(): string;
24
+ /**
25
+ * @private
26
+ * @method metadata - an internal getter for a metadata of conversion
27
+ * */
24
28
  get _metadata(): CustomData[] | undefined;
29
+ /**
30
+ * @private
31
+ * @method metadata - an internal setter for setting metadata of conversion
32
+ * @param {number} value - an index value
33
+ * */
34
+ set _metadata(value: CustomData[] | undefined);
25
35
  get data(): ConversionDataType;
26
36
  private _encodeMetadata;
27
37
  /**
@@ -83,4 +83,9 @@ export declare class CustomData implements IKameleoonData {
83
83
  * @method name - an internal getter for a name of custom data
84
84
  * */
85
85
  get name(): string | undefined;
86
+ /**
87
+ * @private
88
+ * @method name - an internal getter for a name of custom data
89
+ * */
90
+ get values(): string[];
86
91
  }
@@ -11,7 +11,7 @@ import { DataInfoType, MappingIdentifierType } from '../storage/types';
11
11
  import { ExternalPackageInfoType } from '../sdkInfoTypes';
12
12
  import { StaticData } from '../kameleoonData/staticData';
13
13
  export interface IDataManager {
14
- storeData(data: VisitorsDataType): Result<void, KameleoonError>;
14
+ storeData(data: VisitorsDataType, extendTtl: boolean): Result<void, KameleoonError>;
15
15
  storeTrackedData(data: VisitorsDataType): void;
16
16
  getTree(segment: SegmentType): Tree;
17
17
  clearTrees(): void;
@@ -45,7 +45,7 @@ export declare class DataManager implements IDataManager {
45
45
  getPendingData(visitorCode: string): KameleoonDataType[];
46
46
  private getDataFromRaw;
47
47
  storeTrackedData(data: VisitorsDataType): void;
48
- storeData(data: VisitorsDataType): Result<void, KameleoonError>;
48
+ storeData(data: VisitorsDataType, extendTtl: boolean): Result<void, KameleoonError>;
49
49
  storeData(visitorCode: string, ...data: KameleoonDataType[]): Result<void, KameleoonError>;
50
50
  getTree(segment: SegmentType): Tree;
51
51
  clearTrees(): void;
@@ -3,7 +3,7 @@ import { DereferenceTargetingDataResultType, MutAddUnsentDataType, MutUpdateData
3
3
  import { DataInfoType } from '../storage';
4
4
  import { ExternalPackageInfoType } from '../sdkInfoTypes';
5
5
  interface IDataProcessor {
6
- mutUpdateData({ visitorCode, mutData, dataItem, }: MutUpdateDataParametersType): number;
6
+ mutUpdateData({ visitorCode, mutData, dataItem, extendTtl, }: MutUpdateDataParametersType): number | undefined;
7
7
  mutCleanupData(mutData: TargetingDataType, infoData: DataInfoType): number | null;
8
8
  createReference({ mutData, visitorCode, linkedVisitor, infoData, }: ReferenceParametersType): void;
9
9
  dereferenceData(data: TargetingDataType, visitorCode: string): DereferenceTargetingDataResultType;
@@ -13,7 +13,7 @@ export declare class DataProcessor implements IDataProcessor {
13
13
  private cleanupInterval;
14
14
  private packageInfo;
15
15
  constructor(cleanupInterval: number | null | undefined, packageInfo: ExternalPackageInfoType);
16
- mutUpdateData({ infoData, visitorCode, mutData, dataItem, }: MutUpdateDataParametersType): number;
16
+ mutUpdateData({ infoData, visitorCode, mutData, dataItem, extendTtl, }: MutUpdateDataParametersType): number | undefined;
17
17
  mutCleanupData(mutData: TargetingDataType, infoData: DataInfoType): number | null;
18
18
  mutAddUnsentData({ mutData, visitorCode, dataType, }: MutAddUnsentDataType): void;
19
19
  createReference({ mutData, visitorCode, linkedVisitor, }: ReferenceParametersType): void;
@@ -8,7 +8,7 @@ import { Personalization } from '../kameleoonData/personalization';
8
8
  import { CBScores } from '../kameleoonData/cbScores';
9
9
  import { TargetedSegment } from '../kameleoonData/targetedSegment';
10
10
  export type FieldParametersType = {
11
- expirationTime: number;
11
+ expirationTime?: number;
12
12
  key: KameleoonData;
13
13
  value: BrowserDataType | CookieDataType | DeviceDataType | GeolocationDataType | OperatingSystemDataType | UserAgentDataType | VisitsDataType;
14
14
  visitorCode: string;
@@ -20,7 +20,7 @@ export type VisitorProcessorParametersType = {
20
20
  visitorCode: string;
21
21
  };
22
22
  export type NestedFieldParametersType = {
23
- expirationTime: number;
23
+ expirationTime?: number;
24
24
  visitorCode: string;
25
25
  key: KameleoonData.CustomData | KameleoonData.PageView | KameleoonData.Conversion | KameleoonData.Personalization | KameleoonData.TargetedSegment;
26
26
  nestedKey: string;
@@ -135,7 +135,7 @@ export declare enum KameleoonData {
135
135
  type CommonUpdateParametersType = {
136
136
  mutData: DereferencedTargetingDataType;
137
137
  visitorCode: string;
138
- expirationTime: number;
138
+ expirationTime?: number;
139
139
  };
140
140
  export type UpdateCustomDataParametersType = {
141
141
  customData: CustomData;
@@ -169,12 +169,14 @@ export type MutUpdateDataParametersType = {
169
169
  mutData: TargetingDataType;
170
170
  dataItem: KameleoonDataType;
171
171
  visitorCode: string;
172
+ extendTtl: boolean;
172
173
  };
173
174
  export type MutUpdateTargetingDataParametersType = {
174
175
  visitorCode: string;
175
176
  infoData: DataInfoType;
176
177
  kameleoonData: KameleoonDataType[];
177
178
  targetingData: TargetingDataType;
179
+ extendTtl: boolean;
178
180
  };
179
181
  export type ReferenceParametersType = {
180
182
  mutData: TargetingDataType;
@@ -10,22 +10,22 @@ interface IVisitProcessor {
10
10
  processVisitsData(visit: VisitType): void;
11
11
  }
12
12
  export declare class VisitProcessor implements IVisitProcessor {
13
- private visitsData;
14
- private visitorData;
15
- private storageVisitorData;
13
+ private readonly visitsData;
14
+ private readonly visitorData;
15
+ private readonly storageVisitorData;
16
16
  private experimentData;
17
- private filters;
18
- private visitorDataTypes;
19
- private dataManager;
17
+ private readonly filters;
18
+ private readonly visitorDataTypes;
19
+ private readonly dataManager;
20
20
  private singleDataTypes;
21
- private multipleDataTypes;
21
+ private readonly multipleDataTypes;
22
22
  constructor({ filters, dataManager, visitorCode, }: VisitorProcessorParametersType);
23
23
  get data(): VisitProcessorDataType;
24
24
  processVisit(visit: VisitType): void;
25
25
  processMultipleDataTypes(): void;
26
26
  processKcs(kcsData?: KCSType): void;
27
27
  processVisitsData(visit: VisitType): void;
28
- processVisitNumber(visit: VisitType, isCurrentVisit: boolean): void;
28
+ processVisitNumber(visit: VisitType, visitOffset: number): void;
29
29
  processCbs(cbsData?: CBSType): void;
30
30
  private processBrowser;
31
31
  private processDevice;
@@ -5,13 +5,14 @@ import { TrackingStatus } from '../types';
5
5
  * Visits - a class for creating an instance of a stored visits data
6
6
  * */
7
7
  export declare class VisitsData implements IKameleoonData {
8
- private visits;
9
- private visitNumber;
8
+ private readonly visits;
9
+ private _visitNumber;
10
10
  status: TrackingStatus;
11
11
  /**
12
12
  * @param {number[]} visits - a list of visits
13
13
  * */
14
14
  constructor(visits: VisitDataType[]);
15
+ get visitNumber(): number;
15
16
  get url(): string;
16
17
  get data(): VisitsDataType;
17
18
  get isSent(): boolean;
@@ -1,5 +1,5 @@
1
1
  import { DomainsType, EventType, ParameterType, QueryType, StrictEventTypeRecord, StrictFirstParameterRecord, StrictParameterRecord, StrictQueryRecord, StrictTrackingRecord, TrackingType } from './types';
2
- export declare const NUMBER_OF_RETRIES = 2;
2
+ export declare const NUMBER_OF_RETRIES = 1;
3
3
  export declare enum Header {
4
4
  UserAgent = "User-Agent",
5
5
  ContentType = "Content-Type",
@@ -105,8 +105,8 @@ export type PersonalizationEventType = {
105
105
  };
106
106
  export type StaticDataEventType = {
107
107
  data: {
108
- visitNumber: number;
109
- timeSincePreviousVisit: number;
108
+ visitNumber: number | null | undefined;
109
+ timeSincePreviousVisit: number | null | undefined;
110
110
  firstReferrerHref: string | null;
111
111
  browser: BrowserType | null;
112
112
  browserIndex: BrowserIndexType | null;
@@ -17,6 +17,7 @@ export declare class UrlProvider implements IUrlProvider {
17
17
  private packageInfo?;
18
18
  initialize({ domain, siteCode, packageInfo, environment, }: UrlProviderInitializeParamsType): void;
19
19
  set dataApiDomain(domain: string);
20
+ get dataApiDomain(): string;
20
21
  getClientConfigurationUrl(timeStamp?: number): string;
21
22
  getEventSourceUrl(): string;
22
23
  getRemoteDataUrl(key: string): string;
@@ -2,4 +2,4 @@ export { KameleoonStorageKey, VISIT_DURATION } from './constants';
2
2
  export { DataStorage } from './storage';
3
3
  export { IntegrityChecker } from './integrityChecker';
4
4
  export { StorageCleanupManager } from './storageCleanupManager';
5
- export { ClientDataType, TrackingDataType, VariationDataType, ConsentDataType, DataInfoType, StorageDataType, FeatureFlagVariationsType, IStorage, IExternalStorage, } from './types';
5
+ export { ClientDataType, TrackingDataType, VariationDataType, StorageConsentDataType, DataInfoType, StorageDataType, FeatureFlagVariationsType, IStorage, IExternalStorage, } from './types';
@@ -76,10 +76,18 @@ export type ForcedVariationDataType = {
76
76
  [featureKey: string]: ForcedFeatureVariationType;
77
77
  };
78
78
  };
79
- export type ConsentDataType = {
80
- [visitorCode: string]: boolean | {
81
- consent: boolean;
82
- };
79
+ export declare enum LegalConsent {
80
+ Unknown = 0,
81
+ Given = 1,
82
+ NotGiven = 2
83
+ }
84
+ export type LegalConsentDataType = boolean | {
85
+ consent: LegalConsent;
86
+ } | {
87
+ consent: boolean;
88
+ };
89
+ export type StorageConsentDataType = {
90
+ [visitorCode: string]: LegalConsentDataType;
83
91
  };
84
92
  export type ScheduledVisitorsType = {
85
93
  [visitorCode: string]: {
@@ -94,7 +102,7 @@ export type TrackingDataType = {
94
102
  *
95
103
  * `string` represents visitor code storage with only one string value
96
104
  * */
97
- export type StorageDataType = ClientDataType | TargetingDataType | TrackingDataType | VariationDataType | ConsentDataType | DataInfoType | string;
105
+ export type StorageDataType = ClientDataType | TargetingDataType | TrackingDataType | VariationDataType | StorageConsentDataType | DataInfoType | string;
98
106
  /**
99
107
  * @interface an interface of External Storage which must be implemented to be used as external storage an SDK
100
108
  * */
@@ -3,6 +3,7 @@ import { DataManager } from '../kameleoonData';
3
3
  import { KameleoonVisitorDataType } from '../kameleoonData/types';
4
4
  import { TrackingStatus } from '../types';
5
5
  import { ExternalPackageInfoType } from '../sdkInfoTypes';
6
+ import { LegalConsent } from '../storage/types';
6
7
  export type UpdateDataStatusParametersType = {
7
8
  visitorCode: string;
8
9
  experimentIdList: string[];
@@ -27,6 +28,7 @@ export type GetVariationParametersType = {
27
28
  packageInfo: ExternalPackageInfoType;
28
29
  clientConfiguration: ClientConfiguration;
29
30
  dataManager: DataManager;
31
+ legalConsent: LegalConsent;
30
32
  };
31
33
  export type BaseVariationDataType = {
32
34
  experimentId: number;
@@ -63,7 +63,7 @@ export declare class VariationConfiguration implements IVariationConfiguration {
63
63
  getVisitorsWithUnsentData(): string[];
64
64
  getPendingData(visitorCode: string): BaseVariationDataType[];
65
65
  getStoredVariations(visitorCode: string): Result<FeatureFlagVariationsType, KameleoonError>;
66
- getVariation({ visitorCode, visitorIdentifier, featureFlag, targetingData, packageInfo, clientConfiguration, dataManager, track, withAssignment, }: GetVariationParametersType): Result<FeatureFlagVariationType, KameleoonError>;
66
+ getVariation({ visitorCode, visitorIdentifier, featureFlag, targetingData, packageInfo, clientConfiguration, dataManager, legalConsent, track, withAssignment, }: GetVariationParametersType): Result<FeatureFlagVariationType, KameleoonError>;
67
67
  private createAndSaveForcedTargetedVariation;
68
68
  updateStoredVariations(visitorCode: string, variationData: FeatureFlagVariationsType): Result<void, KameleoonError>;
69
69
  private getVariationData;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kameleoon/javascript-sdk-core",
3
- "version": "5.16.1",
3
+ "version": "5.17.1",
4
4
  "description": "Kameleoon JS SDK Core",
5
5
  "main": "dist/javascript-sdk-core.cjs.js",
6
6
  "module": "dist/javascript-sdk-core.es.js",