@spotlightjs/spotlight 4.11.5 → 4.11.7
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/dist/_virtual/index10.js +3 -3
- package/dist/_virtual/index6.js +3 -3
- package/dist/_virtual/index7.js +3 -3
- package/dist/_virtual/index8.js +3 -3
- package/dist/_virtual/index9.js +3 -3
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/compile/index.js +2 -2
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/applicator/index.js +2 -2
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/core/index.js +2 -2
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/format/index.js +2 -2
- package/dist/node_modules/.pnpm/ajv@8.18.0/node_modules/ajv/dist/vocabularies/validation/index.js +2 -2
- package/dist/node_modules/.pnpm/{hono@4.12.18 → hono@4.12.25}/node_modules/hono/dist/helper/streaming/sse.js.map +1 -1
- package/dist/node_modules/.pnpm/{hono@4.12.18 → hono@4.12.25}/node_modules/hono/dist/middleware/cors/index.js +3 -6
- package/dist/node_modules/.pnpm/hono@4.12.25/node_modules/hono/dist/middleware/cors/index.js.map +1 -0
- package/dist/node_modules/.pnpm/{hono@4.12.18 → hono@4.12.25}/node_modules/hono/dist/utils/html.js.map +1 -1
- package/dist/node_modules/.pnpm/{hono@4.12.18 → hono@4.12.25}/node_modules/hono/dist/utils/stream.js +5 -3
- package/dist/node_modules/.pnpm/hono@4.12.25/node_modules/hono/dist/utils/stream.js.map +1 -0
- package/dist/sentry-config.js +2 -2
- package/dist/server/cli/run.js +2 -2
- package/dist/server/cli.js +2 -2
- package/dist/server/main.js +2 -2
- package/dist/server/mcp/mcp.js +2 -2
- package/dist/server/routes/stream/streaming.js +2 -2
- package/dist/ui/assets/index.js +47 -47
- package/dist/ui/assets/instrumentation.js +2 -2
- package/package.json +4 -4
- package/dist/node_modules/.pnpm/hono@4.12.18/node_modules/hono/dist/middleware/cors/index.js.map +0 -1
- package/dist/node_modules/.pnpm/hono@4.12.18/node_modules/hono/dist/utils/stream.js.map +0 -1
- /package/dist/node_modules/.pnpm/{hono@4.12.18 → hono@4.12.25}/node_modules/hono/dist/helper/streaming/sse.js +0 -0
- /package/dist/node_modules/.pnpm/{hono@4.12.18 → hono@4.12.25}/node_modules/hono/dist/utils/html.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{D as R,d as m,g as ze,G as X,a as de,b as le,S as St,i as Er,c as On,e as Ot,T as No,n as tr,f as Po,h as ot,j as De,s as H,k as Ur,l as nr,m as Yt,o as Jt,t as ue,p as Fe,q as ae,r as au,u as Nt,v as Re,w as cu,x as It,y as us,z as uu,A as $,B as ti,C as te,E as bn,F as ni,H as lu,I as Lo,J as Ce,K as Ut,L as rr,_ as sr,M as Do,N as Fo,O as Bo,P as vn,Q as wt,R as Uo,U as du,V as Ho,W as Ht,X as fu,Y as pu,Z as hu,$ as $o,a0 as ls,a1 as ds,a2 as Kt,a3 as Tn,a4 as ri,a5 as Wo,a6 as fs,a7 as zo,a8 as ir,a9 as mu,aa as gu,ab as Me,ac as si,ad as ii,ae as qo,af as jo,ag as rt,ah as _u,ai as Hr,aj as oi,ak as Su,al as yu,am as Eu,an as bu,ao as vu,ap as Tu,aq as Iu,ar as Vo,as as Xe,at as Pe,au as Nn,av as Go,aw as _e,ax as ai,ay as ci,az as Yo,aA as ps,aB as wu,aC as Jo,aD as Pn,aE as Ko,aF as ui,aG as ku,aH as li,aI as hs,aJ as Ln,aK as Ru,aL as Cu,aM as D,aN as pe,aO as be,aP as Xo,aQ as Pt,aR as Mu,aS as yt,aT as v,aU as di,aV as $t,aW as fi,aX as pi,aY as Qo,aZ as Zo,a_ as Xt,a$ as ms,b0 as Au,b1 as xu,b2 as ea,b3 as Ou,b4 as Nu,b5 as Pu,b6 as Lu,b7 as Du,b8 as ta,b9 as br,ba as Fu,bb as Bu,bc as Uu,bd as Hu,be as $u}from"./serverTimingMeta.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="
|
|
1
|
+
import{D as R,d as m,g as ze,G as X,a as de,b as le,S as St,i as Er,c as On,e as Ot,T as No,n as tr,f as Po,h as ot,j as De,s as H,k as Ur,l as nr,m as Yt,o as Jt,t as ue,p as Fe,q as ae,r as au,u as Nt,v as Re,w as cu,x as It,y as us,z as uu,A as $,B as ti,C as te,E as bn,F as ni,H as lu,I as Lo,J as Ce,K as Ut,L as rr,_ as sr,M as Do,N as Fo,O as Bo,P as vn,Q as wt,R as Uo,U as du,V as Ho,W as Ht,X as fu,Y as pu,Z as hu,$ as $o,a0 as ls,a1 as ds,a2 as Kt,a3 as Tn,a4 as ri,a5 as Wo,a6 as fs,a7 as zo,a8 as ir,a9 as mu,aa as gu,ab as Me,ac as si,ad as ii,ae as qo,af as jo,ag as rt,ah as _u,ai as Hr,aj as oi,ak as Su,al as yu,am as Eu,an as bu,ao as vu,ap as Tu,aq as Iu,ar as Vo,as as Xe,at as Pe,au as Nn,av as Go,aw as _e,ax as ai,ay as ci,az as Yo,aA as ps,aB as wu,aC as Jo,aD as Pn,aE as Ko,aF as ui,aG as ku,aH as li,aI as hs,aJ as Ln,aK as Ru,aL as Cu,aM as D,aN as pe,aO as be,aP as Xo,aQ as Pt,aR as Mu,aS as yt,aT as v,aU as di,aV as $t,aW as fi,aX as pi,aY as Qo,aZ as Zo,a_ as Xt,a$ as ms,b0 as Au,b1 as xu,b2 as ea,b3 as Ou,b4 as Nu,b5 as Pu,b6 as Lu,b7 as Du,b8 as ta,b9 as br,ba as Fu,bb as Bu,bc as Uu,bd as Hu,be as $u}from"./serverTimingMeta.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="25ec3c5d-447a-4810-9b7b-f790038d5910",e._sentryDebugIdIdentifier="sentry-dbid-25ec3c5d-447a-4810-9b7b-f790038d5910")}catch{}})();const In={},hi={};function Ge(e,t){In[e]=In[e]||[],In[e].push(t)}function Ye(e,t){if(!hi[e]){hi[e]=!0;try{t()}catch(n){R&&m.error(`Error while instrumenting ${e}`,n)}}}function Te(e,t){const n=e&&In[e];if(n)for(const r of n)try{r(t)}catch(s){R&&m.error(`Error while triggering instrumentation handler.
|
|
2
2
|
Type: ${e}
|
|
3
3
|
Name: ${ze(r)}
|
|
4
4
|
Error:`,s)}}let vr=null;function na(e){const t="error";Ge(t,e),Ye(t,Wu)}function Wu(){vr=X.onerror,X.onerror=function(e,t,n,r,s){return Te("error",{column:r,error:s,line:n,msg:e,url:t}),vr?vr.apply(this,arguments):!1},X.onerror.__SENTRY_INSTRUMENTED__=!0}let Tr=null;function ra(e){const t="unhandledrejection";Ge(t,e),Ye(t,zu)}function zu(){Tr=X.onunhandledrejection,X.onunhandledrejection=function(e){return Te("unhandledrejection",e),Tr?Tr.apply(this,arguments):!0},X.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}let mi=!1;function qu(){if(mi)return;function e(){const t=de(),n=t&&le(t);if(n){const r="internal_error";R&&m.log(`[Tracing] Root span: ${r} -> Global error occurred`),n.setStatus({code:St,message:r})}}e.tag="sentry_tracingErrorCallback",mi=!0,na(e),ra(e)}function gi(e){m.log(`Ignoring span ${e.op} - ${e.description} because it matches \`ignoreSpans\`.`)}function Dn(e,t){if(!t?.length||!e.description)return!1;for(const n of t){if(Vu(n)){if(Er(e.description,n))return R&&gi(e),!0;continue}if(!n.name&&!n.op)continue;const r=n.name?Er(e.description,n.name):!0,s=n.op?e.op&&Er(e.op,n.op):!0;if(r&&s)return R&&gi(e),!0}return!1}function ju(e,t){const n=t.parent_span_id,r=t.span_id;if(n)for(const s of e)s.parent_span_id===r&&(s.parent_span_id=n)}function Vu(e){return typeof e=="string"||e instanceof RegExp}class qe{constructor(t={}){this._traceId=t.traceId||On(),this._spanId=t.spanId||Ot()}spanContext(){return{spanId:this._spanId,traceId:this._traceId,traceFlags:No}}end(t){}setAttribute(t,n){return this}setAttributes(t){return this}setStatus(t){return this}updateName(t){return this}isRecording(){return!1}addEvent(t,n,r){return this}addLink(t){return this}addLinks(t){return this}recordException(t,n){}}function Be(e,t=[]){return[e,t]}function Gu(e,t){const[n,r]=e;return[n,[...r,t]]}function Fn(e,t){const n=e[1];for(const r of n){const s=r[0].type;if(t(r,s))return!0}return!1}function _i(e,t){return Fn(e,(n,r)=>t.includes(r))}function Bn(e){const t=Po(X);return t.encodePolyfill?t.encodePolyfill(e):new TextEncoder().encode(e)}function Yu(e){const t=Po(X);return t.decodePolyfill?t.decodePolyfill(e):new TextDecoder().decode(e)}function Un(e){const[t,n]=e;let r=JSON.stringify(t);function s(i){typeof r=="string"?r=typeof i=="string"?r+i:[Bn(r),i]:r.push(typeof i=="string"?Bn(i):i)}for(const i of n){const[o,c]=i;if(s(`
|
|
@@ -20,5 +20,5 @@ Error:`,s)}}function Df(){return Tf(e=>{nn("cls",{metric:e}),Ua=e},{reportAllCha
|
|
|
20
20
|
`).reduce((n,r)=>{const[s,i]=r.split(": ");return i&&(n[s.toLowerCase()]=i),n},{}):{}}const Or=[],An=new Map,ut=new Map,Rp=60;function Cp(){if(rn()&&pe()){const t=Mp();return()=>{t()}}return()=>{}}const Kr={click:"click",pointerdown:"click",pointerup:"click",mousedown:"click",mouseup:"click",touchstart:"click",touchend:"click",mouseover:"hover",mouseout:"hover",mouseenter:"hover",mouseleave:"hover",pointerover:"hover",pointerout:"hover",pointerenter:"hover",pointerleave:"hover",dragstart:"drag",dragend:"drag",drag:"drag",dragenter:"drag",dragleave:"drag",dragover:"drag",drop:"drag",keydown:"press",keyup:"press",keypress:"press",input:"press"};function Mp(){return za(Ap)}const Ap=({metric:e})=>{if(e.value==null)return;const t=ie(e.value);if(t>Rp)return;const n=e.entries.find(h=>h.duration===e.value&&Kr[h.name]);if(!n)return;const{interactionId:r}=n,s=Kr[n.name],i=ie(pe()+n.startTime),o=de(),c=o?le(o):void 0,a=r!=null?An.get(r):void 0,u=a?.span||c,d=u?H(u).description:te().getScopeData().transactionName,l=a?.elementName||be(n.target),f={[ae]:"auto.http.browser.inp",[Fe]:`ui.interaction.${s}`,[It]:n.duration},p=Os({name:l,transaction:d,attributes:f,startTime:i});p&&(p.addEvent("inp",{[Yt]:"millisecond",[Jt]:e.value}),p.end(i+t))};function xp(){const e=Object.keys(Kr);qr()&&e.forEach(s=>{O.addEventListener(s,t,{capture:!0,passive:!0})});function t(s){const i=s.target;if(!i)return;const o=be(i),c=Math.round(s.timeStamp);if(ut.set(c,o),ut.size>50){const a=ut.keys().next().value;a!==void 0&&ut.delete(a)}}function n(s){const i=Math.round(s.startTime);let o=ut.get(i);if(!o)for(let c=-5;c<=5;c++){const a=ut.get(i+c);if(a){o=a;break}}return o||"<unknown>"}const r=({entries:s})=>{const i=de(),o=i&&le(i);s.forEach(c=>{if(!$f(c))return;const a=c.interactionId;if(a==null||An.has(a))return;const u=c.target?be(c.target):n(c);if(Or.length>10){const d=Or.shift();An.delete(d)}Or.push(a),An.set(a,{span:o,elementName:u})})};it("event",r),it("first-input",r)}const Op=40;function Ps(e,t=Ns("fetch")){let n=0,r=0;async function s(i){const o=i.body.length;n+=o,r++;const c={body:i.body,method:"POST",referrerPolicy:"strict-origin",headers:e.headers,keepalive:n<=6e4&&r<15,...e.fetchOptions};try{const a=await t(e.url,c);return{statusCode:a.status,headers:{"x-sentry-rate-limits":a.headers.get("X-Sentry-Rate-Limits"),"retry-after":a.headers.get("Retry-After")}}}catch(a){throw Tp("fetch"),a}finally{n-=o,r--}}return Bl(e,s,bs(e.bufferSize||Op))}const Np=30,Pp=50;function Xr(e,t,n,r){const s={filename:e,function:t==="<anonymous>"?yt:t,in_app:!0};return n!==void 0&&(s.lineno=n),r!==void 0&&(s.colno=r),s}const Lp=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,Dp=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Fp=/\((\S*)(?::(\d+))(?::(\d+))\)/,Bp=/at (.+?) ?\(data:(.+?),/,Up=e=>{const t=e.match(Bp);if(t)return{filename:`<data:${t[2]}>`,function:t[1]};const n=Lp.exec(e);if(n){const[,s,i,o]=n;return Xr(s,yt,+i,+o)}const r=Dp.exec(e);if(r){if(r[2]&&r[2].indexOf("eval")===0){const c=Fp.exec(r[2]);c&&(r[2]=c[1],r[3]=c[2],r[4]=c[3])}const[i,o]=tc(r[1]||yt,r[2]);return Xr(o,i,r[3]?+r[3]:void 0,r[4]?+r[4]:void 0)}},Hp=[Np,Up],$p=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,Wp=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,zp=e=>{const t=$p.exec(e);if(t){if(t[3]&&t[3].indexOf(" > eval")>-1){const i=Wp.exec(t[3]);i&&(t[1]=t[1]||"eval",t[3]=i[1],t[4]=i[2],t[5]="")}let r=t[3],s=t[1]||yt;return[s,r]=tc(s,r),Xr(r,s,t[4]?+t[4]:void 0,t[5]?+t[5]:void 0)}},qp=[Pp,zp],jp=[Hp,qp],Vp=Mu(...jp),tc=(e,t)=>{const n=e.indexOf("safari-extension")!==-1,r=e.indexOf("safari-web-extension")!==-1;return n||r?[e.indexOf("@")!==-1?e.split("@")[0]:yt,n?`safari-extension:${t}`:`safari-web-extension:${t}`]:[e,t]},hn=1024,Gp="Breadcrumbs",Yp=((e={})=>{const t={console:!0,dom:!0,fetch:!0,history:!0,sentry:!0,xhr:!0,...e};return{name:Gp,setup(n){t.console&&wa(Qp(n)),t.dom&&Ja(Xp(n,t.dom)),t.xhr&&Ka(Zp(n)),t.fetch&&Aa(eh(n)),t.history&&lr(th(n)),t.sentry&&n.on("beforeSendEvent",Kp(n))}}}),Jp=Yp;function Kp(e){return function(n){$()===e&&je({category:`sentry.${n.type==="transaction"?"transaction":"event"}`,event_id:n.event_id,level:n.level,message:Xe(n)},{event:n})}}function Xp(e,t){return function(r){if($()!==e)return;let s,i,o=typeof t=="object"?t.serializeAttribute:void 0,c=typeof t=="object"&&typeof t.maxStringLength=="number"?t.maxStringLength:void 0;c&&c>hn&&(v&&m.warn(`\`dom.maxStringLength\` cannot exceed ${hn}, but a value of ${c} was configured. Sentry will use ${hn} instead.`),c=hn),typeof o=="string"&&(o=[o]);try{const u=r.event,d=nh(u)?u.target:u;s=be(d,{keyAttrs:o,maxStringLength:c}),i=Xo(d)}catch{s="<unknown>"}if(s.length===0)return;const a={category:`ui.${r.name}`,message:s};i&&(a.data={"ui.component_name":i}),je(a,{event:r.event,name:r.name,global:r.global})}}function Qp(e){return function(n){if($()!==e)return;const r={category:"console",data:{arguments:n.args,logger:"console"},level:ka(n.level),message:di(n.args," ")};if(n.level==="assert")if(n.args[0]===!1)r.message=`Assertion failed: ${di(n.args.slice(1)," ")||"console.assert"}`,r.data.arguments=n.args.slice(1);else return;je(r,{input:n.args,level:n.level})}}function Zp(e){return function(n){if($()!==e)return;const{startTimestamp:r,endTimestamp:s}=n,i=n.xhr[Qe];if(!r||!s||!i)return;const{method:o,url:c,status_code:a,body:u}=i,d={method:o,url:c,status_code:a},l={xhr:n.xhr,input:u,startTimestamp:r,endTimestamp:s},f={category:"xhr",data:d,type:"http",level:Ma(a)};e.emit("beforeOutgoingRequestBreadcrumb",f,l),je(f,l)}}function eh(e){return function(n){if($()!==e)return;const{startTimestamp:r,endTimestamp:s}=n;if(s&&!(n.fetchData.url.match(/sentry_key/)&&n.fetchData.method==="POST"))if(n.fetchData.method,n.fetchData.url,n.error){const i=n.fetchData,o={data:n.error,input:n.args,startTimestamp:r,endTimestamp:s},c={category:"fetch",data:i,level:"error",type:"http"};e.emit("beforeOutgoingRequestBreadcrumb",c,o),je(c,o)}else{const i=n.response,o={...n.fetchData,status_code:i?.status};n.fetchData.request_body_size,n.fetchData.response_body_size,i?.status;const c={input:n.args,response:i,startTimestamp:r,endTimestamp:s},a={category:"fetch",data:o,type:"http",level:Ma(o.status_code)};e.emit("beforeOutgoingRequestBreadcrumb",a,c),je(a,c)}}}function th(e){return function(n){if($()!==e)return;let r=n.from,s=n.to;const i=tt(D.location.href);let o=r?tt(r):void 0;const c=tt(s);o?.path||(o=i),i.protocol===c.protocol&&i.host===c.host&&(s=c.relative),i.protocol===o.protocol&&i.host===o.host&&(r=o.relative),je({category:"navigation",data:{from:r,to:s}})}}function nh(e){return!!e&&!!e.target}const rh=["EventTarget","Window","Node","ApplicationCache","AudioTrackList","BroadcastChannel","ChannelMergerNode","CryptoOperation","EventSource","FileReader","HTMLUnknownElement","IDBDatabase","IDBRequest","IDBTransaction","KeyOperation","MediaController","MessagePort","ModalWindow","Notification","SVGElementInstance","Screen","SharedWorker","TextTrack","TextTrackCue","TextTrackList","WebSocket","WebSocketWorker","Worker","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestUpload"],sh="BrowserApiErrors",ih=((e={})=>{const t={XMLHttpRequest:!0,eventTarget:!0,requestAnimationFrame:!0,setInterval:!0,setTimeout:!0,unregisterOriginalCallbacks:!1,...e};return{name:sh,setupOnce(){t.setTimeout&&_e(D,"setTimeout",Yi),t.setInterval&&_e(D,"setInterval",Yi),t.requestAnimationFrame&&_e(D,"requestAnimationFrame",ah),t.XMLHttpRequest&&"XMLHttpRequest"in D&&_e(XMLHttpRequest.prototype,"send",ch);const n=t.eventTarget;n&&(Array.isArray(n)?n:rh).forEach(s=>uh(s,t))}}}),oh=ih;function Yi(e){return function(...t){const n=t[0];return t[0]=$t(n,{mechanism:{handled:!1,type:`auto.browser.browserapierrors.${ze(e)}`}}),e.apply(this,t)}}function ah(e){return function(t){return e.apply(this,[$t(t,{mechanism:{data:{handler:ze(e)},handled:!1,type:"auto.browser.browserapierrors.requestAnimationFrame"}})])}}function ch(e){return function(...t){const n=this;return["onload","onerror","onprogress","onreadystatechange"].forEach(s=>{s in n&&typeof n[s]=="function"&&_e(n,s,function(i){const o={mechanism:{data:{handler:ze(i)},handled:!1,type:`auto.browser.browserapierrors.xhr.${s}`}},c=Vo(i);return c&&(o.mechanism.data.handler=ze(c)),$t(i,o)})}),e.apply(this,t)}}function uh(e,t){const r=D[e]?.prototype;r?.hasOwnProperty?.("addEventListener")&&(_e(r,"addEventListener",function(s){return function(i,o,c){try{lh(o)&&(o.handleEvent=$t(o.handleEvent,{mechanism:{data:{handler:ze(o),target:e},handled:!1,type:"auto.browser.browserapierrors.handleEvent"}}))}catch{}return t.unregisterOriginalCallbacks&&dh(this,i,o),s.apply(this,[i,$t(o,{mechanism:{data:{handler:ze(o),target:e},handled:!1,type:"auto.browser.browserapierrors.addEventListener"}}),c])}}),_e(r,"removeEventListener",function(s){return function(i,o,c){try{const a=o.__sentry_wrapped__;a&&s.call(this,i,a,c)}catch{}return s.call(this,i,o,c)}}))}function lh(e){return typeof e.handleEvent=="function"}function dh(e,t,n){e&&typeof e=="object"&&"removeEventListener"in e&&typeof e.removeEventListener=="function"&&e.removeEventListener(t,n)}const fh=()=>({name:"BrowserSession",setupOnce(){if(typeof D.document>"u"){v&&m.warn("Using the `browserSessionIntegration` in non-browser environments is not supported.");return}fi({ignoreDuration:!0}),pi(),lr(({from:e,to:t})=>{e!==void 0&&e!==t&&(fi({ignoreDuration:!0}),pi())})}}),ph="GlobalHandlers",hh=((e={})=>{const t={onerror:!0,onunhandledrejection:!0,...e};return{name:ph,setupOnce(){Error.stackTraceLimit=50},setup(n){t.onerror&&(gh(n),Ji("onerror")),t.onunhandledrejection&&(_h(n),Ji("onunhandledrejection"))}}}),mh=hh;function gh(e){na(t=>{const{stackParser:n,attachStacktrace:r}=nc();if($()!==e||Qo())return;const{msg:s,url:i,line:o,column:c,error:a}=t,u=Eh(ks(n,a||s,void 0,r,!1),i,o,c);u.level="error",Zo(u,{originalException:a,mechanism:{handled:!1,type:"auto.browser.global_handlers.onerror"}})})}function _h(e){ra(t=>{const{stackParser:n,attachStacktrace:r}=nc();if($()!==e||Qo())return;const s=Sh(t),i=rt(s)?yh(s):ks(n,s,void 0,r,!0);i.level="error",Zo(i,{originalException:s,mechanism:{handled:!1,type:"auto.browser.global_handlers.onunhandledrejection"}})})}function Sh(e){if(rt(e))return e;try{if("reason"in e)return e.reason;if("detail"in e&&"reason"in e.detail)return e.detail.reason}catch{}return e}function yh(e){return{exception:{values:[{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(e)}`}]}}}function Eh(e,t,n,r){const s=e.exception=e.exception||{},i=s.values=s.values||[],o=i[0]=i[0]||{},c=o.stacktrace=o.stacktrace||{},a=c.frames=c.frames||[],u=r,d=n,l=bh(t)??Xt();return a.length===0&&a.push({colno:u,filename:l,function:yt,in_app:!0,lineno:d}),e}function Ji(e){v&&m.log(`Global Handler attached: ${e}`)}function nc(){return $()?.getOptions()||{stackParser:()=>[],attachStacktrace:!1}}function bh(e){if(!(!Pt(e)||e.length===0)){if(e.startsWith("data:")){const t=e.match(/^data:([^;]+)/),n=t?t[1]:"text/javascript",r=e.includes("base64,");return`<data:${n}${r?",base64":""}>`}return e}}const vh=()=>({name:"HttpContext",preprocessEvent(e){if(!D.navigator&&!D.location&&!D.document)return;const t=ms(),n={...t.headers,...e.request?.headers};e.request={...t,...e.request,headers:n}}}),Th="cause",Ih=5,wh="LinkedErrors",kh=((e={})=>{const t=e.limit||Ih,n=e.key||Th;return{name:wh,preprocessEvent(r,s,i){const o=i.getOptions();Td(Is,o.stackParser,n,t,r,s)}}}),Rh=kh,Ch="SpotlightBrowser",Mh=((e={})=>{const t=e.sidecarUrl||"http://localhost:8969/stream";return{name:Ch,setup:()=>{v&&m.log("Using Sidecar URL",t)},processEvent:n=>Oh(n)?null:n,afterAllSetup:n=>{Ah(n,t)}}});function Ah(e,t){const n=Ns("fetch");let r=0;e.on("beforeEnvelope",s=>{if(r>3){m.warn("[Spotlight] Disabled Sentry -> Spotlight integration due to too many failed requests:",r);return}n(t,{method:"POST",body:Un(s),headers:{"Content-Type":"application/x-sentry-envelope"},mode:"cors"}).then(i=>{i.status>=200&&i.status<400&&(r=0)},i=>{r++,m.error("Sentry SDK can't connect to Sidecar is it running? See: https://spotlightjs.com/sidecar/npx/",i)})})}const xh=Mh;function Oh(e){return!!(e.type==="transaction"&&e.spans&&e.contexts?.trace&&e.contexts.trace.op==="ui.action.click"&&e.spans.some(({description:t})=>t?.includes("#sentry-spotlight")))}function Nh(){return Ph()?(v&&Kt(()=>{console.error("[Sentry] You cannot use Sentry.init() in a browser extension, see: https://docs.sentry.io/platforms/javascript/best-practices/browser-extensions/")}),!0):!1}function Ph(){if(typeof D.window>"u")return!1;const e=D;if(e.nw||!(e.chrome||e.browser)?.runtime?.id)return!1;const n=Xt(),r=["chrome-extension","moz-extension","ms-browser-extension","safari-web-extension"];return!(D===D.top&&r.some(i=>n.startsWith(`${i}://`)))}function Lh(e){return[md(),dd(),oh(),Jp(),mh(),Rh(),Rd(),vh(),fh()]}function Dh(e={}){const t=!e.skipBrowserExtensionCheck&&Nh();let n=e.defaultIntegrations==null?Lh():e.defaultIntegrations;const r={...e,enabled:t?!1:e.enabled,stackParser:Au(e.stackParser||Vp),integrations:bl({integrations:e.integrations,defaultIntegrations:n}),transport:e.transport||Ps};return Yl(hf,r)}const Z=X,Ls="sentryReplaySession",Fh="replay_event",Ds="Unable to send Replay",Bh=3e5,Uh=9e5,Hh=5e3,$h=5500,Wh=6e4,zh=5e3,qh=3,Ki=15e4,mn=5e3,jh=3e3,Vh=300,Fs=2e7,Gh=4999,Yh=5e4,Xi=36e5;var Jh=Object.defineProperty,Kh=(e,t,n)=>t in e?Jh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qi=(e,t,n)=>Kh(e,typeof t!="symbol"?t+"":t,n),oe=(e=>(e[e.Document=0]="Document",e[e.DocumentType=1]="DocumentType",e[e.Element=2]="Element",e[e.Text=3]="Text",e[e.CDATA=4]="CDATA",e[e.Comment=5]="Comment",e))(oe||{});function Xh(e){return e.nodeType===e.ELEMENT_NODE}function Dt(e){return e?.host?.shadowRoot===e}function Ft(e){return Object.prototype.toString.call(e)==="[object ShadowRoot]"}function Qh(e){return e.includes(" background-clip: text;")&&!e.includes(" -webkit-background-clip: text;")&&(e=e.replace(/\sbackground-clip:\s*text;/g," -webkit-background-clip: text; background-clip: text;")),e}function Zh(e){const{cssText:t}=e;if(t.split('"').length<3)return t;const n=["@import",`url(${JSON.stringify(e.href)})`];return e.layerName===""?n.push("layer"):e.layerName&&n.push(`layer(${e.layerName})`),e.supportsText&&n.push(`supports(${e.supportsText})`),e.media.length&&n.push(e.media.mediaText),n.join(" ")+";"}function jn(e){try{const t=e.rules||e.cssRules;return t?Qh(Array.from(t,rc).join("")):null}catch{return null}}function em(e){let t="";for(let n=0;n<e.style.length;n++){const r=e.style,s=r[n],i=r.getPropertyPriority(s);t+=`${s}:${r.getPropertyValue(s)}${i?" !important":""};`}return`${e.selectorText} { ${t} }`}function rc(e){let t;if(nm(e))try{t=jn(e.styleSheet)||Zh(e)}catch{}else if(rm(e)){let n=e.cssText;const r=e.selectorText.includes(":"),s=typeof e.style.all=="string"&&e.style.all;if(s&&(n=em(e)),r&&(n=tm(n)),r||s)return n}return t||e.cssText}function tm(e){const t=/(\[(?:[\w-]+)[^\\])(:(?:[\w-]+)\])/gm;return e.replace(t,"$1\\$2")}function nm(e){return"styleSheet"in e}function rm(e){return"selectorText"in e}class sc{constructor(){Qi(this,"idNodeMap",new Map),Qi(this,"nodeMetaMap",new WeakMap)}getId(t){return t?this.getMeta(t)?.id??-1:-1}getNode(t){return this.idNodeMap.get(t)||null}getIds(){return Array.from(this.idNodeMap.keys())}getMeta(t){return this.nodeMetaMap.get(t)||null}removeNodeFromMap(t){const n=this.getId(t);this.idNodeMap.delete(n),t.childNodes&&t.childNodes.forEach(r=>this.removeNodeFromMap(r))}has(t){return this.idNodeMap.has(t)}hasNode(t){return this.nodeMetaMap.has(t)}add(t,n){const r=n.id;this.idNodeMap.set(r,t),this.nodeMetaMap.set(t,n)}replace(t,n){const r=this.getNode(t);if(r){const s=this.nodeMetaMap.get(r);s&&this.nodeMetaMap.set(n,s)}this.idNodeMap.set(t,n)}reset(){this.idNodeMap=new Map,this.nodeMetaMap=new WeakMap}}function sm(){return new sc}function dr({maskInputOptions:e,tagName:t,type:n}){return t==="OPTION"&&(t="SELECT"),!!(e[t.toLowerCase()]||n&&e[n]||n==="password"||t==="INPUT"&&!n&&e.text)}function zt({isMasked:e,element:t,value:n,maskInputFn:r}){let s=n||"";return e?(r&&(s=r(s,t)),"*".repeat(s.length)):s}function Et(e){return e.toLowerCase()}function Qr(e){return e.toUpperCase()}const Zi="__rrweb_original__";function im(e){const t=e.getContext("2d");if(!t)return!0;const n=50;for(let r=0;r<e.width;r+=n)for(let s=0;s<e.height;s+=n){const i=t.getImageData,o=Zi in i?i[Zi]:i;if(new Uint32Array(o.call(t,r,s,Math.min(n,e.width-r),Math.min(n,e.height-s)).data.buffer).some(a=>a!==0))return!1}return!0}function Bs(e){const t=e.type;return e.hasAttribute("data-rr-is-password")?"password":t?Et(t):null}function Vn(e,t,n){return t==="INPUT"&&(n==="radio"||n==="checkbox")?e.getAttribute("value")||"":e.value}function ic(e,t){let n;try{n=new URL(e,t??window.location.href)}catch{return null}const r=/\.([0-9a-z]+)(?:$)/i;return n.pathname.match(r)?.[1]??null}const eo={};function oc(e){const t=eo[e];if(t)return t;const n=window.document;let r=window[e];if(n&&typeof n.createElement=="function")try{const s=n.createElement("iframe");s.hidden=!0,n.head.appendChild(s);const i=s.contentWindow;i&&i[e]&&(r=i[e]),n.head.removeChild(s)}catch{}return eo[e]=r.bind(window)}function Zr(...e){return oc("setTimeout")(...e)}function ac(...e){return oc("clearTimeout")(...e)}function cc(e){try{return e.contentDocument}catch{}}let om=1;const am=new RegExp("[^a-z0-9-_:]"),qt=-2;function Us(){return om++}function cm(e){if(e instanceof HTMLFormElement)return"form";const t=Et(e.tagName);return am.test(t)?"div":t}function um(e){let t="";return e.indexOf("//")>-1?t=e.split("/").slice(0,3).join("/"):t=e.split("/")[0],t=t.split("?")[0],t}let lt,to;const lm=/url\((?:(')([^']*)'|(")(.*?)"|([^)]*))\)/gm,dm=/^(?:[a-z+]+:)?\/\//i,fm=/^www\..*/i,pm=/^(data:)([^,]*),(.*)/i;function hm(e,t){if(!e||t.size===0)return e;try{const n=e.split(";"),r=[];for(let s of n){if(s=s.trim(),!s)continue;const i=s.indexOf(":");if(i===-1){r.push(s);continue}const o=s.slice(0,i).trim();t.has(o)||r.push(s)}return r.join("; ")+(r.length>0&&e.endsWith(";")?";":"")}catch(n){return console.warn("Error filtering CSS properties:",n),e}}function Gn(e,t){return(e||"").replace(lm,(n,r,s,i,o,c)=>{const a=s||o||c,u=r||i||"";if(!a)return n;if(dm.test(a)||fm.test(a))return`url(${u}${a}${u})`;if(pm.test(a))return`url(${u}${a}${u})`;if(a[0]==="/")return`url(${u}${um(t)+a}${u})`;const d=t.split("/"),l=a.split("/");d.pop();for(const f of l)f!=="."&&(f===".."?d.pop():d.push(f));return`url(${u}${d.join("/")}${u})`})}const mm=/^[^ \t\n\r\u000c]+/,gm=/^[, \t\n\r\u000c]+/;function _m(e,t){if(t.trim()==="")return t;let n=0;function r(i){let o;const c=i.exec(t.substring(n));return c?(o=c[0],n+=o.length,o):""}const s=[];for(;r(gm),!(n>=t.length);){let i=r(mm);if(i.slice(-1)===",")i=pt(e,i.substring(0,i.length-1)),s.push(i);else{let o="";i=pt(e,i);let c=!1;for(;;){const a=t.charAt(n);if(a===""){s.push((i+o).trim());break}else if(c)a===")"&&(c=!1);else if(a===","){n+=1,s.push((i+o).trim());break}else a==="("&&(c=!0);o+=a,n+=1}}}return s.join(", ")}const no=new WeakMap;function pt(e,t){return!t||t.trim()===""?t:fr(e,t)}function Sm(e){return!!(e.tagName==="svg"||e.ownerSVGElement)}function fr(e,t){let n=no.get(e);if(n||(n=e.createElement("a"),no.set(e,n)),!t)t="";else if(t.startsWith("blob:")||t.startsWith("data:"))return t;return n.setAttribute("href",t),n.href}function uc(e,t,n,r,s,i,o){if(!r)return r;if(n==="src"||n==="href"&&!(t==="use"&&r[0]==="#"))return pt(e,r);if(n==="xlink:href"&&r[0]!=="#")return pt(e,r);if(n==="background"&&(t==="table"||t==="td"||t==="th"))return pt(e,r);if(n==="srcset")return _m(e,r);if(n==="style"){let c=Gn(r,fr(e));return o&&o.size>0&&(c=hm(c,o)),c}else if(t==="object"&&n==="data")return pt(e,r);return typeof i=="function"?i(n,r,s):r}function lc(e,t,n){return(e==="video"||e==="audio")&&t==="autoplay"}function ym(e,t,n,r){try{if(r&&e.matches(r))return!1;if(typeof t=="string"){if(e.classList.contains(t))return!0}else for(let s=e.classList.length;s--;){const i=e.classList[s];if(t.test(i))return!0}if(n)return e.matches(n)}catch{}return!1}function Em(e,t){for(let n=e.classList.length;n--;){const r=e.classList[n];if(t.test(r))return!0}return!1}function Ze(e,t,n=1/0,r=0){return!e||e.nodeType!==e.ELEMENT_NODE||r>n?-1:t(e)?r:Ze(e.parentNode,t,n,r+1)}function ht(e,t){return n=>{const r=n;if(r===null)return!1;try{if(e){if(typeof e=="string"){if(r.matches(`.${e}`))return!0}else if(Em(r,e))return!0}return!!(t&&r.matches(t))}catch{return!1}}}function bt(e,t,n,r,s,i){try{const o=e.nodeType===e.ELEMENT_NODE?e:e.parentElement;if(o===null)return!1;if(o.tagName==="INPUT"){const u=o.getAttribute("autocomplete");if(["current-password","new-password","cc-number","cc-exp","cc-exp-month","cc-exp-year","cc-csc"].includes(u))return!0}let c=-1,a=-1;if(i){if(a=Ze(o,ht(r,s)),a<0)return!0;c=Ze(o,ht(t,n),a>=0?a:1/0)}else{if(c=Ze(o,ht(t,n)),c<0)return!1;a=Ze(o,ht(r,s),c>=0?c:1/0)}return c>=0?a>=0?c<=a:!0:a>=0?!1:!!i}catch{}return!!i}function bm(e,t,n){const r=e.contentWindow;if(!r)return;let s=!1,i;try{i=r.document.readyState}catch{return}if(i!=="complete"){const c=Zr(()=>{s||(t(),s=!0)},n);e.addEventListener("load",()=>{ac(c),s=!0,t()});return}const o="about:blank";if(r.location.href!==o||e.src===o||e.src==="")return Zr(t,0),e.addEventListener("load",t);e.addEventListener("load",t)}function vm(e,t,n){let r=!1,s;try{s=e.sheet}catch{return}if(s)return;const i=Zr(()=>{r||(t(),r=!0)},n);e.addEventListener("load",()=>{ac(i),r=!0,t()})}function Tm(e,t){const{doc:n,mirror:r,blockClass:s,blockSelector:i,unblockSelector:o,maskAllText:c,maskAttributeFn:a,maskTextClass:u,unmaskTextClass:d,maskTextSelector:l,unmaskTextSelector:f,inlineStylesheet:p,maskInputOptions:h={},maskTextFn:g,maskInputFn:S,dataURLOptions:y={},inlineImages:T,recordCanvas:B,keepIframeSrcFn:N,newlyAddedElement:z=!1,ignoreCSSAttributes:A}=t,_=Im(n,r);switch(e.nodeType){case e.DOCUMENT_NODE:return e.compatMode!=="CSS1Compat"?{type:oe.Document,childNodes:[],compatMode:e.compatMode}:{type:oe.Document,childNodes:[]};case e.DOCUMENT_TYPE_NODE:return{type:oe.DocumentType,name:e.name,publicId:e.publicId,systemId:e.systemId,rootId:_};case e.ELEMENT_NODE:return km(e,{doc:n,blockClass:s,blockSelector:i,unblockSelector:o,inlineStylesheet:p,maskAttributeFn:a,maskInputOptions:h,maskInputFn:S,dataURLOptions:y,inlineImages:T,recordCanvas:B,keepIframeSrcFn:N,newlyAddedElement:z,rootId:_,maskTextClass:u,unmaskTextClass:d,maskTextSelector:l,unmaskTextSelector:f,ignoreCSSAttributes:A});case e.TEXT_NODE:return wm(e,{doc:n,maskAllText:c,maskTextClass:u,unmaskTextClass:d,maskTextSelector:l,unmaskTextSelector:f,maskTextFn:g,maskInputOptions:h,maskInputFn:S,rootId:_});case e.CDATA_SECTION_NODE:return{type:oe.CDATA,textContent:"",rootId:_};case e.COMMENT_NODE:return{type:oe.Comment,textContent:e.textContent||"",rootId:_};default:return!1}}function Im(e,t){if(!t.hasNode(e))return;const n=t.getId(e);return n===1?void 0:n}function wm(e,t){const{maskAllText:n,maskTextClass:r,unmaskTextClass:s,maskTextSelector:i,unmaskTextSelector:o,maskTextFn:c,maskInputOptions:a,maskInputFn:u,rootId:d}=t,l=e.parentNode&&e.parentNode.tagName;let f=e.textContent;const p=l==="STYLE"?!0:void 0,h=l==="SCRIPT"?!0:void 0,g=l==="TEXTAREA"?!0:void 0;if(p&&f){try{e.nextSibling||e.previousSibling||e.parentNode.sheet?.cssRules&&(f=jn(e.parentNode.sheet))}catch(y){console.warn(`Cannot get CSS styles from text's parentNode. Error: ${y}`,e)}f=Gn(f,fr(t.doc))}h&&(f="SCRIPT_PLACEHOLDER");const S=bt(e,r,i,s,o,n);if(!p&&!h&&!g&&f&&S&&(f=c?c(f,e.parentElement):f.replace(/[\S]/g,"*")),g&&f&&(a.textarea||S)&&(f=u?u(f,e.parentNode):f.replace(/[\S]/g,"*")),l==="OPTION"&&f){const y=dr({type:null,tagName:l,maskInputOptions:a});f=zt({isMasked:bt(e,r,i,s,o,y),element:e,value:f,maskInputFn:u})}return{type:oe.Text,textContent:f||"",isStyle:p,rootId:d}}function km(e,t){const{doc:n,blockClass:r,blockSelector:s,unblockSelector:i,inlineStylesheet:o,maskInputOptions:c={},maskAttributeFn:a,maskInputFn:u,dataURLOptions:d={},inlineImages:l,recordCanvas:f,keepIframeSrcFn:p,newlyAddedElement:h=!1,rootId:g,maskTextClass:S,unmaskTextClass:y,maskTextSelector:T,unmaskTextSelector:B,ignoreCSSAttributes:N}=t,z=ym(e,r,s,i),A=cm(e);let _={};const I=e.attributes.length;for(let E=0;E<I;E++){const k=e.attributes[E];k.name&&!lc(A,k.name,k.value)&&(_[k.name]=uc(n,A,Et(k.name),k.value,e,a,N))}if(A==="link"&&o){const E=Array.from(n.styleSheets).find(F=>F.href===e.href);let k=null;E&&(k=jn(E)),k&&(_.rel=null,_.href=null,_.crossorigin=null,_._cssText=Gn(k,E.href))}if(A==="style"&&e.sheet&&!(e.innerText||e.textContent||"").trim().length){const E=jn(e.sheet);E&&(_._cssText=Gn(E,fr(n)))}if(A==="input"||A==="textarea"||A==="select"||A==="option"){const E=e,k=Bs(E),F=Vn(E,Qr(A),k),q=E.checked;if(k!=="submit"&&k!=="button"&&F){const P=bt(E,S,T,y,B,dr({type:k,tagName:Qr(A),maskInputOptions:c}));_.value=zt({isMasked:P,element:E,value:F,maskInputFn:u})}q&&(_.checked=q)}if(A==="option"&&(e.selected&&!c.select?_.selected=!0:delete _.selected),A==="canvas"&&f){if(e.__context==="2d")im(e)||(_.rr_dataURL=e.toDataURL(d.type,d.quality));else if(!("__context"in e)){const E=e.toDataURL(d.type,d.quality),k=n.createElement("canvas");k.width=e.width,k.height=e.height;const F=k.toDataURL(d.type,d.quality);E!==F&&(_.rr_dataURL=E)}}if(A==="img"&&l){lt||(lt=n.createElement("canvas"),to=lt.getContext("2d"));const E=e,k=E.currentSrc||E.getAttribute("src")||"<unknown-src>",F=E.crossOrigin,q=()=>{E.removeEventListener("load",q);try{lt.width=E.naturalWidth,lt.height=E.naturalHeight,to.drawImage(E,0,0),_.rr_dataURL=lt.toDataURL(d.type,d.quality)}catch(P){if(E.crossOrigin!=="anonymous"){E.crossOrigin="anonymous",E.complete&&E.naturalWidth!==0?q():E.addEventListener("load",q);return}else console.warn(`Cannot inline img src=${k}! Error: ${P}`)}E.crossOrigin==="anonymous"&&(F?_.crossOrigin=F:E.removeAttribute("crossorigin"))};E.complete&&E.naturalWidth!==0?q():E.addEventListener("load",q)}if((A==="audio"||A==="video")&&(_.rr_mediaState=e.paused?"paused":"played",_.rr_mediaCurrentTime=e.currentTime),h||(e.scrollLeft&&(_.rr_scrollLeft=e.scrollLeft),e.scrollTop&&(_.rr_scrollTop=e.scrollTop)),z){const{width:E,height:k}=e.getBoundingClientRect();_={class:_.class,rr_width:`${E}px`,rr_height:`${k}px`}}A==="iframe"&&!p(_.src)&&(!z&&!cc(e)&&(_.rr_src=_.src),delete _.src);let Y;try{customElements.get(A)&&(Y=!0)}catch{}return{type:oe.Element,tagName:A,attributes:_,childNodes:[],isSVG:Sm(e)||void 0,needBlock:z,rootId:g,isCustom:Y}}function Q(e){return e==null?"":e.toLowerCase()}function Rm(e,t){if(t.comment&&e.type===oe.Comment)return!0;if(e.type===oe.Element){if(t.script&&(e.tagName==="script"||e.tagName==="link"&&(e.attributes.rel==="preload"||e.attributes.rel==="modulepreload")||e.tagName==="link"&&e.attributes.rel==="prefetch"&&typeof e.attributes.href=="string"&&ic(e.attributes.href)==="js"))return!0;if(t.headFavicon&&(e.tagName==="link"&&e.attributes.rel==="shortcut icon"||e.tagName==="meta"&&(Q(e.attributes.name).match(/^msapplication-tile(image|color)$/)||Q(e.attributes.name)==="application-name"||Q(e.attributes.rel)==="icon"||Q(e.attributes.rel)==="apple-touch-icon"||Q(e.attributes.rel)==="shortcut icon")))return!0;if(e.tagName==="meta"){if(t.headMetaDescKeywords&&Q(e.attributes.name).match(/^description|keywords$/))return!0;if(t.headMetaSocial&&(Q(e.attributes.property).match(/^(og|twitter|fb):/)||Q(e.attributes.name).match(/^(og|twitter):/)||Q(e.attributes.name)==="pinterest"))return!0;if(t.headMetaRobots&&(Q(e.attributes.name)==="robots"||Q(e.attributes.name)==="googlebot"||Q(e.attributes.name)==="bingbot"))return!0;if(t.headMetaHttpEquiv&&e.attributes["http-equiv"]!==void 0)return!0;if(t.headMetaAuthorship&&(Q(e.attributes.name)==="author"||Q(e.attributes.name)==="generator"||Q(e.attributes.name)==="framework"||Q(e.attributes.name)==="publisher"||Q(e.attributes.name)==="progid"||Q(e.attributes.property).match(/^article:/)||Q(e.attributes.property).match(/^product:/)))return!0;if(t.headMetaVerification&&(Q(e.attributes.name)==="google-site-verification"||Q(e.attributes.name)==="yandex-verification"||Q(e.attributes.name)==="csrf-token"||Q(e.attributes.name)==="p:domain_verify"||Q(e.attributes.name)==="verify-v1"||Q(e.attributes.name)==="verification"||Q(e.attributes.name)==="shopify-checkout-api-token"))return!0}}return!1}function mt(e,t){const{doc:n,mirror:r,blockClass:s,blockSelector:i,unblockSelector:o,maskAllText:c,maskTextClass:a,unmaskTextClass:u,maskTextSelector:d,unmaskTextSelector:l,skipChild:f=!1,inlineStylesheet:p=!0,maskInputOptions:h={},maskAttributeFn:g,maskTextFn:S,maskInputFn:y,slimDOMOptions:T,dataURLOptions:B={},inlineImages:N=!1,recordCanvas:z=!1,onSerialize:A,onIframeLoad:_,iframeLoadTimeout:I=5e3,onBlockedImageLoad:Y,onStylesheetLoad:E,stylesheetLoadTimeout:k=5e3,keepIframeSrcFn:F=()=>!1,newlyAddedElement:q=!1,ignoreCSSAttributes:P}=t;let{preserveWhiteSpace:ce=!0}=t;const J=Tm(e,{doc:n,mirror:r,blockClass:s,blockSelector:i,maskAllText:c,unblockSelector:o,maskTextClass:a,unmaskTextClass:u,maskTextSelector:d,unmaskTextSelector:l,inlineStylesheet:p,maskInputOptions:h,maskAttributeFn:g,maskTextFn:S,maskInputFn:y,dataURLOptions:B,inlineImages:N,recordCanvas:z,keepIframeSrcFn:F,newlyAddedElement:q,ignoreCSSAttributes:P});if(!J)return console.warn(e,"not serialized"),null;let ee;r.hasNode(e)?ee=r.getId(e):Rm(J,T)||!ce&&J.type===oe.Text&&!J.isStyle&&!J.textContent.replace(/^\s+|\s+$/gm,"").length?ee=qt:ee=Us();const b=Object.assign(J,{id:ee});if(r.add(e,b),ee===qt)return null;A&&A(e);let G=!f;if(b.type===oe.Element){G=G&&!b.needBlock;const w=e.shadowRoot;w&&Ft(w)&&(b.isShadowHost=!0)}if((b.type===oe.Document||b.type===oe.Element)&&G){T.headWhitespace&&b.type===oe.Element&&b.tagName==="head"&&(ce=!1);const w={doc:n,mirror:r,blockClass:s,blockSelector:i,maskAllText:c,unblockSelector:o,maskTextClass:a,unmaskTextClass:u,maskTextSelector:d,unmaskTextSelector:l,skipChild:f,inlineStylesheet:p,maskInputOptions:h,maskAttributeFn:g,maskTextFn:S,maskInputFn:y,slimDOMOptions:T,dataURLOptions:B,inlineImages:N,recordCanvas:z,preserveWhiteSpace:ce,onSerialize:A,onIframeLoad:_,iframeLoadTimeout:I,onBlockedImageLoad:Y,onStylesheetLoad:E,stylesheetLoadTimeout:k,keepIframeSrcFn:F,ignoreCSSAttributes:P},K=e.childNodes?Array.from(e.childNodes):[];for(const ne of K){const re=mt(ne,w);re&&b.childNodes.push(re)}if(Xh(e)&&e.shadowRoot)for(const ne of Array.from(e.shadowRoot.childNodes)){const re=mt(ne,w);re&&(Ft(e.shadowRoot)&&(re.isShadow=!0),b.childNodes.push(re))}}if(e.parentNode&&Dt(e.parentNode)&&Ft(e.parentNode)&&(b.isShadow=!0),b.type===oe.Element&&b.tagName==="iframe"&&!b.needBlock&&bm(e,()=>{const w=cc(e);if(w&&_){const K=mt(w,{doc:w,mirror:r,blockClass:s,blockSelector:i,unblockSelector:o,maskAllText:c,maskTextClass:a,unmaskTextClass:u,maskTextSelector:d,unmaskTextSelector:l,skipChild:!1,inlineStylesheet:p,maskInputOptions:h,maskAttributeFn:g,maskTextFn:S,maskInputFn:y,slimDOMOptions:T,dataURLOptions:B,inlineImages:N,recordCanvas:z,preserveWhiteSpace:ce,onSerialize:A,onIframeLoad:_,iframeLoadTimeout:I,onStylesheetLoad:E,stylesheetLoadTimeout:k,keepIframeSrcFn:F,ignoreCSSAttributes:P});K&&_(e,K)}},I),b.type===oe.Element&&b.tagName==="img"&&!e.complete&&b.needBlock){const w=e,K=()=>{if(w.isConnected&&!w.complete&&Y)try{const ne=w.getBoundingClientRect();ne.width>0&&ne.height>0&&Y(w,b,ne)}catch{}w.removeEventListener("load",K)};w.isConnected&&w.addEventListener("load",K)}return b.type===oe.Element&&b.tagName==="link"&&typeof b.attributes.rel=="string"&&(b.attributes.rel==="stylesheet"||b.attributes.rel==="preload"&&typeof b.attributes.href=="string"&&ic(b.attributes.href)==="css")&&vm(e,()=>{if(E){const w=mt(e,{doc:n,mirror:r,blockClass:s,blockSelector:i,unblockSelector:o,maskAllText:c,maskTextClass:a,unmaskTextClass:u,maskTextSelector:d,unmaskTextSelector:l,skipChild:!1,inlineStylesheet:p,maskInputOptions:h,maskAttributeFn:g,maskTextFn:S,maskInputFn:y,slimDOMOptions:T,dataURLOptions:B,inlineImages:N,recordCanvas:z,preserveWhiteSpace:ce,onSerialize:A,onIframeLoad:_,iframeLoadTimeout:I,onStylesheetLoad:E,stylesheetLoadTimeout:k,keepIframeSrcFn:F,ignoreCSSAttributes:P});w&&E(e,w)}},k),b.type===oe.Element&&delete b.needBlock,b}function Cm(e,t){const{mirror:n=new sc,blockClass:r="rr-block",blockSelector:s=null,unblockSelector:i=null,maskAllText:o=!1,maskTextClass:c="rr-mask",unmaskTextClass:a=null,maskTextSelector:u=null,unmaskTextSelector:d=null,inlineStylesheet:l=!0,inlineImages:f=!1,recordCanvas:p=!1,maskAllInputs:h=!1,maskAttributeFn:g,maskTextFn:S,maskInputFn:y,slimDOM:T=!1,dataURLOptions:B,preserveWhiteSpace:N,onSerialize:z,onIframeLoad:A,iframeLoadTimeout:_,onBlockedImageLoad:I,onStylesheetLoad:Y,stylesheetLoadTimeout:E,keepIframeSrcFn:k=()=>!1,ignoreCSSAttributes:F=new Set([])}=t||{};return mt(e,{doc:e,mirror:n,blockClass:r,blockSelector:s,unblockSelector:i,maskAllText:o,maskTextClass:c,unmaskTextClass:a,maskTextSelector:u,unmaskTextSelector:d,skipChild:!1,inlineStylesheet:l,maskInputOptions:h===!0?{color:!0,date:!0,"datetime-local":!0,email:!0,month:!0,number:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0,textarea:!0,select:!0}:h===!1?{}:h,maskAttributeFn:g,maskTextFn:S,maskInputFn:y,slimDOMOptions:T===!0||T==="all"?{script:!0,comment:!0,headFavicon:!0,headWhitespace:!0,headMetaDescKeywords:T==="all",headMetaSocial:!0,headMetaRobots:!0,headMetaHttpEquiv:!0,headMetaAuthorship:!0,headMetaVerification:!0}:T===!1?{}:T,dataURLOptions:B,inlineImages:f,recordCanvas:p,preserveWhiteSpace:N,onSerialize:z,onIframeLoad:A,iframeLoadTimeout:_,onBlockedImageLoad:I,onStylesheetLoad:Y,stylesheetLoadTimeout:E,keepIframeSrcFn:k,newlyAddedElement:!1,ignoreCSSAttributes:F})}function me(e,t,n=document){const r={capture:!0,passive:!0};return n.addEventListener(e,t,r),()=>n.removeEventListener(e,t,r)}const dt=`Please stop import mirror directly. Instead of that,\r
|
|
21
21
|
now you can use replayer.getMirror() to access the mirror instance of a replayer,\r
|
|
22
22
|
or you can use record.mirror to access the mirror instance during recording.`;let ro={map:{},getId(){return console.error(dt),-1},getNode(){return console.error(dt),null},removeNodeFromMap(){console.error(dt)},has(){return console.error(dt),!1},reset(){console.error(dt)}};typeof window<"u"&&window.Proxy&&window.Reflect&&(ro=new Proxy(ro,{get(e,t,n){return t==="map"&&console.error(dt),Reflect.get(e,t,n)}}));function jt(e,t,n={}){let r=null,s=0;return function(...i){const o=Date.now();!s&&n.leading===!1&&(s=o);const c=t-(o-s),a=this;c<=0||c>t?(r&&(Lm(r),r=null),s=o,e.apply(a,i)):!r&&n.trailing!==!1&&(r=pr(()=>{s=n.leading===!1?0:Date.now(),r=null,e.apply(a,i)},c))}}function dc(e,t,n,r,s=window){const i=s.Object.getOwnPropertyDescriptor(e,t);return s.Object.defineProperty(e,t,r?n:{set(o){pr(()=>{n.set.call(this,o)},0),i&&i.set&&i.set.call(this,o)}}),()=>dc(e,t,i||{},!0)}function Hs(e,t,n){try{if(!(t in e))return()=>{};const r=e[t],s=n(r);return typeof s=="function"&&(s.prototype=s.prototype||{},Object.defineProperties(s,{__rrweb_original__:{enumerable:!1,value:r}})),e[t]=s,()=>{e[t]=r}}catch{return()=>{}}}let Yn=Date.now;/[1-9][0-9]{12}/.test(Date.now().toString())||(Yn=()=>new Date().getTime());function fc(e){const t=e.document;return{left:t.scrollingElement?t.scrollingElement.scrollLeft:e.pageXOffset!==void 0?e.pageXOffset:t?.documentElement.scrollLeft||t?.body?.parentElement?.scrollLeft||t?.body?.scrollLeft||0,top:t.scrollingElement?t.scrollingElement.scrollTop:e.pageYOffset!==void 0?e.pageYOffset:t?.documentElement.scrollTop||t?.body?.parentElement?.scrollTop||t?.body?.scrollTop||0}}function pc(){return window.innerHeight||document.documentElement&&document.documentElement.clientHeight||document.body&&document.body.clientHeight}function hc(){return window.innerWidth||document.documentElement&&document.documentElement.clientWidth||document.body&&document.body.clientWidth}function mc(e){if(!e)return null;try{return e.nodeType===e.ELEMENT_NODE?e:e.parentElement}catch{return null}}function Ee(e,t,n,r,s){if(!e)return!1;const i=mc(e);if(!i)return!1;const o=ht(t,n);if(!s){const u=r&&i.matches(r);return o(i)&&!u}const c=Ze(i,o);let a=-1;return c<0?!1:(r&&(a=Ze(i,ht(null,r))),c>-1&&a<0?!0:c<a)}function Mm(e,t){return t.getId(e)!==-1}function Nr(e,t){return t.getId(e)===qt}function gc(e,t){if(Dt(e))return!1;const n=t.getId(e);return t.has(n)?e.parentNode&&e.parentNode.nodeType===e.DOCUMENT_NODE?!1:e.parentNode?gc(e.parentNode,t):!0:!0}function es(e){return!!e.changedTouches}function Am(e=window){"NodeList"in e&&!e.NodeList.prototype.forEach&&(e.NodeList.prototype.forEach=Array.prototype.forEach),"DOMTokenList"in e&&!e.DOMTokenList.prototype.forEach&&(e.DOMTokenList.prototype.forEach=Array.prototype.forEach),Node.prototype.contains||(Node.prototype.contains=(...t)=>{let n=t[0];if(!(0 in t))throw new TypeError("1 argument is required");do if(this===n)return!0;while(n=n&&n.parentNode);return!1})}function _c(e,t){return!!(e.nodeName==="IFRAME"&&t.getMeta(e))}function Sc(e,t){return!!(e.nodeName==="LINK"&&e.nodeType===e.ELEMENT_NODE&&e.getAttribute&&e.getAttribute("rel")==="stylesheet"&&t.getMeta(e))}function ts(e){return!!e?.shadowRoot}class xm{constructor(){this.id=1,this.styleIDMap=new WeakMap,this.idStyleMap=new Map}getId(t){return this.styleIDMap.get(t)??-1}has(t){return this.styleIDMap.has(t)}add(t,n){if(this.has(t))return this.getId(t);let r;return n===void 0?r=this.id++:r=n,this.styleIDMap.set(t,r),this.idStyleMap.set(r,t),r}getStyle(t){return this.idStyleMap.get(t)||null}reset(){this.styleIDMap=new WeakMap,this.idStyleMap=new Map,this.id=1}generateId(){return this.id++}}function yc(e){let t=null;return e.getRootNode?.()?.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&e.getRootNode().host&&(t=e.getRootNode().host),t}function Om(e){let t=e,n;for(;n=yc(t);)t=n;return t}function Nm(e){const t=e.ownerDocument;if(!t)return!1;const n=Om(e);return t.contains(n)}function Ec(e){const t=e.ownerDocument;return t?t.contains(e)||Nm(e):!1}const so={};function $s(e){const t=so[e];if(t)return t;const n=window.document;let r=window[e];if(n&&typeof n.createElement=="function")try{const s=n.createElement("iframe");s.hidden=!0,n.head.appendChild(s);const i=s.contentWindow;i&&i[e]&&(r=i[e]),n.head.removeChild(s)}catch{}return so[e]=r.bind(window)}function Pm(...e){return $s("requestAnimationFrame")(...e)}function pr(...e){return $s("setTimeout")(...e)}function Lm(...e){return $s("clearTimeout")(...e)}var L=(e=>(e[e.DomContentLoaded=0]="DomContentLoaded",e[e.Load=1]="Load",e[e.FullSnapshot=2]="FullSnapshot",e[e.IncrementalSnapshot=3]="IncrementalSnapshot",e[e.Meta=4]="Meta",e[e.Custom=5]="Custom",e[e.Plugin=6]="Plugin",e))(L||{}),x=(e=>(e[e.Mutation=0]="Mutation",e[e.MouseMove=1]="MouseMove",e[e.MouseInteraction=2]="MouseInteraction",e[e.Scroll=3]="Scroll",e[e.ViewportResize=4]="ViewportResize",e[e.Input=5]="Input",e[e.TouchMove=6]="TouchMove",e[e.MediaInteraction=7]="MediaInteraction",e[e.StyleSheetRule=8]="StyleSheetRule",e[e.CanvasMutation=9]="CanvasMutation",e[e.Font=10]="Font",e[e.Log=11]="Log",e[e.Drag=12]="Drag",e[e.StyleDeclaration=13]="StyleDeclaration",e[e.Selection=14]="Selection",e[e.AdoptedStyleSheet=15]="AdoptedStyleSheet",e[e.CustomElement=16]="CustomElement",e))(x||{}),he=(e=>(e[e.MouseUp=0]="MouseUp",e[e.MouseDown=1]="MouseDown",e[e.Click=2]="Click",e[e.ContextMenu=3]="ContextMenu",e[e.DblClick=4]="DblClick",e[e.Focus=5]="Focus",e[e.Blur=6]="Blur",e[e.TouchStart=7]="TouchStart",e[e.TouchMove_Departed=8]="TouchMove_Departed",e[e.TouchEnd=9]="TouchEnd",e[e.TouchCancel=10]="TouchCancel",e))(he||{}),Ne=(e=>(e[e.Mouse=0]="Mouse",e[e.Pen=1]="Pen",e[e.Touch=2]="Touch",e))(Ne||{}),ft=(e=>(e[e.Play=0]="Play",e[e.Pause=1]="Pause",e[e.Seeked=2]="Seeked",e[e.VolumeChange=3]="VolumeChange",e[e.RateChange=4]="RateChange",e))(ft||{});function Ws(e){try{return e.contentDocument}catch{}}function Dm(e){try{return e.contentWindow}catch{}}function io(e){return"__ln"in e}class Fm{constructor(){this.length=0,this.head=null,this.tail=null}get(t){if(t>=this.length)throw new Error("Position outside of list range");let n=this.head;for(let r=0;r<t;r++)n=n?.next||null;return n}addNode(t){const n={value:t,previous:null,next:null};if(t.__ln=n,t.previousSibling&&io(t.previousSibling)){const r=t.previousSibling.__ln.next;n.next=r,n.previous=t.previousSibling.__ln,t.previousSibling.__ln.next=n,r&&(r.previous=n)}else if(t.nextSibling&&io(t.nextSibling)&&t.nextSibling.__ln.previous){const r=t.nextSibling.__ln.previous;n.previous=r,n.next=t.nextSibling.__ln,t.nextSibling.__ln.previous=n,r&&(r.next=n)}else this.head&&(this.head.previous=n),n.next=this.head,this.head=n;n.next===null&&(this.tail=n),this.length++}removeNode(t){const n=t.__ln;this.head&&(n.previous?(n.previous.next=n.next,n.next?n.next.previous=n.previous:this.tail=n.previous):(this.head=n.next,this.head?this.head.previous=null:this.tail=null),t.__ln&&delete t.__ln,this.length--)}}const oo=(e,t)=>`${e}@${t}`;class Bm{constructor(){this.frozen=!1,this.locked=!1,this.texts=[],this.attributes=[],this.attributeMap=new WeakMap,this.removes=[],this.mapRemoves=[],this.movedMap={},this.addedSet=new Set,this.movedSet=new Set,this.droppedSet=new Set,this.processMutations=t=>{t.forEach(this.processMutation),this.emit()},this.emit=()=>{if(this.frozen||this.locked)return;const t=[],n=new Set,r=new Fm,s=a=>{let u=a,d=qt;for(;d===qt;)u=u&&u.nextSibling,d=u&&this.mirror.getId(u);return d},i=a=>{if(!a.parentNode||!Ec(a))return;const u=Dt(a.parentNode)?this.mirror.getId(yc(a)):this.mirror.getId(a.parentNode),d=s(a);if(u===-1||d===-1)return r.addNode(a);const l=mt(a,{doc:this.doc,mirror:this.mirror,blockClass:this.blockClass,blockSelector:this.blockSelector,maskAllText:this.maskAllText,unblockSelector:this.unblockSelector,maskTextClass:this.maskTextClass,unmaskTextClass:this.unmaskTextClass,maskTextSelector:this.maskTextSelector,unmaskTextSelector:this.unmaskTextSelector,skipChild:!0,newlyAddedElement:!0,inlineStylesheet:this.inlineStylesheet,maskInputOptions:this.maskInputOptions,maskAttributeFn:this.maskAttributeFn,maskTextFn:this.maskTextFn,maskInputFn:this.maskInputFn,slimDOMOptions:this.slimDOMOptions,dataURLOptions:this.dataURLOptions,recordCanvas:this.recordCanvas,inlineImages:this.inlineImages,onSerialize:f=>{_c(f,this.mirror)&&!Ee(f,this.blockClass,this.blockSelector,this.unblockSelector,!1)&&this.iframeManager.addIframe(f),Sc(f,this.mirror)&&this.stylesheetManager.trackLinkElement(f),ts(a)&&this.shadowDomManager.addShadowRoot(a.shadowRoot,this.doc)},onIframeLoad:(f,p)=>{Ee(f,this.blockClass,this.blockSelector,this.unblockSelector,!1)||(this.iframeManager.attachIframe(f,p),f.contentWindow&&this.canvasManager.addWindow(f.contentWindow),this.shadowDomManager.observeAttachShadow(f))},onStylesheetLoad:(f,p)=>{this.stylesheetManager.attachLinkElement(f,p)},onBlockedImageLoad:(f,p,{width:h,height:g})=>{this.mutationCb({adds:[],removes:[],texts:[],attributes:[{id:p.id,attributes:{style:{width:`${h}px`,height:`${g}px`}}}]})},ignoreCSSAttributes:this.ignoreCSSAttributes});l&&(t.push({parentId:u,nextId:d,node:l}),n.add(l.id))};for(;this.mapRemoves.length;)this.mirror.removeNodeFromMap(this.mapRemoves.shift());for(const a of this.movedSet)ao(this.removes,a,this.mirror)&&!this.movedSet.has(a.parentNode)||i(a);for(const a of this.addedSet)!co(this.droppedSet,a)&&!ao(this.removes,a,this.mirror)||co(this.movedSet,a)?i(a):this.droppedSet.add(a);let o=null;for(;r.length;){let a=null;if(o){const u=this.mirror.getId(o.value.parentNode),d=s(o.value);u!==-1&&d!==-1&&(a=o)}if(!a){let u=r.tail;for(;u;){const d=u;if(u=u.previous,d){const l=this.mirror.getId(d.value.parentNode);if(s(d.value)===-1)continue;if(l!==-1){a=d;break}else{const p=d.value;if(p.parentNode&&p.parentNode.nodeType===Node.DOCUMENT_FRAGMENT_NODE){const h=p.parentNode.host;if(this.mirror.getId(h)!==-1){a=d;break}}}}}}if(!a){for(;r.head;)r.removeNode(r.head.value);break}o=a.previous,r.removeNode(a.value),i(a.value)}const c={texts:this.texts.map(a=>({id:this.mirror.getId(a.node),value:a.value})).filter(a=>!n.has(a.id)).filter(a=>this.mirror.has(a.id)),attributes:this.attributes.map(a=>{const{attributes:u}=a;if(typeof u.style=="string"){const d=JSON.stringify(a.styleDiff),l=JSON.stringify(a._unchangedStyles);d.length<u.style.length&&(d+l).split("var(").length===u.style.split("var(").length&&(u.style=a.styleDiff)}return{id:this.mirror.getId(a.node),attributes:u}}).filter(a=>!n.has(a.id)).filter(a=>this.mirror.has(a.id)),removes:this.removes,adds:t};!c.texts.length&&!c.attributes.length&&!c.removes.length&&!c.adds.length||(this.texts=[],this.attributes=[],this.attributeMap=new WeakMap,this.removes=[],this.addedSet=new Set,this.movedSet=new Set,this.droppedSet=new Set,this.movedMap={},this.mutationCb(c))},this.processMutation=t=>{if(!Nr(t.target,this.mirror))switch(t.type){case"characterData":{const n=t.target.textContent;!Ee(t.target,this.blockClass,this.blockSelector,this.unblockSelector,!1)&&n!==t.oldValue&&this.texts.push({value:bt(t.target,this.maskTextClass,this.maskTextSelector,this.unmaskTextClass,this.unmaskTextSelector,this.maskAllText)&&n?this.maskTextFn?this.maskTextFn(n,mc(t.target)):n.replace(/[\S]/g,"*"):n,node:t.target});break}case"attributes":{const n=t.target;let r=t.attributeName,s=t.target.getAttribute(r);if(r==="value"){const o=Bs(n),c=n.tagName;s=Vn(n,c,o);const a=dr({maskInputOptions:this.maskInputOptions,tagName:c,type:o}),u=bt(t.target,this.maskTextClass,this.maskTextSelector,this.unmaskTextClass,this.unmaskTextSelector,a);s=zt({isMasked:u,element:n,value:s,maskInputFn:this.maskInputFn})}if(Ee(t.target,this.blockClass,this.blockSelector,this.unblockSelector,!1)||s===t.oldValue)return;let i=this.attributeMap.get(t.target);if(n.tagName==="IFRAME"&&r==="src"&&!this.keepIframeSrcFn(s))if(!Ws(n))r="rr_src";else return;if(i||(i={node:t.target,attributes:{},styleDiff:{},_unchangedStyles:{}},this.attributes.push(i),this.attributeMap.set(t.target,i)),r==="type"&&n.tagName==="INPUT"&&(t.oldValue||"").toLowerCase()==="password"&&n.setAttribute("data-rr-is-password","true"),!lc(n.tagName,r)&&(i.attributes[r]=uc(this.doc,Et(n.tagName),Et(r),s,n,this.maskAttributeFn),r==="style")){if(!this.unattachedDoc)try{this.unattachedDoc=document.implementation.createHTMLDocument()}catch{this.unattachedDoc=this.doc}const o=this.unattachedDoc.createElement("span");t.oldValue&&o.setAttribute("style",t.oldValue);for(const c of Array.from(n.style)){const a=n.style.getPropertyValue(c),u=n.style.getPropertyPriority(c);a!==o.style.getPropertyValue(c)||u!==o.style.getPropertyPriority(c)?u===""?i.styleDiff[c]=a:i.styleDiff[c]=[a,u]:i._unchangedStyles[c]=[a,u]}for(const c of Array.from(o.style))n.style.getPropertyValue(c)===""&&(i.styleDiff[c]=!1)}break}case"childList":{if(Ee(t.target,this.blockClass,this.blockSelector,this.unblockSelector,!0))return;t.addedNodes.forEach(n=>this.genAdds(n,t.target)),t.removedNodes.forEach(n=>{const r=this.mirror.getId(n),s=Dt(t.target)?this.mirror.getId(t.target.host):this.mirror.getId(t.target);Ee(t.target,this.blockClass,this.blockSelector,this.unblockSelector,!1)||Nr(n,this.mirror)||!Mm(n,this.mirror)||(this.addedSet.has(n)?(ns(this.addedSet,n),this.droppedSet.add(n)):this.addedSet.has(t.target)&&r===-1||gc(t.target,this.mirror)||(this.movedSet.has(n)&&this.movedMap[oo(r,s)]?ns(this.movedSet,n):this.removes.push({parentId:s,id:r,isShadow:Dt(t.target)&&Ft(t.target)?!0:void 0})),this.mapRemoves.push(n))});break}}},this.genAdds=(t,n)=>{if(!this.processedNodeManager.inOtherBuffer(t,this)&&!(this.addedSet.has(t)||this.movedSet.has(t))){if(this.mirror.hasNode(t)){if(Nr(t,this.mirror))return;this.movedSet.add(t);let r=null;n&&this.mirror.hasNode(n)&&(r=this.mirror.getId(n)),r&&r!==-1&&(this.movedMap[oo(this.mirror.getId(t),r)]=!0)}else this.addedSet.add(t),this.droppedSet.delete(t);Ee(t,this.blockClass,this.blockSelector,this.unblockSelector,!1)||(t.childNodes&&t.childNodes.forEach(r=>this.genAdds(r)),ts(t)&&t.shadowRoot.childNodes.forEach(r=>{this.processedNodeManager.add(r,this),this.genAdds(r,t)}))}}}init(t){["mutationCb","blockClass","blockSelector","unblockSelector","maskAllText","maskTextClass","unmaskTextClass","maskTextSelector","unmaskTextSelector","inlineStylesheet","maskInputOptions","maskAttributeFn","maskTextFn","maskInputFn","keepIframeSrcFn","recordCanvas","inlineImages","slimDOMOptions","dataURLOptions","doc","mirror","iframeManager","stylesheetManager","shadowDomManager","canvasManager","processedNodeManager","ignoreCSSAttributes"].forEach(n=>{this[n]=t[n]})}freeze(){this.frozen=!0,this.canvasManager.freeze()}unfreeze(){this.frozen=!1,this.canvasManager.unfreeze(),this.emit()}isFrozen(){return this.frozen}lock(){this.locked=!0,this.canvasManager.lock()}unlock(){this.locked=!1,this.canvasManager.unlock(),this.emit()}reset(){this.shadowDomManager.reset(),this.canvasManager.reset()}}function ns(e,t){e.delete(t),t.childNodes?.forEach(n=>ns(e,n))}function ao(e,t,n){return e.length===0?!1:Um(e,t,n)}function Um(e,t,n){let r=t.parentNode;for(;r;){const s=n.getId(r);if(e.some(i=>i.id===s))return!0;r=r.parentNode}return!1}function co(e,t){return e.size===0?!1:bc(e,t)}function bc(e,t){const{parentNode:n}=t;return n?e.has(n)?!0:bc(e,n):!1}let Bt;function Hm(e){Bt=e}function $m(){Bt=void 0}const W=e=>Bt?(...n)=>{try{return e(...n)}catch(r){if(Bt&&Bt(r)===!0)return()=>{};throw r}}:e,gt=[];function on(e){try{if("composedPath"in e){const t=e.composedPath();if(t.length)return t[0]}else if("path"in e&&e.path.length)return e.path[0]}catch{}return e&&e.target}function vc(e,t){const n=new Bm;gt.push(n),n.init(e);let r=window.MutationObserver||window.__rrMutationObserver;const s=window?.Zone?.__symbol__?.("MutationObserver");s&&window[s]&&(r=window[s]);const i=new r(W(o=>{e.onMutation&&e.onMutation(o)===!1||n.processMutations.bind(n)(o)}));return i.observe(t,{attributes:!0,attributeOldValue:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0}),i}function Wm({mousemoveCb:e,sampling:t,doc:n,mirror:r}){if(t.mousemove===!1)return()=>{};const s=typeof t.mousemove=="number"?t.mousemove:50,i=typeof t.mousemoveCallback=="number"?t.mousemoveCallback:500;let o=[],c;const a=jt(W(l=>{const f=Date.now()-c;e(o.map(p=>(p.timeOffset-=f,p)),l),o=[],c=null}),i),u=W(jt(W(l=>{const f=on(l),{clientX:p,clientY:h}=es(l)?l.changedTouches[0]:l;c||(c=Yn()),o.push({x:p,y:h,id:r.getId(f),timeOffset:Yn()-c}),a(typeof DragEvent<"u"&&l instanceof DragEvent?x.Drag:l instanceof MouseEvent?x.MouseMove:x.TouchMove)}),s,{trailing:!1})),d=[me("mousemove",u,n),me("touchmove",u,n),me("drag",u,n)];return W(()=>{d.forEach(l=>l())})}function zm({mouseInteractionCb:e,doc:t,mirror:n,blockClass:r,blockSelector:s,unblockSelector:i,sampling:o}){if(o.mouseInteraction===!1)return()=>{};const c=o.mouseInteraction===!0||o.mouseInteraction===void 0?{}:o.mouseInteraction,a=[];let u=null;const d=l=>f=>{const p=on(f);if(Ee(p,r,s,i,!0))return;let h=null,g=l;if("pointerType"in f){switch(f.pointerType){case"mouse":h=Ne.Mouse;break;case"touch":h=Ne.Touch;break;case"pen":h=Ne.Pen;break}h===Ne.Touch?he[l]===he.MouseDown?g="TouchStart":he[l]===he.MouseUp&&(g="TouchEnd"):Ne.Pen}else es(f)&&(h=Ne.Touch);h!==null?(u=h,(g.startsWith("Touch")&&h===Ne.Touch||g.startsWith("Mouse")&&h===Ne.Mouse)&&(h=null)):he[l]===he.Click&&(h=u,u=null);const S=es(f)?f.changedTouches[0]:f;if(!S)return;const y=n.getId(p),{clientX:T,clientY:B}=S;W(e)({type:he[g],id:y,x:T,y:B,...h!==null&&{pointerType:h}})};return Object.keys(he).filter(l=>Number.isNaN(Number(l))&&!l.endsWith("_Departed")&&c[l]!==!1).forEach(l=>{let f=Et(l);const p=d(l);if(window.PointerEvent)switch(he[l]){case he.MouseDown:case he.MouseUp:f=f.replace("mouse","pointer");break;case he.TouchStart:case he.TouchEnd:return}a.push(me(f,p,t))}),W(()=>{a.forEach(l=>l())})}function Tc({scrollCb:e,doc:t,mirror:n,blockClass:r,blockSelector:s,unblockSelector:i,sampling:o}){const c=W(jt(W(a=>{const u=on(a);if(!u||Ee(u,r,s,i,!0))return;const d=n.getId(u);if(u===t&&t.defaultView){const l=fc(t.defaultView);e({id:d,x:l.left,y:l.top})}else e({id:d,x:u.scrollLeft,y:u.scrollTop})}),o.scroll||100));return me("scroll",c,t)}function qm({viewportResizeCb:e},{win:t}){let n=-1,r=-1;const s=W(jt(W(()=>{const i=pc(),o=hc();(n!==i||r!==o)&&(e({width:Number(o),height:Number(i)}),n=i,r=o)}),200));return me("resize",s,t)}const jm=["INPUT","TEXTAREA","SELECT"],uo=new WeakMap;function Vm({inputCb:e,doc:t,mirror:n,blockClass:r,blockSelector:s,unblockSelector:i,ignoreClass:o,ignoreSelector:c,maskInputOptions:a,maskInputFn:u,sampling:d,userTriggeredOnInput:l,maskTextClass:f,unmaskTextClass:p,maskTextSelector:h,unmaskTextSelector:g}){function S(_){let I=on(_);const Y=_.isTrusted,E=I&&Qr(I.tagName);if(E==="OPTION"&&(I=I.parentElement),!I||!E||jm.indexOf(E)<0||Ee(I,r,s,i,!0))return;const k=I;if(k.classList.contains(o)||c&&k.matches(c))return;const F=Bs(I);let q=Vn(k,E,F),P=!1;const ce=dr({maskInputOptions:a,tagName:E,type:F}),J=bt(I,f,h,p,g,ce);(F==="radio"||F==="checkbox")&&(P=I.checked),q=zt({isMasked:J,element:I,value:q,maskInputFn:u}),y(I,l?{text:q,isChecked:P,userTriggered:Y}:{text:q,isChecked:P});const ee=I.name;F==="radio"&&ee&&P&&t.querySelectorAll(`input[type="radio"][name="${ee}"]`).forEach(b=>{if(b!==I){const G=zt({isMasked:J,element:b,value:Vn(b,E,F),maskInputFn:u});y(b,l?{text:G,isChecked:!P,userTriggered:!1}:{text:G,isChecked:!P})}})}function y(_,I){const Y=uo.get(_);if(!Y||Y.text!==I.text||Y.isChecked!==I.isChecked){uo.set(_,I);const E=n.getId(_);W(e)({...I,id:E})}}const B=(d.input==="last"?["change"]:["input","change"]).map(_=>me(_,W(S),t)),N=t.defaultView;if(!N)return()=>{B.forEach(_=>_())};const z=N.Object.getOwnPropertyDescriptor(N.HTMLInputElement.prototype,"value"),A=[[N.HTMLInputElement.prototype,"value"],[N.HTMLInputElement.prototype,"checked"],[N.HTMLSelectElement.prototype,"value"],[N.HTMLTextAreaElement.prototype,"value"],[N.HTMLSelectElement.prototype,"selectedIndex"],[N.HTMLOptionElement.prototype,"selected"]];return z&&z.set&&B.push(...A.map(_=>dc(_[0],_[1],{set(){W(S)({target:this,isTrusted:!1})}},!1,N))),W(()=>{B.forEach(_=>_())})}function Jn(e){const t=[];function n(r,s){if(gn("CSSGroupingRule")&&r.parentRule instanceof CSSGroupingRule||gn("CSSMediaRule")&&r.parentRule instanceof CSSMediaRule||gn("CSSSupportsRule")&&r.parentRule instanceof CSSSupportsRule||gn("CSSConditionRule")&&r.parentRule instanceof CSSConditionRule){const o=Array.from(r.parentRule.cssRules).indexOf(r);s.unshift(o)}else if(r.parentStyleSheet){const o=Array.from(r.parentStyleSheet.cssRules).indexOf(r);s.unshift(o)}return s}return n(e,t)}function Ue(e,t,n){let r,s;return e?(e.ownerNode?r=t.getId(e.ownerNode):s=n.getId(e),{styleId:s,id:r}):{}}function Gm({styleSheetRuleCb:e,mirror:t,stylesheetManager:n},{win:r}){if(!r.CSSStyleSheet||!r.CSSStyleSheet.prototype)return()=>{};const s=r.CSSStyleSheet.prototype.insertRule;r.CSSStyleSheet.prototype.insertRule=new Proxy(s,{apply:W((d,l,f)=>{const[p,h]=f,{id:g,styleId:S}=Ue(l,t,n.styleMirror);return(g&&g!==-1||S&&S!==-1)&&e({id:g,styleId:S,adds:[{rule:p,index:h}]}),d.apply(l,f)})});const i=r.CSSStyleSheet.prototype.deleteRule;r.CSSStyleSheet.prototype.deleteRule=new Proxy(i,{apply:W((d,l,f)=>{const[p]=f,{id:h,styleId:g}=Ue(l,t,n.styleMirror);return(h&&h!==-1||g&&g!==-1)&&e({id:h,styleId:g,removes:[{index:p}]}),d.apply(l,f)})});let o;r.CSSStyleSheet.prototype.replace&&(o=r.CSSStyleSheet.prototype.replace,r.CSSStyleSheet.prototype.replace=new Proxy(o,{apply:W((d,l,f)=>{const[p]=f,{id:h,styleId:g}=Ue(l,t,n.styleMirror);return(h&&h!==-1||g&&g!==-1)&&e({id:h,styleId:g,replace:p}),d.apply(l,f)})}));let c;r.CSSStyleSheet.prototype.replaceSync&&(c=r.CSSStyleSheet.prototype.replaceSync,r.CSSStyleSheet.prototype.replaceSync=new Proxy(c,{apply:W((d,l,f)=>{const[p]=f,{id:h,styleId:g}=Ue(l,t,n.styleMirror);return(h&&h!==-1||g&&g!==-1)&&e({id:h,styleId:g,replaceSync:p}),d.apply(l,f)})}));const a={};_n("CSSGroupingRule")?a.CSSGroupingRule=r.CSSGroupingRule:(_n("CSSMediaRule")&&(a.CSSMediaRule=r.CSSMediaRule),_n("CSSConditionRule")&&(a.CSSConditionRule=r.CSSConditionRule),_n("CSSSupportsRule")&&(a.CSSSupportsRule=r.CSSSupportsRule));const u={};return Object.entries(a).forEach(([d,l])=>{u[d]={insertRule:l.prototype.insertRule,deleteRule:l.prototype.deleteRule},l.prototype.insertRule=new Proxy(u[d].insertRule,{apply:W((f,p,h)=>{const[g,S]=h,{id:y,styleId:T}=Ue(p.parentStyleSheet,t,n.styleMirror);return(y&&y!==-1||T&&T!==-1)&&e({id:y,styleId:T,adds:[{rule:g,index:[...Jn(p),S||0]}]}),f.apply(p,h)})}),l.prototype.deleteRule=new Proxy(u[d].deleteRule,{apply:W((f,p,h)=>{const[g]=h,{id:S,styleId:y}=Ue(p.parentStyleSheet,t,n.styleMirror);return(S&&S!==-1||y&&y!==-1)&&e({id:S,styleId:y,removes:[{index:[...Jn(p),g]}]}),f.apply(p,h)})})}),W(()=>{r.CSSStyleSheet.prototype.insertRule=s,r.CSSStyleSheet.prototype.deleteRule=i,o&&(r.CSSStyleSheet.prototype.replace=o),c&&(r.CSSStyleSheet.prototype.replaceSync=c),Object.entries(a).forEach(([d,l])=>{l.prototype.insertRule=u[d].insertRule,l.prototype.deleteRule=u[d].deleteRule})})}function Ic({mirror:e,stylesheetManager:t},n){let r=null;n.nodeName==="#document"?r=e.getId(n):r=e.getId(n.host);const s=n.nodeName==="#document"?n.defaultView?.Document:n.ownerDocument?.defaultView?.ShadowRoot,i=s?.prototype?Object.getOwnPropertyDescriptor(s?.prototype,"adoptedStyleSheets"):void 0;return r===null||r===-1||!s||!i?()=>{}:(Object.defineProperty(n,"adoptedStyleSheets",{configurable:i.configurable,enumerable:i.enumerable,get(){return i.get?.call(this)},set(o){const c=i.set?.call(this,o);if(r!==null&&r!==-1)try{t.adoptStyleSheets(o,r)}catch{}return c}}),W(()=>{Object.defineProperty(n,"adoptedStyleSheets",{configurable:i.configurable,enumerable:i.enumerable,get:i.get,set:i.set})}))}function Ym({styleDeclarationCb:e,mirror:t,ignoreCSSAttributes:n,stylesheetManager:r},{win:s}){const i=s.CSSStyleDeclaration.prototype.setProperty;s.CSSStyleDeclaration.prototype.setProperty=new Proxy(i,{apply:W((c,a,u)=>{const[d,l,f]=u;if(n.has(d))return i.apply(a,[d,l,f]);const{id:p,styleId:h}=Ue(a.parentRule?.parentStyleSheet,t,r.styleMirror);return(p&&p!==-1||h&&h!==-1)&&e({id:p,styleId:h,set:{property:d,value:l,priority:f},index:Jn(a.parentRule)}),c.apply(a,u)})});const o=s.CSSStyleDeclaration.prototype.removeProperty;return s.CSSStyleDeclaration.prototype.removeProperty=new Proxy(o,{apply:W((c,a,u)=>{const[d]=u;if(n.has(d))return o.apply(a,[d]);const{id:l,styleId:f}=Ue(a.parentRule?.parentStyleSheet,t,r.styleMirror);return(l&&l!==-1||f&&f!==-1)&&e({id:l,styleId:f,remove:{property:d},index:Jn(a.parentRule)}),c.apply(a,u)})}),W(()=>{s.CSSStyleDeclaration.prototype.setProperty=i,s.CSSStyleDeclaration.prototype.removeProperty=o})}function Jm({mediaInteractionCb:e,blockClass:t,blockSelector:n,unblockSelector:r,mirror:s,sampling:i,doc:o}){const c=W(u=>jt(W(d=>{const l=on(d);if(!l||Ee(l,t,n,r,!0))return;const{currentTime:f,volume:p,muted:h,playbackRate:g}=l;e({type:u,id:s.getId(l),currentTime:f,volume:p,muted:h,playbackRate:g})}),i.media||500)),a=[me("play",c(ft.Play),o),me("pause",c(ft.Pause),o),me("seeked",c(ft.Seeked),o),me("volumechange",c(ft.VolumeChange),o),me("ratechange",c(ft.RateChange),o)];return W(()=>{a.forEach(u=>u())})}function Km({fontCb:e,doc:t}){const n=t.defaultView;if(!n)return()=>{};const r=[],s=new WeakMap,i=n.FontFace;n.FontFace=function(a,u,d){const l=new i(a,u,d);return s.set(l,{family:a,buffer:typeof u!="string",descriptors:d,fontSource:typeof u=="string"?u:JSON.stringify(Array.from(new Uint8Array(u)))}),l};const o=Hs(t.fonts,"add",function(c){return function(a){return pr(W(()=>{const u=s.get(a);u&&(e(u),s.delete(a))}),0),c.apply(this,[a])}});return r.push(()=>{n.FontFace=i}),r.push(o),W(()=>{r.forEach(c=>c())})}function Xm(e){const{doc:t,mirror:n,blockClass:r,blockSelector:s,unblockSelector:i,selectionCb:o}=e;let c=!0;const a=W(()=>{const u=t.getSelection();if(!u||c&&u?.isCollapsed)return;c=u.isCollapsed||!1;const d=[],l=u.rangeCount||0;for(let f=0;f<l;f++){const p=u.getRangeAt(f),{startContainer:h,startOffset:g,endContainer:S,endOffset:y}=p;Ee(h,r,s,i,!0)||Ee(S,r,s,i,!0)||d.push({start:n.getId(h),startOffset:g,end:n.getId(S),endOffset:y})}o({ranges:d})});return a(),me("selectionchange",a)}function Qm({doc:e,customElementCb:t}){const n=e.defaultView;return!n||!n.customElements?()=>{}:Hs(n.customElements,"define",function(s){return function(i,o,c){try{t({define:{name:i}})}catch{}return s.apply(this,[i,o,c])}})}function Zm(e,t={}){const n=e.doc.defaultView;if(!n)return()=>{};let r;e.recordDOM&&(r=vc(e,e.doc));const s=Wm(e),i=zm(e),o=Tc(e),c=qm(e,{win:n}),a=Vm(e),u=Jm(e);let d=()=>{},l=()=>{},f=()=>{},p=()=>{};e.recordDOM&&(d=Gm(e,{win:n}),l=Ic(e,e.doc),f=Ym(e,{win:n}),e.collectFonts&&(p=Km(e)));const h=Xm(e),g=Qm(e),S=[];for(const y of e.plugins)S.push(y.observer(y.callback,n,y.options));return W(()=>{gt.forEach(y=>y.reset()),r?.disconnect(),s(),i(),o(),c(),a(),u(),d(),l(),f(),p(),h(),g(),S.forEach(y=>y())})}function gn(e){return typeof window[e]<"u"}function _n(e){return!!(typeof window[e]<"u"&&window[e].prototype&&"insertRule"in window[e].prototype&&"deleteRule"in window[e].prototype)}class rs{constructor(t){this.generateIdFn=t,this.iframeIdToRemoteIdMap=new WeakMap,this.iframeRemoteIdToIdMap=new WeakMap}getId(t,n,r,s){const i=r||this.getIdToRemoteIdMap(t),o=s||this.getRemoteIdToIdMap(t);let c=i.get(n);return c||(c=this.generateIdFn(),i.set(n,c),o.set(c,n)),c}getIds(t,n){const r=this.getIdToRemoteIdMap(t),s=this.getRemoteIdToIdMap(t);return n.map(i=>this.getId(t,i,r,s))}getRemoteId(t,n,r){const s=r||this.getRemoteIdToIdMap(t);if(typeof n!="number")return n;const i=s.get(n);return i||-1}getRemoteIds(t,n){const r=this.getRemoteIdToIdMap(t);return n.map(s=>this.getRemoteId(t,s,r))}reset(t){if(!t){this.iframeIdToRemoteIdMap=new WeakMap,this.iframeRemoteIdToIdMap=new WeakMap;return}this.iframeIdToRemoteIdMap.delete(t),this.iframeRemoteIdToIdMap.delete(t)}getIdToRemoteIdMap(t){let n=this.iframeIdToRemoteIdMap.get(t);return n||(n=new Map,this.iframeIdToRemoteIdMap.set(t,n)),n}getRemoteIdToIdMap(t){let n=this.iframeRemoteIdToIdMap.get(t);return n||(n=new Map,this.iframeRemoteIdToIdMap.set(t,n)),n}}class eg{constructor(){this.crossOriginIframeMirror=new rs(Us),this.crossOriginIframeRootIdMap=new WeakMap}addIframe(){}addLoadListener(){}attachIframe(){}}class tg{constructor(t){this.iframes=new WeakMap,this.crossOriginIframeMap=new WeakMap,this.crossOriginIframeMirror=new rs(Us),this.crossOriginIframeRootIdMap=new WeakMap,this.mutationCb=t.mutationCb,this.wrappedEmit=t.wrappedEmit,this.stylesheetManager=t.stylesheetManager,this.recordCrossOriginIframes=t.recordCrossOriginIframes,this.crossOriginIframeStyleMirror=new rs(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror)),this.mirror=t.mirror,this.recordCrossOriginIframes&&window.addEventListener("message",this.handleMessage.bind(this))}addIframe(t){this.iframes.set(t,!0),t.contentWindow&&this.crossOriginIframeMap.set(t.contentWindow,t)}addLoadListener(t){this.loadListener=t}attachIframe(t,n){this.mutationCb({adds:[{parentId:this.mirror.getId(t),nextId:null,node:n}],removes:[],texts:[],attributes:[],isAttachIframe:!0}),this.recordCrossOriginIframes&&t.contentWindow?.addEventListener("message",this.handleMessage.bind(this)),this.loadListener?.(t);const r=Ws(t);r&&r.adoptedStyleSheets&&r.adoptedStyleSheets.length>0&&this.stylesheetManager.adoptStyleSheets(r.adoptedStyleSheets,this.mirror.getId(r))}handleMessage(t){const n=t;if(n.data.type!=="rrweb"||n.origin!==n.data.origin||!t.source)return;const s=this.crossOriginIframeMap.get(t.source);if(!s)return;const i=this.transformCrossOriginEvent(s,n.data.event);i&&this.wrappedEmit(i,n.data.isCheckout)}transformCrossOriginEvent(t,n){switch(n.type){case L.FullSnapshot:{this.crossOriginIframeMirror.reset(t),this.crossOriginIframeStyleMirror.reset(t),this.replaceIdOnNode(n.data.node,t);const r=n.data.node.id;return this.crossOriginIframeRootIdMap.set(t,r),this.patchRootIdOnNode(n.data.node,r),{timestamp:n.timestamp,type:L.IncrementalSnapshot,data:{source:x.Mutation,adds:[{parentId:this.mirror.getId(t),nextId:null,node:n.data.node}],removes:[],texts:[],attributes:[],isAttachIframe:!0}}}case L.Meta:case L.Load:case L.DomContentLoaded:return!1;case L.Plugin:return n;case L.Custom:return this.replaceIds(n.data.payload,t,["id","parentId","previousId","nextId"]),n;case L.IncrementalSnapshot:switch(n.data.source){case x.Mutation:return n.data.adds.forEach(r=>{this.replaceIds(r,t,["parentId","nextId","previousId"]),this.replaceIdOnNode(r.node,t);const s=this.crossOriginIframeRootIdMap.get(t);s&&this.patchRootIdOnNode(r.node,s)}),n.data.removes.forEach(r=>{this.replaceIds(r,t,["parentId","id"])}),n.data.attributes.forEach(r=>{this.replaceIds(r,t,["id"])}),n.data.texts.forEach(r=>{this.replaceIds(r,t,["id"])}),n;case x.Drag:case x.TouchMove:case x.MouseMove:return n.data.positions.forEach(r=>{this.replaceIds(r,t,["id"])}),n;case x.ViewportResize:return!1;case x.MediaInteraction:case x.MouseInteraction:case x.Scroll:case x.CanvasMutation:case x.Input:return this.replaceIds(n.data,t,["id"]),n;case x.StyleSheetRule:case x.StyleDeclaration:return this.replaceIds(n.data,t,["id"]),this.replaceStyleIds(n.data,t,["styleId"]),n;case x.Font:return n;case x.Selection:return n.data.ranges.forEach(r=>{this.replaceIds(r,t,["start","end"])}),n;case x.AdoptedStyleSheet:return this.replaceIds(n.data,t,["id"]),this.replaceStyleIds(n.data,t,["styleIds"]),n.data.styles?.forEach(r=>{this.replaceStyleIds(r,t,["styleId"])}),n}}return!1}replace(t,n,r,s){for(const i of s)!Array.isArray(n[i])&&typeof n[i]!="number"||(Array.isArray(n[i])?n[i]=t.getIds(r,n[i]):n[i]=t.getId(r,n[i]));return n}replaceIds(t,n,r){return this.replace(this.crossOriginIframeMirror,t,n,r)}replaceStyleIds(t,n,r){return this.replace(this.crossOriginIframeStyleMirror,t,n,r)}replaceIdOnNode(t,n){this.replaceIds(t,n,["id","rootId"]),"childNodes"in t&&t.childNodes.forEach(r=>{this.replaceIdOnNode(r,n)})}patchRootIdOnNode(t,n){t.type!==oe.Document&&!t.rootId&&(t.rootId=n),"childNodes"in t&&t.childNodes.forEach(r=>{this.patchRootIdOnNode(r,n)})}}class ng{init(){}addShadowRoot(){}observeAttachShadow(){}reset(){}}class rg{constructor(t){this.shadowDoms=new WeakSet,this.restoreHandlers=[],this.mutationCb=t.mutationCb,this.scrollCb=t.scrollCb,this.bypassOptions=t.bypassOptions,this.mirror=t.mirror,this.init()}init(){this.reset(),this.patchAttachShadow(Element,document)}addShadowRoot(t,n){if(!Ft(t)||this.shadowDoms.has(t))return;this.shadowDoms.add(t),this.bypassOptions.canvasManager.addShadowRoot(t);const r=vc({...this.bypassOptions,doc:n,mutationCb:this.mutationCb,mirror:this.mirror,shadowDomManager:this},t);this.restoreHandlers.push(()=>r.disconnect()),this.restoreHandlers.push(Tc({...this.bypassOptions,scrollCb:this.scrollCb,doc:t,mirror:this.mirror})),pr(()=>{t.adoptedStyleSheets&&t.adoptedStyleSheets.length>0&&this.bypassOptions.stylesheetManager.adoptStyleSheets(t.adoptedStyleSheets,this.mirror.getId(t.host)),this.restoreHandlers.push(Ic({mirror:this.mirror,stylesheetManager:this.bypassOptions.stylesheetManager},t))},0)}observeAttachShadow(t){const n=Ws(t),r=Dm(t);!n||!r||this.patchAttachShadow(r.Element,n)}patchAttachShadow(t,n){const r=this;this.restoreHandlers.push(Hs(t.prototype,"attachShadow",function(s){return function(i){const o=s.call(this,i);return this.shadowRoot&&Ec(this)&&r.addShadowRoot(this.shadowRoot,n),o}}))}reset(){this.restoreHandlers.forEach(t=>{try{t()}catch{}}),this.restoreHandlers=[],this.shadowDoms=new WeakSet,this.bypassOptions.canvasManager.resetShadowRoots()}}var lo="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",sg=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(var Sn=0;Sn<lo.length;Sn++)sg[lo.charCodeAt(Sn)]=Sn;class fo{reset(){}freeze(){}unfreeze(){}lock(){}unlock(){}snapshot(){}addWindow(){}addShadowRoot(){}resetShadowRoots(){}}class ig{constructor(t){this.trackedLinkElements=new WeakSet,this.styleMirror=new xm,this.mutationCb=t.mutationCb,this.adoptedStyleSheetCb=t.adoptedStyleSheetCb}attachLinkElement(t,n){"_cssText"in n.attributes&&this.mutationCb({adds:[],removes:[],texts:[],attributes:[{id:n.id,attributes:n.attributes}]}),this.trackLinkElement(t)}trackLinkElement(t){this.trackedLinkElements.has(t)||(this.trackedLinkElements.add(t),this.trackStylesheetInLinkElement(t))}adoptStyleSheets(t,n){if(t.length===0)return;const r={id:n,styleIds:[]},s=[];for(const i of t){let o;this.styleMirror.has(i)?o=this.styleMirror.getId(i):(o=this.styleMirror.add(i),s.push({styleId:o,rules:Array.from(i.rules||CSSRule,(c,a)=>({rule:rc(c),index:a}))})),r.styleIds.push(o)}s.length>0&&(r.styles=s),this.adoptedStyleSheetCb(r)}reset(){this.styleMirror.reset(),this.trackedLinkElements=new WeakSet}trackStylesheetInLinkElement(t){}}class og{constructor(){this.nodeMap=new WeakMap,this.active=!1}inOtherBuffer(t,n){const r=this.nodeMap.get(t);return r&&Array.from(r).some(s=>s!==n)}add(t,n){this.active||(this.active=!0,Pm(()=>{this.nodeMap=new WeakMap,this.active=!1})),this.nodeMap.set(t,(this.nodeMap.get(t)||new Set).add(n))}destroy(){}}let se,Kn;try{if(Array.from([1],e=>e*2)[0]!==2){const e=document.createElement("iframe");document.body.appendChild(e),Array.from=e.contentWindow?.Array.from||Array.from,document.body.removeChild(e)}}catch(e){console.debug("Unable to override Array.from",e)}const we=sm();function Le(e={}){const{emit:t,checkoutEveryNms:n,checkoutEveryNth:r,blockClass:s="rr-block",blockSelector:i=null,unblockSelector:o=null,ignoreClass:c="rr-ignore",ignoreSelector:a=null,maskAllText:u=!1,maskTextClass:d="rr-mask",unmaskTextClass:l=null,maskTextSelector:f=null,unmaskTextSelector:p=null,inlineStylesheet:h=!0,maskAllInputs:g,maskInputOptions:S,slimDOMOptions:y,maskAttributeFn:T,maskInputFn:B,maskTextFn:N,maxCanvasSize:z=null,packFn:A,sampling:_={},dataURLOptions:I={},mousemoveWait:Y,recordDOM:E=!0,recordCanvas:k=!1,recordCrossOriginIframes:F=!1,recordAfter:q=e.recordAfter==="DOMContentLoaded"?e.recordAfter:"load",userTriggeredOnInput:P=!1,collectFonts:ce=!1,inlineImages:J=!1,plugins:ee,keepIframeSrcFn:b=()=>!1,ignoreCSSAttributes:G=new Set([]),errorHandler:w,onMutation:K,getCanvasManager:ne}=e;Hm(w);const re=F?window.parent===window:!0;let Se=!1;if(!re)try{window.parent.document&&(Se=!1)}catch{Se=!0}if(re&&!t)throw new Error("emit function is required");if(!re&&!Se)return()=>{};Y!==void 0&&_.mousemove===void 0&&(_.mousemove=Y),we.reset();const ye=g===!0?{color:!0,date:!0,"datetime-local":!0,email:!0,month:!0,number:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0,textarea:!0,select:!0,radio:!0,checkbox:!0}:S!==void 0?S:{},at=y===!0||y==="all"?{script:!0,comment:!0,headFavicon:!0,headWhitespace:!0,headMetaSocial:!0,headMetaRobots:!0,headMetaHttpEquiv:!0,headMetaVerification:!0,headMetaAuthorship:y==="all",headMetaDescKeywords:y==="all"}:y||{};Am();let Oe,ct=0;const cn=j=>{for(const Ie of ee||[])Ie.eventProcessor&&(j=Ie.eventProcessor(j));return A&&!Se&&(j=A(j)),j};se=(j,Ie)=>{const U=j;if(U.timestamp=Yn(),gt[0]?.isFrozen()&&U.type!==L.FullSnapshot&&!(U.type===L.IncrementalSnapshot&&U.data.source===x.Mutation)&>.forEach(fe=>fe.unfreeze()),re)t?.(cn(U),Ie);else if(Se){const fe={type:"rrweb",event:cn(U),origin:window.location.origin,isCheckout:Ie};window.parent.postMessage(fe,"*")}if(U.type===L.FullSnapshot)Oe=U,ct=0;else if(U.type===L.IncrementalSnapshot){if(U.data.source===x.Mutation&&U.data.isAttachIframe)return;ct++;const fe=r&&ct>=r,V=n&&Oe&&U.timestamp-Oe.timestamp>n;(fe||V)&&yr(!0)}};const Mt=j=>{se({type:L.IncrementalSnapshot,data:{source:x.Mutation,...j}})},ei=j=>se({type:L.IncrementalSnapshot,data:{source:x.Scroll,...j}}),iu=j=>se({type:L.IncrementalSnapshot,data:{source:x.CanvasMutation,...j}}),ou=j=>se({type:L.IncrementalSnapshot,data:{source:x.AdoptedStyleSheet,...j}}),Je=new ig({mutationCb:Mt,adoptedStyleSheetCb:ou}),Ke=typeof __RRWEB_EXCLUDE_IFRAME__=="boolean"&&__RRWEB_EXCLUDE_IFRAME__?new eg:new tg({mirror:we,mutationCb:Mt,stylesheetManager:Je,recordCrossOriginIframes:F,wrappedEmit:se});for(const j of ee||[])j.getMirror&&j.getMirror({nodeMirror:we,crossOriginIframeMirror:Ke.crossOriginIframeMirror,crossOriginIframeStyleMirror:Ke.crossOriginIframeStyleMirror});const _r=new og,Sr=cg(ne,{mirror:we,win:window,mutationCb:j=>se({type:L.IncrementalSnapshot,data:{source:x.CanvasMutation,...j}}),recordCanvas:k,blockClass:s,blockSelector:i,unblockSelector:o,maxCanvasSize:z,sampling:_.canvas,dataURLOptions:I,errorHandler:w}),un=typeof __RRWEB_EXCLUDE_SHADOW_DOM__=="boolean"&&__RRWEB_EXCLUDE_SHADOW_DOM__?new ng:new rg({mutationCb:Mt,scrollCb:ei,bypassOptions:{onMutation:K,blockClass:s,blockSelector:i,unblockSelector:o,maskAllText:u,maskTextClass:d,unmaskTextClass:l,maskTextSelector:f,unmaskTextSelector:p,inlineStylesheet:h,maskInputOptions:ye,dataURLOptions:I,maskAttributeFn:T,maskTextFn:N,maskInputFn:B,recordCanvas:k,inlineImages:J,sampling:_,slimDOMOptions:at,iframeManager:Ke,stylesheetManager:Je,canvasManager:Sr,keepIframeSrcFn:b,processedNodeManager:_r,ignoreCSSAttributes:G},mirror:we}),yr=(j=!1)=>{if(!E)return;se({type:L.Meta,data:{href:window.location.href,width:hc(),height:pc()}},j),Je.reset(),un.init(),gt.forEach(U=>U.lock());const Ie=Cm(document,{mirror:we,blockClass:s,blockSelector:i,unblockSelector:o,maskAllText:u,maskTextClass:d,unmaskTextClass:l,maskTextSelector:f,unmaskTextSelector:p,inlineStylesheet:h,maskAllInputs:ye,maskAttributeFn:T,maskInputFn:B,maskTextFn:N,slimDOM:at,dataURLOptions:I,recordCanvas:k,inlineImages:J,onSerialize:U=>{_c(U,we)&&Ke.addIframe(U),Sc(U,we)&&Je.trackLinkElement(U),ts(U)&&un.addShadowRoot(U.shadowRoot,document)},onIframeLoad:(U,fe)=>{Ke.attachIframe(U,fe),U.contentWindow&&Sr.addWindow(U.contentWindow),un.observeAttachShadow(U)},onStylesheetLoad:(U,fe)=>{Je.attachLinkElement(U,fe)},onBlockedImageLoad:(U,fe,{width:V,height:At})=>{Mt({adds:[],removes:[],texts:[],attributes:[{id:fe.id,attributes:{style:{width:`${V}px`,height:`${At}px`}}}]})},keepIframeSrcFn:b,ignoreCSSAttributes:G});if(!Ie)return console.warn("Failed to snapshot the document");se({type:L.FullSnapshot,data:{node:Ie,initialOffset:fc(window)}}),gt.forEach(U=>U.unlock()),document.adoptedStyleSheets&&document.adoptedStyleSheets.length>0&&Je.adoptStyleSheets(document.adoptedStyleSheets,we.getId(document))};Kn=yr;try{const j=[],Ie=fe=>W(Zm)({onMutation:K,mutationCb:Mt,mousemoveCb:(V,At)=>se({type:L.IncrementalSnapshot,data:{source:At,positions:V}}),mouseInteractionCb:V=>se({type:L.IncrementalSnapshot,data:{source:x.MouseInteraction,...V}}),scrollCb:ei,viewportResizeCb:V=>se({type:L.IncrementalSnapshot,data:{source:x.ViewportResize,...V}}),inputCb:V=>se({type:L.IncrementalSnapshot,data:{source:x.Input,...V}}),mediaInteractionCb:V=>se({type:L.IncrementalSnapshot,data:{source:x.MediaInteraction,...V}}),styleSheetRuleCb:V=>se({type:L.IncrementalSnapshot,data:{source:x.StyleSheetRule,...V}}),styleDeclarationCb:V=>se({type:L.IncrementalSnapshot,data:{source:x.StyleDeclaration,...V}}),canvasMutationCb:iu,fontCb:V=>se({type:L.IncrementalSnapshot,data:{source:x.Font,...V}}),selectionCb:V=>{se({type:L.IncrementalSnapshot,data:{source:x.Selection,...V}})},customElementCb:V=>{se({type:L.IncrementalSnapshot,data:{source:x.CustomElement,...V}})},blockClass:s,ignoreClass:c,ignoreSelector:a,maskAllText:u,maskTextClass:d,unmaskTextClass:l,maskTextSelector:f,unmaskTextSelector:p,maskInputOptions:ye,inlineStylesheet:h,sampling:_,recordDOM:E,recordCanvas:k,inlineImages:J,userTriggeredOnInput:P,collectFonts:ce,doc:fe,maskAttributeFn:T,maskInputFn:B,maskTextFn:N,keepIframeSrcFn:b,blockSelector:i,unblockSelector:o,slimDOMOptions:at,dataURLOptions:I,mirror:we,iframeManager:Ke,stylesheetManager:Je,shadowDomManager:un,processedNodeManager:_r,canvasManager:Sr,ignoreCSSAttributes:G,plugins:ee?.filter(V=>V.observer)?.map(V=>({observer:V.observer,options:V.options,callback:At=>se({type:L.Plugin,data:{plugin:V.name,payload:At}})}))||[]},{});Ke.addLoadListener(fe=>{try{j.push(Ie(fe.contentDocument))}catch(V){console.warn(V)}});const U=()=>{yr(),j.push(Ie(document))};return document.readyState==="interactive"||document.readyState==="complete"?U():(j.push(me("DOMContentLoaded",()=>{se({type:L.DomContentLoaded,data:{}}),q==="DOMContentLoaded"&&U()})),j.push(me("load",()=>{se({type:L.Load,data:{}}),q==="load"&&U()},window))),()=>{j.forEach(fe=>fe()),_r.destroy(),Kn=void 0,$m()}}catch(j){console.warn(j)}}function ag(e){if(!Kn)throw new Error("please take full snapshot after start recording");Kn(e)}Le.mirror=we;Le.takeFullSnapshot=ag;function cg(e,t){try{return e?e(t):new fo}catch{return console.warn("Unable to initialize CanvasManager"),new fo}}var po;(function(e){e[e.NotStarted=0]="NotStarted",e[e.Running=1]="Running",e[e.Stopped=2]="Stopped"})(po||(po={}));const ug=3,lg=5;function zs(e){return e>9999999999?e:e*1e3}function Pr(e){return e>9999999999?e/1e3:e}function an(e,t){t.category!=="sentry.transaction"&&(["ui.click","ui.input"].includes(t.category)?e.triggerUserActivity():e.checkAndHandleExpiredSession(),e.addUpdate(()=>(e.throttledAddEvent({type:L.Custom,timestamp:(t.timestamp||0)*1e3,data:{tag:"breadcrumb",payload:tr(t,10,1e3)}}),t.category==="console")))}const dg="button,a";function wc(e){return e.closest(dg)||e}function kc(e){const t=Rc(e);return!t||!(t instanceof Element)?t:wc(t)}function Rc(e){return fg(e)?e.target:e}function fg(e){return typeof e=="object"&&!!e&&"target"in e}let He;function pg(e){return He||(He=[],hg()),He.push(e),()=>{const t=He?He.indexOf(e):-1;t>-1&&He.splice(t,1)}}function hg(){_e(Z,"open",function(e){return function(...t){if(He)try{He.forEach(n=>n())}catch{}return e.apply(Z,t)}})}const mg=new Set([x.Mutation,x.StyleSheetRule,x.StyleDeclaration,x.AdoptedStyleSheet,x.CanvasMutation,x.Selection,x.MediaInteraction]);function gg(e,t,n){e.handleClick(t,n)}class _g{constructor(t,n,r=an){this._lastMutation=0,this._lastScroll=0,this._clicks=[],this._timeout=n.timeout/1e3,this._threshold=n.threshold/1e3,this._scrollTimeout=n.scrollTimeout/1e3,this._replay=t,this._ignoreSelector=n.ignoreSelector,this._addBreadcrumbEvent=r}addListeners(){const t=pg(()=>{this._lastMutation=ho()});this._teardown=()=>{t(),this._clicks=[],this._lastMutation=0,this._lastScroll=0}}removeListeners(){this._teardown&&this._teardown(),this._checkClickTimeout&&clearTimeout(this._checkClickTimeout)}handleClick(t,n){if(yg(n,this._ignoreSelector)||!Eg(t))return;const r={timestamp:Pr(t.timestamp),clickBreadcrumb:t,clickCount:0,node:n};this._clicks.some(s=>s.node===r.node&&Math.abs(s.timestamp-r.timestamp)<1)||(this._clicks.push(r),this._clicks.length===1&&this._scheduleCheckClicks())}registerMutation(t=Date.now()){this._lastMutation=Pr(t)}registerScroll(t=Date.now()){this._lastScroll=Pr(t)}registerClick(t){const n=wc(t);this._handleMultiClick(n)}_handleMultiClick(t){this._getClicks(t).forEach(n=>{n.clickCount++})}_getClicks(t){return this._clicks.filter(n=>n.node===t)}_checkClicks(){const t=[],n=ho();this._clicks.forEach(r=>{!r.mutationAfter&&this._lastMutation&&(r.mutationAfter=r.timestamp<=this._lastMutation?this._lastMutation-r.timestamp:void 0),!r.scrollAfter&&this._lastScroll&&(r.scrollAfter=r.timestamp<=this._lastScroll?this._lastScroll-r.timestamp:void 0),r.timestamp+this._timeout<=n&&t.push(r)});for(const r of t){const s=this._clicks.indexOf(r);s>-1&&(this._generateBreadcrumbs(r),this._clicks.splice(s,1))}this._clicks.length&&this._scheduleCheckClicks()}_generateBreadcrumbs(t){const n=this._replay,r=t.scrollAfter&&t.scrollAfter<=this._scrollTimeout,s=t.mutationAfter&&t.mutationAfter<=this._threshold,i=!r&&!s,{clickCount:o,clickBreadcrumb:c}=t;if(i){const a=Math.min(t.mutationAfter||this._timeout,this._timeout)*1e3,u=a<this._timeout*1e3?"mutation":"timeout",d={type:"default",message:c.message,timestamp:c.timestamp,category:"ui.slowClickDetected",data:{...c.data,url:Z.location.href,route:n.getCurrentRoute(),timeAfterClickMs:a,endReason:u,clickCount:o||1}};this._addBreadcrumbEvent(n,d);return}if(o>1){const a={type:"default",message:c.message,timestamp:c.timestamp,category:"ui.multiClick",data:{...c.data,url:Z.location.href,route:n.getCurrentRoute(),clickCount:o,metric:!0}};this._addBreadcrumbEvent(n,a)}}_scheduleCheckClicks(){this._checkClickTimeout&&clearTimeout(this._checkClickTimeout),this._checkClickTimeout=sn(()=>this._checkClicks(),1e3)}}const Sg=["A","BUTTON","INPUT"];function yg(e,t){return!!(!Sg.includes(e.tagName)||e.tagName==="INPUT"&&!["submit","button"].includes(e.getAttribute("type")||"")||e.tagName==="A"&&(e.hasAttribute("download")||e.hasAttribute("target")&&e.getAttribute("target")!=="_self")||t&&e.matches(t))}function Eg(e){return!!(e.data&&typeof e.data.nodeId=="number"&&e.timestamp)}function ho(){return Date.now()/1e3}function bg(e,t){try{if(!vg(t))return;const{source:n}=t.data;if(mg.has(n)&&e.registerMutation(t.timestamp),n===x.Scroll&&e.registerScroll(t.timestamp),Tg(t)){const{type:r,id:s}=t.data,i=Le.mirror.getNode(s);i instanceof HTMLElement&&r===he.Click&&e.registerClick(i)}}catch{}}function vg(e){return e.type===ug}function Tg(e){return e.data.source===x.MouseInteraction}function xe(e){return{timestamp:Date.now()/1e3,type:"default",...e}}var qs=(e=>(e[e.Document=0]="Document",e[e.DocumentType=1]="DocumentType",e[e.Element=2]="Element",e[e.Text=3]="Text",e[e.CDATA=4]="CDATA",e[e.Comment=5]="Comment",e))(qs||{});const Ig=new Set(["id","class","aria-label","role","name","alt","title","data-test-id","data-testid","disabled","aria-disabled","data-sentry-component"]);function wg(e){const t={};!e["data-sentry-component"]&&e["data-sentry-element"]&&(e["data-sentry-component"]=e["data-sentry-element"]);for(const n in e)if(Ig.has(n)){let r=n;(n==="data-testid"||n==="data-test-id")&&(r="testId"),t[r]=e[n]}return t}const kg=e=>t=>{if(!e.isEnabled())return;const n=Rg(t);if(!n)return;const r=t.name==="click",s=r?t.event:void 0;r&&e.clickDetector&&s?.target&&!s.altKey&&!s.metaKey&&!s.ctrlKey&&!s.shiftKey&&gg(e.clickDetector,n,kc(t.event)),an(e,n)};function Cc(e,t){const n=Le.mirror.getId(e),r=n&&Le.mirror.getNode(n),s=r&&Le.mirror.getMeta(r),i=s&&Mg(s)?s:null;return{message:t,data:i?{nodeId:n,node:{id:n,tagName:i.tagName,textContent:Array.from(i.childNodes).map(o=>o.type===qs.Text&&o.textContent).filter(Boolean).map(o=>o.trim()).join(""),attributes:wg(i.attributes)}}:{}}}function Rg(e){const{target:t,message:n}=Cg(e);return xe({category:`ui.${e.name}`,...Cc(t,n)})}function Cg(e){const t=e.name==="click";let n,r=null;try{r=t?kc(e.event):Rc(e.event),n=be(r,{maxStringLength:200})||"<unknown>"}catch{n="<unknown>"}return{target:r,message:n}}function Mg(e){return e.type===qs.Element}function Ag(e,t){if(!e.isEnabled())return;e.updateUserActivity();const n=xg(t);n&&an(e,n)}function xg(e){const{metaKey:t,shiftKey:n,ctrlKey:r,altKey:s,key:i,target:o}=e;if(!o||Og(o)||!i)return null;const c=t||r||s,a=i.length===1;if(!c&&a)return null;const u=be(o,{maxStringLength:200})||"<unknown>",d=Cc(o,u);return xe({category:"ui.keyDown",message:u,data:{...d.data,metaKey:t,shiftKey:n,ctrlKey:r,altKey:s,key:i}})}function Og(e){return e.tagName==="INPUT"||e.tagName==="TEXTAREA"||e.isContentEditable}const Ng={resource:Bg,paint:Dg,navigation:Fg};function Lr(e,t){return({metric:n})=>{t.replayPerformanceEntries.push(e(n))}}function Pg(e){return e.map(Lg).filter(Boolean)}function Lg(e){const t=Ng[e.entryType];return t?t(e):null}function vt(e){return((pe()||Z.performance.timeOrigin)+e)/1e3}function Dg(e){const{duration:t,entryType:n,name:r,startTime:s}=e,i=vt(s);return{type:n,name:r,start:i,end:i+t,data:void 0}}function Fg(e){const{entryType:t,name:n,decodedBodySize:r,duration:s,domComplete:i,encodedBodySize:o,domContentLoadedEventStart:c,domContentLoadedEventEnd:a,domInteractive:u,loadEventStart:d,loadEventEnd:l,redirectCount:f,startTime:p,transferSize:h,type:g}=e;return s===0?null:{type:`${t}.${g}`,start:vt(p),end:vt(i),name:n,data:{size:h,decodedBodySize:r,encodedBodySize:o,duration:s,domInteractive:u,domContentLoadedEventStart:c,domContentLoadedEventEnd:a,loadEventStart:d,loadEventEnd:l,domComplete:i,redirectCount:f}}}function Bg(e){const{entryType:t,initiatorType:n,name:r,responseEnd:s,startTime:i,decodedBodySize:o,encodedBodySize:c,responseStatus:a,transferSize:u}=e;return["fetch","xmlhttprequest"].includes(n)?null:{type:`${t}.${n}`,start:vt(i),end:vt(s),name:r,data:{size:u,statusCode:a,decodedBodySize:o,encodedBodySize:c}}}function Ug(e){const t=e.entries[e.entries.length-1],n=t?.element?[t.element]:void 0;return js(e,"largest-contentful-paint",n)}function Hg(e){return e.sources!==void 0}function $g(e){const t=[],n=[];for(const r of e.entries)if(Hg(r)){const s=[];for(const i of r.sources)if(i.node){n.push(i.node);const o=Le.mirror.getId(i.node);o&&s.push(o)}t.push({value:r.value,nodeIds:s.length?s:void 0})}return js(e,"cumulative-layout-shift",n,t)}function Wg(e){const t=e.entries[e.entries.length-1],n=t?.target?[t.target]:void 0;return js(e,"interaction-to-next-paint",n)}function js(e,t,n,r){const s=e.value,i=e.rating,o=vt(s);return{type:"web-vital",name:t,start:o,end:o,data:{value:s,size:s,rating:i,nodeIds:n?n.map(c=>Le.mirror.getId(c)):void 0,attributions:r}}}function zg(e){function t(s){e.performanceEntries.includes(s)||e.performanceEntries.push(s)}function n({entries:s}){s.forEach(t)}const r=[];return["navigation","paint","resource"].forEach(s=>{r.push(it(s,n))}),r.push(xs(Lr(Ug,e)),As(Lr($g,e)),za(Lr(Wg,e))),()=>{r.forEach(s=>s())}}const C=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,qg='var t=Uint8Array,n=Uint16Array,r=Int32Array,e=new t([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),i=new t([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),s=new t([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),a=function(t,e){for(var i=new n(31),s=0;s<31;++s)i[s]=e+=1<<t[s-1];var a=new r(i[30]);for(s=1;s<30;++s)for(var o=i[s];o<i[s+1];++o)a[o]=o-i[s]<<5|s;return{b:i,r:a}},o=a(e,2),h=o.b,f=o.r;h[28]=258,f[258]=28;for(var l=a(i,0).r,u=new n(32768),c=0;c<32768;++c){var v=(43690&c)>>1|(21845&c)<<1;v=(61680&(v=(52428&v)>>2|(13107&v)<<2))>>4|(3855&v)<<4,u[c]=((65280&v)>>8|(255&v)<<8)>>1}var d=function(t,r,e){for(var i=t.length,s=0,a=new n(r);s<i;++s)t[s]&&++a[t[s]-1];var o,h=new n(r);for(s=1;s<r;++s)h[s]=h[s-1]+a[s-1]<<1;if(e){o=new n(1<<r);var f=15-r;for(s=0;s<i;++s)if(t[s])for(var l=s<<4|t[s],c=r-t[s],v=h[t[s]-1]++<<c,d=v|(1<<c)-1;v<=d;++v)o[u[v]>>f]=l}else for(o=new n(i),s=0;s<i;++s)t[s]&&(o[s]=u[h[t[s]-1]++]>>15-t[s]);return o},p=new t(288);for(c=0;c<144;++c)p[c]=8;for(c=144;c<256;++c)p[c]=9;for(c=256;c<280;++c)p[c]=7;for(c=280;c<288;++c)p[c]=8;var g=new t(32);for(c=0;c<32;++c)g[c]=5;var w=d(p,9,0),y=d(g,5,0),m=function(t){return(t+7)/8|0},b=function(n,r,e){return(null==e||e>n.length)&&(e=n.length),new t(n.subarray(r,e))},M=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],E=function(t,n,r){var e=new Error(n||M[t]);if(e.code=t,Error.captureStackTrace&&Error.captureStackTrace(e,E),!r)throw e;return e},z=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8},_=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8,t[e+2]|=r>>16},x=function(r,e){for(var i=[],s=0;s<r.length;++s)r[s]&&i.push({s:s,f:r[s]});var a=i.length,o=i.slice();if(!a)return{t:F,l:0};if(1==a){var h=new t(i[0].s+1);return h[i[0].s]=1,{t:h,l:1}}i.sort(function(t,n){return t.f-n.f}),i.push({s:-1,f:25001});var f=i[0],l=i[1],u=0,c=1,v=2;for(i[0]={s:-1,f:f.f+l.f,l:f,r:l};c!=a-1;)f=i[i[u].f<i[v].f?u++:v++],l=i[u!=c&&i[u].f<i[v].f?u++:v++],i[c++]={s:-1,f:f.f+l.f,l:f,r:l};var d=o[0].s;for(s=1;s<a;++s)o[s].s>d&&(d=o[s].s);var p=new n(d+1),g=A(i[c-1],p,0);if(g>e){s=0;var w=0,y=g-e,m=1<<y;for(o.sort(function(t,n){return p[n.s]-p[t.s]||t.f-n.f});s<a;++s){var b=o[s].s;if(!(p[b]>e))break;w+=m-(1<<g-p[b]),p[b]=e}for(w>>=y;w>0;){var M=o[s].s;p[M]<e?w-=1<<e-p[M]++-1:++s}for(;s>=0&&w;--s){var E=o[s].s;p[E]==e&&(--p[E],++w)}g=e}return{t:new t(p),l:g}},A=function(t,n,r){return-1==t.s?Math.max(A(t.l,n,r+1),A(t.r,n,r+1)):n[t.s]=r},D=function(t){for(var r=t.length;r&&!t[--r];);for(var e=new n(++r),i=0,s=t[0],a=1,o=function(t){e[i++]=t},h=1;h<=r;++h)if(t[h]==s&&h!=r)++a;else{if(!s&&a>2){for(;a>138;a-=138)o(32754);a>2&&(o(a>10?a-11<<5|28690:a-3<<5|12305),a=0)}else if(a>3){for(o(s),--a;a>6;a-=6)o(8304);a>2&&(o(a-3<<5|8208),a=0)}for(;a--;)o(s);a=1,s=t[h]}return{c:e.subarray(0,i),n:r}},T=function(t,n){for(var r=0,e=0;e<n.length;++e)r+=t[e]*n[e];return r},k=function(t,n,r){var e=r.length,i=m(n+2);t[i]=255&e,t[i+1]=e>>8,t[i+2]=255^t[i],t[i+3]=255^t[i+1];for(var s=0;s<e;++s)t[i+s+4]=r[s];return 8*(i+4+e)},U=function(t,r,a,o,h,f,l,u,c,v,m){z(r,m++,a),++h[256];for(var b=x(h,15),M=b.t,E=b.l,A=x(f,15),U=A.t,C=A.l,F=D(M),I=F.c,S=F.n,L=D(U),O=L.c,j=L.n,q=new n(19),B=0;B<I.length;++B)++q[31&I[B]];for(B=0;B<O.length;++B)++q[31&O[B]];for(var G=x(q,7),H=G.t,J=G.l,K=19;K>4&&!H[s[K-1]];--K);var N,P,Q,R,V=v+5<<3,W=T(h,p)+T(f,g)+l,X=T(h,M)+T(f,U)+l+14+3*K+T(q,H)+2*q[16]+3*q[17]+7*q[18];if(c>=0&&V<=W&&V<=X)return k(r,m,t.subarray(c,c+v));if(z(r,m,1+(X<W)),m+=2,X<W){N=d(M,E,0),P=M,Q=d(U,C,0),R=U;var Y=d(H,J,0);z(r,m,S-257),z(r,m+5,j-1),z(r,m+10,K-4),m+=14;for(B=0;B<K;++B)z(r,m+3*B,H[s[B]]);m+=3*K;for(var Z=[I,O],$=0;$<2;++$){var tt=Z[$];for(B=0;B<tt.length;++B){var nt=31&tt[B];z(r,m,Y[nt]),m+=H[nt],nt>15&&(z(r,m,tt[B]>>5&127),m+=tt[B]>>12)}}}else N=w,P=p,Q=y,R=g;for(B=0;B<u;++B){var rt=o[B];if(rt>255){_(r,m,N[(nt=rt>>18&31)+257]),m+=P[nt+257],nt>7&&(z(r,m,rt>>23&31),m+=e[nt]);var et=31&rt;_(r,m,Q[et]),m+=R[et],et>3&&(_(r,m,rt>>5&8191),m+=i[et])}else _(r,m,N[rt]),m+=P[rt]}return _(r,m,N[256]),m+P[256]},C=new r([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),F=new t(0),I=function(){for(var t=new Int32Array(256),n=0;n<256;++n){for(var r=n,e=9;--e;)r=(1&r&&-306674912)^r>>>1;t[n]=r}return t}(),S=function(){var t=1,n=0;return{p:function(r){for(var e=t,i=n,s=0|r.length,a=0;a!=s;){for(var o=Math.min(a+2655,s);a<o;++a)i+=e+=r[a];e=(65535&e)+15*(e>>16),i=(65535&i)+15*(i>>16)}t=e,n=i},d:function(){return(255&(t%=65521))<<24|(65280&t)<<8|(255&(n%=65521))<<8|n>>8}}},L=function(s,a,o,h,u){if(!u&&(u={l:1},a.dictionary)){var c=a.dictionary.subarray(-32768),v=new t(c.length+s.length);v.set(c),v.set(s,c.length),s=v,u.w=c.length}return function(s,a,o,h,u,c){var v=c.z||s.length,d=new t(h+v+5*(1+Math.ceil(v/7e3))+u),p=d.subarray(h,d.length-u),g=c.l,w=7&(c.r||0);if(a){w&&(p[0]=c.r>>3);for(var y=C[a-1],M=y>>13,E=8191&y,z=(1<<o)-1,_=c.p||new n(32768),x=c.h||new n(z+1),A=Math.ceil(o/3),D=2*A,T=function(t){return(s[t]^s[t+1]<<A^s[t+2]<<D)&z},F=new r(25e3),I=new n(288),S=new n(32),L=0,O=0,j=c.i||0,q=0,B=c.w||0,G=0;j+2<v;++j){var H=T(j),J=32767&j,K=x[H];if(_[J]=K,x[H]=J,B<=j){var N=v-j;if((L>7e3||q>24576)&&(N>423||!g)){w=U(s,p,0,F,I,S,O,q,G,j-G,w),q=L=O=0,G=j;for(var P=0;P<286;++P)I[P]=0;for(P=0;P<30;++P)S[P]=0}var Q=2,R=0,V=E,W=J-K&32767;if(N>2&&H==T(j-W))for(var X=Math.min(M,N)-1,Y=Math.min(32767,j),Z=Math.min(258,N);W<=Y&&--V&&J!=K;){if(s[j+Q]==s[j+Q-W]){for(var $=0;$<Z&&s[j+$]==s[j+$-W];++$);if($>Q){if(Q=$,R=W,$>X)break;var tt=Math.min(W,$-2),nt=0;for(P=0;P<tt;++P){var rt=j-W+P&32767,et=rt-_[rt]&32767;et>nt&&(nt=et,K=rt)}}}W+=(J=K)-(K=_[J])&32767}if(R){F[q++]=268435456|f[Q]<<18|l[R];var it=31&f[Q],st=31&l[R];O+=e[it]+i[st],++I[257+it],++S[st],B=j+Q,++L}else F[q++]=s[j],++I[s[j]]}}for(j=Math.max(j,B);j<v;++j)F[q++]=s[j],++I[s[j]];w=U(s,p,g,F,I,S,O,q,G,j-G,w),g||(c.r=7&w|p[w/8|0]<<3,w-=7,c.h=x,c.p=_,c.i=j,c.w=B)}else{for(j=c.w||0;j<v+g;j+=65535){var at=j+65535;at>=v&&(p[w/8|0]=g,at=v),w=k(p,w+1,s.subarray(j,at))}c.i=v}return b(d,0,h+m(w)+u)}(s,null==a.level?6:a.level,null==a.mem?u.l?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(s.length)))):20:12+a.mem,o,h,u)},O=function(t,n,r){for(;r;++n)t[n]=r,r>>>=8},j=function(){function n(n,r){if("function"==typeof n&&(r=n,n={}),this.ondata=r,this.o=n||{},this.s={l:0,i:32768,w:32768,z:32768},this.b=new t(98304),this.o.dictionary){var e=this.o.dictionary.subarray(-32768);this.b.set(e,32768-e.length),this.s.i=32768-e.length}}return n.prototype.p=function(t,n){this.ondata(L(t,this.o,0,0,this.s),n)},n.prototype.push=function(n,r){this.ondata||E(5),this.s.l&&E(4);var e=n.length+this.s.z;if(e>this.b.length){if(e>2*this.b.length-32768){var i=new t(-32768&e);i.set(this.b.subarray(0,this.s.z)),this.b=i}var s=this.b.length-this.s.z;this.b.set(n.subarray(0,s),this.s.z),this.s.z=this.b.length,this.p(this.b,!1),this.b.set(this.b.subarray(-32768)),this.b.set(n.subarray(s),32768),this.s.z=n.length-s+32768,this.s.i=32766,this.s.w=32768}else this.b.set(n,this.s.z),this.s.z+=n.length;this.s.l=1&r,(this.s.z>this.s.w+8191||r)&&(this.p(this.b,r||!1),this.s.w=this.s.i,this.s.i-=2)},n.prototype.flush=function(){this.ondata||E(5),this.s.l&&E(4),this.p(this.b,!1),this.s.w=this.s.i,this.s.i-=2},n}();function q(t,n){n||(n={});var r=function(){var t=-1;return{p:function(n){for(var r=t,e=0;e<n.length;++e)r=I[255&r^n[e]]^r>>>8;t=r},d:function(){return~t}}}(),e=t.length;r.p(t);var i,s=L(t,n,10+((i=n).filename?i.filename.length+1:0),8),a=s.length;return function(t,n){var r=n.filename;if(t[0]=31,t[1]=139,t[2]=8,t[8]=n.level<2?4:9==n.level?2:0,t[9]=3,0!=n.mtime&&O(t,4,Math.floor(new Date(n.mtime||Date.now())/1e3)),r){t[3]=8;for(var e=0;e<=r.length;++e)t[e+10]=r.charCodeAt(e)}}(s,n),O(s,a-8,r.d()),O(s,a-4,e),s}var B=function(){function t(t,n){this.c=S(),this.v=1,j.call(this,t,n)}return t.prototype.push=function(t,n){this.c.p(t),j.prototype.push.call(this,t,n)},t.prototype.p=function(t,n){var r=L(t,this.o,this.v&&(this.o.dictionary?6:2),n&&4,this.s);this.v&&(function(t,n){var r=n.level,e=0==r?0:r<6?1:9==r?3:2;if(t[0]=120,t[1]=e<<6|(n.dictionary&&32),t[1]|=31-(t[0]<<8|t[1])%31,n.dictionary){var i=S();i.p(n.dictionary),O(t,2,i.d())}}(r,this.o),this.v=0),n&&O(r,r.length-4,this.c.d()),this.ondata(r,n)},t.prototype.flush=function(){j.prototype.flush.call(this)},t}(),G="undefined"!=typeof TextEncoder&&new TextEncoder,H="undefined"!=typeof TextDecoder&&new TextDecoder;try{H.decode(F,{stream:!0})}catch(t){}var J=function(){function t(t){this.ondata=t}return t.prototype.push=function(t,n){this.ondata||E(5),this.d&&E(4),this.ondata(K(t),this.d=n||!1)},t}();function K(n,r){if(G)return G.encode(n);for(var e=n.length,i=new t(n.length+(n.length>>1)),s=0,a=function(t){i[s++]=t},o=0;o<e;++o){if(s+5>i.length){var h=new t(s+8+(e-o<<1));h.set(i),i=h}var f=n.charCodeAt(o);f<128||r?a(f):f<2048?(a(192|f>>6),a(128|63&f)):f>55295&&f<57344?(a(240|(f=65536+(1047552&f)|1023&n.charCodeAt(++o))>>18),a(128|f>>12&63),a(128|f>>6&63),a(128|63&f)):(a(224|f>>12),a(128|f>>6&63),a(128|63&f))}return b(i,0,s)}const N=new class{constructor(){this._init()}clear(){this._init()}addEvent(t){if(!t)throw new Error("Adding invalid event");const n=this._hasEvents?",":"";this.stream.push(n+t),this._hasEvents=!0}finish(){this.stream.push("]",!0);const t=function(t){let n=0;for(const r of t)n+=r.length;const r=new Uint8Array(n);for(let n=0,e=0,i=t.length;n<i;n++){const i=t[n];r.set(i,e),e+=i.length}return r}(this._deflatedData);return this._init(),t}_init(){this._hasEvents=!1,this._deflatedData=[],this.deflate=new B,this.deflate.ondata=(t,n)=>{this._deflatedData.push(t)},this.stream=new J((t,n)=>{this.deflate.push(t,n)}),this.stream.push("[")}},P={clear:()=>{N.clear()},addEvent:t=>N.addEvent(t),finish:()=>N.finish(),compress:t=>function(t){return q(K(t))}(t)};addEventListener("message",function(t){const n=t.data.method,r=t.data.id,e=t.data.arg;if(n in P&&"function"==typeof P[n])try{const t=P[n](e);postMessage({id:r,method:n,success:!0,response:t})}catch(t){postMessage({id:r,method:n,success:!1,response:t.message}),console.error(t)}}),postMessage({id:void 0,method:"init",success:!0,response:void 0});';function jg(){const e=new Blob([qg]);return URL.createObjectURL(e)}const mo=["log","warn","error"],xn="[Replay] ";function Dr(e,t="info"){je({category:"console",data:{logger:"replay"},level:t,message:`${xn}${e}`},{level:t})}function Vg(){let e=!1,t=!1;const n={exception:()=>{},infoTick:()=>{},setConfig:r=>{e=!!r.captureExceptions,t=!!r.traceInternals}};return C?(mo.forEach(r=>{n[r]=(...s)=>{m[r](xn,...s),t&&Dr(s.join(""),ka(r))}}),n.exception=(r,...s)=>{s.length&&n.error&&n.error(...s),m.error(xn,r),e?Ou(r,{mechanism:{handled:!0,type:"auto.function.replay.debug"}}):t&&Dr(r,"error")},n.infoTick=(...r)=>{m.log(xn,...r),t&&setTimeout(()=>Dr(r[0]),0)}):mo.forEach(r=>{n[r]=()=>{}}),n}const M=Vg();class Vs extends Error{constructor(){super(`Event buffer exceeded maximum size of ${Fs}.`)}}class Mc{constructor(){this.events=[],this._totalSize=0,this.hasCheckout=!1,this.waitForCheckout=!1}get hasEvents(){return this.events.length>0}get type(){return"sync"}destroy(){this.events=[]}async addEvent(t){const n=JSON.stringify(t).length;if(this._totalSize+=n,this._totalSize>Fs)throw new Vs;this.events.push(t)}finish(){return new Promise(t=>{const n=this.events;this.clear(),t(JSON.stringify(n))})}clear(){this.events=[],this._totalSize=0,this.hasCheckout=!1}getEarliestTimestamp(){const t=this.events.map(n=>n.timestamp).sort()[0];return t?zs(t):null}}class Gg{constructor(t){this._worker=t,this._id=0}ensureReady(){return this._ensureReadyPromise?this._ensureReadyPromise:(this._ensureReadyPromise=new Promise((t,n)=>{this._worker.addEventListener("message",({data:r})=>{r.success?t():n()},{once:!0}),this._worker.addEventListener("error",r=>{n(r)},{once:!0})}),this._ensureReadyPromise)}destroy(){C&&M.log("Destroying compression worker"),this._worker.terminate()}postMessage(t,n){const r=this._getAndIncrementId();return new Promise((s,i)=>{const o=({data:c})=>{const a=c;if(a.method===t&&a.id===r){if(this._worker.removeEventListener("message",o),!a.success){C&&M.error("Error in compression worker: ",a.response),i(new Error("Error in compression worker"));return}s(a.response)}};this._worker.addEventListener("message",o),this._worker.postMessage({id:r,method:t,arg:n})})}_getAndIncrementId(){return this._id++}}class Yg{constructor(t){this._worker=new Gg(t),this._earliestTimestamp=null,this._totalSize=0,this.hasCheckout=!1,this.waitForCheckout=!1}get hasEvents(){return!!this._earliestTimestamp}get type(){return"worker"}ensureReady(){return this._worker.ensureReady()}destroy(){this._worker.destroy()}addEvent(t){const n=zs(t.timestamp);(!this._earliestTimestamp||n<this._earliestTimestamp)&&(this._earliestTimestamp=n);const r=JSON.stringify(t);return this._totalSize+=r.length,this._totalSize>Fs?Promise.reject(new Vs):this._sendEventToWorker(r)}finish(){return this._finishRequest()}clear(){this._earliestTimestamp=null,this._totalSize=0,this.hasCheckout=!1,this._worker.postMessage("clear").then(null,t=>{C&&M.exception(t,'Sending "clear" message to worker failed',t)})}getEarliestTimestamp(){return this._earliestTimestamp}_sendEventToWorker(t){return this._worker.postMessage("addEvent",t)}async _finishRequest(){const t=await this._worker.postMessage("finish");return this._earliestTimestamp=null,this._totalSize=0,t}}class Jg{constructor(t){this._fallback=new Mc,this._compression=new Yg(t),this._used=this._fallback,this._ensureWorkerIsLoadedPromise=this._ensureWorkerIsLoaded()}get waitForCheckout(){return this._used.waitForCheckout}get type(){return this._used.type}get hasEvents(){return this._used.hasEvents}get hasCheckout(){return this._used.hasCheckout}set hasCheckout(t){this._used.hasCheckout=t}set waitForCheckout(t){this._used.waitForCheckout=t}destroy(){this._fallback.destroy(),this._compression.destroy()}clear(){return this._used.clear()}getEarliestTimestamp(){return this._used.getEarliestTimestamp()}addEvent(t){return this._used.addEvent(t)}async finish(){return await this.ensureWorkerIsLoaded(),this._used.finish()}ensureWorkerIsLoaded(){return this._ensureWorkerIsLoadedPromise}async _ensureWorkerIsLoaded(){try{await this._compression.ensureReady()}catch(t){C&&M.exception(t,"Failed to load the compression worker, falling back to simple buffer");return}await this._switchToCompressionWorker()}async _switchToCompressionWorker(){const{events:t,hasCheckout:n,waitForCheckout:r}=this._fallback,s=[];for(const i of t)s.push(this._compression.addEvent(i));this._compression.hasCheckout=n,this._compression.waitForCheckout=r,this._used=this._compression;try{await Promise.all(s),this._fallback.clear()}catch(i){C&&M.exception(i,"Failed to add events when switching buffers.")}}}function Kg({useCompression:e,workerUrl:t}){if(e&&window.Worker){const n=Xg(t);if(n)return n}return C&&M.log("Using simple buffer"),new Mc}function Xg(e){try{const t=e||Qg();if(!t)return;C&&M.log(`Using compression worker${e?` from ${e}`:""}`);const n=new Worker(t);return new Jg(n)}catch(t){C&&M.exception(t,"Failed to create compression worker")}}function Qg(){return typeof __SENTRY_EXCLUDE_REPLAY_WORKER__>"u"||!__SENTRY_EXCLUDE_REPLAY_WORKER__?jg():""}function Gs(){try{return"sessionStorage"in Z&&!!Z.sessionStorage}catch{return!1}}function Zg(e){e_(),e.session=void 0}function e_(){if(Gs())try{Z.sessionStorage.removeItem(Ls)}catch{}}function Ac(e){return e===void 0?!1:Math.random()<e}function hr(e){if(Gs())try{Z.sessionStorage.setItem(Ls,JSON.stringify(e))}catch{}}function xc(e){const t=Date.now(),n=e.id||Me(),r=e.started||t,s=e.lastActivity||t,i=e.segmentId||0,o=e.sampled,c=e.previousSessionId,a=e.dirty||!1;return{id:n,started:r,lastActivity:s,segmentId:i,sampled:o,previousSessionId:c,dirty:a}}function t_(e,t){return Ac(e)?"session":t?"buffer":!1}function go({sessionSampleRate:e,allowBuffering:t,stickySession:n=!1},{previousSessionId:r}={}){const s=t_(e,t),i=xc({sampled:s,previousSessionId:r});return n&&hr(i),i}function n_(){if(!Gs())return null;try{const e=Z.sessionStorage.getItem(Ls);if(!e)return null;const t=JSON.parse(e);return C&&M.infoTick("Loading existing session"),xc(t)}catch{return null}}function ss(e,t,n=+new Date){return e===null||t===void 0||t<0?!0:t===0?!1:e+t<=n}function Oc(e,{maxReplayDuration:t,sessionIdleExpire:n,targetTime:r=Date.now()}){return ss(e.started,t,r)||ss(e.lastActivity,n,r)}function Nc(e,{sessionIdleExpire:t,maxReplayDuration:n}){return!(!Oc(e,{sessionIdleExpire:t,maxReplayDuration:n})||e.sampled==="buffer"&&e.segmentId===0)}function Fr({sessionIdleExpire:e,maxReplayDuration:t,previousSessionId:n},r){const s=r.stickySession&&n_();return s?Nc(s,{sessionIdleExpire:e,maxReplayDuration:t})?(C&&M.infoTick("Session in sessionStorage is expired, creating new one..."),go(r,{previousSessionId:s.id})):s:(C&&M.infoTick("Creating new session"),go(r,{previousSessionId:n}))}function r_(e){return e.type===L.Custom}function Ys(e,t,n){return Lc(e,t)?(Pc(e,t,n),!0):!1}function s_(e,t,n){return Lc(e,t)?Pc(e,t,n):Promise.resolve(null)}async function Pc(e,t,n){const{eventBuffer:r}=e;if(!r||r.waitForCheckout&&!n)return null;const s=e.recordingMode==="buffer";try{n&&s&&r.clear(),n&&(r.hasCheckout=!0,r.waitForCheckout=!1);const i=e.getOptions(),o=i_(t,i.beforeAddRecordingEvent);return o?await r.addEvent(o):void 0}catch(i){const o=i&&i instanceof Vs,c=o?"addEventSizeExceeded":"addEvent",a=$();if(a){const u=o?"buffer_overflow":"internal_sdk_error";a.recordDroppedEvent(u,"replay")}if(o&&s)return r.clear(),r.waitForCheckout=!0,null;e.handleException(i),await e.stop({reason:c})}}function Lc(e,t){if(!e.eventBuffer||e.isPaused()||!e.isEnabled())return!1;const n=zs(t.timestamp);return n+e.timeouts.sessionIdlePause<Date.now()?!1:n>e.getContext().initialTimestamp+e.getOptions().maxReplayDuration?(C&&M.infoTick(`Skipping event with timestamp ${n} because it is after maxReplayDuration`),!1):!0}function i_(e,t){try{if(typeof t=="function"&&r_(e))return t(e)}catch(n){return C&&M.exception(n,"An error occurred in the `beforeAddRecordingEvent` callback, skipping the event..."),null}return e}function Js(e){return!e.type}function is(e){return e.type==="transaction"}function o_(e){return e.type==="replay_event"}function _o(e){return e.type==="feedback"}function a_(e){return(t,n)=>{if(!e.isEnabled()||!Js(t)&&!is(t))return;const r=n.statusCode;if(!(!r||r<200||r>=300)){if(is(t)){c_(e,t);return}u_(e,t)}}}function c_(e,t){const n=e.getContext();t.contexts?.trace?.trace_id&&n.traceIds.size<100&&n.traceIds.add(t.contexts.trace.trace_id)}function u_(e,t){const n=e.getContext();if(t.event_id&&n.errorIds.size<100&&n.errorIds.add(t.event_id),e.recordingMode!=="buffer"||!t.tags||!t.tags.replayId)return;const{beforeErrorSampling:r}=e.getOptions();typeof r=="function"&&!r(t)||sn(async()=>{try{await e.sendBufferedReplayOrFlush()}catch(s){e.handleException(s)}})}function l_(e){return t=>{!e.isEnabled()||!Js(t)||d_(e,t)}}function d_(e,t){const n=t.exception?.values?.[0]?.value;if(typeof n=="string"&&(n.match(/(reactjs\.org\/docs\/error-decoder\.html\?invariant=|react\.dev\/errors\/)(418|419|422|423|425)/)||n.match(/(does not match server-rendered HTML|Hydration failed because)/i))){const r=xe({category:"replay.hydrate-error",data:{url:Xt()}});an(e,r)}}function f_(e){const t=$();t&&t.on("beforeAddBreadcrumb",n=>p_(e,n))}function p_(e,t){if(!e.isEnabled()||!Dc(t))return;const n=h_(t);n&&an(e,n)}function h_(e){return!Dc(e)||["fetch","xhr","sentry.event","sentry.transaction"].includes(e.category)||e.category.startsWith("ui.")?null:e.category==="console"?m_(e):xe(e)}function m_(e){const t=e.data?.arguments;if(!Array.isArray(t)||t.length===0)return xe(e);let n=!1;const r=t.map(s=>{if(!s)return s;if(typeof s=="string")return s.length>mn?(n=!0,`${s.slice(0,mn)}…`):s;if(typeof s=="object")try{const i=tr(s,7);return JSON.stringify(i).length>mn?(n=!0,`${JSON.stringify(i,null,2).slice(0,mn)}…`):i}catch{}return s});return xe({...e,data:{...e.data,arguments:r,...n?{_meta:{warnings:["CONSOLE_ARG_TRUNCATED"]}}:{}}})}function Dc(e){return!!e.category}function g_(e,t){return e.type||!e.exception?.values?.length?!1:!!t.originalException?.__rrweb__}function Fc(){const e=te().getPropagationContext().dsc;e&&delete e.replay_id;const t=de();if(t){const n=De(t);delete n.replay_id}}function __(e,t){e.triggerUserActivity(),e.addUpdate(()=>t.timestamp?(e.throttledAddEvent({type:L.Custom,timestamp:t.timestamp*1e3,data:{tag:"breadcrumb",payload:{timestamp:t.timestamp,type:"default",category:"sentry.feedback",data:{feedbackId:t.event_id}}}}),!1):!0)}function S_(e,t){return e.recordingMode!=="buffer"||t.message===Ds||!t.exception||t.type?!1:Ac(e.getOptions().errorSampleRate)}function y_(e){return Object.assign((t,n)=>{if(!e.isEnabled()||e.isPaused())return t;if(o_(t))return delete t.breadcrumbs,t;if(!Js(t)&&!is(t)&&!_o(t))return t;if(!e.checkAndHandleExpiredSession())return Fc(),t;if(_o(t))return e.flush(),t.contexts.feedback.replay_id=e.getSessionId(),__(e,t),t;if(g_(t,n)&&!e.getOptions()._experiments.captureExceptions)return C&&M.log("Ignoring error from rrweb internals",t),null;const s=S_(e,t);if((s||e.recordingMode==="session")&&(t.tags={...t.tags,replayId:e.getSessionId()}),s&&e.recordingMode==="buffer"&&e.session?.sampled==="buffer"){const o=e.session;o.dirty=!0,e.getOptions().stickySession&&hr(o)}return t},{id:"Replay"})}function mr(e,t){return t.map(({type:n,start:r,end:s,name:i,data:o})=>{const c=e.throttledAddEvent({type:L.Custom,timestamp:r,data:{tag:"performanceSpan",payload:{op:n,description:i,startTimestamp:r,endTimestamp:s,data:o}}});return typeof c=="string"?Promise.resolve(null):c})}function E_(e){const{from:t,to:n}=e,r=Date.now()/1e3;return{type:"navigation.push",start:r,end:r,name:n,data:{previous:t}}}function b_(e){return t=>{if(!e.isEnabled())return;const n=E_(t);n!==null&&(e.getContext().urls.push(n.name),e.triggerUserActivity(),e.addUpdate(()=>(mr(e,[n]),!1)))}}function v_(e,t){return C&&e.getOptions()._experiments.traceInternals?!1:td(t,$())}function Bc(e,t){e.isEnabled()&&t!==null&&(v_(e,t.name)||e.addUpdate(()=>(mr(e,[t]),!0)))}function gr(e){if(!e)return;const t=new TextEncoder;try{if(typeof e=="string")return t.encode(e).length;if(e instanceof URLSearchParams)return t.encode(e.toString()).length;if(e instanceof FormData){const n=Xa(e);return t.encode(n).length}if(e instanceof Blob)return e.size;if(e instanceof ArrayBuffer)return e.byteLength}catch{}}function Uc(e){if(!e)return;const t=parseInt(e,10);return isNaN(t)?void 0:t}function Xn(e,t){if(!e)return{headers:{},size:void 0,_meta:{warnings:[t]}};const n={...e._meta},r=n.warnings||[];return n.warnings=[...r,t],e._meta=n,e}function Hc(e,t){if(!t)return null;const{startTimestamp:n,endTimestamp:r,url:s,method:i,statusCode:o,request:c,response:a}=t;return{type:e,start:n/1e3,end:r/1e3,name:s,data:{method:i,statusCode:o,request:c,response:a}}}function Vt(e){return{headers:{},size:e,_meta:{warnings:["URL_SKIPPED"]}}}function $e(e,t,n){if(!t&&Object.keys(e).length===0)return;if(!t)return{headers:e};if(!n)return{headers:e,size:t};const r={headers:e,size:t},{body:s,warnings:i}=T_(n);return r.body=s,i?.length&&(r._meta={warnings:i}),r}function os(e,t){return Object.entries(e).reduce((n,[r,s])=>{const i=r.toLowerCase();return t.includes(i)&&e[r]&&(n[i]=s),n},{})}function T_(e){if(!e||typeof e!="string")return{body:e};const t=e.length>Ki,n=I_(e);if(t){const r=e.slice(0,Ki);return n?{body:r,warnings:["MAYBE_JSON_TRUNCATED"]}:{body:`${r}…`,warnings:["TEXT_TRUNCATED"]}}if(n)try{return{body:JSON.parse(e)}}catch{}return{body:e}}function I_(e){const t=e[0],n=e[e.length-1];return t==="["&&n==="]"||t==="{"&&n==="}"}function Qn(e,t){const n=w_(e);return Pe(n,t)}function w_(e,t=Z.document.baseURI){if(e.startsWith("http://")||e.startsWith("https://")||e.startsWith(Z.location.origin))return e;const n=new URL(e,t);if(n.origin!==new URL(t).origin)return e;const r=n.href;return!e.endsWith("/")&&r.endsWith("/")?r.slice(0,-1):r}async function k_(e,t,n){try{const r=await C_(e,t,n),s=Hc("resource.fetch",r);Bc(n.replay,s)}catch(r){C&&M.exception(r,"Failed to capture fetch breadcrumb")}}function R_(e,t){const{input:n,response:r}=t,s=n?Za(n):void 0,i=gr(s),o=r?Uc(r.headers.get("content-length")):void 0;i!==void 0&&(e.data.request_body_size=i),o!==void 0&&(e.data.response_body_size=o)}async function C_(e,t,n){const r=Date.now(),{startTimestamp:s=r,endTimestamp:i=r}=t,{url:o,method:c,status_code:a=0,request_body_size:u,response_body_size:d}=e.data,l=Qn(o,n.networkDetailAllowUrls)&&!Qn(o,n.networkDetailDenyUrls),f=l?M_(n,t.input,u):Vt(u),p=await A_(l,n,t.response,d);return{startTimestamp:s,endTimestamp:i,url:o,method:c,statusCode:a,request:f,response:p}}function M_({networkCaptureBodies:e,networkRequestHeaders:t},n,r){const s=n?N_(n,t):{};if(!e)return $e(s,r,void 0);const i=Za(n),[o,c]=Qa(i,M),a=$e(s,r,o);return c?Xn(a,c):a}async function A_(e,{networkCaptureBodies:t,networkResponseHeaders:n},r,s){if(!e&&s!==void 0)return Vt(s);const i=r?$c(r.headers,n):{};if(!r||!t&&s!==void 0)return $e(i,s,void 0);const[o,c]=await O_(r),a=x_(o,{networkCaptureBodies:t,responseBodySize:s,captureDetails:e,headers:i});return c?Xn(a,c):a}function x_(e,{networkCaptureBodies:t,responseBodySize:n,captureDetails:r,headers:s}){try{const i=e?.length&&n===void 0?gr(e):n;return r?t?$e(s,i,e):$e(s,i,void 0):Vt(i)}catch(i){return C&&M.exception(i,"Failed to serialize response body"),$e(s,n,void 0)}}async function O_(e){const t=P_(e);if(!t)return[void 0,"BODY_PARSE_ERROR"];try{return[await L_(t)]}catch(n){return n instanceof Error&&n.message.indexOf("Timeout")>-1?(C&&M.warn("Parsing text body from response timed out"),[void 0,"BODY_PARSE_TIMEOUT"]):(C&&M.exception(n,"Failed to get text body from response"),[void 0,"BODY_PARSE_ERROR"])}}function $c(e,t){const n={};return t.forEach(r=>{e.get(r)&&(n[r]=e.get(r))}),n}function N_(e,t){return e.length===1&&typeof e[0]!="string"?So(e[0],t):e.length===2?So(e[1],t):{}}function So(e,t){if(!e)return{};const n=e.headers;return n?n instanceof Headers?$c(n,t):Array.isArray(n)?{}:os(n,t):{}}function P_(e){try{return e.clone()}catch(t){C&&M.exception(t,"Failed to clone response body")}}function L_(e){return new Promise((t,n)=>{const r=sn(()=>n(new Error("Timeout while trying to read response body")),500);D_(e).then(s=>t(s),s=>n(s)).finally(()=>clearTimeout(r))})}async function D_(e){return await e.text()}async function F_(e,t,n){try{const r=U_(e,t,n),s=Hc("resource.xhr",r);Bc(n.replay,s)}catch(r){C&&M.exception(r,"Failed to capture xhr breadcrumb")}}function B_(e,t){const{xhr:n,input:r}=t;if(!n)return;const s=gr(r),i=n.getResponseHeader("content-length")?Uc(n.getResponseHeader("content-length")):W_(n.response,n.responseType);s!==void 0&&(e.data.request_body_size=s),i!==void 0&&(e.data.response_body_size=i)}function U_(e,t,n){const r=Date.now(),{startTimestamp:s=r,endTimestamp:i=r,input:o,xhr:c}=t,{url:a,method:u,status_code:d=0,request_body_size:l,response_body_size:f}=e.data;if(!a)return null;if(!c||!Qn(a,n.networkDetailAllowUrls)||Qn(a,n.networkDetailDenyUrls)){const A=Vt(l),_=Vt(f);return{startTimestamp:s,endTimestamp:i,url:a,method:u,statusCode:d,request:A,response:_}}const p=c[Qe],h=p?os(p.request_headers,n.networkRequestHeaders):{},g=os(ec(c),n.networkResponseHeaders),[S,y]=n.networkCaptureBodies?Qa(o,M):[void 0],[T,B]=n.networkCaptureBodies?H_(c):[void 0],N=$e(h,l,S),z=$e(g,f,T);return{startTimestamp:s,endTimestamp:i,url:a,method:u,statusCode:d,request:y?Xn(N,y):N,response:B?Xn(z,B):z}}function H_(e){const t=[];try{return[e.responseText]}catch(n){t.push(n)}try{return $_(e.response,e.responseType)}catch(n){t.push(n)}return C&&M.warn("Failed to get xhr response body",...t),[void 0]}function $_(e,t){try{if(typeof e=="string")return[e];if(e instanceof Document)return[e.body.outerHTML];if(t==="json"&&e&&typeof e=="object")return[JSON.stringify(e)];if(!e)return[void 0]}catch(n){return C&&M.exception(n,"Failed to serialize body",e),[void 0,"BODY_PARSE_ERROR"]}return C&&M.log("Skipping network body because of body type",e),[void 0,"UNPARSEABLE_BODY_TYPE"]}function W_(e,t){try{const n=t==="json"&&e&&typeof e=="object"?JSON.stringify(e):e;return gr(n)}catch{return}}function z_(e){const t=$();try{const{networkDetailAllowUrls:n,networkDetailDenyUrls:r,networkCaptureBodies:s,networkRequestHeaders:i,networkResponseHeaders:o}=e.getOptions(),c={replay:e,networkDetailAllowUrls:n,networkDetailDenyUrls:r,networkCaptureBodies:s,networkRequestHeaders:i,networkResponseHeaders:o};t&&t.on("beforeAddBreadcrumb",(a,u)=>q_(c,a,u))}catch{}}function q_(e,t,n){if(t.data)try{j_(t)&&G_(n)&&(B_(t,n),F_(t,n,e)),V_(t)&&Y_(n)&&(R_(t,n),k_(t,n,e))}catch(r){C&&M.exception(r,"Error when enriching network breadcrumb")}}function j_(e){return e.category==="xhr"}function V_(e){return e.category==="fetch"}function G_(e){return e?.xhr}function Y_(e){return e?.response}function J_(e){const t=$();Ja(kg(e)),lr(b_(e)),f_(e),z_(e);const n=y_(e);xu(n),t&&(t.on("beforeSendEvent",l_(e)),t.on("afterSendEvent",a_(e)),t.on("createDsc",r=>{const s=e.getSessionId();s&&e.isEnabled()&&e.recordingMode==="session"&&e.checkAndHandleExpiredSession()&&(r.replay_id=s)}),t.on("spanStart",r=>{e.lastActiveSpan=r}),t.on("spanEnd",r=>{e.lastActiveSpan=r}),t.on("beforeSendFeedback",async(r,s)=>{const i=e.getSessionId();s?.includeReplay&&e.isEnabled()&&i&&r.contexts?.feedback&&(r.contexts.feedback.source==="api"&&await e.sendBufferedReplayOrFlush(),r.contexts.feedback.replay_id=i)}),t.on("openFeedbackWidget",async()=>{await e.sendBufferedReplayOrFlush()}))}async function K_(e){try{return Promise.all(mr(e,[X_(Z.performance.memory)]))}catch{return[]}}function X_(e){const{jsHeapSizeLimit:t,totalJSHeapSize:n,usedJSHeapSize:r}=e,s=Date.now()/1e3;return{type:"memory",name:"memory",start:s,end:s,data:{memory:{jsHeapSizeLimit:t,totalJSHeapSize:n,usedJSHeapSize:r}}}}function Q_(e,t,n){return ad(e,t,{...n,setTimeoutImpl:sn})}const yn=X.navigator;function Z_(){return/iPhone|iPad|iPod/i.test(yn?.userAgent??"")||/Macintosh/i.test(yn?.userAgent??"")&&yn?.maxTouchPoints&&yn?.maxTouchPoints>1?{sampling:{mousemove:!1}}:{}}function eS(e){let t=!1;return(n,r)=>{if(!e.checkAndHandleExpiredSession()){C&&M.warn("Received replay event after session expired.");return}const s=r||!t;t=!0,e.clickDetector&&bg(e.clickDetector,n),e.addUpdate(()=>{if(e.recordingMode==="buffer"&&s&&e.setInitialState(),!Ys(e,n,s))return!0;if(!s)return!1;const i=e.session;if(nS(e,s),e.recordingMode==="buffer"&&i&&e.eventBuffer&&!i.dirty){const o=e.eventBuffer.getEarliestTimestamp();o&&(C&&M.log(`Updating session start time to earliest event in buffer to ${new Date(o)}`),i.started=o,e.getOptions().stickySession&&hr(i))}return i?.previousSessionId||e.recordingMode==="session"&&e.flush(),!0})}}function tS(e){const t=e.getOptions();return{type:L.Custom,timestamp:Date.now(),data:{tag:"options",payload:{shouldRecordCanvas:e.isRecordingCanvas(),sessionSampleRate:t.sessionSampleRate,errorSampleRate:t.errorSampleRate,useCompressionOption:t.useCompression,blockAllMedia:t.blockAllMedia,maskAllText:t.maskAllText,maskAllInputs:t.maskAllInputs,useCompression:e.eventBuffer?e.eventBuffer.type==="worker":!1,networkDetailHasUrls:t.networkDetailAllowUrls.length>0,networkCaptureBodies:t.networkCaptureBodies,networkRequestHasHeaders:t.networkRequestHeaders.length>0,networkResponseHasHeaders:t.networkResponseHeaders.length>0}}}}function nS(e,t){!t||!e.session||e.session.segmentId!==0||Ys(e,tS(e),!1)}function rS(e){if(!e)return null;try{return e.nodeType===e.ELEMENT_NODE?e:e.parentElement}catch{return null}}function sS(e,t,n,r){return Be(sa(e,or(e),r,n),[[{type:"replay_event"},e],[{type:"replay_recording",length:typeof t=="string"?new TextEncoder().encode(t).length:t.length},t]])}function iS({recordingData:e,headers:t}){let n;const r=`${JSON.stringify(t)}
|
|
23
|
-
`;if(typeof e=="string")n=`${r}${e}`;else{const i=new TextEncoder().encode(r);n=new Uint8Array(i.length+e.length),n.set(i),n.set(e,i.length)}return n}async function oS({client:e,scope:t,replayId:n,event:r}){const s=typeof e._integrations=="object"&&e._integrations!==null&&!Array.isArray(e._integrations)?Object.keys(e._integrations):void 0,i={event_id:n,integrations:s};e.emit("preprocessEvent",r,i);const o=await jo(e.getOptions(),r,i,t,e,wt());if(!o)return null;e.emit("postprocessEvent",o,i),o.platform=o.platform||"javascript";const c=e.getSdkMetadata(),{name:a,version:u,settings:d}=c?.sdk||{};return o.sdk={...o.sdk,name:a||"sentry.javascript.unknown",version:u||"0.0.0",settings:d},o}async function aS({recordingData:e,replayId:t,segmentId:n,eventContext:r,timestamp:s,session:i}){const o=iS({recordingData:e,headers:{segment_id:n}}),{urls:c,errorIds:a,traceIds:u,initialTimestamp:d}=r,l=$(),f=te(),p=l?.getTransport(),h=l?.getDsn();if(!l||!p||!h||!i.sampled)return Promise.resolve({});const g={type:Fh,replay_start_timestamp:d/1e3,timestamp:s/1e3,error_ids:a,trace_ids:u,urls:c,replay_id:t,segment_id:n,replay_type:i.sampled},S=await oS({scope:f,client:l,replayId:t,event:g});if(!S)return l.recordDroppedEvent("event_processor","replay"),C&&M.log("An event processor returned `null`, will not send event."),Promise.resolve({});delete S.sdkProcessingMetadata;const y=sS(S,o,h,l.getOptions().tunnel);let T;try{T=await p.send(y)}catch(N){const z=new Error(Ds);try{z.cause=N}catch{}throw z}if(typeof T.statusCode=="number"&&(T.statusCode<200||T.statusCode>=300))throw new Wc(T.statusCode);const B=ga({},T);if(ma(B,"replay"))throw new Ks(B);return T}class Wc extends Error{constructor(t){super(`Transport returned status code ${t}`)}}class Ks extends Error{constructor(t){super("Rate limit hit"),this.rateLimits=t}}async function zc(e,t={count:0,interval:zh}){const{recordingData:n,onError:r}=e;if(n.length)try{return await aS(e),!0}catch(s){if(s instanceof Wc||s instanceof Ks)throw s;if(ea("Replays",{_retryCount:t.count}),r&&r(s),t.count>=qh){const i=new Error(`${Ds} - max retries exceeded`);try{i.cause=s}catch{}throw i}return t.interval*=++t.count,new Promise((i,o)=>{sn(async()=>{try{await zc(e,t),i(!0)}catch(c){o(c)}},t.interval)})}}const qc="__THROTTLED",cS="__SKIPPED";function uS(e,t,n){const r=new Map,s=c=>{const a=c-n;r.forEach((u,d)=>{d<a&&r.delete(d)})},i=()=>[...r.values()].reduce((c,a)=>c+a,0);let o=!1;return(...c)=>{const a=Math.floor(Date.now()/1e3);if(s(a),i()>=t){const d=o;return o=!0,d?cS:qc}o=!1;const u=r.get(a)||0;return r.set(a,u+1),e(...c)}}class lS{constructor({options:t,recordingOptions:n}){this.eventBuffer=null,this.performanceEntries=[],this.replayPerformanceEntries=[],this.recordingMode="session",this.timeouts={sessionIdlePause:Bh,sessionIdleExpire:Uh},this._lastActivity=Date.now(),this._isEnabled=!1,this._isPaused=!1,this._requiresManualStart=!1,this._hasInitializedCoreListeners=!1,this._context={errorIds:new Set,traceIds:new Set,urls:[],initialTimestamp:Date.now(),initialUrl:""},this._recordingOptions=n,this._options=t,this._debouncedFlush=Q_(()=>this._flush(),this._options.flushMinDelay,{maxWait:this._options.flushMaxDelay}),this._throttledAddEvent=uS((o,c)=>s_(this,o,c),300,5);const{slowClickTimeout:r,slowClickIgnoreSelectors:s}=this.getOptions(),i=r?{threshold:Math.min(jh,r),timeout:r,scrollTimeout:Vh,ignoreSelector:s?s.join(","):""}:void 0;if(i&&(this.clickDetector=new _g(this,i)),C){const o=t._experiments;M.setConfig({captureExceptions:!!o.captureExceptions,traceInternals:!!o.traceInternals})}this._handleVisibilityChange=()=>{Z.document.visibilityState==="visible"?this._doChangeToForegroundTasks():this._doChangeToBackgroundTasks()},this._handleWindowBlur=()=>{const o=xe({category:"ui.blur"});this._doChangeToBackgroundTasks(o)},this._handleWindowFocus=()=>{const o=xe({category:"ui.focus"});this._doChangeToForegroundTasks(o)},this._handleKeyboardEvent=o=>{Ag(this,o)}}getContext(){return this._context}isEnabled(){return this._isEnabled}isPaused(){return this._isPaused}isRecordingCanvas(){return!!this._canvas}getOptions(){return this._options}handleException(t){C&&M.exception(t),this._options.onError&&this._options.onError(t)}initializeSampling(t){const{errorSampleRate:n,sessionSampleRate:r}=this._options,s=n<=0&&r<=0;if(this._requiresManualStart=s,!s){if(this._initializeSessionForSampling(t),!this.session){C&&M.exception(new Error("Unable to initialize and create session"));return}this.session.sampled!==!1&&(this.recordingMode=this.session.sampled==="buffer"&&this.session.segmentId===0?"buffer":"session",C&&M.infoTick(`Starting replay in ${this.recordingMode} mode`),this._initializeRecording())}}start(){if(this._isEnabled&&this.recordingMode==="session"){C&&M.log("Recording is already in progress");return}if(this._isEnabled&&this.recordingMode==="buffer"){C&&M.log("Buffering is in progress, call `flush()` to save the replay");return}C&&M.infoTick("Starting replay in session mode"),this._updateUserActivity();const t=Fr({maxReplayDuration:this._options.maxReplayDuration,sessionIdleExpire:this.timeouts.sessionIdleExpire},{stickySession:this._options.stickySession,sessionSampleRate:1,allowBuffering:!1});this.session=t,this.recordingMode="session",this._initializeRecording()}startBuffering(){if(this._isEnabled){C&&M.log("Buffering is in progress, call `flush()` to save the replay");return}C&&M.infoTick("Starting replay in buffer mode");const t=Fr({sessionIdleExpire:this.timeouts.sessionIdleExpire,maxReplayDuration:this._options.maxReplayDuration},{stickySession:this._options.stickySession,sessionSampleRate:0,allowBuffering:!0});this.session=t,this.recordingMode="buffer",this._initializeRecording()}startRecording(){try{const t=this._canvas;this._stopRecording=Le({...this._recordingOptions,...this.recordingMode==="buffer"?{checkoutEveryNms:Wh}:this._options._experiments.continuousCheckout&&{checkoutEveryNms:Math.max(36e4,this._options._experiments.continuousCheckout)},emit:eS(this),...Z_(),onMutation:this._onMutationHandler.bind(this),...t?{recordCanvas:t.recordCanvas,getCanvasManager:t.getCanvasManager,sampling:t.sampling,dataURLOptions:t.dataURLOptions}:{}})}catch(t){this.handleException(t)}}stopRecording(){try{return this._stopRecording&&(this._stopRecording(),this._stopRecording=void 0),!0}catch(t){return this.handleException(t),!1}}async stop({forceFlush:t=!1,reason:n}={}){if(this._isEnabled){this._isEnabled=!1,this.recordingMode="buffer";try{C&&M.log(`Stopping Replay${n?` triggered by ${n}`:""}`),Fc(),this._removeListeners(),this.stopRecording(),this._debouncedFlush.cancel(),t&&await this._flush({force:!0}),this.eventBuffer?.destroy(),this.eventBuffer=null,Zg(this)}catch(r){this.handleException(r)}}}pause(){this._isPaused||(this._isPaused=!0,this.stopRecording(),C&&M.log("Pausing replay"))}resume(){!this._isPaused||!this._checkSession()||(this._isPaused=!1,this.startRecording(),C&&M.log("Resuming replay"))}async sendBufferedReplayOrFlush({continueRecording:t=!0}={}){if(this.recordingMode==="session")return this.flushImmediate();const n=Date.now();C&&M.log("Converting buffer to session"),await this.flushImmediate();const r=this.stopRecording();!t||!r||this.recordingMode!=="session"&&(this.recordingMode="session",this.session&&(this.session.dirty=!1,this._updateUserActivity(n),this._updateSessionActivity(n),this._maybeSaveSession()),this.startRecording())}addUpdate(t){const n=t();this.recordingMode==="buffer"||!this._isEnabled||n!==!0&&this._debouncedFlush()}triggerUserActivity(){if(this._updateUserActivity(),!this._stopRecording){if(!this._checkSession())return;this.resume();return}this.checkAndHandleExpiredSession(),this._updateSessionActivity()}updateUserActivity(){this._updateUserActivity(),this._updateSessionActivity()}conditionalFlush(){return this.recordingMode==="buffer"?Promise.resolve():this.flushImmediate()}flush(){return this._debouncedFlush()}flushImmediate(){return this._debouncedFlush(),this._debouncedFlush.flush()}cancelFlush(){this._debouncedFlush.cancel()}getSessionId(t){if(!(t&&this.session?.sampled===!1))return this.session?.id}checkAndHandleExpiredSession(){if(this._lastActivity&&ss(this._lastActivity,this.timeouts.sessionIdlePause)&&this.session&&this.session.sampled==="session"){this.pause();return}return!!this._checkSession()}setInitialState(){const t=`${Z.location.pathname}${Z.location.hash}${Z.location.search}`,n=`${Z.location.origin}${t}`;this.performanceEntries=[],this.replayPerformanceEntries=[],this._clearContext(),this._context.initialUrl=n,this._context.initialTimestamp=Date.now(),this._context.urls.push(n)}throttledAddEvent(t,n){const r=this._throttledAddEvent(t,n);if(r===qc){const s=xe({category:"replay.throttled"});this.addUpdate(()=>!Ys(this,{type:lg,timestamp:s.timestamp||0,data:{tag:"breadcrumb",payload:s,metric:!0}}))}return r}getCurrentRoute(){const t=this.lastActiveSpan||de(),n=t&&le(t),s=(n&&H(n).data||{})[Re];if(!(!n||!s||!["route","custom"].includes(s)))return H(n).description}_initializeRecording(){this.setInitialState(),this._updateSessionActivity(),this.eventBuffer=Kg({useCompression:this._options.useCompression,workerUrl:this._options.workerUrl}),this._removeListeners(),this._addListeners(),this._isEnabled=!0,this._isPaused=!1,this.startRecording()}_initializeSessionForSampling(t){const n=this._options.errorSampleRate>0,r=Fr({sessionIdleExpire:this.timeouts.sessionIdleExpire,maxReplayDuration:this._options.maxReplayDuration,previousSessionId:t},{stickySession:this._options.stickySession,sessionSampleRate:this._options.sessionSampleRate,allowBuffering:n});this.session=r}_checkSession(){if(!this.session)return!1;const t=this.session;return Nc(t,{sessionIdleExpire:this.timeouts.sessionIdleExpire,maxReplayDuration:this._options.maxReplayDuration})?(this._refreshSession(t),!1):!0}async _refreshSession(t){this._isEnabled&&(await this.stop({reason:"refresh session"}),this.initializeSampling(t.id))}_addListeners(){try{Z.document.addEventListener("visibilitychange",this._handleVisibilityChange),Z.addEventListener("blur",this._handleWindowBlur),Z.addEventListener("focus",this._handleWindowFocus),Z.addEventListener("keydown",this._handleKeyboardEvent),this.clickDetector&&this.clickDetector.addListeners(),this._hasInitializedCoreListeners||(J_(this),this._hasInitializedCoreListeners=!0)}catch(t){this.handleException(t)}this._performanceCleanupCallback=zg(this)}_removeListeners(){try{Z.document.removeEventListener("visibilitychange",this._handleVisibilityChange),Z.removeEventListener("blur",this._handleWindowBlur),Z.removeEventListener("focus",this._handleWindowFocus),Z.removeEventListener("keydown",this._handleKeyboardEvent),this.clickDetector&&this.clickDetector.removeListeners(),this._performanceCleanupCallback&&this._performanceCleanupCallback()}catch(t){this.handleException(t)}}_doChangeToBackgroundTasks(t){!this.session||Oc(this.session,{maxReplayDuration:this._options.maxReplayDuration,sessionIdleExpire:this.timeouts.sessionIdleExpire})||(t&&this._createCustomBreadcrumb(t),this.conditionalFlush())}_doChangeToForegroundTasks(t){if(!this.session)return;if(!this.checkAndHandleExpiredSession()){C&&M.log("Document has become active, but session has expired");return}t&&this._createCustomBreadcrumb(t)}_updateUserActivity(t=Date.now()){this._lastActivity=t}_updateSessionActivity(t=Date.now()){this.session&&(this.session.lastActivity=t,this._maybeSaveSession())}_createCustomBreadcrumb(t){this.addUpdate(()=>{this.throttledAddEvent({type:L.Custom,timestamp:t.timestamp||0,data:{tag:"breadcrumb",payload:t}})})}_addPerformanceEntries(){let t=Pg(this.performanceEntries).concat(this.replayPerformanceEntries);if(this.performanceEntries=[],this.replayPerformanceEntries=[],this._requiresManualStart){const n=this._context.initialTimestamp/1e3;t=t.filter(r=>r.start>=n)}return Promise.all(mr(this,t))}_clearContext(){this._context.errorIds.clear(),this._context.traceIds.clear(),this._context.urls=[]}_updateInitialTimestampFromEventBuffer(){const{session:t,eventBuffer:n}=this;if(!t||!n||this._requiresManualStart||t.segmentId)return;const r=n.getEarliestTimestamp();r&&r<this._context.initialTimestamp&&(this._context.initialTimestamp=r)}_popEventContext(){const t={initialTimestamp:this._context.initialTimestamp,initialUrl:this._context.initialUrl,errorIds:Array.from(this._context.errorIds),traceIds:Array.from(this._context.traceIds),urls:this._context.urls};return this._clearContext(),t}async _runFlush(){const t=this.getSessionId();if(!this.session||!this.eventBuffer||!t){C&&M.error("No session or eventBuffer found to flush.");return}if(await this._addPerformanceEntries(),!!this.eventBuffer?.hasEvents&&(await K_(this),!!this.eventBuffer&&t===this.getSessionId()))try{this._updateInitialTimestampFromEventBuffer();const n=Date.now();if(n-this._context.initialTimestamp>this._options.maxReplayDuration+3e4)throw new Error("Session is too long, not sending replay");const r=this._popEventContext(),s=this.session.segmentId++;this._maybeSaveSession();const i=await this.eventBuffer.finish();await zc({replayId:t,recordingData:i,segmentId:s,eventContext:r,session:this.session,timestamp:n,onError:o=>this.handleException(o)})}catch(n){this.handleException(n),this.stop({reason:"sendReplay"});const r=$();if(r){const s=n instanceof Ks?"ratelimit_backoff":"send_error";r.recordDroppedEvent(s,"replay")}}}async _flush({force:t=!1}={}){if(!this._isEnabled&&!t)return;if(!this.checkAndHandleExpiredSession()){C&&M.error("Attempting to finish replay event after session expired.");return}if(!this.session)return;const n=this.session.started,s=Date.now()-n;this._debouncedFlush.cancel();const i=s<this._options.minReplayDuration,o=s>this._options.maxReplayDuration+5e3;if(i||o){C&&M.log(`Session duration (${Math.floor(s/1e3)}s) is too ${i?"short":"long"}, not sending replay.`),i&&this._debouncedFlush();return}const c=this.eventBuffer;c&&this.session.segmentId===0&&!c.hasCheckout&&C&&M.log("Flushing initial segment without checkout.");const a=!!this._flushLock;this._flushLock||(this._flushLock=this._runFlush());try{await this._flushLock}catch(u){this.handleException(u)}finally{this._flushLock=void 0,a&&this._debouncedFlush()}}_maybeSaveSession(){this.session&&this._options.stickySession&&hr(this.session)}_onMutationHandler(t){const{ignoreMutations:n}=this._options._experiments;if(n?.length&&t.some(c=>{const a=rS(c.target),u=n.join(",");return a?.matches(u)}))return!1;const r=t.length,s=this._options.mutationLimit,i=this._options.mutationBreadcrumbLimit,o=s&&r>s;if(r>i||o){const c=xe({category:"replay.mutations",data:{count:r,limit:o}});this._createCustomBreadcrumb(c)}return o?(this.stop({reason:"mutationLimit",forceFlush:this.recordingMode==="session"}),!1):!0}}function xt(e,t){return[...e,...t].join(",")}function dS({mask:e,unmask:t,block:n,unblock:r,ignore:s}){const i=["base","iframe[srcdoc]:not([src])"],o=xt(e,[".sentry-mask","[data-sentry-mask]"]),c=xt(t,[]);return{maskTextSelector:o,unmaskTextSelector:c,blockSelector:xt(n,[".sentry-block","[data-sentry-block]",...i]),unblockSelector:xt(r,[]),ignoreSelector:xt(s,[".sentry-ignore","[data-sentry-ignore]",'input[type="file"]'])}}function fS({el:e,key:t,maskAttributes:n,maskAllText:r,privacyOptions:s,value:i}){return!r||s.unmaskTextSelector&&e.matches(s.unmaskTextSelector)?i:n.includes(t)||t==="value"&&e.tagName==="INPUT"&&["submit","button"].includes(e.getAttribute("type")||"")?i.replace(/[\S]/g,"*"):i}const yo='img,image,svg,video,object,picture,embed,map,audio,link[rel="icon"],link[rel="apple-touch-icon"]',pS=["content-length","content-type","accept"],hS=Symbol.for("sentry__originalRequestBody");let Eo=!1,bo=!1;function mS(){if(typeof Request>"u"||bo)return;const e=Request;try{const t=function(n,r){const s=new e(n,r);return r?.body!=null&&(s[hS]=r.body),s};t.prototype=e.prototype,X.Request=t,bo=!0}catch{}}const gS=(e=>new _S(e));class _S{constructor({flushMinDelay:t=Hh,flushMaxDelay:n=$h,minReplayDuration:r=Gh,maxReplayDuration:s=Xi,stickySession:i=!0,useCompression:o=!0,workerUrl:c,_experiments:a={},maskAllText:u=!0,maskAllInputs:d=!0,blockAllMedia:l=!0,mutationBreadcrumbLimit:f=750,mutationLimit:p=1e4,slowClickTimeout:h=7e3,slowClickIgnoreSelectors:g=[],networkDetailAllowUrls:S=[],networkDetailDenyUrls:y=[],networkCaptureBodies:T=!0,networkRequestHeaders:B=[],networkResponseHeaders:N=[],mask:z=[],maskAttributes:A=["title","placeholder","aria-label"],unmask:_=[],block:I=[],unblock:Y=[],ignore:E=[],maskFn:k,beforeAddRecordingEvent:F,beforeErrorSampling:q,onError:P,attachRawBodyFromRequest:ce=!1}={}){this.name="Replay";const J=dS({mask:z,unmask:_,block:I,unblock:Y,ignore:E});if(this._recordingOptions={maskAllInputs:d,maskAllText:u,maskInputOptions:{password:!0},maskTextFn:k,maskInputFn:k,maskAttributeFn:(ee,b,G)=>fS({maskAttributes:A,maskAllText:u,privacyOptions:J,key:ee,value:b,el:G}),...J,slimDOMOptions:"all",inlineStylesheet:!0,inlineImages:!1,collectFonts:!0,errorHandler:ee=>{try{ee.__rrweb__=!0}catch{}},recordCrossOriginIframes:!!a.recordCrossOriginIframes},this._initialOptions={flushMinDelay:t,flushMaxDelay:n,minReplayDuration:Math.min(r,Yh),maxReplayDuration:Math.min(s,Xi),stickySession:i,useCompression:o,workerUrl:c,blockAllMedia:l,maskAllInputs:d,maskAllText:u,mutationBreadcrumbLimit:f,mutationLimit:p,slowClickTimeout:h,slowClickIgnoreSelectors:g,networkDetailAllowUrls:S,networkDetailDenyUrls:y,networkCaptureBodies:T,networkRequestHeaders:vo(B),networkResponseHeaders:vo(N),beforeAddRecordingEvent:F,beforeErrorSampling:q,onError:P,attachRawBodyFromRequest:ce,_experiments:a},this._initialOptions.blockAllMedia&&(this._recordingOptions.blockSelector=this._recordingOptions.blockSelector?`${this._recordingOptions.blockSelector},${yo}`:yo,this._recordingOptions.ignoreCSSAttributes=new Set(["background-image"])),this._isInitialized&&qr())throw new Error("Multiple Sentry Session Replay instances are not supported");this._isInitialized=!0}get _isInitialized(){return Eo}set _isInitialized(t){Eo=t}afterAllSetup(t){!qr()||this._replay||(this._initialOptions.attachRawBodyFromRequest&&mS(),this._setup(t),this._initialize(t))}start(){this._replay&&this._replay.start()}startBuffering(){this._replay&&this._replay.startBuffering()}stop(){return this._replay?this._replay.stop({forceFlush:this._replay.recordingMode==="session"}):Promise.resolve()}flush(t){return this._replay?this._replay.isEnabled()?this._replay.sendBufferedReplayOrFlush(t):(this._replay.start(),Promise.resolve()):Promise.resolve()}getReplayId(t){if(this._replay?.isEnabled())return this._replay.getSessionId(t)}getRecordingMode(){if(this._replay?.isEnabled())return this._replay.recordingMode}_initialize(t){this._replay&&(this._maybeLoadFromReplayCanvasIntegration(t),this._replay.initializeSampling())}_setup(t){const n=SS(this._initialOptions,t);this._replay=new lS({options:n,recordingOptions:this._recordingOptions})}_maybeLoadFromReplayCanvasIntegration(t){try{const n=t.getIntegrationByName("ReplayCanvas");if(!n)return;this._replay._canvas=n.getOptions()}catch{}}}function SS(e,t){const n=t.getOptions(),r={sessionSampleRate:0,errorSampleRate:0,...e},s=Ut(n.replaysSessionSampleRate),i=Ut(n.replaysOnErrorSampleRate);return s==null&&i==null&&Kt(()=>{console.warn("Replay is disabled because neither `replaysSessionSampleRate` nor `replaysOnErrorSampleRate` are set.")}),s!=null&&(r.sessionSampleRate=s),i!=null&&(r.errorSampleRate=i),r}function vo(e){return[...pS,...e.map(t=>t.toLowerCase())]}function yS(e){return e.split(",").some(t=>t.trim().startsWith("sentry-"))}function jc(e){try{return new URL(e,D.location.origin).href}catch{return}}function ES(e){return e.entryType==="resource"&&"initiatorType"in e&&typeof e.nextHopProtocol=="string"&&(e.initiatorType==="fetch"||e.initiatorType==="xmlhttprequest")}function Vc(e){try{return new Headers(e)}catch{return}}const To=new WeakMap,Br=new Map,Gc={traceFetch:!0,traceXHR:!0,enableHTTPTimings:!0,trackFetchStreamPerformance:!1};function bS(e,t){const{traceFetch:n,traceXHR:r,trackFetchStreamPerformance:s,shouldCreateSpanForRequest:i,enableHTTPTimings:o,tracePropagationTargets:c,onRequestSpanStart:a,onRequestSpanEnd:u}={...Gc,...t},d=typeof i=="function"?i:h=>!0,l=h=>vS(h,c),f={},p=e.getOptions().propagateTraceparent;n&&(e.addEventProcessor(h=>(h.type==="transaction"&&h.spans&&h.spans.forEach(g=>{if(g.op==="http.client"){const S=Br.get(g.span_id);S&&(g.timestamp=S/1e3,Br.delete(g.span_id))}}),h)),s&&Gd(h=>{if(h.response){const g=To.get(h.response);g&&h.endTimestamp&&Br.set(g,h.endTimestamp)}}),Aa(h=>{const g=xd(h,d,l,f,{propagateTraceparent:p,onRequestSpanEnd:u});if(h.response&&h.fetchData.__span&&To.set(h.response,h.fetchData.__span),g){const S=jc(h.fetchData.url),y=S?tt(S).host:void 0;g.setAttributes({"http.url":S,"server.address":y}),o&&Io(g),a?.(g,{headers:h.headers})}})),r&&Ka(h=>{const g=TS(h,d,l,f,p,u);g&&(o&&Io(g),a?.(g,{headers:Vc(h.xhr.__sentry_xhr_v3__?.request_headers)}))})}function Io(e){const{url:t}=H(e).data;if(!t||typeof t!="string")return;const n=it("resource",({entries:r})=>{r.forEach(s=>{ES(s)&&s.name.endsWith(t)&&(e.setAttributes(Ya(s)),setTimeout(n))})})}function vS(e,t){const n=Xt();if(n){let r,s;try{r=new URL(e,n),s=new URL(n).origin}catch{return!1}const i=r.origin===s;return t?Pe(r.toString(),t)||i&&Pe(r.pathname,t):i}else{const r=!!e.match(/^\/(?!\/)/);return t?Pe(e,t):r}}function TS(e,t,n,r,s,i){const o=e.xhr,c=o?.[Qe];if(!o||o.__sentry_own_request__||!c)return;const{url:a,method:u}=c,d=Ce()&&t(a);if(e.endTimestamp&&d){const y=o.__sentry_xhr_span_id__;if(!y)return;const T=r[y];T&&c.status_code!==void 0&&(Yo(T,c.status_code),T.end(),i?.(T,{headers:Vc(ec(o)),error:e.error}),delete r[y]);return}const l=jc(a),f=tt(l||a),p=ed(a),h=!!de(),g=d&&h?kt({name:`${u} ${p}`,attributes:{url:a,type:"xhr","http.method":u,"http.url":l,"server.address":f?.host,[ae]:"auto.http.browser",[Fe]:"http.client",...f?.search&&{"http.query":f?.search},...f?.hash&&{"http.fragment":f?.hash}}}):new qe;o.__sentry_xhr_span_id__=g.spanContext().spanId,r[o.__sentry_xhr_span_id__]=g,n(a)&&IS(o,Ce()&&h?g:void 0,s);const S=$();return S&&S.emit("beforeOutgoingRequestSpan",g,e),g}function IS(e,t,n){const{"sentry-trace":r,baggage:s,traceparent:i}=Ia({span:t,propagateTraceparent:n});r&&wS(e,r,s,i)}function wS(e,t,n,r){const s=e.__sentry_xhr_v3__?.request_headers;if(!(s?.["sentry-trace"]||!e.setRequestHeader))try{if(e.setRequestHeader("sentry-trace",t),r&&!s?.traceparent&&e.setRequestHeader("traceparent",r),n){const i=s?.baggage;(!i||!yS(i))&&e.setRequestHeader("baggage",n)}}catch{}}function kS(){D.document?D.document.addEventListener("visibilitychange",()=>{const e=de();if(!e)return;const t=le(e);if(D.document.hidden&&t){const n="cancelled",{op:r,status:s}=H(t);v&&m.log(`[Tracing] Transaction: ${n} -> since tab moved to the background, op: ${r}`),s||t.setStatus({code:St,message:n}),t.setAttribute("sentry.cancellation_reason","document.hidden"),t.end()}}):v&&m.warn("[Tracing] Could not set up background tab detection due to lack of global document")}const RS=3600,Yc="sentry_previous_trace",CS="sentry.previous_trace";function MS(e,{linkPreviousTrace:t,consistentTraceSampling:n}){const r=t==="session-storage";let s=r?OS():void 0;e.on("spanStart",o=>{if(le(o)!==o)return;const c=te().getPropagationContext();s=AS(s,o,c),r&&xS(s)});let i=!0;n&&e.on("beforeSampling",o=>{if(!s)return;const c=te(),a=c.getPropagationContext();if(i&&a.parentSpanId){i=!1;return}c.setPropagationContext({...a,dsc:{...a.dsc,sample_rate:String(s.sampleRate),sampled:String(as(s.spanContext))},sampleRand:s.sampleRand}),o.parentSampled=as(s.spanContext),o.parentSampleRate=s.sampleRate,o.spanAttributes={...o.spanAttributes,[Nu]:s.sampleRate}})}function AS(e,t,n){const r=H(t);function s(){try{return Number(n.dsc?.sample_rate)??Number(r.data?.[Ho])}catch{return 0}}const i={spanContext:t.spanContext(),startTimestamp:r.start_timestamp,sampleRate:s(),sampleRand:n.sampleRand};if(!e)return i;const o=e.spanContext;return o.traceId===r.trace_id?e:(Date.now()/1e3-e.startTimestamp<=RS&&(v&&m.log(`Adding previous_trace \`${JSON.stringify(o)}\` link to span \`${JSON.stringify({op:r.op,...t.spanContext()})}\``),t.addLink({context:o,attributes:{[Pu]:"previous_trace"}}),t.setAttribute(CS,`${o.traceId}-${o.spanId}-${as(o)?1:0}`)),i)}function xS(e){try{D.sessionStorage.setItem(Yc,JSON.stringify(e))}catch(t){v&&m.warn("Could not store previous trace in sessionStorage",t)}}function OS(){try{const e=D.sessionStorage?.getItem(Yc);return JSON.parse(e)}catch{return}}function as(e){return e.traceFlags===1}const NS="BrowserTracing",PS={...wn,instrumentNavigation:!0,instrumentPageLoad:!0,markBackgroundSpan:!0,enableLongTask:!0,enableLongAnimationFrame:!0,enableInp:!0,enableElementTiming:!0,ignoreResourceSpans:[],ignorePerformanceApiSpans:[],detectRedirects:!0,linkPreviousTrace:"in-memory",consistentTraceSampling:!1,enableReportPageLoaded:!1,_experiments:{},...Gc},LS=((e={})=>{const t={name:void 0,source:void 0},n=D.document,{enableInp:r,enableElementTiming:s,enableLongTask:i,enableLongAnimationFrame:o,_experiments:{enableInteractions:c,enableStandaloneClsSpans:a,enableStandaloneLcpSpans:u},beforeStartSpan:d,idleTimeout:l,finalTimeout:f,childSpanTimeout:p,markBackgroundSpan:h,traceFetch:g,traceXHR:S,trackFetchStreamPerformance:y,shouldCreateSpanForRequest:T,enableHTTPTimings:B,ignoreResourceSpans:N,ignorePerformanceApiSpans:z,instrumentPageLoad:A,instrumentNavigation:_,detectRedirects:I,linkPreviousTrace:Y,consistentTraceSampling:E,enableReportPageLoaded:k,onRequestSpanStart:F,onRequestSpanEnd:q}={...PS,...e};let P,ce,J;function ee(b,G,w=!0){const K=G.op==="pageload",ne=G.name,re=d?d(G):G,Se=re.attributes||{};if(ne!==re.name&&(Se[Re]="custom",re.attributes=Se),!w){const Oe=ir();kt({...re,startTime:Oe}).end(Oe);return}t.name=re.name,t.source=Se[Re];const ye=ua(re,{idleTimeout:l,finalTimeout:f,childSpanTimeout:p,disableAutoFinish:K,beforeSpanEnd:Oe=>{P?.(),np(Oe,{recordClsOnPageloadSpan:!a,recordLcpOnPageloadSpan:!u,ignoreResourceSpans:N,ignorePerformanceApiSpans:z}),ko(b,void 0);const ct=te(),cn=ct.getPropagationContext();ct.setPropagationContext({...cn,traceId:ye.spanContext().traceId,sampled:nr(ye),dsc:De(Oe)}),K&&(J=void 0)},trimIdleSpanEndTimestamp:!k});K&&k&&(J=ye),ko(b,ye);function at(){n&&["interactive","complete"].includes(n.readyState)&&b.emit("idleSpanEnableAutoFinish",ye)}K&&!k&&n&&(n.addEventListener("readystatechange",()=>{at()}),at())}return{name:NS,setup(b){if(qu(),P=Jf({recordClsStandaloneSpans:a||!1,recordLcpStandaloneSpans:u||!1,client:b}),r&&Cp(),s&&hp(),o&&X.PerformanceObserver&&PerformanceObserver.supportedEntryTypes&&PerformanceObserver.supportedEntryTypes.includes("long-animation-frame")?Xf():i&&Kf(),c&&Qf(),I&&n){const w=()=>{ce=ue()};addEventListener("click",w,{capture:!0}),addEventListener("keydown",w,{capture:!0,passive:!0})}function G(){const w=Gt(b);w&&!H(w).timestamp&&(v&&m.log(`[Tracing] Finishing current active span with op: ${H(w).op}`),w.setAttribute(Ht,"cancelled"),w.end())}b.on("startNavigationSpan",(w,K)=>{if($()!==b)return;if(K?.isRedirect){v&&m.warn("[Tracing] Detected redirect, navigation span will not be the root span, but a child span."),ee(b,{op:"navigation.redirect",...w},!1);return}ce=void 0,G(),wt().setPropagationContext({traceId:On(),sampleRand:Math.random(),propagationSpanId:Ce()?void 0:Ot()});const ne=te();ne.setPropagationContext({traceId:On(),sampleRand:Math.random(),propagationSpanId:Ce()?void 0:Ot()}),ne.setSDKProcessingMetadata({normalizedRequest:void 0}),ee(b,{op:"navigation",...w,parentSpan:null,forceTransaction:!0})}),b.on("startPageLoadSpan",(w,K={})=>{if($()!==b)return;G();const ne=K.sentryTrace||wo("sentry-trace"),re=K.baggage||wo("baggage"),Se=Lu(ne,re),ye=te();ye.setPropagationContext(Se),Ce()||(ye.getPropagationContext().propagationSpanId=Ot()),ye.setSDKProcessingMetadata({normalizedRequest:ms()}),ee(b,{op:"pageload",...w})}),b.on("endPageloadSpan",()=>{k&&J&&(J.setAttribute(Ht,"reportPageLoaded"),J.end())})},afterAllSetup(b){let G=Xt();if(Y!=="off"&&MS(b,{linkPreviousTrace:Y,consistentTraceSampling:E}),D.location){if(A){const w=pe();Xs(b,{name:D.location.pathname,startTime:w?w/1e3:void 0,attributes:{[Re]:"url",[ae]:"auto.pageload.browser"}})}_&&lr(({to:w,from:K})=>{if(K===void 0&&G?.indexOf(w)!==-1){G=void 0;return}G=void 0;const ne=Ts(w),re=Gt(b),Se=re&&I&&BS(re,ce);DS(b,{name:ne?.pathname||D.location.pathname,attributes:{[Re]:"url",[ae]:"auto.navigation.browser"}},{url:w,isRedirect:Se})})}h&&kS(),c&&FS(b,l,f,p,t),r&&xp(),bS(b,{traceFetch:g,traceXHR:S,trackFetchStreamPerformance:y,tracePropagationTargets:b.getOptions().tracePropagationTargets,shouldCreateSpanForRequest:T,enableHTTPTimings:B,onRequestSpanStart:F,onRequestSpanEnd:q})}}});function Xs(e,t,n){e.emit("startPageLoadSpan",t,n),te().setTransactionName(t.name);const r=Gt(e);return r&&e.emit("afterStartPageLoadSpan",r),r}function DS(e,t,n){const{url:r,isRedirect:s}=n||{};e.emit("beforeStartNavigationSpan",t,{isRedirect:s}),e.emit("startNavigationSpan",t,{isRedirect:s});const i=te();return i.setTransactionName(t.name),r&&!s&&i.setSDKProcessingMetadata({normalizedRequest:{...ms(),url:r}}),Gt(e)}function wo(e){return D.document?.querySelector(`meta[name=${e}]`)?.getAttribute("content")||void 0}function FS(e,t,n,r,s){const i=D.document;let o;const c=()=>{const a="ui.action.click",u=Gt(e);if(u){const d=H(u).op;if(["navigation","pageload"].includes(d)){v&&m.warn(`[Tracing] Did not create ${a} span because a pageload or navigation span is in progress.`);return}}if(o&&(o.setAttribute(Ht,"interactionInterrupted"),o.end(),o=void 0),!s.name){v&&m.warn(`[Tracing] Did not create ${a} transaction because _latestRouteName is missing.`);return}o=ua({name:s.name,op:a,attributes:{[Re]:s.source||"url"}},{idleTimeout:t,finalTimeout:n,childSpanTimeout:r})};i&&addEventListener("click",c,{capture:!0})}const Jc="_sentry_idleSpan";function Gt(e){return e[Jc]}function ko(e,t){Pn(e,Jc,t)}const Ro=1.5;function BS(e,t){const n=H(e),r=ir(),s=n.start_timestamp;return!(r-s>Ro||t&&r-t<=Ro)}function Tt(e){return new Promise((t,n)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>n(e.error)})}function US(e,t){const n=indexedDB.open(e);n.onupgradeneeded=()=>n.result.createObjectStore(t);const r=Tt(n);return s=>r.then(i=>s(i.transaction(t,"readwrite").objectStore(t)))}function Qs(e){return Tt(e.getAllKeys())}function HS(e,t,n){return e(r=>Qs(r).then(s=>{if(!(s.length>=n))return r.put(t,Math.max(...s,0)+1),Tt(r.transaction)}))}function $S(e,t,n){return e(r=>Qs(r).then(s=>{if(!(s.length>=n))return r.put(t,Math.min(...s,0)-1),Tt(r.transaction)}))}function WS(e){return e(t=>Qs(t).then(n=>{const r=n[0];if(r!=null)return Tt(t.get(r)).then(s=>(t.delete(r),Tt(t.transaction).then(()=>s)))}))}function zS(e){let t;function n(){return t==null&&(t=US(e.dbName||"sentry-offline",e.storeName||"queue")),t}return{push:async r=>{try{const s=await Un(r);await HS(n(),s,e.maxQueueSize||30)}catch{}},unshift:async r=>{try{const s=await Un(r);await $S(n(),s,e.maxQueueSize||30)}catch{}},shift:async()=>{try{const r=await WS(n());if(r)return Ku(r)}catch{}}}}function qS(e){return t=>{const n=e({...t,createStore:zS});return D.addEventListener("online",async r=>{await n.flush()}),n}}function jS(e=Ps){return qS(Xl(e))}const Co=1e6,VS="window"in X&&X.window===X&&typeof importScripts>"u",We=String(0),Zn=VS?"main":"worker",er=D.navigator;let Kc="",Xc="",Qc="",cs=er?.userAgent||"",Zc="";const GS=er?.language||er?.languages?.[0]||"";function YS(e){return typeof e=="object"&&e!==null&&"getHighEntropyValues"in e}const Mo=er?.userAgentData;YS(Mo)&&Mo.getHighEntropyValues(["architecture","model","platform","platformVersion","fullVersionList"]).then(e=>{if(Kc=e.platform||"",Qc=e.architecture||"",Zc=e.model||"",Xc=e.platformVersion||"",e.fullVersionList?.length){const t=e.fullVersionList[e.fullVersionList.length-1];cs=`${t.brand} ${t.version}`}}).catch(e=>{});function JS(e){return!("thread_metadata"in e)}function KS(e){return JS(e)?ny(e):e}function XS(e){const t=e.contexts?.trace?.trace_id;return typeof t=="string"&&t.length!==32&&v&&m.log(`[Profiling] Invalid traceId: ${t} on profiled event`),typeof t!="string"?"":t}function QS(e,t,n,r){if(r.type!=="transaction")throw new TypeError("Profiling events may only be attached to transactions, this should never occur.");if(n==null)throw new TypeError(`Cannot construct profiling event envelope without a valid profile. Got ${n} instead.`);const s=XS(r),i=KS(n),o=t||(typeof r.start_timestamp=="number"?r.start_timestamp*1e3:ue()*1e3),c=typeof r.timestamp=="number"?r.timestamp*1e3:ue()*1e3;return{event_id:e,timestamp:new Date(o).toISOString(),platform:"javascript",version:"1",release:r.release||"",environment:r.environment||qo,runtime:{name:"javascript",version:D.navigator.userAgent},os:{name:Kc,version:Xc,build_number:cs},device:{locale:GS,model:Zc,manufacturer:cs,architecture:Qc,is_emulator:!1},debug_meta:{images:tu(n.resources)},profile:i,transactions:[{name:r.transaction||"",id:r.event_id||Me(),trace_id:s,active_thread_id:We,relative_start_ns:"0",relative_end_ns:((c-o)*1e6).toFixed(0)}]}}function ZS(e,t,n){if(e==null)throw new TypeError(`Cannot construct profiling event envelope without a valid profile. Got ${e} instead.`);const r=ty(e),s=t.getOptions(),i=t.getSdkMetadata?.()?.sdk;return{chunk_id:Me(),client_sdk:{name:i?.name??"sentry.javascript.browser",version:i?.version??"0.0.0"},profiler_id:n||Me(),platform:"javascript",version:"2",release:s.release??"",environment:s.environment??"production",debug_meta:{images:tu(e.resources)},profile:r}}function ey(e){try{if(!e||typeof e!="object")return{reason:"chunk is not an object"};const t=r=>typeof r=="string"&&/^[a-f0-9]{32}$/.test(r);if(!t(e.profiler_id))return{reason:"missing or invalid profiler_id"};if(!t(e.chunk_id))return{reason:"missing or invalid chunk_id"};if(!e.client_sdk)return{reason:"missing client_sdk metadata"};const n=e.profile;return n?!Array.isArray(n.frames)||!n.frames.length?{reason:"profile has no frames"}:!Array.isArray(n.stacks)||!n.stacks.length?{reason:"profile has no stacks"}:!Array.isArray(n.samples)||!n.samples.length?{reason:"profile has no samples"}:{valid:!0}:{reason:"missing profile data"}}catch(t){return{reason:`unknown validation error: ${t}`}}}function ty(e){const t=[];for(let c=0;c<e.frames.length;c++){const a=e.frames[c];a&&(t[c]={function:a.name,abs_path:typeof a.resourceId=="number"?e.resources[a.resourceId]:void 0,lineno:a.line,colno:a.column})}const n=[];for(let c=0;c<e.stacks.length;c++){const a=e.stacks[c];if(!a)continue;const u=[];let d=a;for(;d;)u.push(d.frameId),d=d.parentId===void 0?void 0:e.stacks[d.parentId];n[c]=u}const r=pe(),s=typeof performance.timeOrigin=="number"?performance.timeOrigin:r||0,i=s-(r||s),o=[];for(let c=0;c<e.samples.length;c++){const a=e.samples[c];if(!a)continue;const u=(s+(a.timestamp-i))/1e3;o[c]={stack_id:a.stackId??0,thread_id:We,timestamp:u}}return{frames:t,stacks:n,samples:o,thread_metadata:{[We]:{name:Zn}}}}function eu(e){return H(e).op==="pageload"}function ny(e){let t,n=0;const r={samples:[],stacks:[],frames:[],thread_metadata:{[We]:{name:Zn}}},s=e.samples[0];if(!s)return r;const i=s.timestamp,o=pe(),c=typeof performance.timeOrigin=="number"?performance.timeOrigin:o||0,a=c-(o||c);return e.samples.forEach((u,d)=>{if(u.stackId===void 0){t===void 0&&(t=n,r.stacks[t]=[],n++),r.samples[d]={elapsed_since_start_ns:((u.timestamp+a-i)*Co).toFixed(0),stack_id:t,thread_id:We};return}let l=e.stacks[u.stackId];const f=[];for(;l;){f.push(l.frameId);const h=e.frames[l.frameId];h&&r.frames[l.frameId]===void 0&&(r.frames[l.frameId]={function:h.name,abs_path:typeof h.resourceId=="number"?e.resources[h.resourceId]:void 0,lineno:h.line,colno:h.column}),l=l.parentId===void 0?void 0:e.stacks[l.parentId]}const p={elapsed_since_start_ns:((u.timestamp+a-i)*Co).toFixed(0),stack_id:n,thread_id:We};r.stacks[n]=f,r.samples[d]=p,n++}),r}function ry(e,t){if(!t.length)return e;for(const n of t)e[1].push([{type:"profile"},n]);return e}function sy(e){const t=[];return Fn(e,(n,r)=>{if(r==="transaction")for(let s=1;s<n.length;s++)n[s]?.contexts?.profile?.profile_id&&t.push(n[s])}),t}function tu(e){const r=$()?.getOptions()?.stackParser;return r?Du(r,e):[]}function nu(e){return typeof e!="number"&&typeof e!="boolean"||typeof e=="number"&&isNaN(e)?(v&&m.warn(`[Profiling] Invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(e)} of type ${JSON.stringify(typeof e)}.`),!1):e===!0||e===!1?!0:e<0||e>1?(v&&m.warn(`[Profiling] Invalid sample rate. Sample rate must be between 0 and 1. Got ${e}.`),!1):!0}function iy(e){return e.samples.length<2?(v&&m.log("[Profiling] Discarding profile because it contains less than 2 samples"),!1):e.frames.length?!0:(v&&m.log("[Profiling] Discarding profile because it contains no frames"),!1)}let Zs=!1;const ru=3e4;function oy(e){return typeof e=="function"}function su(){const e=D.Profiler;if(!oy(e)){v&&m.log("[Profiling] Profiling is not supported by this browser, Profiler interface missing on window object.");return}const t=10,n=Math.floor(ru/t);try{return new e({sampleInterval:t,maxBufferSize:n})}catch{v&&(m.log("[Profiling] Failed to initialize the Profiling constructor, this is likely due to a missing 'Document-Policy': 'js-profiling' header."),m.log("[Profiling] Disabling profiling for current user session.")),Zs=!0}}function Ao(e){if(Zs)return v&&m.log("[Profiling] Profiling has been disabled for the duration of the current user session."),!1;if(!e.isRecording())return v&&m.log("[Profiling] Discarding profile because root span was not sampled."),!1;const n=$()?.getOptions();if(!n)return v&&m.log("[Profiling] Profiling disabled, no options found."),!1;const r=n.profilesSampleRate;return nu(r)?r?(r===!0?!0:Math.random()<r)?!0:(v&&m.log(`[Profiling] Discarding profile because it's not included in the random sample (sampling rate = ${Number(r)})`),!1):(v&&m.log("[Profiling] Discarding profile because a negative sampling decision was inherited or profileSampleRate is set to 0"),!1):(v&&m.warn("[Profiling] Discarding profile because of invalid sample rate."),!1)}function ay(e){if(Zs)return v&&m.log("[Profiling] Profiling has been disabled for the duration of the current user session as the JS Profiler could not be started."),!1;if(e.profileLifecycle!=="trace"&&e.profileLifecycle!=="manual")return v&&m.warn("[Profiling] Session not sampled. Invalid `profileLifecycle` option."),!1;const t=e.profileSessionSampleRate;return nu(t)?t?Math.random()<=t:(v&&m.log("[Profiling] Discarding profile because profileSessionSampleRate is not defined or set to 0"),!1):(v&&m.warn("[Profiling] Discarding profile because of invalid profileSessionSampleRate."),!1)}function En(e){return typeof e.profilesSampleRate<"u"}function cy(e,t,n,r){return iy(n)?QS(e,t,n,r):null}const et=new Map;function uy(){return et.size}function ly(e){const t=et.get(e);return t&&et.delete(e),t}function dy(e,t){if(et.set(e,t),et.size>30){const n=et.keys().next().value;n!==void 0&&et.delete(n)}}function fy(e){return!e?.contexts?.profile||!e.contexts||(e.contexts.trace={...e.contexts?.trace??{},data:{...e.contexts?.trace?.data??{},"thread.id":We,"thread.name":Zn}},e.spans?.forEach(t=>{t.data={...t.data||{},"thread.id":We,"thread.name":Zn}})),e}function xo(e){let t;eu(e)&&(t=ue()*1e3);const n=su();if(!n)return;v&&m.log(`[Profiling] started profiling span: ${H(e).description}`);const r=Me();let s=null;te().setContext("profile",{profile_id:r,start_timestamp:t});async function i(){if(e&&n){if(s){v&&m.log("[Profiling] profile for:",H(e).description,"already exists, returning early");return}return n.stop().then(u=>{if(o&&(D.clearTimeout(o),o=void 0),v&&m.log(`[Profiling] stopped profiling of span: ${H(e).description}`),!u){v&&m.log(`[Profiling] profiler returned null profile for: ${H(e).description}`,"this may indicate an overlapping span or a call to stopProfiling with a profile title that was never started");return}s=u,dy(r,u)}).catch(u=>{v&&m.log("[Profiling] error while stopping profiler:",u)})}}let o=D.setTimeout(()=>{v&&m.log("[Profiling] max profile duration elapsed, stopping profiling for:",H(e).description),i()},ru);const c=e.end.bind(e);function a(){return e?(i().then(()=>{c()},()=>{c()}),e):c()}e.end=a}const py=6e4,hy=3e5;class my{constructor(){this._client=void 0,this._profiler=void 0,this._chunkTimer=void 0,this._profilerId=void 0,this._isRunning=!1,this._sessionSampled=!1,this._lifecycleMode=void 0,this._activeRootSpanIds=new Set,this._rootSpanTimeouts=new Map}initialize(t){const n=t.getOptions().profileLifecycle,r=ay(t.getOptions());v&&m.log(`[Profiling] Initializing profiler (lifecycle='${n}').`),r||v&&m.log("[Profiling] Session not sampled. Skipping lifecycle profiler initialization."),this._profilerId=Me(),this._client=t,this._sessionSampled=r,this._lifecycleMode=n,n==="trace"&&this._setupTraceLifecycleListeners(t)}start(){if(this._lifecycleMode==="trace"){v&&m.warn('[Profiling] `profileLifecycle` is set to "trace". Calls to `uiProfiler.start()` are ignored in trace mode.');return}if(this._isRunning){v&&m.warn("[Profiling] Profile session is already running, `uiProfiler.start()` is a no-op.");return}if(!this._sessionSampled){v&&m.warn("[Profiling] Session is not sampled, `uiProfiler.start()` is a no-op.");return}this._beginProfiling()}stop(){if(this._lifecycleMode==="trace"){v&&m.warn('[Profiling] `profileLifecycle` is set to "trace". Calls to `uiProfiler.stop()` are ignored in trace mode.');return}if(!this._isRunning){v&&m.warn("[Profiling] Profiler is not running, `uiProfiler.stop()` is a no-op.");return}this._endProfiling()}notifyRootSpanActive(t){if(this._lifecycleMode!=="trace"||!this._sessionSampled)return;const n=t.spanContext().spanId;if(!n||this._activeRootSpanIds.has(n))return;this._registerTraceRootSpan(n);const r=this._activeRootSpanIds.size;r===1&&(v&&m.log("[Profiling] Detected already active root span during setup. Active root spans now:",r),this._beginProfiling())}_beginProfiling(){if(!this._isRunning){if(this._isRunning=!0,v&&m.log("[Profiling] Started profiling with profiler ID:",this._profilerId),Tn().setContext("profile",{profiler_id:this._profilerId}),this._startProfilerInstance(),!this._profiler){v&&m.log("[Profiling] Failed to start JS Profiler; stopping."),this._resetProfilerInfo();return}this._startPeriodicChunking()}}_endProfiling(){this._isRunning&&(this._isRunning=!1,this._chunkTimer&&(clearTimeout(this._chunkTimer),this._chunkTimer=void 0),this._clearAllRootSpanTimeouts(),this._collectCurrentChunk().catch(t=>{v&&m.error("[Profiling] Failed to collect current profile chunk on `stop()`:",t)}),this._lifecycleMode==="manual"&&Tn().setContext("profile",{}))}_setupTraceLifecycleListeners(t){t.on("spanStart",n=>{if(!this._sessionSampled){v&&m.log("[Profiling] Span not profiled because of negative sampling decision for user session.");return}if(n!==le(n))return;if(!n.isRecording()){v&&m.log("[Profiling] Discarding profile because root span was not sampled.");return}const r=n.spanContext().spanId;if(!r||this._activeRootSpanIds.has(r))return;this._registerTraceRootSpan(r);const s=this._activeRootSpanIds.size;s===1&&(v&&m.log(`[Profiling] Root span ${r} started. Profiling active while there are active root spans (count=${s}).`),this._beginProfiling())}),t.on("spanEnd",n=>{if(!this._sessionSampled)return;const r=n.spanContext().spanId;if(!r||!this._activeRootSpanIds.has(r))return;this._activeRootSpanIds.delete(r);const s=this._activeRootSpanIds.size;v&&m.log(`[Profiling] Root span with ID ${r} ended. Will continue profiling for as long as there are active root spans (currently: ${s}).`),s===0&&(this._collectCurrentChunk().catch(i=>{v&&m.error("[Profiling] Failed to collect current profile chunk on last `spanEnd`:",i)}),this._endProfiling())})}_resetProfilerInfo(){this._isRunning=!1,Tn().setContext("profile",{})}_clearAllRootSpanTimeouts(){this._rootSpanTimeouts.forEach(t=>clearTimeout(t)),this._rootSpanTimeouts.clear()}_registerTraceRootSpan(t){this._activeRootSpanIds.add(t);const n=setTimeout(()=>this._onRootSpanTimeout(t),hy);this._rootSpanTimeouts.set(t,n)}_startProfilerInstance(){if(this._profiler?.stopped===!1)return;const t=su();if(!t){v&&m.log("[Profiling] Failed to start JS Profiler.");return}this._profiler=t}_startPeriodicChunking(){this._isRunning&&(this._chunkTimer=setTimeout(()=>{if(this._collectCurrentChunk().catch(t=>{v&&m.error("[Profiling] Failed to collect current profile chunk during periodic chunking:",t)}),this._isRunning){if(this._startProfilerInstance(),!this._profiler){this._resetProfilerInfo();return}this._startPeriodicChunking()}},py))}_onRootSpanTimeout(t){this._rootSpanTimeouts.has(t)&&(this._rootSpanTimeouts.delete(t),this._activeRootSpanIds.has(t)&&(v&&m.log(`[Profiling] Reached 5-minute timeout for root span ${t}. You likely started a manual root span that never called \`.end()\`.`),this._activeRootSpanIds.delete(t),this._activeRootSpanIds.size===0&&this._endProfiling()))}async _collectCurrentChunk(){const t=this._profiler;if(this._profiler=void 0,!!t)try{const n=await t.stop(),r=ZS(n,this._client,this._profilerId),s=ey(r);if("reason"in s){v&&m.log("[Profiling] Discarding invalid profile chunk (this is probably a bug in the SDK):",s.reason);return}this._sendProfileChunk(r),v&&m.log("[Profiling] Collected browser profile chunk.")}catch(n){v&&m.log("[Profiling] Error while stopping JS Profiler for chunk:",n)}}_sendProfileChunk(t){const n=this._client,r=or(n.getSdkMetadata?.()),s=n.getDsn(),i=n.getOptions().tunnel,o=Be({event_id:Me(),sent_at:new Date().toISOString(),...r&&{sdk:r},...!!i&&s&&{dsn:ot(s)}},[[{type:"profile_chunk"},t]]);n.sendEnvelope(o).then(null,c=>{v&&m.error("Error while sending profile chunk envelope:",c)})}}const gy="BrowserProfiling",_y=(()=>({name:gy,setup(e){const t=e.getOptions(),n=new my;if(!En(t)&&!t.profileLifecycle&&(t.profileLifecycle="manual"),En(t)&&!t.profilesSampleRate){v&&m.log("[Profiling] Profiling disabled, no profiling options found.");return}const r=de(),s=r&&le(r);if(En(t)&&t.profileSessionSampleRate!==void 0&&v&&m.warn("[Profiling] Both legacy profiling (`profilesSampleRate`) and UI profiling settings are defined. `profileSessionSampleRate` has no effect when legacy profiling is enabled."),En(t))s&&eu(s)&&Ao(s)&&xo(s),e.on("spanStart",i=>{i===le(i)&&Ao(i)&&xo(i)}),e.on("beforeEnvelope",i=>{if(!uy())return;const o=sy(i);if(!o.length)return;const c=[];for(const a of o){const u=a?.contexts,d=u?.profile?.profile_id,l=u?.profile?.start_timestamp;if(typeof d!="string"){v&&m.log("[Profiling] cannot find profile for a span without a profile context");continue}if(!d){v&&m.log("[Profiling] cannot find profile for a span without a profile context");continue}u?.profile&&delete u.profile;const f=ly(d);if(!f){v&&m.log(`[Profiling] Could not retrieve profile for span: ${d}`);continue}const p=cy(d,l,f,a);p&&c.push(p)}ry(i,c)});else{const i=t.profileLifecycle;if(e.on("startUIProfiler",()=>n.start()),e.on("stopUIProfiler",()=>n.stop()),i==="manual")n.initialize(e);else if(i==="trace"){if(!Ce(t)){v&&m.warn("[Profiling] `profileLifecycle` is 'trace' but tracing is disabled. Set a `tracesSampleRate` or `tracesSampler` to enable span tracing.");return}n.initialize(e),s&&n.notifyRootSpanActive(s),D.setTimeout(()=>{const o=de(),c=o&&le(o);c&&n.notifyRootSpanActive(c)},0)}}},processEvent(e){return fy(e)}})),Sy=_y;function yy(e){const t={...e};return Ta(t,"react"),ea("react",{version:ta.version}),Dh(t)}const Ey=new WeakSet;function by(e,t){const n=LS({...e,instrumentPageLoad:!1,instrumentNavigation:!1}),{useEffect:r,useLocation:s,useNavigationType:i,createRoutesFromChildren:o,matchRoutes:c,stripBasename:a,enableAsyncRouteHandlers:u=!1,instrumentPageLoad:d=!0,instrumentNavigation:l=!0,lazyRouteTimeout:f}=e;return{...n,setup(p){n.setup(p);const h=e.finalTimeout??3e4,g=(e.idleTimeout??1e3)*3,S=f??g;S===1/0?br&&m.log("[React Router] lazyRouteTimeout set to Infinity, capping at finalTimeout:",h,"ms to prevent indefinite hangs"):Number.isNaN(S)?br&&m.warn("[React Router] lazyRouteTimeout must be a number, falling back to default:",g):S<0&&br&&m.warn("[React Router] lazyRouteTimeout must be non-negative or Infinity, got:",S,"falling back to:",g)},afterAllSetup(p){n.afterAllSetup(p);const h=D.location?.pathname;d&&h&&Xs(p,{name:h,attributes:{[Re]:"url",[Fe]:"pageload",[ae]:`auto.pageload.react.reactrouter_v${t}`}}),l&&Ey.add(p)}}}function vy(e){return by(e,"6")}var Oo={};const Ty=Oo.CI==="true"||Oo.GITHUB_ACTIONS==="true",Iy="4.11.5",wy={enabled:!0,environment:Ty?"github-ci":"production",release:`spotlight@${Iy}`,tracesSampleRate:1,enableLogs:!0},ky=["sentryTrace","baggage"];function Ry(e=!0){const t=[vy({instrumentPageLoad:e,useEffect:ta.useEffect,useLocation:$u,useNavigationType:Hu,createRoutesFromChildren:Uu,matchRoutes:Bu}),gS(),Sy(),zd({levels:["log","info","warn","error","debug"]})],n=document.location.hash.slice(1);if(n.startsWith("spotlight")){const r=n.indexOf("="),s=r>-1?decodeURIComponent(n.slice(r+1)):void 0;t.push(xh({sidecarUrl:s}))}return t}function My(){const e=ky.map(s=>[s,Fu(s)]),t=e.every(([,s])=>!!s),n=Ry(!t),r=yy({...wy,transport:jS(Ps),dsn:"https://51bcd92dba1128934afd1c5726c84442@o1.ingest.us.sentry.io/4508404727283713",integrations:n,tracePropagationTargets:[/^\//,document.location.origin],profilesSampleRate:1,replaysSessionSampleRate:.01,replaysOnErrorSampleRate:1});t&&r&&Xs(r,{name:"pageload"},Object.fromEntries(e))}export{My as default,Ry as getIntegrations};
|
|
23
|
+
`;if(typeof e=="string")n=`${r}${e}`;else{const i=new TextEncoder().encode(r);n=new Uint8Array(i.length+e.length),n.set(i),n.set(e,i.length)}return n}async function oS({client:e,scope:t,replayId:n,event:r}){const s=typeof e._integrations=="object"&&e._integrations!==null&&!Array.isArray(e._integrations)?Object.keys(e._integrations):void 0,i={event_id:n,integrations:s};e.emit("preprocessEvent",r,i);const o=await jo(e.getOptions(),r,i,t,e,wt());if(!o)return null;e.emit("postprocessEvent",o,i),o.platform=o.platform||"javascript";const c=e.getSdkMetadata(),{name:a,version:u,settings:d}=c?.sdk||{};return o.sdk={...o.sdk,name:a||"sentry.javascript.unknown",version:u||"0.0.0",settings:d},o}async function aS({recordingData:e,replayId:t,segmentId:n,eventContext:r,timestamp:s,session:i}){const o=iS({recordingData:e,headers:{segment_id:n}}),{urls:c,errorIds:a,traceIds:u,initialTimestamp:d}=r,l=$(),f=te(),p=l?.getTransport(),h=l?.getDsn();if(!l||!p||!h||!i.sampled)return Promise.resolve({});const g={type:Fh,replay_start_timestamp:d/1e3,timestamp:s/1e3,error_ids:a,trace_ids:u,urls:c,replay_id:t,segment_id:n,replay_type:i.sampled},S=await oS({scope:f,client:l,replayId:t,event:g});if(!S)return l.recordDroppedEvent("event_processor","replay"),C&&M.log("An event processor returned `null`, will not send event."),Promise.resolve({});delete S.sdkProcessingMetadata;const y=sS(S,o,h,l.getOptions().tunnel);let T;try{T=await p.send(y)}catch(N){const z=new Error(Ds);try{z.cause=N}catch{}throw z}if(typeof T.statusCode=="number"&&(T.statusCode<200||T.statusCode>=300))throw new Wc(T.statusCode);const B=ga({},T);if(ma(B,"replay"))throw new Ks(B);return T}class Wc extends Error{constructor(t){super(`Transport returned status code ${t}`)}}class Ks extends Error{constructor(t){super("Rate limit hit"),this.rateLimits=t}}async function zc(e,t={count:0,interval:zh}){const{recordingData:n,onError:r}=e;if(n.length)try{return await aS(e),!0}catch(s){if(s instanceof Wc||s instanceof Ks)throw s;if(ea("Replays",{_retryCount:t.count}),r&&r(s),t.count>=qh){const i=new Error(`${Ds} - max retries exceeded`);try{i.cause=s}catch{}throw i}return t.interval*=++t.count,new Promise((i,o)=>{sn(async()=>{try{await zc(e,t),i(!0)}catch(c){o(c)}},t.interval)})}}const qc="__THROTTLED",cS="__SKIPPED";function uS(e,t,n){const r=new Map,s=c=>{const a=c-n;r.forEach((u,d)=>{d<a&&r.delete(d)})},i=()=>[...r.values()].reduce((c,a)=>c+a,0);let o=!1;return(...c)=>{const a=Math.floor(Date.now()/1e3);if(s(a),i()>=t){const d=o;return o=!0,d?cS:qc}o=!1;const u=r.get(a)||0;return r.set(a,u+1),e(...c)}}class lS{constructor({options:t,recordingOptions:n}){this.eventBuffer=null,this.performanceEntries=[],this.replayPerformanceEntries=[],this.recordingMode="session",this.timeouts={sessionIdlePause:Bh,sessionIdleExpire:Uh},this._lastActivity=Date.now(),this._isEnabled=!1,this._isPaused=!1,this._requiresManualStart=!1,this._hasInitializedCoreListeners=!1,this._context={errorIds:new Set,traceIds:new Set,urls:[],initialTimestamp:Date.now(),initialUrl:""},this._recordingOptions=n,this._options=t,this._debouncedFlush=Q_(()=>this._flush(),this._options.flushMinDelay,{maxWait:this._options.flushMaxDelay}),this._throttledAddEvent=uS((o,c)=>s_(this,o,c),300,5);const{slowClickTimeout:r,slowClickIgnoreSelectors:s}=this.getOptions(),i=r?{threshold:Math.min(jh,r),timeout:r,scrollTimeout:Vh,ignoreSelector:s?s.join(","):""}:void 0;if(i&&(this.clickDetector=new _g(this,i)),C){const o=t._experiments;M.setConfig({captureExceptions:!!o.captureExceptions,traceInternals:!!o.traceInternals})}this._handleVisibilityChange=()=>{Z.document.visibilityState==="visible"?this._doChangeToForegroundTasks():this._doChangeToBackgroundTasks()},this._handleWindowBlur=()=>{const o=xe({category:"ui.blur"});this._doChangeToBackgroundTasks(o)},this._handleWindowFocus=()=>{const o=xe({category:"ui.focus"});this._doChangeToForegroundTasks(o)},this._handleKeyboardEvent=o=>{Ag(this,o)}}getContext(){return this._context}isEnabled(){return this._isEnabled}isPaused(){return this._isPaused}isRecordingCanvas(){return!!this._canvas}getOptions(){return this._options}handleException(t){C&&M.exception(t),this._options.onError&&this._options.onError(t)}initializeSampling(t){const{errorSampleRate:n,sessionSampleRate:r}=this._options,s=n<=0&&r<=0;if(this._requiresManualStart=s,!s){if(this._initializeSessionForSampling(t),!this.session){C&&M.exception(new Error("Unable to initialize and create session"));return}this.session.sampled!==!1&&(this.recordingMode=this.session.sampled==="buffer"&&this.session.segmentId===0?"buffer":"session",C&&M.infoTick(`Starting replay in ${this.recordingMode} mode`),this._initializeRecording())}}start(){if(this._isEnabled&&this.recordingMode==="session"){C&&M.log("Recording is already in progress");return}if(this._isEnabled&&this.recordingMode==="buffer"){C&&M.log("Buffering is in progress, call `flush()` to save the replay");return}C&&M.infoTick("Starting replay in session mode"),this._updateUserActivity();const t=Fr({maxReplayDuration:this._options.maxReplayDuration,sessionIdleExpire:this.timeouts.sessionIdleExpire},{stickySession:this._options.stickySession,sessionSampleRate:1,allowBuffering:!1});this.session=t,this.recordingMode="session",this._initializeRecording()}startBuffering(){if(this._isEnabled){C&&M.log("Buffering is in progress, call `flush()` to save the replay");return}C&&M.infoTick("Starting replay in buffer mode");const t=Fr({sessionIdleExpire:this.timeouts.sessionIdleExpire,maxReplayDuration:this._options.maxReplayDuration},{stickySession:this._options.stickySession,sessionSampleRate:0,allowBuffering:!0});this.session=t,this.recordingMode="buffer",this._initializeRecording()}startRecording(){try{const t=this._canvas;this._stopRecording=Le({...this._recordingOptions,...this.recordingMode==="buffer"?{checkoutEveryNms:Wh}:this._options._experiments.continuousCheckout&&{checkoutEveryNms:Math.max(36e4,this._options._experiments.continuousCheckout)},emit:eS(this),...Z_(),onMutation:this._onMutationHandler.bind(this),...t?{recordCanvas:t.recordCanvas,getCanvasManager:t.getCanvasManager,sampling:t.sampling,dataURLOptions:t.dataURLOptions}:{}})}catch(t){this.handleException(t)}}stopRecording(){try{return this._stopRecording&&(this._stopRecording(),this._stopRecording=void 0),!0}catch(t){return this.handleException(t),!1}}async stop({forceFlush:t=!1,reason:n}={}){if(this._isEnabled){this._isEnabled=!1,this.recordingMode="buffer";try{C&&M.log(`Stopping Replay${n?` triggered by ${n}`:""}`),Fc(),this._removeListeners(),this.stopRecording(),this._debouncedFlush.cancel(),t&&await this._flush({force:!0}),this.eventBuffer?.destroy(),this.eventBuffer=null,Zg(this)}catch(r){this.handleException(r)}}}pause(){this._isPaused||(this._isPaused=!0,this.stopRecording(),C&&M.log("Pausing replay"))}resume(){!this._isPaused||!this._checkSession()||(this._isPaused=!1,this.startRecording(),C&&M.log("Resuming replay"))}async sendBufferedReplayOrFlush({continueRecording:t=!0}={}){if(this.recordingMode==="session")return this.flushImmediate();const n=Date.now();C&&M.log("Converting buffer to session"),await this.flushImmediate();const r=this.stopRecording();!t||!r||this.recordingMode!=="session"&&(this.recordingMode="session",this.session&&(this.session.dirty=!1,this._updateUserActivity(n),this._updateSessionActivity(n),this._maybeSaveSession()),this.startRecording())}addUpdate(t){const n=t();this.recordingMode==="buffer"||!this._isEnabled||n!==!0&&this._debouncedFlush()}triggerUserActivity(){if(this._updateUserActivity(),!this._stopRecording){if(!this._checkSession())return;this.resume();return}this.checkAndHandleExpiredSession(),this._updateSessionActivity()}updateUserActivity(){this._updateUserActivity(),this._updateSessionActivity()}conditionalFlush(){return this.recordingMode==="buffer"?Promise.resolve():this.flushImmediate()}flush(){return this._debouncedFlush()}flushImmediate(){return this._debouncedFlush(),this._debouncedFlush.flush()}cancelFlush(){this._debouncedFlush.cancel()}getSessionId(t){if(!(t&&this.session?.sampled===!1))return this.session?.id}checkAndHandleExpiredSession(){if(this._lastActivity&&ss(this._lastActivity,this.timeouts.sessionIdlePause)&&this.session&&this.session.sampled==="session"){this.pause();return}return!!this._checkSession()}setInitialState(){const t=`${Z.location.pathname}${Z.location.hash}${Z.location.search}`,n=`${Z.location.origin}${t}`;this.performanceEntries=[],this.replayPerformanceEntries=[],this._clearContext(),this._context.initialUrl=n,this._context.initialTimestamp=Date.now(),this._context.urls.push(n)}throttledAddEvent(t,n){const r=this._throttledAddEvent(t,n);if(r===qc){const s=xe({category:"replay.throttled"});this.addUpdate(()=>!Ys(this,{type:lg,timestamp:s.timestamp||0,data:{tag:"breadcrumb",payload:s,metric:!0}}))}return r}getCurrentRoute(){const t=this.lastActiveSpan||de(),n=t&&le(t),s=(n&&H(n).data||{})[Re];if(!(!n||!s||!["route","custom"].includes(s)))return H(n).description}_initializeRecording(){this.setInitialState(),this._updateSessionActivity(),this.eventBuffer=Kg({useCompression:this._options.useCompression,workerUrl:this._options.workerUrl}),this._removeListeners(),this._addListeners(),this._isEnabled=!0,this._isPaused=!1,this.startRecording()}_initializeSessionForSampling(t){const n=this._options.errorSampleRate>0,r=Fr({sessionIdleExpire:this.timeouts.sessionIdleExpire,maxReplayDuration:this._options.maxReplayDuration,previousSessionId:t},{stickySession:this._options.stickySession,sessionSampleRate:this._options.sessionSampleRate,allowBuffering:n});this.session=r}_checkSession(){if(!this.session)return!1;const t=this.session;return Nc(t,{sessionIdleExpire:this.timeouts.sessionIdleExpire,maxReplayDuration:this._options.maxReplayDuration})?(this._refreshSession(t),!1):!0}async _refreshSession(t){this._isEnabled&&(await this.stop({reason:"refresh session"}),this.initializeSampling(t.id))}_addListeners(){try{Z.document.addEventListener("visibilitychange",this._handleVisibilityChange),Z.addEventListener("blur",this._handleWindowBlur),Z.addEventListener("focus",this._handleWindowFocus),Z.addEventListener("keydown",this._handleKeyboardEvent),this.clickDetector&&this.clickDetector.addListeners(),this._hasInitializedCoreListeners||(J_(this),this._hasInitializedCoreListeners=!0)}catch(t){this.handleException(t)}this._performanceCleanupCallback=zg(this)}_removeListeners(){try{Z.document.removeEventListener("visibilitychange",this._handleVisibilityChange),Z.removeEventListener("blur",this._handleWindowBlur),Z.removeEventListener("focus",this._handleWindowFocus),Z.removeEventListener("keydown",this._handleKeyboardEvent),this.clickDetector&&this.clickDetector.removeListeners(),this._performanceCleanupCallback&&this._performanceCleanupCallback()}catch(t){this.handleException(t)}}_doChangeToBackgroundTasks(t){!this.session||Oc(this.session,{maxReplayDuration:this._options.maxReplayDuration,sessionIdleExpire:this.timeouts.sessionIdleExpire})||(t&&this._createCustomBreadcrumb(t),this.conditionalFlush())}_doChangeToForegroundTasks(t){if(!this.session)return;if(!this.checkAndHandleExpiredSession()){C&&M.log("Document has become active, but session has expired");return}t&&this._createCustomBreadcrumb(t)}_updateUserActivity(t=Date.now()){this._lastActivity=t}_updateSessionActivity(t=Date.now()){this.session&&(this.session.lastActivity=t,this._maybeSaveSession())}_createCustomBreadcrumb(t){this.addUpdate(()=>{this.throttledAddEvent({type:L.Custom,timestamp:t.timestamp||0,data:{tag:"breadcrumb",payload:t}})})}_addPerformanceEntries(){let t=Pg(this.performanceEntries).concat(this.replayPerformanceEntries);if(this.performanceEntries=[],this.replayPerformanceEntries=[],this._requiresManualStart){const n=this._context.initialTimestamp/1e3;t=t.filter(r=>r.start>=n)}return Promise.all(mr(this,t))}_clearContext(){this._context.errorIds.clear(),this._context.traceIds.clear(),this._context.urls=[]}_updateInitialTimestampFromEventBuffer(){const{session:t,eventBuffer:n}=this;if(!t||!n||this._requiresManualStart||t.segmentId)return;const r=n.getEarliestTimestamp();r&&r<this._context.initialTimestamp&&(this._context.initialTimestamp=r)}_popEventContext(){const t={initialTimestamp:this._context.initialTimestamp,initialUrl:this._context.initialUrl,errorIds:Array.from(this._context.errorIds),traceIds:Array.from(this._context.traceIds),urls:this._context.urls};return this._clearContext(),t}async _runFlush(){const t=this.getSessionId();if(!this.session||!this.eventBuffer||!t){C&&M.error("No session or eventBuffer found to flush.");return}if(await this._addPerformanceEntries(),!!this.eventBuffer?.hasEvents&&(await K_(this),!!this.eventBuffer&&t===this.getSessionId()))try{this._updateInitialTimestampFromEventBuffer();const n=Date.now();if(n-this._context.initialTimestamp>this._options.maxReplayDuration+3e4)throw new Error("Session is too long, not sending replay");const r=this._popEventContext(),s=this.session.segmentId++;this._maybeSaveSession();const i=await this.eventBuffer.finish();await zc({replayId:t,recordingData:i,segmentId:s,eventContext:r,session:this.session,timestamp:n,onError:o=>this.handleException(o)})}catch(n){this.handleException(n),this.stop({reason:"sendReplay"});const r=$();if(r){const s=n instanceof Ks?"ratelimit_backoff":"send_error";r.recordDroppedEvent(s,"replay")}}}async _flush({force:t=!1}={}){if(!this._isEnabled&&!t)return;if(!this.checkAndHandleExpiredSession()){C&&M.error("Attempting to finish replay event after session expired.");return}if(!this.session)return;const n=this.session.started,s=Date.now()-n;this._debouncedFlush.cancel();const i=s<this._options.minReplayDuration,o=s>this._options.maxReplayDuration+5e3;if(i||o){C&&M.log(`Session duration (${Math.floor(s/1e3)}s) is too ${i?"short":"long"}, not sending replay.`),i&&this._debouncedFlush();return}const c=this.eventBuffer;c&&this.session.segmentId===0&&!c.hasCheckout&&C&&M.log("Flushing initial segment without checkout.");const a=!!this._flushLock;this._flushLock||(this._flushLock=this._runFlush());try{await this._flushLock}catch(u){this.handleException(u)}finally{this._flushLock=void 0,a&&this._debouncedFlush()}}_maybeSaveSession(){this.session&&this._options.stickySession&&hr(this.session)}_onMutationHandler(t){const{ignoreMutations:n}=this._options._experiments;if(n?.length&&t.some(c=>{const a=rS(c.target),u=n.join(",");return a?.matches(u)}))return!1;const r=t.length,s=this._options.mutationLimit,i=this._options.mutationBreadcrumbLimit,o=s&&r>s;if(r>i||o){const c=xe({category:"replay.mutations",data:{count:r,limit:o}});this._createCustomBreadcrumb(c)}return o?(this.stop({reason:"mutationLimit",forceFlush:this.recordingMode==="session"}),!1):!0}}function xt(e,t){return[...e,...t].join(",")}function dS({mask:e,unmask:t,block:n,unblock:r,ignore:s}){const i=["base","iframe[srcdoc]:not([src])"],o=xt(e,[".sentry-mask","[data-sentry-mask]"]),c=xt(t,[]);return{maskTextSelector:o,unmaskTextSelector:c,blockSelector:xt(n,[".sentry-block","[data-sentry-block]",...i]),unblockSelector:xt(r,[]),ignoreSelector:xt(s,[".sentry-ignore","[data-sentry-ignore]",'input[type="file"]'])}}function fS({el:e,key:t,maskAttributes:n,maskAllText:r,privacyOptions:s,value:i}){return!r||s.unmaskTextSelector&&e.matches(s.unmaskTextSelector)?i:n.includes(t)||t==="value"&&e.tagName==="INPUT"&&["submit","button"].includes(e.getAttribute("type")||"")?i.replace(/[\S]/g,"*"):i}const yo='img,image,svg,video,object,picture,embed,map,audio,link[rel="icon"],link[rel="apple-touch-icon"]',pS=["content-length","content-type","accept"],hS=Symbol.for("sentry__originalRequestBody");let Eo=!1,bo=!1;function mS(){if(typeof Request>"u"||bo)return;const e=Request;try{const t=function(n,r){const s=new e(n,r);return r?.body!=null&&(s[hS]=r.body),s};t.prototype=e.prototype,X.Request=t,bo=!0}catch{}}const gS=(e=>new _S(e));class _S{constructor({flushMinDelay:t=Hh,flushMaxDelay:n=$h,minReplayDuration:r=Gh,maxReplayDuration:s=Xi,stickySession:i=!0,useCompression:o=!0,workerUrl:c,_experiments:a={},maskAllText:u=!0,maskAllInputs:d=!0,blockAllMedia:l=!0,mutationBreadcrumbLimit:f=750,mutationLimit:p=1e4,slowClickTimeout:h=7e3,slowClickIgnoreSelectors:g=[],networkDetailAllowUrls:S=[],networkDetailDenyUrls:y=[],networkCaptureBodies:T=!0,networkRequestHeaders:B=[],networkResponseHeaders:N=[],mask:z=[],maskAttributes:A=["title","placeholder","aria-label"],unmask:_=[],block:I=[],unblock:Y=[],ignore:E=[],maskFn:k,beforeAddRecordingEvent:F,beforeErrorSampling:q,onError:P,attachRawBodyFromRequest:ce=!1}={}){this.name="Replay";const J=dS({mask:z,unmask:_,block:I,unblock:Y,ignore:E});if(this._recordingOptions={maskAllInputs:d,maskAllText:u,maskInputOptions:{password:!0},maskTextFn:k,maskInputFn:k,maskAttributeFn:(ee,b,G)=>fS({maskAttributes:A,maskAllText:u,privacyOptions:J,key:ee,value:b,el:G}),...J,slimDOMOptions:"all",inlineStylesheet:!0,inlineImages:!1,collectFonts:!0,errorHandler:ee=>{try{ee.__rrweb__=!0}catch{}},recordCrossOriginIframes:!!a.recordCrossOriginIframes},this._initialOptions={flushMinDelay:t,flushMaxDelay:n,minReplayDuration:Math.min(r,Yh),maxReplayDuration:Math.min(s,Xi),stickySession:i,useCompression:o,workerUrl:c,blockAllMedia:l,maskAllInputs:d,maskAllText:u,mutationBreadcrumbLimit:f,mutationLimit:p,slowClickTimeout:h,slowClickIgnoreSelectors:g,networkDetailAllowUrls:S,networkDetailDenyUrls:y,networkCaptureBodies:T,networkRequestHeaders:vo(B),networkResponseHeaders:vo(N),beforeAddRecordingEvent:F,beforeErrorSampling:q,onError:P,attachRawBodyFromRequest:ce,_experiments:a},this._initialOptions.blockAllMedia&&(this._recordingOptions.blockSelector=this._recordingOptions.blockSelector?`${this._recordingOptions.blockSelector},${yo}`:yo,this._recordingOptions.ignoreCSSAttributes=new Set(["background-image"])),this._isInitialized&&qr())throw new Error("Multiple Sentry Session Replay instances are not supported");this._isInitialized=!0}get _isInitialized(){return Eo}set _isInitialized(t){Eo=t}afterAllSetup(t){!qr()||this._replay||(this._initialOptions.attachRawBodyFromRequest&&mS(),this._setup(t),this._initialize(t))}start(){this._replay&&this._replay.start()}startBuffering(){this._replay&&this._replay.startBuffering()}stop(){return this._replay?this._replay.stop({forceFlush:this._replay.recordingMode==="session"}):Promise.resolve()}flush(t){return this._replay?this._replay.isEnabled()?this._replay.sendBufferedReplayOrFlush(t):(this._replay.start(),Promise.resolve()):Promise.resolve()}getReplayId(t){if(this._replay?.isEnabled())return this._replay.getSessionId(t)}getRecordingMode(){if(this._replay?.isEnabled())return this._replay.recordingMode}_initialize(t){this._replay&&(this._maybeLoadFromReplayCanvasIntegration(t),this._replay.initializeSampling())}_setup(t){const n=SS(this._initialOptions,t);this._replay=new lS({options:n,recordingOptions:this._recordingOptions})}_maybeLoadFromReplayCanvasIntegration(t){try{const n=t.getIntegrationByName("ReplayCanvas");if(!n)return;this._replay._canvas=n.getOptions()}catch{}}}function SS(e,t){const n=t.getOptions(),r={sessionSampleRate:0,errorSampleRate:0,...e},s=Ut(n.replaysSessionSampleRate),i=Ut(n.replaysOnErrorSampleRate);return s==null&&i==null&&Kt(()=>{console.warn("Replay is disabled because neither `replaysSessionSampleRate` nor `replaysOnErrorSampleRate` are set.")}),s!=null&&(r.sessionSampleRate=s),i!=null&&(r.errorSampleRate=i),r}function vo(e){return[...pS,...e.map(t=>t.toLowerCase())]}function yS(e){return e.split(",").some(t=>t.trim().startsWith("sentry-"))}function jc(e){try{return new URL(e,D.location.origin).href}catch{return}}function ES(e){return e.entryType==="resource"&&"initiatorType"in e&&typeof e.nextHopProtocol=="string"&&(e.initiatorType==="fetch"||e.initiatorType==="xmlhttprequest")}function Vc(e){try{return new Headers(e)}catch{return}}const To=new WeakMap,Br=new Map,Gc={traceFetch:!0,traceXHR:!0,enableHTTPTimings:!0,trackFetchStreamPerformance:!1};function bS(e,t){const{traceFetch:n,traceXHR:r,trackFetchStreamPerformance:s,shouldCreateSpanForRequest:i,enableHTTPTimings:o,tracePropagationTargets:c,onRequestSpanStart:a,onRequestSpanEnd:u}={...Gc,...t},d=typeof i=="function"?i:h=>!0,l=h=>vS(h,c),f={},p=e.getOptions().propagateTraceparent;n&&(e.addEventProcessor(h=>(h.type==="transaction"&&h.spans&&h.spans.forEach(g=>{if(g.op==="http.client"){const S=Br.get(g.span_id);S&&(g.timestamp=S/1e3,Br.delete(g.span_id))}}),h)),s&&Gd(h=>{if(h.response){const g=To.get(h.response);g&&h.endTimestamp&&Br.set(g,h.endTimestamp)}}),Aa(h=>{const g=xd(h,d,l,f,{propagateTraceparent:p,onRequestSpanEnd:u});if(h.response&&h.fetchData.__span&&To.set(h.response,h.fetchData.__span),g){const S=jc(h.fetchData.url),y=S?tt(S).host:void 0;g.setAttributes({"http.url":S,"server.address":y}),o&&Io(g),a?.(g,{headers:h.headers})}})),r&&Ka(h=>{const g=TS(h,d,l,f,p,u);g&&(o&&Io(g),a?.(g,{headers:Vc(h.xhr.__sentry_xhr_v3__?.request_headers)}))})}function Io(e){const{url:t}=H(e).data;if(!t||typeof t!="string")return;const n=it("resource",({entries:r})=>{r.forEach(s=>{ES(s)&&s.name.endsWith(t)&&(e.setAttributes(Ya(s)),setTimeout(n))})})}function vS(e,t){const n=Xt();if(n){let r,s;try{r=new URL(e,n),s=new URL(n).origin}catch{return!1}const i=r.origin===s;return t?Pe(r.toString(),t)||i&&Pe(r.pathname,t):i}else{const r=!!e.match(/^\/(?!\/)/);return t?Pe(e,t):r}}function TS(e,t,n,r,s,i){const o=e.xhr,c=o?.[Qe];if(!o||o.__sentry_own_request__||!c)return;const{url:a,method:u}=c,d=Ce()&&t(a);if(e.endTimestamp&&d){const y=o.__sentry_xhr_span_id__;if(!y)return;const T=r[y];T&&c.status_code!==void 0&&(Yo(T,c.status_code),T.end(),i?.(T,{headers:Vc(ec(o)),error:e.error}),delete r[y]);return}const l=jc(a),f=tt(l||a),p=ed(a),h=!!de(),g=d&&h?kt({name:`${u} ${p}`,attributes:{url:a,type:"xhr","http.method":u,"http.url":l,"server.address":f?.host,[ae]:"auto.http.browser",[Fe]:"http.client",...f?.search&&{"http.query":f?.search},...f?.hash&&{"http.fragment":f?.hash}}}):new qe;o.__sentry_xhr_span_id__=g.spanContext().spanId,r[o.__sentry_xhr_span_id__]=g,n(a)&&IS(o,Ce()&&h?g:void 0,s);const S=$();return S&&S.emit("beforeOutgoingRequestSpan",g,e),g}function IS(e,t,n){const{"sentry-trace":r,baggage:s,traceparent:i}=Ia({span:t,propagateTraceparent:n});r&&wS(e,r,s,i)}function wS(e,t,n,r){const s=e.__sentry_xhr_v3__?.request_headers;if(!(s?.["sentry-trace"]||!e.setRequestHeader))try{if(e.setRequestHeader("sentry-trace",t),r&&!s?.traceparent&&e.setRequestHeader("traceparent",r),n){const i=s?.baggage;(!i||!yS(i))&&e.setRequestHeader("baggage",n)}}catch{}}function kS(){D.document?D.document.addEventListener("visibilitychange",()=>{const e=de();if(!e)return;const t=le(e);if(D.document.hidden&&t){const n="cancelled",{op:r,status:s}=H(t);v&&m.log(`[Tracing] Transaction: ${n} -> since tab moved to the background, op: ${r}`),s||t.setStatus({code:St,message:n}),t.setAttribute("sentry.cancellation_reason","document.hidden"),t.end()}}):v&&m.warn("[Tracing] Could not set up background tab detection due to lack of global document")}const RS=3600,Yc="sentry_previous_trace",CS="sentry.previous_trace";function MS(e,{linkPreviousTrace:t,consistentTraceSampling:n}){const r=t==="session-storage";let s=r?OS():void 0;e.on("spanStart",o=>{if(le(o)!==o)return;const c=te().getPropagationContext();s=AS(s,o,c),r&&xS(s)});let i=!0;n&&e.on("beforeSampling",o=>{if(!s)return;const c=te(),a=c.getPropagationContext();if(i&&a.parentSpanId){i=!1;return}c.setPropagationContext({...a,dsc:{...a.dsc,sample_rate:String(s.sampleRate),sampled:String(as(s.spanContext))},sampleRand:s.sampleRand}),o.parentSampled=as(s.spanContext),o.parentSampleRate=s.sampleRate,o.spanAttributes={...o.spanAttributes,[Nu]:s.sampleRate}})}function AS(e,t,n){const r=H(t);function s(){try{return Number(n.dsc?.sample_rate)??Number(r.data?.[Ho])}catch{return 0}}const i={spanContext:t.spanContext(),startTimestamp:r.start_timestamp,sampleRate:s(),sampleRand:n.sampleRand};if(!e)return i;const o=e.spanContext;return o.traceId===r.trace_id?e:(Date.now()/1e3-e.startTimestamp<=RS&&(v&&m.log(`Adding previous_trace \`${JSON.stringify(o)}\` link to span \`${JSON.stringify({op:r.op,...t.spanContext()})}\``),t.addLink({context:o,attributes:{[Pu]:"previous_trace"}}),t.setAttribute(CS,`${o.traceId}-${o.spanId}-${as(o)?1:0}`)),i)}function xS(e){try{D.sessionStorage.setItem(Yc,JSON.stringify(e))}catch(t){v&&m.warn("Could not store previous trace in sessionStorage",t)}}function OS(){try{const e=D.sessionStorage?.getItem(Yc);return JSON.parse(e)}catch{return}}function as(e){return e.traceFlags===1}const NS="BrowserTracing",PS={...wn,instrumentNavigation:!0,instrumentPageLoad:!0,markBackgroundSpan:!0,enableLongTask:!0,enableLongAnimationFrame:!0,enableInp:!0,enableElementTiming:!0,ignoreResourceSpans:[],ignorePerformanceApiSpans:[],detectRedirects:!0,linkPreviousTrace:"in-memory",consistentTraceSampling:!1,enableReportPageLoaded:!1,_experiments:{},...Gc},LS=((e={})=>{const t={name:void 0,source:void 0},n=D.document,{enableInp:r,enableElementTiming:s,enableLongTask:i,enableLongAnimationFrame:o,_experiments:{enableInteractions:c,enableStandaloneClsSpans:a,enableStandaloneLcpSpans:u},beforeStartSpan:d,idleTimeout:l,finalTimeout:f,childSpanTimeout:p,markBackgroundSpan:h,traceFetch:g,traceXHR:S,trackFetchStreamPerformance:y,shouldCreateSpanForRequest:T,enableHTTPTimings:B,ignoreResourceSpans:N,ignorePerformanceApiSpans:z,instrumentPageLoad:A,instrumentNavigation:_,detectRedirects:I,linkPreviousTrace:Y,consistentTraceSampling:E,enableReportPageLoaded:k,onRequestSpanStart:F,onRequestSpanEnd:q}={...PS,...e};let P,ce,J;function ee(b,G,w=!0){const K=G.op==="pageload",ne=G.name,re=d?d(G):G,Se=re.attributes||{};if(ne!==re.name&&(Se[Re]="custom",re.attributes=Se),!w){const Oe=ir();kt({...re,startTime:Oe}).end(Oe);return}t.name=re.name,t.source=Se[Re];const ye=ua(re,{idleTimeout:l,finalTimeout:f,childSpanTimeout:p,disableAutoFinish:K,beforeSpanEnd:Oe=>{P?.(),np(Oe,{recordClsOnPageloadSpan:!a,recordLcpOnPageloadSpan:!u,ignoreResourceSpans:N,ignorePerformanceApiSpans:z}),ko(b,void 0);const ct=te(),cn=ct.getPropagationContext();ct.setPropagationContext({...cn,traceId:ye.spanContext().traceId,sampled:nr(ye),dsc:De(Oe)}),K&&(J=void 0)},trimIdleSpanEndTimestamp:!k});K&&k&&(J=ye),ko(b,ye);function at(){n&&["interactive","complete"].includes(n.readyState)&&b.emit("idleSpanEnableAutoFinish",ye)}K&&!k&&n&&(n.addEventListener("readystatechange",()=>{at()}),at())}return{name:NS,setup(b){if(qu(),P=Jf({recordClsStandaloneSpans:a||!1,recordLcpStandaloneSpans:u||!1,client:b}),r&&Cp(),s&&hp(),o&&X.PerformanceObserver&&PerformanceObserver.supportedEntryTypes&&PerformanceObserver.supportedEntryTypes.includes("long-animation-frame")?Xf():i&&Kf(),c&&Qf(),I&&n){const w=()=>{ce=ue()};addEventListener("click",w,{capture:!0}),addEventListener("keydown",w,{capture:!0,passive:!0})}function G(){const w=Gt(b);w&&!H(w).timestamp&&(v&&m.log(`[Tracing] Finishing current active span with op: ${H(w).op}`),w.setAttribute(Ht,"cancelled"),w.end())}b.on("startNavigationSpan",(w,K)=>{if($()!==b)return;if(K?.isRedirect){v&&m.warn("[Tracing] Detected redirect, navigation span will not be the root span, but a child span."),ee(b,{op:"navigation.redirect",...w},!1);return}ce=void 0,G(),wt().setPropagationContext({traceId:On(),sampleRand:Math.random(),propagationSpanId:Ce()?void 0:Ot()});const ne=te();ne.setPropagationContext({traceId:On(),sampleRand:Math.random(),propagationSpanId:Ce()?void 0:Ot()}),ne.setSDKProcessingMetadata({normalizedRequest:void 0}),ee(b,{op:"navigation",...w,parentSpan:null,forceTransaction:!0})}),b.on("startPageLoadSpan",(w,K={})=>{if($()!==b)return;G();const ne=K.sentryTrace||wo("sentry-trace"),re=K.baggage||wo("baggage"),Se=Lu(ne,re),ye=te();ye.setPropagationContext(Se),Ce()||(ye.getPropagationContext().propagationSpanId=Ot()),ye.setSDKProcessingMetadata({normalizedRequest:ms()}),ee(b,{op:"pageload",...w})}),b.on("endPageloadSpan",()=>{k&&J&&(J.setAttribute(Ht,"reportPageLoaded"),J.end())})},afterAllSetup(b){let G=Xt();if(Y!=="off"&&MS(b,{linkPreviousTrace:Y,consistentTraceSampling:E}),D.location){if(A){const w=pe();Xs(b,{name:D.location.pathname,startTime:w?w/1e3:void 0,attributes:{[Re]:"url",[ae]:"auto.pageload.browser"}})}_&&lr(({to:w,from:K})=>{if(K===void 0&&G?.indexOf(w)!==-1){G=void 0;return}G=void 0;const ne=Ts(w),re=Gt(b),Se=re&&I&&BS(re,ce);DS(b,{name:ne?.pathname||D.location.pathname,attributes:{[Re]:"url",[ae]:"auto.navigation.browser"}},{url:w,isRedirect:Se})})}h&&kS(),c&&FS(b,l,f,p,t),r&&xp(),bS(b,{traceFetch:g,traceXHR:S,trackFetchStreamPerformance:y,tracePropagationTargets:b.getOptions().tracePropagationTargets,shouldCreateSpanForRequest:T,enableHTTPTimings:B,onRequestSpanStart:F,onRequestSpanEnd:q})}}});function Xs(e,t,n){e.emit("startPageLoadSpan",t,n),te().setTransactionName(t.name);const r=Gt(e);return r&&e.emit("afterStartPageLoadSpan",r),r}function DS(e,t,n){const{url:r,isRedirect:s}=n||{};e.emit("beforeStartNavigationSpan",t,{isRedirect:s}),e.emit("startNavigationSpan",t,{isRedirect:s});const i=te();return i.setTransactionName(t.name),r&&!s&&i.setSDKProcessingMetadata({normalizedRequest:{...ms(),url:r}}),Gt(e)}function wo(e){return D.document?.querySelector(`meta[name=${e}]`)?.getAttribute("content")||void 0}function FS(e,t,n,r,s){const i=D.document;let o;const c=()=>{const a="ui.action.click",u=Gt(e);if(u){const d=H(u).op;if(["navigation","pageload"].includes(d)){v&&m.warn(`[Tracing] Did not create ${a} span because a pageload or navigation span is in progress.`);return}}if(o&&(o.setAttribute(Ht,"interactionInterrupted"),o.end(),o=void 0),!s.name){v&&m.warn(`[Tracing] Did not create ${a} transaction because _latestRouteName is missing.`);return}o=ua({name:s.name,op:a,attributes:{[Re]:s.source||"url"}},{idleTimeout:t,finalTimeout:n,childSpanTimeout:r})};i&&addEventListener("click",c,{capture:!0})}const Jc="_sentry_idleSpan";function Gt(e){return e[Jc]}function ko(e,t){Pn(e,Jc,t)}const Ro=1.5;function BS(e,t){const n=H(e),r=ir(),s=n.start_timestamp;return!(r-s>Ro||t&&r-t<=Ro)}function Tt(e){return new Promise((t,n)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>n(e.error)})}function US(e,t){const n=indexedDB.open(e);n.onupgradeneeded=()=>n.result.createObjectStore(t);const r=Tt(n);return s=>r.then(i=>s(i.transaction(t,"readwrite").objectStore(t)))}function Qs(e){return Tt(e.getAllKeys())}function HS(e,t,n){return e(r=>Qs(r).then(s=>{if(!(s.length>=n))return r.put(t,Math.max(...s,0)+1),Tt(r.transaction)}))}function $S(e,t,n){return e(r=>Qs(r).then(s=>{if(!(s.length>=n))return r.put(t,Math.min(...s,0)-1),Tt(r.transaction)}))}function WS(e){return e(t=>Qs(t).then(n=>{const r=n[0];if(r!=null)return Tt(t.get(r)).then(s=>(t.delete(r),Tt(t.transaction).then(()=>s)))}))}function zS(e){let t;function n(){return t==null&&(t=US(e.dbName||"sentry-offline",e.storeName||"queue")),t}return{push:async r=>{try{const s=await Un(r);await HS(n(),s,e.maxQueueSize||30)}catch{}},unshift:async r=>{try{const s=await Un(r);await $S(n(),s,e.maxQueueSize||30)}catch{}},shift:async()=>{try{const r=await WS(n());if(r)return Ku(r)}catch{}}}}function qS(e){return t=>{const n=e({...t,createStore:zS});return D.addEventListener("online",async r=>{await n.flush()}),n}}function jS(e=Ps){return qS(Xl(e))}const Co=1e6,VS="window"in X&&X.window===X&&typeof importScripts>"u",We=String(0),Zn=VS?"main":"worker",er=D.navigator;let Kc="",Xc="",Qc="",cs=er?.userAgent||"",Zc="";const GS=er?.language||er?.languages?.[0]||"";function YS(e){return typeof e=="object"&&e!==null&&"getHighEntropyValues"in e}const Mo=er?.userAgentData;YS(Mo)&&Mo.getHighEntropyValues(["architecture","model","platform","platformVersion","fullVersionList"]).then(e=>{if(Kc=e.platform||"",Qc=e.architecture||"",Zc=e.model||"",Xc=e.platformVersion||"",e.fullVersionList?.length){const t=e.fullVersionList[e.fullVersionList.length-1];cs=`${t.brand} ${t.version}`}}).catch(e=>{});function JS(e){return!("thread_metadata"in e)}function KS(e){return JS(e)?ny(e):e}function XS(e){const t=e.contexts?.trace?.trace_id;return typeof t=="string"&&t.length!==32&&v&&m.log(`[Profiling] Invalid traceId: ${t} on profiled event`),typeof t!="string"?"":t}function QS(e,t,n,r){if(r.type!=="transaction")throw new TypeError("Profiling events may only be attached to transactions, this should never occur.");if(n==null)throw new TypeError(`Cannot construct profiling event envelope without a valid profile. Got ${n} instead.`);const s=XS(r),i=KS(n),o=t||(typeof r.start_timestamp=="number"?r.start_timestamp*1e3:ue()*1e3),c=typeof r.timestamp=="number"?r.timestamp*1e3:ue()*1e3;return{event_id:e,timestamp:new Date(o).toISOString(),platform:"javascript",version:"1",release:r.release||"",environment:r.environment||qo,runtime:{name:"javascript",version:D.navigator.userAgent},os:{name:Kc,version:Xc,build_number:cs},device:{locale:GS,model:Zc,manufacturer:cs,architecture:Qc,is_emulator:!1},debug_meta:{images:tu(n.resources)},profile:i,transactions:[{name:r.transaction||"",id:r.event_id||Me(),trace_id:s,active_thread_id:We,relative_start_ns:"0",relative_end_ns:((c-o)*1e6).toFixed(0)}]}}function ZS(e,t,n){if(e==null)throw new TypeError(`Cannot construct profiling event envelope without a valid profile. Got ${e} instead.`);const r=ty(e),s=t.getOptions(),i=t.getSdkMetadata?.()?.sdk;return{chunk_id:Me(),client_sdk:{name:i?.name??"sentry.javascript.browser",version:i?.version??"0.0.0"},profiler_id:n||Me(),platform:"javascript",version:"2",release:s.release??"",environment:s.environment??"production",debug_meta:{images:tu(e.resources)},profile:r}}function ey(e){try{if(!e||typeof e!="object")return{reason:"chunk is not an object"};const t=r=>typeof r=="string"&&/^[a-f0-9]{32}$/.test(r);if(!t(e.profiler_id))return{reason:"missing or invalid profiler_id"};if(!t(e.chunk_id))return{reason:"missing or invalid chunk_id"};if(!e.client_sdk)return{reason:"missing client_sdk metadata"};const n=e.profile;return n?!Array.isArray(n.frames)||!n.frames.length?{reason:"profile has no frames"}:!Array.isArray(n.stacks)||!n.stacks.length?{reason:"profile has no stacks"}:!Array.isArray(n.samples)||!n.samples.length?{reason:"profile has no samples"}:{valid:!0}:{reason:"missing profile data"}}catch(t){return{reason:`unknown validation error: ${t}`}}}function ty(e){const t=[];for(let c=0;c<e.frames.length;c++){const a=e.frames[c];a&&(t[c]={function:a.name,abs_path:typeof a.resourceId=="number"?e.resources[a.resourceId]:void 0,lineno:a.line,colno:a.column})}const n=[];for(let c=0;c<e.stacks.length;c++){const a=e.stacks[c];if(!a)continue;const u=[];let d=a;for(;d;)u.push(d.frameId),d=d.parentId===void 0?void 0:e.stacks[d.parentId];n[c]=u}const r=pe(),s=typeof performance.timeOrigin=="number"?performance.timeOrigin:r||0,i=s-(r||s),o=[];for(let c=0;c<e.samples.length;c++){const a=e.samples[c];if(!a)continue;const u=(s+(a.timestamp-i))/1e3;o[c]={stack_id:a.stackId??0,thread_id:We,timestamp:u}}return{frames:t,stacks:n,samples:o,thread_metadata:{[We]:{name:Zn}}}}function eu(e){return H(e).op==="pageload"}function ny(e){let t,n=0;const r={samples:[],stacks:[],frames:[],thread_metadata:{[We]:{name:Zn}}},s=e.samples[0];if(!s)return r;const i=s.timestamp,o=pe(),c=typeof performance.timeOrigin=="number"?performance.timeOrigin:o||0,a=c-(o||c);return e.samples.forEach((u,d)=>{if(u.stackId===void 0){t===void 0&&(t=n,r.stacks[t]=[],n++),r.samples[d]={elapsed_since_start_ns:((u.timestamp+a-i)*Co).toFixed(0),stack_id:t,thread_id:We};return}let l=e.stacks[u.stackId];const f=[];for(;l;){f.push(l.frameId);const h=e.frames[l.frameId];h&&r.frames[l.frameId]===void 0&&(r.frames[l.frameId]={function:h.name,abs_path:typeof h.resourceId=="number"?e.resources[h.resourceId]:void 0,lineno:h.line,colno:h.column}),l=l.parentId===void 0?void 0:e.stacks[l.parentId]}const p={elapsed_since_start_ns:((u.timestamp+a-i)*Co).toFixed(0),stack_id:n,thread_id:We};r.stacks[n]=f,r.samples[d]=p,n++}),r}function ry(e,t){if(!t.length)return e;for(const n of t)e[1].push([{type:"profile"},n]);return e}function sy(e){const t=[];return Fn(e,(n,r)=>{if(r==="transaction")for(let s=1;s<n.length;s++)n[s]?.contexts?.profile?.profile_id&&t.push(n[s])}),t}function tu(e){const r=$()?.getOptions()?.stackParser;return r?Du(r,e):[]}function nu(e){return typeof e!="number"&&typeof e!="boolean"||typeof e=="number"&&isNaN(e)?(v&&m.warn(`[Profiling] Invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(e)} of type ${JSON.stringify(typeof e)}.`),!1):e===!0||e===!1?!0:e<0||e>1?(v&&m.warn(`[Profiling] Invalid sample rate. Sample rate must be between 0 and 1. Got ${e}.`),!1):!0}function iy(e){return e.samples.length<2?(v&&m.log("[Profiling] Discarding profile because it contains less than 2 samples"),!1):e.frames.length?!0:(v&&m.log("[Profiling] Discarding profile because it contains no frames"),!1)}let Zs=!1;const ru=3e4;function oy(e){return typeof e=="function"}function su(){const e=D.Profiler;if(!oy(e)){v&&m.log("[Profiling] Profiling is not supported by this browser, Profiler interface missing on window object.");return}const t=10,n=Math.floor(ru/t);try{return new e({sampleInterval:t,maxBufferSize:n})}catch{v&&(m.log("[Profiling] Failed to initialize the Profiling constructor, this is likely due to a missing 'Document-Policy': 'js-profiling' header."),m.log("[Profiling] Disabling profiling for current user session.")),Zs=!0}}function Ao(e){if(Zs)return v&&m.log("[Profiling] Profiling has been disabled for the duration of the current user session."),!1;if(!e.isRecording())return v&&m.log("[Profiling] Discarding profile because root span was not sampled."),!1;const n=$()?.getOptions();if(!n)return v&&m.log("[Profiling] Profiling disabled, no options found."),!1;const r=n.profilesSampleRate;return nu(r)?r?(r===!0?!0:Math.random()<r)?!0:(v&&m.log(`[Profiling] Discarding profile because it's not included in the random sample (sampling rate = ${Number(r)})`),!1):(v&&m.log("[Profiling] Discarding profile because a negative sampling decision was inherited or profileSampleRate is set to 0"),!1):(v&&m.warn("[Profiling] Discarding profile because of invalid sample rate."),!1)}function ay(e){if(Zs)return v&&m.log("[Profiling] Profiling has been disabled for the duration of the current user session as the JS Profiler could not be started."),!1;if(e.profileLifecycle!=="trace"&&e.profileLifecycle!=="manual")return v&&m.warn("[Profiling] Session not sampled. Invalid `profileLifecycle` option."),!1;const t=e.profileSessionSampleRate;return nu(t)?t?Math.random()<=t:(v&&m.log("[Profiling] Discarding profile because profileSessionSampleRate is not defined or set to 0"),!1):(v&&m.warn("[Profiling] Discarding profile because of invalid profileSessionSampleRate."),!1)}function En(e){return typeof e.profilesSampleRate<"u"}function cy(e,t,n,r){return iy(n)?QS(e,t,n,r):null}const et=new Map;function uy(){return et.size}function ly(e){const t=et.get(e);return t&&et.delete(e),t}function dy(e,t){if(et.set(e,t),et.size>30){const n=et.keys().next().value;n!==void 0&&et.delete(n)}}function fy(e){return!e?.contexts?.profile||!e.contexts||(e.contexts.trace={...e.contexts?.trace??{},data:{...e.contexts?.trace?.data??{},"thread.id":We,"thread.name":Zn}},e.spans?.forEach(t=>{t.data={...t.data||{},"thread.id":We,"thread.name":Zn}})),e}function xo(e){let t;eu(e)&&(t=ue()*1e3);const n=su();if(!n)return;v&&m.log(`[Profiling] started profiling span: ${H(e).description}`);const r=Me();let s=null;te().setContext("profile",{profile_id:r,start_timestamp:t});async function i(){if(e&&n){if(s){v&&m.log("[Profiling] profile for:",H(e).description,"already exists, returning early");return}return n.stop().then(u=>{if(o&&(D.clearTimeout(o),o=void 0),v&&m.log(`[Profiling] stopped profiling of span: ${H(e).description}`),!u){v&&m.log(`[Profiling] profiler returned null profile for: ${H(e).description}`,"this may indicate an overlapping span or a call to stopProfiling with a profile title that was never started");return}s=u,dy(r,u)}).catch(u=>{v&&m.log("[Profiling] error while stopping profiler:",u)})}}let o=D.setTimeout(()=>{v&&m.log("[Profiling] max profile duration elapsed, stopping profiling for:",H(e).description),i()},ru);const c=e.end.bind(e);function a(){return e?(i().then(()=>{c()},()=>{c()}),e):c()}e.end=a}const py=6e4,hy=3e5;class my{constructor(){this._client=void 0,this._profiler=void 0,this._chunkTimer=void 0,this._profilerId=void 0,this._isRunning=!1,this._sessionSampled=!1,this._lifecycleMode=void 0,this._activeRootSpanIds=new Set,this._rootSpanTimeouts=new Map}initialize(t){const n=t.getOptions().profileLifecycle,r=ay(t.getOptions());v&&m.log(`[Profiling] Initializing profiler (lifecycle='${n}').`),r||v&&m.log("[Profiling] Session not sampled. Skipping lifecycle profiler initialization."),this._profilerId=Me(),this._client=t,this._sessionSampled=r,this._lifecycleMode=n,n==="trace"&&this._setupTraceLifecycleListeners(t)}start(){if(this._lifecycleMode==="trace"){v&&m.warn('[Profiling] `profileLifecycle` is set to "trace". Calls to `uiProfiler.start()` are ignored in trace mode.');return}if(this._isRunning){v&&m.warn("[Profiling] Profile session is already running, `uiProfiler.start()` is a no-op.");return}if(!this._sessionSampled){v&&m.warn("[Profiling] Session is not sampled, `uiProfiler.start()` is a no-op.");return}this._beginProfiling()}stop(){if(this._lifecycleMode==="trace"){v&&m.warn('[Profiling] `profileLifecycle` is set to "trace". Calls to `uiProfiler.stop()` are ignored in trace mode.');return}if(!this._isRunning){v&&m.warn("[Profiling] Profiler is not running, `uiProfiler.stop()` is a no-op.");return}this._endProfiling()}notifyRootSpanActive(t){if(this._lifecycleMode!=="trace"||!this._sessionSampled)return;const n=t.spanContext().spanId;if(!n||this._activeRootSpanIds.has(n))return;this._registerTraceRootSpan(n);const r=this._activeRootSpanIds.size;r===1&&(v&&m.log("[Profiling] Detected already active root span during setup. Active root spans now:",r),this._beginProfiling())}_beginProfiling(){if(!this._isRunning){if(this._isRunning=!0,v&&m.log("[Profiling] Started profiling with profiler ID:",this._profilerId),Tn().setContext("profile",{profiler_id:this._profilerId}),this._startProfilerInstance(),!this._profiler){v&&m.log("[Profiling] Failed to start JS Profiler; stopping."),this._resetProfilerInfo();return}this._startPeriodicChunking()}}_endProfiling(){this._isRunning&&(this._isRunning=!1,this._chunkTimer&&(clearTimeout(this._chunkTimer),this._chunkTimer=void 0),this._clearAllRootSpanTimeouts(),this._collectCurrentChunk().catch(t=>{v&&m.error("[Profiling] Failed to collect current profile chunk on `stop()`:",t)}),this._lifecycleMode==="manual"&&Tn().setContext("profile",{}))}_setupTraceLifecycleListeners(t){t.on("spanStart",n=>{if(!this._sessionSampled){v&&m.log("[Profiling] Span not profiled because of negative sampling decision for user session.");return}if(n!==le(n))return;if(!n.isRecording()){v&&m.log("[Profiling] Discarding profile because root span was not sampled.");return}const r=n.spanContext().spanId;if(!r||this._activeRootSpanIds.has(r))return;this._registerTraceRootSpan(r);const s=this._activeRootSpanIds.size;s===1&&(v&&m.log(`[Profiling] Root span ${r} started. Profiling active while there are active root spans (count=${s}).`),this._beginProfiling())}),t.on("spanEnd",n=>{if(!this._sessionSampled)return;const r=n.spanContext().spanId;if(!r||!this._activeRootSpanIds.has(r))return;this._activeRootSpanIds.delete(r);const s=this._activeRootSpanIds.size;v&&m.log(`[Profiling] Root span with ID ${r} ended. Will continue profiling for as long as there are active root spans (currently: ${s}).`),s===0&&(this._collectCurrentChunk().catch(i=>{v&&m.error("[Profiling] Failed to collect current profile chunk on last `spanEnd`:",i)}),this._endProfiling())})}_resetProfilerInfo(){this._isRunning=!1,Tn().setContext("profile",{})}_clearAllRootSpanTimeouts(){this._rootSpanTimeouts.forEach(t=>clearTimeout(t)),this._rootSpanTimeouts.clear()}_registerTraceRootSpan(t){this._activeRootSpanIds.add(t);const n=setTimeout(()=>this._onRootSpanTimeout(t),hy);this._rootSpanTimeouts.set(t,n)}_startProfilerInstance(){if(this._profiler?.stopped===!1)return;const t=su();if(!t){v&&m.log("[Profiling] Failed to start JS Profiler.");return}this._profiler=t}_startPeriodicChunking(){this._isRunning&&(this._chunkTimer=setTimeout(()=>{if(this._collectCurrentChunk().catch(t=>{v&&m.error("[Profiling] Failed to collect current profile chunk during periodic chunking:",t)}),this._isRunning){if(this._startProfilerInstance(),!this._profiler){this._resetProfilerInfo();return}this._startPeriodicChunking()}},py))}_onRootSpanTimeout(t){this._rootSpanTimeouts.has(t)&&(this._rootSpanTimeouts.delete(t),this._activeRootSpanIds.has(t)&&(v&&m.log(`[Profiling] Reached 5-minute timeout for root span ${t}. You likely started a manual root span that never called \`.end()\`.`),this._activeRootSpanIds.delete(t),this._activeRootSpanIds.size===0&&this._endProfiling()))}async _collectCurrentChunk(){const t=this._profiler;if(this._profiler=void 0,!!t)try{const n=await t.stop(),r=ZS(n,this._client,this._profilerId),s=ey(r);if("reason"in s){v&&m.log("[Profiling] Discarding invalid profile chunk (this is probably a bug in the SDK):",s.reason);return}this._sendProfileChunk(r),v&&m.log("[Profiling] Collected browser profile chunk.")}catch(n){v&&m.log("[Profiling] Error while stopping JS Profiler for chunk:",n)}}_sendProfileChunk(t){const n=this._client,r=or(n.getSdkMetadata?.()),s=n.getDsn(),i=n.getOptions().tunnel,o=Be({event_id:Me(),sent_at:new Date().toISOString(),...r&&{sdk:r},...!!i&&s&&{dsn:ot(s)}},[[{type:"profile_chunk"},t]]);n.sendEnvelope(o).then(null,c=>{v&&m.error("Error while sending profile chunk envelope:",c)})}}const gy="BrowserProfiling",_y=(()=>({name:gy,setup(e){const t=e.getOptions(),n=new my;if(!En(t)&&!t.profileLifecycle&&(t.profileLifecycle="manual"),En(t)&&!t.profilesSampleRate){v&&m.log("[Profiling] Profiling disabled, no profiling options found.");return}const r=de(),s=r&&le(r);if(En(t)&&t.profileSessionSampleRate!==void 0&&v&&m.warn("[Profiling] Both legacy profiling (`profilesSampleRate`) and UI profiling settings are defined. `profileSessionSampleRate` has no effect when legacy profiling is enabled."),En(t))s&&eu(s)&&Ao(s)&&xo(s),e.on("spanStart",i=>{i===le(i)&&Ao(i)&&xo(i)}),e.on("beforeEnvelope",i=>{if(!uy())return;const o=sy(i);if(!o.length)return;const c=[];for(const a of o){const u=a?.contexts,d=u?.profile?.profile_id,l=u?.profile?.start_timestamp;if(typeof d!="string"){v&&m.log("[Profiling] cannot find profile for a span without a profile context");continue}if(!d){v&&m.log("[Profiling] cannot find profile for a span without a profile context");continue}u?.profile&&delete u.profile;const f=ly(d);if(!f){v&&m.log(`[Profiling] Could not retrieve profile for span: ${d}`);continue}const p=cy(d,l,f,a);p&&c.push(p)}ry(i,c)});else{const i=t.profileLifecycle;if(e.on("startUIProfiler",()=>n.start()),e.on("stopUIProfiler",()=>n.stop()),i==="manual")n.initialize(e);else if(i==="trace"){if(!Ce(t)){v&&m.warn("[Profiling] `profileLifecycle` is 'trace' but tracing is disabled. Set a `tracesSampleRate` or `tracesSampler` to enable span tracing.");return}n.initialize(e),s&&n.notifyRootSpanActive(s),D.setTimeout(()=>{const o=de(),c=o&&le(o);c&&n.notifyRootSpanActive(c)},0)}}},processEvent(e){return fy(e)}})),Sy=_y;function yy(e){const t={...e};return Ta(t,"react"),ea("react",{version:ta.version}),Dh(t)}const Ey=new WeakSet;function by(e,t){const n=LS({...e,instrumentPageLoad:!1,instrumentNavigation:!1}),{useEffect:r,useLocation:s,useNavigationType:i,createRoutesFromChildren:o,matchRoutes:c,stripBasename:a,enableAsyncRouteHandlers:u=!1,instrumentPageLoad:d=!0,instrumentNavigation:l=!0,lazyRouteTimeout:f}=e;return{...n,setup(p){n.setup(p);const h=e.finalTimeout??3e4,g=(e.idleTimeout??1e3)*3,S=f??g;S===1/0?br&&m.log("[React Router] lazyRouteTimeout set to Infinity, capping at finalTimeout:",h,"ms to prevent indefinite hangs"):Number.isNaN(S)?br&&m.warn("[React Router] lazyRouteTimeout must be a number, falling back to default:",g):S<0&&br&&m.warn("[React Router] lazyRouteTimeout must be non-negative or Infinity, got:",S,"falling back to:",g)},afterAllSetup(p){n.afterAllSetup(p);const h=D.location?.pathname;d&&h&&Xs(p,{name:h,attributes:{[Re]:"url",[Fe]:"pageload",[ae]:`auto.pageload.react.reactrouter_v${t}`}}),l&&Ey.add(p)}}}function vy(e){return by(e,"6")}var Oo={};const Ty=Oo.CI==="true"||Oo.GITHUB_ACTIONS==="true",Iy="4.11.7",wy={enabled:!0,environment:Ty?"github-ci":"production",release:`spotlight@${Iy}`,tracesSampleRate:1,enableLogs:!0},ky=["sentryTrace","baggage"];function Ry(e=!0){const t=[vy({instrumentPageLoad:e,useEffect:ta.useEffect,useLocation:$u,useNavigationType:Hu,createRoutesFromChildren:Uu,matchRoutes:Bu}),gS(),Sy(),zd({levels:["log","info","warn","error","debug"]})],n=document.location.hash.slice(1);if(n.startsWith("spotlight")){const r=n.indexOf("="),s=r>-1?decodeURIComponent(n.slice(r+1)):void 0;t.push(xh({sidecarUrl:s}))}return t}function My(){const e=ky.map(s=>[s,Fu(s)]),t=e.every(([,s])=>!!s),n=Ry(!t),r=yy({...wy,transport:jS(Ps),dsn:"https://51bcd92dba1128934afd1c5726c84442@o1.ingest.us.sentry.io/4508404727283713",integrations:n,tracePropagationTargets:[/^\//,document.location.origin],profilesSampleRate:1,replaysSessionSampleRate:.01,replaysOnErrorSampleRate:1});t&&r&&Xs(r,{name:"pageload"},Object.fromEntries(e))}export{My as default,Ry as getIntegrations};
|
|
24
24
|
//# sourceMappingURL=instrumentation.js.map
|