(function(){try{var g=typeof window!=="undefined"?window:typeof global!=="undefined"?global:typeof self!=="undefined"?self:{};g["__faroBundleId_hub-ui"]="1776093229687-6cfd5f17e7"}catch(l){}})();import{r as u,j as d}from"./c2heove9.js";import{L as k}from"./sckmih3q.js";import{d as A,p as v,s as T,H as j,R as x}from"./m6px07lc.js";import{M as O}from"./bilp1wjl.js";import{o as E,u as B,p as I,S as U,q as _,r as D,s as H}from"./nngf2a7j.js";import{B as l,a as L}from"./km2t237d.js";import{i as F,a as K}from"./icn7vhac.js";import{M as V}from"./bhpjm439.js";import{i as Q,g as $,a as w,f as q,E as z}from"./k7e0iy55.js";import{a as y,C as N}from"./dqt06de9.js";import{c as W}from"./gjupmyyj.js";import{aL as G}from"./lej86w1k.js";import{x as Z}from"./dlfja1xs.js";import{s as J,i as X}from"./7apc6kle.js";import{s as Y}from"./nrsf2txa.js";import{q as rr,Q as er}from"./oa7aw9io.js";import{Q as tr,c as or}from"./clkkthq4.js";import"./ipsmdhri.js";import"./galyil7v.js";import"./jgtt4g2i.js";import"./k5zlaccb.js";import"./jjx8cjxt.js";import"./h60ueqql.js";import"./nxcn1bpj.js";import"./mve2tcif.js";import"./hxd38tih.js";import"./k161qr14.js";import"./hiq1m2e4.js";import"./dofr5ohg.js";import"./nme8t6sl.js";import"./hd1tvld1.js";import"./l6xz8ykh.js";import"./koie55h9.js";import"./g1kc24ry.js";import"./dd4q64kv.js";import"./ektn3wb3.js";import"./bhtskepa.js";import"./n774k9r1.js";import"./e1ed3ype.js";import"./fhfgpx48.js";import"./k5os1d6s.js";import"./ggvbaq4g.js";import"./hzbfainw.js";import"./gk3aerm1.js";import"./ffm8a01i.js";import"./dkm2qjw2.js";import"./fkxy32yf.js";import"./i6uxbv1y.js";import"./ixoha9s2.js";import"./dbg4ugqw.js";import"./oe9bg39j.js";import"./rivpgrku.js";import"./iknbvdrh.js";import"./ibwxweb5.js";import"./dgye9qmu.js";import"./dxe5oaxj.js";import"./c2z4eqkk.js";import"./nap984bv.js";import"./j2lum5n5.js";import"./mfz2ggvr.js";import"./gh45y583.js";import"./doouyyoy.js";import"./e4ofqcj1.js";import"./effsgy3n.js";import"./kaho5obd.js";import"./bdg8312i.js";import"./iycpyoal.js";import"./gxr2cae3.js";import"./bwtull1d.js";import"./b81t3sgi.js";import"./gey4cr6o.js";import"./iifpi1iu.js";import"./detkwr9j.js";import"./gczexp56.js";import"./ifdfgrma.js";import"./o58gzn7h.js";import"./f80ft0bu.js";import"./3znfdnzu.js";import"./kl74giwr.js";import"./h6avv8pc.js";import"./cn0mn8n4.js";import"./bj2d3fxd.js";import"./bwgpyml2.js";import"./k46ip8b6.js";import"./o0uozu2i.js";import"./951j84kw.js";import"./ij3umk1y.js";import"./fm0ztcbe.js";import"./e2xumd76.js";import"./fgrh3em6.js";import"./3skcli0z.js";import"./cog875zc.js";import"./bzdgezj1.js";import"./ly2i0axc.js";import"./oat2b3jh.js";import"./k7410zjl.js";import"./evr5wnou.js";import"./ok4ixd5a.js";import"./n4bkqrc1.js";import"./oue0wtmj.js";import"./dgvx0slb.js";import"./b2qz6tvq.js";import"./lxooibf0.js";import"./n5gmzxh6.js";import"./maj895tk.js";import"./nbxtkvih.js";import"./uv1tly3r.js";import"./cn2mrooy.js";import"./brik0n97.js";import"./c29hhq2p.js";import"./cjh1csys.js";import"./b1b27nrl.js";import"./limpb33f.js";import"./kkeja52t.js";import"./nl33iyi9.js";function ir(){k.setLicenseKey("7b119975e17b003a5c8c0cff1579f083Tz05MDA1MSxFPTE3NDY4OTA5MjAwMDAsUz1wcm8sTE09cGVycGV0dWFsLEtWPTI=")}const nr=A(null),ar=/Edge?\/(13[6-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(12[89]|1[3-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(109|1[1-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(18\.([4-9]|\d{2,})|(19|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(1{2}[6-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(16[._]([6-9]|\d{2,})|(1[7-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](13[89]|1[4-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(14\d|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(13[89]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(2[7-9]|[3-9]\d|\d{3,})\.\d+|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/;function sr(r){const{app:{releaseStage:e,version:t},sessionId:o,bugsnag:{apiKey:a,endpoints:p,hashBugsByStack:s}={}}=E();l.start({apiKey:a??"0".repeat(32),appVersion:t,releaseStage:e,enabledReleaseStages:a?void 0:[],appType:"client",plugins:[new L],endpoints:p,metadata:{docker:{sessionId:o,referer:document.referrer}},onError:[...r??[],async n=>{if(!ar.test(navigator.userAgent))return!1;const c=n.errors[0];if(c&&(c instanceof DOMException&&c.name==="AbortError"||(["Minified React error #418","Minified React error #423","Minified React error #425","Hydration failed because the initial UI does not match what was rendered on the server.","There was an error while hydrating. Because the error happened outside of a Suspense boundary, the entire root will switch to client rendering.","Text content does not match server-rendered HTML."].some(i=>c.errorMessage.startsWith(i))&&(c.errorClass="HydrationError"),c.stacktrace?.[0]?.file.includes("webkit-masked-url://"))||[/ResizeObserver loop completed with undelivered notifications/i,/can't access dead object/i,"Minified React error #345",/Failed to fetch/i,/No stream found for single fetch decoding/i,/Failed to execute 'removeChild' on 'Node'/i].some(i=>typeof i=="string"?c.errorMessage.includes(i):i.test(c.errorMessage))))return!1;for(const i of n.errors)(F(i)||K(i))&&(i.errorClass="ZodError");if(n.context||(n.context=window.location.pathname),/^\[client\]\s/.test(n.context)||(n.context=`[client] ${n.context}`),s&&n.errors.some(i=>i.stacktrace.length>0)){const i=n.errors.flatMap(S=>S.stacktrace.map(h=>`${h.file}${h.method?` ${h.method}`:""}`)).join(""),m=new TextEncoder,f=await crypto.subtle.digest("SHA-256",m.encode(i)),g=Array.from(new Uint8Array(f));n.groupingHash=btoa(String.fromCharCode(...g))}return!0}]})}const dr=(r,{errorInfo:e})=>{if(r instanceof DOMException&&r.name==="AbortError")return;if(v(r)){if(r.status<500)return;l.notify(new Error("Route Error Response"),o=>{o.unhandled=!0,o.addMetadata("react-router",r)});return}const t=r instanceof Error?r:new Error("Router error",{cause:r});l.notify(t,o=>{o.unhandled=!0,o.addMetadata("react","react-router-on-error","true"),e?.componentStack&&o.addMetadata("react",e)})};function pr(r){return new V({endpoint:r.endpoint,apiKey:r.apiKey,site:r.appId,autoPageview:!0,autoClickTracking:!0,debug:r.debug,onError:(e,t)=>{console.warn("[marlin-v2]",e,t)}})}function cr(){Object.defineProperty(window,"__reactRouterDataRouter",{get(){},set(r){let e={};r.subscribe(t=>{if(!t.initialized)return;const{location:o}=t,{routes:a}=r;if(t.initialized){const p=M(a,o.pathname),s=w.location?.href;q.api.pushEvent(z,{toRoute:p,toUrl:w.location?.href,...e}),e={fromRoute:p,fromUrl:s}}}),Object.defineProperty(window,"__reactRouterDataRouter",{value:r,enumerable:!0,writable:!0,configurable:!0})},enumerable:!0,configurable:!0})}function M(r,e){return`/${T(r,e)?.map(t=>t.route.path).filter(Boolean).join("/")||e}`.replace(/^\/\//,"/")}function ur({routePattern:r,faroClientUrl:e}){const{app:{id:t,version:o,releaseStage:a},sessionId:p}=E();Q({url:e,app:{name:t,version:o,environment:a},pageTracking:{generatePageId(s){const n=window.__reactRouterDataRouter;return n?M(n.routes,s.pathname):r||s.pathname}},sessionTracking:{generateSessionId(){return p}},instrumentations:$()})}function b(r=!0,e){return r?y({key:"css",nonce:e,stylisPlugins:[R("mui")]}):y({key:"css-slow",prepend:!0,speedy:!1,nonce:e,stylisPlugins:[R("mui")]})}function R(r){return e=>{if(e.parent)return;const t={...e,parent:e,root:e};Object.assign(e,{children:[t],length:6,parent:null,props:[r],return:"",root:null,type:"@layer",value:`@layer ${r}`})}}function mr({children:r}){const e=u.useMemo(()=>[...document.getElementsByTagName("script")].filter(s=>s.hasAttribute("nonce"))[0]?.nonce??"",[]),[t,o]=u.useState(()=>b(void 0,e)),{ssr:{speedyCache:a}}=B(),p=u.useMemo(()=>({reset(){o(b(a,e))}}),[a,e]);return d.jsx(I.Provider,{value:p,children:d.jsx(N,{value:t,children:r})})}function lr({bugsnagConfig:r,getContext:e,RouterWrapper:t=u.Fragment}={}){ir();const{app:o,routePattern:a,telemetry:p,marlin:s}=E();sr(r?.onError),p?.faroClientUrl&&(ur({routePattern:a,faroClientUrl:p.faroClientUrl}),cr());let n=null;s?.apiKey&&s.endpoint&&(n=pr({appId:o.id,endpoint:s.endpoint,apiKey:s.apiKey}));async function c(){const i=e?await e():new x;return i.set(nr,n),i}u.startTransition(()=>{W.hydrateRoot(document,d.jsx(U,{children:d.jsx(_,{children:d.jsx(D,{children:d.jsx(O,{value:n,children:d.jsx(mr,{children:d.jsxs(H,{children:[d.jsx(G,{}),d.jsx(t,{children:d.jsx(j,{unstable_useTransitions:!0,onError:dr,getContext:c})})]})})})})})}),{onRecoverableError:Z((i,m)=>{if(m.componentStack){const f=i instanceof Error?i:new Error(JSON.stringify(i));l.notify(f,g=>{g.addMetadata("react",m)})}},500)})})}function P(r,e,t=new Set){t.add(r),Object.entries(r).forEach(([o,a])=>{if(fr(a)){t.has(a)||P(a,e,t);return}r[o]=e(a)})}function fr(r){return typeof r=="object"&&r!==null}const C=new tr(rr);J(C);lr({getContext:()=>{const r=new x;return r.set(er,C),r},RouterWrapper:({children:r})=>d.jsx(or,{client:C,children:r}),bugsnagConfig:{onError:[r=>{if(!hr)return!1;const e=["Minified React error #418","Minified React error #423","Minified React error #425"];if(r.errors.some(t=>e.some(o=>t.errorMessage.includes(o)))||wr()||r.originalError?.stack==="EvalError: Possible side-effect in debug-evaluate")return!1;if(X(r.originalError)){const{request:t,response:o}=r.originalError;r.addMetadata("fetch",{request:{url:t.url,method:t.method},response:{status:o.status,url:o.url}})}Er(r)}]}});Y();function gr(){return!!(window.isSecureContext&&["localhost","hub.docker.com","hub-stage.docker.com","app.docker.com","app-stage.docker.com"].includes(window.location.hostname))}const hr=gr()&&!window.Cypress,Cr=r=>r&&r.replace(/(email=|inviteToken=|invite_code=|username=|user=|client_id=|accept-invite\/|confirm-email\/)(.*)/,"$1NOT_COLLECTED");function Er(r){P(r,e=>{switch(typeof e){case"string":return Cr(e);default:return e}})}function wr(){function r(){return["iPhone","iPad"].some(o=>navigator.userAgent.includes(o))}function e(){return navigator.userAgent.includes("Mobile Safari")}function t(){return navigator.userAgent.includes("Android")}return r()||e()&&!t()}export{Er as sanitiseBugsnagEvent};