@adv-re/segment-wrapper 4.36.0-beta.4 → 4.36.0-beta.5

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/README.md CHANGED
@@ -57,7 +57,7 @@ await analytics.identify('user-123', {
57
57
  ```html
58
58
  <script src="https://cdn.segment.com/analytics.js/v1/YOUR_WRITE_KEY/analytics.min.js"></script>
59
59
  <!-- Use specific version (recommended for production) -->
60
- <script src="https://unpkg.com/@adv-re/segment-wrapper@4.36.0"></script>
60
+ <script async src="https://unpkg.com/@adv-re/segment-wrapper@latest"></script>
61
61
 
62
62
  <script>
63
63
  // Access via window.sui.analytics
@@ -71,13 +71,10 @@ await analytics.identify('user-123', {
71
71
 
72
72
  ```html
73
73
  <!-- Specific version (recommended for production) -->
74
- <script src="https://unpkg.com/@adv-re/segment-wrapper@4.36.0"></script>
74
+ <script async src="https://unpkg.com/@adv-re/segment-wrapper@4.36.0"></script>
75
75
 
76
76
  <!-- Latest version (use only for development) -->
77
- <script src="https://unpkg.com/@adv-re/segment-wrapper"></script>
78
-
79
- <!-- Direct path to UMD file -->
80
- <script src="https://unpkg.com/@adv-re/segment-wrapper@4.36.0/umd/index.global.js"></script>
77
+ <script async src="https://unpkg.com/@adv-re/segment-wrapper"></script>
81
78
  ```
82
79
 
83
80
  ## Configuration
@@ -88,27 +85,27 @@ import {initConfig} from '@adv-re/segment-wrapper'
88
85
  initConfig({
89
86
  // Segment
90
87
  segmentKey: 'your-segment-write-key',
91
-
88
+
92
89
  // Google Analytics 4
93
90
  googleAnalyticsMeasurementId: 'G-XXXXXXXXXX',
94
91
  googleAnalyticsConsentManagement: true,
95
92
  googleAnalyticsConfig: {
96
93
  // Custom GA4 config
97
94
  },
98
-
95
+
99
96
  // Adobe Analytics
100
97
  adobeVisitorId: 'YOUR_ADOBE_ORG_ID@AdobeOrg',
101
-
98
+
102
99
  // TCF/GDPR
103
100
  enableTcf: true,
104
-
101
+
105
102
  // Universal ID
106
103
  universalId: 'user-universal-id',
107
104
  userEmail: 'user@example.com',
108
-
105
+
109
106
  // Middlewares
110
107
  experimentalPageDataMiddleware: false,
111
-
108
+
112
109
  // Other
113
110
  defaultProperties: {
114
111
  platform: 'web',
@@ -186,13 +183,14 @@ initConfig({
186
183
  googleAnalyticsMeasurementId: 'G-XXXXXXXXXX',
187
184
  googleAnalyticsConsentManagement: true,
188
185
  googleAnalyticsConfig: {
189
- send_page_view: false,
186
+ send_page_view: false
190
187
  // Additional GA4 config options
191
188
  }
192
189
  })
193
190
  ```
194
191
 
195
192
  Features:
193
+
196
194
  - Automatic consent mode updates based on TCF
197
195
  - Session and client ID tracking
198
196
  - Campaign parameter forwarding
@@ -203,6 +201,7 @@ Features:
203
201
  See [Migration Guide](./docs/migration-guide.md) for step-by-step instructions on migrating from the legacy `@s-ui/segment-wrapper` package.
204
202
 
205
203
  Key changes:
204
+
206
205
  - Package name: `@s-ui/segment-wrapper` → `@adv-re/segment-wrapper`
207
206
  - Full TypeScript support with type definitions
208
207
  - Modern build system (tsup instead of sui-bundler)
package/dist/index.js CHANGED
@@ -717,7 +717,7 @@ var decorateContextWithNeededData = async ({
717
717
  ...!isGdprAccepted && { ip: "0.0.0.0" },
718
718
  ...getExternalIds({ context, xandrId }),
719
719
  analytics_storage: getConsentState(),
720
- clientVersion: `segment-wrapper@${"4.36.0-beta.4"}`,
720
+ clientVersion: `segment-wrapper@${"4.36.0-beta.5"}`,
721
721
  gdpr_privacy: gdprPrivacyValueAnalytics,
722
722
  gdpr_privacy_advertising: gdprPrivacyValueAdvertising,
723
723
  google_consents,
package/dist/index.mjs CHANGED
@@ -667,7 +667,7 @@ var decorateContextWithNeededData = async ({
667
667
  ...!isGdprAccepted && { ip: "0.0.0.0" },
668
668
  ...getExternalIds({ context, xandrId }),
669
669
  analytics_storage: getConsentState(),
670
- clientVersion: `segment-wrapper@${"4.36.0-beta.4"}`,
670
+ clientVersion: `segment-wrapper@${"4.36.0-beta.5"}`,
671
671
  gdpr_privacy: gdprPrivacyValueAnalytics,
672
672
  gdpr_privacy_advertising: gdprPrivacyValueAdvertising,
673
673
  google_consents,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adv-re/segment-wrapper",
3
- "version": "4.36.0-beta.4",
3
+ "version": "4.36.0-beta.5",
4
4
  "description": "Modern TypeScript abstraction layer on top of the Segment library",
5
5
  "sideEffects": [
6
6
  "./src/utils/patchAnalytics.ts",
@@ -53,7 +53,7 @@
53
53
  "dependencies": {
54
54
  "tiny-hashes": "1.0.1"
55
55
  },
56
- "unpkg": "umd/index.global.js",
56
+ "unpkg": "umd/index.js",
57
57
  "files": [
58
58
  "dist",
59
59
  "umd"
@@ -1 +1 @@
1
- "use strict";(()=>{var A="__mpi",g=typeof window<"u",Q=()=>g?window:void 0;function r(e){let t=Q()?.[A]?.segmentWrapper||{};return e?t[e]:t}var _=(e,n)=>{let t=Q();if(!t){console.warn("[segment-wrapper] Cannot set config in non-browser environment");return}t[A]=t[A]||{},t[A].segmentWrapper=t[A].segmentWrapper||{},t[A].segmentWrapper[e]=n};var R,U=()=>({ADOBE_ORG_ID:window.__SEGMENT_WRAPPER?.ADOBE_ORG_ID,DEFAULT_DEMDEX_VERSION:window.__SEGMENT_WRAPPER?.DEFAULT_DEMDEX_VERSION??"3.3.0",TIME_BETWEEN_RETRIES:window.__SEGMENT_WRAPPER?.TIME_BETWEEN_RETRIES??15,TIMES_TO_RETRY:window.__SEGMENT_WRAPPER?.TIMES_TO_RETRY??80,SERVERS:{trackingServer:window.__SEGMENT_WRAPPER?.TRACKING_SERVER,trackingServerSecure:window.__SEGMENT_WRAPPER?.TRACKING_SERVER}}),q=()=>{let e=U();if(window.Visitor&&e.ADOBE_ORG_ID)return window.Visitor.getInstance(e.ADOBE_ORG_ID,e.SERVERS)},Ve=e=>e?.getMarketingCloudVisitorID(),J=()=>{let e=q(),n=U(),t=e?.version??n.DEFAULT_DEMDEX_VERSION,{trackingServer:o}=n.SERVERS;return Promise.resolve({trackingServer:o,version:t})},Z=()=>{if(R)return Promise.resolve(R);let e=U();return new Promise(n=>{function t(o){if(o===0)return n("");let i=q();R=Ve(i),R?n(R):window.setTimeout(()=>t(--o),e.TIME_BETWEEN_RETRIES)}t(e.TIMES_TO_RETRY)})},ke=async()=>Z(),N=async()=>{let e=r("getCustomAdobeVisitorId");return typeof e=="function"?e():r("importAdobeVisitorId")===!0?ke():Z()};var ee={GA4_INIT_EVENT_SENT:"ga4InitEventSent"};var L={spaReferrer:"",referrer:""},x={getDocumentReferrer:()=>document.referrer,getActualLocation:()=>{let{origin:e,pathname:n}=window.location;return`${e}${n}`},getActualQueryString:()=>{let{search:e}=window.location;return e}},ne=({isPageTrack:e=!1}={})=>{let{referrer:n,spaReferrer:t}=L;return(e?n:t)||x.getDocumentReferrer()},he=()=>{L.spaReferrer=ne({isPageTrack:!0}),L.referrer=x.getActualLocation()},te=({payload:e,next:n})=>{let{obj:{context:t}}=e,{isPageTrack:o}=t,i=ne({isPageTrack:o});e.obj.context={...t,page:{...t.page,referrer:i}},o&&he(),n(e)};var oe={clientId:"client_id",sessionId:"session_id"},W="dataLayer",m={granted:"granted",denied:"denied"},Ue=1,Le=2,D={QUERY:"stc",SPLIT_SYMBOL:"-",CAMPAIGN_SPLIT_SYMBOL:":"},We="utm_campaign",Fe="utm_medium",Ke="utm_source",$e="utm_content",je="utm_id",Ye="utm_term",Be={aff:"affiliate",dis:"display",em:"email",met:"paid-metasearch",sem:"paid-search",rt:"display",sm:"social-media",sp:"paid-social",pn:"push-notification",cs:"cross-sites"},ze="na",Xe="sui",He={medium:null,source:null,campaign:null},Qe=async e=>new Promise(function(n,t){let o=document.createElement("script");o.src=e,o.onload=()=>n(),o.onerror=t,document.head.appendChild(o)}),ie=async()=>{let e=r("googleAnalyticsMeasurementId"),n=r("googleAnalyticsDataLayer")||W;if(!e)return Promise.resolve(!1);let t=`https://www.googletagmanager.com/gtag/js?id=${e}&l=${n}`;return Qe(t).then(()=>!0)},qe=e=>{let n=r("googleAnalyticsInitEvent")??Xe,t=`ga_event_${n}_`,o=`${t}${e}`;if(!(typeof window.gtag>"u")){if(!localStorage.getItem(o)&&(window.gtag("event",n),console.log(`Sending GA4 event "${n}" for the session "${e}"`),localStorage.setItem(o,"true"),typeof window.dispatchEvent=="function")){let i=new CustomEvent(ee.GA4_INIT_EVENT_SENT,{detail:{eventName:n,sessionId:e}});window.dispatchEvent(i)}Object.keys(localStorage).forEach(i=>{i.startsWith(t)&&i!==o&&localStorage.removeItem(i)})}},re=async e=>{let n=r("googleAnalyticsMeasurementId");return n?new Promise(t=>{window.gtag?.("get",n,e,t)}):Promise.resolve(void 0)},Je={STC:"stc",UTM:"utm"},G=({needsTransformation:e=!0}={})=>{let{medium:n,source:t,campaign:o,content:i,term:s}=Ze();if(!n||!t||!o)return null;let[c,d]=o.split(D.CAMPAIGN_SPLIT_SYMBOL);if(!c&&!d)return null;let f=typeof i<"u"&&i!==ze;return{campaign:{medium:e&&Be[n]||n,...typeof d<"u"&&{id:c},name:d??c,source:t,...f&&{content:i},...typeof s<"u"&&{term:s}}}};function Ze(){let e=x.getActualQueryString(),n=new URLSearchParams(e);return r("trackingTagsType")===Je.UTM?en(n):se(n)}function se(e){if(!ae(e))return He;let n=e.get(D.QUERY),[t,o,i,s,c]=n?.split(D.SPLIT_SYMBOL)||[];return{medium:t,source:o,campaign:i,content:s,term:c}}function ae(e){return e.has(D.QUERY)}function en(e){let n=e.get(je),t=e.get(We),o=e.get(Fe),i=e.get(Ke),s=e.get($e),c=e.get(Ye),d=n?`${n}${D.CAMPAIGN_SPLIT_SYMBOL}${t}`:t;return(!o||!i||!d)&&ae(e)?se(e):{campaign:d,medium:o,source:i,content:s??void 0,term:c??void 0}}var ce=async()=>re(oe.clientId),de=async()=>{let e=await re(oe.sessionId);return e&&qe(e),e};function S(e="analytics_storage"){try{let n=window.google_tag_data?.ics?.getConsentState?.(e);return n===Ue?m.granted:n===Le?m.denied:void 0}catch{return}}var le=()=>S()??m.denied,ge=e=>{!r("googleAnalyticsMeasurementId")||!e||window.gtag?.("set","user_id",e)},b=(e="default",n)=>{window.gtag?.("consent",e,n||{analytics_storage:m.denied,ad_user_data:m.denied,ad_personalization:m.denied,ad_storage:m.denied})};var nn="borosTcf",tn=2,on={channel:"GDPR"},ue={analytics:[1,8,10],advertising:[3]},F={LOADED:"tcloaded",USER_ACTION_COMPLETE:"useractioncomplete"},K="CMP Submitted",p={ACCEPTED:"accepted",DECLINED:"declined",UNKNOWN:"unknown"},E={listeners:[],value:void 0,addListener:e=>E.listeners.push(e),get:()=>E.value,set:e=>{let{analytics:n,advertising:t}=e||{};E.value={analytics:n,advertising:t},E.listeners.forEach(o=>o(e)),E.listeners=[]}};function rn(e){if(!g)return null;let t=new RegExp(e+"=([^;]+)").exec(document.cookie);return t!==null?unescape(t[1]):null}var sn=()=>{if(r("initialized"))return!1;let e=!!window.__tcfapi;return e||console.warn("[tcfTracking] window.__tcfapi is not available on client and TCF won't be tracked."),e},an=e=>ue.analytics.every(n=>e[`${n}`]),cn=e=>ue.advertising.every(n=>e[`${n}`]),dn=({gdprPrivacy:e})=>O.track(K,{...on,...r("tcfTrackDefaultProperties")||{}},{gdpr_privacy:e.analytics,gdpr_privacy_advertising:e.advertising}),I=()=>{let e=E.get();return e!==void 0?Promise.resolve(e):new Promise(n=>{E.addListener(t=>n(t))})},T=e=>e?.analytics===p.ACCEPTED,pe=e=>{let n=an(e),t=cn(e),o=n?p.ACCEPTED:p.DECLINED,i=t?p.ACCEPTED:p.DECLINED;return E.set({analytics:o,advertising:i}),{analytics:o,advertising:i}},fe=()=>{let e=rn(nn);if(e)try{let{purpose:n}=JSON.parse(window.atob(e)),{consents:t}=n;return t}catch(n){console.error(n);return}},ln=()=>{let e=fe();e&&pe(e)},gn=()=>{let e=fe();_("isFirstVisit",!e)};function $(){if(g){if(ln(),gn(),!sn()){E.get()?.analytics===void 0&&E.set({analytics:p.UNKNOWN,advertising:p.UNKNOWN});return}_("initialized",!0),window.__tcfapi?.("addEventListener",tn,({eventStatus:e,purpose:n},t)=>{if(!t)return Promise.resolve();if(e===F.USER_ACTION_COMPLETE||e===F.LOADED){let{consents:o}=n,i=pe(o);if(e===F.USER_ACTION_COMPLETE){let{analytics:s,advertising:c}=i,d={analytics:s,advertising:c};return!(g&&window.sessionStorage.getItem("didomi-migration"))&&dn({gdprPrivacy:d})}}})}}function me(e){if(typeof document>"u")return null;let t=new RegExp(`${e}=([^;]+)`).exec(document.cookie);return t!==null?unescape(t[1]):null}function Ee(e,n,t={}){if(typeof document>"u"||typeof window>"u")return;let{maxAge:o=31536e3,path:i="/",reduceDomain:s=!0,sameSite:c="Lax"}=t,d=s?_e():window.location.hostname,f=[`${e}=${n}`,`domain=${d}`,`path=${i}`,`max-age=${o}`,`SameSite=${c}`].join(";");document.cookie=f}function ye(e,n={}){if(typeof document>"u"||typeof window>"u")return;let{path:t="/",reduceDomain:o=!0}=n,i=o?_e():window.location.hostname;document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; domain=${i}`}var _e=e=>{let n=e!==void 0?e:typeof window<"u"?window.location.hostname:"",t=".",o=n.split(t).reverse();if(o.length===1)return o[0];let i=[];for(let s of o)if(i.push(s),s.length>3)break;return`${t}${i.reverse().join(t)}`};var un="https://secure.adnxs.com/getuidj?consent=1",j="adit-xandr-id",pn=0;function fn(){return g?window.fetch(un,{credentials:"include"}).then(e=>e.json()).then(e=>e?.uid).catch(()=>null):Promise.resolve(null)}function we({gdprPrivacyValueAdvertising:e}){if(!g)return null;if(e!==p.ACCEPTED)return ye(j),null;let n=i=>i!==null&&Number(i)>pn,t=me(j),o=n(t);return o||fn().then(i=>{typeof i=="string"&&Ee(j,i)}),_("xandrId",t),o?t:null}var mn={platform:"web"},En={All:!1},yn={All:!0},_n=e=>{let n=r("userIdPrefix");return n&&(typeof e=="number"||typeof e=="string"&&!e.startsWith(n))?`${n}${e}`:e},Y=()=>({...mn,...r("defaultProperties")}),wn=async({gdprPrivacyValue:e,event:n})=>{let t=T(e),o,i,s;try{t&&(o=await N()),i=await de(),s=await ce()}catch(d){console.error(d)}return{...Tn({isGdprAccepted:t,event:n}),"Adobe Analytics":o?{marketingCloudVisitorId:o}:!0,"Google Analytics 4":s&&i?{clientId:s,sessionId:i}:!0}},Tn=({isGdprAccepted:e,event:n})=>n==="CMP Submitted"?yn:e?{}:En,An=({context:e,xandrId:n})=>{let t=r("sendXandrId")!==!1,o=n&&parseInt(n)!==0;if(!t||!o)return{};let d=[...Array.isArray(e?.externalIds)?e.externalIds:[],{collection:"users",encoding:"none",id:n,type:"xandr_id"}];return{externalIds:d.filter(({id:C,type:P},v)=>v===d.findIndex(({id:h,type:Oe})=>C===h&&P===Oe))}},V=e=>e===p.ACCEPTED?m.granted:m.denied,B=async({event:e="",context:n={}})=>{let t=await I(),{analytics:o,advertising:i}=t||{},s=T(t),[c,d]=await Promise.all([wn({gdprPrivacyValue:t,event:e}),we({gdprPrivacyValueAdvertising:i})]),f=S("analytics_storage")??V(o),C=S("ad_user_data")??V(i),P=S("ad_personalization")??V(i),v=S("ad_storage")??V(i);s||(n.integrations={...n.integrations??{},Personas:!1,Webhooks:!0,Webhook:!0});let h={analytics_storage:f,ad_user_data:C,ad_personalization:P,ad_storage:v};return{...n,...!s&&{ip:"0.0.0.0"},...An({context:n,xandrId:d}),analytics_storage:le(),clientVersion:"segment-wrapper@4.36.0-beta.4",gdpr_privacy:o,gdpr_privacy_advertising:i,google_consents:h,integrations:{...n.integrations,...c}}},Te=(e,n,t={},o)=>new Promise(i=>{(async()=>{let c=await B({context:t,event:e}),d={...Y(),...n},f=async(...P)=>{o&&o(...P);let[v]=await Promise.all([I()]);T(v),i()};r("googleAnalyticsConsentManagement")&&e===K&&b("update",c.google_consents),window.analytics.track(e,d,{...c,context:{integrations:{...c.integrations}}},f)})()}),Sn=async(e,n,t,o)=>{let i=await I(),s=_n(e);return ge(s),window.analytics.identify(s,T(i)?n:{},t,o)},In=(e,n,t={},o)=>(t.isPageTrack=!0,Te(e??"",n,t,o)),Cn=()=>Promise.resolve(window.analytics.reset()),O={page:In,identify:Sn,track:Te,reset:Cn};var Se="__mpi_patch";function Ae(){let{track:e}=window.analytics;window.analytics.track=(...n)=>{let[t,o,i,s]=n,c={...Y(),...o};return B({context:i,event:t}).then(d=>{e.call(window.analytics,t,c,d,s)}),window.analytics},window.analytics[Se]=!0}g&&(window.analytics?window.analytics[Se]||(window.analytics.initialized?Ae():window.analytics.ready(Ae)):console.warn("[segment-wrapper] Segment Analytics is not loaded so patch is not applied."));var Ie=({payload:e,next:n})=>{if(r("googleAnalyticsMeasurementId")){let o=G();e.obj.context={...e.obj.context,...o}}n(e)};var Pn={platform:"web"},Ce=({payload:e,next:n})=>{let t=r("defaultContext")||{};e.obj.context={...Pn,...t,...e.obj.context},n(e)};var vn=()=>{let e=null;return({payload:n,next:t})=>{try{let{obj:o}=n,{event:i,type:s}=o;if(s!=="track"){t(n);return}if(typeof i=="string"&&i.endsWith("Viewed")){let{page_name:c,page_type:d}=o.properties||{};e={name:c,type:d},t(n);return}if(!e){t(n);return}t({...n,obj:{...o,properties:{...o.properties,page_name_origin:e.name,page_type:o.properties?.page_type||e.type}}})}catch(o){console.error(o),t(n)}}},Pe=vn();var ve=({payload:e,next:n})=>{e.obj.context={...e.obj.context,screen:{height:window.innerHeight,width:window.innerWidth,density:window.devicePixelRatio}},n(e)};var Rn=e=>{let n=r("isUserTraitsEnabled"),t=window.analytics.user?.(),o=T(e),i=t?.id();return{anonymousId:t?.anonymousId(),...i&&{userId:i},...o&&n&&t?.traits()||{}}},Re=async({payload:e,next:n})=>{let t=await I(),o;try{o=Rn(t)}catch(i){console.error(i)}e.obj.context={...e.obj.context,traits:{...e.obj.context.traits||{},...o}},n(e)};for(De=[],k=0;k<64;)De[k]=0|4294967296*Math.sin(++k%Math.PI);var De,k;for(u=18,M=[],z=[];u>1;u--)for(a=u;a<320;)M[a+=u]=1;var a,u,M,z;function l(e,n){return 4294967296*Math.pow(e,1/n)|0}for(a=0;a<64;)M[++u]||(z[a]=l(u,2),M[a++]=l(u,3));function y(e,n){return e>>>n|e<<-n}function Me(e){var n=z.slice(u=a=0,8),t=[],o=unescape(encodeURI(e))+"\x80",i=o.length;for(t[e=--i/4+2|15]=8*i;~i;)t[i>>2]|=o.charCodeAt(i)<<8*~i--;for(i=[];u<e;u+=16){for(l=n.slice();a<64;l.unshift(o+(y(o=l[0],2)^y(o,13)^y(o,22))+(o&l[1]^l[1]&l[2]^l[2]&o)))l[3]+=o=0|(i[a]=a<16?~~t[a+u]:(y(o=i[a-2],17)^y(o,19)^o>>>10)+i[a-7]+(y(o=i[a-15],7)^y(o,18)^o>>>3)+i[a-16])+l.pop()+(y(o=l[4],6)^y(o,11)^y(o,25))+(o&l[5]^~o&l[6])+M[a++];for(a=8;a;)n[--a]+=l[a]}for(o="";a<64;)o+=(n[a>>3]>>4*(7-a++)&15).toString(16);return o}var Dn=/\.|\+.*$/g;function Mn(e){if(typeof e!="string")return"";let t=e.toLowerCase().split(/@/);if(t.length!==2)return"";let[o,i]=t;return`${o.replace(Dn,"")}@${i}`}function Ne(e){let n=Mn(e);return n?Me(n):""}var Nn="USER_DATA_READY",xn=()=>r("universalId"),Gn=()=>{let e=xn();if(e)return X(),e;let n=r("userEmail");if(n)return e=Ne(n),bn(e),X(),e;X()},xe=()=>{if(!g)return;let e=Gn(),n=r("userEmail");if(typeof window<"u"&&typeof window.dispatchEvent=="function"){let t=new CustomEvent(Nn,{detail:{universalId:e,userEmail:n}});window.dispatchEvent(t)}return{universalId:e,userEmail:n}},X=()=>{_("universalIdInitialized",!0)},bn=e=>{_("universalId",e)};var Ge=()=>{if(typeof window>"u")return;let e=window,n=e.analytics;if(!n){console.warn("[segment-wrapper] Analytics is not available");return}let t=e.__SEGMENT_WRAPPER?.SEGMENT_ID_USER_WITHOUT_CONSENTS??"anonymous_user";n.user?.()?.anonymousId()===t&&"setAnonymousId"in n&&typeof n.setAnonymousId=="function"&&n.setAnonymousId(null)};$();try{xe()}catch(e){console.error("[segment-wrapper] UniversalID could not be initialized",e)}var be=()=>{let e=r("experimentalPageDataMiddleware");window.analytics.addSourceMiddleware?.(Re),window.analytics.addSourceMiddleware?.(Ce),window.analytics.addSourceMiddleware?.(Ie),window.analytics.addSourceMiddleware?.(ve),window.analytics.addSourceMiddleware?.(te),e&&window.analytics.addSourceMiddleware?.(Pe)};if(g&&window.analytics){let e=r("googleAnalyticsMeasurementId"),n=r("googleAnalyticsDataLayer")||W,t=r("googleAnalyticsConsentManagement");if(e){let o=r("googleAnalyticsConfig");window[n]=window[n]||[],window.gtag=window.gtag||function(){window[n].push(arguments)},window.gtag("js",new Date),t&&b(),window.gtag("config",e,{cookie_prefix:"segment",send_page_view:!1,...o,...G()}),ie().catch(i=>{console.error("[segment-wrapper] Failed to load Google Analytics",i)})}window.analytics.ready(Ge),window.analytics.addSourceMiddleware?be():window.analytics.ready(be)}var H=O;var w=window;w.sui=w.sui||{};w.sui.analytics=w.sui.analytics||H;w.sui.analytics.getAdobeVisitorData=w.sui.analytics.getAdobeVisitorData||J;w.sui.analytics.getAdobeMCVisitorID=w.sui.analytics.getAdobeMCVisitorID||N;var $t=H;})();
1
+ "use strict";(()=>{var A="__mpi",g=typeof window<"u",Q=()=>g?window:void 0;function r(e){let t=Q()?.[A]?.segmentWrapper||{};return e?t[e]:t}var _=(e,n)=>{let t=Q();if(!t){console.warn("[segment-wrapper] Cannot set config in non-browser environment");return}t[A]=t[A]||{},t[A].segmentWrapper=t[A].segmentWrapper||{},t[A].segmentWrapper[e]=n};var R,U=()=>({ADOBE_ORG_ID:window.__SEGMENT_WRAPPER?.ADOBE_ORG_ID,DEFAULT_DEMDEX_VERSION:window.__SEGMENT_WRAPPER?.DEFAULT_DEMDEX_VERSION??"3.3.0",TIME_BETWEEN_RETRIES:window.__SEGMENT_WRAPPER?.TIME_BETWEEN_RETRIES??15,TIMES_TO_RETRY:window.__SEGMENT_WRAPPER?.TIMES_TO_RETRY??80,SERVERS:{trackingServer:window.__SEGMENT_WRAPPER?.TRACKING_SERVER,trackingServerSecure:window.__SEGMENT_WRAPPER?.TRACKING_SERVER}}),q=()=>{let e=U();if(window.Visitor&&e.ADOBE_ORG_ID)return window.Visitor.getInstance(e.ADOBE_ORG_ID,e.SERVERS)},Ve=e=>e?.getMarketingCloudVisitorID(),J=()=>{let e=q(),n=U(),t=e?.version??n.DEFAULT_DEMDEX_VERSION,{trackingServer:o}=n.SERVERS;return Promise.resolve({trackingServer:o,version:t})},Z=()=>{if(R)return Promise.resolve(R);let e=U();return new Promise(n=>{function t(o){if(o===0)return n("");let i=q();R=Ve(i),R?n(R):window.setTimeout(()=>t(--o),e.TIME_BETWEEN_RETRIES)}t(e.TIMES_TO_RETRY)})},ke=async()=>Z(),N=async()=>{let e=r("getCustomAdobeVisitorId");return typeof e=="function"?e():r("importAdobeVisitorId")===!0?ke():Z()};var ee={GA4_INIT_EVENT_SENT:"ga4InitEventSent"};var L={spaReferrer:"",referrer:""},x={getDocumentReferrer:()=>document.referrer,getActualLocation:()=>{let{origin:e,pathname:n}=window.location;return`${e}${n}`},getActualQueryString:()=>{let{search:e}=window.location;return e}},ne=({isPageTrack:e=!1}={})=>{let{referrer:n,spaReferrer:t}=L;return(e?n:t)||x.getDocumentReferrer()},he=()=>{L.spaReferrer=ne({isPageTrack:!0}),L.referrer=x.getActualLocation()},te=({payload:e,next:n})=>{let{obj:{context:t}}=e,{isPageTrack:o}=t,i=ne({isPageTrack:o});e.obj.context={...t,page:{...t.page,referrer:i}},o&&he(),n(e)};var oe={clientId:"client_id",sessionId:"session_id"},W="dataLayer",m={granted:"granted",denied:"denied"},Ue=1,Le=2,D={QUERY:"stc",SPLIT_SYMBOL:"-",CAMPAIGN_SPLIT_SYMBOL:":"},We="utm_campaign",Fe="utm_medium",Ke="utm_source",$e="utm_content",je="utm_id",Ye="utm_term",Be={aff:"affiliate",dis:"display",em:"email",met:"paid-metasearch",sem:"paid-search",rt:"display",sm:"social-media",sp:"paid-social",pn:"push-notification",cs:"cross-sites"},ze="na",Xe="sui",He={medium:null,source:null,campaign:null},Qe=async e=>new Promise(function(n,t){let o=document.createElement("script");o.src=e,o.onload=()=>n(),o.onerror=t,document.head.appendChild(o)}),ie=async()=>{let e=r("googleAnalyticsMeasurementId"),n=r("googleAnalyticsDataLayer")||W;if(!e)return Promise.resolve(!1);let t=`https://www.googletagmanager.com/gtag/js?id=${e}&l=${n}`;return Qe(t).then(()=>!0)},qe=e=>{let n=r("googleAnalyticsInitEvent")??Xe,t=`ga_event_${n}_`,o=`${t}${e}`;if(!(typeof window.gtag>"u")){if(!localStorage.getItem(o)&&(window.gtag("event",n),console.log(`Sending GA4 event "${n}" for the session "${e}"`),localStorage.setItem(o,"true"),typeof window.dispatchEvent=="function")){let i=new CustomEvent(ee.GA4_INIT_EVENT_SENT,{detail:{eventName:n,sessionId:e}});window.dispatchEvent(i)}Object.keys(localStorage).forEach(i=>{i.startsWith(t)&&i!==o&&localStorage.removeItem(i)})}},re=async e=>{let n=r("googleAnalyticsMeasurementId");return n?new Promise(t=>{window.gtag?.("get",n,e,t)}):Promise.resolve(void 0)},Je={STC:"stc",UTM:"utm"},G=({needsTransformation:e=!0}={})=>{let{medium:n,source:t,campaign:o,content:i,term:s}=Ze();if(!n||!t||!o)return null;let[c,d]=o.split(D.CAMPAIGN_SPLIT_SYMBOL);if(!c&&!d)return null;let f=typeof i<"u"&&i!==ze;return{campaign:{medium:e&&Be[n]||n,...typeof d<"u"&&{id:c},name:d??c,source:t,...f&&{content:i},...typeof s<"u"&&{term:s}}}};function Ze(){let e=x.getActualQueryString(),n=new URLSearchParams(e);return r("trackingTagsType")===Je.UTM?en(n):se(n)}function se(e){if(!ae(e))return He;let n=e.get(D.QUERY),[t,o,i,s,c]=n?.split(D.SPLIT_SYMBOL)||[];return{medium:t,source:o,campaign:i,content:s,term:c}}function ae(e){return e.has(D.QUERY)}function en(e){let n=e.get(je),t=e.get(We),o=e.get(Fe),i=e.get(Ke),s=e.get($e),c=e.get(Ye),d=n?`${n}${D.CAMPAIGN_SPLIT_SYMBOL}${t}`:t;return(!o||!i||!d)&&ae(e)?se(e):{campaign:d,medium:o,source:i,content:s??void 0,term:c??void 0}}var ce=async()=>re(oe.clientId),de=async()=>{let e=await re(oe.sessionId);return e&&qe(e),e};function S(e="analytics_storage"){try{let n=window.google_tag_data?.ics?.getConsentState?.(e);return n===Ue?m.granted:n===Le?m.denied:void 0}catch{return}}var le=()=>S()??m.denied,ge=e=>{!r("googleAnalyticsMeasurementId")||!e||window.gtag?.("set","user_id",e)},b=(e="default",n)=>{window.gtag?.("consent",e,n||{analytics_storage:m.denied,ad_user_data:m.denied,ad_personalization:m.denied,ad_storage:m.denied})};var nn="borosTcf",tn=2,on={channel:"GDPR"},ue={analytics:[1,8,10],advertising:[3]},F={LOADED:"tcloaded",USER_ACTION_COMPLETE:"useractioncomplete"},K="CMP Submitted",p={ACCEPTED:"accepted",DECLINED:"declined",UNKNOWN:"unknown"},E={listeners:[],value:void 0,addListener:e=>E.listeners.push(e),get:()=>E.value,set:e=>{let{analytics:n,advertising:t}=e||{};E.value={analytics:n,advertising:t},E.listeners.forEach(o=>o(e)),E.listeners=[]}};function rn(e){if(!g)return null;let t=new RegExp(e+"=([^;]+)").exec(document.cookie);return t!==null?unescape(t[1]):null}var sn=()=>{if(r("initialized"))return!1;let e=!!window.__tcfapi;return e||console.warn("[tcfTracking] window.__tcfapi is not available on client and TCF won't be tracked."),e},an=e=>ue.analytics.every(n=>e[`${n}`]),cn=e=>ue.advertising.every(n=>e[`${n}`]),dn=({gdprPrivacy:e})=>O.track(K,{...on,...r("tcfTrackDefaultProperties")||{}},{gdpr_privacy:e.analytics,gdpr_privacy_advertising:e.advertising}),I=()=>{let e=E.get();return e!==void 0?Promise.resolve(e):new Promise(n=>{E.addListener(t=>n(t))})},T=e=>e?.analytics===p.ACCEPTED,pe=e=>{let n=an(e),t=cn(e),o=n?p.ACCEPTED:p.DECLINED,i=t?p.ACCEPTED:p.DECLINED;return E.set({analytics:o,advertising:i}),{analytics:o,advertising:i}},fe=()=>{let e=rn(nn);if(e)try{let{purpose:n}=JSON.parse(window.atob(e)),{consents:t}=n;return t}catch(n){console.error(n);return}},ln=()=>{let e=fe();e&&pe(e)},gn=()=>{let e=fe();_("isFirstVisit",!e)};function $(){if(g){if(ln(),gn(),!sn()){E.get()?.analytics===void 0&&E.set({analytics:p.UNKNOWN,advertising:p.UNKNOWN});return}_("initialized",!0),window.__tcfapi?.("addEventListener",tn,({eventStatus:e,purpose:n},t)=>{if(!t)return Promise.resolve();if(e===F.USER_ACTION_COMPLETE||e===F.LOADED){let{consents:o}=n,i=pe(o);if(e===F.USER_ACTION_COMPLETE){let{analytics:s,advertising:c}=i,d={analytics:s,advertising:c};return!(g&&window.sessionStorage.getItem("didomi-migration"))&&dn({gdprPrivacy:d})}}})}}function me(e){if(typeof document>"u")return null;let t=new RegExp(`${e}=([^;]+)`).exec(document.cookie);return t!==null?unescape(t[1]):null}function Ee(e,n,t={}){if(typeof document>"u"||typeof window>"u")return;let{maxAge:o=31536e3,path:i="/",reduceDomain:s=!0,sameSite:c="Lax"}=t,d=s?_e():window.location.hostname,f=[`${e}=${n}`,`domain=${d}`,`path=${i}`,`max-age=${o}`,`SameSite=${c}`].join(";");document.cookie=f}function ye(e,n={}){if(typeof document>"u"||typeof window>"u")return;let{path:t="/",reduceDomain:o=!0}=n,i=o?_e():window.location.hostname;document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${t}; domain=${i}`}var _e=e=>{let n=e!==void 0?e:typeof window<"u"?window.location.hostname:"",t=".",o=n.split(t).reverse();if(o.length===1)return o[0];let i=[];for(let s of o)if(i.push(s),s.length>3)break;return`${t}${i.reverse().join(t)}`};var un="https://secure.adnxs.com/getuidj?consent=1",j="adit-xandr-id",pn=0;function fn(){return g?window.fetch(un,{credentials:"include"}).then(e=>e.json()).then(e=>e?.uid).catch(()=>null):Promise.resolve(null)}function we({gdprPrivacyValueAdvertising:e}){if(!g)return null;if(e!==p.ACCEPTED)return ye(j),null;let n=i=>i!==null&&Number(i)>pn,t=me(j),o=n(t);return o||fn().then(i=>{typeof i=="string"&&Ee(j,i)}),_("xandrId",t),o?t:null}var mn={platform:"web"},En={All:!1},yn={All:!0},_n=e=>{let n=r("userIdPrefix");return n&&(typeof e=="number"||typeof e=="string"&&!e.startsWith(n))?`${n}${e}`:e},Y=()=>({...mn,...r("defaultProperties")}),wn=async({gdprPrivacyValue:e,event:n})=>{let t=T(e),o,i,s;try{t&&(o=await N()),i=await de(),s=await ce()}catch(d){console.error(d)}return{...Tn({isGdprAccepted:t,event:n}),"Adobe Analytics":o?{marketingCloudVisitorId:o}:!0,"Google Analytics 4":s&&i?{clientId:s,sessionId:i}:!0}},Tn=({isGdprAccepted:e,event:n})=>n==="CMP Submitted"?yn:e?{}:En,An=({context:e,xandrId:n})=>{let t=r("sendXandrId")!==!1,o=n&&parseInt(n)!==0;if(!t||!o)return{};let d=[...Array.isArray(e?.externalIds)?e.externalIds:[],{collection:"users",encoding:"none",id:n,type:"xandr_id"}];return{externalIds:d.filter(({id:C,type:P},v)=>v===d.findIndex(({id:h,type:Oe})=>C===h&&P===Oe))}},V=e=>e===p.ACCEPTED?m.granted:m.denied,B=async({event:e="",context:n={}})=>{let t=await I(),{analytics:o,advertising:i}=t||{},s=T(t),[c,d]=await Promise.all([wn({gdprPrivacyValue:t,event:e}),we({gdprPrivacyValueAdvertising:i})]),f=S("analytics_storage")??V(o),C=S("ad_user_data")??V(i),P=S("ad_personalization")??V(i),v=S("ad_storage")??V(i);s||(n.integrations={...n.integrations??{},Personas:!1,Webhooks:!0,Webhook:!0});let h={analytics_storage:f,ad_user_data:C,ad_personalization:P,ad_storage:v};return{...n,...!s&&{ip:"0.0.0.0"},...An({context:n,xandrId:d}),analytics_storage:le(),clientVersion:"segment-wrapper@4.36.0-beta.5",gdpr_privacy:o,gdpr_privacy_advertising:i,google_consents:h,integrations:{...n.integrations,...c}}},Te=(e,n,t={},o)=>new Promise(i=>{(async()=>{let c=await B({context:t,event:e}),d={...Y(),...n},f=async(...P)=>{o&&o(...P);let[v]=await Promise.all([I()]);T(v),i()};r("googleAnalyticsConsentManagement")&&e===K&&b("update",c.google_consents),window.analytics.track(e,d,{...c,context:{integrations:{...c.integrations}}},f)})()}),Sn=async(e,n,t,o)=>{let i=await I(),s=_n(e);return ge(s),window.analytics.identify(s,T(i)?n:{},t,o)},In=(e,n,t={},o)=>(t.isPageTrack=!0,Te(e??"",n,t,o)),Cn=()=>Promise.resolve(window.analytics.reset()),O={page:In,identify:Sn,track:Te,reset:Cn};var Se="__mpi_patch";function Ae(){let{track:e}=window.analytics;window.analytics.track=(...n)=>{let[t,o,i,s]=n,c={...Y(),...o};return B({context:i,event:t}).then(d=>{e.call(window.analytics,t,c,d,s)}),window.analytics},window.analytics[Se]=!0}g&&(window.analytics?window.analytics[Se]||(window.analytics.initialized?Ae():window.analytics.ready(Ae)):console.warn("[segment-wrapper] Segment Analytics is not loaded so patch is not applied."));var Ie=({payload:e,next:n})=>{if(r("googleAnalyticsMeasurementId")){let o=G();e.obj.context={...e.obj.context,...o}}n(e)};var Pn={platform:"web"},Ce=({payload:e,next:n})=>{let t=r("defaultContext")||{};e.obj.context={...Pn,...t,...e.obj.context},n(e)};var vn=()=>{let e=null;return({payload:n,next:t})=>{try{let{obj:o}=n,{event:i,type:s}=o;if(s!=="track"){t(n);return}if(typeof i=="string"&&i.endsWith("Viewed")){let{page_name:c,page_type:d}=o.properties||{};e={name:c,type:d},t(n);return}if(!e){t(n);return}t({...n,obj:{...o,properties:{...o.properties,page_name_origin:e.name,page_type:o.properties?.page_type||e.type}}})}catch(o){console.error(o),t(n)}}},Pe=vn();var ve=({payload:e,next:n})=>{e.obj.context={...e.obj.context,screen:{height:window.innerHeight,width:window.innerWidth,density:window.devicePixelRatio}},n(e)};var Rn=e=>{let n=r("isUserTraitsEnabled"),t=window.analytics.user?.(),o=T(e),i=t?.id();return{anonymousId:t?.anonymousId(),...i&&{userId:i},...o&&n&&t?.traits()||{}}},Re=async({payload:e,next:n})=>{let t=await I(),o;try{o=Rn(t)}catch(i){console.error(i)}e.obj.context={...e.obj.context,traits:{...e.obj.context.traits||{},...o}},n(e)};for(De=[],k=0;k<64;)De[k]=0|4294967296*Math.sin(++k%Math.PI);var De,k;for(u=18,M=[],z=[];u>1;u--)for(a=u;a<320;)M[a+=u]=1;var a,u,M,z;function l(e,n){return 4294967296*Math.pow(e,1/n)|0}for(a=0;a<64;)M[++u]||(z[a]=l(u,2),M[a++]=l(u,3));function y(e,n){return e>>>n|e<<-n}function Me(e){var n=z.slice(u=a=0,8),t=[],o=unescape(encodeURI(e))+"\x80",i=o.length;for(t[e=--i/4+2|15]=8*i;~i;)t[i>>2]|=o.charCodeAt(i)<<8*~i--;for(i=[];u<e;u+=16){for(l=n.slice();a<64;l.unshift(o+(y(o=l[0],2)^y(o,13)^y(o,22))+(o&l[1]^l[1]&l[2]^l[2]&o)))l[3]+=o=0|(i[a]=a<16?~~t[a+u]:(y(o=i[a-2],17)^y(o,19)^o>>>10)+i[a-7]+(y(o=i[a-15],7)^y(o,18)^o>>>3)+i[a-16])+l.pop()+(y(o=l[4],6)^y(o,11)^y(o,25))+(o&l[5]^~o&l[6])+M[a++];for(a=8;a;)n[--a]+=l[a]}for(o="";a<64;)o+=(n[a>>3]>>4*(7-a++)&15).toString(16);return o}var Dn=/\.|\+.*$/g;function Mn(e){if(typeof e!="string")return"";let t=e.toLowerCase().split(/@/);if(t.length!==2)return"";let[o,i]=t;return`${o.replace(Dn,"")}@${i}`}function Ne(e){let n=Mn(e);return n?Me(n):""}var Nn="USER_DATA_READY",xn=()=>r("universalId"),Gn=()=>{let e=xn();if(e)return X(),e;let n=r("userEmail");if(n)return e=Ne(n),bn(e),X(),e;X()},xe=()=>{if(!g)return;let e=Gn(),n=r("userEmail");if(typeof window<"u"&&typeof window.dispatchEvent=="function"){let t=new CustomEvent(Nn,{detail:{universalId:e,userEmail:n}});window.dispatchEvent(t)}return{universalId:e,userEmail:n}},X=()=>{_("universalIdInitialized",!0)},bn=e=>{_("universalId",e)};var Ge=()=>{if(typeof window>"u")return;let e=window,n=e.analytics;if(!n){console.warn("[segment-wrapper] Analytics is not available");return}let t=e.__SEGMENT_WRAPPER?.SEGMENT_ID_USER_WITHOUT_CONSENTS??"anonymous_user";n.user?.()?.anonymousId()===t&&"setAnonymousId"in n&&typeof n.setAnonymousId=="function"&&n.setAnonymousId(null)};$();try{xe()}catch(e){console.error("[segment-wrapper] UniversalID could not be initialized",e)}var be=()=>{let e=r("experimentalPageDataMiddleware");window.analytics.addSourceMiddleware?.(Re),window.analytics.addSourceMiddleware?.(Ce),window.analytics.addSourceMiddleware?.(Ie),window.analytics.addSourceMiddleware?.(ve),window.analytics.addSourceMiddleware?.(te),e&&window.analytics.addSourceMiddleware?.(Pe)};if(g&&window.analytics){let e=r("googleAnalyticsMeasurementId"),n=r("googleAnalyticsDataLayer")||W,t=r("googleAnalyticsConsentManagement");if(e){let o=r("googleAnalyticsConfig");window[n]=window[n]||[],window.gtag=window.gtag||function(){window[n].push(arguments)},window.gtag("js",new Date),t&&b(),window.gtag("config",e,{cookie_prefix:"segment",send_page_view:!1,...o,...G()}),ie().catch(i=>{console.error("[segment-wrapper] Failed to load Google Analytics",i)})}window.analytics.ready(Ge),window.analytics.addSourceMiddleware?be():window.analytics.ready(be)}var H=O;var w=window;w.sui=w.sui||{};w.sui.analytics=w.sui.analytics||H;w.sui.analytics.getAdobeVisitorData=w.sui.analytics.getAdobeVisitorData||J;w.sui.analytics.getAdobeMCVisitorID=w.sui.analytics.getAdobeMCVisitorID||N;var $t=H;})();