UNPKG

obsly-sdk-js-full

Version:

This is the Obsly SDK for javascript...

2 lines 80.3 kB
/*! For license information please see main.bundle.js.LICENSE.txt */ (()=>{var t,e,n,r,a={705:(t,e,n)=>{"use strict";n.a(t,(async(t,r)=>{try{n.d(e,{y:()=>w});var a=n(498),i=n(480),o=n(959),s=n(242),c=n(477),l=n(575),u=n(601),f=n(315),d=n(847),y=n(275),g=n(359),h=n(502),v=n(540),p=n(29);const t=async function(){(0,d.s)(),(0,y.i)(),(0,f.m)(),(0,h.J)(),!0===await(0,c.OU)()&&(0,l.Z)(),(0,g.W)(),(0,g.h)(),(0,u.EU)(),(0,u.dB)()},w={init:async function(){let{ObslyKey:e,instanceURL:n=null,remoteConfigURL:r=null,proEnv:s=!0,appVersion:l,appName:u,logLevel:f="error",config:d=null,debugMode:y=!1,sessionID:g=null}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!await(0,o.iG)(e,n,s,l,u))return(0,p.vF)("warn","SDK will be down until you fix it."),void(0,c.Vv)(!1);await(0,o.iM)(d,n),await(0,c.pM)(y),await(0,c.Ax)(r);const h=await(0,i.d)(s,l);return(0,i.k)(h),await(0,c.Vv)(!0),await(0,c.He)(f),await(0,o.zP)(g),t(),(0,v._h)(),(0,p.vF)("log",`INITIALIZE OBSLY SDK. VERSION: ${a.MF}`),window.dispatchEvent(new Event("obsly_sdk_ready")),await(0,c.pi)()}};await(0,s.Ie)(),r()}catch(t){r(t)}}),1)},97:(t,e,n)=>{"use strict";n.a(t,(async(t,e)=>{try{var r=n(705),a=t([r]);r=(a.then?(await a)():a)[0],window.ObslySDK=window.obsly_sdk=window.obslySDK=r.y,window.dispatchEvent(new Event("obsly_sdk_attached")),e()}catch(t){e(t)}}))},543:(t,e,n)=>{"use strict";n.a(t,(async(t,e)=>{try{var r=n(705),a=n(932),i=n(364),o=n(611),s=n(692),c=n(264),l=n(97),u=t([r,a,i,o,s,c,l]);[r,a,i,o,s,c,l]=u.then?(await u)():u,e()}catch(t){e(t)}}))},498:(t,e,n)=>{"use strict";n.d(e,{MF:()=>r,Qj:()=>a});const r="1.1.5",a=[]},723:(t,e,n)=>{"use strict";n.d(e,{$V:()=>dt,A9:()=>Rt,B4:()=>ft,BS:()=>j,Bo:()=>u,Bx:()=>s,C3:()=>x,E$:()=>M,E1:()=>V,E2:()=>H,F:()=>w,FZ:()=>q,Gq:()=>gt,HV:()=>K,I0:()=>S,IK:()=>it,IT:()=>st,JH:()=>Et,Ju:()=>Ot,K5:()=>J,Ky:()=>mt,LC:()=>bt,Lq:()=>_,M:()=>$,MQ:()=>Ct,MU:()=>Tt,Ol:()=>tt,PZ:()=>k,QE:()=>z,Qb:()=>ut,RC:()=>yt,RY:()=>At,Rk:()=>G,SC:()=>v,UB:()=>A,UI:()=>l,Uk:()=>d,VN:()=>b,VQ:()=>nt,Vr:()=>Y,Wh:()=>W,Xc:()=>R,Y5:()=>lt,ZV:()=>pt,Zq:()=>i,_A:()=>h,a4:()=>It,ce:()=>ct,dv:()=>_t,eR:()=>B,eS:()=>xt,eo:()=>F,es:()=>D,ff:()=>c,gL:()=>r,gR:()=>Nt,gl:()=>a,gp:()=>f,hl:()=>P,ir:()=>T,ju:()=>at,kd:()=>o,n9:()=>X,n_:()=>m,nc:()=>L,nd:()=>p,oG:()=>ht,oy:()=>Q,p2:()=>I,pU:()=>U,pZ:()=>wt,qR:()=>Ft,qh:()=>et,s:()=>St,tu:()=>N,u$:()=>E,u0:()=>C,uk:()=>Z,wl:()=>vt,x3:()=>kt,xe:()=>y,xh:()=>g,yY:()=>O,zO:()=>rt,zh:()=>ot});const r=3e4,a=!0,i=2,o=3,s=100,c=0,l=2,u=3,f=4,d=5,y=10,g={ERROR:c,INTERNAL:1,UI:l,HTTP:u,TAGS:f,LIFE_CYCLE:d,PERFORMANCE:y,METRIC:80},h={COUNTER:1,GAUGE:2,HISTOGRAM:3},v=[.1,.3,1,3,10],p="OBSLY_SESSION_ID",w="OBSLY_SESSION_EXPIRATION",m="INSTALLATION_ID",b="OBSLY_EXECUTION_ID",_="API_KEY",E="SEND_ACTIVE",I="DELETE_ACTIVE",S="TRACKER_ACTIVE",O="EVENT_TYPE_BLACKLIST",R="REQUESTS_BLACKLIST",T="USER_ID",F="PERSON_ID",N="CONTRACT_ID",k="PASSPORT_ID",x="APP_NAME",C="PRO_ENV",A="INSTANCE_URL",D="REMOTE_CONFIG_URL",L="USER_INFO",M="LOG_LEVEL",P="APP_VERSION",B="REMOTE_CONFIG",K="Unknown",$="DEBUG_MODE",q="HOST_BLACKLIST",H="HOST_BODY_WHITELIST",U="SESSION_MAX_LENGTH_MINS",j="KEEP_SESSION_ON_REFRESH",V="BLACKLIST_TAG_KEYS",X="BLACKLIST_CATEGORIES",W="BODY_ON_ERROR",Y="REQUEST_HEADERS",G="LIFE_CYCLE_DEST_PARAMS",J="LIFE_CYCLE_ORIGIN_PARAMS",Z="LIFE_CYCLE_CHANGE_PARAMS",z="parentViewName",Q="viewName",tt="OBSLY_AVAILABLE_SESSIONS",et="KNOWN_SESSIONS",nt="ObslySDKConfig",rt="CAPTURE_CONSOLE",at={PRO:"PRO",PRE:"PRE"},it={REQUEST:"request",RESPONSE:"body",REQUEST_HEADERS:"request_headers",RESPONSE_HEADERS:"response_headers"},ot={NAME:"name",VERSION:"os_version",MANUFACTURER:"manufacturer",RESOLUTION:"resolution",ORIENTATION:"orientation",FORM_FACTOR:"form_factor"},st={NAME:"name",SDK_OBSLY:"sdk_obsly",ENVIRONMENT:"environment",RELEASE:"release",PLATFORM:"platform",APP_VERSION:"app_version"},ct={USER_ID:"user_id",PASSPORT_ID:"passport_id",CONTRACT_ID:"contract_id",PERSON_ID:"person_id"},lt={PHONE:"phone",TABLET:"tablet",COMPUTER:"computer"},ut=["Macintosh","MacIntel","MacPPC","Mac68K"],ft=["Win32","Win64","Windows","WinCE"],dt=["iPhone","iPad","iPod"],yt="WEB",gt=" (WEB)",ht=864e5,vt=6e4,pt=0,wt=60,mt=700,bt=50,_t=3,Et="RAGE_CLICK",It="AUTOMATIC_VIEW_DETECTION",St="SS_RAGE_CLICK",Ot=.25,Rt="SS_RAGE_CLICK_PERCENT",Tt="FUNCTIONAL_BLOCK",Ft="OPERATION",Nt="VIEW",kt="VIEWNAME",xt="PARENT_VIEWNAME",Ct="ENABLE_SS_ON_UI",At="PAGE_RELOADED_OBSLY"},511:(t,e,n)=>{"use strict";n.d(e,{Rs:()=>r,r1:()=>a,yI:()=>i});class r extends Error{constructor(t){super(t),this.name="MaxRetriesError"}}class a extends Error{constructor(t){super(t),this.name="NotReadyError"}}Error,Error,Error;class i extends Error{constructor(t){super(t),this.name="ValidationError"}}},480:(t,e,n)=>{"use strict";n.d(e,{d:()=>s,k:()=>c});var r=n(477),a=n(498),i=n(723),o=n(29);async function s(t,e){try{const o=await(0,r.oZ)();let s=await(0,r.LO)();if(null!=s&&Date.now()-s.timestamp<=i.oG*i.ZV)return s;if(null==o)return;if(null==t)return;if(null==e)return;const c=await(0,r.CG)(),l=await(0,r.m3)(),u=!0===t?"PRO":"PRE";var n="?sdk_obsly="+a.MF;n+="&release="+u,n+="&platform=WEB",n+="&version="+e,n+="&installation_id="+l,n+="&cfg_type=all";const f=await fetch(o+"v2/config/effective"+n,{method:"GET",headers:{"Content-Type":"application/json","Access-Control-Allow-Credentials":!0,"access-token":c}});let d={...await f.json()};return d.timestamp=Date.now(),await(0,r.hV)(d),d}catch(t){return(0,o.vF)("warning","Error during retrieving remote config:"),(0,o.vF)("warning",t),null}}async function c(t){if(null!=t){if(typeof t==typeof{}){try{var e=!1;t?.capture_body_on_error&&("boolean"==typeof t?.capture_body_on_error?((0,r.mk)(t?.capture_body_on_error),e=!0):"string"==typeof t?.capture_body_on_error&&("true"===t?.capture_body_on_error&&((0,r.mk)(!0),e=!0),"false"===t?.capture_body_on_error&&((0,r.mk)(!1),e=!0)),e||(0,o.vF)("debug","capture_body_on_error is not in a correct format, must be a boolean.")),e||(0,r.mk)(!1)}catch(t){(0,o.vF)("debug","Error setting CaptureBodyOnError: ",t)}try{var n=!1;if(t?.tags_blacklist&&typeof t?.tags_blacklist==typeof{}){var a=t?.tags_blacklist?.categories;a&&typeof a==typeof[]&&((0,r.lz)(a),n=!0);var s=t?.tags_blacklist?.keys;s&&typeof s==typeof[]&&((0,r.$p)(s),n=!0)}n||(0,r.lz)([]),(0,r.$p)([])}catch(t){(0,o.vF)("debug","Error setting tags_blacklist: ",t)}try{var c=!1;if(void 0!==t?.event_type_blacklist&&(typeof t?.event_type_blacklist==typeof[]&&(await(0,r.EZ)(t?.event_type_blacklist),c=!0),!1===c)){let t=await(0,r.IF)();null!=t?0===t.length&&await(0,r.EZ)([]):await(0,r.EZ)([])}}catch(t){(0,o.vF)("debug","Error setting setEventTypeBlacklist: ",t)}try{var l=!1;t?.capture_body_hosts_whitelist&&(typeof t?.capture_body_hosts_whitelist==typeof{}?((0,r.Ys)(t?.capture_body_hosts_whitelist),l=!0):(0,o.vF)("debug","capture_body_hosts_whitelist is not in a correct format, must be an object.")),l||(0,r.Ys)(null)}catch(t){(0,o.vF)("debug","Error setting CaptureBodyHostWhitelist: ",t)}try{if(t?.hosts_blacklist){var u=t?.hosts_blacklist?.hosts_to_add,f=t?.hosts_blacklist?.hosts_to_remove;if(!0===(void 0!==t?.hosts_blacklist?.replace_host_list&&t?.hosts_blacklist?.replace_host_list))typeof u==typeof[]?(0,r.qc)(u):(0,o.vF)("debug","hosts_to_add is not in a correct format, must be an array.");else{var d=await(0,r.yy)(),y=[];void 0!==u&&null!=u&&(typeof u==typeof[]?y=[...new Set([...d,...u])]:(0,o.vF)("debug","hosts_to_add is not in a correct format, must be an array.")),void 0!==f&&null!=f&&(typeof f==typeof[]?y=y.filter((t=>!f.includes(t))):(0,o.vF)("debug","hosts_to_remove is not in a correct format, must be an array.")),(0,r.qc)(y)}}}catch(t){(0,o.vF)("debug","Error setting setHostBlacklist: ",t)}}try{t?.service_url&&"string"==typeof t?.service_url&&(0,r.P$)(t?.service_url)}catch(t){(0,o.vF)("debug","Error setting service_url: ",t)}var g=!1;try{if(t?.session_max_length_mins){let e=0;e="number"!=typeof t?.session_max_length_mins?parseInt(t?.session_max_length_mins):t?.session_max_length_mins,e>=0?((0,r._c)(e),g=!0):(0,o.vF)("debug","Error setting session_max_length_mins, must be an integer higher than 0")}}catch(t){(0,o.vF)("debug","Error setting session_max_length_mins: ",t)}try{var h=!1;if(t?.keepSessionOnRefresh)if("boolean"!=typeof t?.keepSessionOnRefresh)(0,o.vF)("warn","keep_session_on_refresh Must be boolean");else{h=!0===t?.keepSessionOnRefresh,(0,r.Eu)(h);let e=await(0,r.Gg)();g||!h||e||(0,r._c)(i.pZ)}}catch(t){(0,o.vF)("debug","Error setting keepSessionOnRefresh: ",t)}try{t?.rageClick&&(t?.rageClick?.active&&(0,r.MH)(t?.rageClick?.active),t?.rageClick?.screenshot&&(0,r.BF)(t?.rageClick?.screenshot),t?.rageClick?.screenshotPercent&&(0,r.$H)(t?.rageClick?.screenshotPercent))}catch(t){(0,o.vF)("debug","Error setting RageClick values: ",t)}try{t?.fullDebug&&"boolean"==typeof t?.fullDebug&&(0,r.pM)(t?.fullDebug)}catch(t){(0,o.vF)("debug","Error setting FullDebug values: ",t)}try{void 0!==t?.enableScreenshotOnUi&&"boolean"==typeof t?.enableScreenshotOnUi&&(0,r.Kq)(!0===t?.enableScreenshotOnUi)}catch(t){(0,o.vF)("debug","Error setting enableScreenshotOnUi values: ",t)}}}},888:(t,e,n)=>{"use strict";n.d(e,{GK:()=>T,xB:()=>_,xJ:()=>b,$H:()=>S,PQ:()=>E,A0:()=>p,jB:()=>w,XZ:()=>m});var r=n(498),a=n(723),i=n(351),o=n(477),s=n(29),c=!1;function l(){try{return function(){try{var t=window.navigator.userAgent;if(window.navigator.platform){var e=window.navigator.platform,n=null;return-1!==a.Qb.indexOf(e)?n="MacOS":-1!==a.$V.indexOf(e)?n="iOS":-1!==a.B4.indexOf(e)?n="Windows":/Android/.test(t)?n="Android":!n&&/Linux/.test(e)&&(n="Linux"),n}return a.HV}catch(t){return a.HV}}()+a.Gq}catch(t){return a.RC}}function u(){try{return"hidden"===document.visibilityState}catch(t){return!1}}function f(t){return void 0===t||null==t?null:t.split("?")[0]}function d(t){try{return t.split("?")[1]}catch(t){return null}}function y(t){try{return t.split("?").length>1}catch(t){return!1}}var g=n(918),h=n(570),v=n(981);async function p(){let{url:t,method:e,status:n,requestHeaders:r,responseHeaders:i,request:c,data_sent:l=0,body:u,data_received:f=0,duration:d=0,timestamp:y=Date.now()}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const h=await(0,o.Bb)(),v=parseInt(l)||0,p=parseInt(f)||0,w=parseInt(d)||0,m=await(0,o.IF)();if(!h&&m?.includes(a.xh.HTTP))return void(0,s.vF)("log","Events HTTP are blacklisted. It will not be stored.");const b=c?String(c):null,_=u?String(u):null,E=await async function(t){if(await(0,o.Bb)())return!0;let e=await(0,o.yy)();return null==e||(!1===await(0,g.ZD)(t,e)||((0,s.vF)("debug",`This URL: ${t} is blacklisted. It will not be stored.`),!1))}(t);if(!h&&!E)return void(0,s.vF)("debug","Cannot capture this HTTP event. It will not be stored.");const I=await(0,o.r5)();if(t.includes(I+"events/")&&n>=200&&n<300)return void(0,s.vF)("debug","API events are not stored.");const S={request:{url:t,method:e,status_code:n,data_received:p,data_sent:v,duration:w,timestamp:y}};await async function(t,e){return await N(void 0,void 0,"capture_request_body")}()&&b&&(S.request[a.IK.REQUEST]=b),await async function(t,e){return await N(void 0,void 0,"capture_response_body")}()&&_&&(S.request[a.IK.RESPONSE]=_),await async function(t){if(await(0,o.Bb)())return!0;let e=await(0,o.Nb)();return!!(0,g.ZD)(t,e)}(t)&&(S.request[a.IK.REQUEST_HEADERS]=r,S.request[a.IK.RESPONSE_HEADERS]=i),(0,s.vF)("debug","Create new request event: ",S),T({type:a.xh.HTTP,extra:S})}async function w(t){let{tags:e,category:n}=t;const r=await(0,o.Bb)();let i=await(0,o.IF)();if(!r&&null!=i&&i.includes(a.xh.TAGS))return;let c=await(0,o.nS)();if(null!==c&&c.includes(n))return;var l=[];if(typeof e==typeof[]){l=e;let t=await(0,o.d8)();if(null!==t)for(let n of e)if(t.includes(n))return}else(0,s.vF)("error","Tags not formatted correctly!");let u={category:n,tags:l};(0,s.vF)("debug","Create new tag event: ",u),T({type:a.xh.TAGS,extra:u})}async function m(){let{elementId:t,label:e,arialabel:n,domHierarchy:r,text:l,placeholder:u,elementType:f,touchPoint:d,action:y,screenImage:g,className:h,aspectRatio:v,href:p,type:w}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},m=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,_=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;const E=JSON.stringify({id:t,ariaLabel:n,text:l,label:e,placeholder:u,domHierarchy:r,className:h,elementType:f,aspectRatio:v,type:w,href:p}),I={ui:{view_name:await(0,o.dm)(),parent_view_name:await(0,o.f5)(),action_mode:e,touch_point:d,texts:E,action_type:y,screen_image:g}};["click","Empty click"].includes(y)&&m&&async function(t,e){if(await(0,o.un)())try{for(;c;)await new Promise((t=>setTimeout(t,100)));c=!0,await async function(t,e){let n=t.pageX,r=t.pageY;if("true"===t.target.getAttribute("data-ignore-rage-click"))return void(0,s.vF)("debug","Ignoring element for rage click");let c=t.target.closest("[data-ignore-rage-click-deep]");if(null!==c&&"true"===c.getAttribute("data-ignore-rage-click-deep"))return void(0,s.vF)("debug","Ignoring element for rage click deep.");const l=await(0,o.KZ)(),u=await(0,o.uy)(),f=await(0,o.eu)();var d=await(0,i.Xn)(n,r,l),y=performance.now();for(const[t,n]of Object.entries(d))if(y-d[t].timestamp<=a.Ky&&y-d[t].timestamp>=0){if(d[t].count=d[t].count+1,d[t].count>=a.dv){var g=l;b({key:a.JH,type:a._A.COUNTER,count:1,duration:null,fbl:u,operation:f,view:g,state:null,le:null},e);for(const[t,e]of Object.entries(d))(0,i.G9)(t);break}(0,i.C1)(t,d[t])}else d[t].count=1,d[t].timestamp=performance.now(),(0,i.C1)(t,d[t])}(t,e),c=!1}catch(t){(0,s.vF)("info",`error proccesing rage click function ${t}`),c=!1}}(m,I.ui);const S=await(0,o.Bb)(),O=await(0,o.IF)();!S&&O?.includes(a.xh.UI)||T({type:a.xh.UI,extra:I,timestamp:_})}async function b(){let{key:t,type:e,count:n,duration:r,fbl:i,operation:c,view:u,state:f,le:d}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},y=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,g=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;const h=await(0,o.Bb)();let v=await(0,o.IF)();if(!h&&null!=v&&v.includes(a.xh.METRIC))return;let p=await(0,o.fj)(),w=await(0,o.su)(),m=await(0,o.KZ)(),b=await(0,o.eu)(),_=await(0,o.uy)();var E={metric:{key:t,dimensions:{fbl:i??_??"",operation:c??b??"",view:u??m??"",app:p??"",platform:l()??"",version:w??"",state:f??"",le:d??0},type:e,count:n,duration:r}};null!=y&&(E.ui=y),(0,s.vF)("debug",`Creating ${e} metric event with values:`,E),T({type:a.xh.METRIC,extra:E,timestamp:g})}async function _(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{trace_id:e,title:n,subtitle:r,message:i,original_message:c,message_status:l,hash:u}=t,f=await(0,o.Bb)(),d=await(0,o.IF)();if(!f&&d?.includes(a.xh.ERROR))return;const y={error:{trace_id:e,title:n,subtitle:r,message:i,original_message:c,message_status:l,hash:u}};(0,s.vF)("debug","Creating crash event with values:",y),T({type:a.xh.ERROR,extra:y})}async function E(){let{name:t,timestamp:e,elapsed_ms:n,debug:r,steps:i=[]}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const c=await(0,o.Bb)();let l=await(0,o.IF)();if(!c&&null!=l&&l.includes(a.xh.PERFORMANCE))return;let u={performance_block:{name:t,timestamp:e,elapsed_ms:n,debug:r,steps:i}};(0,s.vF)("debug","Creating perforance event with values:",u),T({type:a.xh.PERFORMANCE,extra:u})}function I(t,e,n){var r=n;for(let e of t)r.push({key:e.split("=")[0],value:e.split("=")[1]});let i={category:e,tags:r};(0,s.vF)("debug","Creating a new tag event for changing params: ",i),T({type:a.xh.TAGS,extra:i})}async function S(){let{origin:t,destination:e,stage:n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!e||!t)return;const r=await(0,o.Bb)(),i=await(0,o.IF)();if(!r&&i?.includes(a.xh.LIFE_CYCLE))return;const c={life_cycle:{view_name:f(e),parent_view_name:f(t),stage:n}},[l,u]=[t.split("?")[0],e.split("?")[0]],g=y(t)?d(t):"",h=y(e)?d(e):"";try{if(l!==u)return O(c),R(t,a.K5,a.QE),void R(e,a.Rk,a.oy);if(g||h){if(g!==h)return void I(h.split("&"),a.uk,[{key:a.QE,value:e}]);const t=sessionStorage.getItem(a.RY);if(performance.navigation.type===performance.navigation.TYPE_RELOAD&&"true"!==t)return sessionStorage.setItem(a.RY,"true"),void O(c)}O(c)}catch(t){!function(t){console.error(t),(0,s.vF)("warn",`Error creating navigation event: ${t}`),(0,s.vF)("warn",`Stacktrace: ${t.stack}`)}(t)}}function O(t){(0,s.vF)("debug","Creating a new lifeCycle event: ",t),T({type:a.xh.LIFE_CYCLE,extra:t})}function R(t,e,n){y(t)&&I(d(t).split("&"),e,[{key:n,value:t}])}async function T(){let{type:t,extra:e,timestamp:n=null}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const i=await(0,o.Bb)();if(!1===await(0,o.Zb)()&&!1===i)return void(0,s.vF)("log","Tracker is not active. Events will not be stored.");let c=await(0,o.IF)();if(!i&&null!=c&&c.includes(t))return;const f=await async function(){let t={},e=await(0,o.Fk)();null!=e&&(t[a.ce.USER_ID]=e);let n=await(0,o.I3)();null!=n&&(t[a.ce.CONTRACT_ID]=n);let r=await(0,o.Wy)();null!=r&&(t[a.ce.PASSPORT_ID]=r);let i=await(0,o.LW)();return null!=i&&(t[a.ce.PERSON_ID]=i),t}();Object.keys(f).length>0&&(e.user=f);const d=await async function(){let t={},e=await(0,o.fj)();null!==e&&(t[a.IT.NAME]=e);let n=await(0,o.$1)();null!==n&&(t[a.IT.RELEASE]=n?a.ju.PRO:a.ju.PRE);let i=await(0,o.su)();null!==i&&(t[a.IT.APP_VERSION]=i),t[a.IT.SDK_OBSLY]=r.MF,t[a.IT.PLATFORM]=l();try{void 0!==window&&void 0!==window.openFrontData&&(i[a.IT.PLATFORM]=window.openFrontData?.identifier?.platform,i[a.IT.APP_VERSION]=window.openFrontData?.version?.app)}catch(t){}return t}();Object.keys(d).length>0&&(e.app=d);const y=await async function(){let t={},e=function(){try{var t,e=navigator.userAgent,n=e.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i)||[];return/trident/i.test(n[1])?{name:"IE",version:(t=/\brv[ :]+(\d+)/g.exec(e)||[])[1]||""}:"Chrome"===n[1]&&null!=(t=e.match(/\b(OPR|Edge)\/(\d+)/))?{name:t[1].replace("OPR","Opera"),version:t[2]}:(n=n[2]?[n[1],n[2]]:[navigator.appName,navigator.appVersion,"-?"],null!=(t=e.match(/version\/(\d+)/i))&&n.splice(1,1,t[1]),{name:n[0],version:n[1]})}catch(t){return{name:a.HV,version:a.HV}}}();t[a.zh.NAME]=e.name,t[a.zh.VERSION]=e.version,t[a.zh.MANUFACTURER]=function(){try{var t,e=navigator.userAgent,n=e.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i)||[];return/trident/i.test(n[1])?"Microsoft":"Chrome"===n[1]?null!=(t=e.match(/\b(OPR|Edge)\/(\d+)/))?t[1].replace("OPR","Opera Software"):"Google":"Safari"===n[1]?"Apple":"Firefox"===n[1]?"Mozilla":a.HV}catch(t){return a.HV}}();try{if(void 0!==window){void 0!==window.openFrontData&&(t[a.zh.NAME]=window.openFrontData?.identifier?.device,t[a.zh.VERSION]=window.openFrontData?.version?.SO);try{t[a.zh.RESOLUTION]=window.screen.width+"x"+window.screen.height}catch(t){(0,s.vF)("warn","Window Screen Resolution cannot be captured:",t)}try{t[a.zh.ORIENTATION]=window.screen.orientation.type}catch(t){(0,s.vF)("warn","Window Screen orientation cannot be captured:",t)}try{t[a.zh.FORM_FACTOR]=function(){try{var t=window.innerWidth;return t<=480?a.Y5.PHONE:t<=768?a.Y5.TABLET:a.Y5.COMPUTER}catch(t){return a.HV}}()}catch(t){(0,s.vF)("warn","Window Screen form factor cannot be captured:",t)}}}catch(t){}return t}();Object.keys(y).length>0&&(e.device=y),e&&(e.tags&&(e.tags=F(e.tags,"extra.tags",16e3)),e=F(e,"extra",1024,["extra.ui.screen_image","extra.request","extra.tags"]));let g=await(0,o.pi)(),p={installation_id:await(0,o.m3)(),session_id:g,execution_id:await(0,o.eZ)(),timestamp:null!=n?n:Date.now(),event_id:(0,h.l)(),type:t,extra:e,api_key:await(0,o.CG)(),bg:u(),sequence:await(0,o.ey)(g)};(function(t){for(let e of Object.keys(t))if(void 0===t[e]||null===t[e])return!1;return!0})(p)&&(async function(){let t=new Date,e=await(0,o.Gg)();t.setTime(t.getTime()+60*e*1e3),(0,o.W)(t.toUTCString())}(),p.performance=performance.now(),await(0,v.Kh)(p))}function F(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1024,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];for(let a of Object.keys(t)){let i=a;if(""!==e&&(i=`${e}.${a}`),r.includes(i))return t;if("string"==typeof t[a]){const e=t[a].length;if(e>n){(0,s.vF)("debug",`Truncating ${i} from ${e} to ${n}: ${t[a]}`);const r=` [Truncated by SDK: original length ${e}]`;t[a]=t[a].substring(0,n-r.length)+r,(0,s.vF)("debug",`New value: ${t[a]}`)}}else"object"==typeof t[a]&&null!==t[a]&&(t[a]=F(t[a],i,n,r))}return t}async function N(t,e,n){if(await(0,o.Bb)())return!0;if(!0===await(0,o.OM)()&&(e>=400||e<0))return!0;var r=await(0,o.OR)();if(null==r)return!1;if(Array.isArray(r)){for(let a of r){let r=a.from_status,i=a.to_status,o=a.url;if(!0===a[n]&&r<=e&&i>=e&&!0===(0,g.cd)(t,o))return!0}return!1}return!0===(0,g.ZD)(t,r)}},959:(t,e,n)=>{"use strict";n.d(e,{iG:()=>u,iM:()=>f,zP:()=>l});var r=n(981),a=n(540),i=n(477),o=n(160),s=n(723),c=n(29);async function l(t){if(await(0,i.Vv)(!0),await(0,i.pu)(),await(0,i.kP)(),await(0,i.Ii)(),await(0,o.sv)(),null!=await(0,i.pi)()){let t=await(0,r.KH)(1).events;if(t&&t.length>0){var e=new Date(t[0].timestamp);(new Date-e)/s.oG>2?(0,r._O)():(0,a.Tl)()}}else(0,r._O)();await(0,i.J0)(t,null!=t)}const u=async function(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;if("string"!=typeof t)return(0,c.vF)("warn","Api Key is not valid! SDK will no work."),!1;if(0===t.trim().length)return(0,c.vF)("warn","Api Key is not valid! SDK will no work."),!1;if((0,i.wt)(t),(0,c.vF)("debug","API KEY: "+t),null!==e){if("string"!=typeof e)return(0,c.vF)("warn","Instance URL is not valid!"),!1;if(0===e.trim().length)return(0,c.vF)("warn","Instance URL is not valid!"),!1;await(0,i.P$)(e)}return null!=r&&("string"!=typeof r?(0,c.vF)("warn","App version is not valid!"):0===r.trim().length?(0,c.vF)("warn","App Version is not valid!"):await(0,i.eh)(r)),null!=a&&("string"!=typeof a||0===a.trim().length?(0,c.vF)("warn","App Name is not valid!"):await(0,i.Xf)(a)),"boolean"!=typeof n?((0,c.vF)("warn","Be careful! proEnv is not a valid boolean. It must be true or false. By default, it's false."),(0,i.Ld)(!1)):(0,i.Ld)(n),!0},f=async function(t,e){if(typeof t!=typeof{})return void(0,c.vF)("warn","Local config is invalid. Must be an object with an specific structure.");let n=[];!1===t?.enableCrashes&&n.push(s.ff),!1===t?.enableLifeCycleLog&&n.push(s.Uk),!1===t?.enableRequestLog&&n.push(s.Bo),!1===t?.enableTagger&&n.push(s.gp),!1===t?.enablePerformance&&n.push(s.xe),!1===t?.enableUI&&n.push(s.UI),n.length>0?(0,i.EZ)(n):(0,i.EZ)([]),typeof t?.hostBlacklist==typeof[]&&null!=t?.hostBlacklist&&t?.hostBlacklist.length>0?(0,i.qc)(t?.hostBlacklist):(0,i.qc)([e+"*"]),typeof t?.hostBodyWhitelist==typeof[]&&t?.hostBodyWhitelist.length>0?(0,i.Ys)(t?.hostBodyWhitelist):(0,i.Ys)(null),typeof t?.requestHeadersWhitelist==typeof[]&&(t?.requestHeadersWhitelist.length>0?(0,i.$_)(t?.requestHeadersWhitelist):(0,i.$_)([])),!0===t?.automaticViewDetection?(0,i.EY)(!0):(0,i.EY)(!1),t?.rageClick?!1===t.rageClick?(0,i.MH)(!1):(t?.rageClick?.active&&(0,i.MH)(!0===t?.rageClick?.active),t?.rageClick?.screenshot&&(0,i.BF)(!0===t?.rageClick?.screenshot),t?.rageClick?.screenshotPercent?(0,i.$H)(t?.rageClick?.screenshotPercent):(0,i.$H)(s.Ju)):((0,i.MH)(!0),(0,i.BF)(!1));var r=!1;if(t?.sessionMaxLengthMins){var a=t?.sessionMaxLengthMins,o=!0;if(!Number.isInteger(a))try{a=parseInt(a)}catch(t){o=!1}o?a<=0?(0,c.vF)("warn","sessionMaxLengthMins Must be greather than 0"):((0,i._c)(a),r=!0):(0,c.vF)("warn","sessionMaxLengthMins Must be an integer")}void 0!==t?.keepSessionOnRefresh?"boolean"!=typeof t?.keepSessionOnRefresh?((0,c.vF)("warn","keepSessionOnRefresh Must be boolean"),(0,i.Eu)(!1)):(!1===t?.keepSessionOnRefresh&&(0,c.vF)("warn","It is highly recommended to keep Session on Refresh. Otherwise, we might be loose information with navigation."),(0,i.Eu)(!0===t?.keepSessionOnRefresh),!0!==t?.keepSessionOnRefresh||r||(0,i._c)(s.pZ)):(0,i.Eu)(!0),!0===t?.enableScreenshotOnUi?(0,i.Kq)(!0):(0,i.Kq)(!1),!1===t?.captureConsole?(0,i.q)(!1):(0,i.q)(!0)}},242:(t,e,n)=>{"use strict";n.d(e,{FO:()=>i,Ie:()=>u,KX:()=>o,rE:()=>c,tl:()=>s});var r=n(691),a=n.n(r);window.localforage=a();var i=null,o=null,s=null,c=null;const l={events:{storeName:"events"},performanceEvents:{storeName:"performanceEvents"},internalState:{storeName:"internalState"},rageClick:{storeName:"rageClick"}};async function u(){const t=Date.now(),e="obsly_sdk_db";i=f(e,l.events.storeName,"",t),s=f(e,l.performanceEvents.storeName,"",t),o=f(e,l.internalState.storeName,"",t),c=f(e,l.rageClick.storeName,"",t)}function f(t,e,n,r){return a().createInstance({driver:a().INDEXEDDB,name:t,storeName:e,description:n,version:r})}},981:(t,e,n)=>{"use strict";n.d(e,{KH:()=>u,Kh:()=>l,VD:()=>s,_O:()=>c,l$:()=>o});var r=n(477),a=n(242),i=n(29);async function o(){let t=await a.FO.keys();if(0===t.length)return{events:[],keys:[]};var e=[];t.sort(((t,e)=>parseInt(t.split("_")[1])-parseInt(e.split("_")[1])));for(let n in t)e.push(await a.FO.getItem(String(t[n])).catch((function(t){(0,i.vF)("warn","Error during retrieve an event from db:",t)})));return{events:e,keys:t}}async function s(t){for(let e in t){let n=String(t[e]);await a.FO.removeItem(n)}}async function c(){let t=await a.FO.keys();if(null!=t&&void 0!==t&&0!==t.length)try{for(let e in t){let n=String(t[e]);await a.FO.removeItem(n).catch((function(t){(0,i.vF)("warn","Error during retrieve an event from db:",t)}))}}catch(t){}}async function l(t){try{const e=await(0,r.Zb)();let n=await(0,r.pi)();!0===e&&a.FO.setItem(String(n)+"_"+String(performance.now()),t)}catch(e){console.error(e),console.log(t)}}async function u(t){let e=await a.FO.keys();if(null==e||void 0===e)return{events:[],keys:[]};if(0===e.length)return{events:[],keys:[]};var n=e.length<t?e.slice(0,e.length):e.slice(0,t),r=[];for(let t in n){let e=n[t],i=await a.FO.getItem(String(e));null!==i&&r.push(i)}return{events:r,keys:n}}},477:(t,e,n)=>{"use strict";n.d(e,{Ii:()=>w,Gl:()=>At,kP:()=>O,pu:()=>S,CG:()=>C,fj:()=>tt,su:()=>rt,nS:()=>Ot,d8:()=>Rt,OM:()=>St,OU:()=>p,I3:()=>Y,si:()=>R,IF:()=>B,eZ:()=>h,uy:()=>Bt,yy:()=>ht,OR:()=>Tt,m3:()=>k,r5:()=>ot,Wt:()=>It,XM:()=>dt,eu:()=>Kt,f5:()=>Wt,Wy:()=>W,LW:()=>X,$1:()=>nt,LO:()=>lt,oZ:()=>st,Nb:()=>vt,xJ:()=>T,ey:()=>I,pi:()=>G,TT:()=>b,Gg:()=>Ft,Zb:()=>N,Fk:()=>V,KZ:()=>Pt,dm:()=>Xt,Bb:()=>kt,un:()=>Mt,PO:()=>A,wt:()=>x,Xf:()=>Q,eh:()=>it,EY:()=>Ct,lz:()=>wt,$p:()=>mt,mk:()=>pt,q:()=>v,Ir:()=>j,pM:()=>Nt,EZ:()=>K,LY:()=>Ht,qc:()=>yt,Ys:()=>bt,P$:()=>at,Eu:()=>Et,He:()=>ft,MF:()=>qt,z9:()=>Vt,aQ:()=>U,z4:()=>H,Ld:()=>et,MH:()=>xt,hV:()=>ut,Ax:()=>ct,$_:()=>gt,I$:()=>$,BF:()=>Dt,$H:()=>Lt,Kq:()=>Ut,W:()=>Z,_c:()=>_t,Vv:()=>F,Hk:()=>q,g6:()=>$t,nd:()=>jt,J0:()=>P});var r=n(242),a=n(570),i=n(723),o=n(29),s=n(498);async function c(t){return await async function(t,e){const n=(new TextEncoder).encode(e),r=await crypto.subtle.digest("SHA-1",n);return Array.from(new Uint8Array(r)).map((t=>t.toString(16).padStart(2,"0"))).join("")}(0,t)}class l{getPlugins=t=>{const e=[];for(const n in t)if({}.hasOwnProperty.call(t,n)){const r=t[n];e.push([r.name,r.filename])}return e};getMimeTypes=t=>{const e=[];for(const n in t)if({}.hasOwnProperty.call(t,n)){const r=t[n];e.push([r.suffixes,r.type])}return e}}class u{helpers=new l;generateHeaderID=()=>{const t=[];return t.push(navigator.userAgent),t.push(navigator.platform),t.push(navigator.product),t.push(navigator.productSub),t.push(navigator.vendor),t.push(navigator.vendorSub),t.push(navigator.plugins.length),t.push(this.helpers.getPlugins(navigator.plugins)),t.push(navigator.mimeTypes.length),t.push(this.helpers.getMimeTypes(navigator.mimeTypes)),t.push(navigator.productSub),t.push(navigator.languages),t.push(navigator.hardwareConcurrency),t.push(Object.keys(navigator).length),c(JSON.stringify(t))};generateCanvasID=()=>{const t=document.createElement("canvas");t.height=100,t.width=800;const e=t.getContext("2d");return null!==e&&(e.font="30px Arial",e?.fillText("Hello World",20,90)),c(t.toDataURL())};generateWebGlID=()=>{const t=[],e=document.createElement("canvas").getContext("webgl2");t.push(e?.getParameter(e.RENDERER)),t.push(e?.getParameter(e.VENDOR));const n=e?.getExtension("WEBGL_debug_renderer_info");return t.push(n?.UNMASKED_RENDERER_WEBGL),t.push(n?.UNMASKED_VENDOR_WEBGL),c(JSON.stringify(t))};completeID=()=>c(this.generateHeaderID()+this.generateCanvasID()+this.generateWebGlID())}var f=n(540),d=n(888);async function y(){var t=await nt();await G();let e=await b();!0!==await kt()&&!1!==t||null!=e&&!0===e.sentConfig||function(){const t=[];return r.KX.iterate(((e,n)=>{t.push({key:n,value:e})})).then((()=>t)).catch((t=>{(0,o.vF)("error",`Error reading config:${t}`)}))}().then((t=>{(0,d.jB)({tags:t,category:i.VQ}),async function(t){for(;_;)await new Promise((t=>setTimeout(t,100)));_=!0;var e=await b(),n={sentConfig:!0};null!=e&&(n={...e,sentConfig:!0}),await m({info:n}),_=!1}()}))}async function g(t,e){return await r.KX.setItem(t,e),await r.KX.getItem(t)}async function h(){let t=await sessionStorage.getItem(i.VN);return null===t?await async function(t){var e;return e=(0,a.l)(),await sessionStorage.setItem(i.VN,e),e}():t}async function v(t){await g(i.zO,!0===t)}async function p(){return await r.KX.getItem(i.zO)}async function w(){if(null==await k()){let t=new u;const e=await t.completeID();await async function(t){await g(i.n_,t)}(e)}}async function m(){let{info:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};await g("ObslySessionInfo",JSON.stringify(t))}async function b(){let t=await r.KX.getItem("ObslySessionInfo");return null==t?{}:JSON.parse(t)}let _=!1;async function E(){for(;_;)await new Promise((t=>setTimeout(t,100)));await m({sequence:0}),_=!1}async function I(t){for(;_;)await new Promise((t=>setTimeout(t,100)));_=!0;var e=await b(),n=1,r={sequence:1};return null!=e&&(void 0!==e.sequence?(n=e.sequence,r={...e,sequence:e.sequence+1}):r={...e,sequence:1}),await m({info:r}),_=!1,n}async function S(){return await g(i.u$,!0)}async function O(){return await g(i.p2,!0)}async function R(){return await r.KX.getItem(i.p2)}async function T(){return await r.KX.getItem(i.u$)}async function F(t){return await g(i.I0,t)}async function N(){let t=await r.KX.getItem(i.I0);return"true"===String(t)}async function k(){return await r.KX.getItem(i.n_)}async function x(t){await g(i.Lq,t)}async function C(){return await r.KX.getItem(i.Lq)}async function A(){if(!0!==await It())try{let t=await G(),e=D();if(!e.length)return;e=e.filter((e=>e!==t)),L(e),await async function(t){await r.KX.removeItem("SessionInfo_"+t)}(t)}catch(t){(0,o.vF)("debug","Error during event beforeunload: ",t)}}function D(){const t=localStorage.getItem(i.Ol);return t?JSON.parse(t).sessions:[]}function L(t){localStorage.setItem(i.Ol,JSON.stringify({sessions:t}))}async function M(t){null!=t&&setTimeout((async()=>{let t=await J();var e=new Date(t),n=new Date;if(e<n)(0,o.vF)("debug","Session Timeout expired. Starting new session..."),(0,f.Tl)(),P();else{(0,o.vF)("debug",`Session was increment until ${e}`);const t=e.getTime()-n;M(Math.ceil(t/1e3/60))}}),t*i.wl+100)}async function P(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=await It(),r=await Ft();if(n){let n=await async function(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=await Ft();M(n);const r=await G(),i=null==t?(0,a.l)():t;if(r===i){let t=new Date;return t.setTime(t.getTime()+60*n*1e3),await Z(t.toUTCString()),i}if(!1===e){let t=await J();if(new Date<=new Date(t)&&null!==r)return r}let o=new Date;return o.setTime(o.getTime()+60*n*1e3),await z(i),await Z(o.toUTCString()),E(),y(),i}(t,e);return(0,o.vF)("debug",`Session is stateful, it will be kept for ${r} ${r>1?"minutes":"minute"}. Session ID: ${n}`),n}{let e=await async function(t){M(await Ft());let e=null==t?(0,a.l)():t;return await z(e),E(),function(t){try{let e=D();e.push(t),L(e)}catch(t){(0,o.vF)("error","Error during detecting sessions:",t)}}(e),y(),e}(t);return(0,o.vF)("debug",`Session is stateless, it restarts on reload page. Session ID: ${e}`),e}}async function B(){return await r.KX.getItem(i.yY)}async function K(t){await g(i.yY,t)}async function $(t){await g(i.Xc,t)}async function q(t){await g(i.ir,t)}async function H(t){await g(i.eo,t)}async function U(t){await g(i.PZ,t)}async function j(t){await g(i.nc,t)}async function V(){return r.KX.getItem(i.ir)}async function X(){return await r.KX.getItem(i.eo)}async function W(){return await r.KX.getItem(i.PZ)}async function Y(){return await r.KX.getItem(i.tu)}async function G(){return!0===await It()?await r.KX.getItem(i.nd):await sessionStorage.getItem(i.nd)}async function J(){return!0===await It()?await r.KX.getItem(i.F):await sessionStorage.getItem(i.F)}async function Z(t){return!0===await It()?await r.KX.setItem(i.F,t):await sessionStorage.setItem(i.F,t)}async function z(t){return!0===await It()?await r.KX.setItem(i.nd,t):await sessionStorage.setItem(i.nd,t)}async function Q(t){await g(i.C3,t)}async function tt(){return await r.KX.getItem(i.C3)}async function et(t){await g(i.u0,!0===t)}async function nt(){let t=await r.KX.getItem(i.u0);return"true"===String(t)}async function rt(){return await r.KX.getItem(i.hl)}async function at(t){return await g(i.UB,t)}async function it(t){return await g(i.hl,t)}async function ot(){return await r.KX.getItem(i.UB)}async function st(){return await r.KX.getItem(i.es)}async function ct(t){return await g(i.es,t)}async function lt(){return await r.KX.getItem(i.eR)}async function ut(t){return await g(i.eR,t)}async function ft(t){if(null!==t)return await g(i.E$,t)}async function dt(){return await r.KX.getItem(i.E$)}async function yt(t){let e=t.concat(s.Qj);return await g(i.FZ,e)}async function gt(t){return await g(i.Vr,t)}async function ht(){return await r.KX.getItem(i.FZ)}async function vt(){return await r.KX.getItem(i.Vr)}async function pt(t){return await g(i.Wh,t)}async function wt(t){return await g(i.n9,t)}async function mt(t){return await g(i.E1,t)}async function bt(t){return await g(i.E2,t)}async function _t(t){return await g(i.pU,t)}async function Et(t){return await g(i.BS,!0===t)}async function It(){let t=await r.KX.getItem(i.BS);return null!=t&&!0===t}async function St(){return!0===await r.KX.getItem(i.Wh)}async function Ot(){return await r.KX.getItem(i.n9)}async function Rt(){return await r.KX.getItem(i.E1)}async function Tt(){return await r.KX.getItem(i.E2)}async function Ft(){let t=await r.KX.getItem(i.pU);return"number"!=typeof t?null:t}const Nt=async t=>await g(i.M,!0===t),kt=async()=>!0===await r.KX.getItem(i.M),xt=async t=>await g(i.JH,!0===t),Ct=async t=>await g(i.a4,!0===t),At=async()=>await r.KX.getItem(i.a4),Dt=async t=>await g(i.s,!0===t),Lt=async t=>(("number"!=typeof t||t<0||t>1)&&((0,o.vF)("info","SS RAGE CLICK error: Value must be a float between 0 and 1. By default, it will be set to 0.25."),t=i.Ju),await g(i.A9,t)),Mt=async()=>!0===await r.KX.getItem(i.JH);async function Pt(){return await r.KX.getItem(i.gR)}async function Bt(){return await r.KX.getItem(i.MU)}async function Kt(){return await r.KX.getItem(i.qR)}const $t=async t=>await g(i.gR,t),qt=async t=>await g(i.qR,t),Ht=async t=>await g(i.MU,t);async function Ut(t){return await g(i.MQ,!0===t)}const jt=async t=>await g(i.x3,t),Vt=async t=>await g(i.eS,t),Xt=async t=>await r.KX.getItem(i.x3),Wt=async t=>await r.KX.getItem(i.eS)},351:(t,e,n)=>{"use strict";n.d(e,{C1:()=>s,Cl:()=>l,G9:()=>u,Xn:()=>c});var r=n(242),a=n(723),i=n(29);function o(t,e,n){return`${Math.floor(t/a.LC)},${Math.floor(e/a.LC)},${n}`}async function s(t,e){await async function(t,e){try{return await r.rE.setItem(t,e),await r.rE.getItem(t)}catch(t){(0,i.vF)("warning",`Error: ${t}`)}}(t,e)}async function c(t,e,n){try{let s=function(t,e,n){const r=[];for(let i=-1;i<=1;i++)for(let s=-1;s<=1;s++)r.push(o(t+i*a.LC,e+s*a.LC,n));return r}(t,e,n),c={};for(let t of s){var i=await r.rE.getItem(t);c[t]=null!==i?i:{count:0,page:n,timestamp:performance.now()}}return c}catch(t){return console.warn(t),{}}}async function l(){try{if(null===r.rE)return;return await r.rE.clear(),"OK"}catch(t){(0,i.vF)("warn",t)}}async function u(t){try{if(null===r.rE)return;return await r.rE.removeItem(t),"OK"}catch(t){(0,i.vF)("warn",t)}}},160:(t,e,n)=>{"use strict";n.d(e,{Dh:()=>o,VU:()=>s,Y3:()=>c,sv:()=>l});var r=n(242),a=n(477),i=n(29);async function o(t){let e=await(0,a.pi)(),n=await r.tl.getItem(e+"_"+t);return null!==n?n:null}async function s(t,e){let n=await(0,a.pi)();await r.tl.setItem(n+"_"+t,e)}async function c(t){let e=await(0,a.pi)();return await r.tl.removeItem(e+"_"+t)}async function l(){let t=await r.tl.keys(),e=await(0,a.pi)();if(null!=t){t=t.filter((t=>t.includes(e)));for(let e in t){let n=String(t[e]);await r.tl.removeItem(n).catch((function(t){(0,i.vF)("warn","Error during retrieve an event from db:",t)}))}}}},575:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var r=n(888);function a(){const t=console.error,e=console.warn,n=(t,e,n)=>{let a=function(t){return Array.prototype.slice.call(t).map((t=>{try{return"object"==typeof t?"[OBJ]"+JSON.stringify(t)+"[OBJ]":String(t)}catch(e){return t}})).join("; ")}(n),i=a.trim();a.length>5e3&&(i=i.slice(0,5e3)+"..."),(0,r.jB)({tags:[{key:e,value:i}],category:e}),t.apply(console,n)};console.error=function(){n(t,"CONSOLE.ERROR",arguments)},console.warn=function(){n(e,"CONSOLE.WARN",arguments)}}},932:(t,e,n)=>{"use strict";n.a(t,(async(t,e)=>{try{var r=n(477),a=n(705),i=n(29),o=n(723),s=n(888),c=n(959),l=n(981),u=n(540),f=n(511),d=t([a]);a=(d.then?(await d)():d)[0],(0,i.vF)("log","Control functions initialized"),a.y.setLogLevel=async function(t){if(null!=t&&void 0!==t&&"string"==typeof t){var e=t.trim();i.yr.includes(e)||((0,i.vF)("error","[SDK-OBSLY] Log level must be one of these: null, error, warn, log. Be default, it will be setted to error."),e="error"),a.y.logLevel=i.x1[e],(0,r.He)(i.x1[e])}else(0,i.vF)("error","[SDK-OBSLY] Cannot set an undefined log level.")},a.y.startSession=async function(){await(0,c.zP)()},a.y.closeCurrentSession=function(){(0,u.Tl)(),(0,r.J0)(null,!0)},a.y.createNewSession=async function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;null!=await(0,r.pi)()&&((0,u.Tl)(),(0,l._O)());var e=null;"string"==typeof t&&(t.trim().length>0?e=t.trim():(0,i.vF)("warn","You are trying to set a new Session with an empty name.")),(0,r.J0)(e,!0)},a.y.pauseTracker=async function(){!1===await(0,r.Zb)()&&(0,i.vF)("warn","Tracker is already paused."),(0,r.Vv)(!1)},a.y.resumeTracker=async function(){!0===await(0,r.Zb)()&&(0,i.vF)("warn","Tracker is already on."),(0,r.Vv)(!0)},a.y.setUserID=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;var e=null;if("string"==typeof t){if(!(t.trim().length>0))throw new f.yI("You are trying to set an user ID with an empty name.");e=t.trim()}(0,r.Hk)(e)},a.y.setPersonID=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;var e=null;if("string"==typeof t){if(!(t.trim().length>0))throw new f.yI("You are trying to set a person ID with an empty name.");e=t.trim()}(0,r.z4)(e)},a.y.setPassportID=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;var e=null;if("string"==typeof t){if(!(t.trim().length>0))throw new f.yI("You are trying to set a passport ID with an empty name.");e=t.trim()}(0,r.aQ)(e)},a.y.setContractID=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;var e=null;if("string"==typeof t){if(!(t.trim().length>0))throw new f.yI("You are trying to set a contract ID with an empty name.");e=t.trim()}(0,r.Ir)(e)},a.y.setAppName=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;var e=null;if("string"==typeof t){if(!(t.trim().length>0))throw new f.yI("You are trying to set an App Name with an empty name.");e=t.trim()}(0,r.Xf)(e)},a.y.setAppVersion=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;var e=null;if("string"==typeof t){if(!(t.trim().length>0))throw new f.yI("warn","You are trying to set an App Name with an empty name.");e=t.trim()}(0,r.eh)(e)},a.y.setRequestsBlacklist=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];var e=null;if(typeof t!=typeof[])throw new f.yI("You are trying to set an invalid requests blacklist. Check that the current parameter is a list of strings.");t.length>0&&(e=t.filter((t=>t.trim().length>0)),(0,r.I$)(e))},a.y.getSessionInfo=async function(){return{sessionID:await(0,r.pi)(),installationID:await(0,r.m3)()}},a.y.addFeedback=async function(t,e,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;if(null==t)throw new f.yI("Cannot create feedback without rating.");if(null==e)throw new f.yI("Cannot create feedback without message.");let a={tags:[{key:"rating",value:t},{key:"message",value:e}],category:"feedback"};null!=n&&void 0!==n&&(a.ui={screen_image:n}),(0,s.GK)({type:o.xh.TAGS,extra:a,timestamp:r})},a.y.activateFullDebug=async()=>{await(0,r.pM)(!0)},a.y.deactivateFullDebug=async()=>{await(0,r.pM)(!1)},e()}catch(t){e(t)}}))},601:(t,e,n)=>{"use strict";n.d(e,{EU:()=>l,dB:()=>u});var r=n(888),a=n(29),i=n(540),o=n(477);let s=0;function c(){const t=performance.getEntriesByType("resource");t.forEach((t=>{t.startTime>s&&function(t,e){"video"!==t.initiatorType&&"img"!==t.initiatorType&&"css"!==t.initiatorType||(0,r.A0)({url:t.name,method:"GET",status:t.responseStatus,body:null,response:null,duration:Math.floor(e.toFixed(2)),responseHeaders:null,requestHeaders:null,timestamp:performance.timeOrigin+t.startTime})}(t,t.responseEnd-t.startTime)})),t.length>0&&(s=t[t.length-1].startTime)}function l(){setInterval(c,1e3)}function u(){function t(){const t=document.getElementsByTagName("img");for(let e of t)e.crossOrigin=""}function e(){const t=document.getElementsByTagName("video");for(let e of t)e.crossOrigin=""}(0,a.vF)("log","DOM Interceptor Available"),document.addEventListener("DOMContentLoaded",(function(){t(),e()})),new MutationObserver((n=>{n.forEach((n=>{n.addedNodes.forEach((n=>{"IMG"===n.tagName&&t(),"VIDEO"===n.tagName&&e()}))}))})).observe(document.body,{childList:!0,subtree:!0}),document.addEventListener("visibilitychange",(function(t){let e="visible"===t.target.visibilityState?"foreground":"background";(0,r.$H)({origin:window.location.href,destination:window.location.href,stage:e})}),!0),window.addEventListener("beforeunload",(async function(t){await(0,i.Tl)(),await(0,o.PO)()}))}},315:(t,e,n)=>{"use strict";n.d(e,{m:()=>o});var r=n(888),a=n(29),i=n(570);async function o(){(0,a.vF)("log","Crash Events Available"),window.onerror=function(t,e,n,a,o){(0,r.xB)({trace_id:(0,i.l)(),title:t,subtitle:"",message:o.stack,original_message:o.stack,message_status:"",hash:""})}}},364:(t,e,n)=>{"use strict";n.a(t,(async(t,e)=>{try{var r=n(888),a=n(723),i=n(29),o=n(351),s=n(477),c=n(705),l=n(511),u=t([c]);c=(u.then?(await u)():u)[0],(0,i.vF)("log","Metrics interceptor Running");const f={};function d(t,e,n,r){return`${t}:${e}:${n}:${r}`}function y(t){if("string"!=typeof t||t.trim().length<5)throw new l.yI("Key must be a valid string with at least 5 characters.")}function g(t,e,n){let r=null;"string"==typeof t&&t.trim().length>0?r=t.trim():(0,i.vF)("warn",`You are trying to set a new ${n} with an empty name.`),e(r)}(0,o.Cl)(),c.y.incCounter=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null;y(t),(0,r.xJ)({key:t.toString(),type:a._A.COUNTER,count:1,duration:void 0,fbl:e.toString(),operation:n.toString(),view:i.toString(),state:o.toString()},null,s)},c.y.setGauge=function(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,c=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null;if(y(t),"number"==typeof e&&!isNaN(e))throw new l.yI("Value must be a number.");(0,r.xJ)({key:t.toString(),type:a._A.GAUGE,count:e,duration:void 0,fbl:n.toString(),operation:i.toString(),view:o.toString(),state:s.toString()},null,c)},c.y.startHistogramTimer=function(t,e,n,r){let a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;y(t);const o=d(t,e,n,r);f[o]&&(0,i.vF)("warn","Timer already started"),f[o]=null==a?Date.now():a},c.y.endHistogramTimer=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,c=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null;y(t);const l=d(t,e,n,o);if(!f[l])return void(0,i.vF)("error","Timer not found");const u=(Date.now()-f[l])/1e3;let g;a.SC.forEach((function(t){void 0===g&&u<=t&&(g=t)})),(0,r.xJ)({key:t,type:a._A.HISTOGRAM,count:1,duration:u,fbl:e,operation:n,view:o,state:s,le:g},null,c),delete f[l]},c.y.setFunctionalBlock=async function(){g(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,s.LY,"Functional block")},c.y.setOperation=async function(){g(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,s.MF,"Operation")},c.y.setView=async function(){g(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,s.g6,"View")},e()}catch(h){e(h)}}))},847:(t,e,n)=>{"use strict";n.d(e,{s:()=>l});var r=n(888),a=n(29),i=n(351),o=n(477);function s(t){return t.split("?")[0]}function c(t,e){(0,a.vF)("debug",`Navigating from: ${t} to: ${e}`),(0,r.$H)({origin:t,destination:e,stage:"load"}),(0,o.nd)(s(e)),(0,o.z9)(s(t)),(0,i.Cl)(),async function(t){await(0,o.Gl)()&&(0,o.g6)(t)}(e)}async function l(){(0,a.vF)("log","Navigation events available"),async function(){let t=await(0,o.dm)();var e=document.referrer,n=window.location.href;t===n&&(e=n),c(e,n)}(),function(t){const e=t.pushState,n=t.replaceState;let r=window.location.href;t.pushState=function(n){for(var a=arguments.length,i=new Array(a>1?a-1:0),o=1;o<a;o++)i[o-1]=arguments[o];const s=window.location.origin+window.location.pathname+i[1];return c(r,s),r=s,e.apply(t,[n,...i])},t.replaceState=function(e){for(var a=arguments.length,i=new Array(a>1?a-1:0),o=1;o<a;o++)i[o-1]=arguments[o];const s=window.location.origin+window.location.pathname+i[1];return c(r,s),r=s,n.apply(t,[e,...i])},window.addEventListener("popstate",(()=>{const t=window.location.href;(0,a.vF)("log",`Navigated from: ${r} to: ${t}`),r=t}))}(window.history)}},611:(t,e,n)=>{"use strict";n.a(t,(async(t,e)=>{try{var r=n(888),a=n(160),i=n(29),o=n(705),s=n(511),c=t([o]);o=(c.then?(await c)():c)[0],(0,i.vF)("log","Performance events available"),o.y.startTransaction=async function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;if(!t||"string"!=typeof t||0===t.trim().length)throw new s.yI("Start transaction: requires a valid non-empty string as name.");const o=t.trim(),c=e?.trim()||null;let l=null;null!==r&&(l=parseInt(r),(isNaN(l)||0===l)&&((0,i.vF)("warn","Start transaction: autofinishWithStepsCount must be a non-zero number. It will be ignored."),l=null));let u=null;null!==n&&(u=parseInt(n),(isNaN(u)||0===u)&&((0,i.vF)("warn","Start transaction: startNanoTime must be a non-zero number. It will be ignored."),u=null)),await(0,a.Dh)(o)&&(0,i.vF)("warn",`Transaction ${o} already exists. It will be overwritten.`),await(0,a.VU)(o,{name:o,timestamp:Date.now(),description:c,startNanoTime:u||performance.now(),autofinishWithStepsCount:l,steps:[]}),(0,i.vF)("debug",`Starting transaction ${o}`)},o.y.endTransaction=async function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!t||"string"!=typeof t||0===t.trim().length)throw new s.yI("Finish transaction: requires a valid non-empty string as name.");const n=t.trim(),o=e?.trim()||null,c=await(0,a.Dh)(n);if(!c)throw new s.yI(`Finish transaction error: transaction ${n} does not exist.`);const l=o||c.description||null;await(0,r.PQ)({name:c.name,timestamp:c.timestamp,elapsed_ms:performance.now()-c.startNanoTime,debug:l,steps:c.steps.map((t=>{let{open:e,...n}=t;return n}))}),await(0,a.Y3)(n),(0,i.vF)("log",`Finish transaction ${n}`)},o.y.startStep=async function(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;if(!t||"string"!=typeof t||0===t.trim().length)throw new s.yI("Start Step: requires a valid non-empty string as name.");if(!e||"string"!=typeof e||0===e.trim().length)throw new s.yI("Start Step: requires a valid non-empty string as transactionName.");const o=t.trim(),c=e.trim(),l=n?.trim()||null;let u=null;null!==r&&(u=parseInt(r),(isNaN(u)||0===u)&&((0,i.vF)("warn","Start Step: startNanoTime must be a non-zero number. It will be ignored."),u=null));const f=await(0,a.Dh)(c);if(!f)throw new s.yI(`Start step error: transaction ${c} does not exist. (Step: ${o})`);if(f.steps.some((t=>t.name===o&&t.open)))throw new s.yI(`Start step error: transaction ${c} start step ${o} cannot be executed. A step with the same name must be closed first.`);let d=f.steps.length>0?f.steps.slice(-1)[0].elapsed_ms:f.elapsed_ms;const y={name:o,open:!0,timestamp:Date.now(),debug:l,elapsed_ms:u&&u>=d?u:performance.now()};f.steps.push(y),await(0,a.VU)(c,f),(0,i.vF)("log","Start step complete!")},o.y.finishStep=async function(t,e){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(!t||"string"!=typeof t||0===t.trim().length)throw new s.yI("Finish Step: requires a valid non-empty string as name.");if(!e||"string"!=typeof e||