@kameleoon/javascript-sdk-core 4.0.1 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/dist/clientConfiguration/clientConfiguration.d.ts +5 -2
- package/dist/clientConfiguration/clientConfiguration.js +1 -1
- package/dist/clientConfiguration/clientConfiguration.js.map +1 -1
- package/dist/clientConfiguration/constants.d.ts +3 -2
- package/dist/clientConfiguration/constants.js +1 -1
- package/dist/clientConfiguration/constants.js.map +1 -1
- package/dist/clientConfiguration/index.d.ts +1 -1
- package/dist/clientConfiguration/index.js +1 -1
- package/dist/clientConfiguration/index.js.map +1 -1
- package/dist/clientConfiguration/types.d.ts +1 -0
- package/dist/clientConfiguration/types.js.map +1 -1
- package/dist/constants.js +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/kameleoonClient.d.ts +7 -3
- package/dist/kameleoonClient.js +1 -1
- package/dist/kameleoonClient.js.map +1 -1
- package/dist/kameleoonClientInterface.d.ts +38 -3
- package/dist/kameleoonClientInterface.js.map +1 -1
- package/dist/kameleoonData/applicationVersion.d.ts +0 -9
- package/dist/kameleoonData/applicationVersion.js.map +1 -1
- package/dist/kameleoonData/browser.d.ts +3 -12
- package/dist/kameleoonData/browser.js +1 -1
- package/dist/kameleoonData/browser.js.map +1 -1
- package/dist/kameleoonData/conversion.d.ts +11 -13
- package/dist/kameleoonData/conversion.js +1 -1
- package/dist/kameleoonData/conversion.js.map +1 -1
- package/dist/kameleoonData/cookie.d.ts +0 -9
- package/dist/kameleoonData/cookie.js.map +1 -1
- package/dist/kameleoonData/customData.d.ts +3 -13
- package/dist/kameleoonData/customData.js +1 -1
- package/dist/kameleoonData/customData.js.map +1 -1
- package/dist/kameleoonData/dataManager.d.ts +11 -5
- package/dist/kameleoonData/dataManager.js +1 -1
- package/dist/kameleoonData/dataManager.js.map +1 -1
- package/dist/kameleoonData/dataProcessor.d.ts +13 -6
- package/dist/kameleoonData/dataProcessor.js +1 -1
- package/dist/kameleoonData/dataProcessor.js.map +1 -1
- package/dist/kameleoonData/device.d.ts +3 -12
- package/dist/kameleoonData/device.js +1 -1
- package/dist/kameleoonData/device.js.map +1 -1
- package/dist/kameleoonData/geolocation.d.ts +3 -12
- package/dist/kameleoonData/geolocation.js +1 -1
- package/dist/kameleoonData/geolocation.js.map +1 -1
- package/dist/kameleoonData/index.d.ts +1 -0
- package/dist/kameleoonData/index.js +1 -1
- package/dist/kameleoonData/index.js.map +1 -1
- package/dist/kameleoonData/kameleoonConversionScore.d.ts +15 -0
- package/dist/kameleoonData/kameleoonConversionScore.js +2 -0
- package/dist/kameleoonData/kameleoonConversionScore.js.map +1 -0
- package/dist/kameleoonData/operatingSystem.d.ts +3 -12
- package/dist/kameleoonData/operatingSystem.js +1 -1
- package/dist/kameleoonData/operatingSystem.js.map +1 -1
- package/dist/kameleoonData/pageView.d.ts +4 -13
- package/dist/kameleoonData/pageView.js +1 -1
- package/dist/kameleoonData/pageView.js.map +1 -1
- package/dist/kameleoonData/types.d.ts +54 -11
- package/dist/kameleoonData/types.js +1 -1
- package/dist/kameleoonData/types.js.map +1 -1
- package/dist/kameleoonData/userAgent.d.ts +0 -9
- package/dist/kameleoonData/userAgent.js.map +1 -1
- package/dist/kameleoonData/visitProcessor.d.ts +34 -0
- package/dist/kameleoonData/visitProcessor.js +2 -0
- package/dist/kameleoonData/visitProcessor.js.map +1 -0
- package/dist/kameleoonData/visitsData.d.ts +7 -21
- package/dist/kameleoonData/visitsData.js +1 -1
- package/dist/kameleoonData/visitsData.js.map +1 -1
- package/dist/requester/constants.js +1 -1
- package/dist/requester/constants.js.map +1 -1
- package/dist/requester/requester.d.ts +2 -3
- package/dist/requester/requester.js +1 -1
- package/dist/requester/requester.js.map +1 -1
- package/dist/requester/types.d.ts +15 -3
- package/dist/requester/types.js +1 -1
- package/dist/requester/types.js.map +1 -1
- package/dist/requester/urlProvider.d.ts +2 -3
- package/dist/requester/urlProvider.js +1 -1
- package/dist/requester/urlProvider.js.map +1 -1
- package/dist/storage/storage.js +1 -1
- package/dist/storage/types.d.ts +1 -1
- package/dist/storage/types.js.map +1 -1
- package/dist/targeting/conditions/browser.js +1 -1
- package/dist/targeting/conditions/browser.js.map +1 -1
- package/dist/targeting/conditions/conditionFactory.js +1 -1
- package/dist/targeting/conditions/conditionFactory.js.map +1 -1
- package/dist/targeting/conditions/conversionLikelihood.d.ts +12 -0
- package/dist/targeting/conditions/conversionLikelihood.js +2 -0
- package/dist/targeting/conditions/conversionLikelihood.js.map +1 -0
- package/dist/targeting/conditions/firstVisit.js +1 -1
- package/dist/targeting/conditions/firstVisit.js.map +1 -1
- package/dist/targeting/conditions/geolocation.js +1 -1
- package/dist/targeting/conditions/geolocation.js.map +1 -1
- package/dist/targeting/conditions/index.d.ts +1 -0
- package/dist/targeting/conditions/index.js +1 -1
- package/dist/targeting/conditions/index.js.map +1 -1
- package/dist/targeting/conditions/lastVisit.js +1 -1
- package/dist/targeting/conditions/lastVisit.js.map +1 -1
- package/dist/targeting/conditions/newVisitor.js +1 -1
- package/dist/targeting/conditions/newVisitor.js.map +1 -1
- package/dist/targeting/conditions/pageUrl.js.map +1 -1
- package/dist/targeting/conditions/previousPage.js +1 -1
- package/dist/targeting/conditions/previousPage.js.map +1 -1
- package/dist/targeting/conditions/sameDayVisits.js +1 -1
- package/dist/targeting/conditions/sameDayVisits.js.map +1 -1
- package/dist/targeting/conditions/targetFeatureFlag.js +1 -1
- package/dist/targeting/conditions/types.d.ts +3 -0
- package/dist/targeting/conditions/types.js.map +1 -1
- package/dist/targeting/conditions/visits.js +1 -1
- package/dist/targeting/conditions/visits.js.map +1 -1
- package/dist/targeting/index.d.ts +2 -2
- package/dist/targeting/index.js +1 -1
- package/dist/targeting/index.js.map +1 -1
- package/dist/targeting/types.d.ts +4 -0
- package/dist/targeting/types.js.map +1 -1
- package/dist/types.d.ts +26 -2
- package/dist/types.js.map +1 -1
- package/dist/utilities/types.d.ts +6 -1
- package/dist/utilities/types.js.map +1 -1
- package/dist/utilities/utilities.d.ts +1 -1
- package/dist/utilities/utilities.js +1 -1
- package/dist/utilities/utilities.js.map +1 -1
- package/dist/variationConfiguration/types.d.ts +1 -1
- package/dist/variationConfiguration/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visitProcessor.js","names":["VisitProcessor","constructor","filters","dataManager","_defineProperty","VisitsData","KameleoonData","Device","Browser","GeolocationData","OperatingSystem","KameleoonConversionScore","CustomData","Map","PageView","Conversion","data","visitorData","storageVisitorData","visitsData","experimentData","processVisit","visit","processBrowser","processDevice","processOperatingSystem","processGeolocationData","processCustomData","processConversion","processPageView","processExperiments","processVisitsData","processMultipleDataTypes","dataType","Object","entries","multipleDataTypes","size","push","values","forEach","customData","storedCustomDataIndexes","has","index","processKcs","kcsData","kcs","browser","singleDataTypes","_fromVisit","storedDataTypes","device","operatingSystem","geolocation","_updateFromVisit","conversions","_listFromVisit","length","pageViews","experiments","experimentEvents","experimentEvent","id","variationId","isTargetedRule","isSent","timestamp","timeStarted","exports"],"sources":["../../src/kameleoonData/visitProcessor.ts"],"sourcesContent":["import { VisitType } from 'src/requester';\nimport { PageView } from './pageView';\nimport { VisitorDataFiltersType } from 'src/utilities/types';\nimport {\n KameleoonData,\n KameleoonDataType,\n SingleDataType,\n MultipleDataType,\n VisitProcessorDataType,\n KCSType,\n} from './types';\nimport { CustomData } from './customData';\nimport { Conversion } from './conversion';\nimport { Browser } from './browser';\nimport { Device } from './device';\nimport { OperatingSystem } from './operatingSystem';\nimport { GeolocationData } from './geolocation';\nimport { FeatureFlagVariationsType } from 'src/storage';\nimport { VisitsData } from './visitsData';\nimport { DataManager } from './dataManager';\nimport { KameleoonConversionScore } from './kameleoonConversionScore';\n\ninterface IVisitProcessor {\n processVisit(visit: VisitType): void;\n processKcs(kcsData?: KCSType): void;\n processMultipleDataTypes(): void;\n}\n\nexport class VisitProcessor implements IVisitProcessor {\n private visitsData = new VisitsData([]);\n private visitorData: KameleoonDataType[] = [];\n private storageVisitorData: KameleoonDataType[] = [];\n private experimentData: FeatureFlagVariationsType = {};\n private filters: VisitorDataFiltersType = {};\n private dataManager: DataManager;\n private singleDataTypes: SingleDataType = {\n [KameleoonData.Device]: null,\n [KameleoonData.Browser]: null,\n [KameleoonData.GeolocationData]: null,\n [KameleoonData.OperatingSystem]: null,\n [KameleoonData.KameleoonConversionScore]: null,\n };\n private multipleDataTypes: MultipleDataType = {\n [KameleoonData.CustomData]: new Map<number, CustomData>(),\n [KameleoonData.PageView]: new Map<string, PageView>(),\n [KameleoonData.Conversion]: new Map<number, Conversion>(),\n };\n\n constructor(filters: VisitorDataFiltersType, dataManager: DataManager) {\n this.filters = filters;\n this.dataManager = dataManager;\n }\n\n get data(): VisitProcessorDataType {\n return {\n visitorData: this.visitorData,\n storageVisitorData: this.storageVisitorData,\n visitsData: this.visitsData,\n experimentData: this.experimentData,\n };\n }\n\n public processVisit(visit: VisitType): void {\n this.processBrowser(visit);\n this.processDevice(visit);\n this.processOperatingSystem(visit);\n this.processGeolocationData(visit);\n this.processCustomData(visit);\n this.processConversion(visit);\n this.processPageView(visit);\n this.processExperiments(visit);\n this.processVisitsData(visit);\n }\n\n public processMultipleDataTypes(): void {\n for (const [dataType, data] of Object.entries(this.multipleDataTypes)) {\n if (!data.size) {\n continue;\n }\n\n switch (dataType) {\n case KameleoonData.PageView: {\n this.visitorData.push(...data.values());\n this.storageVisitorData.push(...data.values());\n\n break;\n }\n case KameleoonData.Conversion: {\n this.storageVisitorData.push(...data.values());\n\n break;\n }\n case KameleoonData.CustomData: {\n const dataItem = data as Map<number, CustomData>;\n\n dataItem.forEach((customData) => {\n this.visitorData.push(customData);\n\n if (\n !this.dataManager.storedCustomDataIndexes.has(\n customData.data.index,\n )\n ) {\n this.storageVisitorData.push(customData);\n }\n });\n\n break;\n }\n }\n }\n }\n\n public processKcs(kcsData?: KCSType): void {\n if (this.filters.kcs && kcsData) {\n const kcs = new KameleoonConversionScore(kcsData);\n\n this.storageVisitorData.push(kcs);\n }\n }\n\n private processBrowser(visit: VisitType): void {\n if (this.filters.browser && !this.singleDataTypes[KameleoonData.Browser]) {\n const browser = Browser._fromVisit(visit);\n\n if (browser) {\n if (!this.dataManager.storedDataTypes.has(KameleoonData.Browser)) {\n this.storageVisitorData.push(browser);\n }\n this.visitorData.push(browser);\n this.singleDataTypes[KameleoonData.Browser] = browser;\n }\n }\n }\n\n private processDevice(visit: VisitType): void {\n if (this.filters.device && !this.singleDataTypes[KameleoonData.Device]) {\n const device = Device._fromVisit(visit);\n\n if (device) {\n if (!this.dataManager.storedDataTypes.has(KameleoonData.Device)) {\n this.storageVisitorData.push(device);\n }\n\n this.visitorData.push(device);\n this.singleDataTypes[KameleoonData.Device] = device;\n }\n }\n }\n\n private processOperatingSystem(visit: VisitType): void {\n if (\n this.filters.operatingSystem &&\n !this.singleDataTypes[KameleoonData.OperatingSystem]\n ) {\n const operatingSystem = OperatingSystem._fromVisit(visit);\n\n if (operatingSystem) {\n if (\n !this.dataManager.storedDataTypes.has(KameleoonData.OperatingSystem)\n ) {\n this.storageVisitorData.push(operatingSystem);\n }\n\n this.visitorData.push(operatingSystem);\n this.singleDataTypes[KameleoonData.OperatingSystem] = operatingSystem;\n }\n }\n }\n\n private processGeolocationData(visit: VisitType): void {\n if (\n this.filters.geolocation &&\n !this.singleDataTypes[KameleoonData.GeolocationData]\n ) {\n const geolocation = GeolocationData._fromVisit(visit);\n\n if (geolocation) {\n if (\n !this.dataManager.storedDataTypes.has(KameleoonData.GeolocationData)\n ) {\n this.storageVisitorData.push(geolocation);\n }\n\n this.visitorData.push(geolocation);\n this.singleDataTypes[KameleoonData.GeolocationData] = geolocation;\n }\n }\n }\n\n private processCustomData(visit: VisitType): void {\n if (this.filters.customData) {\n CustomData._updateFromVisit(\n visit,\n this.multipleDataTypes[KameleoonData.CustomData],\n );\n }\n }\n\n private processConversion(visit: VisitType): void {\n if (this.filters.conversions) {\n // --- Note ---\n // We collect Conversion data with only unique goalId\n Conversion._updateFromVisit(\n visit,\n this.multipleDataTypes[KameleoonData.Conversion],\n );\n\n // --- Note ---\n // We collect all Conversion data with goalId, revenue and negative for all visits\n const conversions = Conversion._listFromVisit(visit);\n\n if (conversions.length) {\n this.visitorData.push(...conversions);\n }\n }\n }\n\n private processPageView(visit: VisitType): void {\n if (this.filters.pageViews) {\n PageView._updateFromVisit(\n visit,\n this.multipleDataTypes[KameleoonData.PageView],\n );\n }\n }\n\n private processExperiments(visit: VisitType): void {\n if (this.filters.experiments && visit.experimentEvents) {\n for (const experimentEvent of visit.experimentEvents) {\n const { id, variationId } = experimentEvent.data;\n\n this.experimentData[id] = {\n variationId,\n isTargetedRule: false,\n isSent: false,\n };\n }\n }\n }\n\n private processVisitsData(visit: VisitType): void {\n this.visitsData.timestamp = visit.timeStarted;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,34 +1,20 @@
|
|
|
1
|
-
import { VisitType } from '../requester';
|
|
2
1
|
import { IKameleoonData, VisitsDataType } from './types';
|
|
3
2
|
/**
|
|
4
3
|
* @class
|
|
5
4
|
* Visits - a class for creating an instance of a stored visits data
|
|
6
5
|
* */
|
|
7
6
|
export declare class VisitsData implements IKameleoonData {
|
|
8
|
-
private
|
|
9
|
-
private currentVisit;
|
|
7
|
+
private visits;
|
|
10
8
|
/**
|
|
11
|
-
* @param {number}
|
|
12
|
-
* @param {number[]} previousVisits - a list of previous visits
|
|
13
|
-
* */
|
|
14
|
-
constructor(currentVisit: number | null, previousVisits: number[]);
|
|
15
|
-
/**
|
|
16
|
-
* @property url - url for the current data type used for events tracking
|
|
9
|
+
* @param {number[]} visits - a list of visits
|
|
17
10
|
* */
|
|
11
|
+
constructor(visits: number[]);
|
|
18
12
|
get url(): string;
|
|
19
|
-
/**
|
|
20
|
-
* @property data - data of the current class instance
|
|
21
|
-
* */
|
|
22
13
|
get data(): VisitsDataType;
|
|
23
|
-
/**
|
|
24
|
-
* @property isSent - signifying if the data was sent already tracked
|
|
25
|
-
* */
|
|
26
14
|
get isSent(): boolean;
|
|
27
15
|
/**
|
|
28
|
-
*
|
|
29
|
-
* @
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
* */
|
|
33
|
-
static _fromRemoteVisits(visits: VisitType[], hasCurrent: boolean): VisitsData | undefined;
|
|
16
|
+
* Adds a single timestamp while ensuring the list remains sorted and unique
|
|
17
|
+
* @param {number} timestamp - The timestamp to add
|
|
18
|
+
*/
|
|
19
|
+
set timestamp(timestamp: number);
|
|
34
20
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.VisitsData=void 0;var _utilities=require("../utilities"),_types=require("../utilities/types"),_types2=require("./types");function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class VisitsData{constructor(a){_defineProperty(this,"visits",void 0),this.visits=a}get url(){return""}get data(){return{visits:this.visits,type:_types2.KameleoonData.VisitsData,sent:!0}}get isSent(){return!0}set timestamp(a){_utilities.Utilities.insertInOrderedListMutably({list:this.visits,element:a,order:_types.Order.Ascending}),this.visits=[...new Set(this.visits)]}}exports.VisitsData=VisitsData;
|
|
2
2
|
//# sourceMappingURL=visitsData.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visitsData.js","names":["
|
|
1
|
+
{"version":3,"file":"visitsData.js","names":["VisitsData","constructor","visits","_defineProperty","url","data","type","KameleoonData","sent","isSent","timestamp","Utilities","insertInOrderedListMutably","list","element","order","Order","Ascending","Set","exports"],"sources":["../../src/kameleoonData/visitsData.ts"],"sourcesContent":["import { Utilities } from 'src/utilities';\nimport { Order } from 'src/utilities/types';\nimport { IKameleoonData, KameleoonData, VisitsDataType } from './types';\n\n/**\n * @class\n * Visits - a class for creating an instance of a stored visits data\n * */\nexport class VisitsData implements IKameleoonData {\n // --- Note ---\n // Ascending order\n private visits: number[];\n\n /**\n * @param {number[]} visits - a list of visits\n * */\n constructor(visits: number[]) {\n this.visits = visits;\n }\n\n get url(): string {\n return '';\n }\n\n get data(): VisitsDataType {\n return {\n visits: this.visits,\n type: KameleoonData.VisitsData,\n sent: true,\n };\n }\n\n get isSent(): boolean {\n return true;\n }\n\n /**\n * Adds a single timestamp while ensuring the list remains sorted and unique\n * @param {number} timestamp - The timestamp to add\n */\n set timestamp(timestamp: number) {\n Utilities.insertInOrderedListMutably({\n list: this.visits,\n element: timestamp,\n order: Order.Ascending,\n });\n\n this.visits = [...new Set(this.visits)];\n }\n}\n"],"mappings":"wsBAQO,KAAM,CAAAA,UAAqC,CAQhDC,WAAWA,CAACC,CAAgB,CAAE,CAAAC,eAAA,uBAC5B,IAAI,CAACD,MAAM,CAAGA,CAChB,CAEA,GAAI,CAAAE,GAAGA,CAAA,CAAW,CAChB,MAAO,EACT,CAEA,GAAI,CAAAC,IAAIA,CAAA,CAAmB,CACzB,MAAO,CACLH,MAAM,CAAE,IAAI,CAACA,MAAM,CACnBI,IAAI,CAAEC,qBAAa,CAACP,UAAU,CAC9BQ,IAAI,GACN,CACF,CAEA,GAAI,CAAAC,MAAMA,CAAA,CAAY,CACpB,QACF,CAMA,GAAI,CAAAC,SAASA,CAACA,CAAiB,CAAE,CAC/BC,oBAAS,CAACC,0BAA0B,CAAC,CACnCC,IAAI,CAAE,IAAI,CAACX,MAAM,CACjBY,OAAO,CAAEJ,CAAS,CAClBK,KAAK,CAAEC,YAAK,CAACC,SACf,CAAC,CAAC,CAEF,IAAI,CAACf,MAAM,CAAG,CAAC,GAAG,GAAI,CAAAgB,GAAG,CAAC,IAAI,CAAChB,MAAM,CAAC,CACxC,CACF,CAACiB,OAAA,CAAAnB,UAAA,CAAAA,UAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var _types=require("../types");Object.defineProperty(exports,"__esModule",{value:!0}),exports.UrlTracking=exports.UrlQuery=exports.UrlParameter=exports.UrlFirstParameter=exports.UrlEventType=exports.URL=exports.RETRIES_DELAY=exports.NUMBER_OF_RETRIES=exports.Header=exports.DEFAULT_REQUEST_TIMEOUT=exports.DATA_API_DOMAIN=void 0;const DEFAULT_REQUEST_TIMEOUT=exports.DEFAULT_REQUEST_TIMEOUT=10*_types.Milliseconds.Second,RETRIES_DELAY=exports.RETRIES_DELAY=5*_types.Milliseconds.Second,NUMBER_OF_RETRIES=exports.NUMBER_OF_RETRIES=3;let Header=exports.Header=function(a){return a.UserAgent="User-Agent",a.ContentType="Content-Type",a.SdkVersion="X-Kameleoon-SDK-Version",a.SdkType="X-Kameleoon-SDK-Type",a.Authorization="Authorization",a.AcceptEncoding="Accept-Encoding",a}({});const UrlEventType=exports.UrlEventType={CustomData:"eventType=customData",StaticData:"eventType=staticData",Page:"eventType=page",Conversion:"eventType=conversion",Activity:"eventType=activity",Experiment:"eventType=experiment",Geolocation:"eventType=geolocation"},UrlParameter=exports.UrlParameter={Title:"&title=",ReferrersIndices:"&referrersIndices=",Negative:"&negative=",Revenue:"&revenue=",Overwrite:"&overwrite=",Index:"&index=",BrowserIndex:"&browserIndex=",BrowserVersion:"&browserVersion=",Href:"&href=",DeviceType:"&deviceType=",SiteCode:"&siteCode=",GoalId:"&goalId=",VisitorCode:"&visitorCode=",VariationId:"&variationId=",Ts:"&ts=",Key:"&key=",SdkName:"&sdkName=",SdkVersion:"&sdkVersion=",ValuesCountMap:"&valuesCountMap=",Nonce:"&nonce=",Id:"&id=",CustomData:"&customData=",CurrentVisit:"¤tVisit=",MaxNumberPreviousVisits:"&maxNumberPreviousVisits=",Os:"&os=",OsIndex:"&osIndex=",Country:"&country=",City:"&city=",Region:"®ion=",Latitude:"&latitude=",Longitude:"&longitude=",PostalCode:"&postalCode=",Conversion:"&conversion=",StaticData:"&staticData=",Geolocation:"&geolocation=",Page:"&page=",Experiment:"&experiment=",Browser:"&browser=",Environment:"&environment=",MappingIdentifier:"&mappingIdentifier=",MappingValue:"&mappingValue="},UrlFirstParameter=exports.UrlFirstParameter={CustomData:"?customData=",StaticData:"?staticData=",Page:"?page=",Conversion:"?conversion=",Geolocation:"?geolocation=",Experiment:"?experiment=",ValuesCountMap:"?valuesCountMap=",Id:"?id=",Nonce:"?nonce=",Country:"?country=",Environment:"?environment=",City:"?city=",Region:"?region=",Latitude:"?latitude=",Longitude:"?longitude=",PostalCode:"?postalCode=",SdkName:"?sdkName=",SdkVersion:"?sdkVersion=",BrowserIndex:"?browserIndex=",BrowserVersion:"?browserVersion=",SiteCode:"?siteCode=",VisitorCode:"?visitorCode=",CurrentVisit:"?currentVisit=",MaxNumberPreviousVisits:"?maxNumberPreviousVisits=",Negative:"?negative=",Revenue:"?revenue=",Title:"?title=",Os:"?os=",OsIndex:"?osIndex=",Browser:"?browser=",ReferrersIndices:"?referrersIndices=",Overwrite:"?overwrite=",Index:"?index=",Href:"?href=",VariationId:"?variationId=",DeviceType:"?deviceType=",GoalId:"?goalId=",Ts:"?ts=",Key:"?key=",MappingIdentifier:"?mappingIdentifier=",MappingValue:"?mappingValue="},UrlQuery=exports.UrlQuery={Sse:"sse?siteCode=",Map:"map?siteCode=",Events:"events?siteCode=",Visitor:"visitor?siteCode="},UrlTracking=exports.UrlTracking={Visit:"visit/",Map:"map/"},DATA_API_DOMAIN=exports.DATA_API_DOMAIN="data.kameleoon",URL=exports.URL={SERVER_SENT_EVENTS:"https://events.kameleoon.com:8110/",CLIENT_CONFIGURATION:"https://sdk-config.kameleoon.eu/"};
|
|
1
|
+
"use strict";var _types=require("../types");Object.defineProperty(exports,"__esModule",{value:!0}),exports.UrlTracking=exports.UrlQuery=exports.UrlParameter=exports.UrlFirstParameter=exports.UrlEventType=exports.URL=exports.RETRIES_DELAY=exports.NUMBER_OF_RETRIES=exports.Header=exports.DEFAULT_REQUEST_TIMEOUT=exports.DATA_API_DOMAIN=void 0;const DEFAULT_REQUEST_TIMEOUT=exports.DEFAULT_REQUEST_TIMEOUT=10*_types.Milliseconds.Second,RETRIES_DELAY=exports.RETRIES_DELAY=5*_types.Milliseconds.Second,NUMBER_OF_RETRIES=exports.NUMBER_OF_RETRIES=3;let Header=exports.Header=function(a){return a.UserAgent="User-Agent",a.ContentType="Content-Type",a.SdkVersion="X-Kameleoon-SDK-Version",a.SdkType="X-Kameleoon-SDK-Type",a.Authorization="Authorization",a.AcceptEncoding="Accept-Encoding",a}({});const UrlEventType=exports.UrlEventType={CustomData:"eventType=customData",StaticData:"eventType=staticData",Page:"eventType=page",Conversion:"eventType=conversion",Activity:"eventType=activity",Experiment:"eventType=experiment",Geolocation:"eventType=geolocation"},UrlParameter=exports.UrlParameter={Title:"&title=",ReferrersIndices:"&referrersIndices=",Negative:"&negative=",Revenue:"&revenue=",Overwrite:"&overwrite=",Index:"&index=",BrowserIndex:"&browserIndex=",BrowserVersion:"&browserVersion=",Href:"&href=",DeviceType:"&deviceType=",SiteCode:"&siteCode=",GoalId:"&goalId=",VisitorCode:"&visitorCode=",VariationId:"&variationId=",Ts:"&ts=",Key:"&key=",SdkName:"&sdkName=",SdkVersion:"&sdkVersion=",ValuesCountMap:"&valuesCountMap=",Nonce:"&nonce=",Id:"&id=",CustomData:"&customData=",CurrentVisit:"¤tVisit=",MaxNumberPreviousVisits:"&maxNumberPreviousVisits=",Os:"&os=",OsIndex:"&osIndex=",Country:"&country=",City:"&city=",Region:"®ion=",Latitude:"&latitude=",Longitude:"&longitude=",PostalCode:"&postalCode=",Conversion:"&conversion=",StaticData:"&staticData=",Geolocation:"&geolocation=",Page:"&page=",Experiment:"&experiment=",Browser:"&browser=",Environment:"&environment=",MappingIdentifier:"&mappingIdentifier=",MappingValue:"&mappingValue=",Kcs:"&kcs="},UrlFirstParameter=exports.UrlFirstParameter={CustomData:"?customData=",StaticData:"?staticData=",Page:"?page=",Conversion:"?conversion=",Geolocation:"?geolocation=",Experiment:"?experiment=",ValuesCountMap:"?valuesCountMap=",Id:"?id=",Nonce:"?nonce=",Country:"?country=",Environment:"?environment=",City:"?city=",Region:"?region=",Latitude:"?latitude=",Longitude:"?longitude=",PostalCode:"?postalCode=",SdkName:"?sdkName=",SdkVersion:"?sdkVersion=",BrowserIndex:"?browserIndex=",BrowserVersion:"?browserVersion=",SiteCode:"?siteCode=",VisitorCode:"?visitorCode=",CurrentVisit:"?currentVisit=",MaxNumberPreviousVisits:"?maxNumberPreviousVisits=",Negative:"?negative=",Revenue:"?revenue=",Title:"?title=",Os:"?os=",OsIndex:"?osIndex=",Browser:"?browser=",ReferrersIndices:"?referrersIndices=",Overwrite:"?overwrite=",Index:"?index=",Href:"?href=",VariationId:"?variationId=",DeviceType:"?deviceType=",GoalId:"?goalId=",Ts:"?ts=",Key:"?key=",MappingIdentifier:"?mappingIdentifier=",MappingValue:"?mappingValue=",Kcs:"?kcs="},UrlQuery=exports.UrlQuery={Sse:"sse?siteCode=",Map:"map?siteCode=",Events:"events?siteCode=",Visitor:"visitor?siteCode="},UrlTracking=exports.UrlTracking={Visit:"visit/",Map:"map/"},DATA_API_DOMAIN=exports.DATA_API_DOMAIN="data.kameleoon",URL=exports.URL={SERVER_SENT_EVENTS:"https://events.kameleoon.com:8110/",CLIENT_CONFIGURATION:"https://sdk-config.kameleoon.eu/"};
|
|
2
2
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":["_types","require","Object","defineProperty","exports","value","UrlTracking","UrlQuery","UrlParameter","UrlFirstParameter","UrlEventType","URL","RETRIES_DELAY","NUMBER_OF_RETRIES","Header","DEFAULT_REQUEST_TIMEOUT","DATA_API_DOMAIN","Milliseconds","Second","UserAgent","ContentType","SdkVersion","SdkType","Authorization","AcceptEncoding","CustomData","StaticData","Page","Conversion","Activity","Experiment","Geolocation","Title","ReferrersIndices","Negative","Revenue","Overwrite","Index","BrowserIndex","BrowserVersion","Href","DeviceType","SiteCode","GoalId","VisitorCode","VariationId","Ts","Key","SdkName","ValuesCountMap","Nonce","Id","CurrentVisit","MaxNumberPreviousVisits","Os","OsIndex","Country","City","Region","Latitude","Longitude","PostalCode","Browser","Environment","MappingIdentifier","MappingValue","Sse","Map","Events","Visitor","Visit","SERVER_SENT_EVENTS","CLIENT_CONFIGURATION"],"sources":["../../src/requester/constants.ts"],"sourcesContent":["import { Milliseconds } from 'src/types';\nimport {\n EventType,\n ParameterType,\n QueryType,\n StrictEventTypeRecord,\n StrictFirstParameterRecord,\n StrictParameterRecord,\n StrictQueryRecord,\n StrictTrackingRecord,\n TrackingType,\n} from './types';\n\nexport const DEFAULT_REQUEST_TIMEOUT = 10 * Milliseconds.Second;\nexport const RETRIES_DELAY = 5 * Milliseconds.Second;\nexport const NUMBER_OF_RETRIES = 3;\n\nexport enum Header {\n UserAgent = 'User-Agent',\n ContentType = 'Content-Type',\n SdkVersion = 'X-Kameleoon-SDK-Version',\n SdkType = 'X-Kameleoon-SDK-Type',\n Authorization = 'Authorization',\n AcceptEncoding = 'Accept-Encoding',\n}\n\nexport const UrlEventType: StrictEventTypeRecord<EventType> = {\n CustomData: 'eventType=customData',\n StaticData: 'eventType=staticData',\n Page: 'eventType=page',\n Conversion: 'eventType=conversion',\n Activity: 'eventType=activity',\n Experiment: 'eventType=experiment',\n Geolocation: 'eventType=geolocation',\n};\nexport const UrlParameter: StrictParameterRecord<ParameterType> = {\n Title: '&title=',\n ReferrersIndices: '&referrersIndices=',\n Negative: '&negative=',\n Revenue: '&revenue=',\n Overwrite: '&overwrite=',\n Index: '&index=',\n BrowserIndex: '&browserIndex=',\n BrowserVersion: '&browserVersion=',\n Href: '&href=',\n DeviceType: '&deviceType=',\n SiteCode: '&siteCode=',\n GoalId: '&goalId=',\n VisitorCode: '&visitorCode=',\n VariationId: '&variationId=',\n Ts: '&ts=',\n Key: '&key=',\n SdkName: '&sdkName=',\n SdkVersion: '&sdkVersion=',\n ValuesCountMap: '&valuesCountMap=',\n Nonce: '&nonce=',\n Id: '&id=',\n CustomData: '&customData=',\n CurrentVisit: '¤tVisit=',\n MaxNumberPreviousVisits: '&maxNumberPreviousVisits=',\n Os: '&os=',\n OsIndex: '&osIndex=',\n Country: '&country=',\n City: '&city=',\n Region: '®ion=',\n Latitude: '&latitude=',\n Longitude: '&longitude=',\n PostalCode: '&postalCode=',\n Conversion: '&conversion=',\n StaticData: '&staticData=',\n Geolocation: '&geolocation=',\n Page: '&page=',\n Experiment: '&experiment=',\n Browser: '&browser=',\n Environment: '&environment=',\n MappingIdentifier: '&mappingIdentifier=',\n MappingValue: '&mappingValue=',\n};\nexport const UrlFirstParameter: StrictFirstParameterRecord<ParameterType> = {\n CustomData: '?customData=',\n StaticData: '?staticData=',\n Page: '?page=',\n Conversion: '?conversion=',\n Geolocation: '?geolocation=',\n Experiment: '?experiment=',\n ValuesCountMap: '?valuesCountMap=',\n Id: '?id=',\n Nonce: '?nonce=',\n Country: '?country=',\n Environment: '?environment=',\n City: '?city=',\n Region: '?region=',\n Latitude: '?latitude=',\n Longitude: '?longitude=',\n PostalCode: '?postalCode=',\n SdkName: '?sdkName=',\n SdkVersion: '?sdkVersion=',\n BrowserIndex: '?browserIndex=',\n BrowserVersion: '?browserVersion=',\n SiteCode: '?siteCode=',\n VisitorCode: '?visitorCode=',\n CurrentVisit: '?currentVisit=',\n MaxNumberPreviousVisits: '?maxNumberPreviousVisits=',\n Negative: '?negative=',\n Revenue: '?revenue=',\n Title: '?title=',\n Os: '?os=',\n OsIndex: '?osIndex=',\n Browser: '?browser=',\n ReferrersIndices: '?referrersIndices=',\n Overwrite: '?overwrite=',\n Index: '?index=',\n Href: '?href=',\n VariationId: '?variationId=',\n DeviceType: '?deviceType=',\n GoalId: '?goalId=',\n Ts: '?ts=',\n Key: '?key=',\n MappingIdentifier: '?mappingIdentifier=',\n MappingValue: '?mappingValue=',\n};\nexport const UrlQuery: StrictQueryRecord<QueryType> = {\n Sse: 'sse?siteCode=',\n Map: 'map?siteCode=',\n Events: 'events?siteCode=',\n Visitor: 'visitor?siteCode=',\n};\nexport const UrlTracking: StrictTrackingRecord<TrackingType> = {\n Visit: 'visit/',\n Map: 'map/',\n};\nexport const DATA_API_DOMAIN = 'data.kameleoon';\n\nexport const URL = {\n SERVER_SENT_EVENTS: 'https://events.kameleoon.com:8110/',\n CLIENT_CONFIGURATION: 'https://sdk-config.kameleoon.eu/',\n};\n"],"mappings":"aAAA,IAAAA,MAAA,CAAAC,OAAA,aAAyCC,MAAA,CAAAC,cAAA,CAAAC,OAAA,eAAAC,KAAA,MAAAD,OAAA,CAAAE,WAAA,CAAAF,OAAA,CAAAG,QAAA,CAAAH,OAAA,CAAAI,YAAA,CAAAJ,OAAA,CAAAK,iBAAA,CAAAL,OAAA,CAAAM,YAAA,CAAAN,OAAA,CAAAO,GAAA,CAAAP,OAAA,CAAAQ,aAAA,CAAAR,OAAA,CAAAS,iBAAA,CAAAT,OAAA,CAAAU,MAAA,CAAAV,OAAA,CAAAW,uBAAA,CAAAX,OAAA,CAAAY,eAAA,aAa5B,CAAAD,uBAAuB,CAAAX,OAAA,CAAAW,uBAAA,CAAG,EAAE,CAAGE,mBAAY,CAACC,MAAM,CAClDN,aAAa,CAAAR,OAAA,CAAAQ,aAAA,CAAG,CAAC,CAAGK,mBAAY,CAACC,MAAM,CACvCL,iBAAiB,CAAAT,OAAA,CAAAS,iBAAA,CAAG,CAAC,IAEtB,CAAAC,MAAM,CAAAV,OAAA,CAAAU,MAAA,UAANA,CAAM,QAAN,CAAAA,CAAM,CAAAK,SAAA,cAANL,CAAM,CAAAM,WAAA,gBAANN,CAAM,CAAAO,UAAA,2BAANP,CAAM,CAAAQ,OAAA,wBAANR,CAAM,CAAAS,aAAA,iBAANT,CAAM,CAAAU,cAAA,mBAANV,CAAM,WASL,CAAAJ,YAA8C,CAAAN,OAAA,CAAAM,YAAA,CAAG,CAC5De,UAAU,CAAE,sBAAsB,CAClCC,UAAU,CAAE,sBAAsB,CAClCC,IAAI,CAAE,gBAAgB,CACtBC,UAAU,CAAE,sBAAsB,CAClCC,QAAQ,CAAE,oBAAoB,CAC9BC,UAAU,CAAE,sBAAsB,CAClCC,WAAW,CAAE,uBACf,CAAC,CACYvB,YAAkD,CAAAJ,OAAA,CAAAI,YAAA,CAAG,CAChEwB,KAAK,CAAE,SAAS,CAChBC,gBAAgB,CAAE,oBAAoB,CACtCC,QAAQ,CAAE,YAAY,CACtBC,OAAO,CAAE,WAAW,CACpBC,SAAS,CAAE,aAAa,CACxBC,KAAK,CAAE,SAAS,CAChBC,YAAY,CAAE,gBAAgB,CAC9BC,cAAc,CAAE,kBAAkB,CAClCC,IAAI,CAAE,QAAQ,CACdC,UAAU,CAAE,cAAc,CAC1BC,QAAQ,CAAE,YAAY,CACtBC,MAAM,CAAE,UAAU,CAClBC,WAAW,CAAE,eAAe,CAC5BC,WAAW,CAAE,eAAe,CAC5BC,EAAE,CAAE,MAAM,CACVC,GAAG,CAAE,OAAO,CACZC,OAAO,CAAE,WAAW,CACpB3B,UAAU,CAAE,cAAc,CAC1B4B,cAAc,CAAE,kBAAkB,CAClCC,KAAK,CAAE,SAAS,CAChBC,EAAE,CAAE,MAAM,CACV1B,UAAU,CAAE,cAAc,CAC1B2B,YAAY,CAAE,gBAAgB,CAC9BC,uBAAuB,CAAE,2BAA2B,CACpDC,EAAE,CAAE,MAAM,CACVC,OAAO,CAAE,WAAW,CACpBC,OAAO,CAAE,WAAW,CACpBC,IAAI,CAAE,QAAQ,CACdC,MAAM,CAAE,UAAU,CAClBC,QAAQ,CAAE,YAAY,CACtBC,SAAS,CAAE,aAAa,CACxBC,UAAU,CAAE,cAAc,CAC1BjC,UAAU,CAAE,cAAc,CAC1BF,UAAU,CAAE,cAAc,CAC1BK,WAAW,CAAE,eAAe,CAC5BJ,IAAI,CAAE,QAAQ,CACdG,UAAU,CAAE,cAAc,CAC1BgC,OAAO,CAAE,WAAW,CACpBC,WAAW,CAAE,eAAe,CAC5BC,iBAAiB,CAAE,qBAAqB,CACxCC,YAAY,CAAE,
|
|
1
|
+
{"version":3,"file":"constants.js","names":["_types","require","Object","defineProperty","exports","value","UrlTracking","UrlQuery","UrlParameter","UrlFirstParameter","UrlEventType","URL","RETRIES_DELAY","NUMBER_OF_RETRIES","Header","DEFAULT_REQUEST_TIMEOUT","DATA_API_DOMAIN","Milliseconds","Second","UserAgent","ContentType","SdkVersion","SdkType","Authorization","AcceptEncoding","CustomData","StaticData","Page","Conversion","Activity","Experiment","Geolocation","Title","ReferrersIndices","Negative","Revenue","Overwrite","Index","BrowserIndex","BrowserVersion","Href","DeviceType","SiteCode","GoalId","VisitorCode","VariationId","Ts","Key","SdkName","ValuesCountMap","Nonce","Id","CurrentVisit","MaxNumberPreviousVisits","Os","OsIndex","Country","City","Region","Latitude","Longitude","PostalCode","Browser","Environment","MappingIdentifier","MappingValue","Kcs","Sse","Map","Events","Visitor","Visit","SERVER_SENT_EVENTS","CLIENT_CONFIGURATION"],"sources":["../../src/requester/constants.ts"],"sourcesContent":["import { Milliseconds } from 'src/types';\nimport {\n EventType,\n ParameterType,\n QueryType,\n StrictEventTypeRecord,\n StrictFirstParameterRecord,\n StrictParameterRecord,\n StrictQueryRecord,\n StrictTrackingRecord,\n TrackingType,\n} from './types';\n\nexport const DEFAULT_REQUEST_TIMEOUT = 10 * Milliseconds.Second;\nexport const RETRIES_DELAY = 5 * Milliseconds.Second;\nexport const NUMBER_OF_RETRIES = 3;\n\nexport enum Header {\n UserAgent = 'User-Agent',\n ContentType = 'Content-Type',\n SdkVersion = 'X-Kameleoon-SDK-Version',\n SdkType = 'X-Kameleoon-SDK-Type',\n Authorization = 'Authorization',\n AcceptEncoding = 'Accept-Encoding',\n}\n\nexport const UrlEventType: StrictEventTypeRecord<EventType> = {\n CustomData: 'eventType=customData',\n StaticData: 'eventType=staticData',\n Page: 'eventType=page',\n Conversion: 'eventType=conversion',\n Activity: 'eventType=activity',\n Experiment: 'eventType=experiment',\n Geolocation: 'eventType=geolocation',\n};\nexport const UrlParameter: StrictParameterRecord<ParameterType> = {\n Title: '&title=',\n ReferrersIndices: '&referrersIndices=',\n Negative: '&negative=',\n Revenue: '&revenue=',\n Overwrite: '&overwrite=',\n Index: '&index=',\n BrowserIndex: '&browserIndex=',\n BrowserVersion: '&browserVersion=',\n Href: '&href=',\n DeviceType: '&deviceType=',\n SiteCode: '&siteCode=',\n GoalId: '&goalId=',\n VisitorCode: '&visitorCode=',\n VariationId: '&variationId=',\n Ts: '&ts=',\n Key: '&key=',\n SdkName: '&sdkName=',\n SdkVersion: '&sdkVersion=',\n ValuesCountMap: '&valuesCountMap=',\n Nonce: '&nonce=',\n Id: '&id=',\n CustomData: '&customData=',\n CurrentVisit: '¤tVisit=',\n MaxNumberPreviousVisits: '&maxNumberPreviousVisits=',\n Os: '&os=',\n OsIndex: '&osIndex=',\n Country: '&country=',\n City: '&city=',\n Region: '®ion=',\n Latitude: '&latitude=',\n Longitude: '&longitude=',\n PostalCode: '&postalCode=',\n Conversion: '&conversion=',\n StaticData: '&staticData=',\n Geolocation: '&geolocation=',\n Page: '&page=',\n Experiment: '&experiment=',\n Browser: '&browser=',\n Environment: '&environment=',\n MappingIdentifier: '&mappingIdentifier=',\n MappingValue: '&mappingValue=',\n Kcs: '&kcs=',\n};\nexport const UrlFirstParameter: StrictFirstParameterRecord<ParameterType> = {\n CustomData: '?customData=',\n StaticData: '?staticData=',\n Page: '?page=',\n Conversion: '?conversion=',\n Geolocation: '?geolocation=',\n Experiment: '?experiment=',\n ValuesCountMap: '?valuesCountMap=',\n Id: '?id=',\n Nonce: '?nonce=',\n Country: '?country=',\n Environment: '?environment=',\n City: '?city=',\n Region: '?region=',\n Latitude: '?latitude=',\n Longitude: '?longitude=',\n PostalCode: '?postalCode=',\n SdkName: '?sdkName=',\n SdkVersion: '?sdkVersion=',\n BrowserIndex: '?browserIndex=',\n BrowserVersion: '?browserVersion=',\n SiteCode: '?siteCode=',\n VisitorCode: '?visitorCode=',\n CurrentVisit: '?currentVisit=',\n MaxNumberPreviousVisits: '?maxNumberPreviousVisits=',\n Negative: '?negative=',\n Revenue: '?revenue=',\n Title: '?title=',\n Os: '?os=',\n OsIndex: '?osIndex=',\n Browser: '?browser=',\n ReferrersIndices: '?referrersIndices=',\n Overwrite: '?overwrite=',\n Index: '?index=',\n Href: '?href=',\n VariationId: '?variationId=',\n DeviceType: '?deviceType=',\n GoalId: '?goalId=',\n Ts: '?ts=',\n Key: '?key=',\n MappingIdentifier: '?mappingIdentifier=',\n MappingValue: '?mappingValue=',\n Kcs: '?kcs=',\n};\nexport const UrlQuery: StrictQueryRecord<QueryType> = {\n Sse: 'sse?siteCode=',\n Map: 'map?siteCode=',\n Events: 'events?siteCode=',\n Visitor: 'visitor?siteCode=',\n};\nexport const UrlTracking: StrictTrackingRecord<TrackingType> = {\n Visit: 'visit/',\n Map: 'map/',\n};\nexport const DATA_API_DOMAIN = 'data.kameleoon';\n\nexport const URL = {\n SERVER_SENT_EVENTS: 'https://events.kameleoon.com:8110/',\n CLIENT_CONFIGURATION: 'https://sdk-config.kameleoon.eu/',\n};\n"],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { Result } from 'ts-res';
|
|
2
2
|
import { KameleoonError } from '../kameleoonError';
|
|
3
3
|
import { ConfigurationDataType, JSONType } from '../clientConfiguration';
|
|
4
|
-
import {
|
|
5
|
-
import { RequesterParamsType, TrackDataParamsType, GetVisitorDataResultType, TrackExperimentParamsType } from './types';
|
|
4
|
+
import { RequesterParamsType, TrackDataParamsType, GetVisitorDataResultType, TrackExperimentParamsType, GetVisitorDataParamsType } from './types';
|
|
6
5
|
export interface IRequester {
|
|
7
6
|
getClientConfiguration: () => Promise<Result<ConfigurationDataType, KameleoonError>>;
|
|
8
7
|
getRemoteData: (key: string) => Promise<Result<JSONType, KameleoonError>>;
|
|
@@ -15,7 +14,7 @@ export declare class Requester implements IRequester {
|
|
|
15
14
|
constructor({ siteCode, environment, packageInfo, requestDispatcher, }: RequesterParamsType);
|
|
16
15
|
getClientConfiguration(timeStamp?: number): Promise<Result<ConfigurationDataType, KameleoonError>>;
|
|
17
16
|
getRemoteData(key: string): Promise<Result<JSONType, KameleoonError>>;
|
|
18
|
-
getVisitorData(visitorCode
|
|
17
|
+
getVisitorData({ visitorCode, filters, isMappingIdentifier, }: GetVisitorDataParamsType): Promise<Result<GetVisitorDataResultType, KameleoonError>>;
|
|
19
18
|
trackExperiment({ visitorCode, dataUrl, variationDataUrl, userAgent, isUnallocated, }: TrackExperimentParamsType): Promise<Result<boolean, void>>;
|
|
20
19
|
trackData({ visitorCode, body, userAgent, isMappingIdentifier, }: TrackDataParamsType): Promise<Result<boolean, void>>;
|
|
21
20
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Requester=void 0;var _tsRes=require("ts-res"),_kameleoonError=require("../kameleoonError"),_utilities=require("../utilities"),_constants=require("./constants"),_urlProvider=require("./urlProvider");function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class Requester{constructor(a){let{siteCode:b,environment:c,packageInfo:d,requestDispatcher:e}=a;_defineProperty(this,"requestDispatcher",void 0),_defineProperty(this,"packageInfo",void 0),this.requestDispatcher=e,this.packageInfo=d,_urlProvider.UrlProvider.initialize({siteCode:b,packageInfo:d,environment:c})}async getClientConfiguration(a){const b=_urlProvider.UrlProvider.getClientConfigurationUrl(a),c={[_constants.Header.SdkType]:this.packageInfo.type.toLowerCase(),[_constants.Header.SdkVersion]:this.packageInfo.version};try{const a=await this.requestDispatcher.getClientConfiguration(b,c);return a?(0,_tsRes.Ok)(a):(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.MaximumRetriesReached))}catch(a){return(0,_tsRes.Err)(a)}}async getRemoteData(a){const b=_urlProvider.UrlProvider.getRemoteDataUrl(a);try{const a=await this.requestDispatcher.getRemoteData(b);return(0,_tsRes.Ok)(a)}catch(a){return(0,_tsRes.Err)(a)}}async getVisitorData(a
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Requester=void 0;var _tsRes=require("ts-res"),_kameleoonError=require("../kameleoonError"),_utilities=require("../utilities"),_constants=require("./constants"),_urlProvider=require("./urlProvider");function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class Requester{constructor(a){let{siteCode:b,environment:c,packageInfo:d,requestDispatcher:e}=a;_defineProperty(this,"requestDispatcher",void 0),_defineProperty(this,"packageInfo",void 0),this.requestDispatcher=e,this.packageInfo=d,_urlProvider.UrlProvider.initialize({siteCode:b,packageInfo:d,environment:c})}async getClientConfiguration(a){const b=_urlProvider.UrlProvider.getClientConfigurationUrl(a),c={[_constants.Header.SdkType]:this.packageInfo.type.toLowerCase(),[_constants.Header.SdkVersion]:this.packageInfo.version};try{const a=await this.requestDispatcher.getClientConfiguration(b,c);return a?(0,_tsRes.Ok)(a):(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.MaximumRetriesReached))}catch(a){return(0,_tsRes.Err)(a)}}async getRemoteData(a){const b=_urlProvider.UrlProvider.getRemoteDataUrl(a);try{const a=await this.requestDispatcher.getRemoteData(b);return(0,_tsRes.Ok)(a)}catch(a){return(0,_tsRes.Err)(a)}}async getVisitorData(a){let{visitorCode:b,filters:c,isMappingIdentifier:d}=a;const e=_urlProvider.UrlProvider.getVisitorDataUrl({visitorCode:b,filters:c,isMappingIdentifier:d});try{const a=await this.requestDispatcher.getRemoteData(e);return(0,_tsRes.Ok)(a)}catch(a){return(0,_tsRes.Err)(a)}}async trackExperiment(a){let{visitorCode:b,dataUrl:c,variationDataUrl:d,userAgent:e,isUnallocated:f}=a;const g=_urlProvider.UrlProvider.getTrackingUrl(b),h=c?"":_constants.UrlEventType.Activity+_constants.UrlParameter.Nonce+_utilities.Utilities.getNonce(),i=f?h:d,j=i?c+"\n"+i:c,k=e?{[_constants.Header.UserAgent]:e}:void 0;try{const a=await this.requestDispatcher.track({url:g,headers:k,body:j});return(0,_tsRes.Ok)(a)}catch(_){return(0,_tsRes.Err)()}}async trackData(a){let{visitorCode:b,body:c,userAgent:d,isMappingIdentifier:e}=a;const f=_urlProvider.UrlProvider.getTrackingUrl(b,e),g=c||_constants.UrlEventType.Activity+_constants.UrlParameter.Nonce+_utilities.Utilities.getNonce(),h=d?{[_constants.Header.UserAgent]:d}:void 0;try{const a=await this.requestDispatcher.track({url:f,headers:h,body:g});return(0,_tsRes.Ok)(a)}catch(_){return(0,_tsRes.Err)()}}}exports.Requester=Requester;
|
|
2
2
|
//# sourceMappingURL=requester.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requester.js","names":["Requester","constructor","a","siteCode","environment","packageInfo","requestDispatcher","_defineProperty","UrlProvider","initialize","getClientConfiguration","timeStamp","requestUrl","getClientConfigurationUrl","headers","Header","SdkType","type","toLowerCase","SdkVersion","version","response","Ok","Err","KameleoonError","KameleoonException","MaximumRetriesReached","error","getRemoteData","key","getRemoteDataUrl","getVisitorData","visitorCode","filters","getVisitorDataUrl","trackExperiment","dataUrl","variationDataUrl","userAgent","isUnallocated","url","getTrackingUrl","unallocatedAddition","UrlEventType","Activity","UrlParameter","Nonce","Utilities","getNonce","bodyAddition","extendedBody","UserAgent","track","body","_","trackData","
|
|
1
|
+
{"version":3,"file":"requester.js","names":["Requester","constructor","a","siteCode","environment","packageInfo","requestDispatcher","_defineProperty","UrlProvider","initialize","getClientConfiguration","timeStamp","requestUrl","getClientConfigurationUrl","headers","Header","SdkType","type","toLowerCase","SdkVersion","version","response","Ok","Err","KameleoonError","KameleoonException","MaximumRetriesReached","error","getRemoteData","key","getRemoteDataUrl","getVisitorData","visitorCode","filters","isMappingIdentifier","getVisitorDataUrl","trackExperiment","dataUrl","variationDataUrl","userAgent","isUnallocated","url","getTrackingUrl","unallocatedAddition","UrlEventType","Activity","UrlParameter","Nonce","Utilities","getNonce","bodyAddition","extendedBody","UserAgent","track","body","_","trackData","requestBody","exports"],"sources":["../../src/requester/requester.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport { ExternalPackageInfoType } from 'src/types';\nimport { KameleoonError, KameleoonException } from 'src/kameleoonError';\nimport { ConfigurationDataType, JSONType } from 'src/clientConfiguration';\nimport { Utilities } from 'src/utilities';\nimport { UrlParameter, Header, UrlEventType } from './constants';\nimport {\n RequesterParamsType,\n TrackDataParamsType,\n IExternalRequestDispatcher,\n GetVisitorDataResultType,\n TrackExperimentParamsType,\n HeadersType,\n GetVisitorDataParamsType,\n} from './types';\nimport { UrlProvider } from './urlProvider';\n\nexport interface IRequester {\n getClientConfiguration: () => Promise<\n Result<ConfigurationDataType, KameleoonError>\n >;\n getRemoteData: (key: string) => Promise<Result<JSONType, KameleoonError>>;\n trackData: ({\n visitorCode,\n body,\n userAgent,\n }: TrackDataParamsType) => Promise<Result<boolean, void>>;\n trackExperiment: ({\n visitorCode,\n dataUrl,\n variationDataUrl,\n isUnallocated,\n isTargetedRule,\n userAgent,\n }: TrackExperimentParamsType) => Promise<Result<boolean, void>>;\n}\n\nexport class Requester implements IRequester {\n private requestDispatcher: IExternalRequestDispatcher;\n private packageInfo: ExternalPackageInfoType;\n\n constructor({\n siteCode,\n environment,\n packageInfo,\n requestDispatcher,\n }: RequesterParamsType) {\n this.requestDispatcher = requestDispatcher;\n this.packageInfo = packageInfo;\n\n UrlProvider.initialize({ siteCode, packageInfo, environment });\n }\n\n public async getClientConfiguration(\n timeStamp?: number,\n ): Promise<Result<ConfigurationDataType, KameleoonError>> {\n const requestUrl = UrlProvider.getClientConfigurationUrl(timeStamp);\n\n const headers: HeadersType = {\n [Header.SdkType]: this.packageInfo.type.toLowerCase(),\n [Header.SdkVersion]: this.packageInfo.version,\n };\n\n try {\n const response = await this.requestDispatcher.getClientConfiguration(\n requestUrl,\n headers,\n );\n\n if (response) {\n return Ok(response as ConfigurationDataType);\n }\n\n return Err(new KameleoonError(KameleoonException.MaximumRetriesReached));\n } catch (error) {\n return Err(error as KameleoonError);\n }\n }\n\n public async getRemoteData(\n key: string,\n ): Promise<Result<JSONType, KameleoonError>> {\n const requestUrl = UrlProvider.getRemoteDataUrl(key);\n\n try {\n const response = await this.requestDispatcher.getRemoteData(requestUrl);\n return Ok(response);\n } catch (error) {\n return Err(error as KameleoonError);\n }\n }\n\n public async getVisitorData({\n visitorCode,\n filters,\n isMappingIdentifier,\n }: GetVisitorDataParamsType): Promise<\n Result<GetVisitorDataResultType, KameleoonError>\n > {\n const requestUrl = UrlProvider.getVisitorDataUrl({\n visitorCode,\n filters,\n isMappingIdentifier,\n });\n\n try {\n const response = await this.requestDispatcher.getRemoteData(requestUrl);\n return Ok(response as GetVisitorDataResultType);\n } catch (error) {\n return Err(error as KameleoonError);\n }\n }\n\n public async trackExperiment({\n visitorCode,\n dataUrl,\n variationDataUrl,\n userAgent,\n isUnallocated,\n }: TrackExperimentParamsType): Promise<Result<boolean, void>> {\n const url = UrlProvider.getTrackingUrl(visitorCode);\n\n const unallocatedAddition = !dataUrl\n ? UrlEventType.Activity + UrlParameter.Nonce + Utilities.getNonce()\n : '';\n\n const bodyAddition = isUnallocated ? unallocatedAddition : variationDataUrl;\n\n const extendedBody = bodyAddition ? dataUrl + '\\n' + bodyAddition : dataUrl;\n\n const headers: HeadersType | undefined = userAgent\n ? {\n [Header.UserAgent]: userAgent,\n }\n : undefined;\n\n try {\n const response = await this.requestDispatcher.track({\n url,\n headers,\n body: extendedBody,\n });\n\n return Ok(response);\n } catch (_) {\n return Err();\n }\n }\n\n public async trackData({\n visitorCode,\n body,\n userAgent,\n isMappingIdentifier,\n }: TrackDataParamsType): Promise<Result<boolean, void>> {\n const url = UrlProvider.getTrackingUrl(visitorCode, isMappingIdentifier);\n\n const requestBody =\n body || UrlEventType.Activity + UrlParameter.Nonce + Utilities.getNonce();\n\n const headers = userAgent\n ? {\n [Header.UserAgent]: userAgent,\n }\n : undefined;\n\n try {\n const response = await this.requestDispatcher.track({\n url,\n headers,\n body: requestBody,\n });\n\n return Ok(response);\n } catch (_) {\n return Err();\n }\n }\n}\n"],"mappings":"qxBAqCO,KAAM,CAAAA,SAAgC,CAI3CC,WAAWA,CAAAC,CAAA,CAKa,IALZ,CACVC,QAAQ,CAARA,CAAQ,CACRC,WAAW,CAAXA,CAAW,CACXC,WAAW,CAAXA,CAAW,CACXC,iBAAiB,CAAjBA,CACmB,CAAC,CAAAJ,CAAA,CAAAK,eAAA,kCAAAA,eAAA,4BACpB,IAAI,CAACD,iBAAiB,CAAGA,CAAiB,CAC1C,IAAI,CAACD,WAAW,CAAGA,CAAW,CAE9BG,wBAAW,CAACC,UAAU,CAAC,CAAEN,QAAQ,CAARA,CAAQ,CAAEE,WAAW,CAAXA,CAAW,CAAED,WAAW,CAAXA,CAAY,CAAC,CAC/D,CAEA,KAAa,CAAAM,sBAAsBA,CACjCC,CAAkB,CACsC,MAClD,CAAAC,CAAU,CAAGJ,wBAAW,CAACK,yBAAyB,CAACF,CAAS,CAAC,CAE7DG,CAAoB,CAAG,CAC3B,CAACC,iBAAM,CAACC,OAAO,EAAG,IAAI,CAACX,WAAW,CAACY,IAAI,CAACC,WAAW,CAAC,CAAC,CACrD,CAACH,iBAAM,CAACI,UAAU,EAAG,IAAI,CAACd,WAAW,CAACe,OACxC,CAAC,CAED,GAAI,CACF,KAAM,CAAAC,CAAQ,CAAG,KAAM,KAAI,CAACf,iBAAiB,CAACI,sBAAsB,CAClEE,CAAU,CACVE,CACF,CAAC,CAAC,MAEE,CAAAO,CAAQ,CACH,GAAAC,SAAE,EAACD,CAAiC,CAAC,CAGvC,GAAAE,UAAG,EAAC,GAAI,CAAAC,8BAAc,CAACC,kCAAkB,CAACC,qBAAqB,CAAC,CACzE,CAAE,MAAOC,CAAK,CAAE,CACd,MAAO,GAAAJ,UAAG,EAACI,CAAuB,CACpC,CACF,CAEA,KAAa,CAAAC,aAAaA,CACxBC,CAAW,CACgC,CAC3C,KAAM,CAAAjB,CAAU,CAAGJ,wBAAW,CAACsB,gBAAgB,CAACD,CAAG,CAAC,CAEpD,GAAI,CACF,KAAM,CAAAR,CAAQ,CAAG,KAAM,KAAI,CAACf,iBAAiB,CAACsB,aAAa,CAAChB,CAAU,CAAC,CACvE,MAAO,GAAAU,SAAE,EAACD,CAAQ,CACpB,CAAE,MAAOM,CAAK,CAAE,CACd,MAAO,GAAAJ,UAAG,EAACI,CAAuB,CACpC,CACF,CAEA,KAAa,CAAAI,cAAcA,CAAA7B,CAAA,CAMzB,IAN0B,CAC1B8B,WAAW,CAAXA,CAAW,CACXC,OAAO,CAAPA,CAAO,CACPC,mBAAmB,CAAnBA,CACwB,CAAC,CAAAhC,CAAA,CAGzB,KAAM,CAAAU,CAAU,CAAGJ,wBAAW,CAAC2B,iBAAiB,CAAC,CAC/CH,WAAW,CAAXA,CAAW,CACXC,OAAO,CAAPA,CAAO,CACPC,mBAAmB,CAAnBA,CACF,CAAC,CAAC,CAEF,GAAI,CACF,KAAM,CAAAb,CAAQ,CAAG,KAAM,KAAI,CAACf,iBAAiB,CAACsB,aAAa,CAAChB,CAAU,CAAC,CACvE,MAAO,GAAAU,SAAE,EAACD,CAAoC,CAChD,CAAE,MAAOM,CAAK,CAAE,CACd,MAAO,GAAAJ,UAAG,EAACI,CAAuB,CACpC,CACF,CAEA,KAAa,CAAAS,eAAeA,CAAAlC,CAAA,CAMkC,IANjC,CAC3B8B,WAAW,CAAXA,CAAW,CACXK,OAAO,CAAPA,CAAO,CACPC,gBAAgB,CAAhBA,CAAgB,CAChBC,SAAS,CAATA,CAAS,CACTC,aAAa,CAAbA,CACyB,CAAC,CAAAtC,CAAA,MACpB,CAAAuC,CAAG,CAAGjC,wBAAW,CAACkC,cAAc,CAACV,CAAW,CAAC,CAE7CW,CAAmB,CAAIN,CAAO,CAEhC,EAAE,CADFO,uBAAY,CAACC,QAAQ,CAAGC,uBAAY,CAACC,KAAK,CAAGC,oBAAS,CAACC,QAAQ,CAAC,CAC9D,CAEAC,CAAY,CAAGV,CAAa,CAAGG,CAAmB,CAAGL,CAAgB,CAErEa,CAAY,CAAGD,CAAY,CAAGb,CAAO,CAAG,IAAI,CAAGa,CAAY,CAAGb,CAAO,CAErEvB,CAAgC,CAAGyB,CAAS,CAC9C,CACE,CAACxB,iBAAM,CAACqC,SAAS,EAAGb,CACtB,CAAC,OACQ,CAEb,GAAI,CACF,KAAM,CAAAlB,CAAQ,CAAG,KAAM,KAAI,CAACf,iBAAiB,CAAC+C,KAAK,CAAC,CAClDZ,GAAG,CAAHA,CAAG,CACH3B,OAAO,CAAPA,CAAO,CACPwC,IAAI,CAAEH,CACR,CAAC,CAAC,CAEF,MAAO,GAAA7B,SAAE,EAACD,CAAQ,CACpB,CAAE,MAAOkC,CAAC,CAAE,CACV,MAAO,GAAAhC,UAAG,EAAC,CACb,CACF,CAEA,KAAa,CAAAiC,SAASA,CAAAtD,CAAA,CAKkC,IALjC,CACrB8B,WAAW,CAAXA,CAAW,CACXsB,IAAI,CAAJA,CAAI,CACJf,SAAS,CAATA,CAAS,CACTL,mBAAmB,CAAnBA,CACmB,CAAC,CAAAhC,CAAA,MACd,CAAAuC,CAAG,CAAGjC,wBAAW,CAACkC,cAAc,CAACV,CAAW,CAAEE,CAAmB,CAAC,CAElEuB,CAAW,CACfH,CAAI,EAAIV,uBAAY,CAACC,QAAQ,CAAGC,uBAAY,CAACC,KAAK,CAAGC,oBAAS,CAACC,QAAQ,CAAC,CAAC,CAErEnC,CAAO,CAAGyB,CAAS,CACrB,CACE,CAACxB,iBAAM,CAACqC,SAAS,EAAGb,CACtB,CAAC,OACQ,CAEb,GAAI,CACF,KAAM,CAAAlB,CAAQ,CAAG,KAAM,KAAI,CAACf,iBAAiB,CAAC+C,KAAK,CAAC,CAClDZ,GAAG,CAAHA,CAAG,CACH3B,OAAO,CAAPA,CAAO,CACPwC,IAAI,CAAEG,CACR,CAAC,CAAC,CAEF,MAAO,GAAAnC,SAAE,EAACD,CAAQ,CACpB,CAAE,MAAOkC,CAAC,CAAE,CACV,MAAO,GAAAhC,UAAG,EAAC,CACb,CACF,CACF,CAACmC,OAAA,CAAA1D,SAAA,CAAAA,SAAA"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { JSONType } from '../clientConfiguration';
|
|
2
2
|
import { Environment, ExternalPackageInfoType } from '../types';
|
|
3
3
|
import { BrowserIndexMap, BrowserType, OperatingSystemType } from '../kameleoonData';
|
|
4
|
-
import { DeviceType, OperatingSystemIndexMap } from '../kameleoonData/types';
|
|
4
|
+
import { DeviceType, KCSType, OperatingSystemIndexMap } from '../kameleoonData/types';
|
|
5
5
|
import { Header } from './constants';
|
|
6
|
+
import { VisitorDataFiltersType } from '../utilities';
|
|
6
7
|
export type UrlProviderInitializeParamsType = {
|
|
7
8
|
siteCode: string;
|
|
8
9
|
packageInfo: ExternalPackageInfoType;
|
|
@@ -28,6 +29,16 @@ export type TrackDataParamsType = {
|
|
|
28
29
|
userAgent?: string;
|
|
29
30
|
isMappingIdentifier?: boolean;
|
|
30
31
|
};
|
|
32
|
+
export type GetVisitorDataParamsType = {
|
|
33
|
+
visitorCode: string;
|
|
34
|
+
filters: VisitorDataFiltersType;
|
|
35
|
+
isMappingIdentifier?: boolean;
|
|
36
|
+
};
|
|
37
|
+
export type GetVisitorDataUrlParamsType = {
|
|
38
|
+
visitorCode: string;
|
|
39
|
+
filters: VisitorDataFiltersType;
|
|
40
|
+
isMappingIdentifier?: boolean;
|
|
41
|
+
};
|
|
31
42
|
type EventDataType = {
|
|
32
43
|
sdk?: {
|
|
33
44
|
name: string;
|
|
@@ -115,6 +126,7 @@ export type VisitType = {
|
|
|
115
126
|
export type GetVisitorDataResultType = {
|
|
116
127
|
previousVisits?: VisitType[];
|
|
117
128
|
currentVisit?: VisitType;
|
|
129
|
+
kcs?: KCSType;
|
|
118
130
|
};
|
|
119
131
|
export declare enum HttpMethod {
|
|
120
132
|
Get = "GET",
|
|
@@ -126,7 +138,7 @@ export declare enum DataApiQuery {
|
|
|
126
138
|
DataMap = 2
|
|
127
139
|
}
|
|
128
140
|
declare const EVENT_TYPE_KEYS: readonly ["customData", "staticData", "page", "conversion", "geolocation", "activity", "experiment"];
|
|
129
|
-
declare const PARAMETER_KEYS: readonly ["valuesCountMap", "mappingValue", "id", "nonce", "country", "environment", "city", "region", "latitude", "geolocation", "longitude", "mappingIdentifier", "postalCode", "sdkName", "sdkVersion", "browserIndex", "browserVersion", "siteCode", "visitorCode", "currentVisit", "maxNumberPreviousVisits", "customData", "negative", "revenue", "title", "os", "conversion", "staticData", "osIndex", "browser", "referrersIndices", "overwrite", "index", "href", "experiment", "page", "variationId", "deviceType", "goalId", "ts", "key"];
|
|
141
|
+
declare const PARAMETER_KEYS: readonly ["valuesCountMap", "mappingValue", "id", "nonce", "country", "environment", "city", "region", "latitude", "geolocation", "longitude", "mappingIdentifier", "postalCode", "sdkName", "sdkVersion", "kcs", "browserIndex", "browserVersion", "siteCode", "visitorCode", "currentVisit", "maxNumberPreviousVisits", "customData", "negative", "revenue", "title", "os", "conversion", "staticData", "osIndex", "browser", "referrersIndices", "overwrite", "index", "href", "experiment", "page", "variationId", "deviceType", "goalId", "ts", "key"];
|
|
130
142
|
declare const TRACKING_KEYS: readonly ["visit", "map"];
|
|
131
143
|
declare const QUERY_KEYS: readonly ["sse", "visitor", "map", "events"];
|
|
132
144
|
export type TrackingType = Record<Capitalize<(typeof TRACKING_KEYS)[number]>, string>;
|
|
@@ -149,7 +161,7 @@ export type StrictFirstParameterRecord<T> = {
|
|
|
149
161
|
[K in keyof T]: `?${Uncapitalize<K & string>}=`;
|
|
150
162
|
};
|
|
151
163
|
/**
|
|
152
|
-
* @type HeadersType - a type of headers available in the request
|
|
164
|
+
* @type `HeadersType` - a type of headers available in the request
|
|
153
165
|
* */
|
|
154
166
|
export type HeadersType = Partial<Record<Header, string>>;
|
|
155
167
|
export type TrackParametersType = {
|
package/dist/requester/types.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.HttpMethod=exports.DataApiQuery=void 0;let HttpMethod=exports.HttpMethod=function(a){return a.Get="GET",a.Post="POST",a}({}),DataApiQuery=exports.DataApiQuery=function(a){return a[a.VisitEvent=0]="VisitEvent",a[a.VisitData=1]="VisitData",a[a.DataMap=2]="DataMap",a}({});const EVENT_TYPE_KEYS=["customData","staticData","page","conversion","geolocation","activity","experiment"],PARAMETER_KEYS=["valuesCountMap","mappingValue","id","nonce","country","environment","city","region","latitude","geolocation","longitude","mappingIdentifier","postalCode","sdkName","sdkVersion","browserIndex","browserVersion","siteCode","visitorCode","currentVisit","maxNumberPreviousVisits","customData","negative","revenue","title","os","conversion","staticData","osIndex","browser","referrersIndices","overwrite","index","href","experiment","page","variationId","deviceType","goalId","ts","key"],TRACKING_KEYS=["visit","map"],QUERY_KEYS=["sse","visitor","map","events"];
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.HttpMethod=exports.DataApiQuery=void 0;let HttpMethod=exports.HttpMethod=function(a){return a.Get="GET",a.Post="POST",a}({}),DataApiQuery=exports.DataApiQuery=function(a){return a[a.VisitEvent=0]="VisitEvent",a[a.VisitData=1]="VisitData",a[a.DataMap=2]="DataMap",a}({});const EVENT_TYPE_KEYS=["customData","staticData","page","conversion","geolocation","activity","experiment"],PARAMETER_KEYS=["valuesCountMap","mappingValue","id","nonce","country","environment","city","region","latitude","geolocation","longitude","mappingIdentifier","postalCode","sdkName","sdkVersion","kcs","browserIndex","browserVersion","siteCode","visitorCode","currentVisit","maxNumberPreviousVisits","customData","negative","revenue","title","os","conversion","staticData","osIndex","browser","referrersIndices","overwrite","index","href","experiment","page","variationId","deviceType","goalId","ts","key"],TRACKING_KEYS=["visit","map"],QUERY_KEYS=["sse","visitor","map","events"];
|
|
2
2
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":["HttpMethod","exports","Get","Post","DataApiQuery","VisitEvent","VisitData","DataMap","EVENT_TYPE_KEYS","PARAMETER_KEYS","TRACKING_KEYS","QUERY_KEYS"],"sources":["../../src/requester/types.ts"],"sourcesContent":["import { JSONType } from 'src/clientConfiguration';\nimport { Environment, ExternalPackageInfoType } from 'src/types';\nimport {\n BrowserIndexMap,\n BrowserType,\n OperatingSystemType,\n} from 'src/kameleoonData';\nimport {
|
|
1
|
+
{"version":3,"file":"types.js","names":["HttpMethod","exports","Get","Post","DataApiQuery","VisitEvent","VisitData","DataMap","EVENT_TYPE_KEYS","PARAMETER_KEYS","TRACKING_KEYS","QUERY_KEYS"],"sources":["../../src/requester/types.ts"],"sourcesContent":["import { JSONType } from 'src/clientConfiguration';\nimport { Environment, ExternalPackageInfoType } from 'src/types';\nimport {\n BrowserIndexMap,\n BrowserType,\n OperatingSystemType,\n} from 'src/kameleoonData';\nimport {\n DeviceType,\n KCSType,\n OperatingSystemIndexMap,\n} from 'src/kameleoonData/types';\nimport { Header } from './constants';\nimport { VisitorDataFiltersType } from 'src/utilities';\n\nexport type UrlProviderInitializeParamsType = {\n siteCode: string;\n packageInfo: ExternalPackageInfoType;\n environment?: Environment;\n};\n\nexport type RequesterParamsType = {\n siteCode: string;\n environment?: Environment;\n packageInfo: ExternalPackageInfoType;\n requestDispatcher: IExternalRequestDispatcher;\n};\n\nexport type TrackExperimentParamsType = {\n dataUrl: string;\n variationDataUrl: string;\n visitorCode: string;\n isUnallocated: boolean;\n userAgent?: string;\n isTargetedRule?: boolean;\n};\n\nexport type TrackDataParamsType = {\n visitorCode: string;\n body: string;\n userAgent?: string;\n isMappingIdentifier?: boolean;\n};\n\nexport type GetVisitorDataParamsType = {\n visitorCode: string;\n filters: VisitorDataFiltersType;\n isMappingIdentifier?: boolean;\n};\n\nexport type GetVisitorDataUrlParamsType = {\n visitorCode: string;\n filters: VisitorDataFiltersType;\n isMappingIdentifier?: boolean;\n};\n\ntype EventDataType = {\n sdk?: {\n name: string;\n version: string;\n };\n itp: boolean;\n time: number;\n};\n\ntype CustomDataEventType = {\n data: {\n index: number;\n valuesCountMap: {\n [value: string]: number;\n };\n overwrite: boolean;\n mappingIdentifier: boolean;\n };\n} & EventDataType;\n\ntype ExperimentEventType = {\n data: {\n id: number;\n variationId: number;\n };\n} & EventDataType;\n\ntype ConversionEventType = {\n data: {\n goalId: number;\n revenue: number;\n negative: boolean;\n };\n} & EventDataType;\n\ntype BrowserIndexType = (typeof BrowserIndexMap)[BrowserType];\ntype OperatingSystemIndexType =\n (typeof OperatingSystemIndexMap)[OperatingSystemType];\n\nexport type PageEventType = {\n data: {\n href: string;\n canonicalHref: string | null;\n title: string;\n keyPagesIndices: number[] | [null];\n referrerHref: string | null;\n referrersIndices: number[] | [null];\n };\n} & EventDataType;\n\nexport type GeolocationEventType = {\n data: {\n country: string;\n region: string | null;\n city: string | null;\n postalCode: string | null;\n latitude: number | null;\n longitude: number | null;\n };\n} & EventDataType;\n\nexport type StaticDataEventType = {\n data: {\n visitNumber: number;\n timeSincePreviousVisit: number;\n firstReferrerHref: string | null;\n browser: BrowserType | null;\n browserIndex: BrowserIndexType | null;\n browserVersion: number | null;\n os: OperatingSystemType | null;\n osIndex: OperatingSystemIndexType | null;\n windowWidth: number | null;\n windowHeight: number | null;\n screenWidth: number | null;\n screenHeight: number | null;\n timeZoneId: string | null;\n localeLanguageTag: string | null;\n deviceType: DeviceType | null;\n mappingIdentifier: string | null;\n };\n} & EventDataType;\n\nexport type VisitType = {\n siteCode: string;\n visitorCode: string;\n timeStarted: number;\n customDataEvents?: CustomDataEventType[];\n experimentEvents?: ExperimentEventType[];\n conversionEvents?: ConversionEventType[];\n geolocationEvents?: GeolocationEventType[];\n staticDataEvent?: StaticDataEventType;\n pageEvents?: PageEventType[];\n};\n\nexport type GetVisitorDataResultType = {\n previousVisits?: VisitType[];\n currentVisit?: VisitType;\n kcs?: KCSType;\n};\n\nexport enum HttpMethod {\n Get = 'GET',\n Post = 'POST',\n}\n\nexport enum DataApiQuery {\n VisitEvent,\n VisitData,\n DataMap,\n}\n\nconst EVENT_TYPE_KEYS = [\n 'customData',\n 'staticData',\n 'page',\n 'conversion',\n 'geolocation',\n 'activity',\n 'experiment',\n] as const;\nconst PARAMETER_KEYS = [\n 'valuesCountMap',\n 'mappingValue',\n 'id',\n 'nonce',\n 'country',\n 'environment',\n 'city',\n 'region',\n 'latitude',\n 'geolocation',\n 'longitude',\n 'mappingIdentifier',\n 'postalCode',\n 'sdkName',\n 'sdkVersion',\n 'kcs',\n 'browserIndex',\n 'browserVersion',\n 'siteCode',\n 'visitorCode',\n 'currentVisit',\n 'maxNumberPreviousVisits',\n 'customData',\n 'negative',\n 'revenue',\n 'title',\n 'os',\n 'conversion',\n 'staticData',\n 'osIndex',\n 'browser',\n 'referrersIndices',\n 'overwrite',\n 'index',\n 'href',\n 'experiment',\n 'page',\n 'variationId',\n 'deviceType',\n 'goalId',\n 'ts',\n 'key',\n] as const;\nconst TRACKING_KEYS = ['visit', 'map'] as const;\nconst QUERY_KEYS = ['sse', 'visitor', 'map', 'events'] as const;\n\nexport type TrackingType = Record<\n Capitalize<(typeof TRACKING_KEYS)[number]>,\n string\n>;\nexport type QueryType = Record<Capitalize<(typeof QUERY_KEYS)[number]>, string>;\nexport type ParameterType = Record<\n Capitalize<(typeof PARAMETER_KEYS)[number]>,\n string\n>;\nexport type EventType = Record<\n Capitalize<(typeof EVENT_TYPE_KEYS)[number]>,\n string\n>;\n\nexport type StrictTrackingRecord<T> = {\n [K in keyof T]: `${Uncapitalize<K & string>}/`;\n};\nexport type StrictQueryRecord<T> = {\n [K in keyof T]: `${Uncapitalize<K & string>}?siteCode=`;\n};\nexport type StrictEventTypeRecord<T> = {\n [K in keyof T]: `eventType=${Uncapitalize<K & string>}`;\n};\nexport type StrictParameterRecord<T> = {\n [K in keyof T]: `&${Uncapitalize<K & string>}=`;\n};\nexport type StrictFirstParameterRecord<T> = {\n [K in keyof T]: `?${Uncapitalize<K & string>}=`;\n};\n\n/**\n * @type `HeadersType` - a type of headers available in the request\n * */\nexport type HeadersType = Partial<Record<Header, string>>;\n\nexport type TrackParametersType = {\n url: string;\n headers?: HeadersType;\n body: string;\n};\n\n/**\n * @interface an interface of External Request Dispatcher which will be used to perform requests.\n * */\nexport interface IExternalRequestDispatcher {\n /**\n * @method track - send a track request\n * @param {TrackParametersType} parameters - track parameters\n * */\n track: (params: TrackParametersType) => Promise<boolean>;\n /**\n * @method getClientConfiguration - get client configuration\n * @param {string} url - url address\n * @param {HeadersType} headers - headers\n * */\n getClientConfiguration: (\n url: string,\n headers: HeadersType,\n ) => Promise<JSONType>;\n /**\n * @method getRemoteData - get data from remote server of Kameleoon\n * @param {string} url - url address\n * */\n getRemoteData: (url: string) => Promise<JSONType>;\n}\n"],"mappings":"sHA4JY,CAAAA,UAAU,CAAAC,OAAA,CAAAD,UAAA,UAAVA,CAAU,QAAV,CAAAA,CAAU,CAAAE,GAAA,OAAVF,CAAU,CAAAG,IAAA,QAAVH,CAAU,MAKVI,YAAY,CAAAH,OAAA,CAAAG,YAAA,UAAZA,CAAY,QAAZ,CAAAA,CAAY,CAAZA,CAAY,CAAAC,UAAA,iBAAZD,CAAY,CAAZA,CAAY,CAAAE,SAAA,gBAAZF,CAAY,CAAZA,CAAY,CAAAG,OAAA,cAAZH,CAAY,WAMlB,CAAAI,eAAe,CAAG,CACtB,YAAY,CACZ,YAAY,CACZ,MAAM,CACN,YAAY,CACZ,aAAa,CACb,UAAU,CACV,YAAY,CACJ,CACJC,cAAc,CAAG,CACrB,gBAAgB,CAChB,cAAc,CACd,IAAI,CACJ,OAAO,CACP,SAAS,CACT,aAAa,CACb,MAAM,CACN,QAAQ,CACR,UAAU,CACV,aAAa,CACb,WAAW,CACX,mBAAmB,CACnB,YAAY,CACZ,SAAS,CACT,YAAY,CACZ,KAAK,CACL,cAAc,CACd,gBAAgB,CAChB,UAAU,CACV,aAAa,CACb,cAAc,CACd,yBAAyB,CACzB,YAAY,CACZ,UAAU,CACV,SAAS,CACT,OAAO,CACP,IAAI,CACJ,YAAY,CACZ,YAAY,CACZ,SAAS,CACT,SAAS,CACT,kBAAkB,CAClB,WAAW,CACX,OAAO,CACP,MAAM,CACN,YAAY,CACZ,MAAM,CACN,aAAa,CACb,YAAY,CACZ,QAAQ,CACR,IAAI,CACJ,KAAK,CACG,CACJC,aAAa,CAAG,CAAC,OAAO,CAAE,KAAK,CAAU,CACzCC,UAAU,CAAG,CAAC,KAAK,CAAE,SAAS,CAAE,KAAK,CAAE,QAAQ,CAAU"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { UrlProviderInitializeParamsType } from './types';
|
|
1
|
+
import { GetVisitorDataUrlParamsType, UrlProviderInitializeParamsType } from './types';
|
|
3
2
|
export declare class UrlProvider {
|
|
4
3
|
private static siteCode;
|
|
5
4
|
private static environment?;
|
|
@@ -11,7 +10,7 @@ export declare class UrlProvider {
|
|
|
11
10
|
static setDataApiDomain(domain: string): void;
|
|
12
11
|
static getClientConfigurationUrl(timeStamp?: number): string;
|
|
13
12
|
static getRemoteDataUrl(key: string): string;
|
|
14
|
-
static getVisitorDataUrl(visitorCode
|
|
13
|
+
static getVisitorDataUrl({ visitorCode, filters, isMappingIdentifier, }: GetVisitorDataUrlParamsType): string;
|
|
15
14
|
static getTrackingUrl(visitorCode: string, isMappingIdentifier?: boolean): string;
|
|
16
15
|
private static isInitialized;
|
|
17
16
|
private static getDataApiUrl;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.UrlProvider=void 0;var _constants=require("./constants"),_types=require("./types");function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class UrlProvider{static initialize(a){let{siteCode:b,packageInfo:c,environment:d}=a;this.siteCode=b,this.environment=d,this.packageInfo=c,this.ready=!0}static setDataApiDomain(a){this.dataApiDomain=a.split(".").slice(0,-1).join(".")}static getClientConfigurationUrl(a){this.isInitialized();const b=this.environment?_constants.UrlFirstParameter.Environment+this.environment:"";let c="";return a&&(b?c=_constants.UrlParameter.Ts+a:c=_constants.UrlFirstParameter.Ts+a),_constants.URL.CLIENT_CONFIGURATION+this.siteCode+b+c}static getRemoteDataUrl(a){return this.isInitialized(),this.getDataApiUrl(_types.DataApiQuery.DataMap)+this.siteCode+_constants.UrlParameter.Key+encodeURI(a)}static getVisitorDataUrl(a
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.UrlProvider=void 0;var _constants=require("./constants"),_types=require("./types");function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class UrlProvider{static initialize(a){let{siteCode:b,packageInfo:c,environment:d}=a;this.siteCode=b,this.environment=d,this.packageInfo=c,this.ready=!0}static setDataApiDomain(a){this.dataApiDomain=a.split(".").slice(0,-1).join(".")}static getClientConfigurationUrl(a){this.isInitialized();const b=this.environment?_constants.UrlFirstParameter.Environment+this.environment:"";let c="";return a&&(b?c=_constants.UrlParameter.Ts+a:c=_constants.UrlFirstParameter.Ts+a),_constants.URL.CLIENT_CONFIGURATION+this.siteCode+b+c}static getRemoteDataUrl(a){return this.isInitialized(),this.getDataApiUrl(_types.DataApiQuery.DataMap)+this.siteCode+_constants.UrlParameter.Key+encodeURI(a)}static getVisitorDataUrl(a){let{visitorCode:b,filters:c,isMappingIdentifier:d}=a;const{customData:e,previousVisitAmount:f,currentVisit:g,conversions:h,geolocation:i,experiments:j,pageViews:k,device:l,browser:m,operatingSystem:n,kcs:o}=c,p=d?_constants.UrlParameter.MappingValue:_constants.UrlParameter.VisitorCode,q=e?_constants.UrlParameter.CustomData+!0:"",r=h?_constants.UrlParameter.Conversion+!0:"",s=i?_constants.UrlParameter.Geolocation+!0:"",t=j?_constants.UrlParameter.Experiment+!0:"",u=k?_constants.UrlParameter.Page+!0:"",v=!!(l||m||n)?_constants.UrlParameter.StaticData+!0:"",w=g?_constants.UrlParameter.CurrentVisit+!0:"";let x="";o&&(x=_constants.UrlParameter.Kcs+!0,!w&&(x+=_constants.UrlParameter.CurrentVisit+!0));const y="number"==typeof f?_constants.UrlParameter.MaxNumberPreviousVisits+f:_constants.UrlParameter.MaxNumberPreviousVisits+1;return this.getDataApiUrl(_types.DataApiQuery.VisitData)+this.siteCode+p+b+y+q+r+s+t+u+v+w+x}static getTrackingUrl(a,b){this.isInitialized();const{type:c,version:d}=this.packageInfo,e=b?_constants.UrlParameter.MappingValue:_constants.UrlParameter.VisitorCode;return this.getDataApiUrl(_types.DataApiQuery.VisitEvent)+this.siteCode+e+a+_constants.UrlParameter.SdkName+c.toLowerCase()+_constants.UrlParameter.SdkVersion+d}static isInitialized(){if(!this.ready)throw new Error("UrlProvider is not initialized")}static getDataApiUrl(a){const b="https://".concat(this.dataApiDomain).concat(this.dataApiTopLevelDomain);return a===_types.DataApiQuery.VisitEvent?"".concat(b,"/").concat(_constants.UrlTracking.Visit+_constants.UrlQuery.Events):a===_types.DataApiQuery.VisitData?"".concat(b,"/").concat(_constants.UrlTracking.Visit+_constants.UrlQuery.Visitor):a===_types.DataApiQuery.DataMap?"".concat(b,"/").concat(_constants.UrlTracking.Map+_constants.UrlQuery.Map):void 0}}exports.UrlProvider=UrlProvider,_defineProperty(UrlProvider,"siteCode",void 0),_defineProperty(UrlProvider,"environment",void 0),_defineProperty(UrlProvider,"ready",!1),_defineProperty(UrlProvider,"packageInfo",void 0),_defineProperty(UrlProvider,"dataApiDomain","data.kameleoon"),_defineProperty(UrlProvider,"dataApiTopLevelDomain",".io");
|
|
2
2
|
//# sourceMappingURL=urlProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urlProvider.js","names":["UrlProvider","initialize","a","siteCode","packageInfo","environment","ready","setDataApiDomain","domain","dataApiDomain","split","slice","join","getClientConfigurationUrl","timeStamp","isInitialized","environmentParam","UrlFirstParameter","Environment","timeStampParam","UrlParameter","Ts","URL","CLIENT_CONFIGURATION","getRemoteDataUrl","key","getDataApiUrl","DataApiQuery","DataMap","Key","encodeURI","getVisitorDataUrl","visitorCode","filters","customData","previousVisitAmount","currentVisit","conversions","geolocation","experiments","pageViews","device","browser","operatingSystem","customDataParameter","CustomData","conversionsParameter","Conversion","geolocationParameter","Geolocation","experimentsParameter","Experiment","pageViewsParameter","Page","staticDataParameter","StaticData","currentVisitParameter","CurrentVisit","VisitData","VisitorCode","MaxNumberPreviousVisits","getTrackingUrl","isMappingIdentifier","type","version","versionWithCore","encodeURIComponent","concat","identifierParameter","MappingValue","VisitEvent","SdkName","toLowerCase","SdkVersion","Error","query","dataApiTopLevelDomain","UrlTracking","Visit","UrlQuery","Events","Visitor","Map","exports","_defineProperty"],"sources":["../../src/requester/urlProvider.ts"],"sourcesContent":["import { Environment, ExternalPackageInfoType } from 'src/types';\nimport { VisitorDataFiltersType } from 'src/utilities';\nimport {\n UrlFirstParameter,\n UrlParameter,\n URL,\n UrlTracking,\n UrlQuery,\n} from './constants';\nimport { DataApiQuery, UrlProviderInitializeParamsType } from './types';\n\n// TODO: To be removed in favour of `DependencyManager`\n// which will use protected `KameleoonClient` method to be able to mock every dependency\n// for tests\nexport class UrlProvider {\n private static siteCode: string;\n private static environment?: Environment;\n private static ready = false;\n private static packageInfo: ExternalPackageInfoType;\n private static dataApiDomain = 'data.kameleoon';\n\n public static dataApiTopLevelDomain = '.io';\n\n public static initialize({\n siteCode,\n packageInfo,\n environment,\n }: UrlProviderInitializeParamsType): void {\n this.siteCode = siteCode;\n this.environment = environment;\n this.packageInfo = packageInfo;\n this.ready = true;\n }\n\n public static setDataApiDomain(domain: string): void {\n this.dataApiDomain = domain.split('.').slice(0, -1).join('.');\n }\n\n public static getClientConfigurationUrl(timeStamp?: number): string {\n this.isInitialized();\n\n const environmentParam = this.environment\n ? UrlFirstParameter.Environment + this.environment\n : '';\n let timeStampParam = '';\n\n if (timeStamp) {\n if (environmentParam) {\n timeStampParam = UrlParameter.Ts + timeStamp;\n } else {\n timeStampParam = UrlFirstParameter.Ts + timeStamp;\n }\n }\n\n return (\n URL.CLIENT_CONFIGURATION +\n this.siteCode +\n environmentParam +\n timeStampParam\n );\n }\n\n public static getRemoteDataUrl(key: string): string {\n this.isInitialized();\n\n return (\n this.getDataApiUrl(DataApiQuery.DataMap) +\n this.siteCode +\n UrlParameter.Key +\n encodeURI(key)\n );\n }\n\n public static getVisitorDataUrl(\n visitorCode: string,\n filters: VisitorDataFiltersType,\n ): string {\n const {\n customData,\n previousVisitAmount,\n currentVisit,\n conversions,\n geolocation,\n experiments,\n pageViews,\n device,\n browser,\n operatingSystem,\n } = filters;\n\n const customDataParameter = customData\n ? UrlParameter.CustomData + true\n : '';\n const conversionsParameter = conversions\n ? UrlParameter.Conversion + true\n : '';\n const geolocationParameter = geolocation\n ? UrlParameter.Geolocation + true\n : '';\n const experimentsParameter = experiments\n ? UrlParameter.Experiment + true\n : '';\n const pageViewsParameter = pageViews ? UrlParameter.Page + true : '';\n const staticDataParameter = Boolean(device || browser || operatingSystem)\n ? UrlParameter.StaticData + true\n : '';\n const currentVisitParameter = currentVisit\n ? UrlParameter.CurrentVisit + true\n : '';\n\n return (\n this.getDataApiUrl(DataApiQuery.VisitData) +\n this.siteCode +\n UrlParameter.VisitorCode +\n visitorCode +\n UrlParameter.MaxNumberPreviousVisits +\n previousVisitAmount +\n customDataParameter +\n conversionsParameter +\n geolocationParameter +\n experimentsParameter +\n pageViewsParameter +\n staticDataParameter +\n currentVisitParameter\n );\n }\n\n public static getTrackingUrl(\n visitorCode: string,\n isMappingIdentifier?: boolean,\n ): string {\n this.isInitialized();\n\n const { type, version } = this.packageInfo;\n\n const versionWithCore = encodeURIComponent(\n `${version}/${process.env.npm_package_version}`,\n );\n\n const identifierParameter = isMappingIdentifier\n ? UrlParameter.MappingValue\n : UrlParameter.VisitorCode;\n\n return (\n this.getDataApiUrl(DataApiQuery.VisitEvent) +\n this.siteCode +\n identifierParameter +\n visitorCode +\n UrlParameter.SdkName +\n type.toLowerCase() +\n UrlParameter.SdkVersion +\n versionWithCore\n );\n }\n\n private static isInitialized(): void {\n if (!this.ready) {\n throw new Error('UrlProvider is not initialized');\n }\n }\n\n private static getDataApiUrl(query: DataApiQuery): string {\n const domain = `https://${this.dataApiDomain}${this.dataApiTopLevelDomain}`;\n\n switch (query) {\n case DataApiQuery.VisitEvent:\n return `${domain}/${UrlTracking.Visit + UrlQuery.Events}`;\n case DataApiQuery.VisitData:\n return `${domain}/${UrlTracking.Visit + UrlQuery.Visitor}`;\n case DataApiQuery.DataMap:\n return `${domain}/${UrlTracking.Map + UrlQuery.Map}`;\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"urlProvider.js","names":["UrlProvider","initialize","a","siteCode","packageInfo","environment","ready","setDataApiDomain","domain","dataApiDomain","split","slice","join","getClientConfigurationUrl","timeStamp","isInitialized","environmentParam","UrlFirstParameter","Environment","timeStampParam","UrlParameter","Ts","URL","CLIENT_CONFIGURATION","getRemoteDataUrl","key","getDataApiUrl","DataApiQuery","DataMap","Key","encodeURI","getVisitorDataUrl","visitorCode","filters","isMappingIdentifier","customData","previousVisitAmount","currentVisit","conversions","geolocation","experiments","pageViews","device","browser","operatingSystem","kcs","identifierParameter","MappingValue","VisitorCode","customDataParameter","CustomData","conversionsParameter","Conversion","geolocationParameter","Geolocation","experimentsParameter","Experiment","pageViewsParameter","Page","staticDataParameter","StaticData","currentVisitParameter","CurrentVisit","kcsParameter","Kcs","previousVisitAmountParam","MaxNumberPreviousVisits","VisitData","getTrackingUrl","type","version","VisitEvent","SdkName","toLowerCase","SdkVersion","Error","query","concat","dataApiTopLevelDomain","UrlTracking","Visit","UrlQuery","Events","Visitor","Map","exports","_defineProperty"],"sources":["../../src/requester/urlProvider.ts"],"sourcesContent":["import { Environment, ExternalPackageInfoType } from 'src/types';\nimport {\n UrlFirstParameter,\n UrlParameter,\n URL,\n UrlTracking,\n UrlQuery,\n} from './constants';\nimport {\n DataApiQuery,\n GetVisitorDataUrlParamsType,\n UrlProviderInitializeParamsType,\n} from './types';\n\n// TODO: To be removed in favour of `DependencyManager`\n// which will use protected `KameleoonClient` method to be able to mock every dependency\n// for tests\nexport class UrlProvider {\n private static siteCode: string;\n private static environment?: Environment;\n private static ready = false;\n private static packageInfo: ExternalPackageInfoType;\n private static dataApiDomain = 'data.kameleoon';\n\n public static dataApiTopLevelDomain = '.io';\n\n public static initialize({\n siteCode,\n packageInfo,\n environment,\n }: UrlProviderInitializeParamsType): void {\n this.siteCode = siteCode;\n this.environment = environment;\n this.packageInfo = packageInfo;\n this.ready = true;\n }\n\n public static setDataApiDomain(domain: string): void {\n this.dataApiDomain = domain.split('.').slice(0, -1).join('.');\n }\n\n public static getClientConfigurationUrl(timeStamp?: number): string {\n this.isInitialized();\n\n const environmentParam = this.environment\n ? UrlFirstParameter.Environment + this.environment\n : '';\n let timeStampParam = '';\n\n if (timeStamp) {\n if (environmentParam) {\n timeStampParam = UrlParameter.Ts + timeStamp;\n } else {\n timeStampParam = UrlFirstParameter.Ts + timeStamp;\n }\n }\n\n return (\n URL.CLIENT_CONFIGURATION +\n this.siteCode +\n environmentParam +\n timeStampParam\n );\n }\n\n public static getRemoteDataUrl(key: string): string {\n this.isInitialized();\n\n return (\n this.getDataApiUrl(DataApiQuery.DataMap) +\n this.siteCode +\n UrlParameter.Key +\n encodeURI(key)\n );\n }\n\n public static getVisitorDataUrl({\n visitorCode,\n filters,\n isMappingIdentifier,\n }: GetVisitorDataUrlParamsType): string {\n const {\n customData,\n previousVisitAmount,\n currentVisit,\n conversions,\n geolocation,\n experiments,\n pageViews,\n device,\n browser,\n operatingSystem,\n kcs,\n } = filters;\n\n const identifierParameter = isMappingIdentifier\n ? UrlParameter.MappingValue\n : UrlParameter.VisitorCode;\n\n const customDataParameter = customData\n ? UrlParameter.CustomData + true\n : '';\n const conversionsParameter = conversions\n ? UrlParameter.Conversion + true\n : '';\n const geolocationParameter = geolocation\n ? UrlParameter.Geolocation + true\n : '';\n const experimentsParameter = experiments\n ? UrlParameter.Experiment + true\n : '';\n const pageViewsParameter = pageViews ? UrlParameter.Page + true : '';\n const staticDataParameter = Boolean(device || browser || operatingSystem)\n ? UrlParameter.StaticData + true\n : '';\n const currentVisitParameter = currentVisit\n ? UrlParameter.CurrentVisit + true\n : '';\n\n // --- Note ---\n // `kcs` parameter requires `currentVisit=true`\n let kcsParameter = '';\n\n if (kcs) {\n kcsParameter = UrlParameter.Kcs + true;\n\n if (!currentVisitParameter) {\n kcsParameter += UrlParameter.CurrentVisit + true;\n }\n }\n\n const previousVisitAmountParam =\n typeof previousVisitAmount !== 'number'\n ? UrlParameter.MaxNumberPreviousVisits + 1\n : UrlParameter.MaxNumberPreviousVisits + previousVisitAmount;\n\n return (\n this.getDataApiUrl(DataApiQuery.VisitData) +\n this.siteCode +\n identifierParameter +\n visitorCode +\n previousVisitAmountParam +\n customDataParameter +\n conversionsParameter +\n geolocationParameter +\n experimentsParameter +\n pageViewsParameter +\n staticDataParameter +\n currentVisitParameter +\n kcsParameter\n );\n }\n\n public static getTrackingUrl(\n visitorCode: string,\n isMappingIdentifier?: boolean,\n ): string {\n this.isInitialized();\n\n const { type, version } = this.packageInfo;\n\n const identifierParameter = isMappingIdentifier\n ? UrlParameter.MappingValue\n : UrlParameter.VisitorCode;\n\n return (\n this.getDataApiUrl(DataApiQuery.VisitEvent) +\n this.siteCode +\n identifierParameter +\n visitorCode +\n UrlParameter.SdkName +\n type.toLowerCase() +\n UrlParameter.SdkVersion +\n version\n );\n }\n\n private static isInitialized(): void {\n if (!this.ready) {\n throw new Error('UrlProvider is not initialized');\n }\n }\n\n private static getDataApiUrl(query: DataApiQuery): string {\n const domain = `https://${this.dataApiDomain}${this.dataApiTopLevelDomain}`;\n\n switch (query) {\n case DataApiQuery.VisitEvent:\n return `${domain}/${UrlTracking.Visit + UrlQuery.Events}`;\n case DataApiQuery.VisitData:\n return `${domain}/${UrlTracking.Visit + UrlQuery.Visitor}`;\n case DataApiQuery.DataMap:\n return `${domain}/${UrlTracking.Map + UrlQuery.Map}`;\n }\n }\n}\n"],"mappings":"kqBAiBO,KAAM,CAAAA,WAAY,CASvB,MAAc,CAAAC,UAAUA,CAAAC,CAAA,CAIkB,IAJjB,CACvBC,QAAQ,CAARA,CAAQ,CACRC,WAAW,CAAXA,CAAW,CACXC,WAAW,CAAXA,CAC+B,CAAC,CAAAH,CAAA,CAChC,IAAI,CAACC,QAAQ,CAAGA,CAAQ,CACxB,IAAI,CAACE,WAAW,CAAGA,CAAW,CAC9B,IAAI,CAACD,WAAW,CAAGA,CAAW,CAC9B,IAAI,CAACE,KAAK,GACZ,CAEA,MAAc,CAAAC,gBAAgBA,CAACC,CAAc,CAAQ,CACnD,IAAI,CAACC,aAAa,CAAGD,CAAM,CAACE,KAAK,CAAC,GAAG,CAAC,CAACC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,GAAG,CAC9D,CAEA,MAAc,CAAAC,yBAAyBA,CAACC,CAAkB,CAAU,CAClE,IAAI,CAACC,aAAa,CAAC,CAAC,CAEpB,KAAM,CAAAC,CAAgB,CAAG,IAAI,CAACX,WAAW,CACrCY,4BAAiB,CAACC,WAAW,CAAG,IAAI,CAACb,WAAW,CAChD,EAAE,CACN,GAAI,CAAAc,CAAc,CAAG,EAAE,CAUvB,MARI,CAAAL,CAAS,GACPE,CAAgB,CAClBG,CAAc,CAAGC,uBAAY,CAACC,EAAE,CAAGP,CAAS,CAE5CK,CAAc,CAAGF,4BAAiB,CAACI,EAAE,CAAGP,CAAS,EAKnDQ,cAAG,CAACC,oBAAoB,CACxB,IAAI,CAACpB,QAAQ,CACba,CAAgB,CAChBG,CAEJ,CAEA,MAAc,CAAAK,gBAAgBA,CAACC,CAAW,CAAU,CAGlD,MAFA,KAAI,CAACV,aAAa,CAAC,CAAC,CAGlB,IAAI,CAACW,aAAa,CAACC,mBAAY,CAACC,OAAO,CAAC,CACxC,IAAI,CAACzB,QAAQ,CACbiB,uBAAY,CAACS,GAAG,CAChBC,SAAS,CAACL,CAAG,CAEjB,CAEA,MAAc,CAAAM,iBAAiBA,CAAA7B,CAAA,CAIS,IAJR,CAC9B8B,WAAW,CAAXA,CAAW,CACXC,OAAO,CAAPA,CAAO,CACPC,mBAAmB,CAAnBA,CAC2B,CAAC,CAAAhC,CAAA,MACtB,CACJiC,UAAU,CAAVA,CAAU,CACVC,mBAAmB,CAAnBA,CAAmB,CACnBC,YAAY,CAAZA,CAAY,CACZC,WAAW,CAAXA,CAAW,CACXC,WAAW,CAAXA,CAAW,CACXC,WAAW,CAAXA,CAAW,CACXC,SAAS,CAATA,CAAS,CACTC,MAAM,CAANA,CAAM,CACNC,OAAO,CAAPA,CAAO,CACPC,eAAe,CAAfA,CAAe,CACfC,GAAG,CAAHA,CACF,CAAC,CAAGZ,CAAO,CAELa,CAAmB,CAAGZ,CAAmB,CAC3Cd,uBAAY,CAAC2B,YAAY,CACzB3B,uBAAY,CAAC4B,WAAW,CAEtBC,CAAmB,CAAGd,CAAU,CAClCf,uBAAY,CAAC8B,UAAU,GAAO,CAC9B,EAAE,CACAC,CAAoB,CAAGb,CAAW,CACpClB,uBAAY,CAACgC,UAAU,GAAO,CAC9B,EAAE,CACAC,CAAoB,CAAGd,CAAW,CACpCnB,uBAAY,CAACkC,WAAW,GAAO,CAC/B,EAAE,CACAC,CAAoB,CAAGf,CAAW,CACpCpB,uBAAY,CAACoC,UAAU,GAAO,CAC9B,EAAE,CACAC,CAAkB,CAAGhB,CAAS,CAAGrB,uBAAY,CAACsC,IAAI,GAAO,CAAG,EAAE,CAC9DC,CAAmB,CAAG,GAAQjB,CAAM,EAAIC,CAAO,EAAIC,CAAe,EACpExB,uBAAY,CAACwC,UAAU,GAAO,CAC9B,EAAE,CACAC,CAAqB,CAAGxB,CAAY,CACtCjB,uBAAY,CAAC0C,YAAY,GAAO,CAChC,EAAE,CAIN,GAAI,CAAAC,CAAY,CAAG,EAAE,CAEjBlB,CAAG,GACLkB,CAAY,CAAG3C,uBAAY,CAAC4C,GAAG,GAAO,CAElC,CAACH,CAAqB,GACxBE,CAAY,EAAI3C,uBAAY,CAAC0C,YAAY,GAAO,GAIpD,KAAM,CAAAG,CAAwB,CACG,QAAQ,EAAvC,MAAO,CAAA7B,CAAgC,CAEnChB,uBAAY,CAAC8C,uBAAuB,CAAG9B,CAAmB,CAD1DhB,uBAAY,CAAC8C,uBAAuB,CAAG,CACmB,CAEhE,MACE,KAAI,CAACxC,aAAa,CAACC,mBAAY,CAACwC,SAAS,CAAC,CAC1C,IAAI,CAAChE,QAAQ,CACb2C,CAAmB,CACnBd,CAAW,CACXiC,CAAwB,CACxBhB,CAAmB,CACnBE,CAAoB,CACpBE,CAAoB,CACpBE,CAAoB,CACpBE,CAAkB,CAClBE,CAAmB,CACnBE,CAAqB,CACrBE,CAEJ,CAEA,MAAc,CAAAK,cAAcA,CAC1BpC,CAAmB,CACnBE,CAA6B,CACrB,CACR,IAAI,CAACnB,aAAa,CAAC,CAAC,MAEd,CAAEsD,IAAI,CAAJA,CAAI,CAAEC,OAAO,CAAPA,CAAQ,CAAC,CAAG,IAAI,CAAClE,WAAW,CAEpC0C,CAAmB,CAAGZ,CAAmB,CAC3Cd,uBAAY,CAAC2B,YAAY,CACzB3B,uBAAY,CAAC4B,WAAW,CAE5B,MACE,KAAI,CAACtB,aAAa,CAACC,mBAAY,CAAC4C,UAAU,CAAC,CAC3C,IAAI,CAACpE,QAAQ,CACb2C,CAAmB,CACnBd,CAAW,CACXZ,uBAAY,CAACoD,OAAO,CACpBH,CAAI,CAACI,WAAW,CAAC,CAAC,CAClBrD,uBAAY,CAACsD,UAAU,CACvBJ,CAEJ,CAEA,MAAe,CAAAvD,aAAaA,CAAA,CAAS,CACnC,GAAI,CAAC,IAAI,CAACT,KAAK,CACb,KAAM,IAAI,CAAAqE,KAAK,CAAC,gCAAgC,CAEpD,CAEA,MAAe,CAAAjD,aAAaA,CAACkD,CAAmB,CAAU,CACxD,KAAM,CAAApE,CAAM,YAAAqE,MAAA,CAAc,IAAI,CAACpE,aAAa,EAAAoE,MAAA,CAAG,IAAI,CAACC,qBAAqB,CAAE,CAAC,MAEpE,CAAAF,CAAK,GACNjD,mBAAY,CAAC4C,UAAU,IAAAM,MAAA,CAChBrE,CAAM,MAAAqE,MAAA,CAAIE,sBAAW,CAACC,KAAK,CAAGC,mBAAQ,CAACC,MAAM,EAFnDN,CAAK,GAGNjD,mBAAY,CAACwC,SAAS,IAAAU,MAAA,CACfrE,CAAM,MAAAqE,MAAA,CAAIE,sBAAW,CAACC,KAAK,CAAGC,mBAAQ,CAACE,OAAO,EAJpDP,CAAK,GAKNjD,mBAAY,CAACC,OAAO,IAAAiD,MAAA,CACbrE,CAAM,MAAAqE,MAAA,CAAIE,sBAAW,CAACK,GAAG,CAAGH,mBAAQ,CAACG,GAAG,QAExD,CACF,CAACC,OAAA,CAAArF,WAAA,CAAAA,WAAA,CAAAsF,eAAA,CAlLYtF,WAAW,oBAAAsF,eAAA,CAAXtF,WAAW,uBAAAsF,eAAA,CAAXtF,WAAW,aAAAsF,eAAA,CAAXtF,WAAW,uBAAAsF,eAAA,CAAXtF,WAAW,iBAKS,gBAAgB,EAAAsF,eAAA,CALpCtF,WAAW,yBAOgB,KAAK"}
|
package/dist/storage/storage.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.DataStorage=void 0;var _tsRes=require("ts-res"),_kameleoonError=require("../kameleoonError");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),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 DataStorage{constructor(a,b){_defineProperty(this,"externalStorage",void 0),_defineProperty(this,"storageKey",void 0),this.externalStorage=a,this.storageKey=b}get key(){return this.storageKey}read(){try{const a=this.externalStorage.read(this.storageKey);return null===a?(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.StorageEmpty)):(0,_tsRes.Ok)(a)}catch(
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.DataStorage=void 0;var _tsRes=require("ts-res"),_kameleoonError=require("../kameleoonError");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),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 DataStorage{constructor(a,b){_defineProperty(this,"externalStorage",void 0),_defineProperty(this,"storageKey",void 0),this.externalStorage=a,this.storageKey=b}get key(){return this.storageKey}read(){try{const a=this.externalStorage.read(this.storageKey);return null===a?(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.StorageEmpty)):(0,_tsRes.Ok)(a)}catch(_){return(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.StorageRead,this.storageKey))}}write(a){try{return this.externalStorage.write(this.storageKey,a),(0,_tsRes.Ok)()}catch(_){return(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.StorageWrite,this.storageKey))}}update(a){const b=this.read();if(!b.ok)return b.error.type===_kameleoonError.KameleoonException.StorageEmpty?this.write(a):b;const c=b.data;let d;return d="string"==typeof c?a:_objectSpread(_objectSpread({},c),a),this.write(d)}}exports.DataStorage=DataStorage;
|
|
2
2
|
//# sourceMappingURL=storage.js.map
|
package/dist/storage/types.d.ts
CHANGED
|
@@ -28,7 +28,7 @@ export type ConsentDataType = {
|
|
|
28
28
|
[visitorCode: string]: boolean;
|
|
29
29
|
};
|
|
30
30
|
/**
|
|
31
|
-
* @type StorageDataType - an enumeration type which represents a data stored on SDK storage
|
|
31
|
+
* @type `StorageDataType` - an enumeration type which represents a data stored on SDK storage
|
|
32
32
|
*
|
|
33
33
|
* `string` represents visitor code storage with only one string value
|
|
34
34
|
* */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../src/storage/types.ts"],"sourcesContent":["import { Result } from 'ts-res';\nimport { ConfigurationDataType } from 'src/clientConfiguration';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { KameleoonStorageKey } from './constants';\nimport {\n TrackDataParamsType,\n TrackExperimentParamsType,\n} from 'src/requester/types';\n\nexport type ClientDataType = {\n data: ConfigurationDataType;\n lastUpdate: string;\n};\n\nexport type FeatureFlagVariationsType = {\n [experimentId: string]: {\n variationId: number;\n isTargetedRule: boolean;\n isSent: boolean;\n };\n};\n\nexport type VariationDataType = {\n [visitorCode: string]: FeatureFlagVariationsType;\n};\n\ntype OfflineTrackingParameters =\n | TrackDataParamsType\n | TrackExperimentParamsType;\n\nexport type OfflineTracking = {\n requestParameters?: Array<\n OfflineTrackingParameters & { timestamp: number; isExperiment: boolean }\n >;\n};\n\nexport type ConsentDataType = {\n [visitorCode: string]: boolean;\n};\n\n/**\n * @type StorageDataType - an enumeration type which represents a data stored on SDK storage\n *\n * `string` represents visitor code storage with only one string value\n * */\nexport type StorageDataType =\n | ClientDataType\n | VariationDataType\n | OfflineTracking\n | ConsentDataType\n | string;\n\n/**\n * @interface an interface of External Storage which must be implemented to be used as external storage an SDK\n * */\nexport interface IExternalStorage<T = StorageDataType> {\n /**\n * @method read - reads data from the storage\n * @param {string} key - a key, which different SDK data blocks are stored under\n * @returns {T | null} representation of generic Kameleoon data type `T` or `null` if the storage was read successfully but it's empty\n * */\n read: (key: string) => T | null;\n /**\n * @method write - writes data to storage\n * @param {string} key - a key, which different SDK data blocks are stored under\n * @param {T} data - representation of generic Kameleoon data type\n * @returns {void}\n * */\n write: (key: string, data: T) => void;\n}\n\n/**\n * @interface an interface which serves as a wrapper over `IExternalStorage` for internal SDK usage\n * */\nexport interface IStorage<T> {\n readonly key: KameleoonStorageKey;\n read: () => Result<T, KameleoonError>;\n write: (data: T) => Result<void, KameleoonError>;\n update: (data: Partial<T>) => Result<void, KameleoonError>;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../src/storage/types.ts"],"sourcesContent":["import { Result } from 'ts-res';\nimport { ConfigurationDataType } from 'src/clientConfiguration';\nimport { KameleoonError } from 'src/kameleoonError';\nimport { KameleoonStorageKey } from './constants';\nimport {\n TrackDataParamsType,\n TrackExperimentParamsType,\n} from 'src/requester/types';\n\nexport type ClientDataType = {\n data: ConfigurationDataType;\n lastUpdate: string;\n};\n\nexport type FeatureFlagVariationsType = {\n [experimentId: string]: {\n variationId: number;\n isTargetedRule: boolean;\n isSent: boolean;\n };\n};\n\nexport type VariationDataType = {\n [visitorCode: string]: FeatureFlagVariationsType;\n};\n\ntype OfflineTrackingParameters =\n | TrackDataParamsType\n | TrackExperimentParamsType;\n\nexport type OfflineTracking = {\n requestParameters?: Array<\n OfflineTrackingParameters & { timestamp: number; isExperiment: boolean }\n >;\n};\n\nexport type ConsentDataType = {\n [visitorCode: string]: boolean;\n};\n\n/**\n * @type `StorageDataType` - an enumeration type which represents a data stored on SDK storage\n *\n * `string` represents visitor code storage with only one string value\n * */\nexport type StorageDataType =\n | ClientDataType\n | VariationDataType\n | OfflineTracking\n | ConsentDataType\n | string;\n\n/**\n * @interface an interface of External Storage which must be implemented to be used as external storage an SDK\n * */\nexport interface IExternalStorage<T = StorageDataType> {\n /**\n * @method read - reads data from the storage\n * @param {string} key - a key, which different SDK data blocks are stored under\n * @returns {T | null} representation of generic Kameleoon data type `T` or `null` if the storage was read successfully but it's empty\n * */\n read: (key: string) => T | null;\n /**\n * @method write - writes data to storage\n * @param {string} key - a key, which different SDK data blocks are stored under\n * @param {T} data - representation of generic Kameleoon data type\n * @returns {void}\n * */\n write: (key: string, data: T) => void;\n}\n\n/**\n * @interface an interface which serves as a wrapper over `IExternalStorage` for internal SDK usage\n * */\nexport interface IStorage<T> {\n readonly key: KameleoonStorageKey;\n read: () => Result<T, KameleoonError>;\n write: (data: T) => Result<void, KameleoonError>;\n update: (data: Partial<T>) => Result<void, KameleoonError>;\n}\n"],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Browser=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_kameleoonError=require("../../kameleoonError"),_types=require("../types");function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class Browser{constructor(a){let{browser:b,version:c,versionMatchType:d}=a;_defineProperty(this,"browser",void 0),_defineProperty(this,"version",void 0),_defineProperty(this,"versionMatchType",void 0),_defineProperty(this,"error",void 0),this.browser=b,this.version=c,this.versionMatchType=d}evaluate(a){let{targetingData:b}=a;const c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.Browser];if(c){const a=this.checkCondition(c);return this.error?(0,_tsRes.Err)(this.error):(0,_tsRes.Ok)(a)}return(0,_tsRes.Ok)(!1)}checkCondition(a){const{browser:b,version:c}=a;if("string"!=typeof this.browser)return!1;if(
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Browser=void 0;var _tsRes=require("ts-res"),_kameleoonData=require("../../kameleoonData"),_kameleoonError=require("../../kameleoonError"),_types=require("../types");function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}class Browser{constructor(a){let{browser:b,version:c,versionMatchType:d}=a;_defineProperty(this,"browser",void 0),_defineProperty(this,"version",void 0),_defineProperty(this,"versionMatchType",void 0),_defineProperty(this,"error",void 0),this.browser=b,this.version=c,this.versionMatchType=d}evaluate(a){let{targetingData:b}=a;const c=null===b||void 0===b?void 0:b[_kameleoonData.KameleoonData.Browser];if(c){const a=this.checkCondition(c);return this.error?(0,_tsRes.Err)(this.error):(0,_tsRes.Ok)(a)}return(0,_tsRes.Ok)(!1)}checkCondition(a){const{browser:b,version:c}=a;if("string"!=typeof this.browser)return!1;if(!this.version)return b===this.browser;if(!this.versionMatchType||"number"!=typeof c)return!1;const d=parseFloat(this.version);switch(isNaN(d)&&(this.error=new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.VersionParse,this.version)),this.versionMatchType){case _types.VersionMatchType.EQUAL:return b===this.browser&&c===d;case _types.VersionMatchType.GREATER:return b===this.browser&&c>d;case _types.VersionMatchType.LOWER:return b===this.browser&&c<d;default:(0,_kameleoonError.exhaustCheck)(this.versionMatchType)}}}exports.Browser=Browser;
|
|
2
2
|
//# sourceMappingURL=browser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","names":["Browser","constructor","a","browser","version","versionMatchType","_defineProperty","evaluate","targetingData","browserData","KameleoonData","result","checkCondition","error","Err","Ok","parsedVersion","parseFloat","isNaN","KameleoonError","KameleoonException","VersionParse","VersionMatchType","EQUAL","GREATER","LOWER","exhaustCheck","exports"],"sources":["../../../src/targeting/conditions/browser.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport { KameleoonData, BrowserType, BrowserDataType } from 'src/kameleoonData';\nimport {\n exhaustCheck,\n KameleoonError,\n KameleoonException,\n} from 'src/kameleoonError';\nimport { EvaluationDataType, VersionMatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class Browser implements ICondition {\n private browser?: BrowserType | null;\n private version?: string | null;\n private versionMatchType?: VersionMatchType | null;\n private error?: KameleoonError;\n\n constructor({ browser, version, versionMatchType }: ConditionDataType) {\n this.browser = browser;\n this.version = version;\n this.versionMatchType = versionMatchType;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const browserData = targetingData?.[KameleoonData.Browser];\n\n if (browserData) {\n const result = this.checkCondition(browserData);\n\n if (this.error) {\n return Err(this.error);\n }\n\n return Ok(result);\n }\n\n return Ok(false);\n }\n\n private checkCondition(browserData: BrowserDataType): boolean {\n const { browser, version } = browserData;\n\n if (typeof this.browser !== 'string') {\n return false;\n }\n\n if (
|
|
1
|
+
{"version":3,"file":"browser.js","names":["Browser","constructor","a","browser","version","versionMatchType","_defineProperty","evaluate","targetingData","browserData","KameleoonData","result","checkCondition","error","Err","Ok","parsedVersion","parseFloat","isNaN","KameleoonError","KameleoonException","VersionParse","VersionMatchType","EQUAL","GREATER","LOWER","exhaustCheck","exports"],"sources":["../../../src/targeting/conditions/browser.ts"],"sourcesContent":["import { Err, Ok, Result } from 'ts-res';\nimport { KameleoonData, BrowserType, BrowserDataType } from 'src/kameleoonData';\nimport {\n exhaustCheck,\n KameleoonError,\n KameleoonException,\n} from 'src/kameleoonError';\nimport { EvaluationDataType, VersionMatchType } from 'src/targeting/types';\nimport { ConditionDataType, ICondition } from './types';\n\nexport class Browser implements ICondition {\n private browser?: BrowserType | null;\n private version?: string | null;\n private versionMatchType?: VersionMatchType | null;\n private error?: KameleoonError;\n\n constructor({ browser, version, versionMatchType }: ConditionDataType) {\n this.browser = browser;\n this.version = version;\n this.versionMatchType = versionMatchType;\n }\n\n public evaluate({\n targetingData,\n }: EvaluationDataType): Result<boolean, KameleoonError> {\n const browserData = targetingData?.[KameleoonData.Browser];\n\n if (browserData) {\n const result = this.checkCondition(browserData);\n\n if (this.error) {\n return Err(this.error);\n }\n\n return Ok(result);\n }\n\n return Ok(false);\n }\n\n private checkCondition(browserData: BrowserDataType): boolean {\n const { browser, version } = browserData;\n\n if (typeof this.browser !== 'string') {\n return false;\n }\n\n if (!this.version) {\n return browser === this.browser;\n }\n\n if (!this.versionMatchType || typeof version !== 'number') {\n return false;\n }\n\n const parsedVersion = parseFloat(this.version);\n\n if (isNaN(parsedVersion)) {\n this.error = new KameleoonError(\n KameleoonException.VersionParse,\n this.version,\n );\n }\n\n switch (this.versionMatchType) {\n case VersionMatchType.EQUAL:\n return browser === this.browser && version === parsedVersion;\n case VersionMatchType.GREATER:\n return browser === this.browser && version > parsedVersion;\n case VersionMatchType.LOWER:\n return browser === this.browser && version < parsedVersion;\n default:\n exhaustCheck(this.versionMatchType);\n }\n }\n}\n"],"mappings":"ovBAUO,KAAM,CAAAA,OAA8B,CAMzCC,WAAWA,CAAAC,CAAA,CAA4D,IAA3D,CAAEC,OAAO,CAAPA,CAAO,CAAEC,OAAO,CAAPA,CAAO,CAAEC,gBAAgB,CAAhBA,CAAoC,CAAC,CAAAH,CAAA,CAAAI,eAAA,wBAAAA,eAAA,wBAAAA,eAAA,iCAAAA,eAAA,sBACnE,IAAI,CAACH,OAAO,CAAGA,CAAO,CACtB,IAAI,CAACC,OAAO,CAAGA,CAAO,CACtB,IAAI,CAACC,gBAAgB,CAAGA,CAC1B,CAEOE,QAAQA,CAAAL,CAAA,CAEyC,IAFxC,CACdM,aAAa,CAAbA,CACkB,CAAC,CAAAN,CAAA,CACnB,KAAM,CAAAO,CAAW,QAAGD,CAAa,WAAbA,CAAa,QAAbA,CAAa,CAAGE,4BAAa,CAACV,OAAO,CAAC,CAE1D,GAAIS,CAAW,CAAE,CACf,KAAM,CAAAE,CAAM,CAAG,IAAI,CAACC,cAAc,CAACH,CAAW,CAAC,CAAC,MAE5C,KAAI,CAACI,KAAK,CACL,GAAAC,UAAG,EAAC,IAAI,CAACD,KAAK,CAAC,CAGjB,GAAAE,SAAE,EAACJ,CAAM,CAClB,CAEA,MAAO,GAAAI,SAAE,IAAM,CACjB,CAEQH,cAAcA,CAACH,CAA4B,CAAW,CAC5D,KAAM,CAAEN,OAAO,CAAPA,CAAO,CAAEC,OAAO,CAAPA,CAAQ,CAAC,CAAGK,CAAW,CAExC,GAA4B,QAAQ,EAAhC,MAAO,KAAI,CAACN,OAAoB,CAClC,SAGF,GAAI,CAAC,IAAI,CAACC,OAAO,CACf,MAAO,CAAAD,CAAO,GAAK,IAAI,CAACA,OAAO,CAGjC,GAAI,CAAC,IAAI,CAACE,gBAAgB,EAAuB,QAAQ,EAA3B,MAAO,CAAAD,CAAoB,CACvD,SAGF,KAAM,CAAAY,CAAa,CAAGC,UAAU,CAAC,IAAI,CAACb,OAAO,CAAC,CAS9C,OAPIc,KAAK,CAACF,CAAa,CAAC,GACtB,IAAI,CAACH,KAAK,CAAG,GAAI,CAAAM,8BAAc,CAC7BC,kCAAkB,CAACC,YAAY,CAC/B,IAAI,CAACjB,OACP,CAAC,EAGK,IAAI,CAACC,gBAAgB,EAC3B,IAAK,CAAAiB,uBAAgB,CAACC,KAAK,CACzB,MAAO,CAAApB,CAAO,GAAK,IAAI,CAACA,OAAO,EAAIC,CAAO,GAAKY,CAAa,CAC9D,IAAK,CAAAM,uBAAgB,CAACE,OAAO,CAC3B,MAAO,CAAArB,CAAO,GAAK,IAAI,CAACA,OAAO,EAAIC,CAAO,CAAGY,CAAa,CAC5D,IAAK,CAAAM,uBAAgB,CAACG,KAAK,CACzB,MAAO,CAAAtB,CAAO,GAAK,IAAI,CAACA,OAAO,EAAIC,CAAO,CAAGY,CAAa,CAC5D,QACE,GAAAU,4BAAY,EAAC,IAAI,CAACrB,gBAAgB,CACtC,CACF,CACF,CAACsB,OAAA,CAAA3B,OAAA,CAAAA,OAAA"}
|