var Qs=Object.defineProperty;var zs=(s,t,e)=>t in s?Qs(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e;var L=(s,t,e)=>zs(s,typeof t!="symbol"?t+"":t,e);function er(s,t){const e=new Array(t.length).fill(0);return new Array(t.length).fill(0).map((n,r)=>(i,a)=>{e[r]=i/a*t[r]*1e3,s(e.reduce((o,l)=>o+l,0),1e3)})}class tr{constructor(t,e){L(this,"_snapshotStorage");L(this,"_resourceLoader");L(this,"_snapshotIds",new Map);this._snapshotStorage=t,this._resourceLoader=e}serveSnapshot(t,e,n){const r=this._snapshot(t,e);if(!r)return new Response(null,{status:404});const i=r.render();return this._snapshotIds.set(n,r),new Response(i.html,{status:200,headers:{"Content-Type":"text/html; charset=utf-8"}})}async serveClosestScreenshot(t,e){const n=this._snapshot(t,e),r=n==null?void 0:n.closestScreenshot();return r?new Response(await this._resourceLoader(r)):new Response(null,{status:404})}serveSnapshotInfo(t,e){const n=this._snapshot(t,e);return this._respondWithJson(n?{viewport:n.viewport(),url:n.snapshot().frameUrl,timestamp:n.snapshot().timestamp,wallTime:n.snapshot().wallTime}:{error:"No snapshot found"})}_snapshot(t,e){const n=e.get("name");return this._snapshotStorage.snapshotByName(t,n)}_respondWithJson(t){return new Response(JSON.stringify(t),{status:200,headers:{"Cache-Control":"public, max-age=31536000","Content-Type":"application/json"}})}async serveResource(t,e,n){let r;const i=this._snapshotIds.get(n);for(const A of t)if(r=i==null?void 0:i.resourceByUrl(nr(A),e),r)break;if(!r)return new Response(null,{status:404});const a=r.response.content._sha1,o=a?await this._resourceLoader(a)||new Blob([]):new Blob([]);let l=r.response.content.mimeType;/^text\/|^application\/(javascript|json)/.test(l)&&!l.includes("charset")&&(l=`${l}; charset=utf-8`);const d=new Headers;l!=="x-unknown"&&d.set("Content-Type",l);for(const{name:A,value:T}of r.response.headers)d.set(A,T);d.delete("Content-Encoding"),d.delete("Access-Control-Allow-Origin"),d.set("Access-Control-Allow-Origin","*"),d.delete("Content-Length"),d.set("Content-Length",String(o.size)),d.set("Cache-Control","public, max-age=31536000");const{status:g}=r.response,b=g===101||g===204||g===205||g===304;return new Response(b?null:o,{headers:d,status:r.response.status,statusText:r.response.statusText})}}function nr(s){try{const t=new URL(s);return t.hash="",t.toString()}catch{return s}}function sr(s){const t=new Map,{files:e,stacks:n}=s;for(const r of n){const[i,a]=r;t.set(`call@${i}`,a.map(o=>({file:e[o[0]],line:o[1],column:o[2],function:o[3]})))}return t}const Hn={"&":"&","<":"<",">":">",'"':""","'":"'"};function rr(s){return s.replace(/[&<>"']/ug,t=>Hn[t])}function ir(s){return s.replace(/[&<]/ug,t=>Hn[t])}function Wt(s,t,e){return s.find((n,r)=>{if(r===s.length-1)return!0;const i=s[r+1];return Math.abs(t(n)-e)i.frameSwapWallTime,t):Wt(this._screencastFrames,i=>i.timestamp,e);return n==null?void 0:n.sha1}render(){const t=[],e=(i,a,o,l)=>{if(typeof i=="string"){o==="STYLE"||o==="style"?t.push(pr(dr(i))):t.push(ir(i));return}if(ar(i)){const _=a-i[0][0];if(_>=0&&_<=a){const d=lr(this._snapshots[_]),g=i[0][1];if(g>=0&&gy[0]===T),p=b==="SOURCE"&&o==="PICTURE"&&(l==null?void 0:l.some(y=>y[0]===T));for(const[y,O]of A){let m=y;f&&y.toLowerCase()==="src"&&(m="__playwright_src__"),u&&y===T&&(m="src"),["src","srcset"].includes(y.toLowerCase())&&(h||p)&&(m="_"+m);let E=O;c&&y.toLowerCase()==="href"?E="link://"+O:(y.toLowerCase()==="href"||y.toLowerCase()==="src"||y===T)&&(E=ft(O)),t.push(" ",m,'="',rr(E),'"')}t.push(">");for(const y of g)e(y,a,b,A);cr.has(b)||t.push("");return}else return},n=this._snapshot;return{html:this._htmlCache.getOrCompute(this,()=>{e(n.html,this._index,void 0,void 0);const a=(n.doctype?``:"")+["",`