UNPKG

@omniconvert/server-side-testing-sdk

Version:

TypeScript SDK for server-side A/B testing and experimentation

220 lines 6.57 kB
"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