@omniconvert/server-side-testing-sdk
Version:
TypeScript SDK for server-side A/B testing and experimentation
220 lines • 6.57 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SessionParams = void 0;
/**
* Session parameters for user context
* Contains information about the user's session that persists across page loads
*/
class SessionParams {
constructor() {
this.referrerUrl = SessionParams.UNDEFINED;
this.referrerDomain = SessionParams.UNDEFINED;
this.referrerType = SessionParams.UNDEFINED;
this.landingUrl = SessionParams.UNDEFINED;
this.utmSource = SessionParams.UNDEFINED;
this.utmTerm = SessionParams.UNDEFINED;
this.utmCampaign = SessionParams.UNDEFINED;
this.utmContent = SessionParams.UNDEFINED;
this.utmMedium = SessionParams.UNDEFINED;
this.consent = SessionParams.UNDEFINED;
this.deviceType = SessionParams.DEVICE_TYPE_DESKTOP;
this.ga4TrackingId = SessionParams.UNDEFINED;
this.ga4SessionId = SessionParams.UNDEFINED;
}
// Getters
getReferrerUrl() {
return this.referrerUrl;
}
getReferrerDomain() {
return this.referrerDomain;
}
getReferrerType() {
return this.referrerType;
}
getLandingUrl() {
return this.landingUrl;
}
getUtmSource() {
return this.utmSource;
}
getUtmTerm() {
return this.utmTerm;
}
getUtmCampaign() {
return this.utmCampaign;
}
getUtmContent() {
return this.utmContent;
}
getUtmMedium() {
return this.utmMedium;
}
getConsent() {
return this.consent;
}
getDeviceType() {
return this.deviceType;
}
getGa4TrackingId() {
return this.ga4TrackingId;
}
getGa4SessionId() {
return this.ga4SessionId;
}
// Setters with fluent interface
setReferrerUrl(referrerUrl) {
this.referrerUrl = referrerUrl;
return this;
}
setReferrerDomain(referrerDomain) {
this.referrerDomain = referrerDomain;
return this;
}
setReferrerType(referrerType) {
this.referrerType = referrerType;
return this;
}
setLandingUrl(landingUrl) {
this.landingUrl = landingUrl;
return this;
}
setUtmSource(utmSource) {
this.utmSource = utmSource;
return this;
}
setUtmTerm(utmTerm) {
this.utmTerm = utmTerm;
return this;
}
setUtmCampaign(utmCampaign) {
this.utmCampaign = utmCampaign;
return this;
}
setUtmContent(utmContent) {
this.utmContent = utmContent;
return this;
}
setUtmMedium(utmMedium) {
this.utmMedium = utmMedium;
return this;
}
setConsent(consent) {
this.consent = consent;
return this;
}
setDeviceType(deviceType) {
this.deviceType = deviceType;
return this;
}
setGa4TrackingId(ga4TrackingId) {
this.ga4TrackingId = ga4TrackingId;
return this;
}
setGa4SessionId(ga4SessionId) {
this.ga4SessionId = ga4SessionId;
return this;
}
/**
* Set UTM parameters from object
*/
setUtmParams(utmParams) {
if (utmParams.source !== undefined)
this.setUtmSource(utmParams.source);
if (utmParams.medium !== undefined)
this.setUtmMedium(utmParams.medium);
if (utmParams.campaign !== undefined)
this.setUtmCampaign(utmParams.campaign);
if (utmParams.content !== undefined)
this.setUtmContent(utmParams.content);
if (utmParams.term !== undefined)
this.setUtmTerm(utmParams.term);
return this;
}
/**
* Get UTM parameters as object
*/
getUtmParams() {
const params = {};
if (this.utmSource !== SessionParams.UNDEFINED) {
params.source = this.utmSource;
}
if (this.utmMedium !== SessionParams.UNDEFINED) {
params.medium = this.utmMedium;
}
if (this.utmCampaign !== SessionParams.UNDEFINED) {
params.campaign = this.utmCampaign;
}
if (this.utmContent !== SessionParams.UNDEFINED) {
params.content = this.utmContent;
}
if (this.utmTerm !== SessionParams.UNDEFINED) {
params.term = this.utmTerm;
}
return params;
}
/**
* Convert to plain object for serialization
*/
toObject() {
return {
referrerUrl: this.referrerUrl,
referrerDomain: this.referrerDomain,
referrerType: this.referrerType,
landingUrl: this.landingUrl,
utmSource: this.utmSource,
utmTerm: this.utmTerm,
utmCampaign: this.utmCampaign,
utmContent: this.utmContent,
utmMedium: this.utmMedium,
consent: this.consent,
deviceType: this.deviceType,
ga4TrackingId: this.ga4TrackingId,
ga4SessionId: this.ga4SessionId,
};
}
/**
* Create from plain object (for deserialization)
*/
static fromObject(obj) {
const params = new SessionParams();
if (obj.referrerUrl)
params.setReferrerUrl(obj.referrerUrl);
if (obj.referrerDomain)
params.setReferrerDomain(obj.referrerDomain);
if (obj.referrerType)
params.setReferrerType(obj.referrerType);
if (obj.landingUrl)
params.setLandingUrl(obj.landingUrl);
if (obj.utmSource)
params.setUtmSource(obj.utmSource);
if (obj.utmTerm)
params.setUtmTerm(obj.utmTerm);
if (obj.utmCampaign)
params.setUtmCampaign(obj.utmCampaign);
if (obj.utmContent)
params.setUtmContent(obj.utmContent);
if (obj.utmMedium)
params.setUtmMedium(obj.utmMedium);
if (obj.consent)
params.setConsent(obj.consent);
if (obj.deviceType)
params.setDeviceType(obj.deviceType);
if (obj.ga4TrackingId)
params.setGa4TrackingId(obj.ga4TrackingId);
if (obj.ga4SessionId)
params.setGa4SessionId(obj.ga4SessionId);
return params;
}
/**
* Convert to JSON
*/
toJSON() {
return this.toObject();
}
}
exports.SessionParams = SessionParams;
SessionParams.UNDEFINED = 'undefined';
SessionParams.DEVICE_TYPE_DESKTOP = 'desktop';
SessionParams.DEVICE_TYPE_MOBILE = 'mobile';
SessionParams.DEVICE_TYPE_TABLET = 'tablet';
//# sourceMappingURL=SessionParams.js.map