@kameleoon/javascript-sdk-core 4.3.0 → 4.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/CHANGELOG_INTERNAL.md +7 -0
- package/README.md +0 -2
- package/dist/clientConfiguration/clientConfiguration.d.ts +2 -2
- package/dist/clientConfiguration/clientConfiguration.js +1 -1
- package/dist/clientConfiguration/clientConfiguration.js.map +1 -1
- package/dist/clientConfiguration/constants.js +1 -1
- package/dist/clientConfiguration/constants.js.map +1 -1
- package/dist/clientConfiguration/types.d.ts +1 -2
- package/dist/clientConfiguration/types.js.map +1 -1
- package/dist/clientSettings/clientSettings.d.ts +11 -1
- package/dist/clientSettings/clientSettings.js +1 -1
- package/dist/clientSettings/clientSettings.js.map +1 -1
- package/dist/clientSettings/types.d.ts +5 -1
- package/dist/clientSettings/types.js.map +1 -1
- package/dist/eventSource/eventSource.js +1 -1
- package/dist/eventSource/eventSource.js.map +1 -1
- package/dist/index.d.ts +3 -4
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/kameleoonClient.d.ts +1 -1
- package/dist/kameleoonClient.js +1 -1
- package/dist/kameleoonClient.js.map +1 -1
- package/dist/kameleoonClientInterface.d.ts +1 -1
- package/dist/kameleoonClientInterface.js.map +1 -1
- package/dist/kameleoonData/dataManager.d.ts +2 -2
- package/dist/kameleoonData/dataManager.js +1 -1
- package/dist/kameleoonData/dataManager.js.map +1 -1
- package/dist/kameleoonData/dataProcessor.d.ts +2 -2
- package/dist/kameleoonData/dataProcessor.js +1 -1
- package/dist/kameleoonData/dataProcessor.js.map +1 -1
- package/dist/kameleoonData/index.d.ts +0 -1
- package/dist/kameleoonData/index.js +1 -1
- package/dist/kameleoonData/index.js.map +1 -1
- package/dist/kameleoonData/types.d.ts +1 -1
- package/dist/kameleoonData/types.js.map +1 -1
- package/dist/kameleoonError/constants.d.ts +3 -3
- package/dist/kameleoonError/constants.js +1 -1
- package/dist/kameleoonError/constants.js.map +1 -1
- package/dist/kameleoonError/kameleoonError.d.ts +2 -2
- package/dist/kameleoonError/kameleoonError.js +1 -1
- package/dist/kameleoonError/kameleoonError.js.map +1 -1
- package/dist/kameleoonUtils.d.ts +29 -5
- package/dist/kameleoonUtils.js +1 -1
- package/dist/kameleoonUtils.js.map +1 -1
- package/dist/requester/constants.d.ts +1 -8
- package/dist/requester/constants.js +1 -1
- package/dist/requester/constants.js.map +1 -1
- package/dist/requester/index.d.ts +2 -2
- package/dist/requester/index.js +1 -1
- package/dist/requester/index.js.map +1 -1
- package/dist/requester/requester.d.ts +6 -2
- package/dist/requester/requester.js +1 -1
- package/dist/requester/requester.js.map +1 -1
- package/dist/requester/types.d.ts +98 -19
- package/dist/requester/types.js +1 -1
- package/dist/requester/types.js.map +1 -1
- package/dist/requester/urlProvider.d.ts +8 -5
- package/dist/requester/urlProvider.js +1 -1
- package/dist/requester/urlProvider.js.map +1 -1
- package/dist/types.d.ts +17 -5
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utilities/constants.d.ts +1 -0
- package/dist/utilities/constants.js +1 -1
- package/dist/utilities/constants.js.map +1 -1
- package/dist/utilities/utilities.js +1 -1
- package/dist/utilities/utilities.js.map +1 -1
- package/dist/visitorCodeManager/visitorCodeManager.js +1 -1
- package/dist/visitorCodeManager/visitorCodeManager.js.map +1 -1
- package/package.json +2 -2
- package/dist/kameleoonData/constants.d.ts +0 -4
- package/dist/kameleoonData/constants.js +0 -2
- package/dist/kameleoonData/constants.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":["
|
|
1
|
+
{"version":3,"file":"constants.js","names":["NUMBER_OF_RETRIES","exports","Header","UserAgent","ContentType","SdkVersion","SdkType","Authorization","AcceptEncoding","UrlEventType","CustomData","StaticData","Page","Conversion","Activity","Experiment","Geolocation","UrlParameter","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","UrlFirstParameter","UrlQuery","Sse","Map","Events","Visitor","UrlTracking","Visit"],"sources":["../../src/requester/constants.ts"],"sourcesContent":["import {\n EventType,\n ParameterType,\n QueryType,\n StrictEventTypeRecord,\n StrictFirstParameterRecord,\n StrictParameterRecord,\n StrictQueryRecord,\n StrictTrackingRecord,\n TrackingType,\n} from './types';\n\nexport const NUMBER_OF_RETRIES = 2;\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};\n"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { Requester } from './requester';
|
|
2
|
-
export {
|
|
3
|
-
export { HttpMethod, HeadersType, VisitType, TrackParametersType, StaticDataEventType, TrackExperimentParamsType, TrackDataParamsType,
|
|
2
|
+
export { NUMBER_OF_RETRIES, UrlQuery, UrlEventType, UrlParameter, UrlFirstParameter, Header, } from './constants';
|
|
3
|
+
export { HttpMethod, HeadersType, VisitType, RetryCountType, TrackParametersType, StaticDataEventType, TrackExperimentParamsType, TrackDataParamsType, GetVisitorDataResultType, IExternalRequester, KameleoonResponseType, RequestType, SendRequestParametersType, RequestParametersType, } from './types';
|
package/dist/requester/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"GetVisitorDataResultType",{enumerable:!0,get:function(){return _types.GetVisitorDataResultType}}),Object.defineProperty(exports,"Header",{enumerable:!0,get:function(){return _constants.Header}}),Object.defineProperty(exports,"HeadersType",{enumerable:!0,get:function(){return _types.HeadersType}}),Object.defineProperty(exports,"HttpMethod",{enumerable:!0,get:function(){return _types.HttpMethod}}),Object.defineProperty(exports,"IExternalRequester",{enumerable:!0,get:function(){return _types.IExternalRequester}}),Object.defineProperty(exports,"KameleoonResponseType",{enumerable:!0,get:function(){return _types.KameleoonResponseType}}),Object.defineProperty(exports,"NUMBER_OF_RETRIES",{enumerable:!0,get:function(){return _constants.NUMBER_OF_RETRIES}}),Object.defineProperty(exports,"RequestParametersType",{enumerable:!0,get:function(){return _types.RequestParametersType}}),Object.defineProperty(exports,"RequestType",{enumerable:!0,get:function(){return _types.RequestType}}),Object.defineProperty(exports,"Requester",{enumerable:!0,get:function(){return _requester.Requester}}),Object.defineProperty(exports,"RetryCountType",{enumerable:!0,get:function(){return _types.RetryCountType}}),Object.defineProperty(exports,"SendRequestParametersType",{enumerable:!0,get:function(){return _types.SendRequestParametersType}}),Object.defineProperty(exports,"StaticDataEventType",{enumerable:!0,get:function(){return _types.StaticDataEventType}}),Object.defineProperty(exports,"TrackDataParamsType",{enumerable:!0,get:function(){return _types.TrackDataParamsType}}),Object.defineProperty(exports,"TrackExperimentParamsType",{enumerable:!0,get:function(){return _types.TrackExperimentParamsType}}),Object.defineProperty(exports,"TrackParametersType",{enumerable:!0,get:function(){return _types.TrackParametersType}}),Object.defineProperty(exports,"UrlEventType",{enumerable:!0,get:function(){return _constants.UrlEventType}}),Object.defineProperty(exports,"UrlFirstParameter",{enumerable:!0,get:function(){return _constants.UrlFirstParameter}}),Object.defineProperty(exports,"UrlParameter",{enumerable:!0,get:function(){return _constants.UrlParameter}}),Object.defineProperty(exports,"UrlQuery",{enumerable:!0,get:function(){return _constants.UrlQuery}}),Object.defineProperty(exports,"VisitType",{enumerable:!0,get:function(){return _types.VisitType}});var _requester=require("./requester"),_constants=require("./constants"),_types=require("./types");
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/requester/index.ts"],"sourcesContent":["export { Requester } from './requester';\nexport {\n
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/requester/index.ts"],"sourcesContent":["export { Requester } from './requester';\nexport {\n NUMBER_OF_RETRIES,\n UrlQuery,\n UrlEventType,\n UrlParameter,\n UrlFirstParameter,\n Header,\n} from './constants';\nexport {\n HttpMethod,\n HeadersType,\n VisitType,\n RetryCountType,\n TrackParametersType,\n StaticDataEventType,\n TrackExperimentParamsType,\n TrackDataParamsType,\n GetVisitorDataResultType,\n IExternalRequester,\n KameleoonResponseType,\n RequestType,\n SendRequestParametersType,\n RequestParametersType,\n} from './types';\n"],"mappings":""}
|
|
@@ -9,12 +9,16 @@ export interface IRequester {
|
|
|
9
9
|
trackExperiment: ({ visitorCode, dataUrl, variationDataUrl, isUnallocated, isTargetedRule, userAgent, }: TrackExperimentParamsType) => Promise<Result<boolean, void>>;
|
|
10
10
|
}
|
|
11
11
|
export declare class Requester implements IRequester {
|
|
12
|
-
private
|
|
12
|
+
private externalRequester;
|
|
13
13
|
private packageInfo;
|
|
14
|
-
|
|
14
|
+
private trackRetryDelay;
|
|
15
|
+
private timeout;
|
|
16
|
+
constructor({ siteCode, environment, packageInfo, domain, externalRequester, requestTimeout, trackRetryDelay, }: RequesterParamsType);
|
|
15
17
|
getClientConfiguration(timeStamp?: number): Promise<Result<ConfigurationDataType, KameleoonError>>;
|
|
16
18
|
getRemoteData(key: string): Promise<Result<JSONType, KameleoonError>>;
|
|
17
19
|
getVisitorData({ visitorCode, filters, isMappingIdentifier, }: GetVisitorDataParamsType): Promise<Result<GetVisitorDataResultType, KameleoonError>>;
|
|
18
20
|
trackExperiment({ visitorCode, dataUrl, variationDataUrl, userAgent, isUnallocated, }: TrackExperimentParamsType): Promise<Result<boolean, void>>;
|
|
19
21
|
trackData({ visitorCode, body, userAgent, isMappingIdentifier, }: TrackDataParamsType): Promise<Result<boolean, void>>;
|
|
22
|
+
private track;
|
|
23
|
+
private sendRequest;
|
|
20
24
|
}
|
|
@@ -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,
|
|
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"),_types=require("./types"),_urlProvider=require("./urlProvider");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 Requester{constructor(a){let{siteCode:b,environment:c,packageInfo:d,domain:e,externalRequester:f,requestTimeout:g,trackRetryDelay:h}=a;_defineProperty(this,"externalRequester",void 0),_defineProperty(this,"packageInfo",void 0),_defineProperty(this,"trackRetryDelay",void 0),_defineProperty(this,"timeout",void 0),this.externalRequester=f,this.trackRetryDelay=h,this.packageInfo=d,this.timeout=g,_urlProvider.UrlProvider.initialize({siteCode:b,domain:e,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},d=_constants.NUMBER_OF_RETRIES+1;try{let a={message:""};for(let e=0;e<d;e++){const d=await this.sendRequest({url:b,requestType:_types.RequestType.Configuration,retryCount:e,headers:c});if(d.ok){const a=await d.json();return(0,_tsRes.Ok)(a)}if(e===_constants.NUMBER_OF_RETRIES&&d.text){const b=await d.text();a=JSON.parse(b)}}return(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.MaximumRetriesReached,a.message))}catch(a){return(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.ClientConfiguration,a))}}async getRemoteData(a){const b=_urlProvider.UrlProvider.getRemoteDataUrl(a);try{const a=await this.sendRequest({url:b,requestType:_types.RequestType.RemoteData,retryCount:0});if(!a.ok){if(a.text){var c;const b=await a.text(),d=null===(c=JSON.parse(b))||void 0===c?void 0:c.message;return(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.RemoteData,d))}return(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.RemoteData,"Unknown Reason - no `text()` was found for a response"))}const d=await a.json();return(0,_tsRes.Ok)(d)}catch(a){return(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.RemoteData,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.sendRequest({url:e,requestType:_types.RequestType.RemoteData,retryCount:0});if(!a.ok){if(a.text){var f;const b=await a.text(),c=null===(f=JSON.parse(b))||void 0===f?void 0:f.message;return(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.RemoteData,c))}return(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.RemoteData,"Unknown Reason - no 'text()' was found for a response"))}const b=await a.json();return(0,_tsRes.Ok)(b)}catch(a){return(0,_tsRes.Err)(new _kameleoonError.KameleoonError(_kameleoonError.KameleoonException.RemoteData,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.track({url:g,headers:k,requestType:_types.RequestType.Tracking,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.track({url:f,requestType:_types.RequestType.Tracking,headers:h,body:g});return(0,_tsRes.Ok)(a)}catch(_){return(0,_tsRes.Err)()}}async track(a){const b=_constants.NUMBER_OF_RETRIES+1;for(let c=0;c<b;c++){const b=await this.sendRequest(_objectSpread(_objectSpread({},a),{},{retryCount:c}));if(b.ok)return!0;await new Promise(a=>setTimeout(a,this.trackRetryDelay))}return!1}async sendRequest(a){let{requestType:b,url:c,retryCount:d,headers:e,body:f}=a;const g=new AbortController,h=setTimeout(()=>g.abort(),this.timeout);let i;switch(b){case _types.RequestType.RemoteData:case _types.RequestType.Configuration:i={headers:e,signal:g.signal,method:_types.HttpMethod.Get};break;case _types.RequestType.Tracking:if(!f)throw new Error("Internal Error: Tracking request should always contain body");i={method:_types.HttpMethod.Post,headers:e,signal:g.signal,body:f}}const j=_objectSpread(_objectSpread({},i),{},{headers:e,signal:g.signal}),k=await this.externalRequester.sendRequest({url:c,retryCount:d,requestType:b,parameters:j});return clearTimeout(h),k}}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","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":"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"}
|
|
1
|
+
{"version":3,"file":"requester.js","names":["Requester","constructor","a","siteCode","environment","packageInfo","domain","externalRequester","requestTimeout","trackRetryDelay","_defineProperty","timeout","UrlProvider","initialize","getClientConfiguration","timeStamp","requestUrl","getClientConfigurationUrl","headers","Header","SdkType","type","toLowerCase","SdkVersion","version","requests","NUMBER_OF_RETRIES","responseInfo","message","i","response","sendRequest","url","requestType","RequestType","Configuration","retryCount","ok","data","json","Ok","text","JSON","parse","Err","KameleoonError","KameleoonException","MaximumRetriesReached","err","ClientConfiguration","getRemoteData","key","getRemoteDataUrl","RemoteData","c","getVisitorData","visitorCode","filters","isMappingIdentifier","getVisitorDataUrl","f","trackExperiment","dataUrl","variationDataUrl","userAgent","isUnallocated","getTrackingUrl","unallocatedAddition","UrlEventType","Activity","UrlParameter","Nonce","Utilities","getNonce","bodyAddition","extendedBody","UserAgent","track","Tracking","body","_","trackData","requestBody","parameters","_objectSpread","Promise","resolve","setTimeout","controller","AbortController","timeoutId","abort","variableParameters","signal","method","HttpMethod","Get","Error","Post","clearTimeout","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 {\n UrlParameter,\n Header,\n UrlEventType,\n NUMBER_OF_RETRIES,\n} from './constants';\nimport {\n RequesterParamsType,\n TrackDataParamsType,\n GetVisitorDataResultType,\n TrackExperimentParamsType,\n HeadersType,\n GetVisitorDataParamsType,\n IExternalRequester,\n RequestType,\n HttpMethod,\n InternalSendRequestParametersType,\n KameleoonResponseType,\n RequestParametersType,\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 externalRequester: IExternalRequester;\n private packageInfo: ExternalPackageInfoType;\n private trackRetryDelay: number;\n private timeout: number;\n\n constructor({\n siteCode,\n environment,\n packageInfo,\n domain,\n externalRequester,\n requestTimeout,\n trackRetryDelay,\n }: RequesterParamsType) {\n this.externalRequester = externalRequester;\n this.trackRetryDelay = trackRetryDelay;\n this.packageInfo = packageInfo;\n this.timeout = requestTimeout;\n\n UrlProvider.initialize({ siteCode, domain, 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 // --- Note ---\n // Initial request + NUMBER_OF_RETRIES\n const requests = NUMBER_OF_RETRIES + 1;\n\n try {\n let responseInfo = { message: '' };\n\n for (let i = 0; i < requests; i++) {\n const response = await this.sendRequest({\n url: requestUrl,\n requestType: RequestType.Configuration,\n retryCount: i,\n headers,\n });\n\n if (response.ok) {\n const data = await response.json();\n\n return Ok(data as ConfigurationDataType);\n }\n\n // --- Note ---\n // Last retry\n if (i === NUMBER_OF_RETRIES) {\n if (response.text) {\n const text = await response.text();\n responseInfo = JSON.parse(text);\n }\n }\n }\n\n return Err(\n new KameleoonError(\n KameleoonException.MaximumRetriesReached,\n responseInfo.message,\n ),\n );\n } catch (err) {\n return Err(\n new KameleoonError(KameleoonException.ClientConfiguration, err),\n );\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.sendRequest({\n url: requestUrl,\n requestType: RequestType.RemoteData,\n retryCount: 0,\n });\n\n if (!response.ok) {\n if (response.text) {\n const text = await response.text();\n const message = JSON.parse(text)?.message;\n\n return Err(\n new KameleoonError(KameleoonException.RemoteData, message),\n );\n }\n\n return Err(\n new KameleoonError(\n KameleoonException.RemoteData,\n 'Unknown Reason - no `text()` was found for a response',\n ),\n );\n }\n\n const data = await response.json();\n\n return Ok(data);\n } catch (err) {\n return Err(new KameleoonError(KameleoonException.RemoteData, err));\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.sendRequest({\n url: requestUrl,\n requestType: RequestType.RemoteData,\n retryCount: 0,\n });\n\n if (!response.ok) {\n if (response.text) {\n const text = await response.text();\n const message = JSON.parse(text)?.message;\n\n return Err(\n new KameleoonError(KameleoonException.RemoteData, message),\n );\n }\n\n return Err(\n new KameleoonError(\n KameleoonException.RemoteData,\n \"Unknown Reason - no 'text()' was found for a response\",\n ),\n );\n }\n\n const data = await response.json();\n\n return Ok(data as GetVisitorDataResultType);\n } catch (err) {\n return Err(new KameleoonError(KameleoonException.RemoteData, err));\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.track({\n url,\n headers,\n requestType: RequestType.Tracking,\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.track({\n url,\n requestType: RequestType.Tracking,\n headers,\n body: requestBody,\n });\n\n return Ok(response);\n } catch (_) {\n return Err();\n }\n }\n\n private async track(\n parameters: Omit<InternalSendRequestParametersType, 'retryCount'>,\n ): Promise<boolean> {\n // --- Note ---\n // Initial request + NUMBER_OF_RETRIES\n const requests = NUMBER_OF_RETRIES + 1;\n\n for (let i = 0; i < requests; i++) {\n const response = await this.sendRequest({\n ...parameters,\n retryCount: i,\n });\n\n if (response.ok) {\n return true;\n }\n\n await new Promise((resolve) => setTimeout(resolve, this.trackRetryDelay));\n }\n\n return false;\n }\n\n private async sendRequest({\n requestType,\n url,\n retryCount,\n headers,\n body,\n }: InternalSendRequestParametersType): Promise<KameleoonResponseType> {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), this.timeout);\n\n let variableParameters: RequestParametersType[RequestType];\n\n switch (requestType) {\n case RequestType.RemoteData:\n case RequestType.Configuration:\n variableParameters = {\n headers,\n signal: controller.signal,\n method: HttpMethod.Get,\n };\n break;\n case RequestType.Tracking:\n if (!body) {\n throw new Error(\n 'Internal Error: Tracking request should always contain body',\n );\n }\n\n variableParameters = {\n method: HttpMethod.Post,\n headers,\n signal: controller.signal,\n body,\n };\n break;\n }\n\n const parameters = {\n ...variableParameters,\n headers,\n signal: controller.signal,\n };\n\n const response = await this.externalRequester.sendRequest({\n url,\n retryCount: retryCount as 0 | 1 | 2,\n requestType,\n parameters,\n });\n\n clearTimeout(timeoutId);\n\n return response;\n }\n}\n"],"mappings":"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"}
|
|
@@ -4,16 +4,33 @@ import { BrowserIndexMap, BrowserType, OperatingSystemType } from '../kameleoonD
|
|
|
4
4
|
import { DeviceType, KCSType, OperatingSystemIndexMap } from '../kameleoonData/types';
|
|
5
5
|
import { Header } from './constants';
|
|
6
6
|
import { VisitorDataFiltersType } from '../utilities';
|
|
7
|
+
export declare enum UrlType {
|
|
8
|
+
DataApi = "dataApi",
|
|
9
|
+
Events = "events",
|
|
10
|
+
ClientConfiguration = "clientConfiguration"
|
|
11
|
+
}
|
|
12
|
+
export type DomainsType = {
|
|
13
|
+
[key in UrlType]: DomainType;
|
|
14
|
+
};
|
|
15
|
+
export type DomainType = {
|
|
16
|
+
subdomain: string;
|
|
17
|
+
topLevelDomain: string;
|
|
18
|
+
secondLevelDomain: string;
|
|
19
|
+
};
|
|
7
20
|
export type UrlProviderInitializeParamsType = {
|
|
8
21
|
siteCode: string;
|
|
22
|
+
domain: string | null;
|
|
9
23
|
packageInfo: ExternalPackageInfoType;
|
|
10
|
-
environment
|
|
24
|
+
environment: Environment;
|
|
11
25
|
};
|
|
12
26
|
export type RequesterParamsType = {
|
|
13
27
|
siteCode: string;
|
|
14
|
-
|
|
28
|
+
domain: string | null;
|
|
29
|
+
environment: Environment;
|
|
15
30
|
packageInfo: ExternalPackageInfoType;
|
|
16
|
-
|
|
31
|
+
externalRequester: IExternalRequester;
|
|
32
|
+
trackRetryDelay: number;
|
|
33
|
+
requestTimeout: number;
|
|
17
34
|
};
|
|
18
35
|
export type TrackExperimentParamsType = {
|
|
19
36
|
dataUrl: string;
|
|
@@ -170,24 +187,86 @@ export type TrackParametersType = {
|
|
|
170
187
|
body: string;
|
|
171
188
|
};
|
|
172
189
|
/**
|
|
173
|
-
* @
|
|
190
|
+
* @type `RequestParametersType` - a type of parameters available in the request for each request type
|
|
174
191
|
* */
|
|
175
|
-
export
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
192
|
+
export type RequestParametersType = {
|
|
193
|
+
[RequestType.Configuration]: {
|
|
194
|
+
headers?: HeadersType;
|
|
195
|
+
signal: AbortSignal | null;
|
|
196
|
+
method: HttpMethod.Get;
|
|
197
|
+
};
|
|
198
|
+
[RequestType.Tracking]: {
|
|
199
|
+
headers?: HeadersType;
|
|
200
|
+
body: string;
|
|
201
|
+
signal: AbortSignal | null;
|
|
202
|
+
method: HttpMethod.Post;
|
|
203
|
+
};
|
|
204
|
+
[RequestType.RemoteData]: {
|
|
205
|
+
signal: AbortSignal | null;
|
|
206
|
+
method: HttpMethod.Get;
|
|
207
|
+
};
|
|
208
|
+
};
|
|
209
|
+
/**
|
|
210
|
+
* @enum `RequestType` - an enum of available request types
|
|
211
|
+
* */
|
|
212
|
+
export declare enum RequestType {
|
|
213
|
+
Configuration = "configuration",
|
|
214
|
+
Tracking = "tracking",
|
|
215
|
+
RemoteData = "remoteData"
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* @type `RetryCountType` - a type of retry count available for each request type
|
|
219
|
+
* @param {0 | 1 | 2} `RequestType.Configuration` - a count of retries for configuration request (`0` is the initial request)
|
|
220
|
+
* @param {0 | 1 | 2} `RequestType.Tracking` - a count of retries for tracking request (`0` is the initial request)
|
|
221
|
+
* @param {0} `RequestType.RemoteData` - a count of retries for remote data request (`0` is the initial request)
|
|
222
|
+
* */
|
|
223
|
+
export type RetryCountType = {
|
|
224
|
+
[RequestType.Configuration]: 0 | 1 | 2;
|
|
225
|
+
[RequestType.Tracking]: 0 | 1 | 2;
|
|
226
|
+
[RequestType.RemoteData]: 0;
|
|
227
|
+
};
|
|
228
|
+
/**
|
|
229
|
+
* @type `SendRequestParametersType` - a type of parameters available to send a request
|
|
230
|
+
* @param {T extends RequestType} T - a type of request constrained by `RequestType`
|
|
231
|
+
* @param {string} url - url address
|
|
232
|
+
* @param {RequestParametersType[T]} parameters - parameters of the request depending on the request type
|
|
233
|
+
* @param {RetryCountType | undefined} retryCount - a count of retries, the possible count of retries depends on `RequestType`
|
|
234
|
+
* */
|
|
235
|
+
export type SendRequestParametersType<T extends RequestType> = {
|
|
236
|
+
requestType: T;
|
|
237
|
+
url: string;
|
|
238
|
+
retryCount?: RetryCountType[T];
|
|
239
|
+
parameters: RequestParametersType[T];
|
|
240
|
+
};
|
|
241
|
+
/**
|
|
242
|
+
* @type `KameleoonResponse` - a type of response that is assignable to most libraries `Response` objects
|
|
243
|
+
* @property {number} status - a status of the response
|
|
244
|
+
* @property {() => Promise<JSONType>} json - a method to parse the response to JSON
|
|
245
|
+
* @property {() => Promise<string>| undefined} text - a method to parse the response to text
|
|
246
|
+
* @property {boolean} ok - a boolean value that indicates if the response is ok
|
|
247
|
+
* */
|
|
248
|
+
export type KameleoonResponseType = {
|
|
249
|
+
status: number;
|
|
250
|
+
json: () => Promise<JSONType>;
|
|
251
|
+
text?: () => Promise<string>;
|
|
252
|
+
ok: boolean;
|
|
253
|
+
};
|
|
254
|
+
export type InternalSendRequestParametersType = {
|
|
255
|
+
requestType: RequestType;
|
|
256
|
+
url: string;
|
|
257
|
+
retryCount: number;
|
|
258
|
+
headers?: HeadersType;
|
|
259
|
+
body?: string;
|
|
260
|
+
};
|
|
261
|
+
/**
|
|
262
|
+
* @interface `IExternalRequester` - an interface of External Requester which will be used to perform requests.
|
|
263
|
+
* */
|
|
264
|
+
export interface IExternalRequester {
|
|
187
265
|
/**
|
|
188
|
-
* @method
|
|
189
|
-
* @param {
|
|
266
|
+
* @method sendRequest - send a request
|
|
267
|
+
* @param {SendRequestParametersType<T>} parameters - parameters of the request depending on the request type
|
|
268
|
+
* @returns {Promise<KameleoonResponseType>} - a promise that resolves to the response
|
|
190
269
|
* */
|
|
191
|
-
|
|
270
|
+
sendRequest: <T extends RequestType>({ requestType, url, parameters, }: SendRequestParametersType<T>) => Promise<KameleoonResponseType>;
|
|
192
271
|
}
|
|
193
272
|
export {};
|
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","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"];
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.UrlType=exports.RequestType=exports.HttpMethod=exports.DataApiQuery=void 0;let UrlType=exports.UrlType=function(a){return a.DataApi="dataApi",a.Events="events",a.ClientConfiguration="clientConfiguration",a}({}),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"];let RequestType=exports.RequestType=function(a){return a.Configuration="configuration",a.Tracking="tracking",a.RemoteData="remoteData",a}({});
|
|
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 {\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
|
+
{"version":3,"file":"types.js","names":["UrlType","exports","DataApi","Events","ClientConfiguration","HttpMethod","Get","Post","DataApiQuery","VisitEvent","VisitData","DataMap","EVENT_TYPE_KEYS","PARAMETER_KEYS","TRACKING_KEYS","QUERY_KEYS","RequestType","Configuration","Tracking","RemoteData"],"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 enum UrlType {\n DataApi = 'dataApi',\n Events = 'events',\n ClientConfiguration = 'clientConfiguration',\n}\n\nexport type DomainsType = {\n [key in UrlType]: DomainType;\n};\n\nexport type DomainType = {\n subdomain: string;\n topLevelDomain: string;\n secondLevelDomain: string;\n};\n\nexport type UrlProviderInitializeParamsType = {\n siteCode: string;\n domain: string | null;\n packageInfo: ExternalPackageInfoType;\n environment: Environment;\n};\n\nexport type RequesterParamsType = {\n siteCode: string;\n domain: string | null;\n environment: Environment;\n packageInfo: ExternalPackageInfoType;\n externalRequester: IExternalRequester;\n trackRetryDelay: number;\n requestTimeout: number;\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 * @type `RequestParametersType` - a type of parameters available in the request for each request type\n * */\nexport type RequestParametersType = {\n [RequestType.Configuration]: {\n headers?: HeadersType;\n signal: AbortSignal | null;\n method: HttpMethod.Get;\n };\n [RequestType.Tracking]: {\n headers?: HeadersType;\n body: string;\n signal: AbortSignal | null;\n method: HttpMethod.Post;\n };\n [RequestType.RemoteData]: {\n signal: AbortSignal | null;\n method: HttpMethod.Get;\n };\n};\n\n/**\n * @enum `RequestType` - an enum of available request types\n * */\nexport enum RequestType {\n Configuration = 'configuration',\n Tracking = 'tracking',\n RemoteData = 'remoteData',\n}\n\n/**\n * @type `RetryCountType` - a type of retry count available for each request type\n * @param {0 | 1 | 2} `RequestType.Configuration` - a count of retries for configuration request (`0` is the initial request)\n * @param {0 | 1 | 2} `RequestType.Tracking` - a count of retries for tracking request (`0` is the initial request)\n * @param {0} `RequestType.RemoteData` - a count of retries for remote data request (`0` is the initial request)\n * */\nexport type RetryCountType = {\n [RequestType.Configuration]: 0 | 1 | 2;\n [RequestType.Tracking]: 0 | 1 | 2;\n [RequestType.RemoteData]: 0;\n};\n\n/**\n * @type `SendRequestParametersType` - a type of parameters available to send a request\n * @param {T extends RequestType} T - a type of request constrained by `RequestType`\n * @param {string} url - url address\n * @param {RequestParametersType[T]} parameters - parameters of the request depending on the request type\n * @param {RetryCountType | undefined} retryCount - a count of retries, the possible count of retries depends on `RequestType`\n * */\nexport type SendRequestParametersType<T extends RequestType> = {\n requestType: T;\n url: string;\n retryCount?: RetryCountType[T];\n parameters: RequestParametersType[T];\n};\n\n// TODO:\n// - `text` parameter should become non-optional in core v5\n// - All according `if` checks should be removed from `./requester.ts`\n/**\n * @type `KameleoonResponse` - a type of response that is assignable to most libraries `Response` objects\n * @property {number} status - a status of the response\n * @property {() => Promise<JSONType>} json - a method to parse the response to JSON\n * @property {() => Promise<string>| undefined} text - a method to parse the response to text\n * @property {boolean} ok - a boolean value that indicates if the response is ok\n * */\nexport type KameleoonResponseType = {\n status: number;\n json: () => Promise<JSONType>;\n text?: () => Promise<string>;\n ok: boolean;\n};\n\nexport type InternalSendRequestParametersType = {\n requestType: RequestType;\n url: string;\n retryCount: number;\n headers?: HeadersType;\n body?: string;\n};\n\n/**\n * @interface `IExternalRequester` - an interface of External Requester which will be used to perform requests.\n * */\nexport interface IExternalRequester {\n /**\n * @method sendRequest - send a request\n * @param {SendRequestParametersType<T>} parameters - parameters of the request depending on the request type\n * @returns {Promise<KameleoonResponseType>} - a promise that resolves to the response\n * */\n sendRequest: <T extends RequestType>({\n requestType,\n url,\n parameters,\n }: SendRequestParametersType<T>) => Promise<KameleoonResponseType>;\n}\n"],"mappings":"0JAeY,CAAAA,OAAO,CAAAC,OAAA,CAAAD,OAAA,UAAPA,CAAO,QAAP,CAAAA,CAAO,CAAAE,OAAA,WAAPF,CAAO,CAAAG,MAAA,UAAPH,CAAO,CAAAI,mBAAA,uBAAPJ,CAAO,MAiKPK,UAAU,CAAAJ,OAAA,CAAAI,UAAA,UAAVA,CAAU,QAAV,CAAAA,CAAU,CAAAC,GAAA,OAAVD,CAAU,CAAAE,IAAA,QAAVF,CAAU,MAKVG,YAAY,CAAAP,OAAA,CAAAO,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,IAmEnD,CAAAC,WAAW,CAAAf,OAAA,CAAAe,WAAA,UAAXA,CAAW,QAAX,CAAAA,CAAW,CAAAC,aAAA,iBAAXD,CAAW,CAAAE,QAAA,YAAXF,CAAW,CAAAG,UAAA,cAAXH,CAAW"}
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
import { GetVisitorDataUrlParamsType, UrlProviderInitializeParamsType } from './types';
|
|
2
2
|
export declare class UrlProvider {
|
|
3
|
-
private static siteCode;
|
|
4
|
-
private static environment?;
|
|
5
3
|
private static ready;
|
|
4
|
+
private static siteCode;
|
|
5
|
+
private static isCustomDomain;
|
|
6
|
+
private static environment;
|
|
6
7
|
private static packageInfo;
|
|
7
|
-
private static
|
|
8
|
-
static dataApiTopLevelDomain
|
|
9
|
-
static initialize({ siteCode, packageInfo, environment, }: UrlProviderInitializeParamsType): void;
|
|
8
|
+
private static domains;
|
|
9
|
+
static dataApiTopLevelDomain?: string;
|
|
10
|
+
static initialize({ siteCode, domain, packageInfo, environment, }: UrlProviderInitializeParamsType): void;
|
|
10
11
|
static setDataApiDomain(domain: string): void;
|
|
11
12
|
static getClientConfigurationUrl(timeStamp?: number): string;
|
|
13
|
+
static getEventSourceUrl(): string;
|
|
12
14
|
static getRemoteDataUrl(key: string): string;
|
|
13
15
|
static getVisitorDataUrl({ visitorCode, filters, isMappingIdentifier, }: GetVisitorDataUrlParamsType): string;
|
|
14
16
|
static getTrackingUrl(visitorCode: string, isMappingIdentifier?: boolean): string;
|
|
15
17
|
private static isInitialized;
|
|
16
18
|
private static getDataApiUrl;
|
|
19
|
+
private static setDomains;
|
|
17
20
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.UrlProvider=void 0;var _constants=require("./constants"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.UrlProvider=void 0;var _types=require("../types"),_constants=require("./constants"),_types2=require("./types");function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function _defineProperty(a,b,c){return b=_toPropertyKey(b),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,domain:c,packageInfo:d,environment:e}=a;this.siteCode=b,this.environment=e,this.packageInfo=d,this.ready=!0,this.setDomains(c)}static setDataApiDomain(a){var b;if(!this.isCustomDomain){const c=a.split(".");if(3===c.length){const[a,d,e]=c;this.domains[_types2.UrlType.DataApi]={subdomain:a,secondLevelDomain:d,topLevelDomain:null!==(b=this.dataApiTopLevelDomain)&&void 0!==b?b:e}}}}static getClientConfigurationUrl(a){this.isInitialized();const{subdomain:b,topLevelDomain:c,secondLevelDomain:d}=this.domains[_types2.UrlType.ClientConfiguration],e="https://".concat(b,".").concat(d,".").concat(c,"/"),f=this.environment===_types.Environment.Production?"":_constants.UrlFirstParameter.Environment+this.environment;let g="";return a&&(f?g=_constants.UrlParameter.Ts+a:g=_constants.UrlFirstParameter.Ts+a),e+this.siteCode+f+g}static getEventSourceUrl(){this.isInitialized();const{subdomain:a,topLevelDomain:b,secondLevelDomain:c}=this.domains[_types2.UrlType.Events];return"https://".concat(a,".").concat(c,".").concat(b,":8110/").concat(_constants.UrlQuery.Sse).concat(this.siteCode)}static getRemoteDataUrl(a){return this.isInitialized(),this.getDataApiUrl(_types2.DataApiQuery.DataMap)+this.siteCode+_constants.UrlParameter.Key+encodeURI(a)}static getVisitorDataUrl(a){let{visitorCode:b,filters:c,isMappingIdentifier:d}=a;this.isInitialized();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:"",x=o?_constants.UrlParameter.Kcs+!0:"",y="number"==typeof f?_constants.UrlParameter.MaxNumberPreviousVisits+f:_constants.UrlParameter.MaxNumberPreviousVisits+1;return this.getDataApiUrl(_types2.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(_types2.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{subdomain:b,topLevelDomain:c,secondLevelDomain:d}=this.domains[_types2.UrlType.DataApi];if(!b||!c||!d)throw new Error("Data API domain is not set");const e="https://".concat(b,".").concat(d,".").concat(c);return a===_types2.DataApiQuery.VisitEvent?"".concat(e,"/").concat(_constants.UrlTracking.Visit+_constants.UrlQuery.Events):a===_types2.DataApiQuery.VisitData?"".concat(e,"/").concat(_constants.UrlTracking.Visit+_constants.UrlQuery.Visitor):a===_types2.DataApiQuery.DataMap?"".concat(e,"/").concat(_constants.UrlTracking.Map+_constants.UrlQuery.Map):void 0}static setDomains(a){if(!a)return;this.isCustomDomain=!0;const b=a.split("."),[c,d]=b,e={secondLevelDomain:c,topLevelDomain:d};this.domains={[_types2.UrlType.DataApi]:_objectSpread(_objectSpread({},this.domains[_types2.UrlType.DataApi]),e),[_types2.UrlType.Events]:_objectSpread(_objectSpread({},this.domains[_types2.UrlType.Events]),e),[_types2.UrlType.ClientConfiguration]:_objectSpread(_objectSpread({},this.domains[_types2.UrlType.ClientConfiguration]),e)}}}exports.UrlProvider=UrlProvider,_defineProperty(UrlProvider,"ready",!1),_defineProperty(UrlProvider,"siteCode",void 0),_defineProperty(UrlProvider,"isCustomDomain",!1),_defineProperty(UrlProvider,"environment",void 0),_defineProperty(UrlProvider,"packageInfo",void 0),_defineProperty(UrlProvider,"domains",{[_types2.UrlType.DataApi]:{subdomain:"data",topLevelDomain:"io",secondLevelDomain:"kameleoon"},[_types2.UrlType.Events]:{subdomain:"events",topLevelDomain:"com",secondLevelDomain:"kameleoon"},[_types2.UrlType.ClientConfiguration]:{subdomain:"sdk-config",topLevelDomain:"eu",secondLevelDomain:"kameleoon"}}),_defineProperty(UrlProvider,"dataApiTopLevelDomain",void 0);
|
|
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","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":"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"}
|
|
1
|
+
{"version":3,"file":"urlProvider.js","names":["UrlProvider","initialize","a","siteCode","domain","packageInfo","environment","ready","setDomains","setDataApiDomain","b","isCustomDomain","parts","split","length","subdomain","secondLevelDomain","topLevelDomain","domains","UrlType","DataApi","dataApiTopLevelDomain","getClientConfigurationUrl","timeStamp","isInitialized","ClientConfiguration","baseUrl","concat","environmentParam","Environment","Production","UrlFirstParameter","timeStampParam","UrlParameter","Ts","getEventSourceUrl","Events","UrlQuery","Sse","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","UrlTracking","Visit","Visitor","Map","domainData","_objectSpread","exports","_defineProperty"],"sources":["../../src/requester/urlProvider.ts"],"sourcesContent":["import { Environment, ExternalPackageInfoType } from 'src/types';\nimport {\n UrlFirstParameter,\n UrlParameter,\n UrlTracking,\n UrlQuery,\n} from './constants';\nimport {\n DataApiQuery,\n DomainsType,\n GetVisitorDataUrlParamsType,\n UrlProviderInitializeParamsType,\n UrlType,\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 ready = false;\n private static siteCode: string;\n private static isCustomDomain = false;\n private static environment: Environment;\n private static packageInfo: ExternalPackageInfoType;\n private static domains: DomainsType = {\n [UrlType.DataApi]: {\n subdomain: 'data',\n topLevelDomain: 'io',\n secondLevelDomain: 'kameleoon',\n },\n [UrlType.Events]: {\n subdomain: 'events',\n topLevelDomain: 'com',\n secondLevelDomain: 'kameleoon',\n },\n [UrlType.ClientConfiguration]: {\n subdomain: 'sdk-config',\n topLevelDomain: 'eu',\n secondLevelDomain: 'kameleoon',\n },\n };\n\n // --- Note ---\n // Dirty workaround before the `DependencyManager` implementation\n // see a note above\n public static dataApiTopLevelDomain?: string;\n\n public static initialize({\n siteCode,\n domain,\n packageInfo,\n environment,\n }: UrlProviderInitializeParamsType) {\n this.siteCode = siteCode;\n this.environment = environment;\n this.packageInfo = packageInfo;\n this.ready = true;\n\n this.setDomains(domain);\n }\n\n public static setDataApiDomain(domain: string): void {\n if (this.isCustomDomain) {\n return;\n }\n\n const parts = domain.split('.');\n\n if (parts.length !== 3) {\n return;\n }\n\n const [subdomain, secondLevelDomain, topLevelDomain] = parts;\n\n this.domains[UrlType.DataApi] = {\n subdomain,\n secondLevelDomain,\n topLevelDomain: this.dataApiTopLevelDomain ?? topLevelDomain,\n };\n }\n\n public static getClientConfigurationUrl(timeStamp?: number): string {\n this.isInitialized();\n\n const { subdomain, topLevelDomain, secondLevelDomain } =\n this.domains[UrlType.ClientConfiguration];\n\n const baseUrl = `https://${subdomain}.${secondLevelDomain}.${topLevelDomain}/`;\n const environmentParam =\n this.environment === Environment.Production\n ? ''\n : UrlFirstParameter.Environment + this.environment;\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 baseUrl + this.siteCode + environmentParam + timeStampParam;\n }\n\n public static getEventSourceUrl(): string {\n this.isInitialized();\n\n const { subdomain, topLevelDomain, secondLevelDomain } =\n this.domains[UrlType.Events];\n\n return `https://${subdomain}.${secondLevelDomain}.${topLevelDomain}:8110/${UrlQuery.Sse}${this.siteCode}`;\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 this.isInitialized();\n\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 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 const kcsParameter = kcs ? UrlParameter.Kcs + true : '';\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 { subdomain, topLevelDomain, secondLevelDomain } =\n this.domains[UrlType.DataApi];\n\n if (!subdomain || !topLevelDomain || !secondLevelDomain) {\n throw new Error('Data API domain is not set');\n }\n\n const domain = `https://${subdomain}.${secondLevelDomain}.${topLevelDomain}`;\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 private static setDomains(domain: string | null): void {\n if (!domain) {\n return;\n }\n\n this.isCustomDomain = true;\n\n const parts = domain.split('.');\n\n const [secondLevelDomain, topLevelDomain] = parts;\n\n const domainData = {\n secondLevelDomain,\n topLevelDomain,\n };\n\n this.domains = {\n [UrlType.DataApi]: {\n ...this.domains[UrlType.DataApi],\n ...domainData,\n },\n [UrlType.Events]: {\n ...this.domains[UrlType.Events],\n ...domainData,\n },\n [UrlType.ClientConfiguration]: {\n ...this.domains[UrlType.ClientConfiguration],\n ...domainData,\n },\n };\n }\n}\n"],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ConfigurationDataType, JSONType } from './clientConfiguration/types';
|
|
1
|
+
import { ClientConfigurationDataType, ConfigurationDataType, JSONType } from './clientConfiguration/types';
|
|
2
2
|
import { SdkLanguageType } from './constants';
|
|
3
3
|
import { IExternalEventSource } from './eventSource';
|
|
4
|
-
import {
|
|
4
|
+
import { IExternalRequester, RequestType } from './requester';
|
|
5
5
|
import { IExternalStorage } from './storage';
|
|
6
6
|
import { VisitorDataFiltersType } from './utilities';
|
|
7
7
|
import { IVisitorCodeManager } from './visitorCodeManager';
|
|
@@ -19,7 +19,9 @@ import { IVisitorCodeManager } from './visitorCodeManager';
|
|
|
19
19
|
* - React/React Native SDK: `undefined` (no cleanup)
|
|
20
20
|
* - NodeJS SDK: `30`
|
|
21
21
|
*
|
|
22
|
-
* @param {string | undefined} domain - domain which cookie belongs to
|
|
22
|
+
* @param {string | undefined} domain - domain which cookie which Kameleoon visitor code belongs to. Note: parameter `domain` is deprecated and will be removed in the next major update, use `cookieDomain` instead
|
|
23
|
+
* @param {string | undefined} cookieDomain - domain which cookie which Kameleoon visitor code belongs to
|
|
24
|
+
* @param {string | undefined} networkDomain - custom domain to be used in place of all requests URL, domain format is `example.com`, if the format is incorrect, default Kameleoon domain will be used
|
|
23
25
|
* @param {number | undefined} requestTimeout - timeout in _milliseconds_ for requests
|
|
24
26
|
* @defaultvalue `10_000` (10 seconds)
|
|
25
27
|
* */
|
|
@@ -29,6 +31,8 @@ export type SDKConfigurationType = {
|
|
|
29
31
|
targetingDataCleanupInterval?: number;
|
|
30
32
|
requestTimeout?: number;
|
|
31
33
|
domain?: string;
|
|
34
|
+
networkDomain?: string;
|
|
35
|
+
cookieDomain?: string;
|
|
32
36
|
};
|
|
33
37
|
/**
|
|
34
38
|
* @param {string} siteCode - client's siteCode defined on Kameleoon platform
|
|
@@ -53,7 +57,7 @@ export type ExternalPackageInfoType = {
|
|
|
53
57
|
* @param {IExternalEventSourceConstructor | undefined} externalEventSource - constructor for building external event source implementation
|
|
54
58
|
* @param {ExternalPackageInfoType} externalPackageInfo - external package info, used to get package version and name
|
|
55
59
|
* @param {ConfigurationDataType} externalClientConfiguration - external fetched client configuration
|
|
56
|
-
* @param {
|
|
60
|
+
* @param {IExternalRequester} externalRequester - external requester , used to track or get data
|
|
57
61
|
* @param {IVisitorCodeManager} externalVisitorCodeManager - external visitor code manager, used to get or generate visitor code
|
|
58
62
|
* @param {number} targetingDataCleanupInterval - interval in *minutes* for cleaning up targeting data, minimum value is 1 minute
|
|
59
63
|
* */
|
|
@@ -62,7 +66,7 @@ export type InternalSDKConfigurationType = {
|
|
|
62
66
|
externalEventSource: IExternalEventSource;
|
|
63
67
|
externalVisitorCodeManager: IVisitorCodeManager;
|
|
64
68
|
externalPackageInfo: ExternalPackageInfoType;
|
|
65
|
-
|
|
69
|
+
externalRequester: IExternalRequester;
|
|
66
70
|
externalClientConfiguration?: ConfigurationDataType;
|
|
67
71
|
};
|
|
68
72
|
/**
|
|
@@ -223,3 +227,11 @@ export type SetUserConsentParametersType = {
|
|
|
223
227
|
consent: boolean;
|
|
224
228
|
setData: ({ visitorCode, maxAge, path, }: SetDataCallbackParametersType) => void;
|
|
225
229
|
};
|
|
230
|
+
/**
|
|
231
|
+
* @type `SimulateRequestDataType` a type of data provided to `simulateSuccessRequest` method depending on `RequestType`
|
|
232
|
+
* */
|
|
233
|
+
export type SimulateRequestDataType = {
|
|
234
|
+
[RequestType.Configuration]: ClientConfigurationDataType;
|
|
235
|
+
[RequestType.RemoteData]: JSONType;
|
|
236
|
+
[RequestType.Tracking]: null;
|
|
237
|
+
};
|
package/dist/types.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.VariableType=exports.Milliseconds=exports.Environment=void 0;let Environment=exports.Environment=function(a){return a.Production="production",a.Staging="staging",a.Development="development",a}({}),VariableType=exports.VariableType=function(a){return a.BOOLEAN="BOOLEAN",a.NUMBER="NUMBER",a.STRING="STRING",a.JSON="JSON",a}({}),Milliseconds=exports.Milliseconds=function(a){return a[a.Second=1000]="Second",a[a.Minute=60*a.Second]="Minute",a[a.Hour=60*a.Minute]="Hour",a[a.Day=24*a.Hour]="Day",a[a.Week=7*a.Day]="Week",a[a.Month=30*a.Day]="Month",a}({});
|
|
1
|
+
"use strict";var _requester=require("./requester");Object.defineProperty(exports,"__esModule",{value:!0}),exports.VariableType=exports.Milliseconds=exports.Environment=void 0;let Environment=exports.Environment=function(a){return a.Production="production",a.Staging="staging",a.Development="development",a}({}),VariableType=exports.VariableType=function(a){return a.BOOLEAN="BOOLEAN",a.NUMBER="NUMBER",a.STRING="STRING",a.JSON="JSON",a}({}),Milliseconds=exports.Milliseconds=function(a){return a[a.Second=1000]="Second",a[a.Minute=60*a.Second]="Minute",a[a.Hour=60*a.Minute]="Hour",a[a.Day=24*a.Hour]="Day",a[a.Week=7*a.Day]="Week",a[a.Month=30*a.Day]="Month",a}({});
|
|
2
2
|
//# sourceMappingURL=types.js.map
|