@amplitude/engagement-browser
Version:
Official Amplitude SDK for Web
2 lines (1 loc) • 9.77 kB
JavaScript
;var x=Object.defineProperty;var G=Object.getOwnPropertyDescriptor;var Z=Object.getOwnPropertyNames;var F=Object.prototype.hasOwnProperty;var O=(n,e)=>{for(var r in e)x(n,r,{get:e[r],enumerable:!0})},z=(n,e,r,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Z(e))!F.call(n,i)&&i!==r&&x(n,i,{get:()=>e[i],enumerable:!(t=G(e,i))||t.enumerable});return n};var W=n=>z(x({},"__esModule",{value:!0}),n);var oe={};O(oe,{init:()=>te,plugin:()=>re});module.exports=W(oe);var H=function(){function n(){}return n.prototype.getApplicationContext=function(){return{versionName:this.versionName,language:V(),platform:"Web",os:void 0,deviceModel:void 0}},n}(),V=function(){return typeof navigator<"u"&&(navigator.languages&&navigator.languages[0]||navigator.language)||""},Y=function(){function n(){this.queue=[]}return n.prototype.logEvent=function(e){this.receiver?this.receiver(e):this.queue.length<512&&this.queue.push(e)},n.prototype.setEventReceiver=function(e){this.receiver=e,this.queue.length>0&&(this.queue.forEach(function(r){e(r)}),this.queue=[])},n}(),D=function(){return D=Object.assign||function(e){for(var r,t=1,i=arguments.length;t<i;t++){r=arguments[t];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(e[s]=r[s])}return e},D.apply(this,arguments)};function K(n){var e=typeof Symbol=="function"&&Symbol.iterator,r=e&&n[e],t=0;if(r)return r.call(n);if(n&&typeof n.length=="number")return{next:function(){return n&&t>=n.length&&(n=void 0),{value:n&&n[t++],done:!n}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function k(n,e){var r=typeof Symbol=="function"&&n[Symbol.iterator];if(!r)return n;var t=r.call(n),i,s=[],m;try{for(;(e===void 0||e-- >0)&&!(i=t.next()).done;)s.push(i.value)}catch(g){m={error:g}}finally{try{i&&!i.done&&(r=t.return)&&r.call(t)}finally{if(m)throw m.error}}return s}var T=function(n,e){var r,t,i=["string","number","boolean","undefined"],s=typeof n,m=typeof e;if(s!==m)return!1;try{for(var g=K(i),h=g.next();!h.done;h=g.next()){var S=h.value;if(S===s)return n===e}}catch(a){r={error:a}}finally{try{h&&!h.done&&(t=g.return)&&t.call(g)}finally{if(r)throw r.error}}if(n==null&&e==null)return!0;if(n==null||e==null||n.length!==e.length)return!1;var P=Array.isArray(n),E=Array.isArray(e);if(P!==E)return!1;if(P&&E){for(var p=0;p<n.length;p++)if(!T(n[p],e[p]))return!1}else{var I=Object.keys(n).sort(),y=Object.keys(e).sort();if(!T(I,y))return!1;var o=!0;return Object.keys(n).forEach(function(a){T(n[a],e[a])||(o=!1)}),o}return!0},Q="$set",J="$unset",X="$clearAll";Object.entries||(Object.entries=function(n){for(var e=Object.keys(n),r=e.length,t=new Array(r);r--;)t[r]=[e[r],n[e[r]]];return t});var j=function(){function n(){this.identity={userProperties:{}},this.listeners=new Set}return n.prototype.editIdentity=function(){var e=this,r=D({},this.identity.userProperties),t=D(D({},this.identity),{userProperties:r});return{setUserId:function(i){return t.userId=i,this},setDeviceId:function(i){return t.deviceId=i,this},setUserProperties:function(i){return t.userProperties=i,this},setOptOut:function(i){return t.optOut=i,this},updateUserProperties:function(i){var s,m,g,h,S,P,E=t.userProperties||{};try{for(var p=K(Object.entries(i)),I=p.next();!I.done;I=p.next()){var y=k(I.value,2),o=y[0],a=y[1];switch(o){case Q:try{for(var u=(g=void 0,K(Object.entries(a))),c=u.next();!c.done;c=u.next()){var v=k(c.value,2),_=v[0],U=v[1];E[_]=U}}catch(l){g={error:l}}finally{try{c&&!c.done&&(h=u.return)&&h.call(u)}finally{if(g)throw g.error}}break;case J:try{for(var f=(S=void 0,K(Object.keys(a))),w=f.next();!w.done;w=f.next()){var _=w.value;delete E[_]}}catch(l){S={error:l}}finally{try{w&&!w.done&&(P=f.return)&&P.call(f)}finally{if(S)throw S.error}}break;case X:E={};break}}}catch(l){s={error:l}}finally{try{I&&!I.done&&(m=p.return)&&m.call(p)}finally{if(s)throw s.error}}return t.userProperties=E,this},commit:function(){return e.setIdentity(t),this}}},n.prototype.getIdentity=function(){return D({},this.identity)},n.prototype.setIdentity=function(e){var r=D({},this.identity);this.identity=D({},e),T(r,this.identity)||this.listeners.forEach(function(t){t(e)})},n.prototype.addIdentityListener=function(e){this.listeners.add(e)},n.prototype.removeIdentityListener=function(e){this.listeners.delete(e)},n}(),A=typeof globalThis<"u"?globalThis:typeof window<"u"?window:self,N=function(){function n(){this.identityStore=new j,this.eventBridge=new Y,this.applicationContextProvider=new H}return n.getInstance=function(e){return A.analyticsConnectorInstances||(A.analyticsConnectorInstances={}),A.analyticsConnectorInstances[e]||(A.analyticsConnectorInstances[e]=new n),A.analyticsConnectorInstances[e]},n}();var $=["boot"];var ee="$default_instance";function q(n){var s,m,g,h,S,P,E,p,I;let e=typeof window<"u"?window.engagement:void 0,r=!1,t={_q:(s=e==null?void 0:e._q)!=null?s:[],_configuration:{apiKey:(g=(m=e==null?void 0:e._configuration)==null?void 0:m.apiKey)!=null?g:"",serverUrl:(h=e==null?void 0:e._configuration)==null?void 0:h.serverUrl,chatUrl:(S=e==null?void 0:e._configuration)==null?void 0:S.chatUrl,mediaUrl:(P=e==null?void 0:e._configuration)==null?void 0:P.mediaUrl,serverZone:(p=(E=e==null?void 0:e._configuration)==null?void 0:E.serverZone)!=null?p:"US",options:{...(I=e==null?void 0:e._configuration)==null?void 0:I.options}},init(y,o){var _,U,f,w;if(t._configuration.apiKey){console.log("Engagement SDK has already been initialized. Ignoring additional init call.");return}if(o!=null&&o.useEngagementDomain){let l=((_=o.serverZone)!=null?_:t._configuration.serverZone)==="EU",d="amplitudeengagement.com";o.serverUrl||(o.serverUrl=l?`https://gs.eu.${d}`:`https://gs.${d}`),o.chatUrl||(o.chatUrl=l?`https://houston-chat.eu.${d}`:`https://houston-chat.${d}`),o.mediaUrl||(o.mediaUrl=l?`https://engagement-static.eu.${d}`:`https://engagement-static.${d}`),o.cdnUrl||(o.cdnUrl=l?`https://cdn.eu.${d}`:`https://cdn.${d}`)}t._configuration={...t._configuration,...o,apiKey:y,options:{splitting:!0,...t._configuration.options,...o==null?void 0:o.options}},(f=(U=t._configuration)==null?void 0:U.options)!=null&&f.logger&&t._configuration.options.logger.enable((w=t._configuration.options.logLevel)!=null?w:2);let a;if(o!=null&&o.cdnUrl)t._configuration.options.splitting?a=`${o.cdnUrl}/engagement-browser/prod/split/index.js`:a=o.cdnUrl+"/engagement-browser/prod/index.min.js.gz";else{let l=t._configuration.serverZone==="EU"?"https://cdn.eu.amplitude.com":"https://cdn.amplitude.com";t._configuration.options.splitting?a=`${l}/engagement-browser/prod/split/index.js`:a=`${l}/engagement-browser/prod/index.min.js.gz`}let u=null,c=()=>{if(r=!0,u&&(clearTimeout(u),u=null),t._q&&t._q.length>0)for(console.warn(`Engagement SDK failed to load within ${v}ms. Resolving pending calls gracefully.`);t._q.length>0;){let l=t._q.shift();if(!l)continue;let d=l[0],b=$.includes(d);if(console.warn(`Engagement SDK method '${d}' still in queue (isAsyncMethod=${b}); attempting to resolve as no-op.`),b&&l[1]instanceof Function&&l[2]instanceof Function){let L=l[1];console.warn(`Engagement SDK method '${d}' resolved as no-op due to script loading failure`),L(void 0)}}};n(a,t._configuration.options.splitting?"module":void 0,o==null?void 0:o.nonce,c);let v=1e4;u=setTimeout(()=>{c()},v)},plugin(y){let o=t.init;return{name:"@amplitude/engagement-browser",type:"enrichment",async setup(a,u){var U;let c=(U=a.instanceName)!=null?U:ee,v=N.getInstance(c).identityStore;o(a.apiKey,{serverZone:a.serverZone,...y,options:{logLevel:a.logLevel,logger:a.loggerProvider,...y==null?void 0:y.options}});let _=[{track:f=>{u.track(f)}}];await window.engagement.boot({user:()=>{let f=v.getIdentity();return{user_id:u.getUserId(),device_id:u.getDeviceId(),user_properties:f.userProperties,getSessionId:u.getSessionId}},integrations:_}),v.addIdentityListener(f=>{var w,l,d,b;if(!((w=window.engagement)!=null&&w._.user)||!((l=window.engagement)!=null&&l._analytics.hasBooted)){console.warn("Engagement SDK not booted. Ignoring identity change.");return}((b=(d=window.engagement)==null?void 0:d._.user)==null?void 0:b.user_id)!==f.userId?(window.engagement.shutdown(),window.engagement.boot({user:()=>{let L=v.getIdentity();return{user_id:u.getUserId(),device_id:u.getDeviceId(),user_properties:L.userProperties,getSessionId:u.getSessionId}},integrations:_})):window.engagement._setUserProperties(f.userProperties)})},async execute(a){return window.engagement.forwardEvent(a),a}}}},i=t;return new Proxy(t,{get:function(y,o){if(o in i)return i[o];if(o!=="then")return o==="gs"||o==="rc"?new Proxy({},{get:function(a,u){return function(){let c=Array.from(arguments),v=`${o}.${u}`;c.unshift(v),t._q.push(c)}}}):$.includes(o)?function(){let a=Array.prototype.slice.call(arguments);return new Promise((u,c)=>{a.unshift(o,u,c),t._q.push(a),r&&u(void 0)})}:function(){let a=Array.prototype.slice.call(arguments);a.unshift(o),t._q.push(a)}}})}var B=(i=>(i.Local="https://local.amplitude.com:3010/",i.Staging="https://apps.stag2.amplitude.com/",i.Production="https://app.amplitude.com/",i.ProductionEU="https://app.eu.amplitude.com/",i))(B||{}),M=n=>{if(typeof window<"u"&&window.opener)for(let e of Object.values(B))window.opener.postMessage({message:n},e)};function ne(n,e,r,t){for(let i of n){let s=document.createElement("script");s.src=i,s.id="engagement-sdk-bundle",r&&s.setAttribute("nonce",r),e&&s.setAttribute("type",e),t&&(s.onerror=t),document.getElementsByTagName("head")[0].appendChild(s)}}var R=()=>(M("ENGAGEMENT_SNIPPET"),q((n,e,r,t)=>ne([n||"https://cdn.amplitude.com/engagement-browser/prod/index.min.js.gz"],e,r,t)));var C=R(),te=(n,e)=>{typeof window<"u"&&!window.engagement&&(window.engagement=C),C.init(n,e)},re=n=>(typeof window<"u"&&!window.engagement&&(window.engagement=C),C.plugin(n));